<?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>215305</bug_id>
          
          <creation_ts>2020-08-07 21:38:47 -0700</creation_ts>
          <short_desc>Add the support to return to element fullscreen from picture-in-picture</short_desc>
          <delta_ts>2020-11-06 14:26:14 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218419</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1678863</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-07 21:38:47 -0700</bug_when>
    <thetext>Add the support to return to element fullscreen from picture-in-picture</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678864</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-07 21:39:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/66424852&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678865</commentid>
    <comment_count>2</comment_count>
      <attachid>406244</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-07 21:42:50 -0700</bug_when>
    <thetext>Created attachment 406244
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678867</commentid>
    <comment_count>3</comment_count>
      <attachid>406245</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-07 22:02:20 -0700</bug_when>
    <thetext>Created attachment 406245
WIP patch (fix build failures)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679078</commentid>
    <comment_count>4</comment_count>
      <attachid>406303</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-10 09:44:37 -0700</bug_when>
    <thetext>Created attachment 406303
WIP patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679109</commentid>
    <comment_count>5</comment_count>
      <attachid>406309</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-10 10:27:41 -0700</bug_when>
    <thetext>Created attachment 406309
WIP patch v2 (fix macOS build failures)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679666</commentid>
    <comment_count>6</comment_count>
      <attachid>406438</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-11 17:11:04 -0700</bug_when>
    <thetext>Created attachment 406438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679706</commentid>
    <comment_count>7</comment_count>
      <attachid>406450</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-12 00:08:25 -0700</bug_when>
    <thetext>Created attachment 406450
patch - revise change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679761</commentid>
    <comment_count>8</comment_count>
      <attachid>406450</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-08-12 10:41:41 -0700</bug_when>
    <thetext>Comment on attachment 406450
patch - revise change logs

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

r=me, with only a couple minor nits.

&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:296
&gt; +void VideoFullscreenModelContext::prepareToExitFullscreen()
&gt; +{
&gt; +    for (auto&amp; client : m_clients)
&gt; +        client-&gt;prepareToExitPictureInPicture();
&gt; +}
&gt; +

I realize this is an existing pattern, but we should replace `HashSet&lt;WebCore::VideoFullscreenModelClient*&gt;` with `WeakHashSet&lt;WebCore::VideoFullscreenModelClient&gt;` and update all the call sites. This may be a source of latent bugs, if the m_clients set is mutated while calling callbacks. This can be cleaned up in a future patch though.

&gt; Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:143
&gt; +    auto* currentPlaybackControlsElement = m_page-&gt;playbackSessionManager().currentPlaybackControlsElement();
&gt; +    if (currentPlaybackControlsElement)

Nit: could be:

```
if (auto* currentPlaybackControlsElement = m_page-&gt;playbackSessionManager().currentPlaybackControlsElement())
...
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679775</commentid>
    <comment_count>9</comment_count>
      <attachid>406465</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-12 11:21:31 -0700</bug_when>
    <thetext>Created attachment 406465
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679783</commentid>
    <comment_count>10</comment_count>
      <attachid>406450</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-08-12 11:39:07 -0700</bug_when>
    <thetext>Comment on attachment 406450
patch - revise change logs

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:296
&gt;&gt; +
&gt; 
&gt; I realize this is an existing pattern, but we should replace `HashSet&lt;WebCore::VideoFullscreenModelClient*&gt;` with `WeakHashSet&lt;WebCore::VideoFullscreenModelClient&gt;` and update all the call sites. This may be a source of latent bugs, if the m_clients set is mutated while calling callbacks. This can be cleaned up in a future patch though.

Good point! Filed Bug 215420 to track that.

&gt;&gt; Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:143
&gt;&gt; +    if (currentPlaybackControlsElement)
&gt; 
&gt; Nit: could be:
&gt; 
&gt; ```
&gt; if (auto* currentPlaybackControlsElement = m_page-&gt;playbackSessionManager().currentPlaybackControlsElement())
&gt; ...
&gt; ```

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679815</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-12 13:55:40 -0700</bug_when>
    <thetext>Committed r265562: &lt;https://trac.webkit.org/changeset/265562&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406465.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406244</attachid>
            <date>2020-08-07 21:42:50 -0700</date>
            <delta_ts>2020-08-07 22:02:19 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-215305-20200807214249.patch</filename>
            <type>text/plain</type>
            <size>35052</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzMzUzZmU1ZThjOTRh
NWQ1ZmNkOTgzNTc4YWNmOTQzYTIzM2M5Mi4uNDRkMWI2NmY2YjY4MGQxNDk0NDc1MWU3NDc1NTU3
YTRhMjcwODcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA4LTA3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IHRv
IHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTMwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSk6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpoYXNWaWRlb0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBp
Y3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgor
CiAyMDIwLTA3LTMxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2xlYW4gdXAgdGV4dCBsYXlvdXQgY29kZSBhIGJpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMzc5
YmMwYjgxNzA2MmMxMzZmNzU0M2FiODZjMTlmYjgxYzMxYzI3Li42YzljYzExNTRlOGQ3YWFlYjQz
MzRhMmM3ZGQ0MjliNzgwNDRhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA4
LTA3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBz
dXBwb3J0IHRvIHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBp
Y3R1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NTMwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAo
LVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIHNldEFuaW1hdGluZ1ZpZXdBbHBo
YTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgX2NhbmNlbEFjdGlv
bjpdKToKKyAgICAgICAgKFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQ6OnNldFBhcmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRlcmZhY2UpOiBE
ZWxldGVkLgorICAgICAgICAoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbENsaWVudDo6aW50ZXJmYWNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZV0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklP
Uy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
clZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRQYXJlbnQpOgorICAgICAgICAoV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRl
cmZhY2UpOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNj
cmVlbk1vZGVsQ2xpZW50OjppbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1l
OmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
cmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIF9jb21wbGV0ZWRFeGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUlu
UGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGRpZEVu
dGVyUGljdHVyZUluUGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJblBp
Y3R1cmVdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6cmVxdWVz
dEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIwLTA3LTMxICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIEFkZCBFeHBlcmltZW50
YWwgRmVhdHVyZSBwcmVmZXJlbmNlIGZvciBTVyBWUDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKaW5kZXggMGM1YjJlZTdhOTk5MTdjMjY3ZDEyMzEyYjhkZjdlOTZkMjQ3N2Fk
MC4uNWUyNDU3OTJiZWM1MTcwMjk1YjQxOWMxNmIwN2Q4YmZhN2JhNWJmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAg
ICAgICBFbmZvcmNlSUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1lbnQsCiAgICAgICAgIEV4
ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50LAogICAgIH07Ci0gICAgdm9pZCBy
ZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCosIEZ1bGxzY3JlZW5DaGVja1R5cGUp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVs
ZW1lbnQqLCBGdWxsc2NyZWVuQ2hlY2tUeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWRFbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGY3YTJmODZhMmYzZWNlOWZmYzdlM2VlYWY2NDliNjhlNWIyNjc5YjMuLmNiNmUz
NzZiZDUzMzFhYTlmM2NkODAwNTUzMWI1NDkzZjAzZDVjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTk0OSw2ICs1OTQ5LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAg
IGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkuZnVsbFNjcmVlbkVuYWJsZWQoKSAmJiBtb2RlID09
IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICBtX3RlbXBvcmFyaWx5QWxs
b3dpbmdJbmxpbmVQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgICAgICBtX3dh
aXRpbmdUb0VudGVyRnVsbHNjcmVlbiA9IHRydWU7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5wcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKCk7CiAgICAgICAg
IGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5yZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1l
bnQodGhpcywgRnVsbHNjcmVlbk1hbmFnZXI6OkV4ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJl
cXVpcmVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTU5NTYsNyArNTk1Nyw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1v
ZGUgbW9kZSkKIAogICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywg
bW9kZV0gewogICAgICAgICBpZiAoZG9jdW1lbnQoKS5oaWRkZW4oKSkgewotICAgICAgICAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiICByZXR1cm5pbmcgYmVjYXVzZSBkb2N1bWVudCBp
cyBoaWRkZW4iKTsKKyAgICAgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIiByZXR1
cm5pbmcgYmVjYXVzZSBkb2N1bWVudCBpcyBoaWRkZW4iKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjMGEwZDMwYmNm
ZGYzZjQxY2YwZThkN2YzZGU0YzI0YzAxZGI2Nzk4Li5lNjFkMWI5YWIyMTliYTI2NjVkZDBhZTFh
MGMyZWU0M2M5YjY5N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM1Miwx
MCArMzUyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciog
Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdmlydHVhbCB2b2lk
IHByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW4oKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVs
bHNjcmVlblN0YW5kYnkoKSB7IHJldHVybiBmYWxzZTsgfQotCi0jaWYgRU5BQkxFKFZJREVPKQog
ICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1M
VmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
LCBib29sIHN0YW5kYnkpIHsgVU5VU0VEX1BBUkFNKHN0YW5kYnkpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2Rl
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwu
aAppbmRleCBmZDIxNGM0NzZkYWVlZmJjNzg1OWE4OGNhODM1OTBkNjYyMWUxNzAwLi43ZGZiMzU2
MjBmMDRkZjA2NDRlNTdhODU5MjQ3NmI2NWIxYWZiYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKQEAgLTc2LDggKzc2
LDkgQEAgcHVibGljOgogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgewogcHVibGlj
OgogICAgIHZpcnR1YWwgflZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50KCkgPSBkZWZhdWx0Owot
ICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0NoYW5nZWQoYm9vbCkgeyB9OwotICAgIHZpcnR1YWwg
dm9pZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYpIHsgfTsKKyAgICB2
aXJ0dWFsIHZvaWQgaGFzVmlkZW9DaGFuZ2VkKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2
aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEVudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRl
clBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9FbnRlclBp
Y3R1cmVJblBpY3R1cmUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggMjRkMTM1OGRl
OWIyNGIzM2JiMGRjOWNiZWU5Y2YwMTg0ZWJjZDE1Ny4uNmMzM2VkOGZmZjFiOWE2ODJjNzY5NTUz
NjIwMGVlNDFjNzY4N2NlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTEzMyw3ICsxMzMs
NyBAQCBwdWJsaWM6CiAgICAgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRNb2RlLm1vZGUoKTsgfQogICAgIGJv
b2wgYWxsb3dzUGljdHVyZUluUGljdHVyZVBsYXliYWNrKCkgY29uc3QgeyByZXR1cm4gbV9hbGxv
d3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2s7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1h
eUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5QaWN0dXJlKCkgY29uc3Q7Ci0gICAgdm9p
ZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYm
IGNhbGxiYWNrKTsKKyAgICB2b2lkIHByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6
OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIGJvb2wgd2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGxp
Y2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CiAKQEAgLTE1MSwxMiArMTUxLDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpOwogICAgIGJvb2wgaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgbW9kZSkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50TW9kZS5oYXNNb2RlKG1v
ZGUpOyB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFVJVmlld0NvbnRyb2xsZXIg
KnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpOwogICAgIFVJVmlld0NvbnRyb2xsZXIgKmZ1bGxz
Y3JlZW5WaWV3Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0NvbnRyb2xsZXIuZ2V0
KCk7IH0KICAgICBXZWJBVlBsYXllckxheWVyVmlldyogcGxheWVyTGF5ZXJWaWV3KCkgY29uc3Qg
eyByZXR1cm4gbV9wbGF5ZXJMYXllclZpZXcuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHBpY3R1cmVJblBpY3R1cmVXYXNTdGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpIGNv
bnN0OwotI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdChQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdCYpOwpAQCAt
MjIwLDYgKzIxOCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fd2FpdGluZ0ZvclByZXBhcmVk
VG9FeGl0IHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkSWdub3JlQVZLaXRDYWxsYmFja0Fi
b3V0RXhpdEZ1bGxzY3JlZW5SZWFzb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRlcmluZ1Bp
Y3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGlj
dHVyZSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggMDEw
M2VlNzQ0ZjkxNWVmZDgxM2FhYzcxZDk2YmRmNTVjZDA2ZTdmYy4uZTg2NzI4ZTU2ZTBlNGFiN2Ey
OGI0ZDk0NzZhZmUwMzI4MWVhNjBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtODUs
NyArODUsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogYm9vbFN0cmluZyhib29sIHZhbCkKICNlbmRp
ZgogCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBkZWZhdWx0V2F0Y2hkb2dUaW1lckludGVydmFsIHsg
MV9zIH07Ci1zdGF0aWMgYm9vbCBpZ25vcmVXYXRjaGRvZ0ZvckRlYnVnZ2luZyA9IGZhbHNlOwor
c3RhdGljIGJvb2wgaWdub3JlV2F0Y2hkb2dGb3JEZWJ1Z2dpbmcgPSB0cnVlOwogCiBAaW50ZXJm
YWNlIEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKERldGFpbHMpCiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBzaG93c1BsYXliYWNrQ29udHJvbHM7CkBAIC05NzAsMTMgKzk3MCw5IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFttX3BsYXllclZp
ZXdDb250cm9sbGVyIHNldFBsYXllckNvbnRyb2xsZXI6bmlsXTsKICAgICAKLSAgICBpZiAobV9j
dXJyZW50TW9kZS5oYXNQaWN0dXJlSW5QaWN0dXJlKCkpIHsKKyAgICBpZiAobV9jdXJyZW50TW9k
ZS5oYXNQaWN0dXJlSW5QaWN0dXJlKCkpCiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVy
IHN0b3BQaWN0dXJlSW5QaWN0dXJlXTsKIAotICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5N
b2RlbCkKLSAgICAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEV4aXRQaWN0dXJl
SW5QaWN0dXJlKCk7Ci0gICAgfQotCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVl
bigpKSB7CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5l
ZWRlZF07CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5p
bWF0ZWQ6Tk8gY29tcGxldGlvbkhhbmRsZXI6W10gKEJPT0wgc3VjY2VzcywgTlNFcnJvciogZXJy
b3IpIHsKQEAgLTEwMDIsNiArOTk4LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKICAgICBbcGxheWVyQ29udHJvbGxlcigpIHNldEhh
c0VuYWJsZWRWaWRlbzpmYWxzZV07CiAgICAgW3BsYXllckNvbnRyb2xsZXIoKSBzZXRIYXNWaWRl
bzpmYWxzZV07CiAKKyAgICBpZiAobV9leGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgICAg
ICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIGlmIChtX3ZpZGVv
RnVsbHNjcmVlbk1vZGVsKQorICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlk
RXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICB9CisKICAgICBpZiAobV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRDbGVh
bnVwRnVsbHNjcmVlbigpOwogfQpAQCAtMTA2Niw3ICsxMDY4LDcgQEAgYm9vbCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBp
Y3R1cmUoKQogICAgIHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWluZ10gJiYgKG1f
c3RhbmRieSB8fCBtX2N1cnJlbnRNb2RlLmlzRnVsbHNjcmVlbigpKSAmJiBzdXBwb3J0c1BpY3R1
cmVJblBpY3R1cmUoKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBj
YWxsYmFjaykKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQ
aWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2sp
CiB7CiAgICAgbV9wcmVwYXJlVG9JbmxpbmVDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwog
ICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKQEAgLTExNDQsNiArMTE0Niw3IEBA
IHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGlj
dHVyZSgpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6d2lsbFN0b3BQaWN0dXJlSW5QaWN0dXJlKCVwKSIsIHRoaXMpOwogCisgICAgbV9leGl0
aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3Jl
ZW5XaGVuU3RvcHBpbmdQaVAgPSBmYWxzZTsKIAogICAgIGlmIChtX2N1cnJlbnRNb2RlLmhhc0Z1
bGxzY3JlZW4oKSB8fCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3Rv
cCkKQEAgLTExOTAsNiArMTE5Myw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFu
ZGxlcih2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKEJPT0wgcmVzdG9yZWQpKQogewogICAgIExP
RyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQ
aWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlciglcCkiLCB0aGlzKTsKKwog
ICAgIGlmIChtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpUCkgewogICAg
ICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpUCA9IGZhbHNlOwog
ICAgICAgICBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCA9IHRy
dWU7CkBAIC0xMjA1LDcgKzEyMDksNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgc3Ryb25nQ29tcGxldGlvbkhhbmRsZXIgPSBh
ZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XSldKGJvb2wgcmVzdG9yZWQpICB7CisgICAg
cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgc3Ryb25nQ29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFu
ZGxlciBjb3B5XSldKGJvb2wgcmVzdG9yZWQpICB7CiAgICAgICAgIExPRyhGdWxsc2NyZWVuLCAi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJl
U3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlciBsYW1iZGEoJXApIC0gcmVzdG9yZWQoJXMpIiwgcHJv
dGVjdGVkVGhpcy5nZXQoKSwgYm9vbFN0cmluZyhyZXN0b3JlZCkpOwogICAgICAgICAoKHZvaWQg
KF4pKEJPT0wpKXN0cm9uZ0NvbXBsZXRpb25IYW5kbGVyLmdldCgpKShyZXN0b3JlZCk7CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggZWRhY2NlM2MwZGE1MTkwYTY2MDJiYjFm
ZmVlYmY4YmVlZDZjYzVlMC4uNGM1MjRiZDUwNDRiMDZhZDhiNGUyZjkwY2ZkZjdkMjkxMzQwY2E3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMjcyLDYgKzI3Miw5IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKQog
ewogICAgIGlmIChtX21hbmFnZXIpCiAgICAgICAgIG1fbWFuYWdlci0+ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKG1fY29udGV4dElkKTsKKworICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9j
bGllbnRzKQorICAgICAgICBjbGllbnQtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwog
fQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6cmVxdWVzdFJvdXRlU2hhcmlu
Z1BvbGljeUFuZENvbnRleHRVSUQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSb3V0
ZVNoYXJpbmdQb2xpY3ksIFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC01MTIsNyAr
NTE1LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVl
bldpdGhJRChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWQKICAgICBNRVNTQUdFX0NIRUNLKHZpZGVv
TGF5ZXJJRCk7CiAKICAgICBhdXRvJiBbbW9kZWwsIGludGVyZmFjZV0gPSBlbnN1cmVNb2RlbEFu
ZEludGVyZmFjZShjb250ZXh0SWQpOwotICAgIGFkZENsaWVudEZvckNvbnRleHQoY29udGV4dElk
KTsKKyAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlIHx8ICFzdGFuZGJ5KQorICAgICAg
ICBhZGRDbGllbnRGb3JDb250ZXh0KGNvbnRleHRJZCk7CiAKICAgICBpZiAobV9tb2NrVmlkZW9Q
cmVzZW50YXRpb25Nb2RlRW5hYmxlZCkgewogICAgICAgICBpZiAoIXZpZGVvRGltZW5zaW9ucy5p
c0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ2ZjAxZmVkMWQ2MGY0OTQyZDkxMDc4Njk3YmU5ZDA5
NDQ4M2U5Y2YuLmQ0ODM2ZjE2NGRmOTQ5YzlmNjgzOTVjMDNiNzg1NWNmZjU4MWZkOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuY3BwCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCBhbmltYXRpbmcpCiAgICAgbV9wYWdlLnNlbmQo
TWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpTZXRBbmltYXRpbmdGdWxsU2NyZWVuKGFu
aW1hdGluZykpOwogfQogCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RF
bnRlckZ1bGxTY3JlZW4oKQoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2Ny
ZWVuTWFuYWdlcjo6UmVxdWVzdEVudGVyRnVsbFNjcmVlbigpKTsKK30KKwogdm9pZCBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQogewogICAgIG1fcGFn
ZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6UmVxdWVzdEV4aXRGdWxsU2Ny
ZWVuKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5oCmluZGV4IGRlMWQzMzA3ZTNiZTczZjcxMWRlNDU5NWIxN2ZhYWFjODg2Nzlk
NDEuLjAwZDNkMGFhMjNmNDBiMGJiNzEyODgyNjMyYTQxOWU4NjA4YmE2N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKQEAg
LTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAg
ICAgdm9pZCBkaWRFeGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgc2V0QW5pbWF0aW5nRnVsbFNj
cmVlbihib29sKTsKKyAgICB2b2lkIHJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB2b2lk
IHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgc2F2ZVNjcm9sbFBvc2l0aW9uKCk7
CiAgICAgdm9pZCByZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlci5oCmluZGV4IDk1YTk1MjBmMjM1MDJhMTY2NTVlZTdjZjY2ZTQ3ZDBiYWYz
YzdhYzguLmM0MTU3ODUxMTEzM2U1YzEzNTJjMTRjNzY5MjMwNjQ3OGExYTY2NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZp
ZXdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3Jl
ZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaApAQCAtMzMsNyArMzMsNyBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogCiBAaW50ZXJmYWNlIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
IDogVUlWaWV3Q29udHJvbGxlcgogQHByb3BlcnR5IChyZXRhaW4sIG5vbmF0b21pYykgaWQgdGFy
Z2V0OwotQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykgU0VMIGFjdGlvbjsKK0Bwcm9wZXJ0
eSAoYXNzaWduLCBub25hdG9taWMpIFNFTCBleGl0RnVsbFNjcmVlbkFjdGlvbjsKIEBwcm9wZXJ0
eSAoY29weSwgbm9uYXRvbWljKSBOU1N0cmluZyAqbG9jYXRpb247CiBAcHJvcGVydHkgKGFzc2ln
biwgbm9uYXRvbWljKSBCT09MIHByZWZlcnNTdGF0dXNCYXJIaWRkZW47CiBAcHJvcGVydHkgKGFz
c2lnbiwgbm9uYXRvbWljKSBCT09MIHByZWZlcnNIb21lSW5kaWNhdG9yQXV0b0hpZGRlbjsKQEAg
LTQ1LDYgKzQ1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKHZvaWQpc2hvd1VJOwog
LSAodm9pZCloaWRlVUk7CiAtICh2b2lkKXZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlOwor
LSAodm9pZClzZXRBbmltYXRpbmdWaWV3QWxwaGE6KENHRmxvYXQpYWxwaGE7CiBAZW5kCiAKIE5T
X0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5t
bQppbmRleCA3OGMwMDE1MmYxYTQzNzAwNWNkOTI5MDM5OGE3ZmNjZTg3YzFmOTgwLi5hYTZjNDAy
MWZjMzNjYWY2YzQ5NDc5OGI3ZWQyZDFmNzc0NDIwN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3Jl
ZW5WaWV3Q29udHJvbGxlci5tbQpAQCAtNDYsMTIgKzQ2LDYgQEAgc3RhdGljIGNvbnN0IE5TVGlt
ZUludGVydmFsIGF1dG9IaWRlRGVsYXkgPSA0LjA7CiAKIEBjbGFzcyBXS0Z1bGxzY3JlZW5TdGFj
a1ZpZXc7CiAKLUBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKFZpZGVvRnVs
bHNjcmVlbkNsaWVudENhbGxiYWNrcykKLS0gKHZvaWQpd2lsbEVudGVyUGljdHVyZUluUGljdHVy
ZTsKLS0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlOwotLSAodm9pZClmYWlsZWRUb0Vu
dGVyUGljdHVyZUluUGljdHVyZTsKLUBlbmQKLQogY2xhc3MgV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCA6IFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lv
bk1vZGVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2b2lkIHNldFBhcmVudChXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CkBAIC04Nyw0NSAr
ODEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdD4gbV9pbnRlcmZhY2U7CiB9OwogCi1jbGFzcyBXS0Z1bGxTY3JlZW5WaWV3Q29u
dHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IDogV2ViQ29yZTo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDbGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgot
ICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyICpwYXJlbnQpIHsg
bV9wYXJlbnQgPSBwYXJlbnQ7IH0KLQotICAgIHZvaWQgc2V0SW50ZXJmYWNlKFdlYkNvcmU6OlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZhY2UpCi0gICAgewotICAgICAgICBp
ZiAobV9pbnRlcmZhY2UgPT0gaW50ZXJmYWNlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGlmIChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwo
KSkKLSAgICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpLT5yZW1v
dmVDbGllbnQoKnRoaXMpOwotICAgICAgICBtX2ludGVyZmFjZSA9IGludGVyZmFjZTsKLSAgICAg
ICAgaWYgKG1faW50ZXJmYWNlICYmIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgp
KQotICAgICAgICAgICAgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCktPmFkZENs
aWVudCgqdGhpcyk7Ci0gICAgfQotCi0gICAgV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQqIGludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJmYWNlLmdldCgpOyB9
Ci0KLSAgICB2b2lkIHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAotICAgIHsKLSAg
ICAgICAgW21fcGFyZW50IHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmVdOwotICAgIH0KLQotICAg
IHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKLSAgICB7Ci0gICAgICAgIFtt
X3BhcmVudCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmVdOwotICAgIH0KLQotICAgIHZvaWQgZmFp
bGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAotICAgIHsKLSAgICAgICAgW21fcGFy
ZW50IGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0g
ICAgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKm1fcGFyZW50IHsgbnVsbHB0ciB9OwotICAg
IFJlZlB0cjxXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gbV9pbnRlcmZh
Y2U7Ci19OwotCiAjcHJhZ21hIG1hcmsgLSBfV0tFeHRyaW5zaWNCdXR0b24KIAogQGludGVyZmFj
ZSBfV0tFeHRyaW5zaWNCdXR0b24gOiBVSUJ1dHRvbgpAQCAtMTY0LDcgKzExOSw2IEBAIHByaXZh
dGU6CiAgICAgUmV0YWluUHRyPE5TTGF5b3V0Q29uc3RyYWludD4gX3RvcENvbnN0cmFpbnQ7CiAg
ICAgV2ViS2l0OjpGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMgX3NlY2hldXJpc3RpYzsKICAg
ICBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50IF9w
bGF5YmFja0NsaWVudDsKLSAgICBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclZpZGVvRnVsbHNj
cmVlbk1vZGVsQ2xpZW50IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7CiAgICAgQ0dGbG9hdCBfbm9u
WmVyb1N0YXR1c0JhckhlaWdodDsKIH0KIApAQCAtMTg4LDcgKzE0Miw2IEBAIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHNlbGYuX3dlYlZpZXcgPSB3ZWJWaWV3OwogCiAg
ICAgX3BsYXliYWNrQ2xpZW50LnNldFBhcmVudChzZWxmKTsKLSAgICBfdmlkZW9GdWxsc2NyZWVu
Q2xpZW50LnNldFBhcmVudChzZWxmKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMjAwLDgg
KzE1Myw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgX3BsYXli
YWNrQ2xpZW50LnNldFBhcmVudChudWxscHRyKTsKICAgICBfcGxheWJhY2tDbGllbnQuc2V0SW50
ZXJmYWNlKG51bGxwdHIpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0UGFyZW50KG51
bGxwdHIpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKG51bGxwdHIp
OwogCiAgICAgW190YXJnZXQgcmVsZWFzZV07CiAgICAgW19sb2NhdGlvbiByZWxlYXNlXTsKQEAg
LTI2MSw3ICsyMTIsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBh
dXRvKiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2Ug
PyAmdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UoKSA6
IG51bGxwdHI7CiAKICAgICBfcGxheWJhY2tDbGllbnQuc2V0SW50ZXJmYWNlKHBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZSk7Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRlcmZhY2Uo
dmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKTsKIAogICAgIFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lv
bk1vZGVsKiBwbGF5YmFja1Nlc3Npb25Nb2RlbCA9IHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA/
IHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwoKSA6IG51bGxw
dHI7CiAgICAgc2VsZi5wbGF5aW5nID0gcGxheWJhY2tTZXNzaW9uTW9kZWwgPyBwbGF5YmFja1Nl
c3Npb25Nb2RlbC0+aXNQbGF5aW5nKCkgOiBOTzsKQEAgLTI3Miw2ICsyMjIsMTMgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW19waXBCdXR0b24gc2V0SGlkZGVuOiFp
c1BpUEVuYWJsZWQgfHwgIWlzUGlQU3VwcG9ydGVkXTsKIH0KIAorLSAodm9pZClzZXRBbmltYXRp
bmdWaWV3QWxwaGE6KENHRmxvYXQpYWxwaGEKK3sKKyAgICBbVUlWaWV3IGFuaW1hdGVXaXRoRHVy
YXRpb246cGlwSGlkZUFuaW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbnM6XnsKKyAgICAgICAgX2Fu
aW1hdGluZ1ZpZXcuZ2V0KCkuYWxwaGEgPSBhbHBoYTsKKyAgICB9XTsKK30KKwogLSAodm9pZClz
ZXRQcmVmZXJzU3RhdHVzQmFySGlkZGVuOihCT09MKXZhbHVlCiB7CiAgICAgX3ByZWZlcnNTdGF0
dXNCYXJIaWRkZW4gPSB2YWx1ZTsKQEAgLTMzMCwzMyArMjg3LDYgQEAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtzZWxmIHNob3dVSV07CiB9CiAKLS0gKHZvaWQp
d2lsbEVudGVyUGljdHVyZUluUGljdHVyZQotewotICAgIGF1dG8qIGludGVyZmFjZSA9IF92aWRl
b0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7Ci0gICAgaWYgKCFpbnRlcmZhY2UgfHwgIWlu
dGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdCYWNrZ3JvdW5k
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtVSVZpZXcgYW5pbWF0ZVdpdGhEdXJhdGlvbjpw
aXBIaWRlQW5pbWF0aW9uRHVyYXRpb24gYW5pbWF0aW9uczpeewotICAgICAgICBfYW5pbWF0aW5n
Vmlldy5nZXQoKS5hbHBoYSA9IDA7Ci0gICAgfV07Ci19Ci0KLS0gKHZvaWQpZGlkRW50ZXJQaWN0
dXJlSW5QaWN0dXJlCi17Ci0gICAgW3NlbGYgX2NhbmNlbEFjdGlvbjpzZWxmXTsKLX0KLQotLSAo
dm9pZClmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZQotewotICAgIGF1dG8qIGludGVyZmFj
ZSA9IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7Ci0gICAgaWYgKCFpbnRlcmZh
Y2UgfHwgIWludGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdC
YWNrZ3JvdW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtVSVZpZXcgYW5pbWF0ZVdpdGhE
dXJhdGlvbjpwaXBIaWRlQW5pbWF0aW9uRHVyYXRpb24gYW5pbWF0aW9uczpeewotICAgICAgICBf
YW5pbWF0aW5nVmlldy5nZXQoKS5hbHBoYSA9IDE7Ci0gICAgfV07Ci19Ci0KICNwcmFnbWEgbWFy
ayAtIFVJVmlld0NvbnRyb2xsZXIgT3ZlcnJpZGVzCiAKIC0gKHZvaWQpbG9hZFZpZXcKQEAgLTUw
Myw3ICs0MzMsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAodm9p
ZClfY2FuY2VsQWN0aW9uOihpZClzZW5kZXIKIHsKLSAgICBbW3NlbGYgdGFyZ2V0XSBwZXJmb3Jt
U2VsZWN0b3I6W3NlbGYgYWN0aW9uXV07CisgICAgW1tzZWxmIHRhcmdldF0gcGVyZm9ybVNlbGVj
dG9yOltzZWxmIGV4aXRGdWxsU2NyZWVuQWN0aW9uXV07CiB9CiAKIC0gKHZvaWQpX3RvZ2dsZVBp
UEFjdGlvbjooaWQpc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVySU9TLmgKaW5kZXggMzFlYzgxYzg3MGY0MGVkZmVjYWI4YjM4YWY3MzUwMGJjZmQ4NGQ3Yi4u
ZmQzOTlhMGEwNzMyZmYxMTg1NDlhMTJmZjhlNGU2NDJlZjczNDljOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaApAQCAtMzYsNiArMzYsNyBAQAogLSAo
aWQpaW5pdFdpdGhXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZCllbnRlckZ1
bGxTY3JlZW47CiAtICh2b2lkKWJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZToo
Q0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihDR1JlY3QpZmluYWxGcmFtZTsKKy0gKHZv
aWQpcmVxdWVzdEVudGVyRnVsbFNjcmVlbjsKIC0gKHZvaWQpcmVxdWVzdEV4aXRGdWxsU2NyZWVu
OwogLSAodm9pZClleGl0RnVsbFNjcmVlbjsKIC0gKHZvaWQpYmVnYW5FeGl0RnVsbFNjcmVlbldp
dGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFtZTooQ0dSZWN0KWZp
bmFsRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5t
bQppbmRleCA0NmJjZTZhY2RhNGUxNTM5MTJkZmIyMWMxZTU2NmQ0ODQzYmYzYzFkLi43M2NjOTg5
ZmY0YjBmZGU3OGJlZjNlZGUxYWM4NWQ0MTVhYjAzYWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KQEAgLTQyNCw2ICs0MjQsNjUgQEAgc3RhdGlj
IGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKIAogI3ByYWdt
YSBtYXJrIC0KIAorQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIChWaWRl
b0Z1bGxzY3JlZW5DbGllbnRDYWxsYmFja3MpCistICh2b2lkKXdpbGxFbnRlclBpY3R1cmVJblBp
Y3R1cmU7CistICh2b2lkKWRpZEVudGVyUGljdHVyZUluUGljdHVyZTsKKy0gKHZvaWQpZmFpbGVk
VG9FbnRlclBpY3R1cmVJblBpY3R1cmU7CistICh2b2lkKWZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZTsKKy0gKHZvaWQpZGlkRXhpdFBpY3R1cmVJblBpY3R1cmU7CitAZW5kCisKK2NsYXNzIFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCA6IFdl
YkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2b2lkIHNldFBhcmVudChXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyICpwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KKworICAgIHZvaWQgc2V0
SW50ZXJmYWNlKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZh
Y2UpCisgICAgeworICAgICAgICBpZiAobV9pbnRlcmZhY2UgPT0gaW50ZXJmYWNlKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+
dmlkZW9GdWxsc2NyZWVuTW9kZWwoKSkKKyAgICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1
bGxzY3JlZW5Nb2RlbCgpLT5yZW1vdmVDbGllbnQoKnRoaXMpOworICAgICAgICBtX2ludGVyZmFj
ZSA9IGludGVyZmFjZTsKKyAgICAgICAgaWYgKG1faW50ZXJmYWNlICYmIG1faW50ZXJmYWNlLT52
aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpKQorICAgICAgICAgICAgbV9pbnRlcmZhY2UtPnZpZGVvRnVs
bHNjcmVlbk1vZGVsKCktPmFkZENsaWVudCgqdGhpcyk7CisgICAgfQorCisgICAgV2ViQ29yZTo6
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQqIGludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW50ZXJmYWNlLmdldCgpOyB9CisKKyAgICB2b2lkIHdpbGxFbnRlclBpY3R1cmVJblBpY3R1
cmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fcGFyZW50IHdpbGxFbnRlclBpY3R1cmVJblBp
Y3R1cmVdOworICAgIH0KKworICAgIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmlu
YWwKKyAgICB7CisgICAgICAgIFttX3BhcmVudCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmVdOwor
ICAgIH0KKworICAgIHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgW21fcGFyZW50IGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsK
KyAgICB9CisKKyAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsCisg
ICAgeworICAgICAgICBbbV9wYXJlbnQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lXTsKKyAg
ICB9CisKKyAgICB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKKyAgICB7Cisg
ICAgICAgIFttX3BhcmVudCBkaWRFeGl0UGljdHVyZUluUGljdHVyZV07CisgICAgfQorCitwcml2
YXRlOgorICAgIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKm1fcGFyZW50IHsgbnVsbHB0
ciB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4g
bV9pbnRlcmZhY2U7Cit9OworCisjcHJhZ21hIG1hcmsgLQorCiBAaW1wbGVtZW50YXRpb24gV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB7CiAgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlblBs
YWNlaG9sZGVyVmlldz4gX3dlYlZpZXdQbGFjZWhvbGRlcjsKIApAQCAtNDQxLDYgKzUwMCwxMCBA
QCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwog
ICAgIFJldGFpblB0cjxVSVBpbmNoR2VzdHVyZVJlY29nbml6ZXI+IF9pbnRlcmFjdGl2ZVBpbmNo
RGlzbWlzc0dlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxXS0Z1bGxTY3JlZW5JbnRl
cmFjdGl2ZVRyYW5zaXRpb24+IF9pbnRlcmFjdGl2ZURpc21pc3NUcmFuc2l0aW9uQ29vcmRpbmF0
b3I7CiAKKyAgICBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudDsKKyAgICBCT09MIF9pblBpY3R1cmVJblBp
Y3R1cmU7CisgICAgQk9PTCBfcmVzdG9yZUZ1bGxzY3JlZW47CisKICAgICBDR1JlY3QgX2luaXRp
YWxGcmFtZTsKICAgICBDR1JlY3QgX2ZpbmFsRnJhbWU7CiAKQEAgLTQ2MCw2ICs1MjMsNyBAQCBz
dGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAg
ICAgICByZXR1cm4gbmlsOwogCiAgICAgc2VsZi5fd2ViVmlldyA9IHdlYlZpZXc7CisgICAgX3Zp
ZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQoc2VsZik7CiAKICAgICByZXR1cm4gc2VsZjsK
IH0KQEAgLTQ2OSw2ICs1MzMsOSBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1h
dGlvbkR1cmF0aW9uID0gMC4yOwogICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1S
ZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZl07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKIAorICAgIF92aWRlb0Z1bGxzY3JlZW5D
bGllbnQuc2V0SW50ZXJmYWNlKG51bGxwdHIpOworICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQu
c2V0UGFyZW50KG51bGxwdHIpOworCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCkBAIC01MjQs
NyArNTkxLDcgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlv
biA9IDAuMjsKICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRUcmFuc2l0aW9uaW5n
RGVsZWdhdGU6c2VsZl07CiAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0TW9kYWxQ
cmVzZW50YXRpb25DYXB0dXJlc1N0YXR1c0JhckFwcGVhcmFuY2U6WUVTXTsKICAgICBbX2Z1bGxz
Y3JlZW5WaWV3Q29udHJvbGxlciBzZXRUYXJnZXQ6c2VsZl07Ci0gICAgW19mdWxsc2NyZWVuVmll
d0NvbnRyb2xsZXIgc2V0QWN0aW9uOkBzZWxlY3RvcihyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pXTsK
KyAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRFeGl0RnVsbFNjcmVlbkFjdGlvbjpA
c2VsZWN0b3IocmVxdWVzdEV4aXRGdWxsU2NyZWVuKV07CiAgICAgX2Z1bGxzY3JlZW5WaWV3Q29u
dHJvbGxlci5nZXQoKS52aWV3LmZyYW1lID0gX3Jvb3RWaWV3Q29udHJvbGxlci5nZXQoKS52aWV3
LmJvdW5kczsKICAgICBbc2VsZiBfdXBkYXRlTG9jYXRpb25JbmZvXTsKIApAQCAtNjUyLDYgKzcx
OSwxMCBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0g
MC4yOwogICAgICAgICAgICAgbWFuYWdlci0+ZGlkRW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgICAg
ICAgICBtYW5hZ2VyLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICAgICAgICAg
IHBhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOworCisgICAgICAgICAg
ICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFu
YWdlcigpOworICAgICAgICAgICAgYXV0byogdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlID0gdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlciA/IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNvbnRyb2xzTWFu
YWdlckludGVyZmFjZSgpIDogbnVsbHB0cjsKKyAgICAgICAgICAgIF92aWRlb0Z1bGxzY3JlZW5D
bGllbnQuc2V0SW50ZXJmYWNlKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNjYwLDYgKzczMSwxOSBAQCBzdGF0aWMgY29uc3Qg
TlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAgIH1dOwogfQogCist
ICh2b2lkKXJlcXVlc3RFbnRlckZ1bGxTY3JlZW4KK3sKKyAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0
ZSAhPSBXZWJLaXQ6Ok5vdEluRnVsbFNjcmVlbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CisgICAgICAgIG1hbmFnZXItPnJlcXVl
c3RFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCiAtICh2b2lkKXJlcXVlc3RFeGl0RnVsbFNjcmVlbgogewog
ICAgIGlmIChfZnVsbFNjcmVlblN0YXRlICE9IFdlYktpdDo6SW5GdWxsU2NyZWVuKSB7CkBAIC03
NzksNiArODYzLDggQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJh
dGlvbiA9IDAuMjsKIAogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldFByZWZlcnNT
dGF0dXNCYXJIaWRkZW46WUVTXTsKICAgICBfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyID0gbmls
OworICAgIGlmICghX2luUGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgX3ZpZGVvRnVsbHNjcmVl
bkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7CiAgICAgX2V4aXRSZXF1ZXN0ZWQgPSBOTzsK
IH0KIApAQCAtNzk4LDYgKzg4NCwxMSBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0Fu
aW1hdGlvbkR1cmF0aW9uID0gMC4yOwogewogICAgIGlmIChfZnVsbHNjcmVlblZpZXdDb250cm9s
bGVyKQogICAgICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciB2aWRlb0NvbnRyb2xzTWFu
YWdlckRpZENoYW5nZV07CisKKyAgICBhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07
CisgICAgYXV0byogdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IHBhZ2UgPyBwYWdlLT52aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyKCkgOiBudWxscHRyOworICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgX3ZpZGVvRnVsbHNj
cmVlbkNsaWVudC5zZXRJbnRlcmZhY2UodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKTsKIH0KIAog
LSAodm9pZClwbGFjZWhvbGRlcldpbGxNb3ZlVG9TdXBlcnZpZXc6KFVJVmlldyAqKXN1cGVydmll
dwpAQCAtODExLDYgKzkwMiw0NiBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1h
dGlvbkR1cmF0aW9uID0gMC4yOwogICAgIH0pOwogfQogCistICh2b2lkKXdpbGxFbnRlclBpY3R1
cmVJblBpY3R1cmUKK3sKKyAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xp
ZW50LmludGVyZmFjZSgpOworICAgIGlmICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2UtPnBpY3R1
cmVJblBpY3R1cmVXYXNTdGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRBbmltYXRpbmdWaWV3
QWxwaGE6MF07Cit9CisKKy0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlCit7CisgICAg
X2luUGljdHVyZUluUGljdHVyZSA9IFlFUzsKKyAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3Jl
ZW5dOworfQorCistICh2b2lkKWZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlCit7CisgICAg
YXV0byogaW50ZXJmYWNlID0gX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5pbnRlcmZhY2UoKTsKKyAg
ICBpZiAoIWludGVyZmFjZSB8fCAhaW50ZXJmYWNlLT5waWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRl
ZFdoZW5FbnRlcmluZ0JhY2tncm91bmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW19mdWxs
c2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0QW5pbWF0aW5nVmlld0FscGhhOjFdOworfQorCistICh2
b2lkKWZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZQoreworICAgIF9yZXN0b3JlRnVsbHNjcmVl
biA9IFlFUzsKK30KKworLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZQoreworICAgIF9p
blBpY3R1cmVJblBpY3R1cmUgPSBOTzsKKyAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldElu
dGVyZmFjZShudWxscHRyKTsKKworICAgIGlmIChfcmVzdG9yZUZ1bGxzY3JlZW4pIHsKKyAgICAg
ICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl07CisgICAgICAgIF9yZXN0b3JlRnVsbHNj
cmVlbiA9IE5POworICAgIH0KK30KKwogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBVSUdl
c3R1cmVSZWNvZ25pemVyRGVsZWdhdGUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IDJm
MmI2ZWNjMjdjMjRkNGViY2M2YjY4ZDQzOWNhNzY3N2Q5Nzc2YWIuLmE0MjgwYTU2M2Y3M2YxNWEw
ZjRkOGRjZWQ1YTQ2NjZhNDJkYWNlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxheWVyQmFja2luZy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg+CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpKQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCIKQEAgLTIx
Nyw2ICsyMTgsMTYgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c2V0QW5pbWF0aW5nRnVs
bFNjcmVlbihib29sIGFuaW1hdGluZykKICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCkuZnVsbHNj
cmVlbk1hbmFnZXIoKS5zZXRBbmltYXRpbmdGdWxsc2NyZWVuKGFuaW1hdGluZyk7CiB9CiAKK3Zv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKQoreworICAg
IEFTU0VSVChtX2VsZW1lbnQpOworICAgIGlmICghbV9lbGVtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKFdl
YkNvcmU6OlByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgp
LmZ1bGxzY3JlZW5NYW5hZ2VyKCkucmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVu
dC5nZXQoKSwgRnVsbHNjcmVlbk1hbmFnZXI6OkV4ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJl
cXVpcmVtZW50KTsKK30KKwogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6cmVxdWVzdEV4aXRG
dWxsU2NyZWVuKCkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5o
CmluZGV4IDkxMjBhYzkwYzc3ZmRhYjIwMmUyNjc0OThhMDIxMDdhYTAxNjU4NjUuLjAxZmRmN2Zl
ZGI2Y2ZiZTZhODA2MjJjYWM2NGE2ZmNlNWVkZjg0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApA
QCAtNzcsNiArNzcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRQSVBTdGFuZGJ5RWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kik7CiAKICAgICB2b2lkIHNldEFuaW1hdGluZ0Z1
bGxTY3JlZW4oYm9vbCk7CisgICAgdm9pZCByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCk7CiAgICAg
dm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKICAgICB2b2lkIHNhdmVTY3JvbGxQb3NpdGlv
bigpOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGI2OWFlY2VjNmIwMWJhZjkxZjI2YzFhN2E5MzZh
Yzk3NzZiNzhiZjIuLmJlNTBkNmMzNDhkMDgyNzY5Mjc0ZmQxY2ZkNzFjMGQ1NjM3Y2RjOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yMiw2ICsyMiw3IEBA
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBtZXNzYWdlcyAtPiBXZWJGdWxsU2NyZWVu
TWFuYWdlciBMZWdhY3lSZWNlaXZlciB7CisgICAgUmVxdWVzdEVudGVyRnVsbFNjcmVlbigpCiAg
ICAgUmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKICAgICBXaWxsRW50ZXJGdWxsU2NyZWVuKCkKICAg
ICBEaWRFbnRlckZ1bGxTY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBlZmMwMDNi
ZDAxNTkxMDAwODJkZTNjZWYxZjYwOWZhNTIyNTFjYTVhLi40NTlkNWRiOTcyZGI4N2JjYmE4ZDVl
ZGY0NThjOTNlZTQ0NzE0NDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtOTQwLDYgKzk0
MCwxMSBAQCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcAogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJlcGFyZUZvclZpZGVvRnVs
bHNjcmVlbigpCit7CisgICAgbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKK30KKwog
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogewogICAgIHJldHVybiBtX3Bh
Z2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKG1vZGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3NWY0ODg1MmJmYTA2YjFhZDQwZTNiYmExZmEzY2Mz
ZTNmNDFhOGUuLjE1ODg5Y2NhMmM4MTJmZGU3Yzk5ODA2YTUxMTEyMDNjODhkMDI1NmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTI2NCw2ICsyNjQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdm9pZCBwcmVwYXJlRm9yVmlk
ZW9GdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFs
OwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkgZmluYWw7CiAgICAg
dm9pZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406245</attachid>
            <date>2020-08-07 22:02:20 -0700</date>
            <delta_ts>2020-08-10 09:44:36 -0700</delta_ts>
            <desc>WIP patch (fix build failures)</desc>
            <filename>bug-215305-20200807220219.patch</filename>
            <type>text/plain</type>
            <size>34957</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzMzUzZmU1ZThjOTRh
NWQ1ZmNkOTgzNTc4YWNmOTQzYTIzM2M5Mi4uNDRkMWI2NmY2YjY4MGQxNDk0NDc1MWU3NDc1NTU3
YTRhMjcwODcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA4LTA3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IHRv
IHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTMwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSk6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpoYXNWaWRlb0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBp
Y3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgor
CiAyMDIwLTA3LTMxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2xlYW4gdXAgdGV4dCBsYXlvdXQgY29kZSBhIGJpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMzc5
YmMwYjgxNzA2MmMxMzZmNzU0M2FiODZjMTlmYjgxYzMxYzI3Li42YzljYzExNTRlOGQ3YWFlYjQz
MzRhMmM3ZGQ0MjliNzgwNDRhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA4
LTA3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBz
dXBwb3J0IHRvIHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBp
Y3R1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NTMwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAo
LVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIHNldEFuaW1hdGluZ1ZpZXdBbHBo
YTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgX2NhbmNlbEFjdGlv
bjpdKToKKyAgICAgICAgKFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQ6OnNldFBhcmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRlcmZhY2UpOiBE
ZWxldGVkLgorICAgICAgICAoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbENsaWVudDo6aW50ZXJmYWNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZV0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklP
Uy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
clZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRQYXJlbnQpOgorICAgICAgICAoV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRl
cmZhY2UpOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNj
cmVlbk1vZGVsQ2xpZW50OjppbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1l
OmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
cmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIF9jb21wbGV0ZWRFeGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUlu
UGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGRpZEVu
dGVyUGljdHVyZUluUGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJblBp
Y3R1cmVdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6cmVxdWVz
dEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIwLTA3LTMxICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIEFkZCBFeHBlcmltZW50
YWwgRmVhdHVyZSBwcmVmZXJlbmNlIGZvciBTVyBWUDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKaW5kZXggMGM1YjJlZTdhOTk5MTdjMjY3ZDEyMzEyYjhkZjdlOTZkMjQ3N2Fk
MC4uNWUyNDU3OTJiZWM1MTcwMjk1YjQxOWMxNmIwN2Q4YmZhN2JhNWJmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAg
ICAgICBFbmZvcmNlSUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1lbnQsCiAgICAgICAgIEV4
ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50LAogICAgIH07Ci0gICAgdm9pZCBy
ZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCosIEZ1bGxzY3JlZW5DaGVja1R5cGUp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVs
ZW1lbnQqLCBGdWxsc2NyZWVuQ2hlY2tUeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWRFbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGY3YTJmODZhMmYzZWNlOWZmYzdlM2VlYWY2NDliNjhlNWIyNjc5YjMuLmMwZTMy
OGE4NDIzZTBkYmYzMzY3YTg4ZmVlOTdlNmM1NTBjNjhhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTk0OSw2ICs1OTQ5LDkgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAg
IGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkuZnVsbFNjcmVlbkVuYWJsZWQoKSAmJiBtb2RlID09
IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICBtX3RlbXBvcmFyaWx5QWxs
b3dpbmdJbmxpbmVQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgICAgICBtX3dh
aXRpbmdUb0VudGVyRnVsbHNjcmVlbiA9IHRydWU7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQorICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbigpOworI2VuZGlmCiAgICAgICAgIGRvY3VtZW50KCku
ZnVsbHNjcmVlbk1hbmFnZXIoKS5yZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQodGhpcywgRnVs
bHNjcmVlbk1hbmFnZXI6OkV4ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTU5NTYsNyArNTk1OSw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIAog
ICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgbW9kZV0gewogICAg
ICAgICBpZiAoZG9jdW1lbnQoKS5oaWRkZW4oKSkgewotICAgICAgICAgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCAiICByZXR1cm5pbmcgYmVjYXVzZSBkb2N1bWVudCBpcyBoaWRkZW4iKTsK
KyAgICAgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIiByZXR1cm5pbmcgYmVjYXVz
ZSBkb2N1bWVudCBpcyBoaWRkZW4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjMGEwZDMwYmNmZGYzZjQxY2YwZThk
N2YzZGU0YzI0YzAxZGI2Nzk4Li4wZmZlY2UwZWM3Y2Y0M2EwYmMxYWRjNWY4Y2FhZjVlMjZjNjE2
ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM1NSw2ICszNTUsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIHsgcmV0dXJu
IGZhbHNlOyB9CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdmly
dHVhbCB2b2lkIHByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW4oKSB7IH0KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIHsgVU5VU0VEX1BBUkFNKHN0YW5kYnkpOyB9
CiAgICAgdmlydHVhbCB2b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlh
RWxlbWVudCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1vZGVsLmgKaW5kZXggZmQyMTRjNDc2ZGFlZWZiYzc4NTlhODhjYTgzNTkw
ZDY2MjFlMTcwMC4uN2RmYjM1NjIwZjA0ZGYwNjQ0ZTU3YTg1OTI0NzZiNjViMWFmYmE0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9k
ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oCkBAIC03Niw4ICs3Niw5IEBAIHB1YmxpYzoKIGNsYXNzIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0Z1bGxzY3JlZW5Nb2RlbENs
aWVudCgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9DaGFuZ2VkKGJvb2wp
IHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9EaW1lbnNpb25zQ2hhbmdlZChjb25zdCBGbG9h
dFNpemUmKSB7IH07CisgICAgdmlydHVhbCB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9EaW1lbnNpb25zQ2hhbmdlZChjb25zdCBGbG9hdFNpemUm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oCmluZGV4IDI0ZDEzNThkZTliMjRiMzNiYjBkYzljYmVlOWNmMDE4NGViY2QxNTcuLjZjMzNl
ZDhmZmYxYjlhNjgyYzc2OTU1MzYyMDBlZTQxYzc2ODdjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oCkBAIC0xMzMsNyArMTMzLDcgQEAgcHVibGljOgogICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50TW9k
ZS5tb2RlKCk7IH0KICAgICBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjaygpIGNv
bnN0IHsgcmV0dXJuIG1fYWxsb3dzUGljdHVyZUluUGljdHVyZVBsYXliYWNrOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBtYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVy
ZSgpIGNvbnN0OwotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFdURjo6RnVu
Y3Rpb248dm9pZChib29sKT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCBwcmVwYXJlRm9yUGljdHVy
ZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAg
ICBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpOwogCkBAIC0xNTEsMTIg
KzE1MSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICBib29sIGhhc01vZGUoSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1fY3Vy
cmVudE1vZGUuaGFzTW9kZShtb2RlKTsgfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKTsKICAgICBVSVZp
ZXdDb250cm9sbGVyICpmdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBt
X3ZpZXdDb250cm9sbGVyLmdldCgpOyB9CiAgICAgV2ViQVZQbGF5ZXJMYXllclZpZXcqIHBsYXll
ckxheWVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyTGF5ZXJWaWV3LmdldCgpOyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBwaWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5FbnRl
cmluZ0JhY2tncm91bmQoKSBjb25zdDsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQoUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlQVZLaXQmKTsKQEAgLTIyMCw2ICsyMTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X3dhaXRpbmdGb3JQcmVwYXJlZFRvRXhpdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZEln
bm9yZUFWS2l0Q2FsbGJhY2tBYm91dEV4aXRGdWxsc2NyZWVuUmVhc29uIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
ZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tCmluZGV4IDAxMDNlZTc0NGY5MTVlZmQ4MTNhYWM3MWQ5NmJkZjU1Y2QwNmU3ZmMu
LmU4NjcyOGU1NmUwZTRhYjdhMjhiNGQ5NDc2YWZlMDMyODFlYTYwYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0KQEAgLTg1LDcgKzg1LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGJvb2xTdHJp
bmcoYm9vbCB2YWwpCiAjZW5kaWYKIAogc3RhdGljIGNvbnN0IFNlY29uZHMgZGVmYXVsdFdhdGNo
ZG9nVGltZXJJbnRlcnZhbCB7IDFfcyB9Owotc3RhdGljIGJvb2wgaWdub3JlV2F0Y2hkb2dGb3JE
ZWJ1Z2dpbmcgPSBmYWxzZTsKK3N0YXRpYyBib29sIGlnbm9yZVdhdGNoZG9nRm9yRGVidWdnaW5n
ID0gdHJ1ZTsKIAogQGludGVyZmFjZSBBVlBsYXllclZpZXdDb250cm9sbGVyIChEZXRhaWxzKQog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2hvd3NQbGF5YmFja0NvbnRyb2xzOwpAQCAtOTcw
LDEzICs5NzAsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVw
RnVsbHNjcmVlbigpCiAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmls
XTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250cm9sbGVyOm5pbF07
CiAgICAgCi0gICAgaWYgKG1fY3VycmVudE1vZGUuaGFzUGljdHVyZUluUGljdHVyZSgpKSB7Cisg
ICAgaWYgKG1fY3VycmVudE1vZGUuaGFzUGljdHVyZUluUGljdHVyZSgpKQogICAgICAgICBbbV9w
bGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wUGljdHVyZUluUGljdHVyZV07CiAKLSAgICAgICAgaWYg
KG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCi0gICAgICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGVsLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOwotICAgIH0KLQogICAgIGlmIChtX2N1cnJl
bnRNb2RlLmhhc0Z1bGxzY3JlZW4oKSkgewogICAgICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgdmlld10gbGF5b3V0SWZOZWVkZWRdOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5PIGNvbXBsZXRpb25IYW5kbGVyOltdIChCT09MIHN1
Y2Nlc3MsIE5TRXJyb3IqIGVycm9yKSB7CkBAIC0xMDAyLDYgKzk5OCwxMiBAQCB2b2lkIFZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgW3BsYXll
ckNvbnRyb2xsZXIoKSBzZXRIYXNFbmFibGVkVmlkZW86ZmFsc2VdOwogICAgIFtwbGF5ZXJDb250
cm9sbGVyKCkgc2V0SGFzVmlkZW86ZmFsc2VdOwogCisgICAgaWYgKG1fZXhpdGluZ1BpY3R1cmVJ
blBpY3R1cmUpIHsKKyAgICAgICAgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwor
ICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAgICAgICAgICAgIG1fdmlkZW9G
dWxsc2NyZWVuTW9kZWwtPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CisgICAgfQorCiAgICAg
aWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQogICAgICAgICBtX2Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci0+ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKIH0KQEAgLTEwNjYsNyArMTA2OCw3
IEBAIGJvb2wgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6Om1heUF1dG9tYXRpY2FsbHlT
aG93VmlkZW9QaWN0dXJlSW5QaWN0dXJlKCkKICAgICByZXR1cm4gW3BsYXllckNvbnRyb2xsZXIo
KSBpc1BsYXlpbmddICYmIChtX3N0YW5kYnkgfHwgbV9jdXJyZW50TW9kZS5pc0Z1bGxzY3JlZW4o
KSkgJiYgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGNhbGxiYWNrKQogewogICAgIG1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKTsKICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCkBA
IC0xMTQ0LDYgKzExNDYsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3
aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSglcCkiLCB0
aGlzKTsKIAorICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwogICAgIG1fc2hv
dWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7CiAKICAgICBpZiAo
bV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9y
UGljdHVyZUluUGljdHVyZVN0b3ApCkBAIC0xMTkwLDYgKzExOTMsNyBAQCB2b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUluUGljdHVyZSgpCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0
b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShCT09MIHJl
c3RvcmVkKSkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbkhhbmRs
ZXIoJXApIiwgdGhpcyk7CisKICAgICBpZiAobV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVu
U3RvcHBpbmdQaVApIHsKICAgICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3Rv
cHBpbmdQaVAgPSBmYWxzZTsKICAgICAgICAgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVy
ZUluUGljdHVyZVN0b3AgPSB0cnVlOwpAQCAtMTIwNSw3ICsxMjA5LDcgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wV2l0
aENvbXBsZXRpb24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHN0cm9uZ0Nv
bXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pXShib29s
IHJlc3RvcmVkKSAgeworICAgIHByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcChbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHN0cm9uZ0NvbXBsZXRpb25IYW5kbGVyID0gYWRv
cHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pXShib29sIHJlc3RvcmVkKSAgewogICAgICAg
ICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJl
Rm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIgbGFtYmRhKCVwKSAt
IHJlc3RvcmVkKCVzKSIsIHByb3RlY3RlZFRoaXMuZ2V0KCksIGJvb2xTdHJpbmcocmVzdG9yZWQp
KTsKICAgICAgICAgKCh2b2lkICheKShCT09MKSlzdHJvbmdDb21wbGV0aW9uSGFuZGxlci5nZXQo
KSkocmVzdG9yZWQpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IGVkYWNj
ZTNjMGRhNTE5MGE2NjAyYmIxZmZlZWJmOGJlZWQ2Y2M1ZTAuLjRjNTI0YmQ1MDQ0YjA2YWQ4YjRl
MmY5MGNmZGY3ZDI5MTM0MGNhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI3Miw2
ICsyNzIsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCkKIHsKICAgICBpZiAobV9tYW5hZ2VyKQogICAgICAgICBtX21hbmFn
ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShtX2NvbnRleHRJZCk7CisKKyAgICBmb3Ig
KGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAgICAgY2xpZW50LT5mdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUoKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6
OnJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpAQCAtNTEyLDcgKzUxNSw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAgICAg
TUVTU0FHRV9DSEVDSyh2aWRlb0xheWVySUQpOwogCiAgICAgYXV0byYgW21vZGVsLCBpbnRlcmZh
Y2VdID0gZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKLSAgICBhZGRDbGllbnRG
b3JDb250ZXh0KGNvbnRleHRJZCk7CisgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSB8
fCAhc3RhbmRieSkKKyAgICAgICAgYWRkQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwogCiAg
ICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpIHsKICAgICAgICAgaWYg
KCF2aWRlb0RpbWVuc2lvbnMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcAppbmRleCA0NmYwMWZlZDFkNjBm
NDk0MmQ5MTA3ODY5N2JlOWQwOTQ0ODNlOWNmLi5kNDgzNmYxNjRkZjk0OWM5ZjY4Mzk1YzAzYjc4
NTVjZmY1ODFmZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtOTIsNiArOTIsMTEgQEAgdm9pZCBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5OjpzZXRBbmltYXRpbmdGdWxsU2NyZWVuKGJvb2wgYW5pbWF0aW5n
KQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6U2V0QW5p
bWF0aW5nRnVsbFNjcmVlbihhbmltYXRpbmcpKTsKIH0KIAordm9pZCBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBtX3BhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OlJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKSk7
Cit9CisKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsU2Ny
ZWVuKCkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6
OlJlcXVlc3RFeGl0RnVsbFNjcmVlbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBkZTFkMzMwN2UzYmU3M2Y3MTFk
ZTQ1OTViMTdmYWFhYzg4Njc5ZDQxLi4wMGQzZDBhYTIzZjQwYjBiYjcxMjg4MjYzMmE0MTllODYw
OGJhNjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oCkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxF
eGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxTY3JlZW4oKTsKICAgICB2b2lk
IHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCk7CisgICAgdm9pZCByZXF1ZXN0RW50ZXJGdWxs
U2NyZWVuKCk7CiAgICAgdm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKICAgICB2b2lkIHNh
dmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5WaWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxz
Y3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaAppbmRleCA5NWE5NTIwZjIzNTAyYTE2
NjU1ZWU3Y2Y2NmU0N2QwYmFmM2M3YWM4Li5jNDE1Nzg1MTExMzNlNWMxMzUyYzE0Yzc2OTIzMDY0
NzhhMWE2NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmgKQEAgLTMz
LDcgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGludGVyZmFjZSBXS0Z1bGxT
Y3JlZW5WaWV3Q29udHJvbGxlciA6IFVJVmlld0NvbnRyb2xsZXIKIEBwcm9wZXJ0eSAocmV0YWlu
LCBub25hdG9taWMpIGlkIHRhcmdldDsKLUBwcm9wZXJ0eSAoYXNzaWduLCBub25hdG9taWMpIFNF
TCBhY3Rpb247CitAcHJvcGVydHkgKGFzc2lnbiwgbm9uYXRvbWljKSBTRUwgZXhpdEZ1bGxTY3Jl
ZW5BY3Rpb247CiBAcHJvcGVydHkgKGNvcHksIG5vbmF0b21pYykgTlNTdHJpbmcgKmxvY2F0aW9u
OwogQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykgQk9PTCBwcmVmZXJzU3RhdHVzQmFySGlk
ZGVuOwogQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykgQk9PTCBwcmVmZXJzSG9tZUluZGlj
YXRvckF1dG9IaWRkZW47CkBAIC00NSw2ICs0NSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAtICh2b2lkKXNob3dVSTsKIC0gKHZvaWQpaGlkZVVJOwogLSAodm9pZCl2aWRlb0NvbnRyb2xz
TWFuYWdlckRpZENoYW5nZTsKKy0gKHZvaWQpc2V0QW5pbWF0aW5nVmlld0FscGhhOihDR0Zsb2F0
KWFscGhhOwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9s
bGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2Ny
ZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggNzhjMDAxNTJmMWE0MzcwMDVjZDkyOTAzOThhN2Zj
Y2U4N2MxZjk4MC4uYWE2YzQwMjFmYzMzY2FmNmM0OTQ3OThiN2VkMmQxZjc3NDQyMDdiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2Ny
ZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KQEAgLTQ2LDEyICs0Niw2IEBA
IHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBhdXRvSGlkZURlbGF5ID0gNC4wOwogCiBAY2xh
c3MgV0tGdWxsc2NyZWVuU3RhY2tWaWV3OwogCi1AaW50ZXJmYWNlIFdLRnVsbFNjcmVlblZpZXdD
b250cm9sbGVyIChWaWRlb0Z1bGxzY3JlZW5DbGllbnRDYWxsYmFja3MpCi0tICh2b2lkKXdpbGxF
bnRlclBpY3R1cmVJblBpY3R1cmU7Ci0tICh2b2lkKWRpZEVudGVyUGljdHVyZUluUGljdHVyZTsK
LS0gKHZvaWQpZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmU7Ci1AZW5kCi0KIGNsYXNzIFdL
RnVsbFNjcmVlblZpZXdDb250cm9sbGVyUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQgOiBXZWJD
b3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCB7CiBwdWJsaWM6CiAgICAgdm9pZCBzZXRQ
YXJlbnQoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBh
cmVudDsgfQpAQCAtODcsNDUgKzgxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ+IG1faW50ZXJmYWNlOwogfTsKIAotY2xhc3Mg
V0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCA6IFdl
YkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLXB1YmxpYzoKLSAgICB2b2lkIHNldFBhcmVudChXS0Z1bGxTY3JlZW5WaWV3Q29u
dHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9Ci0KLSAgICB2b2lkIHNldElu
dGVyZmFjZShXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCogaW50ZXJmYWNl
KQotICAgIHsKLSAgICAgICAgaWYgKG1faW50ZXJmYWNlID09IGludGVyZmFjZSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBpZiAobV9pbnRlcmZhY2UgJiYgbV9pbnRlcmZhY2UtPnZp
ZGVvRnVsbHNjcmVlbk1vZGVsKCkpCi0gICAgICAgICAgICBtX2ludGVyZmFjZS0+dmlkZW9GdWxs
c2NyZWVuTW9kZWwoKS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKLSAgICAgICAgbV9pbnRlcmZhY2Ug
PSBpbnRlcmZhY2U7Ci0gICAgICAgIGlmIChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+dmlk
ZW9GdWxsc2NyZWVuTW9kZWwoKSkKLSAgICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxz
Y3JlZW5Nb2RlbCgpLT5hZGRDbGllbnQoKnRoaXMpOwotICAgIH0KLQotICAgIFdlYkNvcmU6OlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZhY2UoKSBjb25zdCB7IHJldHVybiBt
X2ludGVyZmFjZS5nZXQoKTsgfQotCi0gICAgdm9pZCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJl
KCkgZmluYWwKLSAgICB7Ci0gICAgICAgIFttX3BhcmVudCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0
dXJlXTsKLSAgICB9Ci0KLSAgICB2b2lkIGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpIGZpbmFs
Ci0gICAgewotICAgICAgICBbbV9wYXJlbnQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKLSAg
ICB9Ci0KLSAgICB2b2lkIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKLSAg
ICB7Ci0gICAgICAgIFttX3BhcmVudCBmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZV07Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyICptX3BhcmVu
dCB7IG51bGxwdHIgfTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ+IG1faW50ZXJmYWNlOwotfTsKLQogI3ByYWdtYSBtYXJrIC0gX1dLRXh0cmluc2lj
QnV0dG9uCiAKIEBpbnRlcmZhY2UgX1dLRXh0cmluc2ljQnV0dG9uIDogVUlCdXR0b24KQEAgLTE2
NCw3ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxOU0xheW91dENvbnN0cmFpbnQ+
IF90b3BDb25zdHJhaW50OwogICAgIFdlYktpdDo6RnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGlj
IF9zZWNoZXVyaXN0aWM7CiAgICAgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJQbGF5YmFja1Nl
c3Npb25Nb2RlbENsaWVudCBfcGxheWJhY2tDbGllbnQ7Ci0gICAgV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50
OwogICAgIENHRmxvYXQgX25vblplcm9TdGF0dXNCYXJIZWlnaHQ7CiB9CiAKQEAgLTE4OCw3ICsx
NDIsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZWxmLl93ZWJW
aWV3ID0gd2ViVmlldzsKIAogICAgIF9wbGF5YmFja0NsaWVudC5zZXRQYXJlbnQoc2VsZik7Ci0g
ICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQoc2VsZik7CiAKICAgICByZXR1cm4g
c2VsZjsKIH0KQEAgLTIwMCw4ICsxNTMsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogICAgIF9wbGF5YmFja0NsaWVudC5zZXRQYXJlbnQobnVsbHB0cik7CiAgICAgX3Bs
YXliYWNrQ2xpZW50LnNldEludGVyZmFjZShudWxscHRyKTsKLSAgICBfdmlkZW9GdWxsc2NyZWVu
Q2xpZW50LnNldFBhcmVudChudWxscHRyKTsKLSAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNl
dEludGVyZmFjZShudWxscHRyKTsKIAogICAgIFtfdGFyZ2V0IHJlbGVhc2VdOwogICAgIFtfbG9j
YXRpb24gcmVsZWFzZV07CkBAIC0yNjEsNyArMjEyLDYgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgYXV0byogcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlID0gdmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlID8gJnZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+cGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlKCkgOiBudWxscHRyOwogCiAgICAgX3BsYXliYWNrQ2xpZW50LnNldElu
dGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5D
bGllbnQuc2V0SW50ZXJmYWNlKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk7CiAKICAgICBXZWJD
b3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbCogcGxheWJhY2tTZXNzaW9uTW9kZWwgPSBwbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UgPyBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UtPnBsYXliYWNrU2Vz
c2lvbk1vZGVsKCkgOiBudWxscHRyOwogICAgIHNlbGYucGxheWluZyA9IHBsYXliYWNrU2Vzc2lv
bk1vZGVsID8gcGxheWJhY2tTZXNzaW9uTW9kZWwtPmlzUGxheWluZygpIDogTk87CkBAIC0yNzIs
NiArMjIyLDEzIEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtfcGlw
QnV0dG9uIHNldEhpZGRlbjohaXNQaVBFbmFibGVkIHx8ICFpc1BpUFN1cHBvcnRlZF07CiB9CiAK
Ky0gKHZvaWQpc2V0QW5pbWF0aW5nVmlld0FscGhhOihDR0Zsb2F0KWFscGhhCit7CisgICAgW1VJ
VmlldyBhbmltYXRlV2l0aER1cmF0aW9uOnBpcEhpZGVBbmltYXRpb25EdXJhdGlvbiBhbmltYXRp
b25zOl57CisgICAgICAgIF9hbmltYXRpbmdWaWV3LmdldCgpLmFscGhhID0gYWxwaGE7CisgICAg
fV07Cit9CisKIC0gKHZvaWQpc2V0UHJlZmVyc1N0YXR1c0JhckhpZGRlbjooQk9PTCl2YWx1ZQog
ewogICAgIF9wcmVmZXJzU3RhdHVzQmFySGlkZGVuID0gdmFsdWU7CkBAIC0zMzAsMzMgKzI4Nyw2
IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbc2VsZiBzaG93
VUldOwogfQogCi0tICh2b2lkKXdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUKLXsKLSAgICBhdXRv
KiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmludGVyZmFjZSgpOwotICAgIGlm
ICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2UtPnBpY3R1cmVJblBpY3R1cmVXYXNTdGFydGVkV2hl
bkVudGVyaW5nQmFja2dyb3VuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbVUlWaWV3IGFu
aW1hdGVXaXRoRHVyYXRpb246cGlwSGlkZUFuaW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbnM6XnsK
LSAgICAgICAgX2FuaW1hdGluZ1ZpZXcuZ2V0KCkuYWxwaGEgPSAwOwotICAgIH1dOwotfQotCi0t
ICh2b2lkKWRpZEVudGVyUGljdHVyZUluUGljdHVyZQotewotICAgIFtzZWxmIF9jYW5jZWxBY3Rp
b246c2VsZl07Ci19Ci0KLS0gKHZvaWQpZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUKLXsK
LSAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmludGVyZmFjZSgp
OwotICAgIGlmICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2UtPnBpY3R1cmVJblBpY3R1cmVXYXNT
dGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBb
VUlWaWV3IGFuaW1hdGVXaXRoRHVyYXRpb246cGlwSGlkZUFuaW1hdGlvbkR1cmF0aW9uIGFuaW1h
dGlvbnM6XnsKLSAgICAgICAgX2FuaW1hdGluZ1ZpZXcuZ2V0KCkuYWxwaGEgPSAxOwotICAgIH1d
OwotfQotCiAjcHJhZ21hIG1hcmsgLSBVSVZpZXdDb250cm9sbGVyIE92ZXJyaWRlcwogCiAtICh2
b2lkKWxvYWRWaWV3CkBAIC01MDMsNyArNDMzLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKIC0gKHZvaWQpX2NhbmNlbEFjdGlvbjooaWQpc2VuZGVyCiB7Ci0gICAgW1tz
ZWxmIHRhcmdldF0gcGVyZm9ybVNlbGVjdG9yOltzZWxmIGFjdGlvbl1dOworICAgIFtbc2VsZiB0
YXJnZXRdIHBlcmZvcm1TZWxlY3Rvcjpbc2VsZiBleGl0RnVsbFNjcmVlbkFjdGlvbl1dOwogfQog
CiAtICh2b2lkKV90b2dnbGVQaVBBY3Rpb246KGlkKXNlbmRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcklPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oCmluZGV4IDMxZWM4MWM4NzBmNDBlZGZlY2FiOGIz
OGFmNzM1MDBiY2ZkODRkN2IuLmZkMzk5YTBhMDczMmZmMTE4NTQ5YTEyZmY4ZTRlNjQyZWY3MzQ5
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmgKQEAg
LTM2LDYgKzM2LDcgQEAKIC0gKGlkKWluaXRXaXRoV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dzsKIC0gKHZvaWQpZW50ZXJGdWxsU2NyZWVuOwogLSAodm9pZCliZWdhbkVudGVyRnVsbFNjcmVl
bldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFtZTooQ0dSZWN0
KWZpbmFsRnJhbWU7CistICh2b2lkKXJlcXVlc3RFbnRlckZ1bGxTY3JlZW47CiAtICh2b2lkKXJl
cXVlc3RFeGl0RnVsbFNjcmVlbjsKIC0gKHZvaWQpZXhpdEZ1bGxTY3JlZW47CiAtICh2b2lkKWJl
Z2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZp
bmFsRnJhbWU6KENHUmVjdClmaW5hbEZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXJJT1MubW0KaW5kZXggNDZiY2U2YWNkYTRlMTUzOTEyZGZiMjFjMWU1NjZk
NDg0M2JmM2MxZC4uNzNjYzk4OWZmNGIwZmRlNzhiZWYzZWRlMWFjODVkNDE1YWIwM2FmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCkBAIC00MjQs
NiArNDI0LDY1IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRp
b24gPSAwLjI7CiAKICNwcmFnbWEgbWFyayAtCiAKK0BpbnRlcmZhY2UgV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVuQ2xpZW50Q2FsbGJhY2tzKQorLSAodm9pZCl3
aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlOworLSAodm9pZClkaWRFbnRlclBpY3R1cmVJblBpY3R1
cmU7CistICh2b2lkKWZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlOworLSAodm9pZClmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CistICh2b2lkKWRpZEV4aXRQaWN0dXJlSW5QaWN0dXJl
OworQGVuZAorCitjbGFzcyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDbGllbnQgOiBXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdm9pZCBzZXRQYXJlbnQo
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50
OyB9CisKKyAgICB2b2lkIHNldEludGVyZmFjZShXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdCogaW50ZXJmYWNlKQorICAgIHsKKyAgICAgICAgaWYgKG1faW50ZXJmYWNlID09
IGludGVyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAobV9pbnRlcmZh
Y2UgJiYgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCisgICAgICAgICAgICBt
X2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsK
KyAgICAgICAgbV9pbnRlcmZhY2UgPSBpbnRlcmZhY2U7CisgICAgICAgIGlmIChtX2ludGVyZmFj
ZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKSkKKyAgICAgICAgICAgIG1f
aW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpLT5hZGRDbGllbnQoKnRoaXMpOworICAg
IH0KKworICAgIFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZh
Y2UoKSBjb25zdCB7IHJldHVybiBtX2ludGVyZmFjZS5nZXQoKTsgfQorCisgICAgdm9pZCB3aWxs
RW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKKyAgICB7CisgICAgICAgIFttX3BhcmVudCB3
aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKKyAgICB2b2lkIGRpZEVudGVyUGlj
dHVyZUluUGljdHVyZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJlbnQgZGlkRW50ZXJQ
aWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKKyAgICB2b2lkIGZhaWxlZFRvRW50ZXJQaWN0dXJl
SW5QaWN0dXJlKCkgZmluYWwKKyAgICB7CisgICAgICAgIFttX3BhcmVudCBmYWlsZWRUb0VudGVy
UGljdHVyZUluUGljdHVyZV07CisgICAgfQorCisgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fcGFyZW50IGZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZV07CisgICAgfQorCisgICAgdm9pZCBkaWRFeGl0UGljdHVyZUluUGljdHVy
ZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJlbnQgZGlkRXhpdFBpY3R1cmVJblBpY3R1
cmVdOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
ICptX3BhcmVudCB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ+IG1faW50ZXJmYWNlOworfTsKKworI3ByYWdtYSBtYXJrIC0KKwog
QGltcGxlbWVudGF0aW9uIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgewogICAgIFJldGFp
blB0cjxXS0Z1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXc+IF93ZWJWaWV3UGxhY2Vob2xkZXI7CiAK
QEAgLTQ0MSw2ICs1MDAsMTAgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRp
b25EdXJhdGlvbiA9IDAuMjsKICAgICBSZXRhaW5QdHI8VUlQaW5jaEdlc3R1cmVSZWNvZ25pemVy
PiBfaW50ZXJhY3RpdmVQaW5jaERpc21pc3NHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5Q
dHI8V0tGdWxsU2NyZWVuSW50ZXJhY3RpdmVUcmFuc2l0aW9uPiBfaW50ZXJhY3RpdmVEaXNtaXNz
VHJhbnNpdGlvbkNvb3JkaW5hdG9yOwogCisgICAgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
clZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7CisgICAg
Qk9PTCBfaW5QaWN0dXJlSW5QaWN0dXJlOworICAgIEJPT0wgX3Jlc3RvcmVGdWxsc2NyZWVuOwor
CiAgICAgQ0dSZWN0IF9pbml0aWFsRnJhbWU7CiAgICAgQ0dSZWN0IF9maW5hbEZyYW1lOwogCkBA
IC00NjAsNiArNTIzLDcgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25E
dXJhdGlvbiA9IDAuMjsKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHNlbGYuX3dlYlZpZXcg
PSB3ZWJWaWV3OworICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0UGFyZW50KHNlbGYpOwog
CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC00NjksNiArNTMzLDkgQEAgc3RhdGljIGNvbnN0IE5T
VGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICBbTlNPYmplY3QgY2Fu
Y2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGZdOwogICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07CiAKKyAg
ICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZShudWxscHRyKTsKKyAgICBfdmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LnNldFBhcmVudChudWxscHRyKTsKKwogICAgIFtzdXBlciBkZWFs
bG9jXTsKIH0KIApAQCAtNTI0LDcgKzU5MSw3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZh
bCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xs
ZXIgc2V0VHJhbnNpdGlvbmluZ0RlbGVnYXRlOnNlbGZdOwogICAgIFtfZnVsbHNjcmVlblZpZXdD
b250cm9sbGVyIHNldE1vZGFsUHJlc2VudGF0aW9uQ2FwdHVyZXNTdGF0dXNCYXJBcHBlYXJhbmNl
OllFU107CiAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0VGFyZ2V0OnNlbGZdOwot
ICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldEFjdGlvbjpAc2VsZWN0b3IocmVxdWVz
dEV4aXRGdWxsU2NyZWVuKV07CisgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0RXhp
dEZ1bGxTY3JlZW5BY3Rpb246QHNlbGVjdG9yKHJlcXVlc3RFeGl0RnVsbFNjcmVlbildOwogICAg
IF9mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIuZ2V0KCkudmlldy5mcmFtZSA9IF9yb290Vmlld0Nv
bnRyb2xsZXIuZ2V0KCkudmlldy5ib3VuZHM7CiAgICAgW3NlbGYgX3VwZGF0ZUxvY2F0aW9uSW5m
b107CiAKQEAgLTY1Miw2ICs3MTksMTAgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtB
bmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICAgICAgICAgIG1hbmFnZXItPmRpZEVudGVyRnVs
bFNjcmVlbigpOwogICAgICAgICAgICAgbWFuYWdlci0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihm
YWxzZSk7CiAgICAgICAgICAgICBwYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZh
bHNlKTsKKworICAgICAgICAgICAgYXV0byogdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IHBhZ2Ut
PnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKKyAgICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgICAgICAg
ICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZSh2aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTY2MCw2ICs3MzEs
MTkgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAu
MjsKICAgICB9XTsKIH0KIAorLSAodm9pZClyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuCit7CisgICAg
aWYgKF9mdWxsU2NyZWVuU3RhdGUgIT0gV2ViS2l0OjpOb3RJbkZ1bGxTY3JlZW4pCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChhdXRvKiBtYW5hZ2VyID0gc2VsZi5fbWFuYWdlcikgeworICAg
ICAgICBtYW5hZ2VyLT5yZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogLSAodm9pZClyZXF1ZXN0
RXhpdEZ1bGxTY3JlZW4KIHsKICAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSAhPSBXZWJLaXQ6Oklu
RnVsbFNjcmVlbikgewpAQCAtNzc5LDYgKzg2Myw4IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRl
cnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29u
dHJvbGxlciBzZXRQcmVmZXJzU3RhdHVzQmFySGlkZGVuOllFU107CiAgICAgX2Z1bGxzY3JlZW5W
aWV3Q29udHJvbGxlciA9IG5pbDsKKyAgICBpZiAoIV9pblBpY3R1cmVJblBpY3R1cmUpCisgICAg
ICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKG51bGxwdHIpOwogICAgIF9l
eGl0UmVxdWVzdGVkID0gTk87CiB9CiAKQEAgLTc5OCw2ICs4ODQsMTEgQEAgc3RhdGljIGNvbnN0
IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKIHsKICAgICBpZiAoX2Z1
bGxzY3JlZW5WaWV3Q29udHJvbGxlcikKICAgICAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xs
ZXIgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2VdOworCisgICAgYXV0byBwYWdlID0gW3Nl
bGYuX3dlYlZpZXcgX3BhZ2VdOworICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBw
YWdlID8gcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpIDogbnVsbHB0cjsKKyAgICBhdXRv
KiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRy
OworICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKHZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZSk7CiB9CiAKIC0gKHZvaWQpcGxhY2Vob2xkZXJXaWxsTW92ZVRvU3VwZXJ2aWV3
OihVSVZpZXcgKilzdXBlcnZpZXcKQEAgLTgxMSw2ICs5MDIsNDYgQEAgc3RhdGljIGNvbnN0IE5T
VGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICB9KTsKIH0KIAorLSAo
dm9pZCl3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlCit7CisgICAgYXV0byogaW50ZXJmYWNlID0g
X3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5pbnRlcmZhY2UoKTsKKyAgICBpZiAoIWludGVyZmFjZSB8
fCAhaW50ZXJmYWNlLT5waWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5FbnRlcmluZ0JhY2tn
cm91bmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xs
ZXIgc2V0QW5pbWF0aW5nVmlld0FscGhhOjBdOworfQorCistICh2b2lkKWRpZEVudGVyUGljdHVy
ZUluUGljdHVyZQoreworICAgIF9pblBpY3R1cmVJblBpY3R1cmUgPSBZRVM7CisgICAgW3NlbGYg
cmVxdWVzdEV4aXRGdWxsU2NyZWVuXTsKK30KKworLSAodm9pZClmYWlsZWRUb0VudGVyUGljdHVy
ZUluUGljdHVyZQoreworICAgIGF1dG8qIGludGVyZmFjZSA9IF92aWRlb0Z1bGxzY3JlZW5DbGll
bnQuaW50ZXJmYWNlKCk7CisgICAgaWYgKCFpbnRlcmZhY2UgfHwgIWludGVyZmFjZS0+cGljdHVy
ZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdCYWNrZ3JvdW5kKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldEFuaW1hdGluZ1ZpZXdB
bHBoYToxXTsKK30KKworLSAodm9pZClmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUKK3sKKyAg
ICBfcmVzdG9yZUZ1bGxzY3JlZW4gPSBZRVM7Cit9CisKKy0gKHZvaWQpZGlkRXhpdFBpY3R1cmVJ
blBpY3R1cmUKK3sKKyAgICBfaW5QaWN0dXJlSW5QaWN0dXJlID0gTk87CisgICAgX3ZpZGVvRnVs
bHNjcmVlbkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7CisKKyAgICBpZiAoX3Jlc3RvcmVG
dWxsc2NyZWVuKSB7CisgICAgICAgIFtzZWxmIHJlcXVlc3RFbnRlckZ1bGxTY3JlZW5dOworICAg
ICAgICBfcmVzdG9yZUZ1bGxzY3JlZW4gPSBOTzsKKyAgICB9Cit9CisKICNwcmFnbWEgbWFyayAt
CiAjcHJhZ21hIG1hcmsgVUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcAppbmRleCAyZjJiNmVjYzI3YzI0ZDRlYmNjNmI2OGQ0MzljYTc2NzdkOTc3NmFi
Li5hNDI4MGE1NjNmNzNmMTVhMGY0ZDhkY2VkNWE0NjY2YTQyZGFjZWU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJM
YXllckJhY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGlj
YXRvci5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLmgiCkBAIC0yMTcsNiArMjE4LDE2IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFn
ZXI6OnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCBhbmltYXRpbmcpCiAgICAgbV9lbGVtZW50
LT5kb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkuc2V0QW5pbWF0aW5nRnVsbHNjcmVlbihh
bmltYXRpbmcpOwogfQogCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RW50ZXJG
dWxsU2NyZWVuKCkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50KTsKKyAgICBpZiAoIW1fZWxlbWVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3Ig
Z2VzdHVyZUluZGljYXRvcihXZWJDb3JlOjpQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIG1f
ZWxlbWVudC0+ZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RGdWxsc2NyZWVu
Rm9yRWxlbWVudChtX2VsZW1lbnQuZ2V0KCksIEZ1bGxzY3JlZW5NYW5hZ2VyOjpFeGVtcHRJRnJh
bWVBbGxvd0Z1bGxzY3JlZW5SZXF1aXJlbWVudCk7Cit9CisKIHZvaWQgV2ViRnVsbFNjcmVlbk1h
bmFnZXI6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxs
U2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCA5MTIwYWM5MGM3N2ZkYWIyMDJlMjY3NDk4YTAyMTA3
YWEwMTY1ODY1Li4wMWZkZjdmZWRiNmNmYmU2YTgwNjIyY2FjNjRhNmZjZTVlZGY4NDY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmgKQEAgLTc3LDYgKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
c2V0UElQU3RhbmRieUVsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopOwogCiAgICAg
dm9pZCBzZXRBbmltYXRpbmdGdWxsU2NyZWVuKGJvb2wpOworICAgIHZvaWQgcmVxdWVzdEVudGVy
RnVsbFNjcmVlbigpOwogICAgIHZvaWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdm9p
ZCBzYXZlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBiNjlhZWNlYzZi
MDFiYWY5MWYyNmMxYTdhOTM2YWM5Nzc2Yjc4YmYyLi5iZTUwZDZjMzQ4ZDA4Mjc2OTI3NGZkMWNm
ZDcxYzBkNTYzN2NkYzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMjIsNiArMjIsNyBAQAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogbWVzc2Fn
ZXMgLT4gV2ViRnVsbFNjcmVlbk1hbmFnZXIgTGVnYWN5UmVjZWl2ZXIgeworICAgIFJlcXVlc3RF
bnRlckZ1bGxTY3JlZW4oKQogICAgIFJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiAgICAgV2lsbEVu
dGVyRnVsbFNjcmVlbigpCiAgICAgRGlkRW50ZXJGdWxsU2NyZWVuKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggZWZjMDAzYmQwMTU5MTAwMDgyZGUzY2VmMWY2MDlmYTUyMjUxY2E1YS4uNDU5
ZDVkYjk3MmRiODdiY2JhOGQ1ZWRmNDU4YzkzZWU0NDcxNDQ2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTk0MCw2ICs5NDAsMTEgQEAgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmIHAKIAogI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIG1fcGFnZS52aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKCk7Cit9CisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVs
bHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkK
IHsKICAgICByZXR1cm4gbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5zdXBwb3J0c1Zp
ZGVvRnVsbHNjcmVlbihtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBlNzVmNDg4NTJiZmEw
NmIxYWQ0MGUzYmJhMWZhM2NjM2UzZjQxYThlLi4xNTg4OWNjYTJjODEyZmRlN2M5OTgwNmE1MTEx
MjAzYzg4ZDAyNTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNjQsNiArMjY0LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAg
IHZvaWQgcHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbigpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9y
dHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3Rh
bmRieSgpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQoYm9vbCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406303</attachid>
            <date>2020-08-10 09:44:37 -0700</date>
            <delta_ts>2020-08-10 10:27:39 -0700</delta_ts>
            <desc>WIP patch v2</desc>
            <filename>bug-215305-20200810094436.patch</filename>
            <type>text/plain</type>
            <size>41745</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzMzUzZmU1ZThjOTRh
NWQ1ZmNkOTgzNTc4YWNmOTQzYTIzM2M5Mi4uNDRkMWI2NmY2YjY4MGQxNDk0NDc1MWU3NDc1NTU3
YTRhMjcwODcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA4LTA3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IHRv
IHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTMwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSk6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpoYXNWaWRlb0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBp
Y3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgor
CiAyMDIwLTA3LTMxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2xlYW4gdXAgdGV4dCBsYXlvdXQgY29kZSBhIGJpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMzc5
YmMwYjgxNzA2MmMxMzZmNzU0M2FiODZjMTlmYjgxYzMxYzI3Li42YzljYzExNTRlOGQ3YWFlYjQz
MzRhMmM3ZGQ0MjliNzgwNDRhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA4
LTA3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBz
dXBwb3J0IHRvIHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBp
Y3R1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NTMwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAo
LVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIHNldEFuaW1hdGluZ1ZpZXdBbHBo
YTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgX2NhbmNlbEFjdGlv
bjpdKToKKyAgICAgICAgKFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQ6OnNldFBhcmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRlcmZhY2UpOiBE
ZWxldGVkLgorICAgICAgICAoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbENsaWVudDo6aW50ZXJmYWNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZV0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklP
Uy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
clZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRQYXJlbnQpOgorICAgICAgICAoV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRl
cmZhY2UpOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNj
cmVlbk1vZGVsQ2xpZW50OjppbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1l
OmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
cmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIF9jb21wbGV0ZWRFeGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUlu
UGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGRpZEVu
dGVyUGljdHVyZUluUGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJblBp
Y3R1cmVdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6cmVxdWVz
dEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIwLTA3LTMxICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIEFkZCBFeHBlcmltZW50
YWwgRmVhdHVyZSBwcmVmZXJlbmNlIGZvciBTVyBWUDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKaW5kZXggMGM1YjJlZTdhOTk5MTdjMjY3ZDEyMzEyYjhkZjdlOTZkMjQ3N2Fk
MC4uNWUyNDU3OTJiZWM1MTcwMjk1YjQxOWMxNmIwN2Q4YmZhN2JhNWJmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAg
ICAgICBFbmZvcmNlSUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1lbnQsCiAgICAgICAgIEV4
ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50LAogICAgIH07Ci0gICAgdm9pZCBy
ZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCosIEZ1bGxzY3JlZW5DaGVja1R5cGUp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVs
ZW1lbnQqLCBGdWxsc2NyZWVuQ2hlY2tUeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWRFbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGY3YTJmODZhMmYzZWNlOWZmYzdlM2VlYWY2NDliNjhlNWIyNjc5YjMuLjA4ZGVi
MDdkYmFmMzFiNDYzMjIyNTU4ZmM2MzBlN2UyYTdiZDFhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTk1Niw3ICs1OTU2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogCiAg
ICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBtb2RlXSB7CiAgICAg
ICAgIGlmIChkb2N1bWVudCgpLmhpZGRlbigpKSB7Ci0gICAgICAgICAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICIgIHJldHVybmluZyBiZWNhdXNlIGRvY3VtZW50IGlzIGhpZGRlbiIpOwor
ICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIHJldHVybmluZyBiZWNhdXNl
IGRvY3VtZW50IGlzIGhpZGRlbiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTYwMzAsNiArNjAzMCwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2Ny
ZWVuKCkKICAgICB9CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvclZpZGVv
RnVsbHNjcmVlblN0YW5kYnkoKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKKyAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkucHJlcGFyZUZvclZp
ZGVvRnVsbHNjcmVlbigpOworI2VuZGlmCit9CisKIFdFQkNPUkVfRVhQT1JUIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuU3RhbmRieShib29sIHZhbHVlKQogewogICAg
IEFTU0VSVChpczxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCA3MzA4YmMwYmU5YTg4ODI1NjExZGVhMDQ2NzQyZDg4MzUy
MTdjN2FkLi42OTVlYTcwZWU3NzZkNGQ1ODljYzQwNWI5OTQ0MzU5NGI2Y2U1NGE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDM1LDYgKzQzNSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KGJvb2wpOwogCiAgICAgYm9vbCBoYXNDbG9z
ZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
aW5kZXggYzBhMGQzMGJjZmRmM2Y0MWNmMGU4ZDdmM2RlNGMyNGMwMWRiNjc5OC4uMGZmZWNlMGVj
N2NmNDNhMGJjMWFkYzVmOGNhYWY1ZTI2YzYxNjgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCkBAIC0zNTUsNiArMzU1LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVv
RnVsbHNjcmVlblN0YW5kYnkoKSB7IHJldHVybiBmYWxzZTsgfQogCisjaWYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yVmlkZW9GdWxs
c2NyZWVuKCkgeyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIHZv
aWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYs
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5
KSB7IFVOVVNFRF9QQVJBTShzdGFuZGJ5KTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRVcFBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci5oCmluZGV4IDM1NDhlNTNiMzczYjRkOTlkNzg3YTg5NDQyYjNjMDliOGQ4Mjg2NGEu
LjI0YzBlMDJiNjA1MTY2ZWY2ZTAwYzI5YTA4ZjdiNGM5YWI5MTY2MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxFeGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxz
Y3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9FeGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9k
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVs
LmgKaW5kZXggZmQyMTRjNDc2ZGFlZWZiYzc4NTlhODhjYTgzNTkwZDY2MjFlMTcwMC4uOWY4ZGQw
ODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0NzFiMDljYWRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCkBAIC03NiwxMSAr
NzYsMTIgQEAgcHVibGljOgogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgewogcHVi
bGljOgogICAgIHZpcnR1YWwgflZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50KCkgPSBkZWZhdWx0
OwotICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0NoYW5nZWQoYm9vbCkgeyB9OwotICAgIHZpcnR1
YWwgdm9pZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYpIHsgfTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9DaGFuZ2VkKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmYWlsZWRU
b0VudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9F
eGl0UGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRXhpdFBpY3R1
cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdFBpY3R1cmVJblBpY3R1
cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbW9kZWxEZXN0cm95ZWQoKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmgKaW5kZXggMjRkMTM1OGRlOWIyNGIzM2JiMGRjOWNiZWU5Y2YwMTg0ZWJjZDE1
Ny4uOGU0NDEwZmQyYzE2MzNkZjRmZTdlMmM2MDJjZGM2NzlhNDQ3ZjNhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1
cnJlbnRNb2RlLm1vZGUoKTsgfQogICAgIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZVBsYXli
YWNrKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2s7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJl
SW5QaWN0dXJlKCkgY29uc3Q7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKKyAgICB2b2lkIHByZXBhcmVG
b3JQaWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJh
Y2spOwogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CiAKQEAg
LTE0NiwxNyArMTQ2LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuSGFuZGxl
cihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKik7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5IYW5k
bGVyKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKTsKICAgICBib29sIGlzUGxheWluZ1ZpZGVvSW5F
bmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJl
YWR5VG9TdG9wUGljdHVyZUluUGljdHVyZShCT09MKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHdpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0V2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJlKEJPT0wpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICBib29sIGhhc01vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VycmVudE1vZGUuaGFzTW9kZShtb2RlKTsgfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKTsKICAgICBV
SVZpZXdDb250cm9sbGVyICpmdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX3ZpZXdDb250cm9sbGVyLmdldCgpOyB9CiAgICAgV2ViQVZQbGF5ZXJMYXllclZpZXcqIHBs
YXllckxheWVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyTGF5ZXJWaWV3LmdldCgpOyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBwaWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5F
bnRlcmluZ0JhY2tncm91bmQoKSBjb25zdDsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgV0VC
Q09SRV9FWFBPUlQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQoUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQVZLaXQmKTsKQEAgLTIxNyw5ICsyMTgsMTQgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgbV9zdGFuZGJ5IHsgZmFsc2UgfTsKICAgICBib29sIG1fdGFyZ2V0U3RhbmRieSB7IGZhbHNl
IH07CiAKKyNpZiBQTEFURk9STShXQVRDSE9TKQogICAgIGJvb2wgbV93YWl0aW5nRm9yUHJlcGFy
ZWRUb0V4aXQgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX3Nob3VsZElnbm9yZUFWS2l0
Q2FsbGJhY2tBYm91dEV4aXRGdWxsc2NyZWVuUmVhc29uIHsgZmFsc2UgfTsKICAgICBib29sIG1f
ZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZXhpdGluZ1Bp
Y3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9yZWFkeVRvU3RvcFBpY3R1cmVJ
blBpY3R1cmUgeyB0cnVlIH07CisgICAgYm9vbCBtX3dpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVy
ZUluUGljdHVyZSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5k
ZXggMDEwM2VlNzQ0ZjkxNWVmZDgxM2FhYzcxZDk2YmRmNTVjZDA2ZTdmYy4uZTA2NjU0MjVjZDll
YTRkOThjYWI0MDAxNzljNTQ2MWQ1Y2FjMzJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpA
QCAtOTY5LDEzICs5NjksOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpj
bGVhbnVwRnVsbHNjcmVlbigpCiAgICAgCiAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0
RGVsZWdhdGU6bmlsXTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250
cm9sbGVyOm5pbF07Ci0gICAgCi0gICAgaWYgKG1fY3VycmVudE1vZGUuaGFzUGljdHVyZUluUGlj
dHVyZSgpKSB7Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHN0b3BQaWN0dXJlSW5Q
aWN0dXJlXTsKIAotICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKLSAgICAgICAg
ICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7Ci0g
ICAgfQorICAgIGlmIChtX2N1cnJlbnRNb2RlLmhhc1BpY3R1cmVJblBpY3R1cmUoKSkKKyAgICAg
ICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcFBpY3R1cmVJblBpY3R1cmVdOwogCiAgICAg
aWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVlbigpKSB7CiAgICAgICAgIFtbbV9wbGF5ZXJW
aWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CkBAIC0xMDAyLDYgKzk5OCwxMyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbigp
CiAgICAgW3BsYXllckNvbnRyb2xsZXIoKSBzZXRIYXNFbmFibGVkVmlkZW86ZmFsc2VdOwogICAg
IFtwbGF5ZXJDb250cm9sbGVyKCkgc2V0SGFzVmlkZW86ZmFsc2VdOwogCisgICAgbV93aWxsRW50
ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICBpZiAobV9leGl0aW5n
UGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0g
ZmFsc2U7CisgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgICAgICAgICAg
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICB9
CisKICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyLT5kaWRDbGVhbnVwRnVsbHNjcmVlbigpOwogfQpAQCAtMTA2Niwx
MSArMTA2OSwxNCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRv
bWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpCiAgICAgcmV0dXJuIFtwbGF5ZXJD
b250cm9sbGVyKCkgaXNQbGF5aW5nXSAmJiAobV9zdGFuZGJ5IHx8IG1fY3VycmVudE1vZGUuaXNG
dWxsc2NyZWVuKCkpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogfQogCi12b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQordm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wKFdURjo6RnVu
Y3Rpb248dm9pZChib29sKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3ByZXBhcmVUb0lubGluZUNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci0gICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyKQotICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCk7CisgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7
CisgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5wcmVwYXJlVG9FeGl0RnVsbHNj
cmVlbigpOworICAgICAgICBpZiAobV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUpCisgICAg
ICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCk7CisgICAgfQogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Ojp3aWxsU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKQEAgLTExMTgsNyArMTEyNCw2IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgp
CiAgICAgfQogCiAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKLSAgICBt
X3N0YW5kYnkgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTE0NCw2ICsxMTQ5LDcgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BQaWN0dXJlSW5QaWN0
dXJlKCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Ojp3aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoJXApIiwgdGhpcyk7CiAKKyAgICBtX2V4aXRp
bmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVl
bldoZW5TdG9wcGluZ1BpUCA9IGZhbHNlOwogCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVs
bHNjcmVlbigpIHx8IG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9w
KQpAQCAtMTE5MCw2ICsxMTk2LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5k
bGVyKHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoQk9PTCByZXN0b3JlZCkpCiB7CiAgICAgTE9H
KEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBp
Y3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKCVwKSIsIHRoaXMpOworCiAg
ICAgaWYgKG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQKSB7CiAgICAg
ICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7CiAg
ICAgICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wID0gdHJ1
ZTsKQEAgLTEyMDUsNyArMTIxMiw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBzdHJvbmdDb21wbGV0aW9uSGFuZGxlciA9IGFk
b3B0TlMoW2NvbXBsZXRpb25IYW5kbGVyIGNvcHldKV0oYm9vbCByZXN0b3JlZCkgIHsKKyAgICBw
cmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3AoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KHRoaXMpLCBzdHJvbmdDb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5k
bGVyIGNvcHldKV0oYm9vbCByZXN0b3JlZCkgIHsKICAgICAgICAgTE9HKEZ1bGxzY3JlZW4sICJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVT
dG9wV2l0aENvbXBsZXRpb25IYW5kbGVyIGxhbWJkYSglcCkgLSByZXN0b3JlZCglcykiLCBwcm90
ZWN0ZWRUaGlzLmdldCgpLCBib29sU3RyaW5nKHJlc3RvcmVkKSk7CiAgICAgICAgICgodm9pZCAo
XikoQk9PTCkpc3Ryb25nQ29tcGxldGlvbkhhbmRsZXIuZ2V0KCkpKHJlc3RvcmVkKTsKICAgICB9
KTsKQEAgLTE1ODAsNiArMTU4NywyNiBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Ojppc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3QKICAgICByZXR1
cm4gaGFzTW9kZShXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGVQaWN0dXJlSW5QaWN0dXJlKSAmJiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWluZ107
CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9w
UGljdHVyZUluUGljdHVyZShCT09MIHJlYWR5KQoreworICAgIGlmIChtX3JlYWR5VG9TdG9wUGlj
dHVyZUluUGljdHVyZSA9PSByZWFkeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZWFkeVRv
U3RvcFBpY3R1cmVJblBpY3R1cmUgPSByZWFkeTsKKyAgICBpZiAobV9yZWFkeVRvU3RvcFBpY3R1
cmVJblBpY3R1cmUgJiYgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgIG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKK30K
KworYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbEVudGVyU3RhbmRieUZy
b21QaWN0dXJlSW5QaWN0dXJlKCkKK3sKKyAgICByZXR1cm4gbV93aWxsRW50ZXJTdGFuZGJ5RnJv
bVBpY3R1cmVJblBpY3R1cmU7Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnNldFdpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZShCT09MIHZhbHVlKQor
eworICAgIG1fd2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmFsdWU7Cit9
CisKIHN0YXRpYyBPcHRpb25hbDxib29sPiBpc1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0ZWQ7CiAK
IHZvaWQgV2ViQ29yZTo6c2V0U3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKGJvb2wgaXNTdXBwb3J0
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCA0OTI1YjU2NzZkYTE5Nzg0
YmMyMjA2Yjg0ZTA5NTRhNmZhYTRkMGYzLi45MWEzZTNjODI3MTNjM2QzYmJmZjdmNDFmNWY3ZGQ5
OGUwY2E5MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAgLTEyOCw2ICsx
MjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CiAg
ICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmVUb0V4aXRGdWxsc2NyZWVuKCkgZmlu
YWwgeyB9CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKIAog
ICAgIC8vIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmlu
ZGV4IGU4ZDNmZTA1MzNmOGU5MTcwMmExYzBmMzdmYTI2NGNhZmZkNTllNTAuLjc2Yjk2NThkOGNi
MmNhYzU3MjE0N2M1YTI3NjU5YjE5MmZkMjVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBA
IC0xMTEsNiArMTExLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigp
IGZpbmFsOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRp
ZENsZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlVG9FeGl0RnVsbHNj
cmVlbigpIGZpbmFsOwogICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmlu
YWw7CiAKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbQppbmRleCBlZGFjY2UzYzBkYTUxOTBhNjYwMmJiMWZmZWViZjhiZWVk
NmNjNWUwLi5mYzk1YjgyNzBhNzVhZjg4NGE4YmYzNzczYWFiNTNlNjk4YmYwYWRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0yNjgsNiArMjY4LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDb250ZXh0OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgICAgIG1fbWFuYWdl
ci0+ZGlkQ2xlYW51cEZ1bGxzY3JlZW4obV9jb250ZXh0SWQpOwogfQogCit2b2lkIFZpZGVvRnVs
bHNjcmVlbk1vZGVsQ29udGV4dDo6cHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKQoreworICAgIGZv
ciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICBjbGllbnQtPnByZXBhcmVUb0V4
aXRQaWN0dXJlSW5QaWN0dXJlKCk7Cit9CisKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250
ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKQogewogICAgIGlmIChtX21hbmFnZXIp
CkBAIC01MTIsNyArNTE4LDEwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpz
ZXR1cEZ1bGxzY3JlZW5XaXRoSUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAgICAgTUVTU0FH
RV9DSEVDSyh2aWRlb0xheWVySUQpOwogCiAgICAgYXV0byYgW21vZGVsLCBpbnRlcmZhY2VdID0g
ZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKLSAgICBhZGRDbGllbnRGb3JDb250
ZXh0KGNvbnRleHRJZCk7CisgICAgaWYgKGludGVyZmFjZS0+d2lsbEVudGVyU3RhbmRieUZyb21Q
aWN0dXJlSW5QaWN0dXJlKCkpCisgICAgICAgIGludGVyZmFjZS0+c2V0V2lsbEVudGVyU3RhbmRi
eUZyb21QaWN0dXJlSW5QaWN0dXJlKE5PKTsKKyAgICBlbHNlIGlmICh2aWRlb0Z1bGxzY3JlZW5N
b2RlICE9IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJ
blBpY3R1cmUgfHwgIXN0YW5kYnkpCisgICAgICAgIGFkZENsaWVudEZvckNvbnRleHQoY29udGV4
dElkKTsKIAogICAgIGlmIChtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKSB7CiAg
ICAgICAgIGlmICghdmlkZW9EaW1lbnNpb25zLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggNDZm
MDFmZWQxZDYwZjQ5NDJkOTEwNzg2OTdiZTlkMDk0NDgzZTljZi4uZDQ4MzZmMTY0ZGY5NDljOWY2
ODM5NWMwM2I3ODU1Y2ZmNTgxZmQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKQEAgLTkyLDYgKzkyLDExIEBAIHZv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihib29s
IGFuaW1hdGluZykKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFn
ZXI6OlNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYW5pbWF0aW5nKSk7CiB9CiAKK3ZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEVudGVyRnVsbFNjcmVlbigpCit7CisgICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0RW50ZXJGdWxs
U2NyZWVuKCkpOworfQorCiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RF
eGl0RnVsbFNjcmVlbigpCiB7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggZGUxZDMzMDdl
M2JlNzNmNzExZGU0NTk1YjE3ZmFhYWM4ODY3OWQ0MS4uMDBkM2QwYWEyM2Y0MGIwYmI3MTI4ODI2
MzJhNDE5ZTg2MDhiYTY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCB3aWxsRXhpdEZ1bGxTY3JlZW4oKTsKICAgICB2b2lkIGRpZEV4aXRGdWxsU2NyZWVuKCk7
CiAgICAgdm9pZCBzZXRBbmltYXRpbmdGdWxsU2NyZWVuKGJvb2wpOworICAgIHZvaWQgcmVxdWVz
dEVudGVyRnVsbFNjcmVlbigpOwogICAgIHZvaWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CiAg
ICAgdm9pZCBzYXZlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxQb3Np
dGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3Jl
ZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmgKaW5kZXggOTVhOTUy
MGYyMzUwMmExNjY1NWVlN2NmNjZlNDdkMGJhZjNjN2FjOC4uYzQxNTc4NTExMTMzZTVjMTM1MmMx
NGM3NjkyMzA2NDc4YTFhNjY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ci5oCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBpbnRlcmZh
Y2UgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgOiBVSVZpZXdDb250cm9sbGVyCiBAcHJvcGVy
dHkgKHJldGFpbiwgbm9uYXRvbWljKSBpZCB0YXJnZXQ7Ci1AcHJvcGVydHkgKGFzc2lnbiwgbm9u
YXRvbWljKSBTRUwgYWN0aW9uOworQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykgU0VMIGV4
aXRGdWxsU2NyZWVuQWN0aW9uOwogQHByb3BlcnR5IChjb3B5LCBub25hdG9taWMpIE5TU3RyaW5n
ICpsb2NhdGlvbjsKIEBwcm9wZXJ0eSAoYXNzaWduLCBub25hdG9taWMpIEJPT0wgcHJlZmVyc1N0
YXR1c0JhckhpZGRlbjsKIEBwcm9wZXJ0eSAoYXNzaWduLCBub25hdG9taWMpIEJPT0wgcHJlZmVy
c0hvbWVJbmRpY2F0b3JBdXRvSGlkZGVuOwpAQCAtNDUsNiArNDUsNyBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogLSAodm9pZClzaG93VUk7CiAtICh2b2lkKWhpZGVVSTsKIC0gKHZvaWQpdmlk
ZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2U7CistICh2b2lkKXNldEFuaW1hdGluZ1ZpZXdBbHBo
YTooQ0dGbG9hdClhbHBoYTsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCmluZGV4IDc4YzAwMTUyZjFhNDM3MDA1Y2Q5
MjkwMzk4YTdmY2NlODdjMWY5ODAuLmFhNmM0MDIxZmMzM2NhZjZjNDk0Nzk4YjdlZDJkMWY3NzQ0
MjA3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCkBAIC00Niwx
MiArNDYsNiBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwgYXV0b0hpZGVEZWxheSA9IDQu
MDsKIAogQGNsYXNzIFdLRnVsbHNjcmVlblN0YWNrVmlldzsKIAotQGludGVyZmFjZSBXS0Z1bGxT
Y3JlZW5WaWV3Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVuQ2xpZW50Q2FsbGJhY2tzKQotLSAo
dm9pZCl3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlOwotLSAodm9pZClkaWRFbnRlclBpY3R1cmVJ
blBpY3R1cmU7Ci0tICh2b2lkKWZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlOwotQGVuZAot
CiBjbGFzcyBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xp
ZW50IDogV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQgewogcHVibGljOgogICAg
IHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyICpwYXJlbnQpIHsgbV9w
YXJlbnQgPSBwYXJlbnQ7IH0KQEAgLTg3LDQ1ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0PiBtX2ludGVyZmFjZTsKIH07
CiAKLWNsYXNzIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxD
bGllbnQgOiBXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCB7Ci0gICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxsU2Ny
ZWVuVmlld0NvbnRyb2xsZXIgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQotCi0gICAg
dm9pZCBzZXRJbnRlcmZhY2UoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQq
IGludGVyZmFjZSkKLSAgICB7Ci0gICAgICAgIGlmIChtX2ludGVyZmFjZSA9PSBpbnRlcmZhY2Up
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG1faW50ZXJmYWNlICYmIG1faW50
ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpKQotICAgICAgICAgICAgbV9pbnRlcmZhY2Ut
PnZpZGVvRnVsbHNjcmVlbk1vZGVsKCktPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
aW50ZXJmYWNlID0gaW50ZXJmYWNlOwotICAgICAgICBpZiAobV9pbnRlcmZhY2UgJiYgbV9pbnRl
cmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCi0gICAgICAgICAgICBtX2ludGVyZmFjZS0+
dmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+YWRkQ2xpZW50KCp0aGlzKTsKLSAgICB9Ci0KLSAgICBX
ZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCogaW50ZXJmYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRlcmZhY2UuZ2V0KCk7IH0KLQotICAgIHZvaWQgd2lsbEVudGVyUGljdHVy
ZUluUGljdHVyZSgpIGZpbmFsCi0gICAgewotICAgICAgICBbbV9wYXJlbnQgd2lsbEVudGVyUGlj
dHVyZUluUGljdHVyZV07Ci0gICAgfQotCi0gICAgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1
cmUoKSBmaW5hbAotICAgIHsKLSAgICAgICAgW21fcGFyZW50IGRpZEVudGVyUGljdHVyZUluUGlj
dHVyZV07Ci0gICAgfQotCi0gICAgdm9pZCBmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgp
IGZpbmFsCi0gICAgewotICAgICAgICBbbV9wYXJlbnQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBp
Y3R1cmVdOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ciAqbV9wYXJlbnQgeyBudWxscHRyIH07Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0PiBtX2ludGVyZmFjZTsKLX07Ci0KICNwcmFnbWEgbWFyayAtIF9X
S0V4dHJpbnNpY0J1dHRvbgogCiBAaW50ZXJmYWNlIF9XS0V4dHJpbnNpY0J1dHRvbiA6IFVJQnV0
dG9uCkBAIC0xNjQsNyArMTE5LDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNMYXlvdXRD
b25zdHJhaW50PiBfdG9wQ29uc3RyYWludDsKICAgICBXZWJLaXQ6OkZ1bGxzY3JlZW5Ub3VjaFNl
Y2hldXJpc3RpYyBfc2VjaGV1cmlzdGljOwogICAgIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
UGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQgX3BsYXliYWNrQ2xpZW50OwotICAgIFdLRnVsbFNj
cmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgX3ZpZGVvRnVsbHNj
cmVlbkNsaWVudDsKICAgICBDR0Zsb2F0IF9ub25aZXJvU3RhdHVzQmFySGVpZ2h0OwogfQogCkBA
IC0xODgsNyArMTQyLDYgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
c2VsZi5fd2ViVmlldyA9IHdlYlZpZXc7CiAKICAgICBfcGxheWJhY2tDbGllbnQuc2V0UGFyZW50
KHNlbGYpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0UGFyZW50KHNlbGYpOwogCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0yMDAsOCArMTUzLDYgQEAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICBfcGxheWJhY2tDbGllbnQuc2V0UGFyZW50KG51bGxwdHIp
OwogICAgIF9wbGF5YmFja0NsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7Ci0gICAgX3ZpZGVv
RnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQobnVsbHB0cik7Ci0gICAgX3ZpZGVvRnVsbHNjcmVl
bkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7CiAKICAgICBbX3RhcmdldCByZWxlYXNlXTsK
ICAgICBbX2xvY2F0aW9uIHJlbGVhc2VdOwpAQCAtMjYxLDcgKzIxMiw2IEBAIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGF1dG8qIHBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZSA9IHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA/ICZ2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2Ut
PnBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSgpIDogbnVsbHB0cjsKIAogICAgIF9wbGF5YmFja0Ns
aWVudC5zZXRJbnRlcmZhY2UocGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKTsKLSAgICBfdmlkZW9G
dWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZSh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpOwog
CiAgICAgV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWwqIHBsYXliYWNrU2Vzc2lvbk1vZGVs
ID0gcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlID8gcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLT5w
bGF5YmFja1Nlc3Npb25Nb2RlbCgpIDogbnVsbHB0cjsKICAgICBzZWxmLnBsYXlpbmcgPSBwbGF5
YmFja1Nlc3Npb25Nb2RlbCA/IHBsYXliYWNrU2Vzc2lvbk1vZGVsLT5pc1BsYXlpbmcoKSA6IE5P
OwpAQCAtMjcyLDYgKzIyMiwxMyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbX3BpcEJ1dHRvbiBzZXRIaWRkZW46IWlzUGlQRW5hYmxlZCB8fCAhaXNQaVBTdXBwb3J0
ZWRdOwogfQogCistICh2b2lkKXNldEFuaW1hdGluZ1ZpZXdBbHBoYTooQ0dGbG9hdClhbHBoYQor
eworICAgIFtVSVZpZXcgYW5pbWF0ZVdpdGhEdXJhdGlvbjpwaXBIaWRlQW5pbWF0aW9uRHVyYXRp
b24gYW5pbWF0aW9uczpeeworICAgICAgICBfYW5pbWF0aW5nVmlldy5nZXQoKS5hbHBoYSA9IGFs
cGhhOworICAgIH1dOworfQorCiAtICh2b2lkKXNldFByZWZlcnNTdGF0dXNCYXJIaWRkZW46KEJP
T0wpdmFsdWUKIHsKICAgICBfcHJlZmVyc1N0YXR1c0JhckhpZGRlbiA9IHZhbHVlOwpAQCAtMzMw
LDMzICsyODcsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAg
W3NlbGYgc2hvd1VJXTsKIH0KIAotLSAodm9pZCl3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlCi17
Ci0gICAgYXV0byogaW50ZXJmYWNlID0gX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5pbnRlcmZhY2Uo
KTsKLSAgICBpZiAoIWludGVyZmFjZSB8fCAhaW50ZXJmYWNlLT5waWN0dXJlSW5QaWN0dXJlV2Fz
U3RhcnRlZFdoZW5FbnRlcmluZ0JhY2tncm91bmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
W1VJVmlldyBhbmltYXRlV2l0aER1cmF0aW9uOnBpcEhpZGVBbmltYXRpb25EdXJhdGlvbiBhbmlt
YXRpb25zOl57Ci0gICAgICAgIF9hbmltYXRpbmdWaWV3LmdldCgpLmFscGhhID0gMDsKLSAgICB9
XTsKLX0KLQotLSAodm9pZClkaWRFbnRlclBpY3R1cmVJblBpY3R1cmUKLXsKLSAgICBbc2VsZiBf
Y2FuY2VsQWN0aW9uOnNlbGZdOwotfQotCi0tICh2b2lkKWZhaWxlZFRvRW50ZXJQaWN0dXJlSW5Q
aWN0dXJlCi17Ci0gICAgYXV0byogaW50ZXJmYWNlID0gX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5p
bnRlcmZhY2UoKTsKLSAgICBpZiAoIWludGVyZmFjZSB8fCAhaW50ZXJmYWNlLT5waWN0dXJlSW5Q
aWN0dXJlV2FzU3RhcnRlZFdoZW5FbnRlcmluZ0JhY2tncm91bmQoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgW1VJVmlldyBhbmltYXRlV2l0aER1cmF0aW9uOnBpcEhpZGVBbmltYXRpb25EdXJh
dGlvbiBhbmltYXRpb25zOl57Ci0gICAgICAgIF9hbmltYXRpbmdWaWV3LmdldCgpLmFscGhhID0g
MTsKLSAgICB9XTsKLX0KLQogI3ByYWdtYSBtYXJrIC0gVUlWaWV3Q29udHJvbGxlciBPdmVycmlk
ZXMKIAogLSAodm9pZClsb2FkVmlldwpAQCAtNTAzLDcgKzQzMyw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAtICh2b2lkKV9jYW5jZWxBY3Rpb246KGlkKXNlbmRlcgog
ewotICAgIFtbc2VsZiB0YXJnZXRdIHBlcmZvcm1TZWxlY3Rvcjpbc2VsZiBhY3Rpb25dXTsKKyAg
ICBbW3NlbGYgdGFyZ2V0XSBwZXJmb3JtU2VsZWN0b3I6W3NlbGYgZXhpdEZ1bGxTY3JlZW5BY3Rp
b25dXTsKIH0KIAogLSAodm9pZClfdG9nZ2xlUGlQQWN0aW9uOihpZClzZW5kZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXJJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2Ny
ZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaAppbmRleCAzMWVjODFjODcwZjQw
ZWRmZWNhYjhiMzhhZjczNTAwYmNmZDg0ZDdiLi5mZDM5OWEwYTA3MzJmZjExODU0OWExMmZmOGU0
ZTY0MmVmNzM0OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVs
bHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cklPUy5oCkBAIC0zNiw2ICszNiw3IEBACiAtIChpZClpbml0V2l0aFdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXc7CiAtICh2b2lkKWVudGVyRnVsbFNjcmVlbjsKIC0gKHZvaWQpYmVnYW5FbnRl
ckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJh
bWU6KENHUmVjdClmaW5hbEZyYW1lOworLSAodm9pZClyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuOwog
LSAodm9pZClyZXF1ZXN0RXhpdEZ1bGxTY3JlZW47CiAtICh2b2lkKWV4aXRGdWxsU2NyZWVuOwog
LSAodm9pZCliZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTooQ0dSZWN0KWluaXRp
YWxGcmFtZSBmaW5hbEZyYW1lOihDR1JlY3QpZmluYWxGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4IDQ2YmNlNmFjZGE0ZTE1MzkxMmRm
YjIxYzFlNTY2ZDQ4NDNiZjNjMWQuLjY4OTk0M2I0ZjZmODNhYTM1MjMyZmZjZmIxMjRmYjg4YTQx
NTExMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5t
bQpAQCAtNDI0LDYgKzQyNCw2NSBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1h
dGlvbkR1cmF0aW9uID0gMC4yOwogCiAjcHJhZ21hIG1hcmsgLQogCitAaW50ZXJmYWNlIFdLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKFZpZGVvRnVsbHNjcmVlbkNsaWVudENhbGxiYWNrcykK
Ky0gKHZvaWQpd2lsbEVudGVyUGljdHVyZUluUGljdHVyZTsKKy0gKHZvaWQpZGlkRW50ZXJQaWN0
dXJlSW5QaWN0dXJlOworLSAodm9pZClmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZTsKKy0g
KHZvaWQpcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmU7CistICh2b2lkKWRpZEV4aXRQaWN0
dXJlSW5QaWN0dXJlOworQGVuZAorCitjbGFzcyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgOiBXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bENsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdm9p
ZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFy
ZW50ID0gcGFyZW50OyB9CisKKyAgICB2b2lkIHNldEludGVyZmFjZShXZWJDb3JlOjpWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdCogaW50ZXJmYWNlKQorICAgIHsKKyAgICAgICAgaWYgKG1f
aW50ZXJmYWNlID09IGludGVyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBp
ZiAobV9pbnRlcmZhY2UgJiYgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCisg
ICAgICAgICAgICBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+cmVtb3ZlQ2xp
ZW50KCp0aGlzKTsKKyAgICAgICAgbV9pbnRlcmZhY2UgPSBpbnRlcmZhY2U7CisgICAgICAgIGlm
IChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKSkKKyAg
ICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpLT5hZGRDbGllbnQo
KnRoaXMpOworICAgIH0KKworICAgIFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0KiBpbnRlcmZhY2UoKSBjb25zdCB7IHJldHVybiBtX2ludGVyZmFjZS5nZXQoKTsgfQorCisg
ICAgdm9pZCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKKyAgICB7CisgICAgICAg
IFttX3BhcmVudCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKKyAgICB2b2lk
IGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJl
bnQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKKyAgICB2b2lkIGZhaWxlZFRv
RW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKKyAgICB7CisgICAgICAgIFttX3BhcmVudCBm
YWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZV07CisgICAgfQorCisgICAgdm9pZCBwcmVwYXJl
VG9FeGl0UGljdHVyZUluUGljdHVyZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJlbnQg
cHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmVdOworICAgIH0KKworICAgIHZvaWQgZGlkRXhp
dFBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fcGFyZW50IGRpZEV4
aXRQaWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciAqbV9wYXJlbnQgeyBudWxscHRyIH07CisgICAgUmVmUHRyPFdlYkNv
cmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBtX2ludGVyZmFjZTsKK307CisKKyNw
cmFnbWEgbWFyayAtCisKIEBpbXBsZW1lbnRhdGlvbiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyIHsKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3PiBfd2ViVmll
d1BsYWNlaG9sZGVyOwogCkBAIC00NDEsNiArNTAwLDEwIEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJ
bnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgUmV0YWluUHRyPFVJUGluY2hH
ZXN0dXJlUmVjb2duaXplcj4gX2ludGVyYWN0aXZlUGluY2hEaXNtaXNzR2VzdHVyZVJlY29nbml6
ZXI7CiAgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlbkludGVyYWN0aXZlVHJhbnNpdGlvbj4gX2lu
dGVyYWN0aXZlRGlzbWlzc1RyYW5zaXRpb25Db29yZGluYXRvcjsKIAorICAgIFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCBfdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50OworICAgIEJPT0wgX2luUGljdHVyZUluUGljdHVyZTsKKyAgICBCT09MIF9yZXR1
cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZTsKKwogICAgIENHUmVjdCBfaW5pdGlh
bEZyYW1lOwogICAgIENHUmVjdCBfZmluYWxGcmFtZTsKIApAQCAtNDQ4LDYgKzUxMSw4IEBAIHN0
YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAg
Qk9PTCBfRVZPcmdhbml6YXRpb25OYW1lSXNWYWxpZDsKICAgICBCT09MIF9pbkludGVyYWN0aXZl
RGlzbWlzczsKICAgICBCT09MIF9leGl0UmVxdWVzdGVkOworICAgIEJPT0wgX2VudGVyUmVxdWVz
dGVkOworICAgIEJPT0wgX2V4aXRpbmdGdWxsU2NyZWVuOwogCiAgICAgUmV0YWluUHRyPGlkPiBf
bm90aWZpY2F0aW9uTGlzdGVuZXI7CiB9CkBAIC00NjAsNiArNTI1LDcgQEAgc3RhdGljIGNvbnN0
IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICAgICAgcmV0dXJu
IG5pbDsKIAogICAgIHNlbGYuX3dlYlZpZXcgPSB3ZWJWaWV3OworICAgIF92aWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuc2V0UGFyZW50KHNlbGYpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC00Njks
NiArNTM1LDkgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlv
biA9IDAuMjsKICAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRo
VGFyZ2V0OnNlbGZdOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cmVtb3ZlT2JzZXJ2ZXI6c2VsZl07CiAKKyAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldElu
dGVyZmFjZShudWxscHRyKTsKKyAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldFBhcmVudChu
dWxscHRyKTsKKwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIApAQCAtNTI0LDcgKzU5Myw3IEBA
IHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAg
ICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0VHJhbnNpdGlvbmluZ0RlbGVnYXRlOnNl
bGZdOwogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldE1vZGFsUHJlc2VudGF0aW9u
Q2FwdHVyZXNTdGF0dXNCYXJBcHBlYXJhbmNlOllFU107CiAgICAgW19mdWxsc2NyZWVuVmlld0Nv
bnRyb2xsZXIgc2V0VGFyZ2V0OnNlbGZdOwotICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVy
IHNldEFjdGlvbjpAc2VsZWN0b3IocmVxdWVzdEV4aXRGdWxsU2NyZWVuKV07CisgICAgW19mdWxs
c2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0RXhpdEZ1bGxTY3JlZW5BY3Rpb246QHNlbGVjdG9yKHJl
cXVlc3RFeGl0RnVsbFNjcmVlbildOwogICAgIF9mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIuZ2V0
KCkudmlldy5mcmFtZSA9IF9yb290Vmlld0NvbnRyb2xsZXIuZ2V0KCkudmlldy5ib3VuZHM7CiAg
ICAgW3NlbGYgX3VwZGF0ZUxvY2F0aW9uSW5mb107CiAKQEAgLTY1Miw2ICs3MjEsMTcgQEAgc3Rh
dGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICAg
ICAgICAgIG1hbmFnZXItPmRpZEVudGVyRnVsbFNjcmVlbigpOwogICAgICAgICAgICAgbWFuYWdl
ci0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAgICAgICAgICAgICBwYWdlLT5zZXRT
dXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKKworICAgICAgICAgICAgYXV0byogdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlciA9IHBhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKKyAg
ICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZh
Y2UoKSA6IG51bGxwdHI7CisgICAgICAgICAgICBpZiAoX3JldHVyblRvRnVsbHNjcmVlbkZyb21Q
aWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0
dXJlSW5QaWN0dXJlID0gTk87CisgICAgICAgICAgICAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5z
ZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUoWUVTKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKHZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZSk7CisKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC02NjAsNiArNzQwLDE5IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0
aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgfV07CiB9CiAKKy0gKHZvaWQpcmVxdWVzdEVudGVyRnVs
bFNjcmVlbgoreworICAgIGlmIChfZnVsbFNjcmVlblN0YXRlICE9IFdlYktpdDo6Tm90SW5GdWxs
U2NyZWVuKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogbWFuYWdlciA9IHNlbGYu
X21hbmFnZXIpIHsKKyAgICAgICAgbWFuYWdlci0+cmVxdWVzdEVudGVyRnVsbFNjcmVlbigpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
IC0gKHZvaWQpcmVxdWVzdEV4aXRGdWxsU2NyZWVuCiB7CiAgICAgaWYgKF9mdWxsU2NyZWVuU3Rh
dGUgIT0gV2ViS2l0OjpJbkZ1bGxTY3JlZW4pIHsKQEAgLTY2OSw2ICs3NjIsNyBAQCBzdGF0aWMg
Y29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogCiAgICAgaWYg
KGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnJlcXVl
c3RFeGl0RnVsbFNjcmVlbigpOworICAgICAgICBfZXhpdGluZ0Z1bGxTY3JlZW4gPSBZRVM7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc3MCw2ICs4NjQsMTYgQEAgc3RhdGljIGNvbnN0
IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICAgICAgICAgIHBh
Z2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogICAgICAgICAgICAgcGFn
ZS0+c2V0TmVlZHNET01XaW5kb3dSZXNpemVFdmVudCgpOwogICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFfaW5QaWN0dXJlSW5QaWN0dXJlKQorICAgICAgICAgICAgX3ZpZGVvRnVsbHNjcmVlbkNs
aWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7CisKKyAgICAgICAgX2V4aXRSZXF1ZXN0ZWQgPSBO
TzsKKyAgICAgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gTk87CisgICAgICAgIGlmIChfZW50ZXJS
ZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIF9lbnRlclJlcXVlc3RlZCA9IE5POworICAgICAgICAg
ICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl07CisgICAgICAgIH0KICAgICB9KTsKIAog
ICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCkBAIC03NzksNyArODgz
LDYgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAu
MjsKIAogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldFByZWZlcnNTdGF0dXNCYXJI
aWRkZW46WUVTXTsKICAgICBfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyID0gbmlsOwotICAgIF9l
eGl0UmVxdWVzdGVkID0gTk87CiB9CiAKIC0gKHZvaWQpY2xvc2UKQEAgLTc5OCw2ICs5MDEsMTEg
QEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsK
IHsKICAgICBpZiAoX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlcikKICAgICAgICAgW19mdWxsc2Ny
ZWVuVmlld0NvbnRyb2xsZXIgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2VdOworCisgICAg
YXV0byBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdOworICAgIGF1dG8qIHZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIgPSBwYWdlID8gcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpIDogbnVs
bHB0cjsKKyAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyID8gdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJm
YWNlKCkgOiBudWxscHRyOworICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNl
KHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk7CiB9CiAKIC0gKHZvaWQpcGxhY2Vob2xkZXJXaWxs
TW92ZVRvU3VwZXJ2aWV3OihVSVZpZXcgKilzdXBlcnZpZXcKQEAgLTgxMSw2ICs5MTksNTMgQEAg
c3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAg
ICB9KTsKIH0KIAorLSAodm9pZCl3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlCit7CisgICAgYXV0
byogaW50ZXJmYWNlID0gX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5pbnRlcmZhY2UoKTsKKyAgICBp
ZiAoIWludGVyZmFjZSB8fCAhaW50ZXJmYWNlLT5waWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdo
ZW5FbnRlcmluZ0JhY2tncm91bmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW19mdWxsc2Ny
ZWVuVmlld0NvbnRyb2xsZXIgc2V0QW5pbWF0aW5nVmlld0FscGhhOjBdOworfQorCistICh2b2lk
KWRpZEVudGVyUGljdHVyZUluUGljdHVyZQoreworICAgIF9pblBpY3R1cmVJblBpY3R1cmUgPSBZ
RVM7CisgICAgW3NlbGYgcmVxdWVzdEV4aXRGdWxsU2NyZWVuXTsKK30KKworLSAodm9pZClmYWls
ZWRUb0VudGVyUGljdHVyZUluUGljdHVyZQoreworICAgIGF1dG8qIGludGVyZmFjZSA9IF92aWRl
b0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7CisgICAgaWYgKCFpbnRlcmZhY2UgfHwgIWlu
dGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdCYWNrZ3JvdW5k
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNl
dEFuaW1hdGluZ1ZpZXdBbHBoYToxXTsKK30KKworLSAodm9pZClwcmVwYXJlVG9FeGl0UGljdHVy
ZUluUGljdHVyZQoreworICAgIGF1dG8qIGludGVyZmFjZSA9IF92aWRlb0Z1bGxzY3JlZW5DbGll
bnQuaW50ZXJmYWNlKCk7CisgICAgaWYgKCFpbnRlcmZhY2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKE5PKTsKKyAgICBp
bnRlcmZhY2UtPnNldFdpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZShZRVMpOwor
ICAgIF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSA9IFlFUzsKKworICAg
IGlmICghX2V4aXRpbmdGdWxsU2NyZWVuKQorICAgICAgICBbc2VsZiByZXF1ZXN0RW50ZXJGdWxs
U2NyZWVuXTsKKyAgICBlbHNlCisgICAgICAgIF9lbnRlclJlcXVlc3RlZCA9IFlFUzsKK30KKwor
LSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZQoreworICAgIF9pblBpY3R1cmVJblBpY3R1
cmUgPSBOTzsKKyAgICBpZiAoIV9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVy
ZSAmJiAhW3NlbGYgaXNGdWxsU2NyZWVuXSkKKyAgICAgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5zZXRJbnRlcmZhY2UobnVsbHB0cik7Cit9CisKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1h
cmsgVUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApp
bmRleCAyZjJiNmVjYzI3YzI0ZDRlYmNjNmI2OGQ0MzljYTc2NzdkOTc3NmFiLi4yZGYxY2NiODBm
YzI4NTgyOGU5NGY3MWZmNmJhZjNkNThhYTg4NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllckJhY2tpbmcu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgi
CkBAIC0xMzYsNiArMTM3LDEzIEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWVs
ZW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICBtX2VsZW1lbnQgPSBlbGVtZW50OworCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKSkKKyAgICBhdXRvKiBjdXJyZW50UGxheWJhY2tDb250cm9sc0VsZW1l
bnQgPSBtX3BhZ2UtPnBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKS5jdXJyZW50UGxheWJhY2tDb250
cm9sc0VsZW1lbnQoKTsKKyAgICBpZiAoY3VycmVudFBsYXliYWNrQ29udHJvbHNFbGVtZW50KQor
ICAgICAgICBjdXJyZW50UGxheWJhY2tDb250cm9sc0VsZW1lbnQtPnByZXBhcmVGb3JWaWRlb0Z1
bGxzY3JlZW5TdGFuZGJ5KCk7CisjZW5kaWYKKwogICAgIG1faW5pdGlhbEZyYW1lID0gc2NyZWVu
UmVjdE9mQ29udGVudHMobV9lbGVtZW50LmdldCgpKTsKICAgICBtX3BhZ2UtPmluamVjdGVkQnVu
ZGxlRnVsbFNjcmVlbkNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQobV9wYWdlLmdl
dCgpLCBlbGVtZW50KTsKIH0KQEAgLTIxNyw2ICsyMjUsMTYgQEAgdm9pZCBXZWJGdWxsU2NyZWVu
TWFuYWdlcjo6c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihib29sIGFuaW1hdGluZykKICAgICBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5zZXRBbmltYXRpbmdGdWxsc2Ny
ZWVuKGFuaW1hdGluZyk7CiB9CiAKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnJlcXVlc3RF
bnRlckZ1bGxTY3JlZW4oKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQpOworICAgIGlmICghbV9l
bGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGlj
YXRvciBnZXN0dXJlSW5kaWNhdG9yKFdlYkNvcmU6OlByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7Cisg
ICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkucmVxdWVzdEZ1bGxz
Y3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVudC5nZXQoKSwgRnVsbHNjcmVlbk1hbmFnZXI6OkV4ZW1w
dElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50KTsKK30KKwogdm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlcjo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKIHsKICAgICBBU1NFUlQobV9lbGVt
ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVl
bi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCmluZGV4IDkxMjBhYzkwYzc3ZmRhYjIwMmUyNjc0OThh
MDIxMDdhYTAxNjU4NjUuLjAxZmRmN2ZlZGI2Y2ZiZTZhODA2MjJjYWM2NGE2ZmNlNWVkZjg0Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4v
V2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtNzcsNiArNzcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBzZXRQSVBTdGFuZGJ5RWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kik7CiAK
ICAgICB2b2lkIHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCk7CisgICAgdm9pZCByZXF1ZXN0
RW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKICAg
ICB2b2lkIHNhdmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGI2OWFl
Y2VjNmIwMWJhZjkxZjI2YzFhN2E5MzZhYzk3NzZiNzhiZjIuLmJlNTBkNmMzNDhkMDgyNzY5Mjc0
ZmQxY2ZkNzFjMGQ1NjM3Y2RjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBt
ZXNzYWdlcyAtPiBXZWJGdWxsU2NyZWVuTWFuYWdlciBMZWdhY3lSZWNlaXZlciB7CisgICAgUmVx
dWVzdEVudGVyRnVsbFNjcmVlbigpCiAgICAgUmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKICAgICBX
aWxsRW50ZXJGdWxsU2NyZWVuKCkKICAgICBEaWRFbnRlckZ1bGxTY3JlZW4oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAppbmRleCBlZmMwMDNiZDAxNTkxMDAwODJkZTNjZWYxZjYwOWZhNTIyNTFjYTVh
Li40NTlkNWRiOTcyZGI4N2JjYmE4ZDVlZGY0NThjOTNlZTQ0NzE0NDYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtOTQwLDYgKzk0MCwxMSBAQCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcAog
CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgbV9wYWdlLnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKTsKK30KKwogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlk
ZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBt
b2RlKQogewogICAgIHJldHVybiBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnN1cHBv
cnRzVmlkZW9GdWxsc2NyZWVuKG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3NWY0ODg1
MmJmYTA2YjFhZDQwZTNiYmExZmEzY2MzZTNmNDFhOGUuLjE1ODg5Y2NhMmM4MTJmZGU3Yzk5ODA2
YTUxMTEyMDNjODhkMDI1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI2NCw2ICsyNjQsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
CisgICAgdm9pZCBwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgYm9vbCBz
dXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW5TdGFuZGJ5KCkgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZChib29sKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406309</attachid>
            <date>2020-08-10 10:27:41 -0700</date>
            <delta_ts>2020-08-11 17:11:02 -0700</delta_ts>
            <desc>WIP patch v2 (fix macOS build failures)</desc>
            <filename>bug-215305-20200810102740.patch</filename>
            <type>text/plain</type>
            <size>41779</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzMzUzZmU1ZThjOTRh
NWQ1ZmNkOTgzNTc4YWNmOTQzYTIzM2M5Mi4uNDRkMWI2NmY2YjY4MGQxNDk0NDc1MWU3NDc1NTU3
YTRhMjcwODcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA4LTA3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IHRv
IHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTMwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSk6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpoYXNWaWRlb0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBp
Y3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgor
CiAyMDIwLTA3LTMxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2xlYW4gdXAgdGV4dCBsYXlvdXQgY29kZSBhIGJpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMzc5
YmMwYjgxNzA2MmMxMzZmNzU0M2FiODZjMTlmYjgxYzMxYzI3Li42YzljYzExNTRlOGQ3YWFlYjQz
MzRhMmM3ZGQ0MjliNzgwNDRhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA4
LTA3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBz
dXBwb3J0IHRvIHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBp
Y3R1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NTMwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAo
LVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIHNldEFuaW1hdGluZ1ZpZXdBbHBo
YTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgX2NhbmNlbEFjdGlv
bjpdKToKKyAgICAgICAgKFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQ6OnNldFBhcmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRlcmZhY2UpOiBE
ZWxldGVkLgorICAgICAgICAoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbENsaWVudDo6aW50ZXJmYWNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZV0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklP
Uy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
clZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRQYXJlbnQpOgorICAgICAgICAoV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRJbnRl
cmZhY2UpOgorICAgICAgICAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNj
cmVlbk1vZGVsQ2xpZW50OjppbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1l
OmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
cmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIF9jb21wbGV0ZWRFeGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2lsbEVudGVyUGljdHVyZUlu
UGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGRpZEVu
dGVyUGljdHVyZUluUGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lXSk6Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJblBp
Y3R1cmVdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6cmVxdWVz
dEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIwLTA3LTMxICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIEFkZCBFeHBlcmltZW50
YWwgRmVhdHVyZSBwcmVmZXJlbmNlIGZvciBTVyBWUDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKaW5kZXggMGM1YjJlZTdhOTk5MTdjMjY3ZDEyMzEyYjhkZjdlOTZkMjQ3N2Fk
MC4uNWUyNDU3OTJiZWM1MTcwMjk1YjQxOWMxNmIwN2Q4YmZhN2JhNWJmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAg
ICAgICBFbmZvcmNlSUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1lbnQsCiAgICAgICAgIEV4
ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50LAogICAgIH07Ci0gICAgdm9pZCBy
ZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCosIEZ1bGxzY3JlZW5DaGVja1R5cGUp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVs
ZW1lbnQqLCBGdWxsc2NyZWVuQ2hlY2tUeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWRFbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGY3YTJmODZhMmYzZWNlOWZmYzdlM2VlYWY2NDliNjhlNWIyNjc5YjMuLjA4ZGVi
MDdkYmFmMzFiNDYzMjIyNTU4ZmM2MzBlN2UyYTdiZDFhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTk1Niw3ICs1OTU2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogCiAg
ICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBtb2RlXSB7CiAgICAg
ICAgIGlmIChkb2N1bWVudCgpLmhpZGRlbigpKSB7Ci0gICAgICAgICAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICIgIHJldHVybmluZyBiZWNhdXNlIGRvY3VtZW50IGlzIGhpZGRlbiIpOwor
ICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIHJldHVybmluZyBiZWNhdXNl
IGRvY3VtZW50IGlzIGhpZGRlbiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTYwMzAsNiArNjAzMCwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2Ny
ZWVuKCkKICAgICB9CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvclZpZGVv
RnVsbHNjcmVlblN0YW5kYnkoKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKKyAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkucHJlcGFyZUZvclZp
ZGVvRnVsbHNjcmVlbigpOworI2VuZGlmCit9CisKIFdFQkNPUkVfRVhQT1JUIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuU3RhbmRieShib29sIHZhbHVlKQogewogICAg
IEFTU0VSVChpczxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCA3MzA4YmMwYmU5YTg4ODI1NjExZGVhMDQ2NzQyZDg4MzUy
MTdjN2FkLi42OTVlYTcwZWU3NzZkNGQ1ODljYzQwNWI5OTQ0MzU5NGI2Y2U1NGE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDM1LDYgKzQzNSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KGJvb2wpOwogCiAgICAgYm9vbCBoYXNDbG9z
ZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
aW5kZXggYzBhMGQzMGJjZmRmM2Y0MWNmMGU4ZDdmM2RlNGMyNGMwMWRiNjc5OC4uMGZmZWNlMGVj
N2NmNDNhMGJjMWFkYzVmOGNhYWY1ZTI2YzYxNjgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCkBAIC0zNTUsNiArMzU1LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVv
RnVsbHNjcmVlblN0YW5kYnkoKSB7IHJldHVybiBmYWxzZTsgfQogCisjaWYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yVmlkZW9GdWxs
c2NyZWVuKCkgeyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIHZv
aWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYs
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5
KSB7IFVOVVNFRF9QQVJBTShzdGFuZGJ5KTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRVcFBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci5oCmluZGV4IDM1NDhlNTNiMzczYjRkOTlkNzg3YTg5NDQyYjNjMDliOGQ4Mjg2NGEu
LjI0YzBlMDJiNjA1MTY2ZWY2ZTAwYzI5YTA4ZjdiNGM5YWI5MTY2MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxFeGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxz
Y3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9FeGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9k
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVs
LmgKaW5kZXggZmQyMTRjNDc2ZGFlZWZiYzc4NTlhODhjYTgzNTkwZDY2MjFlMTcwMC4uOWY4ZGQw
ODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0NzFiMDljYWRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCkBAIC03NiwxMSAr
NzYsMTIgQEAgcHVibGljOgogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgewogcHVi
bGljOgogICAgIHZpcnR1YWwgflZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50KCkgPSBkZWZhdWx0
OwotICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0NoYW5nZWQoYm9vbCkgeyB9OwotICAgIHZpcnR1
YWwgdm9pZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYpIHsgfTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9DaGFuZ2VkKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmYWlsZWRU
b0VudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9F
eGl0UGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRXhpdFBpY3R1
cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdFBpY3R1cmVJblBpY3R1
cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbW9kZWxEZXN0cm95ZWQoKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmgKaW5kZXggMjRkMTM1OGRlOWIyNGIzM2JiMGRjOWNiZWU5Y2YwMTg0ZWJjZDE1
Ny4uOGU0NDEwZmQyYzE2MzNkZjRmZTdlMmM2MDJjZGM2NzlhNDQ3ZjNhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1
cnJlbnRNb2RlLm1vZGUoKTsgfQogICAgIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZVBsYXli
YWNrKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2s7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJl
SW5QaWN0dXJlKCkgY29uc3Q7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKKyAgICB2b2lkIHByZXBhcmVG
b3JQaWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJh
Y2spOwogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CiAKQEAg
LTE0NiwxNyArMTQ2LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuSGFuZGxl
cihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKik7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5IYW5k
bGVyKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKTsKICAgICBib29sIGlzUGxheWluZ1ZpZGVvSW5F
bmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJl
YWR5VG9TdG9wUGljdHVyZUluUGljdHVyZShCT09MKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHdpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0V2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJlKEJPT0wpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICBib29sIGhhc01vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VycmVudE1vZGUuaGFzTW9kZShtb2RlKTsgfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKTsKICAgICBV
SVZpZXdDb250cm9sbGVyICpmdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX3ZpZXdDb250cm9sbGVyLmdldCgpOyB9CiAgICAgV2ViQVZQbGF5ZXJMYXllclZpZXcqIHBs
YXllckxheWVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyTGF5ZXJWaWV3LmdldCgpOyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBwaWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5F
bnRlcmluZ0JhY2tncm91bmQoKSBjb25zdDsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgV0VC
Q09SRV9FWFBPUlQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQoUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQVZLaXQmKTsKQEAgLTIxNyw5ICsyMTgsMTQgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgbV9zdGFuZGJ5IHsgZmFsc2UgfTsKICAgICBib29sIG1fdGFyZ2V0U3RhbmRieSB7IGZhbHNl
IH07CiAKKyNpZiBQTEFURk9STShXQVRDSE9TKQogICAgIGJvb2wgbV93YWl0aW5nRm9yUHJlcGFy
ZWRUb0V4aXQgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX3Nob3VsZElnbm9yZUFWS2l0
Q2FsbGJhY2tBYm91dEV4aXRGdWxsc2NyZWVuUmVhc29uIHsgZmFsc2UgfTsKICAgICBib29sIG1f
ZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZXhpdGluZ1Bp
Y3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9yZWFkeVRvU3RvcFBpY3R1cmVJ
blBpY3R1cmUgeyB0cnVlIH07CisgICAgYm9vbCBtX3dpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVy
ZUluUGljdHVyZSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5k
ZXggMDEwM2VlNzQ0ZjkxNWVmZDgxM2FhYzcxZDk2YmRmNTVjZDA2ZTdmYy4uZTA2NjU0MjVjZDll
YTRkOThjYWI0MDAxNzljNTQ2MWQ1Y2FjMzJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpA
QCAtOTY5LDEzICs5NjksOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpj
bGVhbnVwRnVsbHNjcmVlbigpCiAgICAgCiAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0
RGVsZWdhdGU6bmlsXTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250
cm9sbGVyOm5pbF07Ci0gICAgCi0gICAgaWYgKG1fY3VycmVudE1vZGUuaGFzUGljdHVyZUluUGlj
dHVyZSgpKSB7Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHN0b3BQaWN0dXJlSW5Q
aWN0dXJlXTsKIAotICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKLSAgICAgICAg
ICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7Ci0g
ICAgfQorICAgIGlmIChtX2N1cnJlbnRNb2RlLmhhc1BpY3R1cmVJblBpY3R1cmUoKSkKKyAgICAg
ICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcFBpY3R1cmVJblBpY3R1cmVdOwogCiAgICAg
aWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVlbigpKSB7CiAgICAgICAgIFtbbV9wbGF5ZXJW
aWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CkBAIC0xMDAyLDYgKzk5OCwxMyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbigp
CiAgICAgW3BsYXllckNvbnRyb2xsZXIoKSBzZXRIYXNFbmFibGVkVmlkZW86ZmFsc2VdOwogICAg
IFtwbGF5ZXJDb250cm9sbGVyKCkgc2V0SGFzVmlkZW86ZmFsc2VdOwogCisgICAgbV93aWxsRW50
ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICBpZiAobV9leGl0aW5n
UGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0g
ZmFsc2U7CisgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgICAgICAgICAg
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICB9
CisKICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyLT5kaWRDbGVhbnVwRnVsbHNjcmVlbigpOwogfQpAQCAtMTA2Niwx
MSArMTA2OSwxNCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRv
bWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpCiAgICAgcmV0dXJuIFtwbGF5ZXJD
b250cm9sbGVyKCkgaXNQbGF5aW5nXSAmJiAobV9zdGFuZGJ5IHx8IG1fY3VycmVudE1vZGUuaXNG
dWxsc2NyZWVuKCkpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogfQogCi12b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
V1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQordm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wKFdURjo6RnVu
Y3Rpb248dm9pZChib29sKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3ByZXBhcmVUb0lubGluZUNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci0gICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyKQotICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCk7CisgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7
CisgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5wcmVwYXJlVG9FeGl0RnVsbHNj
cmVlbigpOworICAgICAgICBpZiAobV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUpCisgICAg
ICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCk7CisgICAgfQogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Ojp3aWxsU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKQEAgLTExMTgsNyArMTEyNCw2IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgp
CiAgICAgfQogCiAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKLSAgICBt
X3N0YW5kYnkgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTE0NCw2ICsxMTQ5LDcgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BQaWN0dXJlSW5QaWN0
dXJlKCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Ojp3aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoJXApIiwgdGhpcyk7CiAKKyAgICBtX2V4aXRp
bmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVl
bldoZW5TdG9wcGluZ1BpUCA9IGZhbHNlOwogCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVs
bHNjcmVlbigpIHx8IG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9w
KQpAQCAtMTE5MCw2ICsxMTk2LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5k
bGVyKHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoQk9PTCByZXN0b3JlZCkpCiB7CiAgICAgTE9H
KEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBp
Y3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKCVwKSIsIHRoaXMpOworCiAg
ICAgaWYgKG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQKSB7CiAgICAg
ICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7CiAg
ICAgICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wID0gdHJ1
ZTsKQEAgLTEyMDUsNyArMTIxMiw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBzdHJvbmdDb21wbGV0aW9uSGFuZGxlciA9IGFk
b3B0TlMoW2NvbXBsZXRpb25IYW5kbGVyIGNvcHldKV0oYm9vbCByZXN0b3JlZCkgIHsKKyAgICBw
cmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3AoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KHRoaXMpLCBzdHJvbmdDb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5k
bGVyIGNvcHldKV0oYm9vbCByZXN0b3JlZCkgIHsKICAgICAgICAgTE9HKEZ1bGxzY3JlZW4sICJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVT
dG9wV2l0aENvbXBsZXRpb25IYW5kbGVyIGxhbWJkYSglcCkgLSByZXN0b3JlZCglcykiLCBwcm90
ZWN0ZWRUaGlzLmdldCgpLCBib29sU3RyaW5nKHJlc3RvcmVkKSk7CiAgICAgICAgICgodm9pZCAo
XikoQk9PTCkpc3Ryb25nQ29tcGxldGlvbkhhbmRsZXIuZ2V0KCkpKHJlc3RvcmVkKTsKICAgICB9
KTsKQEAgLTE1ODAsNiArMTU4NywyNiBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Ojppc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3QKICAgICByZXR1
cm4gaGFzTW9kZShXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGVQaWN0dXJlSW5QaWN0dXJlKSAmJiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWluZ107
CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9w
UGljdHVyZUluUGljdHVyZShCT09MIHJlYWR5KQoreworICAgIGlmIChtX3JlYWR5VG9TdG9wUGlj
dHVyZUluUGljdHVyZSA9PSByZWFkeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZWFkeVRv
U3RvcFBpY3R1cmVJblBpY3R1cmUgPSByZWFkeTsKKyAgICBpZiAobV9yZWFkeVRvU3RvcFBpY3R1
cmVJblBpY3R1cmUgJiYgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgIG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKK30K
KworYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbEVudGVyU3RhbmRieUZy
b21QaWN0dXJlSW5QaWN0dXJlKCkKK3sKKyAgICByZXR1cm4gbV93aWxsRW50ZXJTdGFuZGJ5RnJv
bVBpY3R1cmVJblBpY3R1cmU7Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnNldFdpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZShCT09MIHZhbHVlKQor
eworICAgIG1fd2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmFsdWU7Cit9
CisKIHN0YXRpYyBPcHRpb25hbDxib29sPiBpc1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0ZWQ7CiAK
IHZvaWQgV2ViQ29yZTo6c2V0U3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKGJvb2wgaXNTdXBwb3J0
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCA0OTI1YjU2NzZkYTE5Nzg0
YmMyMjA2Yjg0ZTA5NTRhNmZhYTRkMGYzLi45MWEzZTNjODI3MTNjM2QzYmJmZjdmNDFmNWY3ZGQ5
OGUwY2E5MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAgLTEyOCw2ICsx
MjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CiAg
ICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmVUb0V4aXRGdWxsc2NyZWVuKCkgZmlu
YWwgeyB9CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKIAog
ICAgIC8vIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmlu
ZGV4IGU4ZDNmZTA1MzNmOGU5MTcwMmExYzBmMzdmYTI2NGNhZmZkNTllNTAuLjc2Yjk2NThkOGNi
MmNhYzU3MjE0N2M1YTI3NjU5YjE5MmZkMjVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBA
IC0xMTEsNiArMTExLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigp
IGZpbmFsOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRp
ZENsZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlVG9FeGl0RnVsbHNj
cmVlbigpIGZpbmFsOwogICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmlu
YWw7CiAKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbQppbmRleCBlZGFjY2UzYzBkYTUxOTBhNjYwMmJiMWZmZWViZjhiZWVk
NmNjNWUwLi41MjIzODA4Y2Q3ZGJmZDlhODJhYWQwMzFlN2E4NmQyNzFjNTkzNzk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0yNjgsNiArMjY4LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDb250ZXh0OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgICAgIG1fbWFuYWdl
ci0+ZGlkQ2xlYW51cEZ1bGxzY3JlZW4obV9jb250ZXh0SWQpOwogfQogCit2b2lkIFZpZGVvRnVs
bHNjcmVlbk1vZGVsQ29udGV4dDo6cHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKQoreworICAgIGZv
ciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICBjbGllbnQtPnByZXBhcmVUb0V4
aXRQaWN0dXJlSW5QaWN0dXJlKCk7Cit9CisKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250
ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKQogewogICAgIGlmIChtX21hbmFnZXIp
CkBAIC01MTIsNyArNTE4LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpz
ZXR1cEZ1bGxzY3JlZW5XaXRoSUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAgICAgTUVTU0FH
RV9DSEVDSyh2aWRlb0xheWVySUQpOwogCiAgICAgYXV0byYgW21vZGVsLCBpbnRlcmZhY2VdID0g
ZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKLSAgICBhZGRDbGllbnRGb3JDb250
ZXh0KGNvbnRleHRJZCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoaW50ZXJm
YWNlLT53aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoKSkKKyAgICAgICAgaW50
ZXJmYWNlLT5zZXRXaWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoTk8pOworICAg
IGVsc2UgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSB8fCAhc3RhbmRieSkKKyAgICAgICAg
YWRkQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOworI2VuZGlmCiAKICAgICBpZiAobV9tb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkgewogICAgICAgICBpZiAoIXZpZGVvRGltZW5z
aW9ucy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ2ZjAxZmVkMWQ2MGY0OTQyZDkxMDc4Njk3
YmU5ZDA5NDQ4M2U5Y2YuLmQ0ODM2ZjE2NGRmOTQ5YzlmNjgzOTVjMDNiNzg1NWNmZjU4MWZkOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCBhbmltYXRpbmcpCiAgICAgbV9wYWdl
LnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpTZXRBbmltYXRpbmdGdWxsU2Ny
ZWVuKGFuaW1hdGluZykpOwogfQogCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJl
cXVlc3RFbnRlckZ1bGxTY3JlZW4oKQoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJG
dWxsU2NyZWVuTWFuYWdlcjo6UmVxdWVzdEVudGVyRnVsbFNjcmVlbigpKTsKK30KKwogdm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQogewogICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6UmVxdWVzdEV4aXRG
dWxsU2NyZWVuKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IGRlMWQzMzA3ZTNiZTczZjcxMWRlNDU5NWIxN2ZhYWFj
ODg2NzlkNDEuLjAwZDNkMGFhMjNmNDBiMGJiNzEyODgyNjMyYTQxOWU4NjA4YmE2N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVu
KCk7CiAgICAgdm9pZCBkaWRFeGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgc2V0QW5pbWF0aW5n
RnVsbFNjcmVlbihib29sKTsKKyAgICB2b2lkIHJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsKICAg
ICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgc2F2ZVNjcm9sbFBvc2l0
aW9uKCk7CiAgICAgdm9pZCByZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5WaWV3Q29udHJvbGxlci5oCmluZGV4IDk1YTk1MjBmMjM1MDJhMTY2NTVlZTdjZjY2ZTQ3
ZDBiYWYzYzdhYzguLmM0MTU3ODUxMTEzM2U1YzEzNTJjMTRjNzY5MjMwNjQ3OGExYTY2NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNj
cmVlblZpZXdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaApAQCAtMzMsNyArMzMsNyBAQCBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAaW50ZXJmYWNlIFdLRnVsbFNjcmVlblZpZXdDb250
cm9sbGVyIDogVUlWaWV3Q29udHJvbGxlcgogQHByb3BlcnR5IChyZXRhaW4sIG5vbmF0b21pYykg
aWQgdGFyZ2V0OwotQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykgU0VMIGFjdGlvbjsKK0Bw
cm9wZXJ0eSAoYXNzaWduLCBub25hdG9taWMpIFNFTCBleGl0RnVsbFNjcmVlbkFjdGlvbjsKIEBw
cm9wZXJ0eSAoY29weSwgbm9uYXRvbWljKSBOU1N0cmluZyAqbG9jYXRpb247CiBAcHJvcGVydHkg
KGFzc2lnbiwgbm9uYXRvbWljKSBCT09MIHByZWZlcnNTdGF0dXNCYXJIaWRkZW47CiBAcHJvcGVy
dHkgKGFzc2lnbiwgbm9uYXRvbWljKSBCT09MIHByZWZlcnNIb21lSW5kaWNhdG9yQXV0b0hpZGRl
bjsKQEAgLTQ1LDYgKzQ1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKHZvaWQpc2hv
d1VJOwogLSAodm9pZCloaWRlVUk7CiAtICh2b2lkKXZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hh
bmdlOworLSAodm9pZClzZXRBbmltYXRpbmdWaWV3QWxwaGE6KENHRmxvYXQpYWxwaGE7CiBAZW5k
CiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJv
bGxlci5tbQppbmRleCA3OGMwMDE1MmYxYTQzNzAwNWNkOTI5MDM5OGE3ZmNjZTg3YzFmOTgwLi5h
YTZjNDAyMWZjMzNjYWY2YzQ5NDc5OGI3ZWQyZDFmNzc0NDIwN2JhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbQpAQCAtNDYsMTIgKzQ2LDYgQEAgc3RhdGljIGNvbnN0
IE5TVGltZUludGVydmFsIGF1dG9IaWRlRGVsYXkgPSA0LjA7CiAKIEBjbGFzcyBXS0Z1bGxzY3Jl
ZW5TdGFja1ZpZXc7CiAKLUBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKFZp
ZGVvRnVsbHNjcmVlbkNsaWVudENhbGxiYWNrcykKLS0gKHZvaWQpd2lsbEVudGVyUGljdHVyZUlu
UGljdHVyZTsKLS0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlOwotLSAodm9pZClmYWls
ZWRUb0VudGVyUGljdHVyZUluUGljdHVyZTsKLUBlbmQKLQogY2xhc3MgV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCA6IFdlYkNvcmU6OlBsYXliYWNr
U2Vzc2lvbk1vZGVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2b2lkIHNldFBhcmVudChXS0Z1bGxT
Y3JlZW5WaWV3Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CkBAIC04
Nyw0NSArODEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdD4gbV9pbnRlcmZhY2U7CiB9OwogCi1jbGFzcyBXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IDogV2ViQ29yZTo6VmlkZW9G
dWxsc2NyZWVuTW9kZWxDbGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVi
bGljOgotICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyICpwYXJl
bnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KLQotICAgIHZvaWQgc2V0SW50ZXJmYWNlKFdlYkNv
cmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZhY2UpCi0gICAgewotICAg
ICAgICBpZiAobV9pbnRlcmZhY2UgPT0gaW50ZXJmYWNlKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIGlmIChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVu
TW9kZWwoKSkKLSAgICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgp
LT5yZW1vdmVDbGllbnQoKnRoaXMpOwotICAgICAgICBtX2ludGVyZmFjZSA9IGludGVyZmFjZTsK
LSAgICAgICAgaWYgKG1faW50ZXJmYWNlICYmIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5N
b2RlbCgpKQotICAgICAgICAgICAgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkt
PmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfQotCi0gICAgV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQqIGludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJmYWNlLmdl
dCgpOyB9Ci0KLSAgICB2b2lkIHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAotICAg
IHsKLSAgICAgICAgW21fcGFyZW50IHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmVdOwotICAgIH0K
LQotICAgIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKLSAgICB7Ci0gICAg
ICAgIFttX3BhcmVudCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmVdOwotICAgIH0KLQotICAgIHZv
aWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAotICAgIHsKLSAgICAgICAg
W21fcGFyZW50IGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKm1fcGFyZW50IHsgbnVsbHB0ciB9
OwotICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gbV9p
bnRlcmZhY2U7Ci19OwotCiAjcHJhZ21hIG1hcmsgLSBfV0tFeHRyaW5zaWNCdXR0b24KIAogQGlu
dGVyZmFjZSBfV0tFeHRyaW5zaWNCdXR0b24gOiBVSUJ1dHRvbgpAQCAtMTY0LDcgKzExOSw2IEBA
IHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TTGF5b3V0Q29uc3RyYWludD4gX3RvcENvbnN0cmFp
bnQ7CiAgICAgV2ViS2l0OjpGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMgX3NlY2hldXJpc3Rp
YzsKICAgICBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xp
ZW50IF9wbGF5YmFja0NsaWVudDsKLSAgICBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclZpZGVv
RnVsbHNjcmVlbk1vZGVsQ2xpZW50IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7CiAgICAgQ0dGbG9h
dCBfbm9uWmVyb1N0YXR1c0JhckhlaWdodDsKIH0KIApAQCAtMTg4LDcgKzE0Miw2IEBAIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHNlbGYuX3dlYlZpZXcgPSB3ZWJWaWV3
OwogCiAgICAgX3BsYXliYWNrQ2xpZW50LnNldFBhcmVudChzZWxmKTsKLSAgICBfdmlkZW9GdWxs
c2NyZWVuQ2xpZW50LnNldFBhcmVudChzZWxmKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAt
MjAwLDggKzE1Myw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAg
X3BsYXliYWNrQ2xpZW50LnNldFBhcmVudChudWxscHRyKTsKICAgICBfcGxheWJhY2tDbGllbnQu
c2V0SW50ZXJmYWNlKG51bGxwdHIpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0UGFy
ZW50KG51bGxwdHIpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKG51
bGxwdHIpOwogCiAgICAgW190YXJnZXQgcmVsZWFzZV07CiAgICAgW19sb2NhdGlvbiByZWxlYXNl
XTsKQEAgLTI2MSw3ICsyMTIsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBhdXRvKiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UgPyAmdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2UoKSA6IG51bGxwdHI7CiAKICAgICBfcGxheWJhY2tDbGllbnQuc2V0SW50ZXJmYWNlKHBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZSk7Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRl
cmZhY2UodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKTsKIAogICAgIFdlYkNvcmU6OlBsYXliYWNr
U2Vzc2lvbk1vZGVsKiBwbGF5YmFja1Nlc3Npb25Nb2RlbCA9IHBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZSA/IHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwoKSA6
IG51bGxwdHI7CiAgICAgc2VsZi5wbGF5aW5nID0gcGxheWJhY2tTZXNzaW9uTW9kZWwgPyBwbGF5
YmFja1Nlc3Npb25Nb2RlbC0+aXNQbGF5aW5nKCkgOiBOTzsKQEAgLTI3Miw2ICsyMjIsMTMgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW19waXBCdXR0b24gc2V0SGlk
ZGVuOiFpc1BpUEVuYWJsZWQgfHwgIWlzUGlQU3VwcG9ydGVkXTsKIH0KIAorLSAodm9pZClzZXRB
bmltYXRpbmdWaWV3QWxwaGE6KENHRmxvYXQpYWxwaGEKK3sKKyAgICBbVUlWaWV3IGFuaW1hdGVX
aXRoRHVyYXRpb246cGlwSGlkZUFuaW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbnM6XnsKKyAgICAg
ICAgX2FuaW1hdGluZ1ZpZXcuZ2V0KCkuYWxwaGEgPSBhbHBoYTsKKyAgICB9XTsKK30KKwogLSAo
dm9pZClzZXRQcmVmZXJzU3RhdHVzQmFySGlkZGVuOihCT09MKXZhbHVlCiB7CiAgICAgX3ByZWZl
cnNTdGF0dXNCYXJIaWRkZW4gPSB2YWx1ZTsKQEAgLTMzMCwzMyArMjg3LDYgQEAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtzZWxmIHNob3dVSV07CiB9CiAKLS0g
KHZvaWQpd2lsbEVudGVyUGljdHVyZUluUGljdHVyZQotewotICAgIGF1dG8qIGludGVyZmFjZSA9
IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7Ci0gICAgaWYgKCFpbnRlcmZhY2Ug
fHwgIWludGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdCYWNr
Z3JvdW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtVSVZpZXcgYW5pbWF0ZVdpdGhEdXJh
dGlvbjpwaXBIaWRlQW5pbWF0aW9uRHVyYXRpb24gYW5pbWF0aW9uczpeewotICAgICAgICBfYW5p
bWF0aW5nVmlldy5nZXQoKS5hbHBoYSA9IDA7Ci0gICAgfV07Ci19Ci0KLS0gKHZvaWQpZGlkRW50
ZXJQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgW3NlbGYgX2NhbmNlbEFjdGlvbjpzZWxmXTsKLX0K
LQotLSAodm9pZClmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZQotewotICAgIGF1dG8qIGlu
dGVyZmFjZSA9IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7Ci0gICAgaWYgKCFp
bnRlcmZhY2UgfHwgIWludGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50
ZXJpbmdCYWNrZ3JvdW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtVSVZpZXcgYW5pbWF0
ZVdpdGhEdXJhdGlvbjpwaXBIaWRlQW5pbWF0aW9uRHVyYXRpb24gYW5pbWF0aW9uczpeewotICAg
ICAgICBfYW5pbWF0aW5nVmlldy5nZXQoKS5hbHBoYSA9IDE7Ci0gICAgfV07Ci19Ci0KICNwcmFn
bWEgbWFyayAtIFVJVmlld0NvbnRyb2xsZXIgT3ZlcnJpZGVzCiAKIC0gKHZvaWQpbG9hZFZpZXcK
QEAgLTUwMyw3ICs0MzMsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
LSAodm9pZClfY2FuY2VsQWN0aW9uOihpZClzZW5kZXIKIHsKLSAgICBbW3NlbGYgdGFyZ2V0XSBw
ZXJmb3JtU2VsZWN0b3I6W3NlbGYgYWN0aW9uXV07CisgICAgW1tzZWxmIHRhcmdldF0gcGVyZm9y
bVNlbGVjdG9yOltzZWxmIGV4aXRGdWxsU2NyZWVuQWN0aW9uXV07CiB9CiAKIC0gKHZvaWQpX3Rv
Z2dsZVBpUEFjdGlvbjooaWQpc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVySU9TLmgKaW5kZXggMzFlYzgxYzg3MGY0MGVkZmVjYWI4YjM4YWY3MzUwMGJjZmQ4
NGQ3Yi4uZmQzOTlhMGEwNzMyZmYxMTg1NDlhMTJmZjhlNGU2NDJlZjczNDljOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxs
c2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaApAQCAtMzYsNiArMzYsNyBA
QAogLSAoaWQpaW5pdFdpdGhXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZCll
bnRlckZ1bGxTY3JlZW47CiAtICh2b2lkKWJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxG
cmFtZTooQ0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihDR1JlY3QpZmluYWxGcmFtZTsK
Ky0gKHZvaWQpcmVxdWVzdEVudGVyRnVsbFNjcmVlbjsKIC0gKHZvaWQpcmVxdWVzdEV4aXRGdWxs
U2NyZWVuOwogLSAodm9pZClleGl0RnVsbFNjcmVlbjsKIC0gKHZvaWQpYmVnYW5FeGl0RnVsbFNj
cmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFtZTooQ0dS
ZWN0KWZpbmFsRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
ZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cklPUy5tbQppbmRleCA0NmJjZTZhY2RhNGUxNTM5MTJkZmIyMWMxZTU2NmQ0ODQzYmYzYzFkLi42
ODk5NDNiNGY2ZjgzYWEzNTIzMmZmY2ZiMTI0ZmI4OGE0MTUxMTEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KQEAgLTQyNCw2ICs0MjQsNjUgQEAg
c3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKIAog
I3ByYWdtYSBtYXJrIC0KIAorQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
IChWaWRlb0Z1bGxzY3JlZW5DbGllbnRDYWxsYmFja3MpCistICh2b2lkKXdpbGxFbnRlclBpY3R1
cmVJblBpY3R1cmU7CistICh2b2lkKWRpZEVudGVyUGljdHVyZUluUGljdHVyZTsKKy0gKHZvaWQp
ZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmU7CistICh2b2lkKXByZXBhcmVUb0V4aXRQaWN0
dXJlSW5QaWN0dXJlOworLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZTsKK0BlbmQKKwor
Y2xhc3MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xp
ZW50IDogV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQorCisgICAg
dm9pZCBzZXRJbnRlcmZhY2UoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQq
IGludGVyZmFjZSkKKyAgICB7CisgICAgICAgIGlmIChtX2ludGVyZmFjZSA9PSBpbnRlcmZhY2Up
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKG1faW50ZXJmYWNlICYmIG1faW50
ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpKQorICAgICAgICAgICAgbV9pbnRlcmZhY2Ut
PnZpZGVvRnVsbHNjcmVlbk1vZGVsKCktPnJlbW92ZUNsaWVudCgqdGhpcyk7CisgICAgICAgIG1f
aW50ZXJmYWNlID0gaW50ZXJmYWNlOworICAgICAgICBpZiAobV9pbnRlcmZhY2UgJiYgbV9pbnRl
cmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCisgICAgICAgICAgICBtX2ludGVyZmFjZS0+
dmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+YWRkQ2xpZW50KCp0aGlzKTsKKyAgICB9CisKKyAgICBX
ZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCogaW50ZXJmYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRlcmZhY2UuZ2V0KCk7IH0KKworICAgIHZvaWQgd2lsbEVudGVyUGljdHVy
ZUluUGljdHVyZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJlbnQgd2lsbEVudGVyUGlj
dHVyZUluUGljdHVyZV07CisgICAgfQorCisgICAgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1
cmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fcGFyZW50IGRpZEVudGVyUGljdHVyZUluUGlj
dHVyZV07CisgICAgfQorCisgICAgdm9pZCBmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgp
IGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJlbnQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBp
Y3R1cmVdOworICAgIH0KKworICAgIHZvaWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUo
KSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fcGFyZW50IHByZXBhcmVUb0V4aXRQaWN0dXJlSW5Q
aWN0dXJlXTsKKyAgICB9CisKKyAgICB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgZmlu
YWwKKyAgICB7CisgICAgICAgIFttX3BhcmVudCBkaWRFeGl0UGljdHVyZUluUGljdHVyZV07Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKm1fcGFy
ZW50IHsgbnVsbHB0ciB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdD4gbV9pbnRlcmZhY2U7Cit9OworCisjcHJhZ21hIG1hcmsgLQorCiBAaW1wbGVt
ZW50YXRpb24gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB7CiAgICAgUmV0YWluUHRyPFdL
RnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldz4gX3dlYlZpZXdQbGFjZWhvbGRlcjsKIApAQCAtNDQx
LDYgKzUwMCwxMCBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0
aW9uID0gMC4yOwogICAgIFJldGFpblB0cjxVSVBpbmNoR2VzdHVyZVJlY29nbml6ZXI+IF9pbnRl
cmFjdGl2ZVBpbmNoRGlzbWlzc0dlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxXS0Z1
bGxTY3JlZW5JbnRlcmFjdGl2ZVRyYW5zaXRpb24+IF9pbnRlcmFjdGl2ZURpc21pc3NUcmFuc2l0
aW9uQ29vcmRpbmF0b3I7CiAKKyAgICBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9G
dWxsc2NyZWVuTW9kZWxDbGllbnQgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudDsKKyAgICBCT09MIF9p
blBpY3R1cmVJblBpY3R1cmU7CisgICAgQk9PTCBfcmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1
cmVJblBpY3R1cmU7CisKICAgICBDR1JlY3QgX2luaXRpYWxGcmFtZTsKICAgICBDR1JlY3QgX2Zp
bmFsRnJhbWU7CiAKQEAgLTQ0OCw2ICs1MTEsOCBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2
YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAgIEJPT0wgX0VWT3JnYW5pemF0aW9uTmFt
ZUlzVmFsaWQ7CiAgICAgQk9PTCBfaW5JbnRlcmFjdGl2ZURpc21pc3M7CiAgICAgQk9PTCBfZXhp
dFJlcXVlc3RlZDsKKyAgICBCT09MIF9lbnRlclJlcXVlc3RlZDsKKyAgICBCT09MIF9leGl0aW5n
RnVsbFNjcmVlbjsKIAogICAgIFJldGFpblB0cjxpZD4gX25vdGlmaWNhdGlvbkxpc3RlbmVyOwog
fQpAQCAtNDYwLDYgKzUyNSw3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0
aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBzZWxmLl93ZWJW
aWV3ID0gd2ViVmlldzsKKyAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldFBhcmVudChzZWxm
KTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtNDY5LDYgKzUzNSw5IEBAIHN0YXRpYyBjb25z
dCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgW05TT2JqZWN0
IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmXTsKICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOwog
CisgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7CisgICAg
X3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQobnVsbHB0cik7CisKICAgICBbc3VwZXIg
ZGVhbGxvY107CiB9CiAKQEAgLTUyNCw3ICs1OTMsNyBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50
ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAgIFtfZnVsbHNjcmVlblZpZXdDb250
cm9sbGVyIHNldFRyYW5zaXRpb25pbmdEZWxlZ2F0ZTpzZWxmXTsKICAgICBbX2Z1bGxzY3JlZW5W
aWV3Q29udHJvbGxlciBzZXRNb2RhbFByZXNlbnRhdGlvbkNhcHR1cmVzU3RhdHVzQmFyQXBwZWFy
YW5jZTpZRVNdOwogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldFRhcmdldDpzZWxm
XTsKLSAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRBY3Rpb246QHNlbGVjdG9yKHJl
cXVlc3RFeGl0RnVsbFNjcmVlbildOworICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNl
dEV4aXRGdWxsU2NyZWVuQWN0aW9uOkBzZWxlY3RvcihyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pXTsK
ICAgICBfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyLmdldCgpLnZpZXcuZnJhbWUgPSBfcm9vdFZp
ZXdDb250cm9sbGVyLmdldCgpLnZpZXcuYm91bmRzOwogICAgIFtzZWxmIF91cGRhdGVMb2NhdGlv
bkluZm9dOwogCkBAIC02NTIsNiArNzIxLDE3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZh
bCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgICAgICAgICBtYW5hZ2VyLT5kaWRFbnRl
ckZ1bGxTY3JlZW4oKTsKICAgICAgICAgICAgIG1hbmFnZXItPnNldEFuaW1hdGluZ0Z1bGxTY3Jl
ZW4oZmFsc2UpOwogICAgICAgICAgICAgcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRl
cyhmYWxzZSk7CisKKyAgICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBw
YWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CisgICAgICAgICAgICBhdXRvKiB2aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gdmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOworICAgICAg
ICAgICAgaWYgKF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkgeworICAg
ICAgICAgICAgICAgIEFTU0VSVCh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpOworICAgICAgICAg
ICAgICAgIF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSA9IE5POworICAg
ICAgICAgICAgICAgIGlmICh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCisgICAgICAgICAgICAg
ICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5Q
aWN0dXJlKFlFUyk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBfdmlkZW9G
dWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZSh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpOwor
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNjYwLDYgKzc0MCwxOSBAQCBz
dGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAg
IH1dOwogfQogCistICh2b2lkKXJlcXVlc3RFbnRlckZ1bGxTY3JlZW4KK3sKKyAgICBpZiAoX2Z1
bGxTY3JlZW5TdGF0ZSAhPSBXZWJLaXQ6Ok5vdEluRnVsbFNjcmVlbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CisgICAgICAgIG1h
bmFnZXItPnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiAtICh2b2lkKXJlcXVlc3RFeGl0RnVs
bFNjcmVlbgogewogICAgIGlmIChfZnVsbFNjcmVlblN0YXRlICE9IFdlYktpdDo6SW5GdWxsU2Ny
ZWVuKSB7CkBAIC02NjksNiArNzYyLDcgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtB
bmltYXRpb25EdXJhdGlvbiA9IDAuMjsKIAogICAgIGlmIChhdXRvKiBtYW5hZ2VyID0gc2VsZi5f
bWFuYWdlcikgewogICAgICAgICBtYW5hZ2VyLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKKyAg
ICAgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gWUVTOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC03NzAsNiArODY0LDE2IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0
aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgICAgICAgICBwYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxp
dHlVcGRhdGVzKGZhbHNlKTsKICAgICAgICAgICAgIHBhZ2UtPnNldE5lZWRzRE9NV2luZG93UmVz
aXplRXZlbnQoKTsKICAgICAgICAgfQorCisgICAgICAgIGlmICghX2luUGljdHVyZUluUGljdHVy
ZSkKKyAgICAgICAgICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKG51bGxw
dHIpOworCisgICAgICAgIF9leGl0UmVxdWVzdGVkID0gTk87CisgICAgICAgIF9leGl0aW5nRnVs
bFNjcmVlbiA9IE5POworICAgICAgICBpZiAoX2VudGVyUmVxdWVzdGVkKSB7CisgICAgICAgICAg
ICBfZW50ZXJSZXF1ZXN0ZWQgPSBOTzsKKyAgICAgICAgICAgIFtzZWxmIHJlcXVlc3RFbnRlckZ1
bGxTY3JlZW5dOworICAgICAgICB9CiAgICAgfSk7CiAKICAgICBpZiAoYXV0byBwYWdlID0gW3Nl
bGYuX3dlYlZpZXcgX3BhZ2VdKQpAQCAtNzc5LDcgKzg4Myw2IEBAIHN0YXRpYyBjb25zdCBOU1Rp
bWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKICAgICBbX2Z1bGxzY3JlZW5W
aWV3Q29udHJvbGxlciBzZXRQcmVmZXJzU3RhdHVzQmFySGlkZGVuOllFU107CiAgICAgX2Z1bGxz
Y3JlZW5WaWV3Q29udHJvbGxlciA9IG5pbDsKLSAgICBfZXhpdFJlcXVlc3RlZCA9IE5POwogfQog
CiAtICh2b2lkKWNsb3NlCkBAIC03OTgsNiArOTAxLDExIEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJ
bnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiB7CiAgICAgaWYgKF9mdWxsc2NyZWVu
Vmlld0NvbnRyb2xsZXIpCiAgICAgICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHZpZGVv
Q29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXTsKKworICAgIGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJW
aWV3IF9wYWdlXTsKKyAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gcGFnZSA/IHBh
Z2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKSA6IG51bGxwdHI7CisgICAgYXV0byogdmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlID0gdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA/IHZpZGVvRnVsbHNj
cmVlbk1hbmFnZXItPmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpIDogbnVsbHB0cjsKKyAgICBf
dmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZSh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UpOwogfQogCiAtICh2b2lkKXBsYWNlaG9sZGVyV2lsbE1vdmVUb1N1cGVydmlldzooVUlWaWV3
ICopc3VwZXJ2aWV3CkBAIC04MTEsNiArOTE5LDUzIEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRl
cnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpd2ls
bEVudGVyUGljdHVyZUluUGljdHVyZQoreworICAgIGF1dG8qIGludGVyZmFjZSA9IF92aWRlb0Z1
bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7CisgICAgaWYgKCFpbnRlcmZhY2UgfHwgIWludGVy
ZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdCYWNrZ3JvdW5kKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldEFu
aW1hdGluZ1ZpZXdBbHBoYTowXTsKK30KKworLSAodm9pZClkaWRFbnRlclBpY3R1cmVJblBpY3R1
cmUKK3sKKyAgICBfaW5QaWN0dXJlSW5QaWN0dXJlID0gWUVTOworICAgIFtzZWxmIHJlcXVlc3RF
eGl0RnVsbFNjcmVlbl07Cit9CisKKy0gKHZvaWQpZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1
cmUKK3sKKyAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmludGVy
ZmFjZSgpOworICAgIGlmICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2UtPnBpY3R1cmVJblBpY3R1
cmVXYXNTdGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRBbmltYXRpbmdWaWV3QWxwaGE6MV07
Cit9CisKKy0gKHZvaWQpcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUKK3sKKyAgICBhdXRv
KiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmludGVyZmFjZSgpOworICAgIGlm
ICghaW50ZXJmYWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnRlcmZhY2UtPnNldFJlYWR5
VG9TdG9wUGljdHVyZUluUGljdHVyZShOTyk7CisgICAgaW50ZXJmYWNlLT5zZXRXaWxsRW50ZXJT
dGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoWUVTKTsKKyAgICBfcmV0dXJuVG9GdWxsc2NyZWVu
RnJvbVBpY3R1cmVJblBpY3R1cmUgPSBZRVM7CisKKyAgICBpZiAoIV9leGl0aW5nRnVsbFNjcmVl
bikKKyAgICAgICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl07CisgICAgZWxzZQorICAg
ICAgICBfZW50ZXJSZXF1ZXN0ZWQgPSBZRVM7Cit9CisKKy0gKHZvaWQpZGlkRXhpdFBpY3R1cmVJ
blBpY3R1cmUKK3sKKyAgICBfaW5QaWN0dXJlSW5QaWN0dXJlID0gTk87CisgICAgaWYgKCFfcmV0
dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUgJiYgIVtzZWxmIGlzRnVsbFNjcmVl
bl0pCisgICAgICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKG51bGxwdHIp
OworfQorCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIFVJR2VzdHVyZVJlY29nbml6ZXJE
ZWxlZ2F0ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVl
bi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKaW5kZXggMmYyYjZlY2MyN2MyNGQ0ZWJj
YzZiNjhkNDM5Y2E3Njc3ZDk3NzZhYi4uMmRmMWNjYjgwZmMyODU4MjhlOTRmNzFmZjZiYWYzZDU4
YWE4ODZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4v
V2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXJCYWNraW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
IHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAj
aW5jbHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTM2LDYgKzEzNywxMyBAQCB2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNv
cmU6OkVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm47
CiAgICAgbV9lbGVtZW50ID0gZWxlbWVudDsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCisgICAg
YXV0byogY3VycmVudFBsYXliYWNrQ29udHJvbHNFbGVtZW50ID0gbV9wYWdlLT5wbGF5YmFja1Nl
c3Npb25NYW5hZ2VyKCkuY3VycmVudFBsYXliYWNrQ29udHJvbHNFbGVtZW50KCk7CisgICAgaWYg
KGN1cnJlbnRQbGF5YmFja0NvbnRyb2xzRWxlbWVudCkKKyAgICAgICAgY3VycmVudFBsYXliYWNr
Q29udHJvbHNFbGVtZW50LT5wcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpOworI2Vu
ZGlmCisKICAgICBtX2luaXRpYWxGcmFtZSA9IHNjcmVlblJlY3RPZkNvbnRlbnRzKG1fZWxlbWVu
dC5nZXQoKSk7CiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoKS5l
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fcGFnZS5nZXQoKSwgZWxlbWVudCk7CiB9CkBAIC0y
MTcsNiArMjI1LDE2IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnNldEFuaW1hdGluZ0Z1
bGxTY3JlZW4oYm9vbCBhbmltYXRpbmcpCiAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLmZ1bGxz
Y3JlZW5NYW5hZ2VyKCkuc2V0QW5pbWF0aW5nRnVsbHNjcmVlbihhbmltYXRpbmcpOwogfQogCit2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAg
ICBBU1NFUlQobV9lbGVtZW50KTsKKyAgICBpZiAoIW1fZWxlbWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihX
ZWJDb3JlOjpQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQo
KS5mdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudChtX2VsZW1l
bnQuZ2V0KCksIEZ1bGxzY3JlZW5NYW5hZ2VyOjpFeGVtcHRJRnJhbWVBbGxvd0Z1bGxzY3JlZW5S
ZXF1aXJlbWVudCk7Cit9CisKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnJlcXVlc3RFeGl0
RnVsbFNjcmVlbigpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIu
aAppbmRleCA5MTIwYWM5MGM3N2ZkYWIyMDJlMjY3NDk4YTAyMTA3YWEwMTY1ODY1Li4wMWZkZjdm
ZWRiNmNmYmU2YTgwNjIyY2FjNjRhNmZjZTVlZGY4NDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgK
QEAgLTc3LDYgKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0UElQU3RhbmRieUVsZW1l
bnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopOwogCiAgICAgdm9pZCBzZXRBbmltYXRpbmdG
dWxsU2NyZWVuKGJvb2wpOworICAgIHZvaWQgcmVxdWVzdEVudGVyRnVsbFNjcmVlbigpOwogICAg
IHZvaWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBzYXZlU2Nyb2xsUG9zaXRp
b24oKTsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBiNjlhZWNlYzZiMDFiYWY5MWYyNmMxYTdhOTM2
YWM5Nzc2Yjc4YmYyLi5iZTUwZDZjMzQ4ZDA4Mjc2OTI3NGZkMWNmZDcxYzBkNTYzN2NkYzlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjIsNiArMjIsNyBA
QAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogbWVzc2FnZXMgLT4gV2ViRnVsbFNjcmVl
bk1hbmFnZXIgTGVnYWN5UmVjZWl2ZXIgeworICAgIFJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKQog
ICAgIFJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiAgICAgV2lsbEVudGVyRnVsbFNjcmVlbigpCiAg
ICAgRGlkRW50ZXJGdWxsU2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZWZjMDAz
YmQwMTU5MTAwMDgyZGUzY2VmMWY2MDlmYTUyMjUxY2E1YS4uNDU5ZDVkYjk3MmRiODdiY2JhOGQ1
ZWRmNDU4YzkzZWU0NDcxNDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk0MCw2ICs5
NDAsMTEgQEAgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmIHAKIAogI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByZXBhcmVGb3JWaWRlb0Z1
bGxzY3JlZW4oKQoreworICAgIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7Cit9CisK
IGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICByZXR1cm4gbV9w
YWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihtb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBlNzVmNDg4NTJiZmEwNmIxYWQ0MGUzYmJhMWZhM2Nj
M2UzZjQxYThlLi4xNTg4OWNjYTJjODEyZmRlN2M5OTgwNmE1MTExMjAzYzg4ZDAyNTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC0yNjQsNiArMjY0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgcHJlcGFyZUZvclZp
ZGVvRnVsbHNjcmVlbigpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4o
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5h
bDsKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGZpbmFsOwogICAg
IHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406438</attachid>
            <date>2020-08-11 17:11:04 -0700</date>
            <delta_ts>2020-08-12 00:08:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215305-20200811171103.patch</filename>
            <type>text/plain</type>
            <size>53965</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzMzUzZmU1ZThjOTRh
NWQ1ZmNkOTgzNTc4YWNmOTQzYTIzM2M5Mi4uODU4OGU2NDI3MGIxNzg4ZTEyMzMzNWJlMDk4ZmM1
OWU5NTgwNTZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIwLTA4LTExICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IHRv
IHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTMwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBjb250
YWluZXIgZWxlbWVudCBlbnRlcnMgZnVsbHNjcmVlbiAod2l0aCB0aGUgZnVsbHNjcmVlbiBBUEkp
LCBhIGRlc2NlbmRhbnQKKyAgICAgICAgdmlkZW8gZWxlbWVudCB3aWxsIGVudGVyIHRoZSB2aWRl
byBmdWxsc2NyZWVuIHN0YW5kYnkgc3RhdGUgc28gdGhhdCBpdCBjYW4gZW50ZXIKKyAgICAgICAg
cGljdHVyZS1pbi1waWN0dXJlIG9uIGFwcGxpY2F0aW9uIHN1c3BlbmQgKHIyMjYyMTcpLiBCdXQg
d2UgY2Fubm90IHJlc3RvcmUKKyAgICAgICAgdG8gdGhhdCBzdGF0ZSBmcm9tIHRoZSBwaWN0dXJl
LWluLXBpY3R1cmUgbW9kZSB3aGVuIHdlIGNsaWNrIHRoZSAicmVzdG9yZSIgYnV0dG9uCisgICAg
ICAgIG9uIHRoZSB0b3AtcmlnaHQgY29ybmVyIG9mIHRoZSBQaVAgd2luZG93LiBJbnN0ZWFkLCB0
aGUgdmlkZW8gZWxlbWVudCB3aWxsIHJldHVybgorICAgICAgICB0byB0aGUgaW5saW5lIG1vZGUu
CisKKyAgICAgICAgSG93ZXZlciwgd2hlbiBhIHZpZGVvIGVsZW1lbnQgZW50ZXJzIHZpZGVvIGZ1
bGxzY3JlZW4gZmlyc3QgYW5kIHRoZW4gZW50ZXJzCisgICAgICAgIHBpY3R1cmUtaW4tcGljdHVy
ZSwgd2UgY2FuIGxldCB0aGUgdmlkZW8gcmVzdG9yZSB0byBmdWxsc2NyZWVuIGJ5IGNsaWNraW5n
IHRoZQorICAgICAgICAicmVzdG9yZSIgYnV0dG9uIG9uIHRoZSB0b3AtcmlnaHQgY29ybmVyIG9m
IHRoZSBwaWN0dXJlLWluLXBpY3R1cmUgd2luZG93LgorCisgICAgICAgIFRoZSBpbmNvbnNpc3Rl
bnQgYmVoYXZpb3JzIG1heSBjb25mdXNlIHVzZXJzIHdobyBhcmUgbm90IGF3YXJlIG9mIHRoZSBk
aWZmZXJlbmNlCisgICAgICAgIGJldHdlZW4gdGhlIGZ1bGxzY3JlZW4gQVBJIChvciBlbGVtZW50
IGZ1bGxzY3JlZW4pIGFuZCB2aWRlbyBmdWxsc2NyZWVuLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZW5hYmxlcyB0aGUgc3VwcG9ydCB0byByZXN0b3JlIHRvIGVsZW1lbnQgZnVsbHNjcmVlbiBmcm9t
IHBpY3R1cmUtaW4tcGljdHVyZQorICAgICAgICBtb2RlIHNvIHRoYXQgdXNlcnMgY2FuIGhhdmUg
YSBjb25zaXN0ZW50IGV4cGVyaWVuY2Ugb24gZWxlbWVudCBmdWxsc2NyZWVuIGFuZAorICAgICAg
ICB2aWRlbyBmdWxsc2NyZWVuLgorCisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmg6
CisgICAgICAgIEV4cG9ydCByZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoKSBzbyB0aGF0IHdl
IGNhbiB1c2UgaXQgaW4gV2ViS2l0IGNvZGUuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVGb3JW
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgQWRkIHRoZSBp
bnRlcmZhY2UgdG8gcmVxdWVzdCBhIHZpZGVvIGVsZW1lbnQgdG8gYmUgcHJlcGFyZWQgZm9yIHRo
ZSB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIHN0YW5kYnkgc3RhdGUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOgorICAgICAgICBB
ZGQgcHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKSBhbmQgZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lu
bGluZSgpLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpoYXNWaWRl
b0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6
OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDbGllbnQ6OnByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAg
U29tZSBtaW5vciBjbGVhbi11cHMgYW5kIGFkZCBmdW5jdGlvbiBwcmVwYXJlVG9FeGl0UGljdHVy
ZUluUGljdHVyZSgpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSk6CisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BQaWN0dXJlSW5QaWN0dXJl
KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGlj
dHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSk6
CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbEVudGVyU3RhbmRi
eUZyb21QaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpzZXRXaWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUpOgorICAgICAg
ICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZSk6IERlbGV0ZWQuCisgICAgICAgIFdoZW4gd2UgZW50ZXIgcGljdHVyZS1pbi1waWN0dXJl
LCB3ZSBuZWVkIHRvIHNhdmUgdGhlIHN0YXRlIGFuZCBiZSBwcmVwYXJlZCB0bworICAgICAgICBy
ZXN0b3JlIHRvIGVsZW1lbnQgZnVsbHNjcmVlbiBpZiBuZWVkZWQuCisKKyAgICAgICAgQmVmb3Jl
IHdlIGV4aXQgcGljdHVyZS1pbi1waWN0dXJlLCBpZiB0aGUgInJlc3RvcmUiIGJ1dHRvbiBpcyBj
bGlja2VkLCB3ZSBuZWVkCisgICAgICAgIHRvIG5vdGlmeSB0aGUgY2xpZW50IHRvIHByZXBhcmUg
Zm9yIHRoZSBwaWN0dXJlLWluLXBpY3R1cmUgc3RvcCwgYW5kIGNhbGwKKyAgICAgICAgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSh0
cnVlKSB3aGVuIHRoZSBjbGllbnQKKyAgICAgICAgaXMgcmVhZHkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhvc2UgY2hhbmdlcywgYSBjbGllbnQgKGUuZy4sIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCkKKyAgICAgICAgY2FuIGNvb3JkaW5hdGUg
d2l0aCBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHRvIGltcGxlbWVudCB0aGUgInJlc3Rv
cmUgdG8KKyAgICAgICAgZWxlbWVudCBmdWxsc2NyZWVuIiBmZWF0dXJlLgorCisgICAgICAgICog
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAg
ICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuV2lsbFJldHVy
blRvSW5saW5lKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojpm
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTA3LTMxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAg
dGV4dCBsYXlvdXQgY29kZSBhIGJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMzc5YmMwYjgxNzA2MmMxMzZmNzU0
M2FiODZjMTlmYjgxYzMxYzI3Li43NjQwNjUyOTgzNGQwMDAyNTVhZGI0NWE5YjA2NWNhOGJhMDE2
NjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAyMC0wOC0xMSAgUGVuZyBMaXUgIDxw
ZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0aGUgc3VwcG9ydCB0byByZXR1cm4g
dG8gZWxlbWVudCBmdWxsc2NyZWVuIGZyb20gcGljdHVyZS1pbi1waWN0dXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUzMDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlcGxhY2Vz
IFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQKKyAg
ICAgICAgd2l0aCBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQuIFdlIG5lZWQgdG8gZG8KKyAgICAgICAgdGhhdCBiZWNhdXNlIHRoZSBpbnN0YW5j
ZSBvZiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50
CisgICAgICAgIHdpbGwgYmUgZGVzdHJveWVkIGFmdGVyIHRoZSBjb250YWluZXIgZWxlbWVudCBl
eGl0cyBmdWxsc2NyZWVuIHdoaWxlIHRoZSB2aWRlbworICAgICAgICBlbGVtZW50IGVudGVycyBw
aWN0dXJlLWluLXBpY3R1cmUuIEFuIGluc3RhbmNlIG9mIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudAorICAgICAgICB3aWxsIGV4aXN0IGlmIGEg
dmlkZW8gZWxlbWVudCBlbnRlcnMgcGljdHVyZS1pbi1waWN0dXJlIHdoZW4gYW4gYW5jZXN0b3Ig
ZWxlbWVudAorICAgICAgICBpcyBpbiBmdWxsc2NyZWVuLiBUaGUgaW5zdGFuY2Ugd2lsbCBiZSBk
ZXN0cm95ZWQgYWZ0ZXIgdGhlIHBpY3R1cmUtaW4tcGljdHVyZQorICAgICAgICB3aW5kb3cgaXMg
Y2xvc2VkIGFuZCB0aGUgYW5jZXN0b3IgZWxlbWVudCBleGl0cyBmdWxsc2NyZWVuLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIHRyYW5zaXRpb25zOgorICAg
ICAgICBlbGVtZW50IGZ1bGxzY3JlZW4gLT4gcGljdHVyZS1pbi1waWN0dXJlICh0aHJvdWdoIHVz
ZXIgZ2VzdHVyZXMpCisgICAgICAgIGVsZW1lbnQgZnVsbHNjcmVlbiAtPiBwaWN0dXJlLWluLXBp
Y3R1cmUgKHRocm91Z2ggdGhlIFBpUCBidXR0b24pCisgICAgICAgIHBpY3R1cmUtaW4tcGljdHVy
ZSAtPiBlbGVtZW50IGZ1bGxzY3JlZW4KKyAgICAgICAgcGljdHVyZS1pbi1waWN0dXJlIC0+IGlu
bGluZQorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6
ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1vZGVsQ29udGV4dDo6cHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICBO
b3RpZnkgY2xpZW50cyB0byBwcmVwYXJlIGZvciB0aGUgc3RvcCBvZiBmdWxsc2NyZWVuL3BpY3R1
cmUtaW4tcGljdHVyZS4KKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgorICAgICAgICBGaXggaXNzdWVzIHRoYXQgaW5j
cmVhc2UgdGhlIGNsaWVudCBjb3VudCB1bm5lY2Vzc2FyaWx5LgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6Cisg
ICAgICAgIENhbGwgbV9wYWdlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBlYXJsaWVy
LgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUp
OgorICAgICAgICBOb3RpZnkgVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB0byBwcmVwYXJlIGZvciBl
eGl0aW5nIHBpY3R1cmUtaW4tcGljdHVyZSBvciB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFu
ZCByZXBvcnQgdGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBvZiB0aGUgZXhpdCBwaWN0dXJlLWlu
LXBpY3R1cmUgb3IgdmlkZW8gZnVsbHNjcmVlbiBhbmltYXRpb25zLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICBBZGQg
YSBmdW5jdGlvbiByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCkgc28gdGhhdCB3ZSBjYW4gcmVxdWVz
dCBhbiBlbGVtZW50IHRvIGVudGVyIGZ1bGxzY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgVUkgcHJv
Y2VzcyBzaWRlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNj
cmVlblZpZXdDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlciBpbml0V2l0aFdlYlZpZXc6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXIgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2VdKToKKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0QW5pbWF0aW5nVmlld0FscGhhOl0pOgorICAgICAg
ICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBfY2FuY2VsQWN0aW9uOl0pOgorICAgICAg
ICAoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6
c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnNldEludGVyZmFjZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50
OjppbnRlcmZhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3
Q29udHJvbGxlciB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIGRpZEVudGVyUGljdHVyZUluUGljdHVyZV0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBmYWlsZWRU
b0VudGVyUGljdHVyZUluUGljdHVyZV0pOiBEZWxldGVkLgorICAgICAgICBNaW5vciBjbGVhbi11
cHMgYW5kIHJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVs
bHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW06
CisgICAgICAgIChXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQ6OnNldFBhcmVudCk6CisgICAgICAgIChXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnNldEludGVyZmFjZSk6CisgICAgICAgIChX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6Omlu
dGVyZmFjZSBjb25zdCk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
aW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBl
bnRlckZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciBiZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZTpdKToKKyAg
ICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciByZXF1ZXN0RW50ZXJGdWxsU2Ny
ZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEV4
aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
X2NvbXBsZXRlZEV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2VdKToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRW50ZXJQaWN0dXJl
SW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmFp
bGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlciBwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZV0pOgorICAgICAgICAo
LVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlXSk6
CisgICAgICAgIEFkZCBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQgYW5kIGltcGxlbWVudCB0aGUgc3VwcG9ydAorICAgICAgICB0byAicmVzdG9y
ZSBmdWxsc2NyZWVuIGZyb20gcGljdHVyZS1pbi1waWN0dXJlIi4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OnJlcXVlc3RFbnRlckZ1bGxTY3Jl
ZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdl
ci5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIHRoZSBpbnRlcmZhY2UgcmVxdWVzdEVudGVyRnVs
bFNjcmVlbigpIGFuZCB0aGUgY29ycmVzcG9uZGluZyBJUEMgbWVzc2FnZS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICBBZGQgdGhlIGludGVyZmFjZSB0byBwcmVwYXJlIGZvciB2aWRlbyBmdWxsc2NyZWVuIHN0
YW5kYnkuIFRoZSB3ZWIgcHJvY2VzcyBjYW4KKyAgICAgICAgdXNlIHRoaXMgaW50ZXJmYWNlIHRv
IGNyZWF0ZSBhbiBpbnN0YW5jZSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHRvIGF2b2lkIHRoZQor
ICAgICAgICBzY2VuYXJpbyB0aGF0IGFuIElQQyBtZXNzYWdlIGNvbWVzIGZyb20gdGhlIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSBidXQKKyAgICAgICAgdGhlIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIgaW5zdGFuY2UgaXMgbm90IGNvbnN0cnVjdGVkIHlldC4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUp
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorICAgICAgICBSZW5hbWUgZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCkgdG8gZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSgpLgorICAgICAg
ICBJbiB0aGUgVUkgcHJvY2VzcyBzaWRlLCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBp
cyB1c2VkIGJ5CisgICAgICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB0byBub3RpZnkg
YXBwbGljYXRpb25zIHJlZ2FyZGluZyBVSQorICAgICAgICBjaGFuZ2VzIChlLmcuLCBzd2l0Y2gg
YnJvd3NlciB0YWJzKS4KKwogMjAyMC0wNy0zMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTWFjXSBBZGQgRXhwZXJpbWVudGFsIEZlYXR1cmUgcHJlZmVyZW5j
ZSBmb3IgU1cgVlA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDBj
NWIyZWU3YTk5OTE3YzI2N2QxMjMxMmI4ZGY3ZTk2ZDI0NzdhZDAuLjVlMjQ1NzkyYmVjNTE3MDI5
NWI0MTljMTZiMDdkOGJmYTdiYTViZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9G
dWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRW5mb3JjZUlGcmFtZUFs
bG93RnVsbHNjcmVlblJlcXVpcmVtZW50LAogICAgICAgICBFeGVtcHRJRnJhbWVBbGxvd0Z1bGxz
Y3JlZW5SZXF1aXJlbWVudCwKICAgICB9OwotICAgIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5Gb3JF
bGVtZW50KEVsZW1lbnQqLCBGdWxsc2NyZWVuQ2hlY2tUeXBlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiwgRnVsbHNjcmVlbkNo
ZWNrVHlwZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbGxFbnRlckZ1bGxzY3JlZW4o
RWxlbWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBmN2EyZjg2YTJm
M2VjZTlmZmM3ZTNlZWFmNjQ5YjY4ZTViMjY3OWIzLi4wOGRlYjA3ZGJhZjMxYjQ2MzIyMjU1OGZj
NjMwZTdlMmE3YmQxYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTU5NTYsNyArNTk1Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxs
c2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIAogICAgIG1fZnVsbHNjcmVlblRhc2tR
dWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgbW9kZV0gewogICAgICAgICBpZiAoZG9jdW1lbnQoKS5o
aWRkZW4oKSkgewotICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiICByZXR1
cm5pbmcgYmVjYXVzZSBkb2N1bWVudCBpcyBoaWRkZW4iKTsKKyAgICAgICAgICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgIiByZXR1cm5pbmcgYmVjYXVzZSBkb2N1bWVudCBpcyBoaWRkZW4i
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC02MDMwLDYgKzYwMzAsMTMg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAgICAgfQogfQogCit2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkK
K3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW4oKTsKKyNl
bmRpZgorfQorCiBXRUJDT1JFX0VYUE9SVCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVv
RnVsbHNjcmVlblN0YW5kYnkoYm9vbCB2YWx1ZSkKIHsKICAgICBBU1NFUlQoaXM8SFRNTFZpZGVv
RWxlbWVudD4oKnRoaXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggNzMwOGJjMGJlOWE4ODgyNTYxMWRlYTA0Njc0MmQ4ODM1MjE3YzdhZC4uNjk1ZWE3MGVlNzc2
ZDRkNTg5Y2M0MDViOTk0NDM1OTRiNmNlNTRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTQzNSw2ICs0MzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnRlckZ1
bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBl
bnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRG
dWxsc2NyZWVuKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVwYXJlRm9yVmlkZW9GdWxs
c2NyZWVuU3RhbmRieSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlkZW9GdWxsc2Ny
ZWVuU3RhbmRieShib29sKTsKIAogICAgIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGMwYTBkMzBiY2ZkZjNm
NDFjZjBlOGQ3ZjNkZTRjMjRjMDFkYjY3OTguLjBmZmVjZTBlYzdjZjQzYTBiYzFhZGM1ZjhjYWFm
NWUyNmM2MTY4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzU1LDYgKzM1
NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVu
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkg
eyByZXR1cm4gZmFsc2U7IH0KIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbigpIHsgfQorI2VuZGlm
CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgc3RhbmRieSkgeyBVTlVTRURfUEFSQU0oc3Rh
bmRieSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihI
VE1MTWVkaWFFbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaAppbmRleCAzNTQ4
ZTUzYjM3M2I0ZDk5ZDc4N2E4OTQ0MmIzYzA5YjhkODI4NjRhLi5iMTNkMTliM2U1Y2NmMWY2ZDdk
MjYzYzJlMzBmN2U3ZjhmZDhlODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKQEAgLTQx
LDcgKzQxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4o
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbldp
bGxSZXR1cm5Ub0lubGluZSgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCmluZGV4IGZkMjE0YzQ3NmRh
ZWVmYmM3ODU5YTg4Y2E4MzU5MGQ2NjIxZTE3MDAuLjlmOGRkMDg4NzkzYWVlMGM4NjdiMmUxNzZl
YWY2NDcxYjA5Y2FkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaApAQCAtNzYsMTEgKzc2LDEyIEBAIHB1YmxpYzoKIGNs
YXNzIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5W
aWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQg
aGFzVmlkZW9DaGFuZ2VkKGJvb2wpIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9EaW1lbnNp
b25zQ2hhbmdlZChjb25zdCBGbG9hdFNpemUmKSB7IH07CisgICAgdmlydHVhbCB2b2lkIGhhc1Zp
ZGVvQ2hhbmdlZChib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9EaW1lbnNpb25zQ2hh
bmdlZChjb25zdCBGbG9hdFNpemUmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVudGVyUGlj
dHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBp
Y3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1
cmUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG1vZGVsRGVzdHJveWVkKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IDI0
ZDEzNThkZTliMjRiMzNiYjBkYzljYmVlOWNmMDE4NGViY2QxNTcuLjhlNDQxMGZkMmMxNjMzZGY0
ZmU3ZTJjNjAyY2RjNjc5YTQ0N2YzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC0xMzMs
NyArMTMzLDcgQEAgcHVibGljOgogICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50TW9kZS5tb2RlKCk7IH0K
ICAgICBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjaygpIGNvbnN0IHsgcmV0dXJu
IG1fYWxsb3dzUGljdHVyZUluUGljdHVyZVBsYXliYWNrOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBtYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpIGNvbnN0Owot
ICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFdURjo6RnVuY3Rpb248dm9pZChi
b29sKT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCBwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0
b3AoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICBib29sIHdpcmVs
ZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpOwogCkBAIC0xNDYsMTcgKzE0NiwxOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vy
cm9yICopOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5T
RXJyb3IgKik7CiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBp
Y3R1cmUoQk9PTCk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB3aWxsRW50ZXJTdGFuZGJ5RnJv
bVBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpbGxFbnRl
clN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZShCT09MKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
OwogICAgIHZvaWQgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSk7CiAgICAgYm9vbCBoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRNb2RlLmhhc01vZGUo
bW9kZSk7IH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgVUlWaWV3Q29udHJvbGxl
ciAqcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCk7CiAgICAgVUlWaWV3Q29udHJvbGxlciAqZnVs
bHNjcmVlblZpZXdDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV92aWV3Q29udHJvbGxlci5n
ZXQoKTsgfQogICAgIFdlYkFWUGxheWVyTGF5ZXJWaWV3KiBwbGF5ZXJMYXllclZpZXcoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllckxheWVyVmlldy5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgcGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdCYWNrZ3JvdW5kKCkg
Y29uc3Q7Ci0jZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Jik7CkBA
IC0yMTcsOSArMjE4LDE0IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fc3RhbmRieSB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3RhcmdldFN0YW5kYnkgeyBmYWxzZSB9OwogCisjaWYgUExBVEZPUk0o
V0FUQ0hPUykKICAgICBib29sIG1fd2FpdGluZ0ZvclByZXBhcmVkVG9FeGl0IHsgZmFsc2UgfTsK
KyNlbmRpZgogICAgIGJvb2wgbV9zaG91bGRJZ25vcmVBVktpdENhbGxiYWNrQWJvdXRFeGl0RnVs
bHNjcmVlblJlYXNvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VudGVyaW5nUGljdHVyZUluUGlj
dHVyZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFs
c2UgfTsKKyAgICBib29sIG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlIHsgdHJ1ZSB9Owor
ICAgIGJvb2wgbV93aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDAxMDNlZTc0NGY5MTVlZmQ4
MTNhYWM3MWQ5NmJkZjU1Y2QwNmU3ZmMuLjhlNmQzNmI3OGI4OWI2ZDcwM2U4YmZiMjg1ZWM2OWEx
ZDUzZjZmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTk2OSwxMyArOTY5LDkgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQog
ICAgIAogICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CiAgICAg
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0UGxheWVyQ29udHJvbGxlcjpuaWxdOwotICAgIAot
ICAgIGlmIChtX2N1cnJlbnRNb2RlLmhhc1BpY3R1cmVJblBpY3R1cmUoKSkgewotICAgICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wUGljdHVyZUluUGljdHVyZV07CiAKLSAgICAgICAg
aWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCi0gICAgICAgICAgICBtX3ZpZGVvRnVsbHNjcmVl
bk1vZGVsLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOwotICAgIH0KKyAgICBpZiAobV9jdXJy
ZW50TW9kZS5oYXNQaWN0dXJlSW5QaWN0dXJlKCkpCisgICAgICAgIFttX3BsYXllclZpZXdDb250
cm9sbGVyIHN0b3BQaWN0dXJlSW5QaWN0dXJlXTsKIAogICAgIGlmIChtX2N1cnJlbnRNb2RlLmhh
c0Z1bGxzY3JlZW4oKSkgewogICAgICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10g
bGF5b3V0SWZOZWVkZWRdOwpAQCAtMTAwMiw2ICs5OTgsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQogICAgIFtwbGF5ZXJDb250cm9s
bGVyKCkgc2V0SGFzRW5hYmxlZFZpZGVvOmZhbHNlXTsKICAgICBbcGxheWVyQ29udHJvbGxlcigp
IHNldEhhc1ZpZGVvOmZhbHNlXTsKIAorICAgIG1fd2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJl
SW5QaWN0dXJlID0gZmFsc2U7CisgICAgaWYgKG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUpIHsK
KyAgICAgICAgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgICAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAgICAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9k
ZWwtPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CisgICAgfQorCiAgICAgaWYgKG1fZnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyKQogICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+
ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKIH0KQEAgLTEwNjYsMTEgKzEwNjksMTUgQEAgYm9vbCBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1Bp
Y3R1cmVJblBpY3R1cmUoKQogICAgIHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWlu
Z10gJiYgKG1fc3RhbmRieSB8fCBtX2N1cnJlbnRNb2RlLmlzRnVsbHNjcmVlbigpKSAmJiBzdXBw
b3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFdURjo6RnVuY3Rpb248dm9pZChi
b29sKT4mJiBjYWxsYmFjaykKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnBy
ZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Y2FsbGJhY2spCiB7CiAgICAgbV9wcmVwYXJlVG9JbmxpbmVDYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spOwotICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICBpZiAobV9m
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworICAgICAgICBtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci0+cHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgaWYg
KG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKQorICAgICAgICAgICAgbV9mdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXItPmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKTsKKyAgICB9CiB9
CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdGFydFBpY3R1cmVJ
blBpY3R1cmUoKQpAQCAtMTExOCw3ICsxMTI1LDYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZGlkU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKICAgICB9CiAKICAgICBtX2Vu
dGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwotICAgIG1fc3RhbmRieSA9IGZhbHNlOwog
fQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmYWlsZWRUb1N0YXJ0UGlj
dHVyZUluUGljdHVyZSgpCkBAIC0xMTQ0LDYgKzExNTAsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogewogICAgIExPRyhG
dWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVy
ZUluUGljdHVyZSglcCkiLCB0aGlzKTsKIAorICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUg
PSB0cnVlOwogICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0g
ZmFsc2U7CiAKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkgfHwgbV9yZXN0
b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApCkBAIC0xMTkwLDYgKzExOTcs
NyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUlu
UGljdHVyZSgpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9y
UGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCAoXmNvbXBsZXRp
b25IYW5kbGVyKShCT09MIHJlc3RvcmVkKSkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BX
aXRoQ29tcGxldGlvbkhhbmRsZXIoJXApIiwgdGhpcyk7CisKICAgICBpZiAobV9zaG91bGRSZXR1
cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVApIHsKICAgICAgICAgbV9zaG91bGRSZXR1cm5U
b0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBmYWxzZTsKICAgICAgICAgbV9yZXN0b3JpbmdG
dWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3AgPSB0cnVlOwpAQCAtMTIwNSw3ICsxMjEz
LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1
cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIodGhpcyksIHN0cm9uZ0NvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhh
bmRsZXIgY29weV0pXShib29sIHJlc3RvcmVkKSAgeworICAgIHByZXBhcmVGb3JQaWN0dXJlSW5Q
aWN0dXJlU3RvcChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHN0cm9uZ0NvbXBs
ZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pXShib29sIHJl
c3RvcmVkKSAgewogICAgICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbkhh
bmRsZXIgbGFtYmRhKCVwKSAtIHJlc3RvcmVkKCVzKSIsIHByb3RlY3RlZFRoaXMuZ2V0KCksIGJv
b2xTdHJpbmcocmVzdG9yZWQpKTsKICAgICAgICAgKCh2b2lkICheKShCT09MKSlzdHJvbmdDb21w
bGV0aW9uSGFuZGxlci5nZXQoKSkocmVzdG9yZWQpOwogICAgIH0pOwpAQCAtMTU4MCw2ICsxNTg4
LDI2IEBAIGJvb2wgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmlzUGxheWluZ1ZpZGVv
SW5FbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdAogICAgIHJldHVybiBoYXNNb2RlKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1
cmUpICYmIFtwbGF5ZXJDb250cm9sbGVyKCkgaXNQbGF5aW5nXTsKIH0KIAordm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKEJP
T0wgcmVhZHkpCit7CisgICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlID09IHJl
YWR5KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVy
ZSA9IHJlYWR5OworICAgIGlmIChtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSAmJiBtX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXItPmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKTsKK30KKworYm9vbCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJl
KCkKK3sKKyAgICByZXR1cm4gbV93aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmU7
Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFdpbGxFbnRlclN0
YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZShCT09MIHZhbHVlKQoreworICAgIG1fd2lsbEVudGVy
U3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmFsdWU7Cit9CisKIHN0YXRpYyBPcHRpb25h
bDxib29sPiBpc1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0ZWQ7CiAKIHZvaWQgV2ViQ29yZTo6c2V0
U3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKGJvb2wgaXNTdXBwb3J0ZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFW
S2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJBVktpdC5tbQppbmRleCA0OTI1YjU2NzZkYTE5Nzg0YmMyMjA2Yjg0ZTA5NTRhNmZh
YTRkMGYzLi40ZmNkOWEyZWY5OWYwNWFiOGQ4YzMyNmEwMjYyMzA0NDkyYjg4YzlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAgLTEyOCw3ICsxMjgsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9pZCBkaWRFeGl0RnVs
bHNjcmVlbigpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBmaW5hbDsK
LSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOworICAgIHZvaWQg
cHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbCB7IH0KKyAgICB2b2lkIGZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgZnVsbHNjcmVlbldpbGxSZXR1
cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQK
ICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSBvdmVycmlkZTsKQEAgLTM1OSw3ICszNjEs
NyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkaWRDbGVhbnVwRnVs
bHNjcmVlbigpCiAgICAgfSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNv
bnRleHQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCit2b2lkIFZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkKIHsKICAg
ICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmgKaW5kZXggZThkM2ZlMDUzM2Y4ZTkxNzAyYTFjMGYzN2ZhMjY0Y2FmZmQ1OWU1MC4uMjljZmYy
MzFjNjkzYzdiNTM2NjVmMTFhYzkxZWRmYzgwZmY1N2U1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmgKQEAgLTExMSw3ICsxMTEsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2Ny
ZWVuKCkgZmluYWw7CiAgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIHZv
aWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmVUb0V4aXRG
dWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
KSBmaW5hbDsKKyAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsK
IAogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAgIFJlZjxQ
bGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ+IG1fcGxheWJhY2tTZXNzaW9uTW9kZWw7CkBAIC0x
ODksNiArMTkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5KFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpWaWRlb0dyYXZpdHkpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZ1bGxzY3Jl
ZW5XaWxsUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwog
CiAgICAgYm9vbCBtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9tb2NrUGljdHVyZUluUGljdHVyZVdpbmRvd1NpemUg
eyBEZWZhdWx0TW9ja1BpY3R1cmVJblBpY3R1cmVXaW5kb3dXaWR0aCwgRGVmYXVsdE1vY2tQaWN0
dXJlSW5QaWN0dXJlV2luZG93SGVpZ2h0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXgg
ZWRhY2NlM2MwZGE1MTkwYTY2MDJiYjFmZmVlYmY4YmVlZDZjYzVlMC4uZGM0M2VmZjJiMzg0MGRk
YWEyNGI2ODZjOGUxNGZkNDc0YTFhODU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAt
Mjc0LDYgKzI3NCwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKCkKICAgICAgICAgbV9tYW5hZ2VyLT5mdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUobV9jb250ZXh0SWQpOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSgpCit7CisgICAgaWYgKG1f
bWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5mdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5l
KG1fY29udGV4dElkKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OnJl
cXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGlmIChtX21hbmFnZXIpCkBAIC0yODIsNiArMjg4LDEyIEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29u
dGV4dFVJRChDb21wbGV0CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeTo6RGVmYXVsdCwgZW1wdHlTdHJpbmcoKSk7CiB9CiAKK3ZvaWQgVmlkZW9G
dWxsc2NyZWVuTW9kZWxDb250ZXh0OjpwcmVwYXJlVG9FeGl0RnVsbHNjcmVlbigpCit7CisgICAg
Zm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCisgICAgICAgIGNsaWVudC0+cHJlcGFyZVRv
RXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENv
bnRleHQ6OndpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUoKQogewogICAgIGZvciAoYXV0byYgY2xp
ZW50IDogbV9jbGllbnRzKQpAQCAtNTEyLDcgKzUyNCwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZAogICAgIE1FU1NBR0VfQ0hFQ0sodmlkZW9MYXllcklEKTsKIAogICAgIGF1dG8mIFttb2Rl
bCwgaW50ZXJmYWNlXSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7Ci0gICAg
YWRkQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgaWYgKGludGVyZmFjZS0+d2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJl
KCkpCisgICAgICAgIGludGVyZmFjZS0+c2V0V2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5Q
aWN0dXJlKE5PKTsKKyAgICBlbHNlIGlmICh2aWRlb0Z1bGxzY3JlZW5Nb2RlICE9IEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUgfHwgIXN0
YW5kYnkpCisgICAgICAgIGFkZENsaWVudEZvckNvbnRleHQoY29udGV4dElkKTsKKyNlbmRpZgog
CiAgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpIHsKICAgICAgICAg
aWYgKCF2aWRlb0RpbWVuc2lvbnMuaXNFbXB0eSgpKQpAQCAtNjk2LDggKzcxMyw2IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpjbGVhbnVwRnVsbHNjcmVlbihQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpw
cmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkKIHsK
LSAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotCiAjaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0OwogICAgIG1fcGFn
ZS0+cm9vdFZpZXdUb1dpbmRvdyhpbmxpbmVSZWN0LCBpbmxpbmVXaW5kb3dSZWN0KTsKQEAgLTgw
NSw5ICs4MjAsMTQgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3Jl
ZW5Nb2RlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWQKIH0KIAogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCit7CisgICAgbV9wYWdlLT5mdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKK30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkKQogewogICAgIGJvb2wgaXNWaWV3VmlzaWJsZSA9IG1f
cGFnZS0+aXNWaWV3VmlzaWJsZSgpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGNvbnRleHRJZCwg
aXNWaWV3VmlzaWJsZSkpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6RnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIGlzVmll
d1Zpc2libGUpKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ2ZjAxZmVkMWQ2MGY0OTQy
ZDkxMDc4Njk3YmU5ZDA5NDQ4M2U5Y2YuLmQ0ODM2ZjE2NGRmOTQ5YzlmNjgzOTVjMDNiNzg1NWNm
ZjU4MWZkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lkIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCBhbmltYXRpbmcpCiAg
ICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpTZXRBbmltYXRp
bmdGdWxsU2NyZWVuKGFuaW1hdGluZykpOwogfQogCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKQoreworICAgIG1fcGFnZS5zZW5kKE1lc3Nh
Z2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6UmVxdWVzdEVudGVyRnVsbFNjcmVlbigpKTsKK30K
Kwogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4o
KQogewogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6UmVx
dWVzdEV4aXRGdWxsU2NyZWVuKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IGRlMWQzMzA3ZTNiZTczZjcxMWRlNDU5
NWIxN2ZhYWFjODg2NzlkNDEuLjAwZDNkMGFhMjNmNDBiMGJiNzEyODgyNjMyYTQxOWU4NjA4YmE2
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbEV4aXRG
dWxsU2NyZWVuKCk7CiAgICAgdm9pZCBkaWRFeGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgc2V0
QW5pbWF0aW5nRnVsbFNjcmVlbihib29sKTsKKyAgICB2b2lkIHJlcXVlc3RFbnRlckZ1bGxTY3Jl
ZW4oKTsKICAgICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgc2F2ZVNj
cm9sbFBvc2l0aW9uKCk7CiAgICAgdm9pZCByZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVl
bi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oCmluZGV4IDk1YTk1MjBmMjM1MDJhMTY2NTVl
ZTdjZjY2ZTQ3ZDBiYWYzYzdhYzguLmM0MTU3ODUxMTEzM2U1YzEzNTJjMTRjNzY5MjMwNjQ3OGEx
YTY2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaApAQCAtMzMsNyAr
MzMsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAaW50ZXJmYWNlIFdLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyIDogVUlWaWV3Q29udHJvbGxlcgogQHByb3BlcnR5IChyZXRhaW4sIG5v
bmF0b21pYykgaWQgdGFyZ2V0OwotQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykgU0VMIGFj
dGlvbjsKK0Bwcm9wZXJ0eSAoYXNzaWduLCBub25hdG9taWMpIFNFTCBleGl0RnVsbFNjcmVlbkFj
dGlvbjsKIEBwcm9wZXJ0eSAoY29weSwgbm9uYXRvbWljKSBOU1N0cmluZyAqbG9jYXRpb247CiBA
cHJvcGVydHkgKGFzc2lnbiwgbm9uYXRvbWljKSBCT09MIHByZWZlcnNTdGF0dXNCYXJIaWRkZW47
CiBAcHJvcGVydHkgKGFzc2lnbiwgbm9uYXRvbWljKSBCT09MIHByZWZlcnNIb21lSW5kaWNhdG9y
QXV0b0hpZGRlbjsKQEAgLTQ1LDYgKzQ1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0g
KHZvaWQpc2hvd1VJOwogLSAodm9pZCloaWRlVUk7CiAtICh2b2lkKXZpZGVvQ29udHJvbHNNYW5h
Z2VyRGlkQ2hhbmdlOworLSAodm9pZClzZXRBbmltYXRpbmdWaWV3QWxwaGE6KENHRmxvYXQpYWxw
aGE7CiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlci5tbQppbmRleCA3OGMwMDE1MmYxYTQzNzAwNWNkOTI5MDM5OGE3ZmNjZTg3
YzFmOTgwLi5hYTZjNDAyMWZjMzNjYWY2YzQ5NDc5OGI3ZWQyZDFmNzc0NDIwN2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbQpAQCAtNDYsMTIgKzQ2LDYgQEAgc3Rh
dGljIGNvbnN0IE5TVGltZUludGVydmFsIGF1dG9IaWRlRGVsYXkgPSA0LjA7CiAKIEBjbGFzcyBX
S0Z1bGxzY3JlZW5TdGFja1ZpZXc7CiAKLUBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIgKFZpZGVvRnVsbHNjcmVlbkNsaWVudENhbGxiYWNrcykKLS0gKHZvaWQpd2lsbEVudGVy
UGljdHVyZUluUGljdHVyZTsKLS0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlOwotLSAo
dm9pZClmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZTsKLUBlbmQKLQogY2xhc3MgV0tGdWxs
U2NyZWVuVmlld0NvbnRyb2xsZXJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCA6IFdlYkNvcmU6
OlBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2b2lkIHNldFBhcmVu
dChXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50
OyB9CkBAIC04Nyw0NSArODEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdD4gbV9pbnRlcmZhY2U7CiB9OwogCi1jbGFzcyBXS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IDogV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgotICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlblZpZXdDb250cm9s
bGVyICpwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KLQotICAgIHZvaWQgc2V0SW50ZXJm
YWNlKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZhY2UpCi0g
ICAgewotICAgICAgICBpZiAobV9pbnRlcmZhY2UgPT0gaW50ZXJmYWNlKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIGlmIChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9G
dWxsc2NyZWVuTW9kZWwoKSkKLSAgICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbCgpLT5yZW1vdmVDbGllbnQoKnRoaXMpOwotICAgICAgICBtX2ludGVyZmFjZSA9IGlu
dGVyZmFjZTsKLSAgICAgICAgaWYgKG1faW50ZXJmYWNlICYmIG1faW50ZXJmYWNlLT52aWRlb0Z1
bGxzY3JlZW5Nb2RlbCgpKQotICAgICAgICAgICAgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVl
bk1vZGVsKCktPmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfQotCi0gICAgV2ViQ29yZTo6VmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQqIGludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1faW50
ZXJmYWNlLmdldCgpOyB9Ci0KLSAgICB2b2lkIHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUoKSBm
aW5hbAotICAgIHsKLSAgICAgICAgW21fcGFyZW50IHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmVd
OwotICAgIH0KLQotICAgIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKLSAg
ICB7Ci0gICAgICAgIFttX3BhcmVudCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmVdOwotICAgIH0K
LQotICAgIHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAotICAgIHsK
LSAgICAgICAgW21fcGFyZW50IGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9
Ci0KLXByaXZhdGU6Ci0gICAgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKm1fcGFyZW50IHsg
bnVsbHB0ciB9OwotICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdD4gbV9pbnRlcmZhY2U7Ci19OwotCiAjcHJhZ21hIG1hcmsgLSBfV0tFeHRyaW5zaWNCdXR0
b24KIAogQGludGVyZmFjZSBfV0tFeHRyaW5zaWNCdXR0b24gOiBVSUJ1dHRvbgpAQCAtMTY0LDcg
KzExOSw2IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TTGF5b3V0Q29uc3RyYWludD4gX3Rv
cENvbnN0cmFpbnQ7CiAgICAgV2ViS2l0OjpGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMgX3Nl
Y2hldXJpc3RpYzsKICAgICBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclBsYXliYWNrU2Vzc2lv
bk1vZGVsQ2xpZW50IF9wbGF5YmFja0NsaWVudDsKLSAgICBXS0Z1bGxTY3JlZW5WaWV3Q29udHJv
bGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7CiAg
ICAgQ0dGbG9hdCBfbm9uWmVyb1N0YXR1c0JhckhlaWdodDsKIH0KIApAQCAtMTg4LDcgKzE0Miw2
IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHNlbGYuX3dlYlZpZXcg
PSB3ZWJWaWV3OwogCiAgICAgX3BsYXliYWNrQ2xpZW50LnNldFBhcmVudChzZWxmKTsKLSAgICBf
dmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldFBhcmVudChzZWxmKTsKIAogICAgIHJldHVybiBzZWxm
OwogfQpAQCAtMjAwLDggKzE1Myw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgX3BsYXliYWNrQ2xpZW50LnNldFBhcmVudChudWxscHRyKTsKICAgICBfcGxheWJh
Y2tDbGllbnQuc2V0SW50ZXJmYWNlKG51bGxwdHIpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGll
bnQuc2V0UGFyZW50KG51bGxwdHIpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50
ZXJmYWNlKG51bGxwdHIpOwogCiAgICAgW190YXJnZXQgcmVsZWFzZV07CiAgICAgW19sb2NhdGlv
biByZWxlYXNlXTsKQEAgLTI2MSw3ICsyMTIsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBhdXRvKiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSB2aWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UgPyAmdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5wbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2UoKSA6IG51bGxwdHI7CiAKICAgICBfcGxheWJhY2tDbGllbnQuc2V0SW50ZXJm
YWNlKHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSk7Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5zZXRJbnRlcmZhY2UodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKTsKIAogICAgIFdlYkNvcmU6
OlBsYXliYWNrU2Vzc2lvbk1vZGVsKiBwbGF5YmFja1Nlc3Npb25Nb2RlbCA9IHBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZSA/IHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZS0+cGxheWJhY2tTZXNzaW9u
TW9kZWwoKSA6IG51bGxwdHI7CiAgICAgc2VsZi5wbGF5aW5nID0gcGxheWJhY2tTZXNzaW9uTW9k
ZWwgPyBwbGF5YmFja1Nlc3Npb25Nb2RlbC0+aXNQbGF5aW5nKCkgOiBOTzsKQEAgLTI3Miw2ICsy
MjIsMTMgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW19waXBCdXR0
b24gc2V0SGlkZGVuOiFpc1BpUEVuYWJsZWQgfHwgIWlzUGlQU3VwcG9ydGVkXTsKIH0KIAorLSAo
dm9pZClzZXRBbmltYXRpbmdWaWV3QWxwaGE6KENHRmxvYXQpYWxwaGEKK3sKKyAgICBbVUlWaWV3
IGFuaW1hdGVXaXRoRHVyYXRpb246cGlwSGlkZUFuaW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbnM6
XnsKKyAgICAgICAgX2FuaW1hdGluZ1ZpZXcuZ2V0KCkuYWxwaGEgPSBhbHBoYTsKKyAgICB9XTsK
K30KKwogLSAodm9pZClzZXRQcmVmZXJzU3RhdHVzQmFySGlkZGVuOihCT09MKXZhbHVlCiB7CiAg
ICAgX3ByZWZlcnNTdGF0dXNCYXJIaWRkZW4gPSB2YWx1ZTsKQEAgLTMzMCwzMyArMjg3LDYgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtzZWxmIHNob3dVSV07
CiB9CiAKLS0gKHZvaWQpd2lsbEVudGVyUGljdHVyZUluUGljdHVyZQotewotICAgIGF1dG8qIGlu
dGVyZmFjZSA9IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7Ci0gICAgaWYgKCFp
bnRlcmZhY2UgfHwgIWludGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50
ZXJpbmdCYWNrZ3JvdW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtVSVZpZXcgYW5pbWF0
ZVdpdGhEdXJhdGlvbjpwaXBIaWRlQW5pbWF0aW9uRHVyYXRpb24gYW5pbWF0aW9uczpeewotICAg
ICAgICBfYW5pbWF0aW5nVmlldy5nZXQoKS5hbHBoYSA9IDA7Ci0gICAgfV07Ci19Ci0KLS0gKHZv
aWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgW3NlbGYgX2NhbmNlbEFjdGlvbjpz
ZWxmXTsKLX0KLQotLSAodm9pZClmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZQotewotICAg
IGF1dG8qIGludGVyZmFjZSA9IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7Ci0g
ICAgaWYgKCFpbnRlcmZhY2UgfHwgIWludGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0
ZWRXaGVuRW50ZXJpbmdCYWNrZ3JvdW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtVSVZp
ZXcgYW5pbWF0ZVdpdGhEdXJhdGlvbjpwaXBIaWRlQW5pbWF0aW9uRHVyYXRpb24gYW5pbWF0aW9u
czpeewotICAgICAgICBfYW5pbWF0aW5nVmlldy5nZXQoKS5hbHBoYSA9IDE7Ci0gICAgfV07Ci19
Ci0KICNwcmFnbWEgbWFyayAtIFVJVmlld0NvbnRyb2xsZXIgT3ZlcnJpZGVzCiAKIC0gKHZvaWQp
bG9hZFZpZXcKQEAgLTUwMyw3ICs0MzMsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogLSAodm9pZClfY2FuY2VsQWN0aW9uOihpZClzZW5kZXIKIHsKLSAgICBbW3NlbGYg
dGFyZ2V0XSBwZXJmb3JtU2VsZWN0b3I6W3NlbGYgYWN0aW9uXV07CisgICAgW1tzZWxmIHRhcmdl
dF0gcGVyZm9ybVNlbGVjdG9yOltzZWxmIGV4aXRGdWxsU2NyZWVuQWN0aW9uXV07CiB9CiAKIC0g
KHZvaWQpX3RvZ2dsZVBpUEFjdGlvbjooaWQpc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVySU9TLmgKaW5kZXggMzFlYzgxYzg3MGY0MGVkZmVjYWI4YjM4YWY3
MzUwMGJjZmQ4NGQ3Yi4uZmQzOTlhMGEwNzMyZmYxMTg1NDlhMTJmZjhlNGU2NDJlZjczNDljOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaApAQCAtMzYs
NiArMzYsNyBAQAogLSAoaWQpaW5pdFdpdGhXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3Owog
LSAodm9pZCllbnRlckZ1bGxTY3JlZW47CiAtICh2b2lkKWJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0
aEluaXRpYWxGcmFtZTooQ0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihDR1JlY3QpZmlu
YWxGcmFtZTsKKy0gKHZvaWQpcmVxdWVzdEVudGVyRnVsbFNjcmVlbjsKIC0gKHZvaWQpcmVxdWVz
dEV4aXRGdWxsU2NyZWVuOwogLSAodm9pZClleGl0RnVsbFNjcmVlbjsKIC0gKHZvaWQpYmVnYW5F
eGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxG
cmFtZTooQ0dSZWN0KWZpbmFsRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcklPUy5tbQppbmRleCA0NmJjZTZhY2RhNGUxNTM5MTJkZmIyMWMxZTU2NmQ0ODQz
YmYzYzFkLi42ODk5NDNiNGY2ZjgzYWEzNTIzMmZmY2ZiMTI0ZmI4OGE0MTUxMTEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
dWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KQEAgLTQyNCw2ICs0
MjQsNjUgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9
IDAuMjsKIAogI3ByYWdtYSBtYXJrIC0KIAorQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIChWaWRlb0Z1bGxzY3JlZW5DbGllbnRDYWxsYmFja3MpCistICh2b2lkKXdpbGxF
bnRlclBpY3R1cmVJblBpY3R1cmU7CistICh2b2lkKWRpZEVudGVyUGljdHVyZUluUGljdHVyZTsK
Ky0gKHZvaWQpZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmU7CistICh2b2lkKXByZXBhcmVU
b0V4aXRQaWN0dXJlSW5QaWN0dXJlOworLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZTsK
K0BlbmQKKworY2xhc3MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVl
bk1vZGVsQ2xpZW50IDogV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZvaWQgc2V0UGFyZW50KFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsg
fQorCisgICAgdm9pZCBzZXRJbnRlcmZhY2UoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQqIGludGVyZmFjZSkKKyAgICB7CisgICAgICAgIGlmIChtX2ludGVyZmFjZSA9PSBp
bnRlcmZhY2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKG1faW50ZXJmYWNl
ICYmIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpKQorICAgICAgICAgICAgbV9p
bnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCktPnJlbW92ZUNsaWVudCgqdGhpcyk7Cisg
ICAgICAgIG1faW50ZXJmYWNlID0gaW50ZXJmYWNlOworICAgICAgICBpZiAobV9pbnRlcmZhY2Ug
JiYgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCisgICAgICAgICAgICBtX2lu
dGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+YWRkQ2xpZW50KCp0aGlzKTsKKyAgICB9
CisKKyAgICBXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCogaW50ZXJmYWNl
KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmZhY2UuZ2V0KCk7IH0KKworICAgIHZvaWQgd2lsbEVu
dGVyUGljdHVyZUluUGljdHVyZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJlbnQgd2ls
bEVudGVyUGljdHVyZUluUGljdHVyZV07CisgICAgfQorCisgICAgdm9pZCBkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fcGFyZW50IGRpZEVudGVyUGlj
dHVyZUluUGljdHVyZV07CisgICAgfQorCisgICAgdm9pZCBmYWlsZWRUb0VudGVyUGljdHVyZUlu
UGljdHVyZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9wYXJlbnQgZmFpbGVkVG9FbnRlclBp
Y3R1cmVJblBpY3R1cmVdOworICAgIH0KKworICAgIHZvaWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJ
blBpY3R1cmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fcGFyZW50IHByZXBhcmVUb0V4aXRQ
aWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKKyAgICB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0
dXJlKCkgZmluYWwKKyAgICB7CisgICAgICAgIFttX3BhcmVudCBkaWRFeGl0UGljdHVyZUluUGlj
dHVyZV07CisgICAgfQorCitwcml2YXRlOgorICAgIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgKm1fcGFyZW50IHsgbnVsbHB0ciB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdD4gbV9pbnRlcmZhY2U7Cit9OworCisjcHJhZ21hIG1hcmsgLQor
CiBAaW1wbGVtZW50YXRpb24gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB7CiAgICAgUmV0
YWluUHRyPFdLRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldz4gX3dlYlZpZXdQbGFjZWhvbGRlcjsK
IApAQCAtNDQxLDYgKzUwMCwxMCBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1h
dGlvbkR1cmF0aW9uID0gMC4yOwogICAgIFJldGFpblB0cjxVSVBpbmNoR2VzdHVyZVJlY29nbml6
ZXI+IF9pbnRlcmFjdGl2ZVBpbmNoRGlzbWlzc0dlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFp
blB0cjxXS0Z1bGxTY3JlZW5JbnRlcmFjdGl2ZVRyYW5zaXRpb24+IF9pbnRlcmFjdGl2ZURpc21p
c3NUcmFuc2l0aW9uQ29vcmRpbmF0b3I7CiAKKyAgICBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudDsKKyAg
ICBCT09MIF9pblBpY3R1cmVJblBpY3R1cmU7CisgICAgQk9PTCBfcmV0dXJuVG9GdWxsc2NyZWVu
RnJvbVBpY3R1cmVJblBpY3R1cmU7CisKICAgICBDR1JlY3QgX2luaXRpYWxGcmFtZTsKICAgICBD
R1JlY3QgX2ZpbmFsRnJhbWU7CiAKQEAgLTQ0OCw2ICs1MTEsOCBAQCBzdGF0aWMgY29uc3QgTlNU
aW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAgIEJPT0wgX0VWT3JnYW5p
emF0aW9uTmFtZUlzVmFsaWQ7CiAgICAgQk9PTCBfaW5JbnRlcmFjdGl2ZURpc21pc3M7CiAgICAg
Qk9PTCBfZXhpdFJlcXVlc3RlZDsKKyAgICBCT09MIF9lbnRlclJlcXVlc3RlZDsKKyAgICBCT09M
IF9leGl0aW5nRnVsbFNjcmVlbjsKIAogICAgIFJldGFpblB0cjxpZD4gX25vdGlmaWNhdGlvbkxp
c3RlbmVyOwogfQpAQCAtNDYwLDYgKzUyNSw3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZh
bCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBz
ZWxmLl93ZWJWaWV3ID0gd2ViVmlldzsKKyAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldFBh
cmVudChzZWxmKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtNDY5LDYgKzUzNSw5IEBAIHN0
YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAg
W05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmXTsK
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
OnNlbGZdOwogCisgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0
cik7CisgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQobnVsbHB0cik7CisKICAg
ICBbc3VwZXIgZGVhbGxvY107CiB9CiAKQEAgLTUyNCw3ICs1OTMsNyBAQCBzdGF0aWMgY29uc3Qg
TlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAgIFtfZnVsbHNjcmVl
blZpZXdDb250cm9sbGVyIHNldFRyYW5zaXRpb25pbmdEZWxlZ2F0ZTpzZWxmXTsKICAgICBbX2Z1
bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRNb2RhbFByZXNlbnRhdGlvbkNhcHR1cmVzU3RhdHVz
QmFyQXBwZWFyYW5jZTpZRVNdOwogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldFRh
cmdldDpzZWxmXTsKLSAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRBY3Rpb246QHNl
bGVjdG9yKHJlcXVlc3RFeGl0RnVsbFNjcmVlbildOworICAgIFtfZnVsbHNjcmVlblZpZXdDb250
cm9sbGVyIHNldEV4aXRGdWxsU2NyZWVuQWN0aW9uOkBzZWxlY3RvcihyZXF1ZXN0RXhpdEZ1bGxT
Y3JlZW4pXTsKICAgICBfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyLmdldCgpLnZpZXcuZnJhbWUg
PSBfcm9vdFZpZXdDb250cm9sbGVyLmdldCgpLnZpZXcuYm91bmRzOwogICAgIFtzZWxmIF91cGRh
dGVMb2NhdGlvbkluZm9dOwogCkBAIC02NTIsNiArNzIxLDE3IEBAIHN0YXRpYyBjb25zdCBOU1Rp
bWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgICAgICAgICBtYW5hZ2Vy
LT5kaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgICAgIG1hbmFnZXItPnNldEFuaW1hdGlu
Z0Z1bGxTY3JlZW4oZmFsc2UpOwogICAgICAgICAgICAgcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmls
aXR5VXBkYXRlcyhmYWxzZSk7CisKKyAgICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIgPSBwYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CisgICAgICAgICAgICBhdXRv
KiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRy
OworICAgICAgICAgICAgaWYgKF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVy
ZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVCh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpOwor
ICAgICAgICAgICAgICAgIF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSA9
IE5POworICAgICAgICAgICAgICAgIGlmICh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCisgICAg
ICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQ
aWN0dXJlSW5QaWN0dXJlKFlFUyk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZSh2aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UpOworCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNjYwLDYgKzc0
MCwxOSBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0g
MC4yOwogICAgIH1dOwogfQogCistICh2b2lkKXJlcXVlc3RFbnRlckZ1bGxTY3JlZW4KK3sKKyAg
ICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSAhPSBXZWJLaXQ6Ok5vdEluRnVsbFNjcmVlbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7Cisg
ICAgICAgIG1hbmFnZXItPnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiAtICh2b2lkKXJlcXVl
c3RFeGl0RnVsbFNjcmVlbgogewogICAgIGlmIChfZnVsbFNjcmVlblN0YXRlICE9IFdlYktpdDo6
SW5GdWxsU2NyZWVuKSB7CkBAIC02NjksNiArNzYyLDcgQEAgc3RhdGljIGNvbnN0IE5TVGltZUlu
dGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKIAogICAgIGlmIChhdXRvKiBtYW5hZ2Vy
ID0gc2VsZi5fbWFuYWdlcikgewogICAgICAgICBtYW5hZ2VyLT5yZXF1ZXN0RXhpdEZ1bGxTY3Jl
ZW4oKTsKKyAgICAgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gWUVTOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC03NzAsNiArODY0LDE2IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZh
bCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgICAgICAgICBwYWdlLT5zZXRTdXBwcmVz
c1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKICAgICAgICAgICAgIHBhZ2UtPnNldE5lZWRzRE9N
V2luZG93UmVzaXplRXZlbnQoKTsKICAgICAgICAgfQorCisgICAgICAgIGlmICghX2luUGljdHVy
ZUluUGljdHVyZSkKKyAgICAgICAgICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJm
YWNlKG51bGxwdHIpOworCisgICAgICAgIF9leGl0UmVxdWVzdGVkID0gTk87CisgICAgICAgIF9l
eGl0aW5nRnVsbFNjcmVlbiA9IE5POworICAgICAgICBpZiAoX2VudGVyUmVxdWVzdGVkKSB7Cisg
ICAgICAgICAgICBfZW50ZXJSZXF1ZXN0ZWQgPSBOTzsKKyAgICAgICAgICAgIFtzZWxmIHJlcXVl
c3RFbnRlckZ1bGxTY3JlZW5dOworICAgICAgICB9CiAgICAgfSk7CiAKICAgICBpZiAoYXV0byBw
YWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKQpAQCAtNzc5LDcgKzg4Myw2IEBAIHN0YXRpYyBj
b25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKICAgICBbX2Z1
bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRQcmVmZXJzU3RhdHVzQmFySGlkZGVuOllFU107CiAg
ICAgX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciA9IG5pbDsKLSAgICBfZXhpdFJlcXVlc3RlZCA9
IE5POwogfQogCiAtICh2b2lkKWNsb3NlCkBAIC03OTgsNiArOTAxLDExIEBAIHN0YXRpYyBjb25z
dCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiB7CiAgICAgaWYgKF9m
dWxsc2NyZWVuVmlld0NvbnRyb2xsZXIpCiAgICAgICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9s
bGVyIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlXTsKKworICAgIGF1dG8gcGFnZSA9IFtz
ZWxmLl93ZWJWaWV3IF9wYWdlXTsKKyAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0g
cGFnZSA/IHBhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKSA6IG51bGxwdHI7CisgICAgYXV0
byogdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlID0gdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA/IHZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpIDogbnVsbHB0
cjsKKyAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZSh2aWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2UpOwogfQogCiAtICh2b2lkKXBsYWNlaG9sZGVyV2lsbE1vdmVUb1N1cGVydmll
dzooVUlWaWV3ICopc3VwZXJ2aWV3CkBAIC04MTEsNiArOTE5LDUzIEBAIHN0YXRpYyBjb25zdCBO
U1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgfSk7CiB9CiAKKy0g
KHZvaWQpd2lsbEVudGVyUGljdHVyZUluUGljdHVyZQoreworICAgIGF1dG8qIGludGVyZmFjZSA9
IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7CisgICAgaWYgKCFpbnRlcmZhY2Ug
fHwgIWludGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRXaGVuRW50ZXJpbmdCYWNr
Z3JvdW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9s
bGVyIHNldEFuaW1hdGluZ1ZpZXdBbHBoYTowXTsKK30KKworLSAodm9pZClkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmUKK3sKKyAgICBfaW5QaWN0dXJlSW5QaWN0dXJlID0gWUVTOworICAgIFtzZWxm
IHJlcXVlc3RFeGl0RnVsbFNjcmVlbl07Cit9CisKKy0gKHZvaWQpZmFpbGVkVG9FbnRlclBpY3R1
cmVJblBpY3R1cmUKK3sKKyAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xp
ZW50LmludGVyZmFjZSgpOworICAgIGlmICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2UtPnBpY3R1
cmVJblBpY3R1cmVXYXNTdGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRBbmltYXRpbmdWaWV3
QWxwaGE6MV07Cit9CisKKy0gKHZvaWQpcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUKK3sK
KyAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmludGVyZmFjZSgp
OworICAgIGlmICghaW50ZXJmYWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnRlcmZhY2Ut
PnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZShOTyk7CisgICAgaW50ZXJmYWNlLT5zZXRX
aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoWUVTKTsKKyAgICBfcmV0dXJuVG9G
dWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUgPSBZRVM7CisKKyAgICBpZiAoIV9leGl0aW5n
RnVsbFNjcmVlbikKKyAgICAgICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl07CisgICAg
ZWxzZQorICAgICAgICBfZW50ZXJSZXF1ZXN0ZWQgPSBZRVM7Cit9CisKKy0gKHZvaWQpZGlkRXhp
dFBpY3R1cmVJblBpY3R1cmUKK3sKKyAgICBfaW5QaWN0dXJlSW5QaWN0dXJlID0gTk87CisgICAg
aWYgKCFfcmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUgJiYgIVtzZWxmIGlz
RnVsbFNjcmVlbl0pCisgICAgICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNl
KG51bGxwdHIpOworfQorCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIFVJR2VzdHVyZVJl
Y29nbml6ZXJEZWxlZ2F0ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKaW5kZXggMmYyYjZlY2My
N2MyNGQ0ZWJjYzZiNjhkNDM5Y2E3Njc3ZDk3NzZhYi4uMmRmMWNjYjgwZmMyODU4MjhlOTRmNzFm
ZjZiYWYzZDU4YWE4ODZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1
bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXJCYWNraW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkpCiAjaW5jbHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTM2LDYgKzEz
NywxMyBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAg
ICByZXR1cm47CiAgICAgbV9lbGVtZW50ID0gZWxlbWVudDsKKworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkpCisgICAgYXV0byogY3VycmVudFBsYXliYWNrQ29udHJvbHNFbGVtZW50ID0gbV9wYWdlLT5w
bGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkuY3VycmVudFBsYXliYWNrQ29udHJvbHNFbGVtZW50KCk7
CisgICAgaWYgKGN1cnJlbnRQbGF5YmFja0NvbnRyb2xzRWxlbWVudCkKKyAgICAgICAgY3VycmVu
dFBsYXliYWNrQ29udHJvbHNFbGVtZW50LT5wcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuU3RhbmRi
eSgpOworI2VuZGlmCisKICAgICBtX2luaXRpYWxGcmFtZSA9IHNjcmVlblJlY3RPZkNvbnRlbnRz
KG1fZWxlbWVudC5nZXQoKSk7CiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5D
bGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fcGFnZS5nZXQoKSwgZWxlbWVudCk7
CiB9CkBAIC0yMTcsNiArMjI1LDE2IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnNldEFu
aW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCBhbmltYXRpbmcpCiAgICAgbV9lbGVtZW50LT5kb2N1bWVu
dCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkuc2V0QW5pbWF0aW5nRnVsbHNjcmVlbihhbmltYXRpbmcp
OwogfQogCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVu
KCkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50KTsKKyAgICBpZiAoIW1fZWxlbWVudCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUlu
ZGljYXRvcihXZWJDb3JlOjpQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIG1fZWxlbWVudC0+
ZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVu
dChtX2VsZW1lbnQuZ2V0KCksIEZ1bGxzY3JlZW5NYW5hZ2VyOjpFeGVtcHRJRnJhbWVBbGxvd0Z1
bGxzY3JlZW5SZXF1aXJlbWVudCk7Cit9CisKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnJl
cXVlc3RFeGl0RnVsbFNjcmVlbigpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaAppbmRleCA5MTIwYWM5MGM3N2ZkYWIyMDJlMjY3NDk4YTAyMTA3YWEwMTY1ODY1
Li4wMWZkZjdmZWRiNmNmYmU2YTgwNjIyY2FjNjRhNmZjZTVlZGY4NDY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmgKQEAgLTc3LDYgKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0UElQU3Rh
bmRieUVsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopOwogCiAgICAgdm9pZCBzZXRB
bmltYXRpbmdGdWxsU2NyZWVuKGJvb2wpOworICAgIHZvaWQgcmVxdWVzdEVudGVyRnVsbFNjcmVl
bigpOwogICAgIHZvaWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBzYXZlU2Ny
b2xsUG9zaXRpb24oKTsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBiNjlhZWNlYzZiMDFiYWY5MWYy
NmMxYTdhOTM2YWM5Nzc2Yjc4YmYyLi5iZTUwZDZjMzQ4ZDA4Mjc2OTI3NGZkMWNmZDcxYzBkNTYz
N2NkYzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjIs
NiArMjIsNyBAQAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogbWVzc2FnZXMgLT4gV2Vi
RnVsbFNjcmVlbk1hbmFnZXIgTGVnYWN5UmVjZWl2ZXIgeworICAgIFJlcXVlc3RFbnRlckZ1bGxT
Y3JlZW4oKQogICAgIFJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiAgICAgV2lsbEVudGVyRnVsbFNj
cmVlbigpCiAgICAgRGlkRW50ZXJGdWxsU2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggZWZjMDAzYmQwMTU5MTAwMDgyZGUzY2VmMWY2MDlmYTUyMjUxY2E1YS4uNDU5ZDVkYjk3MmRi
ODdiY2JhOGQ1ZWRmNDU4YzkzZWU0NDcxNDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTk0MCw2ICs5NDAsMTEgQEAgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmIHAKIAogI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByZXBhcmVG
b3JWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
KCk7Cit9CisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICBy
ZXR1cm4gbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5zdXBwb3J0c1ZpZGVvRnVsbHNj
cmVlbihtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBlNzVmNDg4NTJiZmEwNmIxYWQ0MGUz
YmJhMWZhM2NjM2UzZjQxYThlLi4xNTg4OWNjYTJjODEyZmRlN2M5OTgwNmE1MTExMjAzYzg4ZDAy
NTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNjQsNiArMjY0LDcgQEAgcHJpdmF0ZToKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgcHJl
cGFyZUZvclZpZGVvRnVsbHNjcmVlbigpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1
bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGZp
bmFsOwogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBiOGFlNjdjYTQ5ODE2ZjZlMWYxM2Y5Zjg5NWJkZjU1
ZDcyNTVmNjk4Li5lODIzZDIwYzRkMWI5MjQ0YTJlY2ViYjljMzkxZDVhZjM3MDJkNTQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKQEAgLTE1NCw3ICsxNTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRW
aWRlb0xheWVyRnJhbWVGZW5jZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIFdl
YkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpOwogICAg
IHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyLCB1bnNpZ25lZCBncmF2aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdl
ZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBpc1Bh
Z2VWaXNpYmxlKTsKKyAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGJvb2wgaXNQYWdlVmlzaWJsZSk7CiAgICAgdm9p
ZCByZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciwgTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVl
c3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEQXN5bmNSZXBseSYmKTsKIAogICAgIFdl
YlBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTNm
M2MzNDY3ZWExNzcwY2RmZDQ4MGI3YTAzMDAxMzI1MTY5ZmVmZi4uMDc2ZmZmNTc3NjFlNTk3NDRh
Y2ViODdkNGRhMzY1MWMyNWFjMGI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTM0LDcgKzM0LDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7
CiAgICAgU2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6
OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShXZWJL
aXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgdW5zaWduZWQg
Z3Jhdml0eSkKICAgICBGdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQotICAgIEZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQorICAgIEZ1bGxzY3JlZW5XaWxs
UmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJsZSkKICAgICBSZXF1ZXN0Um91dGVTaGFyaW5nUG9s
aWN5QW5kQ29udGV4dFVJRChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZCkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kg
cm91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQpIEFzeW5jCiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggYjZiNjljYzQyNGJiOWVjNmMxZGFkNWVkZTJiNzE4
YTE4ZjA0MzlhMy4uMGZiY2Y4NmU5Y2RjMzRjMDlhZGY5MTdhYjY0ZjA5MWYxNWRkNjY2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubW0KQEAgLTUyNCw3ICs1MjQsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bgogICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkuc2V0VmlkZW9MYXllckdyYXZpdHkoKE1lZGlh
UGxheWVyRW51bXM6OlZpZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KICAgICAKLXZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNp
YmxlKQogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406450</attachid>
            <date>2020-08-12 00:08:25 -0700</date>
            <delta_ts>2020-08-12 10:41:41 -0700</delta_ts>
            <desc>patch - revise change logs</desc>
            <filename>bug-215305-20200812000824.patch</filename>
            <type>text/plain</type>
            <size>54285</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzMzUzZmU1ZThjOTRh
NWQ1ZmNkOTgzNTc4YWNmOTQzYTIzM2M5Mi4uODU4OGU2NDI3MGIxNzg4ZTEyMzMzNWJlMDk4ZmM1
OWU5NTgwNTZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIwLTA4LTExICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IHRv
IHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTMwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBjb250
YWluZXIgZWxlbWVudCBlbnRlcnMgZnVsbHNjcmVlbiAod2l0aCB0aGUgZnVsbHNjcmVlbiBBUEkp
LCBhIGRlc2NlbmRhbnQKKyAgICAgICAgdmlkZW8gZWxlbWVudCB3aWxsIGVudGVyIHRoZSB2aWRl
byBmdWxsc2NyZWVuIHN0YW5kYnkgc3RhdGUgc28gdGhhdCBpdCBjYW4gZW50ZXIKKyAgICAgICAg
cGljdHVyZS1pbi1waWN0dXJlIG9uIGFwcGxpY2F0aW9uIHN1c3BlbmQgKHIyMjYyMTcpLiBCdXQg
d2UgY2Fubm90IHJlc3RvcmUKKyAgICAgICAgdG8gdGhhdCBzdGF0ZSBmcm9tIHRoZSBwaWN0dXJl
LWluLXBpY3R1cmUgbW9kZSB3aGVuIHdlIGNsaWNrIHRoZSAicmVzdG9yZSIgYnV0dG9uCisgICAg
ICAgIG9uIHRoZSB0b3AtcmlnaHQgY29ybmVyIG9mIHRoZSBQaVAgd2luZG93LiBJbnN0ZWFkLCB0
aGUgdmlkZW8gZWxlbWVudCB3aWxsIHJldHVybgorICAgICAgICB0byB0aGUgaW5saW5lIG1vZGUu
CisKKyAgICAgICAgSG93ZXZlciwgd2hlbiBhIHZpZGVvIGVsZW1lbnQgZW50ZXJzIHZpZGVvIGZ1
bGxzY3JlZW4gZmlyc3QgYW5kIHRoZW4gZW50ZXJzCisgICAgICAgIHBpY3R1cmUtaW4tcGljdHVy
ZSwgd2UgY2FuIGxldCB0aGUgdmlkZW8gcmVzdG9yZSB0byBmdWxsc2NyZWVuIGJ5IGNsaWNraW5n
IHRoZQorICAgICAgICAicmVzdG9yZSIgYnV0dG9uIG9uIHRoZSB0b3AtcmlnaHQgY29ybmVyIG9m
IHRoZSBwaWN0dXJlLWluLXBpY3R1cmUgd2luZG93LgorCisgICAgICAgIFRoZSBpbmNvbnNpc3Rl
bnQgYmVoYXZpb3JzIG1heSBjb25mdXNlIHVzZXJzIHdobyBhcmUgbm90IGF3YXJlIG9mIHRoZSBk
aWZmZXJlbmNlCisgICAgICAgIGJldHdlZW4gdGhlIGZ1bGxzY3JlZW4gQVBJIChvciBlbGVtZW50
IGZ1bGxzY3JlZW4pIGFuZCB2aWRlbyBmdWxsc2NyZWVuLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZW5hYmxlcyB0aGUgc3VwcG9ydCB0byByZXN0b3JlIHRvIGVsZW1lbnQgZnVsbHNjcmVlbiBmcm9t
IHBpY3R1cmUtaW4tcGljdHVyZQorICAgICAgICBtb2RlIHNvIHRoYXQgdXNlcnMgY2FuIGhhdmUg
YSBjb25zaXN0ZW50IGV4cGVyaWVuY2Ugb24gZWxlbWVudCBmdWxsc2NyZWVuIGFuZAorICAgICAg
ICB2aWRlbyBmdWxsc2NyZWVuLgorCisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmg6
CisgICAgICAgIEV4cG9ydCByZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoKSBzbyB0aGF0IHdl
IGNhbiB1c2UgaXQgaW4gV2ViS2l0IGNvZGUuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVGb3JW
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgQWRkIHRoZSBp
bnRlcmZhY2UgdG8gcmVxdWVzdCBhIHZpZGVvIGVsZW1lbnQgdG8gYmUgcHJlcGFyZWQgZm9yIHRo
ZSB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIHN0YW5kYnkgc3RhdGUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOgorICAgICAgICBB
ZGQgcHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKSBhbmQgZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lu
bGluZSgpLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpoYXNWaWRl
b0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6
OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDbGllbnQ6OnByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAg
U29tZSBtaW5vciBjbGVhbi11cHMgYW5kIGFkZCBmdW5jdGlvbiBwcmVwYXJlVG9FeGl0UGljdHVy
ZUluUGljdHVyZSgpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSk6CisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BQaWN0dXJlSW5QaWN0dXJl
KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGlj
dHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSk6
CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbEVudGVyU3RhbmRi
eUZyb21QaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpzZXRXaWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUpOgorICAgICAg
ICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZSk6IERlbGV0ZWQuCisgICAgICAgIFdoZW4gd2UgZW50ZXIgcGljdHVyZS1pbi1waWN0dXJl
LCB3ZSBuZWVkIHRvIHNhdmUgdGhlIHN0YXRlIGFuZCBiZSBwcmVwYXJlZCB0bworICAgICAgICBy
ZXN0b3JlIHRvIGVsZW1lbnQgZnVsbHNjcmVlbiBpZiBuZWVkZWQuCisKKyAgICAgICAgQmVmb3Jl
IHdlIGV4aXQgcGljdHVyZS1pbi1waWN0dXJlLCBpZiB0aGUgInJlc3RvcmUiIGJ1dHRvbiBpcyBj
bGlja2VkLCB3ZSBuZWVkCisgICAgICAgIHRvIG5vdGlmeSB0aGUgY2xpZW50IHRvIHByZXBhcmUg
Zm9yIHRoZSBwaWN0dXJlLWluLXBpY3R1cmUgc3RvcCwgYW5kIGNhbGwKKyAgICAgICAgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSh0
cnVlKSB3aGVuIHRoZSBjbGllbnQKKyAgICAgICAgaXMgcmVhZHkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhvc2UgY2hhbmdlcywgYSBjbGllbnQgKGUuZy4sIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCkKKyAgICAgICAgY2FuIGNvb3JkaW5hdGUg
d2l0aCBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHRvIGltcGxlbWVudCB0aGUgInJlc3Rv
cmUgdG8KKyAgICAgICAgZWxlbWVudCBmdWxsc2NyZWVuIiBmZWF0dXJlLgorCisgICAgICAgICog
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAg
ICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuV2lsbFJldHVy
blRvSW5saW5lKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojpm
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTA3LTMxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAg
dGV4dCBsYXlvdXQgY29kZSBhIGJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMzc5YmMwYjgxNzA2MmMxMzZmNzU0
M2FiODZjMTlmYjgxYzMxYzI3Li45ZDNhOTE0ZWI2ZDBmYzQxMmQxMjI2MDFiMWI3ZGI0MmU4YzJj
MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMiBAQAorMjAyMC0wOC0xMSAgUGVuZyBMaXUgIDxw
ZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0aGUgc3VwcG9ydCB0byByZXR1cm4g
dG8gZWxlbWVudCBmdWxsc2NyZWVuIGZyb20gcGljdHVyZS1pbi1waWN0dXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUzMDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlcGxhY2Vz
IFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQKKyAg
ICAgICAgd2l0aCBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQuIFdlIG5lZWQgdG8gZG8KKyAgICAgICAgdGhhdCBiZWNhdXNlIHRoZSBpbnN0YW5j
ZSBvZiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50
CisgICAgICAgIHdpbGwgYmUgZGVzdHJveWVkIGFmdGVyIHRoZSBjb250YWluZXIgZWxlbWVudCBl
eGl0cyBmdWxsc2NyZWVuIHdoaWxlIHRoZSB2aWRlbworICAgICAgICBlbGVtZW50IGVudGVycyBw
aWN0dXJlLWluLXBpY3R1cmUuCisKKyAgICAgICAgVGhlIGluc3RhbmNlIG9mIFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudAorICAgICAgICB3aWxs
IGFsd2F5cyBleGlzdCB3aGVuIHRoZSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGluc3Rh
bmNlIGlzIGFsaXZlLAorICAgICAgICBzbyB0aGF0IGl0IGNhbiByZWNlaXZlIGNhbGxiYWNrcyBm
cm9tIHRoZSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCBpbnN0YW5jZQorICAgICAgICB0
byBpbXBsZW1lbnQgdGhlICJyZXR1cm4gdG8gZWxlbWVudCBmdWxsc2NyZWVuIGZyb20gcGljdHVy
ZS1pbi1waWN0dXJlIiBmZWF0dXJlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc3VwcG9ydHMgdGhl
IGZvbGxvd2luZyB0cmFuc2l0aW9uczoKKyAgICAgICAgZWxlbWVudCBmdWxsc2NyZWVuIC0+IHBp
Y3R1cmUtaW4tcGljdHVyZSAodGhyb3VnaCB1c2VyIGdlc3R1cmVzKQorICAgICAgICBlbGVtZW50
IGZ1bGxzY3JlZW4gLT4gcGljdHVyZS1pbi1waWN0dXJlICh0aHJvdWdoIHRoZSBQaVAgYnV0dG9u
KQorICAgICAgICBwaWN0dXJlLWluLXBpY3R1cmUgLT4gZWxlbWVudCBmdWxsc2NyZWVuICh3aGVu
IHRoZSB0YWIgaXMgdmlzaWJsZSkKKyAgICAgICAgcGljdHVyZS1pbi1waWN0dXJlIC0+IGVsZW1l
bnQgZnVsbHNjcmVlbiAod2hlbiB0aGUgdGFiIGlzIGludmlzaWJsZSkKKyAgICAgICAgcGljdHVy
ZS1pbi1waWN0dXJlIC0+IGVsZW1lbnQgZnVsbHNjcmVlbiAod2hlbiB0aGUgYnJvd3NlciBpcyBp
biBiYWNrZ3JvdW5kKQorICAgICAgICBwaWN0dXJlLWluLXBpY3R1cmUgLT4gaW5saW5lICh3aGVu
IHRoZSBicm93c2VyIGlzIGluIGZvcmVncm91bmQpCisgICAgICAgIGV4aXQgcGljdHVyZS1pbi1w
aWN0dXJlIHdoZW4gdGhlIGJyb3dzZXIgaXMgaW4gYmFja2dyb3VuZAorCisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChX
ZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldpbGxSZXR1cm5U
b0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6
cHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICBOb3RpZnkgY2xpZW50cyB0byBwcmVw
YXJlIGZvciB0aGUgc3RvcCBvZiBmdWxsc2NyZWVuL3BpY3R1cmUtaW4tcGljdHVyZS4KKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5X
aXRoSUQpOgorICAgICAgICBGaXggaXNzdWVzIHRoYXQgaW5jcmVhc2UgdGhlIGNsaWVudCBjb3Vu
dCB1bm5lY2Vzc2FyaWx5LgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6CisgICAgICAgIENhbGwgbV9wYWdlLT5m
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBlYXJsaWVyLgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOgorICAgICAgICBOb3RpZnkgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlciB0byBwcmVwYXJlIGZvciBleGl0aW5nIHBpY3R1cmUtaW4tcGlj
dHVyZSBvciB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCByZXBvcnQgdGhlIGRlc3RpbmF0
aW9uIHJlY3RhbmdsZSBvZiB0aGUgZXhpdCBwaWN0dXJlLWluLXBpY3R1cmUgb3IgdmlkZW8gZnVs
bHNjcmVlbiBhbmltYXRpb25zLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICBBZGQgYSBmdW5jdGlvbiByZXF1ZXN0RW50
ZXJGdWxsU2NyZWVuKCkgc28gdGhhdCB3ZSBjYW4gcmVxdWVzdCBhbiBlbGVtZW50IHRvIGVudGVy
IGZ1bGxzY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgVUkgcHJvY2VzcyBzaWRlLgorCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250
cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBpbml0V2l0
aFdlYlZpZXc6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIGRlYWxs
b2NdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgdmlkZW9Db250cm9s
c01hbmFnZXJEaWRDaGFuZ2VdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xs
ZXIgc2V0QW5pbWF0aW5nVmlld0FscGhhOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3
Q29udHJvbGxlciBfY2FuY2VsQWN0aW9uOl0pOgorICAgICAgICAoV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6c2V0UGFyZW50KTogRGVsZXRlZC4K
KyAgICAgICAgKFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxD
bGllbnQ6OnNldEludGVyZmFjZSk6IERlbGV0ZWQuCisgICAgICAgIChXS0Z1bGxTY3JlZW5WaWV3
Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjppbnRlcmZhY2UgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciB3aWxsRW50ZXJQ
aWN0dXJlSW5QaWN0dXJlXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdD
b250cm9sbGVyIGRpZEVudGVyUGljdHVyZUluUGljdHVyZV0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVy
ZV0pOiBEZWxldGVkLgorICAgICAgICBNaW5vciBjbGVhbi11cHMgYW5kIHJlbW92ZSBjb2RlIHJl
bGF0ZWQgdG8gV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENs
aWVudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVySU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnNldFBhcmVudCk6
CisgICAgICAgIChXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQ6OnNldEludGVyZmFjZSk6CisgICAgICAgIChXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OmludGVyZmFjZSBjb25zdCk6CisgICAg
ICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGRlYWxsb2NdKToKKyAgICAg
ICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW5dKToKKyAg
ICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBiZWdhbkVudGVyRnVsbFNjcmVl
bldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEV4aXRGdWxsU2NyZWVuXSk6CisgICAg
ICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX2NvbXBsZXRlZEV4aXRGdWxsU2Ny
ZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgdmlkZW9Db250
cm9sc01hbmFnZXJEaWRDaGFuZ2VdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAg
ICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBp
Y3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBwcmVwYXJl
VG9FeGl0UGljdHVyZUluUGljdHVyZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgIEFkZCBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgYW5kIGltcGxl
bWVudCB0aGUgc3VwcG9ydAorICAgICAgICB0byAicmVzdG9yZSBmdWxsc2NyZWVuIGZyb20gcGlj
dHVyZS1pbi1waWN0dXJlIi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5h
Z2VyOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnVs
bFNjcmVlbk1hbmFnZXI6OnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgQWRkIHRoZSBpbnRlcmZhY2UgcmVxdWVzdEVudGVyRnVsbFNjcmVlbigpIGFuZCB0aGUgY29y
cmVzcG9uZGluZyBJUEMgbWVzc2FnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICBBZGQgdGhlIGludGVyZmFj
ZSB0byBwcmVwYXJlIGZvciB2aWRlbyBmdWxsc2NyZWVuIHN0YW5kYnkuIFRoZSB3ZWIgcHJvY2Vz
cyBjYW4KKyAgICAgICAgdXNlIHRoaXMgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIgaW5zdGFuY2UgdG8gYXZvaWQgdGhlCisgICAgICAgIHNjZW5hcmlvIHRoYXQg
YW4gSVBDIG1lc3NhZ2UgY29tZXMgZnJvbSB0aGUgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
IGJ1dAorICAgICAgICB0aGUgVmlkZW9GdWxsc2NyZWVuTWFuYWdlciBpbnN0YW5jZSBpcyBub3Qg
Y29uc3RydWN0ZWQgeWV0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6IERlbGV0
ZWQuCisgICAgICAgIFJlbmFtZSBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSB0byBmdWxs
c2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkuCisgICAgICAgIEluIHRoZSBVSSBwcm9jZXNzIHNp
ZGUsIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGlzIHVzZWQgYnkKKyAgICAgICAgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHRvIG5vdGlmeSBhcHBsaWNhdGlvbnMgcmVnYXJkaW5n
IFVJCisgICAgICAgIGNoYW5nZXMgKGUuZy4sIHN3aXRjaCBicm93c2VyIHRhYnMpLgorCiAyMDIw
LTA3LTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNd
IEFkZCBFeHBlcmltZW50YWwgRmVhdHVyZSBwcmVmZXJlbmNlIGZvciBTVyBWUDkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggMGM1YjJlZTdhOTk5MTdjMjY3ZDEyMzEy
YjhkZjdlOTZkMjQ3N2FkMC4uNWUyNDU3OTJiZWM1MTcwMjk1YjQxOWMxNmIwN2Q4YmZhN2JhNWJm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcyLDcgKzcyLDcg
QEAgcHVibGljOgogICAgICAgICBFbmZvcmNlSUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1l
bnQsCiAgICAgICAgIEV4ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50LAogICAg
IH07Ci0gICAgdm9pZCByZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCosIEZ1bGxz
Y3JlZW5DaGVja1R5cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEZ1bGxzY3Jl
ZW5Gb3JFbGVtZW50KEVsZW1lbnQqLCBGdWxsc2NyZWVuQ2hlY2tUeXBlKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgd2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50Jik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGY3YTJmODZhMmYzZWNlOWZmYzdlM2VlYWY2NDliNjhl
NWIyNjc5YjMuLjA4ZGViMDdkYmFmMzFiNDYzMjIyNTU4ZmM2MzBlN2UyYTdiZDFhNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTk1Niw3ICs1OTU2LDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlKQogCiAgICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlz
LCBtb2RlXSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLmhpZGRlbigpKSB7Ci0gICAgICAgICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIgIHJldHVybmluZyBiZWNhdXNlIGRvY3VtZW50
IGlzIGhpZGRlbiIpOworICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIHJl
dHVybmluZyBiZWNhdXNlIGRvY3VtZW50IGlzIGhpZGRlbiIpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKQEAgLTYwMzAsNiArNjAzMCwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmV4aXRGdWxsc2NyZWVuKCkKICAgICB9CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKQoreworI2lmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkKKyAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkucHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbigpOworI2VuZGlmCit9CisKIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuU3RhbmRieShib29s
IHZhbHVlKQogewogICAgIEFTU0VSVChpczxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA3MzA4YmMwYmU5YTg4ODI1NjEx
ZGVhMDQ2NzQyZDg4MzUyMTdjN2FkLi42OTVlYTcwZWU3NzZkNGQ1ODljYzQwNWI5OTQ0MzU5NGI2
Y2U1NGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDM1LDYg
KzQzNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJy
aWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KGJvb2wpOwogCiAg
ICAgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggYzBhMGQzMGJjZmRmM2Y0MWNmMGU4ZDdmM2RlNGMyNGMwMWRi
Njc5OC4uMGZmZWNlMGVjN2NmNDNhMGJjMWFkYzVmOGNhYWY1ZTI2YzYxNjgyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zNTUsNiArMzU1LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSB7IHJldHVybiBmYWxzZTsgfQogCisj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlRm9yVmlkZW9GdWxsc2NyZWVuKCkgeyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURFTykK
ICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRN
TFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSwgYm9vbCBzdGFuZGJ5KSB7IFVOVVNFRF9QQVJBTShzdGFuZGJ5KTsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmKSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmluZGV4IDM1NDhlNTNiMzczYjRkOTlkNzg3YTg5NDQy
YjNjMDliOGQ4Mjg2NGEuLmIxM2QxOWIzZTVjY2YxZjZkN2QyNjNjMmUzMGY3ZTdmOGZkOGU4NDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaApAQCAtNDEsNyArNDEsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBG
dWxsc2NyZWVuKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9FeGl0RnVsbHNjcmVl
bigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkgPSAw
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1vZGVsLmgKaW5kZXggZmQyMTRjNDc2ZGFlZWZiYzc4NTlhODhjYTgzNTkwZDY2
MjFlMTcwMC4uOWY4ZGQwODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0NzFiMDljYWRkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2Rl
bC5oCkBAIC03NiwxMSArNzYsMTIgQEAgcHVibGljOgogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xp
ZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0NoYW5nZWQoYm9vbCkg
eyB9OwotICAgIHZpcnR1YWwgdm9pZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0
U2l6ZSYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9DaGFuZ2VkKGJvb2wpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRXhpdFBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhp
dFBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbW9kZWxEZXN0cm95ZWQo
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggMjRkMTM1OGRlOWIyNGIzM2JiMGRjOWNi
ZWU5Y2YwMTg0ZWJjZDE1Ny4uOGU0NDEwZmQyYzE2MzNkZjRmZTdlMmM2MDJjZGM2NzlhNDQ3ZjNh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAg
ICAgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRNb2RlLm1vZGUoKTsgfQogICAgIGJvb2wgYWxsb3dzUGljdHVy
ZUluUGljdHVyZVBsYXliYWNrKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NQaWN0dXJlSW5QaWN0
dXJlUGxheWJhY2s7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1heUF1dG9tYXRpY2FsbHlT
aG93VmlkZW9QaWN0dXJlSW5QaWN0dXJlKCkgY29uc3Q7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKKyAg
ICB2b2lkIHByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgY2FsbGJhY2spOwogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21l
QWN0aXZlKCk7CiAKQEAgLTE0NiwxNyArMTQ2LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKik7CiAgICAgdm9pZCBlbnRl
ckZ1bGxzY3JlZW5IYW5kbGVyKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKTsKICAgICBib29sIGlz
UGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZShCT09MKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHdpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5Q
aWN0dXJlKEJPT0wpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2RlKEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBjbGVhck1vZGUo
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICBib29sIGhh
c01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNv
bnN0IHsgcmV0dXJuIG1fY3VycmVudE1vZGUuaGFzTW9kZShtb2RlKTsgfQogCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRy
b2xsZXIoKTsKICAgICBVSVZpZXdDb250cm9sbGVyICpmdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdDb250cm9sbGVyLmdldCgpOyB9CiAgICAgV2ViQVZQbGF5
ZXJMYXllclZpZXcqIHBsYXllckxheWVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyTGF5
ZXJWaWV3LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBwaWN0dXJlSW5QaWN0dXJl
V2FzU3RhcnRlZFdoZW5FbnRlcmluZ0JhY2tncm91bmQoKSBjb25zdDsKLSNlbmRpZgogCiBwcm90
ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQo
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQmKTsKQEAgLTIxNyw5ICsyMTgsMTQgQEAgcHJv
dGVjdGVkOgogICAgIGJvb2wgbV9zdGFuZGJ5IHsgZmFsc2UgfTsKICAgICBib29sIG1fdGFyZ2V0
U3RhbmRieSB7IGZhbHNlIH07CiAKKyNpZiBQTEFURk9STShXQVRDSE9TKQogICAgIGJvb2wgbV93
YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX3No
b3VsZElnbm9yZUFWS2l0Q2FsbGJhY2tBYm91dEV4aXRGdWxsc2NyZWVuUmVhc29uIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9yZWFk
eVRvU3RvcFBpY3R1cmVJblBpY3R1cmUgeyB0cnVlIH07CisgICAgYm9vbCBtX3dpbGxFbnRlclN0
YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0KaW5kZXggMDEwM2VlNzQ0ZjkxNWVmZDgxM2FhYzcxZDk2YmRmNTVjZDA2ZTdm
Yy4uOGU2ZDM2Yjc4Yjg5YjZkNzAzZThiZmIyODVlYzY5YTFkNTNmNmY0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5tbQpAQCAtOTY5LDEzICs5NjksOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgCiAgICAgW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciBzZXRQbGF5ZXJDb250cm9sbGVyOm5pbF07Ci0gICAgCi0gICAgaWYgKG1fY3VycmVudE1vZGUu
aGFzUGljdHVyZUluUGljdHVyZSgpKSB7Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVy
IHN0b3BQaWN0dXJlSW5QaWN0dXJlXTsKIAotICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5N
b2RlbCkKLSAgICAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEV4aXRQaWN0dXJl
SW5QaWN0dXJlKCk7Ci0gICAgfQorICAgIGlmIChtX2N1cnJlbnRNb2RlLmhhc1BpY3R1cmVJblBp
Y3R1cmUoKSkKKyAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcFBpY3R1cmVJblBp
Y3R1cmVdOwogCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVlbigpKSB7CiAgICAg
ICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CkBAIC0x
MDAyLDYgKzk5OCwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVh
bnVwRnVsbHNjcmVlbigpCiAgICAgW3BsYXllckNvbnRyb2xsZXIoKSBzZXRIYXNFbmFibGVkVmlk
ZW86ZmFsc2VdOwogICAgIFtwbGF5ZXJDb250cm9sbGVyKCkgc2V0SGFzVmlkZW86ZmFsc2VdOwog
CisgICAgbV93aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAg
ICBpZiAobV9leGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4aXRpbmdQaWN0
dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
KQorICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBp
Y3R1cmUoKTsKKyAgICB9CisKICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCiAg
ICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRDbGVhbnVwRnVsbHNjcmVlbigp
OwogfQpAQCAtMTA2NiwxMSArMTA2OSwxNSBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpCiAgICAg
cmV0dXJuIFtwbGF5ZXJDb250cm9sbGVyKCkgaXNQbGF5aW5nXSAmJiAobV9zdGFuZGJ5IHx8IG1f
Y3VycmVudE1vZGUuaXNGdWxsc2NyZWVuKCkpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgp
OwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1
cmVTdG9wKFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3By
ZXBhcmVUb0lubGluZUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci0gICAgaWYgKG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
cikgewogICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCk7CisgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5wcmVw
YXJlVG9FeGl0RnVsbHNjcmVlbigpOworICAgICAgICBpZiAobV9yZWFkeVRvU3RvcFBpY3R1cmVJ
blBpY3R1cmUpCisgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNj
cmVlbldpbGxSZXR1cm5Ub0lubGluZSgpOworICAgIH0KIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0YXJ0UGljdHVyZUluUGljdHVyZSgpCkBAIC0xMTE4LDcg
KzExMjUsNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdGFydFBp
Y3R1cmVJblBpY3R1cmUoKQogICAgIH0KIAogICAgIG1fZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJl
ID0gZmFsc2U7Ci0gICAgbV9zdGFuZGJ5ID0gZmFsc2U7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmZhaWxlZFRvU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKQEAgLTEx
NDQsNiArMTE1MCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxT
dG9wUGljdHVyZUluUGljdHVyZSgpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BQaWN0dXJlSW5QaWN0dXJlKCVwKSIsIHRoaXMp
OwogCisgICAgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAgICAgbV9zaG91bGRS
ZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBmYWxzZTsKIAogICAgIGlmIChtX2N1
cnJlbnRNb2RlLmhhc0Z1bGxzY3JlZW4oKSB8fCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0
dXJlSW5QaWN0dXJlU3RvcCkKQEAgLTExOTAsNiArMTE5Nyw3IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdp
dGhDb21wbGV0aW9uSGFuZGxlcih2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKEJPT0wgcmVzdG9y
ZWQpKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcigl
cCkiLCB0aGlzKTsKKwogICAgIGlmIChtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9w
cGluZ1BpUCkgewogICAgICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGlu
Z1BpUCA9IGZhbHNlOwogICAgICAgICBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5Q
aWN0dXJlU3RvcCA9IHRydWU7CkBAIC0xMjA1LDcgKzEyMTMsNyBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29t
cGxldGlvbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgc3Ryb25nQ29tcGxl
dGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XSldKGJvb2wgcmVz
dG9yZWQpICB7CisgICAgcHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wKFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgc3Ryb25nQ29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5T
KFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XSldKGJvb2wgcmVzdG9yZWQpICB7CiAgICAgICAgIExP
RyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQ
aWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlciBsYW1iZGEoJXApIC0gcmVz
dG9yZWQoJXMpIiwgcHJvdGVjdGVkVGhpcy5nZXQoKSwgYm9vbFN0cmluZyhyZXN0b3JlZCkpOwog
ICAgICAgICAoKHZvaWQgKF4pKEJPT0wpKXN0cm9uZ0NvbXBsZXRpb25IYW5kbGVyLmdldCgpKShy
ZXN0b3JlZCk7CiAgICAgfSk7CkBAIC0xNTgwLDYgKzE1ODgsMjYgQEAgYm9vbCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6aXNQbGF5aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigp
IGNvbnN0CiAgICAgcmV0dXJuIGhhc01vZGUoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkgJiYgW3BsYXllckNvbnRyb2xs
ZXIoKSBpc1BsYXlpbmddOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUoQk9PTCByZWFkeSkKK3sKKyAgICBpZiAo
bV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUgPT0gcmVhZHkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlID0gcmVhZHk7CisgICAgaWYgKG1f
cmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlICYmIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
KQorICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbldpbGxSZXR1
cm5Ub0lubGluZSgpOworfQorCitib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3
aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoKQoreworICAgIHJldHVybiBtX3dp
bGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZTsKK30KKwordm9pZCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0V2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0
dXJlKEJPT0wgdmFsdWUpCit7CisgICAgbV93aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBp
Y3R1cmUgPSB2YWx1ZTsKK30KKwogc3RhdGljIE9wdGlvbmFsPGJvb2w+IGlzUGljdHVyZUluUGlj
dHVyZVN1cHBvcnRlZDsKIAogdm9pZCBXZWJDb3JlOjpzZXRTdXBwb3J0c1BpY3R1cmVJblBpY3R1
cmUoYm9vbCBpc1N1cHBvcnRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4
IDQ5MjViNTY3NmRhMTk3ODRiYzIyMDZiODRlMDk1NGE2ZmFhNGQwZjMuLjRmY2Q5YTJlZjk5ZjA1
YWI4ZDhjMzI2YTAyNjIzMDQ0OTJiODhjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbQpAQCAtMTI4LDcgKzEyOCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsRXhpdEZ1bGxz
Y3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CiAgICAg
dm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIGZpbmFsOwotICAgIHZvaWQgZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCkgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlVG9FeGl0RnVsbHNjcmVl
bigpIGZpbmFsIHsgfQorICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmlu
YWwgeyB9CisgICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkgZmluYWw7CiAK
ICAgICAvLyBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudAogICAgIHZvaWQgaGFzVmlkZW9DaGFu
Z2VkKGJvb2wpIG92ZXJyaWRlOwpAQCAtMzU5LDcgKzM2MSw3IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmRpZENsZWFudXBGdWxsc2NyZWVuKCkKICAgICB9KTsKIH0K
IAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmZ1
bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKQogewogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkp
OwogICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRo
aXNdICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBlOGQzZmUwNTMzZjhl
OTE3MDJhMWMwZjM3ZmEyNjRjYWZmZDU5ZTUwLi4yOWNmZjIzMWM2OTNjN2I1MzY2NWYxMWFjOTFl
ZGZjODBmZjU3ZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMTExLDcgKzExMSw5IEBA
IHByaXZhdGU6CiAgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lk
IGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVl
bigpIGZpbmFsOworICAgIHZvaWQgcHJlcGFyZVRvRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAg
ICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOworICAgIHZvaWQgZnVs
bHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAgUmVmPFBsYXliYWNrU2Vzc2lvbk1vZGVsQ29u
dGV4dD4gbV9wbGF5YmFja1Nlc3Npb25Nb2RlbDsKQEAgLTE4OSw2ICsxOTEsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHkoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlZpZGVvR3Jhdml0eSk7CiAgICAg
dm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7
CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIpOworICAgIHZvaWQgZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAKICAgICBib29sIG1fbW9ja1ZpZGVv
UHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtX21vY2tQaWN0dXJlSW5QaWN0dXJlV2luZG93U2l6ZSB7IERlZmF1bHRNb2NrUGljdHVyZUlu
UGljdHVyZVdpbmRvd1dpZHRoLCBEZWZhdWx0TW9ja1BpY3R1cmVJblBpY3R1cmVXaW5kb3dIZWln
aHQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCBlZGFjY2UzYzBkYTUxOTBhNjYwMmJi
MWZmZWViZjhiZWVkNmNjNWUwLi5kYzQzZWZmMmIzODQwZGRhYTI0YjY4NmM4ZTE0ZmQ0NzRhMWE4
NTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0yNzQsNiArMjc0LDEyIEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
KQogICAgICAgICBtX21hbmFnZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShtX2NvbnRl
eHRJZCk7CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVu
V2lsbFJldHVyblRvSW5saW5lKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21h
bmFnZXItPmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUobV9jb250ZXh0SWQpOworfQorCiB2
b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6cmVxdWVzdFJvdXRlU2hhcmluZ1BvbGlj
eUFuZENvbnRleHRVSUQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3ksIFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKG1fbWFu
YWdlcikKQEAgLTI4Miw2ICsyODgsMTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRl
eHQ6OnJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKENvbXBsZXQKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0
LCBlbXB0eVN0cmluZygpKTsKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6
OnByZXBhcmVUb0V4aXRGdWxsc2NyZWVuKCkKK3sKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1f
Y2xpZW50cykKKyAgICAgICAgY2xpZW50LT5wcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZSgp
OworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6d2lsbEVudGVyUGljdHVy
ZUluUGljdHVyZSgpCiB7CiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCkBAIC01
MTIsNyArNTI0LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1
bGxzY3JlZW5XaXRoSUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAgICAgTUVTU0FHRV9DSEVD
Syh2aWRlb0xheWVySUQpOwogCiAgICAgYXV0byYgW21vZGVsLCBpbnRlcmZhY2VdID0gZW5zdXJl
TW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKLSAgICBhZGRDbGllbnRGb3JDb250ZXh0KGNv
bnRleHRJZCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoaW50ZXJmYWNlLT53
aWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoKSkKKyAgICAgICAgaW50ZXJmYWNl
LT5zZXRXaWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoTk8pOworICAgIGVsc2Ug
aWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSB8fCAhc3RhbmRieSkKKyAgICAgICAgYWRkQ2xp
ZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOworI2VuZGlmCiAKICAgICBpZiAobV9tb2NrVmlkZW9Q
cmVzZW50YXRpb25Nb2RlRW5hYmxlZCkgewogICAgICAgICBpZiAoIXZpZGVvRGltZW5zaW9ucy5p
c0VtcHR5KCkpCkBAIC02OTYsOCArNzEzLDYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGkKIAog
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgdmlzaWJs
ZSwgV2ViQ29yZTo6SW50UmVjdCBpbmxpbmVSZWN0KQogewotICAgIG1fcGFnZS0+ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCk7Ci0KICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBJ
bnRSZWN0IGlubGluZVdpbmRvd1JlY3Q7CiAgICAgbV9wYWdlLT5yb290Vmlld1RvV2luZG93KGlu
bGluZVJlY3QsIGlubGluZVdpbmRvd1JlY3QpOwpAQCAtODA1LDkgKzgyMCwxNCBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZAogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCkKK3sKKyAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSgpOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbldp
bGxSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQpCiB7CiAgICAgYm9vbCBpc1ZpZXdWaXNpYmxlID0gbV9wYWdlLT5pc1ZpZXdWaXNpYmxlKCk7
Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoY29udGV4dElkLCBpc1ZpZXdWaXNpYmxlKSk7CisgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxsc2NyZWVu
V2lsbFJldHVyblRvSW5saW5lKGNvbnRleHRJZCwgaXNWaWV3VmlzaWJsZSkpOwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHAKaW5kZXggNDZmMDFmZWQxZDYwZjQ5NDJkOTEwNzg2OTdiZTlkMDk0NDgzZTlj
Zi4uZDQ4MzZmMTY0ZGY5NDljOWY2ODM5NWMwM2I3ODU1Y2ZmNTgxZmQ5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAK
QEAgLTkyLDYgKzkyLDExIEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c2V0QW5p
bWF0aW5nRnVsbFNjcmVlbihib29sIGFuaW1hdGluZykKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OlNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYW5pbWF0aW5n
KSk7CiB9CiAKK3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEVudGVyRnVs
bFNjcmVlbigpCit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5h
Z2VyOjpSZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCkpOworfQorCiB2b2lkIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiB7CiAgICAgbV9wYWdlLnNlbmQo
TWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmgKaW5kZXggZGUxZDMzMDdlM2JlNzNmNzExZGU0NTk1YjE3ZmFhYWM4ODY3OWQ0MS4uMDBk
M2QwYWEyM2Y0MGIwYmI3MTI4ODI2MzJhNDE5ZTg2MDhiYTY3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNjksNiAr
NjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRXhpdEZ1bGxTY3JlZW4oKTsKICAgICB2b2lk
IGRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBzZXRBbmltYXRpbmdGdWxsU2NyZWVuKGJv
b2wpOworICAgIHZvaWQgcmVxdWVzdEVudGVyRnVsbFNjcmVlbigpOwogICAgIHZvaWQgcmVxdWVz
dEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBzYXZlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2
b2lkIHJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250
cm9sbGVyLmgKaW5kZXggOTVhOTUyMGYyMzUwMmExNjY1NWVlN2NmNjZlNDdkMGJhZjNjN2FjOC4u
YzQxNTc4NTExMTMzZTVjMTM1MmMxNGM3NjkyMzA2NDc4YTFhNjY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAKIEBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgOiBVSVZp
ZXdDb250cm9sbGVyCiBAcHJvcGVydHkgKHJldGFpbiwgbm9uYXRvbWljKSBpZCB0YXJnZXQ7Ci1A
cHJvcGVydHkgKGFzc2lnbiwgbm9uYXRvbWljKSBTRUwgYWN0aW9uOworQHByb3BlcnR5IChhc3Np
Z24sIG5vbmF0b21pYykgU0VMIGV4aXRGdWxsU2NyZWVuQWN0aW9uOwogQHByb3BlcnR5IChjb3B5
LCBub25hdG9taWMpIE5TU3RyaW5nICpsb2NhdGlvbjsKIEBwcm9wZXJ0eSAoYXNzaWduLCBub25h
dG9taWMpIEJPT0wgcHJlZmVyc1N0YXR1c0JhckhpZGRlbjsKIEBwcm9wZXJ0eSAoYXNzaWduLCBu
b25hdG9taWMpIEJPT0wgcHJlZmVyc0hvbWVJbmRpY2F0b3JBdXRvSGlkZGVuOwpAQCAtNDUsNiAr
NDUsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogLSAodm9pZClzaG93VUk7CiAtICh2b2lk
KWhpZGVVSTsKIC0gKHZvaWQpdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2U7CistICh2b2lk
KXNldEFuaW1hdGluZ1ZpZXdBbHBoYTooQ0dGbG9hdClhbHBoYTsKIEBlbmQKIAogTlNfQVNTVU1F
X05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVs
bHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCmluZGV4
IDc4YzAwMTUyZjFhNDM3MDA1Y2Q5MjkwMzk4YTdmY2NlODdjMWY5ODAuLmFhNmM0MDIxZmMzM2Nh
ZjZjNDk0Nzk4YjdlZDJkMWY3NzQ0MjA3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdD
b250cm9sbGVyLm1tCkBAIC00NiwxMiArNDYsNiBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2
YWwgYXV0b0hpZGVEZWxheSA9IDQuMDsKIAogQGNsYXNzIFdLRnVsbHNjcmVlblN0YWNrVmlldzsK
IAotQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVu
Q2xpZW50Q2FsbGJhY2tzKQotLSAodm9pZCl3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlOwotLSAo
dm9pZClkaWRFbnRlclBpY3R1cmVJblBpY3R1cmU7Ci0tICh2b2lkKWZhaWxlZFRvRW50ZXJQaWN0
dXJlSW5QaWN0dXJlOwotQGVuZAotCiBjbGFzcyBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclBs
YXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50IDogV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxD
bGllbnQgewogcHVibGljOgogICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlblZpZXdDb250
cm9sbGVyICpwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KQEAgLTg3LDQ1ICs4MSw2IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0PiBtX2ludGVyZmFjZTsKIH07CiAKLWNsYXNzIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgOiBXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bENsaWVudCB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgdm9p
ZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKnBhcmVudCkgeyBtX3BhcmVu
dCA9IHBhcmVudDsgfQotCi0gICAgdm9pZCBzZXRJbnRlcmZhY2UoV2ViQ29yZTo6VmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQqIGludGVyZmFjZSkKLSAgICB7Ci0gICAgICAgIGlmIChtX2lu
dGVyZmFjZSA9PSBpbnRlcmZhY2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYg
KG1faW50ZXJmYWNlICYmIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpKQotICAg
ICAgICAgICAgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCktPnJlbW92ZUNsaWVu
dCgqdGhpcyk7Ci0gICAgICAgIG1faW50ZXJmYWNlID0gaW50ZXJmYWNlOwotICAgICAgICBpZiAo
bV9pbnRlcmZhY2UgJiYgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCi0gICAg
ICAgICAgICBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+YWRkQ2xpZW50KCp0
aGlzKTsKLSAgICB9Ci0KLSAgICBXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dCogaW50ZXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmZhY2UuZ2V0KCk7IH0KLQotICAg
IHZvaWQgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZSgpIGZpbmFsCi0gICAgewotICAgICAgICBb
bV9wYXJlbnQgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZV07Ci0gICAgfQotCi0gICAgdm9pZCBk
aWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAotICAgIHsKLSAgICAgICAgW21fcGFyZW50
IGRpZEVudGVyUGljdHVyZUluUGljdHVyZV07Ci0gICAgfQotCi0gICAgdm9pZCBmYWlsZWRUb0Vu
dGVyUGljdHVyZUluUGljdHVyZSgpIGZpbmFsCi0gICAgewotICAgICAgICBbbV9wYXJlbnQgZmFp
bGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmVdOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBXS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlciAqbV9wYXJlbnQgeyBudWxscHRyIH07Ci0gICAgUmVmUHRy
PFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBtX2ludGVyZmFjZTsKLX07
Ci0KICNwcmFnbWEgbWFyayAtIF9XS0V4dHJpbnNpY0J1dHRvbgogCiBAaW50ZXJmYWNlIF9XS0V4
dHJpbnNpY0J1dHRvbiA6IFVJQnV0dG9uCkBAIC0xNjQsNyArMTE5LDYgQEAgcHJpdmF0ZToKICAg
ICBSZXRhaW5QdHI8TlNMYXlvdXRDb25zdHJhaW50PiBfdG9wQ29uc3RyYWludDsKICAgICBXZWJL
aXQ6OkZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYyBfc2VjaGV1cmlzdGljOwogICAgIFdLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQgX3BsYXliYWNr
Q2xpZW50OwotICAgIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudDsKICAgICBDR0Zsb2F0IF9ub25aZXJvU3Rh
dHVzQmFySGVpZ2h0OwogfQogCkBAIC0xODgsNyArMTQyLDYgQEAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgc2VsZi5fd2ViVmlldyA9IHdlYlZpZXc7CiAKICAgICBfcGxh
eWJhY2tDbGllbnQuc2V0UGFyZW50KHNlbGYpOwotICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQu
c2V0UGFyZW50KHNlbGYpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0yMDAsOCArMTUzLDYg
QEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBfcGxheWJhY2tDbGll
bnQuc2V0UGFyZW50KG51bGxwdHIpOwogICAgIF9wbGF5YmFja0NsaWVudC5zZXRJbnRlcmZhY2Uo
bnVsbHB0cik7Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQobnVsbHB0cik7
Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7CiAKICAg
ICBbX3RhcmdldCByZWxlYXNlXTsKICAgICBbX2xvY2F0aW9uIHJlbGVhc2VdOwpAQCAtMjYxLDcg
KzIxMiw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGF1dG8qIHBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA/ICZ2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSgpIDogbnVsbHB0
cjsKIAogICAgIF9wbGF5YmFja0NsaWVudC5zZXRJbnRlcmZhY2UocGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlKTsKLSAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZSh2aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UpOwogCiAgICAgV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWwq
IHBsYXliYWNrU2Vzc2lvbk1vZGVsID0gcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlID8gcGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCgpIDogbnVsbHB0cjsKICAg
ICBzZWxmLnBsYXlpbmcgPSBwbGF5YmFja1Nlc3Npb25Nb2RlbCA/IHBsYXliYWNrU2Vzc2lvbk1v
ZGVsLT5pc1BsYXlpbmcoKSA6IE5POwpAQCAtMjcyLDYgKzIyMiwxMyBAQCBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbX3BpcEJ1dHRvbiBzZXRIaWRkZW46IWlzUGlQRW5h
YmxlZCB8fCAhaXNQaVBTdXBwb3J0ZWRdOwogfQogCistICh2b2lkKXNldEFuaW1hdGluZ1ZpZXdB
bHBoYTooQ0dGbG9hdClhbHBoYQoreworICAgIFtVSVZpZXcgYW5pbWF0ZVdpdGhEdXJhdGlvbjpw
aXBIaWRlQW5pbWF0aW9uRHVyYXRpb24gYW5pbWF0aW9uczpeeworICAgICAgICBfYW5pbWF0aW5n
Vmlldy5nZXQoKS5hbHBoYSA9IGFscGhhOworICAgIH1dOworfQorCiAtICh2b2lkKXNldFByZWZl
cnNTdGF0dXNCYXJIaWRkZW46KEJPT0wpdmFsdWUKIHsKICAgICBfcHJlZmVyc1N0YXR1c0Jhckhp
ZGRlbiA9IHZhbHVlOwpAQCAtMzMwLDMzICsyODcsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgW3NlbGYgc2hvd1VJXTsKIH0KIAotLSAodm9pZCl3aWxsRW50
ZXJQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgYXV0byogaW50ZXJmYWNlID0gX3ZpZGVvRnVsbHNj
cmVlbkNsaWVudC5pbnRlcmZhY2UoKTsKLSAgICBpZiAoIWludGVyZmFjZSB8fCAhaW50ZXJmYWNl
LT5waWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5FbnRlcmluZ0JhY2tncm91bmQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgW1VJVmlldyBhbmltYXRlV2l0aER1cmF0aW9uOnBpcEhpZGVB
bmltYXRpb25EdXJhdGlvbiBhbmltYXRpb25zOl57Ci0gICAgICAgIF9hbmltYXRpbmdWaWV3Lmdl
dCgpLmFscGhhID0gMDsKLSAgICB9XTsKLX0KLQotLSAodm9pZClkaWRFbnRlclBpY3R1cmVJblBp
Y3R1cmUKLXsKLSAgICBbc2VsZiBfY2FuY2VsQWN0aW9uOnNlbGZdOwotfQotCi0tICh2b2lkKWZh
aWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgYXV0byogaW50ZXJmYWNlID0gX3Zp
ZGVvRnVsbHNjcmVlbkNsaWVudC5pbnRlcmZhY2UoKTsKLSAgICBpZiAoIWludGVyZmFjZSB8fCAh
aW50ZXJmYWNlLT5waWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5FbnRlcmluZ0JhY2tncm91
bmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW1VJVmlldyBhbmltYXRlV2l0aER1cmF0aW9u
OnBpcEhpZGVBbmltYXRpb25EdXJhdGlvbiBhbmltYXRpb25zOl57Ci0gICAgICAgIF9hbmltYXRp
bmdWaWV3LmdldCgpLmFscGhhID0gMTsKLSAgICB9XTsKLX0KLQogI3ByYWdtYSBtYXJrIC0gVUlW
aWV3Q29udHJvbGxlciBPdmVycmlkZXMKIAogLSAodm9pZClsb2FkVmlldwpAQCAtNTAzLDcgKzQz
Myw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAtICh2b2lkKV9jYW5j
ZWxBY3Rpb246KGlkKXNlbmRlcgogewotICAgIFtbc2VsZiB0YXJnZXRdIHBlcmZvcm1TZWxlY3Rv
cjpbc2VsZiBhY3Rpb25dXTsKKyAgICBbW3NlbGYgdGFyZ2V0XSBwZXJmb3JtU2VsZWN0b3I6W3Nl
bGYgZXhpdEZ1bGxTY3JlZW5BY3Rpb25dXTsKIH0KIAogLSAodm9pZClfdG9nZ2xlUGlQQWN0aW9u
OihpZClzZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxs
c2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1Mu
aAppbmRleCAzMWVjODFjODcwZjQwZWRmZWNhYjhiMzhhZjczNTAwYmNmZDg0ZDdiLi5mZDM5OWEw
YTA3MzJmZjExODU0OWExMmZmOGU0ZTY0MmVmNzM0OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oCkBAIC0zNiw2ICszNiw3IEBACiAtIChpZClpbml0
V2l0aFdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKWVudGVyRnVsbFNjcmVl
bjsKIC0gKHZvaWQpYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3Qp
aW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHUmVjdClmaW5hbEZyYW1lOworLSAodm9pZClyZXF1
ZXN0RW50ZXJGdWxsU2NyZWVuOwogLSAodm9pZClyZXF1ZXN0RXhpdEZ1bGxTY3JlZW47CiAtICh2
b2lkKWV4aXRGdWxsU2NyZWVuOwogLSAodm9pZCliZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRp
YWxGcmFtZTooQ0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihDR1JlY3QpZmluYWxGcmFt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4
IDQ2YmNlNmFjZGE0ZTE1MzkxMmRmYjIxYzFlNTY2ZDQ4NDNiZjNjMWQuLjY4OTk0M2I0ZjZmODNh
YTM1MjMyZmZjZmIxMjRmYjg4YTQxNTExMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcklPUy5tbQpAQCAtNDI0LDYgKzQyNCw2NSBAQCBzdGF0aWMgY29uc3Qg
TlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogCiAjcHJhZ21hIG1hcmsg
LQogCitAaW50ZXJmYWNlIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKFZpZGVvRnVsbHNj
cmVlbkNsaWVudENhbGxiYWNrcykKKy0gKHZvaWQpd2lsbEVudGVyUGljdHVyZUluUGljdHVyZTsK
Ky0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlOworLSAodm9pZClmYWlsZWRUb0VudGVy
UGljdHVyZUluUGljdHVyZTsKKy0gKHZvaWQpcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmU7
CistICh2b2lkKWRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlOworQGVuZAorCitjbGFzcyBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQgOiBXZWJDb3Jl
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CisKKyAgICB2b2lkIHNldEludGVy
ZmFjZShXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCogaW50ZXJmYWNlKQor
ICAgIHsKKyAgICAgICAgaWYgKG1faW50ZXJmYWNlID09IGludGVyZmFjZSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBpZiAobV9pbnRlcmZhY2UgJiYgbV9pbnRlcmZhY2UtPnZpZGVv
RnVsbHNjcmVlbk1vZGVsKCkpCisgICAgICAgICAgICBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2Ny
ZWVuTW9kZWwoKS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKKyAgICAgICAgbV9pbnRlcmZhY2UgPSBp
bnRlcmZhY2U7CisgICAgICAgIGlmIChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9G
dWxsc2NyZWVuTW9kZWwoKSkKKyAgICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbCgpLT5hZGRDbGllbnQoKnRoaXMpOworICAgIH0KKworICAgIFdlYkNvcmU6OlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZhY2UoKSBjb25zdCB7IHJldHVybiBtX2lu
dGVyZmFjZS5nZXQoKTsgfQorCisgICAgdm9pZCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkg
ZmluYWwKKyAgICB7CisgICAgICAgIFttX3BhcmVudCB3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJl
XTsKKyAgICB9CisKKyAgICB2b2lkIGRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpIGZpbmFsCisg
ICAgeworICAgICAgICBbbV9wYXJlbnQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9
CisKKyAgICB2b2lkIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKKyAgICB7
CisgICAgICAgIFttX3BhcmVudCBmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZV07CisgICAg
fQorCisgICAgdm9pZCBwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZSgpIGZpbmFsCisgICAg
eworICAgICAgICBbbV9wYXJlbnQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmVdOworICAg
IH0KKworICAgIHZvaWQgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAorICAgIHsKKyAg
ICAgICAgW21fcGFyZW50IGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqbV9wYXJlbnQgeyBudWxscHRy
IH07CisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBt
X2ludGVyZmFjZTsKK307CisKKyNwcmFnbWEgbWFyayAtCisKIEBpbXBsZW1lbnRhdGlvbiBXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHsKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuUGxh
Y2Vob2xkZXJWaWV3PiBfd2ViVmlld1BsYWNlaG9sZGVyOwogCkBAIC00NDEsNiArNTAwLDEwIEBA
IHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAg
ICAgUmV0YWluUHRyPFVJUGluY2hHZXN0dXJlUmVjb2duaXplcj4gX2ludGVyYWN0aXZlUGluY2hE
aXNtaXNzR2VzdHVyZVJlY29nbml6ZXI7CiAgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlbkludGVy
YWN0aXZlVHJhbnNpdGlvbj4gX2ludGVyYWN0aXZlRGlzbWlzc1RyYW5zaXRpb25Db29yZGluYXRv
cjsKIAorICAgIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bENsaWVudCBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50OworICAgIEJPT0wgX2luUGljdHVyZUluUGlj
dHVyZTsKKyAgICBCT09MIF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZTsK
KwogICAgIENHUmVjdCBfaW5pdGlhbEZyYW1lOwogICAgIENHUmVjdCBfZmluYWxGcmFtZTsKIApA
QCAtNDQ4LDYgKzUxMSw4IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9u
RHVyYXRpb24gPSAwLjI7CiAgICAgQk9PTCBfRVZPcmdhbml6YXRpb25OYW1lSXNWYWxpZDsKICAg
ICBCT09MIF9pbkludGVyYWN0aXZlRGlzbWlzczsKICAgICBCT09MIF9leGl0UmVxdWVzdGVkOwor
ICAgIEJPT0wgX2VudGVyUmVxdWVzdGVkOworICAgIEJPT0wgX2V4aXRpbmdGdWxsU2NyZWVuOwog
CiAgICAgUmV0YWluUHRyPGlkPiBfbm90aWZpY2F0aW9uTGlzdGVuZXI7CiB9CkBAIC00NjAsNiAr
NTI1LDcgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9
IDAuMjsKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHNlbGYuX3dlYlZpZXcgPSB3ZWJWaWV3
OworICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0UGFyZW50KHNlbGYpOwogCiAgICAgcmV0
dXJuIHNlbGY7CiB9CkBAIC00NjksNiArNTM1LDkgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVy
dmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlv
dXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGZdOwogICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07CiAKKyAgICBfdmlkZW9G
dWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZShudWxscHRyKTsKKyAgICBfdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50LnNldFBhcmVudChudWxscHRyKTsKKwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0K
IApAQCAtNTI0LDcgKzU5Myw3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0
aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0VHJh
bnNpdGlvbmluZ0RlbGVnYXRlOnNlbGZdOwogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVy
IHNldE1vZGFsUHJlc2VudGF0aW9uQ2FwdHVyZXNTdGF0dXNCYXJBcHBlYXJhbmNlOllFU107CiAg
ICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0VGFyZ2V0OnNlbGZdOwotICAgIFtfZnVs
bHNjcmVlblZpZXdDb250cm9sbGVyIHNldEFjdGlvbjpAc2VsZWN0b3IocmVxdWVzdEV4aXRGdWxs
U2NyZWVuKV07CisgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0RXhpdEZ1bGxTY3Jl
ZW5BY3Rpb246QHNlbGVjdG9yKHJlcXVlc3RFeGl0RnVsbFNjcmVlbildOwogICAgIF9mdWxsc2Ny
ZWVuVmlld0NvbnRyb2xsZXIuZ2V0KCkudmlldy5mcmFtZSA9IF9yb290Vmlld0NvbnRyb2xsZXIu
Z2V0KCkudmlldy5ib3VuZHM7CiAgICAgW3NlbGYgX3VwZGF0ZUxvY2F0aW9uSW5mb107CiAKQEAg
LTY1Miw2ICs3MjEsMTcgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25E
dXJhdGlvbiA9IDAuMjsKICAgICAgICAgICAgIG1hbmFnZXItPmRpZEVudGVyRnVsbFNjcmVlbigp
OwogICAgICAgICAgICAgbWFuYWdlci0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAg
ICAgICAgICAgICBwYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKKwor
ICAgICAgICAgICAgYXV0byogdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IHBhZ2UtPnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKTsKKyAgICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5j
b250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgICAgICAgICBpZiAoX3Jl
dHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgICAgICAgICAg
QVNTRVJUKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgX3JldHVy
blRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0gTk87CisgICAgICAgICAgICAgICAg
aWYgKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgdmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUoWUVTKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIF92aWRlb0Z1bGxzY3JlZW5DbGll
bnQuc2V0SW50ZXJmYWNlKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk7CisKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCkBAIC02NjAsNiArNzQwLDE5IEBAIHN0YXRpYyBjb25zdCBO
U1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAgICAgfV07CiB9CiAKKy0g
KHZvaWQpcmVxdWVzdEVudGVyRnVsbFNjcmVlbgoreworICAgIGlmIChfZnVsbFNjcmVlblN0YXRl
ICE9IFdlYktpdDo6Tm90SW5GdWxsU2NyZWVuKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
YXV0byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXIpIHsKKyAgICAgICAgbWFuYWdlci0+cmVxdWVz
dEVudGVyRnVsbFNjcmVlbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKIC0gKHZvaWQpcmVxdWVzdEV4aXRGdWxsU2NyZWVuCiB7CiAg
ICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgIT0gV2ViS2l0OjpJbkZ1bGxTY3JlZW4pIHsKQEAgLTY2
OSw2ICs3NjIsNyBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0
aW9uID0gMC4yOwogCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAg
ICAgICAgIG1hbmFnZXItPnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOworICAgICAgICBfZXhpdGlu
Z0Z1bGxTY3JlZW4gPSBZRVM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc3MCw2ICs4
NjQsMTYgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9
IDAuMjsKICAgICAgICAgICAgIHBhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFs
c2UpOwogICAgICAgICAgICAgcGFnZS0+c2V0TmVlZHNET01XaW5kb3dSZXNpemVFdmVudCgpOwog
ICAgICAgICB9CisKKyAgICAgICAgaWYgKCFfaW5QaWN0dXJlSW5QaWN0dXJlKQorICAgICAgICAg
ICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7CisKKyAgICAg
ICAgX2V4aXRSZXF1ZXN0ZWQgPSBOTzsKKyAgICAgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gTk87
CisgICAgICAgIGlmIChfZW50ZXJSZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIF9lbnRlclJlcXVl
c3RlZCA9IE5POworICAgICAgICAgICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl07Cisg
ICAgICAgIH0KICAgICB9KTsKIAogICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBf
cGFnZV0pCkBAIC03NzksNyArODgzLDYgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtB
bmltYXRpb25EdXJhdGlvbiA9IDAuMjsKIAogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVy
IHNldFByZWZlcnNTdGF0dXNCYXJIaWRkZW46WUVTXTsKICAgICBfZnVsbHNjcmVlblZpZXdDb250
cm9sbGVyID0gbmlsOwotICAgIF9leGl0UmVxdWVzdGVkID0gTk87CiB9CiAKIC0gKHZvaWQpY2xv
c2UKQEAgLTc5OCw2ICs5MDEsMTEgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmlt
YXRpb25EdXJhdGlvbiA9IDAuMjsKIHsKICAgICBpZiAoX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxl
cikKICAgICAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgdmlkZW9Db250cm9sc01hbmFn
ZXJEaWRDaGFuZ2VdOworCisgICAgYXV0byBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdOwor
ICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBwYWdlID8gcGFnZS0+dmlkZW9GdWxs
c2NyZWVuTWFuYWdlcigpIDogbnVsbHB0cjsKKyAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+
Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOworICAgIF92aWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuc2V0SW50ZXJmYWNlKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSk7CiB9CiAKIC0g
KHZvaWQpcGxhY2Vob2xkZXJXaWxsTW92ZVRvU3VwZXJ2aWV3OihVSVZpZXcgKilzdXBlcnZpZXcK
QEAgLTgxMSw2ICs5MTksNTMgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRp
b25EdXJhdGlvbiA9IDAuMjsKICAgICB9KTsKIH0KIAorLSAodm9pZCl3aWxsRW50ZXJQaWN0dXJl
SW5QaWN0dXJlCit7CisgICAgYXV0byogaW50ZXJmYWNlID0gX3ZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5pbnRlcmZhY2UoKTsKKyAgICBpZiAoIWludGVyZmFjZSB8fCAhaW50ZXJmYWNlLT5waWN0dXJl
SW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5FbnRlcmluZ0JhY2tncm91bmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0QW5pbWF0aW5nVmlld0Fs
cGhhOjBdOworfQorCistICh2b2lkKWRpZEVudGVyUGljdHVyZUluUGljdHVyZQoreworICAgIF9p
blBpY3R1cmVJblBpY3R1cmUgPSBZRVM7CisgICAgW3NlbGYgcmVxdWVzdEV4aXRGdWxsU2NyZWVu
XTsKK30KKworLSAodm9pZClmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZQoreworICAgIGF1
dG8qIGludGVyZmFjZSA9IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7CisgICAg
aWYgKCFpbnRlcmZhY2UgfHwgIWludGVyZmFjZS0+cGljdHVyZUluUGljdHVyZVdhc1N0YXJ0ZWRX
aGVuRW50ZXJpbmdCYWNrZ3JvdW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFtfZnVsbHNj
cmVlblZpZXdDb250cm9sbGVyIHNldEFuaW1hdGluZ1ZpZXdBbHBoYToxXTsKK30KKworLSAodm9p
ZClwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZQoreworICAgIGF1dG8qIGludGVyZmFjZSA9
IF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuaW50ZXJmYWNlKCk7CisgICAgaWYgKCFpbnRlcmZhY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIGludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlKE5PKTsKKyAgICBpbnRlcmZhY2UtPnNldFdpbGxFbnRlclN0YW5kYnlGcm9tUGlj
dHVyZUluUGljdHVyZShZRVMpOworICAgIF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUlu
UGljdHVyZSA9IFlFUzsKKworICAgIGlmICghX2V4aXRpbmdGdWxsU2NyZWVuKQorICAgICAgICBb
c2VsZiByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuXTsKKyAgICBlbHNlCisgICAgICAgIF9lbnRlclJl
cXVlc3RlZCA9IFlFUzsKK30KKworLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZQorewor
ICAgIF9pblBpY3R1cmVJblBpY3R1cmUgPSBOTzsKKyAgICBpZiAoIV9yZXR1cm5Ub0Z1bGxzY3Jl
ZW5Gcm9tUGljdHVyZUluUGljdHVyZSAmJiAhW3NlbGYgaXNGdWxsU2NyZWVuXSkKKyAgICAgICAg
X3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRlcmZhY2UobnVsbHB0cik7Cit9CisKICNwcmFn
bWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgVUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRleCAyZjJiNmVjYzI3YzI0ZDRlYmNjNmI2OGQ0MzljYTc2
NzdkOTc3NmFiLi4yZGYxY2NiODBmYzI4NTgyOGU5NGY3MWZmNmJhZjNkNThhYTg4NmM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZW5kZXJMYXllckJhY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2Vz
dHVyZUluZGljYXRvci5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyLmgiCkBAIC0xMzYsNiArMTM3LDEzIEBAIHZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXI6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCog
ZWxlbWVudCkKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICBtX2VsZW1l
bnQgPSBlbGVtZW50OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKKyAgICBhdXRvKiBjdXJyZW50
UGxheWJhY2tDb250cm9sc0VsZW1lbnQgPSBtX3BhZ2UtPnBsYXliYWNrU2Vzc2lvbk1hbmFnZXIo
KS5jdXJyZW50UGxheWJhY2tDb250cm9sc0VsZW1lbnQoKTsKKyAgICBpZiAoY3VycmVudFBsYXli
YWNrQ29udHJvbHNFbGVtZW50KQorICAgICAgICBjdXJyZW50UGxheWJhY2tDb250cm9sc0VsZW1l
bnQtPnByZXBhcmVGb3JWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCk7CisjZW5kaWYKKwogICAgIG1f
aW5pdGlhbEZyYW1lID0gc2NyZWVuUmVjdE9mQ29udGVudHMobV9lbGVtZW50LmdldCgpKTsKICAg
ICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRnVsbFNjcmVlbkNsaWVudCgpLmVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQobV9wYWdlLmdldCgpLCBlbGVtZW50KTsKIH0KQEAgLTIxNyw2ICsyMjUsMTYg
QEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihib29s
IGFuaW1hdGluZykKICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIo
KS5zZXRBbmltYXRpbmdGdWxsc2NyZWVuKGFuaW1hdGluZyk7CiB9CiAKK3ZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXI6OnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKQoreworICAgIEFTU0VSVChtX2Vs
ZW1lbnQpOworICAgIGlmICghbV9lbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJD
b3JlOjpVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKFdlYkNvcmU6OlByb2Nl
c3NpbmdVc2VyR2VzdHVyZSk7CisgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLmZ1bGxzY3JlZW5N
YW5hZ2VyKCkucmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KG1fZWxlbWVudC5nZXQoKSwgRnVs
bHNjcmVlbk1hbmFnZXI6OkV4ZW1wdElGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50KTsK
K30KKwogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkK
IHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCmluZGV4IDkxMjBh
YzkwYzc3ZmRhYjIwMmUyNjc0OThhMDIxMDdhYTAxNjU4NjUuLjAxZmRmN2ZlZGI2Y2ZiZTZhODA2
MjJjYWM2NGE2ZmNlNWVkZjg0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtNzcsNiArNzcs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRQSVBTdGFuZGJ5RWxlbWVudChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50Kik7CiAKICAgICB2b2lkIHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9v
bCk7CisgICAgdm9pZCByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCByZXF1ZXN0
RXhpdEZ1bGxTY3JlZW4oKTsKICAgICB2b2lkIHNhdmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZv
aWQgcmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluCmluZGV4IGI2OWFlY2VjNmIwMWJhZjkxZjI2YzFhN2E5MzZhYzk3NzZiNzhiZjIu
LmJlNTBkNmMzNDhkMDgyNzY5Mjc0ZmQxY2ZkNzFjMGQ1NjM3Y2RjOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiBtZXNzYWdlcyAtPiBXZWJGdWxsU2NyZWVuTWFuYWdlciBMZWdh
Y3lSZWNlaXZlciB7CisgICAgUmVxdWVzdEVudGVyRnVsbFNjcmVlbigpCiAgICAgUmVxdWVzdEV4
aXRGdWxsU2NyZWVuKCkKICAgICBXaWxsRW50ZXJGdWxsU2NyZWVuKCkKICAgICBEaWRFbnRlckZ1
bGxTY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBlZmMwMDNiZDAxNTkxMDAwODJk
ZTNjZWYxZjYwOWZhNTIyNTFjYTVhLi40NTlkNWRiOTcyZGI4N2JjYmE4ZDVlZGY0NThjOTNlZTQ0
NzE0NDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtOTQwLDYgKzk0MCwxMSBAQCBSZWZQ
dHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IoUGFnZSYgcAogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbigpCit7
CisgICAgbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKK30KKwogYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogewogICAgIHJldHVybiBtX3BhZ2UudmlkZW9GdWxs
c2NyZWVuTWFuYWdlcigpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKG1vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IGU3NWY0ODg1MmJmYTA2YjFhZDQwZTNiYmExZmEzY2MzZTNmNDFhOGUuLjE1
ODg5Y2NhMmM4MTJmZGU3Yzk5ODA2YTUxMTEyMDNjODhkMDI1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTI2NCw2ICsyNjQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdm9pZCBwcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVu
KCkgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOwogICAgIGJvb2wg
c3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkgZmluYWw7CiAgICAgdm9pZCBzZXRNb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmlu
ZGV4IGI4YWU2N2NhNDk4MTZmNmUxZjEzZjlmODk1YmRmNTVkNzI1NWY2OTguLmU4MjNkMjBjNGQx
YjkyNDRhMmVjZWJiOWMzOTFkNWFmMzcwMmQ1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTU0LDcg
KzE1NCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5k
cywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jh
dml0eUVudW0oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIHVuc2lnbmVkIGdyYXZp
dHkpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpOwotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2libGUpOworICAgIHZvaWQg
ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllciwgYm9vbCBpc1BhZ2VWaXNpYmxlKTsKICAgICB2b2lkIHJlcXVlc3RSb3V0ZVNoYXJpbmdQ
b2xpY3lBbmRDb250ZXh0VUlEKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBNZXNz
YWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFu
ZENvbnRleHRVSURBc3luY1JlcGx5JiYpOwogCiAgICAgV2ViUGFnZSogbV9wYWdlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhM2YzYzM0NjdlYTE3NzBjZGZkNDgwYjdh
MDMwMDEzMjUxNjlmZWZmLi4wNzZmZmY1Nzc2MWU1OTc0NGFjZWI4N2Q0ZGEzNjUxYzI1YWMwYjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzQsNyArMzQsNyBAQCBt
ZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBTZXRWaWRlb0xheWVyRnJh
bWVGZW5jZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQp
CiAgICAgU2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkLCB1bnNpZ25lZCBncmF2aXR5KQogICAgIEZ1bGxzY3Jl
ZW5Nb2RlQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCi0gICAgRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29s
IGlzUGFnZVZpc2libGUpCisgICAgRnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShXZWJLaXQ6
OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VW
aXNpYmxlKQogICAgIFJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKFdlYktp
dDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKSAtPiAoZW51bTp1
aW50OF90IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3ksIFN0
cmluZyByb3V0aW5nQ29udGV4dFVJRCkgQXN5bmMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpp
bmRleCBiNmI2OWNjNDI0YmI5ZWM2YzFkYWQ1ZWRlMmI3MThhMThmMDQzOWEzLi4wZmJjZjg2ZTlj
ZGMzNGMwOWFkZjkxN2FiNjRmMDkxZjE1ZGQ2NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtNTI0
LDcgKzUyNCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdy
YXZpdHlFbnVtKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVuCiAgICAgZW5zdXJlTW9kZWwoY29u
dGV4dElkKS5zZXRWaWRlb0xheWVyR3Jhdml0eSgoTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2
aXR5KWdyYXZpdHkpOwogfQogICAgIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UpCiAgICAgICAgIHJldHVybjsK
</data>
<flag name="review"
          id="421835"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406465</attachid>
            <date>2020-08-12 11:21:31 -0700</date>
            <delta_ts>2020-08-12 13:55:41 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-215305-20200812112130.patch</filename>
            <type>text/plain</type>
            <size>54238</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzMzUzZmU1ZThjOTRh
NWQ1ZmNkOTgzNTc4YWNmOTQzYTIzM2M5Mi4uNjNiYmU1NWU2OGQ5MTE4ZGI5NTlkNWYwMGJiMzY1
ZmJkZTMyZmFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIwLTA4LTExICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IHRv
IHJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTMwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBXaGVuIGEgY29udGFpbmVy
IGVsZW1lbnQgZW50ZXJzIGZ1bGxzY3JlZW4gKHdpdGggdGhlIGZ1bGxzY3JlZW4gQVBJKSwgYSBk
ZXNjZW5kYW50CisgICAgICAgIHZpZGVvIGVsZW1lbnQgd2lsbCBlbnRlciB0aGUgdmlkZW8gZnVs
bHNjcmVlbiBzdGFuZGJ5IHN0YXRlIHNvIHRoYXQgaXQgY2FuIGVudGVyCisgICAgICAgIHBpY3R1
cmUtaW4tcGljdHVyZSBvbiBhcHBsaWNhdGlvbiBzdXNwZW5kIChyMjI2MjE3KS4gQnV0IHdlIGNh
bm5vdCByZXN0b3JlCisgICAgICAgIHRvIHRoYXQgc3RhdGUgZnJvbSB0aGUgcGljdHVyZS1pbi1w
aWN0dXJlIG1vZGUgd2hlbiB3ZSBjbGljayB0aGUgInJlc3RvcmUiIGJ1dHRvbgorICAgICAgICBv
biB0aGUgdG9wLXJpZ2h0IGNvcm5lciBvZiB0aGUgUGlQIHdpbmRvdy4gSW5zdGVhZCwgdGhlIHZp
ZGVvIGVsZW1lbnQgd2lsbCByZXR1cm4KKyAgICAgICAgdG8gdGhlIGlubGluZSBtb2RlLgorCisg
ICAgICAgIEhvd2V2ZXIsIHdoZW4gYSB2aWRlbyBlbGVtZW50IGVudGVycyB2aWRlbyBmdWxsc2Ny
ZWVuIGZpcnN0IGFuZCB0aGVuIGVudGVycworICAgICAgICBwaWN0dXJlLWluLXBpY3R1cmUsIHdl
IGNhbiBsZXQgdGhlIHZpZGVvIHJlc3RvcmUgdG8gZnVsbHNjcmVlbiBieSBjbGlja2luZyB0aGUK
KyAgICAgICAgInJlc3RvcmUiIGJ1dHRvbiBvbiB0aGUgdG9wLXJpZ2h0IGNvcm5lciBvZiB0aGUg
cGljdHVyZS1pbi1waWN0dXJlIHdpbmRvdy4KKworICAgICAgICBUaGUgaW5jb25zaXN0ZW50IGJl
aGF2aW9ycyBtYXkgY29uZnVzZSB1c2VycyB3aG8gYXJlIG5vdCBhd2FyZSBvZiB0aGUgZGlmZmVy
ZW5jZQorICAgICAgICBiZXR3ZWVuIHRoZSBmdWxsc2NyZWVuIEFQSSAob3IgZWxlbWVudCBmdWxs
c2NyZWVuKSBhbmQgdmlkZW8gZnVsbHNjcmVlbi4KKworICAgICAgICBUaGlzIHBhdGNoIGVuYWJs
ZXMgdGhlIHN1cHBvcnQgdG8gcmVzdG9yZSB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0
dXJlLWluLXBpY3R1cmUKKyAgICAgICAgbW9kZSBzbyB0aGF0IHVzZXJzIGNhbiBoYXZlIGEgY29u
c2lzdGVudCBleHBlcmllbmNlIG9uIGVsZW1lbnQgZnVsbHNjcmVlbiBhbmQKKyAgICAgICAgdmlk
ZW8gZnVsbHNjcmVlbi4KKworICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAg
ICAgICBFeHBvcnQgcmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KCkgc28gdGhhdCB3ZSBjYW4g
dXNlIGl0IGluIFdlYktpdCBjb2RlLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yVmlkZW9G
dWxsc2NyZWVuU3RhbmRieSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudDo6cHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIEFkZCB0aGUgaW50ZXJm
YWNlIHRvIHJlcXVlc3QgYSB2aWRlbyBlbGVtZW50IHRvIGJlIHByZXBhcmVkIGZvciB0aGUgdmlk
ZW8gZnVsbHNjcmVlbgorICAgICAgICBzdGFuZGJ5IHN0YXRlLgorCisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgQWRkIHBy
ZXBhcmVUb0V4aXRGdWxsc2NyZWVuKCkgYW5kIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUo
KS4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6aGFzVmlkZW9DaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50Ojp2aWRl
b0RpbWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVsQ2xpZW50OjpwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIFNvbWUg
bWlub3IgY2xlYW4tdXBzIGFuZCBhZGQgZnVuY3Rpb24gcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBp
Y3R1cmUoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVh
bnVwRnVsbHNjcmVlbik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpkaWRTdGFydFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJ
blBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUpOgorICAg
ICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxFbnRlclN0YW5kYnlGcm9t
UGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c2V0V2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUp
OiBEZWxldGVkLgorICAgICAgICBXaGVuIHdlIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZSwgd2Ug
bmVlZCB0byBzYXZlIHRoZSBzdGF0ZSBhbmQgYmUgcHJlcGFyZWQgdG8KKyAgICAgICAgcmVzdG9y
ZSB0byBlbGVtZW50IGZ1bGxzY3JlZW4gaWYgbmVlZGVkLgorCisgICAgICAgIEJlZm9yZSB3ZSBl
eGl0IHBpY3R1cmUtaW4tcGljdHVyZSwgaWYgdGhlICJyZXN0b3JlIiBidXR0b24gaXMgY2xpY2tl
ZCwgd2UgbmVlZAorICAgICAgICB0byBub3RpZnkgdGhlIGNsaWVudCB0byBwcmVwYXJlIGZvciB0
aGUgcGljdHVyZS1pbi1waWN0dXJlIHN0b3AsIGFuZCBjYWxsCisgICAgICAgIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUodHJ1ZSkg
d2hlbiB0aGUgY2xpZW50CisgICAgICAgIGlzIHJlYWR5LgorCisgICAgICAgIEJhc2VkIG9uIHRo
b3NlIGNoYW5nZXMsIGEgY2xpZW50IChlLmcuLCBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQpCisgICAgICAgIGNhbiBjb29yZGluYXRlIHdpdGgg
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB0byBpbXBsZW1lbnQgdGhlICJyZXN0b3JlIHRv
CisgICAgICAgIGVsZW1lbnQgZnVsbHNjcmVlbiIgZmVhdHVyZS4KKworICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgIChW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lu
bGluZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKTogRGVsZXRlZC4KKwogMjAyMC0wNy0zMSAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIHRleHQg
bGF5b3V0IGNvZGUgYSBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjM3OWJjMGI4MTcwNjJjMTM2Zjc1NDNhYjg2
YzE5ZmI4MWMzMWMyNy4uZmRiZDFhYzg5NGY5YTQ1NzgxMjMzMGQ4ZTBhNWI1YWE5Zjk0MmMzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMTIgQEAKKzIwMjAtMDgtMTEgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGhlIHN1cHBvcnQgdG8gcmV0dXJuIHRvIGVs
ZW1lbnQgZnVsbHNjcmVlbiBmcm9tIHBpY3R1cmUtaW4tcGljdHVyZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MzA1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgV0tGdWxsU2Ny
ZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudAorICAgICAgICB3aXRo
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudC4g
V2UgbmVlZCB0byBkbworICAgICAgICB0aGF0IGJlY2F1c2UgdGhlIGluc3RhbmNlIG9mIFdLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQKKyAgICAgICAg
d2lsbCBiZSBkZXN0cm95ZWQgYWZ0ZXIgdGhlIGNvbnRhaW5lciBlbGVtZW50IGV4aXRzIGZ1bGxz
Y3JlZW4gd2hpbGUgdGhlIHZpZGVvCisgICAgICAgIGVsZW1lbnQgZW50ZXJzIHBpY3R1cmUtaW4t
cGljdHVyZS4KKworICAgICAgICBUaGUgaW5zdGFuY2Ugb2YgV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50CisgICAgICAgIHdpbGwgYWx3YXlzIGV4
aXN0IHdoZW4gdGhlIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgaW5zdGFuY2UgaXMgYWxp
dmUsCisgICAgICAgIHNvIHRoYXQgaXQgY2FuIHJlY2VpdmUgY2FsbGJhY2tzIGZyb20gdGhlIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0IGluc3RhbmNlCisgICAgICAgIHRvIGltcGxlbWVu
dCB0aGUgInJldHVybiB0byBlbGVtZW50IGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBpY3R1
cmUiIGZlYXR1cmUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzdXBwb3J0cyB0aGUgZm9sbG93aW5n
IHRyYW5zaXRpb25zOgorICAgICAgICBlbGVtZW50IGZ1bGxzY3JlZW4gLT4gcGljdHVyZS1pbi1w
aWN0dXJlICh0aHJvdWdoIHVzZXIgZ2VzdHVyZXMpCisgICAgICAgIGVsZW1lbnQgZnVsbHNjcmVl
biAtPiBwaWN0dXJlLWluLXBpY3R1cmUgKHRocm91Z2ggdGhlIFBpUCBidXR0b24pCisgICAgICAg
IHBpY3R1cmUtaW4tcGljdHVyZSAtPiBlbGVtZW50IGZ1bGxzY3JlZW4gKHdoZW4gdGhlIHRhYiBp
cyB2aXNpYmxlKQorICAgICAgICBwaWN0dXJlLWluLXBpY3R1cmUgLT4gZWxlbWVudCBmdWxsc2Ny
ZWVuICh3aGVuIHRoZSB0YWIgaXMgaW52aXNpYmxlKQorICAgICAgICBwaWN0dXJlLWluLXBpY3R1
cmUgLT4gZWxlbWVudCBmdWxsc2NyZWVuICh3aGVuIHRoZSBicm93c2VyIGlzIGluIGJhY2tncm91
bmQpCisgICAgICAgIHBpY3R1cmUtaW4tcGljdHVyZSAtPiBpbmxpbmUgKHdoZW4gdGhlIGJyb3dz
ZXIgaXMgaW4gZm9yZWdyb3VuZCkKKyAgICAgICAgZXhpdCBwaWN0dXJlLWluLXBpY3R1cmUgd2hl
biB0aGUgYnJvd3NlciBpcyBpbiBiYWNrZ3JvdW5kCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKToK
KyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpwcmVwYXJlVG9F
eGl0RnVsbHNjcmVlbik6CisgICAgICAgIE5vdGlmeSBjbGllbnRzIHRvIHByZXBhcmUgZm9yIHRo
ZSBzdG9wIG9mIGZ1bGxzY3JlZW4vcGljdHVyZS1pbi1waWN0dXJlLgorICAgICAgICAoV2ViS2l0
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6Cisg
ICAgICAgIEZpeCBpc3N1ZXMgdGhhdCBpbmNyZWFzZSB0aGUgY2xpZW50IGNvdW50IHVubmVjZXNz
YXJpbHkuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJl
cGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgQ2FsbCBtX3BhZ2UtPmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSgpIGVhcmxpZXIuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKToKKyAgICAgICAg
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVs
bHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIE5vdGlmeSBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyIHRvIHByZXBhcmUgZm9yIGV4aXRpbmcgcGljdHVyZS1pbi1waWN0dXJlIG9yIHZp
ZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAgYW5kIHJlcG9ydCB0aGUgZGVzdGluYXRpb24gcmVjdGFu
Z2xlIG9mIHRoZSBleGl0IHBpY3R1cmUtaW4tcGljdHVyZSBvciB2aWRlbyBmdWxsc2NyZWVuIGFu
aW1hdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVl
c3RFbnRlckZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5Lmg6CisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIHJlcXVlc3RFbnRlckZ1bGxTY3Jl
ZW4oKSBzbyB0aGF0IHdlIGNhbiByZXF1ZXN0IGFuIGVsZW1lbnQgdG8gZW50ZXIgZnVsbHNjcmVl
bgorICAgICAgICBmcm9tIHRoZSBVSSBwcm9jZXNzIHNpZGUuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW06
CisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIGluaXRXaXRoV2ViVmlldzpd
KToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgZGVhbGxvY10pOgorICAg
ICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciB2aWRlb0NvbnRyb2xzTWFuYWdlckRp
ZENoYW5nZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBzZXRBbmlt
YXRpbmdWaWV3QWxwaGE6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
IF9jYW5jZWxBY3Rpb246XSk6CisgICAgICAgIChXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclZp
ZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50OjpzZXRQYXJlbnQpOiBEZWxldGVkLgorICAgICAgICAo
V0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6c2V0
SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OmludGVyZmFjZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIHdpbGxFbnRlclBpY3R1cmVJblBp
Y3R1cmVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIg
ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRnVsbFNj
cmVlblZpZXdDb250cm9sbGVyIGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6IERlbGV0
ZWQuCisgICAgICAgIE1pbm9yIGNsZWFuLXVwcyBhbmQgcmVtb3ZlIGNvZGUgcmVsYXRlZCB0byBX
S0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50LgorCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXJJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6c2V0UGFyZW50KToKKyAgICAgICAg
KFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6
c2V0SW50ZXJmYWNlKToKKyAgICAgICAgKFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6aW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBpbml0V2l0aFdlYlZpZXc6XSk6CisgICAgICAgICgt
W1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRp
YWxGcmFtZTpmaW5hbEZyYW1lOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyIHJlcXVlc3RFbnRlckZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfY29tcGxldGVkRXhpdEZ1bGxTY3JlZW5dKToKKyAg
ICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB2aWRlb0NvbnRyb2xzTWFuYWdl
ckRpZENoYW5nZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHdp
bGxFbnRlclBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlciBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZV0pOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHByZXBhcmVUb0V4aXRQaWN0
dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgQWRkIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCBhbmQgaW1wbGVtZW50IHRoZSBz
dXBwb3J0CisgICAgICAgIHRvICJyZXN0b3JlIGZ1bGxzY3JlZW4gZnJvbSBwaWN0dXJlLWluLXBp
Y3R1cmUiLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFu
YWdlcjo6cmVxdWVzdEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgdGhl
IGludGVyZmFjZSByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCkgYW5kIHRoZSBjb3JyZXNwb25kaW5n
IElQQyBtZXNzYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnByZXBh
cmVGb3JWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIEFkZCB0aGUgaW50ZXJmYWNlIHRvIHByZXBh
cmUgZm9yIHZpZGVvIGZ1bGxzY3JlZW4gc3RhbmRieS4gVGhlIHdlYiBwcm9jZXNzIGNhbgorICAg
ICAgICB1c2UgdGhpcyBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ciBpbnN0YW5jZSB0byBhdm9pZCB0aGUKKyAgICAgICAgc2NlbmFyaW8gdGhhdCBhbiBJUEMgbWVz
c2FnZSBjb21lcyBmcm9tIHRoZSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgYnV0CisgICAg
ICAgIHRoZSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIGluc3RhbmNlIGlzIG5vdCBjb25zdHJ1Y3Rl
ZCB5ZXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxs
c2NyZWVuV2lsbFJldHVyblRvSW5saW5lKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKTogRGVsZXRlZC4KKyAgICAg
ICAgUmVuYW1lIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIHRvIGZ1bGxzY3JlZW5XaWxs
UmV0dXJuVG9JbmxpbmUoKS4KKyAgICAgICAgSW4gdGhlIFVJIHByb2Nlc3Mgc2lkZSwgZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKCkgaXMgdXNlZCBieQorICAgICAgICBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkgdG8gbm90aWZ5IGFwcGxpY2F0aW9ucyByZWdhcmRpbmcgVUkKKyAgICAg
ICAgY2hhbmdlcyAoZS5nLiwgc3dpdGNoIGJyb3dzZXIgdGFicykuCisKIDIwMjAtMDctMzEgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gQWRkIEV4cGVy
aW1lbnRhbCBGZWF0dXJlIHByZWZlcmVuY2UgZm9yIFNXIFZQOQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVs
bHNjcmVlbk1hbmFnZXIuaAppbmRleCAwYzViMmVlN2E5OTkxN2MyNjdkMTIzMTJiOGRmN2U5NmQy
NDc3YWQwLi41ZTI0NTc5MmJlYzUxNzAyOTViNDE5YzE2YjA3ZDhiZmE3YmE1YmYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIEVuZm9yY2VJRnJhbWVBbGxvd0Z1bGxzY3JlZW5SZXF1aXJlbWVudCwKICAgICAg
ICAgRXhlbXB0SUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1lbnQsCiAgICAgfTsKLSAgICB2
b2lkIHJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiwgRnVsbHNjcmVlbkNoZWNr
VHlwZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCosIEZ1bGxzY3JlZW5DaGVja1R5cGUpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3aWxsRW50ZXJGdWxsc2NyZWVuKEVsZW1lbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggZjdhMmY4NmEyZjNlY2U5ZmZjN2UzZWVhZjY0OWI2OGU1YjI2NzliMy4u
MDhkZWIwN2RiYWYzMWI0NjMyMjI1NThmYzYzMGU3ZTJhN2JkMWE3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01OTU2LDcgKzU5NTYsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUp
CiAKICAgICBtX2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIG1vZGVdIHsK
ICAgICAgICAgaWYgKGRvY3VtZW50KCkuaGlkZGVuKCkpIHsKLSAgICAgICAgICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgIiAgcmV0dXJuaW5nIGJlY2F1c2UgZG9jdW1lbnQgaXMgaGlkZGVu
Iik7CisgICAgICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIgcmV0dXJuaW5nIGJl
Y2F1c2UgZG9jdW1lbnQgaXMgaGlkZGVuIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIApAQCAtNjAzMCw2ICs2MDMwLDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1
bGxzY3JlZW4oKQogICAgIH0KIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9y
VmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpCit7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5wcmVwYXJl
Rm9yVmlkZW9GdWxsc2NyZWVuKCk7CisjZW5kaWYKK30KKwogV0VCQ09SRV9FWFBPUlQgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KGJvb2wgdmFsdWUpCiB7
CiAgICAgQVNTRVJUKGlzPEhUTUxWaWRlb0VsZW1lbnQ+KCp0aGlzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDczMDhiYzBiZTlhODg4MjU2MTFkZWEwNDY3NDJk
ODgzNTIxN2M3YWQuLjY5NWVhNzBlZTc3NmQ0ZDU4OWNjNDA1Yjk5NDQzNTk0YjZjZTU0YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00MzUsNiArNDM1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBleGl0RnVsbHNjcmVlbigpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcHJlcGFyZUZvclZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlblN0YW5kYnkoYm9vbCk7CiAKICAgICBib29sIGhh
c0Nsb3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAppbmRleCBjMGEwZDMwYmNmZGYzZjQxY2YwZThkN2YzZGU0YzI0YzAxZGI2Nzk4Li4wZmZl
Y2UwZWM3Y2Y0M2EwYmMxYWRjNWY4Y2FhZjVlMjZjNjE2ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKQEAgLTM1NSw2ICszNTUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
VmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JWaWRl
b0Z1bGxzY3JlZW4oKSB7IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1
YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVt
ZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0
YW5kYnkpIHsgVU5VU0VEX1BBUkFNKHN0YW5kYnkpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFVw
UGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyLmgKaW5kZXggMzU0OGU1M2IzNzNiNGQ5OWQ3ODdhODk0NDJiM2MwOWI4ZDgy
ODY0YS4uYjEzZDE5YjNlNWNjZjFmNmQ3ZDI2M2MyZTMwZjdlN2Y4ZmQ4ZTg0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci5oCkBAIC00MSw3ICs0MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0
RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4o
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb0V4aXRGdWxsc2NyZWVuKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSA9IDA7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVu
TW9kZWwuaAppbmRleCBmZDIxNGM0NzZkYWVlZmJjNzg1OWE4OGNhODM1OTBkNjYyMWUxNzAwLi45
ZjhkZDA4ODc5M2FlZTBjODY3YjJlMTc2ZWFmNjQ3MWIwOWNhZGRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKQEAgLTc2
LDExICs3NiwxMiBAQCBwdWJsaWM6CiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQoKSA9IGRl
ZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSB7IH07Ci0gICAg
dmlydHVhbCB2b2lkIHZpZGVvRGltZW5zaW9uc0NoYW5nZWQoY29uc3QgRmxvYXRTaXplJikgeyB9
OworICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0NoYW5nZWQoYm9vbCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIHZpZGVvRGltZW5zaW9uc0NoYW5nZWQoY29uc3QgRmxvYXRTaXplJikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZh
aWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHByZXBh
cmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxFeGl0
UGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0UGljdHVyZUlu
UGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb2RlbERlc3Ryb3llZCgpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQuaAppbmRleCAyNGQxMzU4ZGU5YjI0YjMzYmIwZGM5Y2JlZTljZjAxODRl
YmNkMTU3Li44ZTQ0MTBmZDJjMTYzM2RmNGZlN2UyYzYwMmNkYzY3OWE0NDdmM2FjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQuaApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKICAgICBIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudE1vZGUubW9kZSgpOyB9CiAgICAgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJl
UGxheWJhY2soKSBjb25zdCB7IHJldHVybiBtX2FsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFj
azsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0b21hdGljYWxseVNob3dWaWRlb1Bp
Y3R1cmVJblBpY3R1cmUoKSBjb25zdDsKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZShXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOworICAgIHZvaWQgcHJl
cGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wKFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBj
YWxsYmFjayk7CiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsK
IApAQCAtMTQ2LDE3ICsxNDYsMTggQEAgcHVibGljOgogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5I
YW5kbGVyKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVl
bkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICopOwogICAgIGJvb2wgaXNQbGF5aW5nVmlk
ZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKEJPT0wpOworICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgd2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0dXJlKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRXaWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoQk9P
TCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIGNsZWFyTW9kZShIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIGJvb2wgaGFzTW9kZShIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkgY29uc3QgeyByZXR1
cm4gbV9jdXJyZW50TW9kZS5oYXNNb2RlKG1vZGUpOyB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpOwog
ICAgIFVJVmlld0NvbnRyb2xsZXIgKmZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcigpIGNvbnN0IHsg
cmV0dXJuIG1fdmlld0NvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBXZWJBVlBsYXllckxheWVyVmll
dyogcGxheWVyTGF5ZXJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXJMYXllclZpZXcuZ2V0
KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBpY3R1cmVJblBpY3R1cmVXYXNTdGFydGVk
V2hlbkVudGVyaW5nQmFja2dyb3VuZCgpIGNvbnN0OwotI2VuZGlmCiAKIHByb3RlY3RlZDoKICAg
ICBXRUJDT1JFX0VYUE9SVCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdChQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VBVktpdCYpOwpAQCAtMjE3LDkgKzIxOCwxNCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgYm9vbCBtX3N0YW5kYnkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90YXJnZXRTdGFuZGJ5IHsg
ZmFsc2UgfTsKIAorI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgYm9vbCBtX3dhaXRpbmdGb3JQ
cmVwYXJlZFRvRXhpdCB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1fc2hvdWxkSWdub3Jl
QVZLaXRDYWxsYmFja0Fib3V0RXhpdEZ1bGxzY3JlZW5SZWFzb24geyBmYWxzZSB9OwogICAgIGJv
b2wgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9leGl0
aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JlYWR5VG9TdG9wUGlj
dHVyZUluUGljdHVyZSB7IHRydWUgfTsKKyAgICBib29sIG1fd2lsbEVudGVyU3RhbmRieUZyb21Q
aWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bQppbmRleCAwMTAzZWU3NDRmOTE1ZWZkODEzYWFjNzFkOTZiZGY1NWNkMDZlN2ZjLi44ZTZkMzZi
NzhiODliNmQ3MDNlOGJmYjI4NWVjNjlhMWQ1M2Y2ZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tCkBAIC05NjksMTMgKzk2OSw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKICAgICAKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFBsYXll
ckNvbnRyb2xsZXI6bmlsXTsKLSAgICAKLSAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNQaWN0dXJl
SW5QaWN0dXJlKCkpIHsKLSAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcFBpY3R1
cmVJblBpY3R1cmVdOwogCi0gICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAg
ICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUo
KTsKLSAgICB9CisgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzUGljdHVyZUluUGljdHVyZSgpKQor
ICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wUGljdHVyZUluUGljdHVyZV07CiAK
ICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgW1ttX3Bs
YXllclZpZXdDb250cm9sbGVyIHZpZXddIGxheW91dElmTmVlZGVkXTsKQEAgLTEwMDIsNiArOTk4
LDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2Ny
ZWVuKCkKICAgICBbcGxheWVyQ29udHJvbGxlcigpIHNldEhhc0VuYWJsZWRWaWRlbzpmYWxzZV07
CiAgICAgW3BsYXllckNvbnRyb2xsZXIoKSBzZXRIYXNWaWRlbzpmYWxzZV07CiAKKyAgICBtX3dp
bGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgIGlmIChtX2V4
aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSBmYWxzZTsKKyAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAg
ICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOwor
ICAgIH0KKwogICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKICAgICAgICAgbV9m
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZENsZWFudXBGdWxsc2NyZWVuKCk7CiB9CkBAIC0x
MDY2LDExICsxMDY5LDE1IEBAIGJvb2wgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6Om1h
eUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5QaWN0dXJlKCkKICAgICByZXR1cm4gW3Bs
YXllckNvbnRyb2xsZXIoKSBpc1BsYXlpbmddICYmIChtX3N0YW5kYnkgfHwgbV9jdXJyZW50TW9k
ZS5pc0Z1bGxzY3JlZW4oKSkgJiYgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiB9CiAKLXZv
aWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZShXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit2b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3AoV1RG
OjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQogewogICAgIG1fcHJlcGFyZVRvSW5s
aW5lQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAgICBpZiAobV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIpCisgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7CiAgICAg
ICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoKTsKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPnByZXBhcmVUb0V4aXRG
dWxsc2NyZWVuKCk7CisgICAgICAgIGlmIChtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSkK
KyAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuV2lsbFJl
dHVyblRvSW5saW5lKCk7CisgICAgfQogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Ojp3aWxsU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKQEAgLTExMTgsNyArMTEyNSw2IEBA
IHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGlj
dHVyZSgpCiAgICAgfQogCiAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsK
LSAgICBtX3N0YW5kYnkgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTE0NCw2ICsxMTUw
LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BQaWN0dXJl
SW5QaWN0dXJlKCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Ojp3aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoJXApIiwgdGhpcyk7CiAKKyAgICBt
X2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKICAgICBtX3Nob3VsZFJldHVyblRvRnVs
bHNjcmVlbldoZW5TdG9wcGluZ1BpUCA9IGZhbHNlOwogCiAgICAgaWYgKG1fY3VycmVudE1vZGUu
aGFzRnVsbHNjcmVlbigpIHx8IG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1
cmVTdG9wKQpAQCAtMTE5MCw2ICsxMTk3LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRp
b25IYW5kbGVyKHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoQk9PTCByZXN0b3JlZCkpCiB7CiAg
ICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFy
ZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKCVwKSIsIHRoaXMp
OworCiAgICAgaWYgKG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQKSB7
CiAgICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFs
c2U7CiAgICAgICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9w
ID0gdHJ1ZTsKQEAgLTEyMDUsNyArMTIxMyw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBzdHJvbmdDb21wbGV0aW9uSGFuZGxl
ciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5kbGVyIGNvcHldKV0oYm9vbCByZXN0b3JlZCkgIHsK
KyAgICBwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3AoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpLCBzdHJvbmdDb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRp
b25IYW5kbGVyIGNvcHldKV0oYm9vbCByZXN0b3JlZCkgIHsKICAgICAgICAgTE9HKEZ1bGxzY3Jl
ZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBp
Y3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyIGxhbWJkYSglcCkgLSByZXN0b3JlZCglcyki
LCBwcm90ZWN0ZWRUaGlzLmdldCgpLCBib29sU3RyaW5nKHJlc3RvcmVkKSk7CiAgICAgICAgICgo
dm9pZCAoXikoQk9PTCkpc3Ryb25nQ29tcGxldGlvbkhhbmRsZXIuZ2V0KCkpKHJlc3RvcmVkKTsK
ICAgICB9KTsKQEAgLTE1ODAsNiArMTU4OCwyNiBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Ojppc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3QKICAg
ICByZXR1cm4gaGFzTW9kZShXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSAmJiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxh
eWluZ107CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5
VG9TdG9wUGljdHVyZUluUGljdHVyZShCT09MIHJlYWR5KQoreworICAgIGlmIChtX3JlYWR5VG9T
dG9wUGljdHVyZUluUGljdHVyZSA9PSByZWFkeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9y
ZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUgPSByZWFkeTsKKyAgICBpZiAobV9yZWFkeVRvU3Rv
cFBpY3R1cmVJblBpY3R1cmUgJiYgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAg
IG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5l
KCk7Cit9CisKK2Jvb2wgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxFbnRlclN0
YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSgpCit7CisgICAgcmV0dXJuIG1fd2lsbEVudGVyU3Rh
bmRieUZyb21QaWN0dXJlSW5QaWN0dXJlOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpzZXRXaWxsRW50ZXJTdGFuZGJ5RnJvbVBpY3R1cmVJblBpY3R1cmUoQk9PTCB2
YWx1ZSkKK3sKKyAgICBtX3dpbGxFbnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSA9IHZh
bHVlOworfQorCiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaXNQaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dGVkOwogCiB2b2lkIFdlYkNvcmU6OnNldFN1cHBvcnRzUGljdHVyZUluUGljdHVyZShib29sIGlz
U3VwcG9ydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggNDkyNWI1Njc2
ZGExOTc4NGJjMjIwNmI4NGUwOTU0YTZmYWE0ZDBmMy4uNGZjZDlhMmVmOTlmMDVhYjhkOGMzMjZh
MDI2MjMwNDQ5MmI4OGM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0x
MjgsNyArMTI4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZp
bmFsOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENs
ZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUoKSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmVUb0V4aXRGdWxsc2NyZWVuKCkgZmluYWwg
eyB9CisgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKIAogICAgIC8vIFZp
ZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50CiAgICAgdm9pZCBoYXNWaWRlb0NoYW5nZWQoYm9vbCkg
b3ZlcnJpZGU7CkBAIC0zNTksNyArMzYxLDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQogICAgIH0pOwogfQogCi12b2lkIFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVlbldp
bGxSZXR1cm5Ub0lubGluZSgpCiB7CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2Vi
VGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKCkgbXV0
YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IGU4ZDNmZTA1MzNmOGU5MTcwMmExYzBm
MzdmYTI2NGNhZmZkNTllNTAuLjI5Y2ZmMjMxYzY5M2M3YjUzNjY1ZjExYWM5MWVkZmM4MGZmNTdl
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0xMTEsNyArMTExLDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIHZvaWQgZGlkRXhpdEZ1
bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7
CisgICAgdm9pZCBwcmVwYXJlVG9FeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIHZvaWQgZnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmluYWw7CisgICAgdm9pZCBmdWxsc2NyZWVuV2ls
bFJldHVyblRvSW5saW5lKCkgZmluYWw7CiAKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqIG1fbWFuYWdlcjsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0PiBtX3Bs
YXliYWNrU2Vzc2lvbk1vZGVsOwpAQCAtMTg5LDYgKzE5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRWaWRlb0xheWVyR3Jhdml0eShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICAgICB2b2lkIGZ1bGxz
Y3JlZW5Nb2RlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lk
IGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
Zmllcik7CisgICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbW9ja1Bp
Y3R1cmVJblBpY3R1cmVXaW5kb3dTaXplIHsgRGVmYXVsdE1vY2tQaWN0dXJlSW5QaWN0dXJlV2lu
ZG93V2lkdGgsIERlZmF1bHRNb2NrUGljdHVyZUluUGljdHVyZVdpbmRvd0hlaWdodCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IGVkYWNjZTNjMGRhNTE5MGE2NjAyYmIxZmZlZWJmOGJl
ZWQ2Y2M1ZTAuLmRjNDNlZmYyYjM4NDBkZGFhMjRiNjg2YzhlMTRmZDQ3NGExYTg1NjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI3NCw2ICsyNzQsMTIgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgICAg
IG1fbWFuYWdlci0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKG1fY29udGV4dElkKTsKIH0K
IAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJu
VG9JbmxpbmUoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+ZnVs
bHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShtX2NvbnRleHRJZCk7Cit9CisKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTW9kZWxDb250ZXh0OjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4
dFVJRChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwg
U3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9tYW5hZ2VyKQpAQCAt
MjgyLDYgKzI4OCwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6cmVxdWVz
dFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQoQ29tcGxldAogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQsIGVtcHR5U3Ry
aW5nKCkpOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6cHJlcGFyZVRv
RXhpdEZ1bGxzY3JlZW4oKQoreworICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQor
ICAgICAgICBjbGllbnQtPnByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlKCk7Cit9CisKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0Ojp3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJl
KCkKIHsKICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKQEAgLTUxMiw3ICs1MjQs
MTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldp
dGhJRChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWQKICAgICBNRVNTQUdFX0NIRUNLKHZpZGVvTGF5
ZXJJRCk7CiAKICAgICBhdXRvJiBbbW9kZWwsIGludGVyZmFjZV0gPSBlbnN1cmVNb2RlbEFuZElu
dGVyZmFjZShjb250ZXh0SWQpOwotICAgIGFkZENsaWVudEZvckNvbnRleHQoY29udGV4dElkKTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChpbnRlcmZhY2UtPndpbGxFbnRlclN0
YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZSgpKQorICAgICAgICBpbnRlcmZhY2UtPnNldFdpbGxF
bnRlclN0YW5kYnlGcm9tUGljdHVyZUluUGljdHVyZShOTyk7CisgICAgZWxzZSBpZiAodmlkZW9G
dWxsc2NyZWVuTW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVQaWN0dXJlSW5QaWN0dXJlIHx8ICFzdGFuZGJ5KQorICAgICAgICBhZGRDbGllbnRGb3JDb250
ZXh0KGNvbnRleHRJZCk7CisjZW5kaWYKIAogICAgIGlmIChtX21vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKSB7CiAgICAgICAgIGlmICghdmlkZW9EaW1lbnNpb25zLmlzRW1wdHkoKSkK
QEAgLTY5Niw4ICs3MTMsNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y2xl
YW51cEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aQogCiB2b2lkIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3Jl
OjpJbnRSZWN0IGlubGluZVJlY3QpCiB7Ci0gICAgbV9wYWdlLT5mdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUoKTsKLQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIEludFJlY3QgaW5s
aW5lV2luZG93UmVjdDsKICAgICBtX3BhZ2UtPnJvb3RWaWV3VG9XaW5kb3coaW5saW5lUmVjdCwg
aW5saW5lV2luZG93UmVjdCk7CkBAIC04MDUsOSArODIwLDE0IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkCiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVu
TWF5UmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkKQoreworICAgIG1fcGFnZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Cit9CisK
K3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuV2lsbFJldHVyblRv
SW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKIHsKICAg
ICBib29sIGlzVmlld1Zpc2libGUgPSBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKTsKLSAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIGlzVmlld1Zpc2libGUpKTsKKyAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5XaWxsUmV0dXJu
VG9JbmxpbmUoY29udGV4dElkLCBpc1ZpZXdWaXNpYmxlKSk7CiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNw
cAppbmRleCA0NmYwMWZlZDFkNjBmNDk0MmQ5MTA3ODY5N2JlOWQwOTQ0ODNlOWNmLi5kNDgzNmYx
NjRkZjk0OWM5ZjY4Mzk1YzAzYjc4NTVjZmY1ODFmZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtOTIsNiAr
OTIsMTEgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzZXRBbmltYXRpbmdGdWxs
U2NyZWVuKGJvb2wgYW5pbWF0aW5nKQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxs
U2NyZWVuTWFuYWdlcjo6U2V0QW5pbWF0aW5nRnVsbFNjcmVlbihhbmltYXRpbmcpKTsKIH0KIAor
dm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCkK
K3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OlJlcXVl
c3RFbnRlckZ1bGxTY3JlZW4oKSk7Cit9CisKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OlJlcXVlc3RFeGl0RnVsbFNjcmVlbigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRl
eCBkZTFkMzMwN2UzYmU3M2Y3MTFkZTQ1OTViMTdmYWFhYzg4Njc5ZDQxLi4wMGQzZDBhYTIzZjQw
YjBiYjcxMjg4MjYzMmE0MTllODYwOGJhNjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC02OSw2ICs2OSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHdpbGxFeGl0RnVsbFNjcmVlbigpOwogICAgIHZvaWQgZGlkRXhpdEZ1
bGxTY3JlZW4oKTsKICAgICB2b2lkIHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCk7CisgICAg
dm9pZCByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCByZXF1ZXN0RXhpdEZ1bGxT
Y3JlZW4oKTsKICAgICB2b2lkIHNhdmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgcmVzdG9y
ZVNjcm9sbFBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaApp
bmRleCA5NWE5NTIwZjIzNTAyYTE2NjU1ZWU3Y2Y2NmU0N2QwYmFmM2M3YWM4Li5jNDE1Nzg1MTEx
MzNlNWMxMzUyYzE0Yzc2OTIzMDY0NzhhMWE2NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZp
ZXdDb250cm9sbGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IAogQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciA6IFVJVmlld0NvbnRyb2xs
ZXIKIEBwcm9wZXJ0eSAocmV0YWluLCBub25hdG9taWMpIGlkIHRhcmdldDsKLUBwcm9wZXJ0eSAo
YXNzaWduLCBub25hdG9taWMpIFNFTCBhY3Rpb247CitAcHJvcGVydHkgKGFzc2lnbiwgbm9uYXRv
bWljKSBTRUwgZXhpdEZ1bGxTY3JlZW5BY3Rpb247CiBAcHJvcGVydHkgKGNvcHksIG5vbmF0b21p
YykgTlNTdHJpbmcgKmxvY2F0aW9uOwogQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykgQk9P
TCBwcmVmZXJzU3RhdHVzQmFySGlkZGVuOwogQHByb3BlcnR5IChhc3NpZ24sIG5vbmF0b21pYykg
Qk9PTCBwcmVmZXJzSG9tZUluZGljYXRvckF1dG9IaWRkZW47CkBAIC00NSw2ICs0NSw3IEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAtICh2b2lkKXNob3dVSTsKIC0gKHZvaWQpaGlkZVVJOwog
LSAodm9pZCl2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZTsKKy0gKHZvaWQpc2V0QW5pbWF0
aW5nVmlld0FscGhhOihDR0Zsb2F0KWFscGhhOwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9F
TkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dL
RnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggNzhjMDAxNTJm
MWE0MzcwMDVjZDkyOTAzOThhN2ZjY2U4N2MxZjk4MC4uYWE2YzQwMjFmYzMzY2FmNmM0OTQ3OThi
N2VkMmQxZjc3NDQyMDdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIu
bW0KQEAgLTQ2LDEyICs0Niw2IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBhdXRvSGlk
ZURlbGF5ID0gNC4wOwogCiBAY2xhc3MgV0tGdWxsc2NyZWVuU3RhY2tWaWV3OwogCi1AaW50ZXJm
YWNlIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIChWaWRlb0Z1bGxzY3JlZW5DbGllbnRDYWxs
YmFja3MpCi0tICh2b2lkKXdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmU7Ci0tICh2b2lkKWRpZEVu
dGVyUGljdHVyZUluUGljdHVyZTsKLS0gKHZvaWQpZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1
cmU7Ci1AZW5kCi0KIGNsYXNzIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyUGxheWJhY2tTZXNz
aW9uTW9kZWxDbGllbnQgOiBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCB7CiBw
dWJsaWM6CiAgICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKnBh
cmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQpAQCAtODcsNDUgKzgxLDYgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8V2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ+IG1faW50
ZXJmYWNlOwogfTsKIAotY2xhc3MgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbENsaWVudCA6IFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IHsK
LSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICB2b2lkIHNldFBhcmVu
dChXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50
OyB9Ci0KLSAgICB2b2lkIHNldEludGVyZmFjZShXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdCogaW50ZXJmYWNlKQotICAgIHsKLSAgICAgICAgaWYgKG1faW50ZXJmYWNlID09
IGludGVyZmFjZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAobV9pbnRlcmZh
Y2UgJiYgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCi0gICAgICAgICAgICBt
X2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsK
LSAgICAgICAgbV9pbnRlcmZhY2UgPSBpbnRlcmZhY2U7Ci0gICAgICAgIGlmIChtX2ludGVyZmFj
ZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKSkKLSAgICAgICAgICAgIG1f
aW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgpLT5hZGRDbGllbnQoKnRoaXMpOwotICAg
IH0KLQotICAgIFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZh
Y2UoKSBjb25zdCB7IHJldHVybiBtX2ludGVyZmFjZS5nZXQoKTsgfQotCi0gICAgdm9pZCB3aWxs
RW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKLSAgICB7Ci0gICAgICAgIFttX3BhcmVudCB3
aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9Ci0KLSAgICB2b2lkIGRpZEVudGVyUGlj
dHVyZUluUGljdHVyZSgpIGZpbmFsCi0gICAgewotICAgICAgICBbbV9wYXJlbnQgZGlkRW50ZXJQ
aWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9Ci0KLSAgICB2b2lkIGZhaWxlZFRvRW50ZXJQaWN0dXJl
SW5QaWN0dXJlKCkgZmluYWwKLSAgICB7Ci0gICAgICAgIFttX3BhcmVudCBmYWlsZWRUb0VudGVy
UGljdHVyZUluUGljdHVyZV07Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFdLRnVsbFNjcmVlblZp
ZXdDb250cm9sbGVyICptX3BhcmVudCB7IG51bGxwdHIgfTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IG1faW50ZXJmYWNlOwotfTsKLQogI3ByYWdt
YSBtYXJrIC0gX1dLRXh0cmluc2ljQnV0dG9uCiAKIEBpbnRlcmZhY2UgX1dLRXh0cmluc2ljQnV0
dG9uIDogVUlCdXR0b24KQEAgLTE2NCw3ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0
cjxOU0xheW91dENvbnN0cmFpbnQ+IF90b3BDb25zdHJhaW50OwogICAgIFdlYktpdDo6RnVsbHNj
cmVlblRvdWNoU2VjaGV1cmlzdGljIF9zZWNoZXVyaXN0aWM7CiAgICAgV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudCBfcGxheWJhY2tDbGllbnQ7Ci0g
ICAgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCBf
dmlkZW9GdWxsc2NyZWVuQ2xpZW50OwogICAgIENHRmxvYXQgX25vblplcm9TdGF0dXNCYXJIZWln
aHQ7CiB9CiAKQEAgLTE4OCw3ICsxNDIsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICBzZWxmLl93ZWJWaWV3ID0gd2ViVmlldzsKIAogICAgIF9wbGF5YmFja0NsaWVu
dC5zZXRQYXJlbnQoc2VsZik7Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQo
c2VsZik7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTIwMCw4ICsxNTMsNiBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIF9wbGF5YmFja0NsaWVudC5zZXRQYXJl
bnQobnVsbHB0cik7CiAgICAgX3BsYXliYWNrQ2xpZW50LnNldEludGVyZmFjZShudWxscHRyKTsK
LSAgICBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LnNldFBhcmVudChudWxscHRyKTsKLSAgICBfdmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZShudWxscHRyKTsKIAogICAgIFtfdGFyZ2V0
IHJlbGVhc2VdOwogICAgIFtfbG9jYXRpb24gcmVsZWFzZV07CkBAIC0yNjEsNyArMjEyLDYgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgYXV0byogcGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlID0gdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlID8gJnZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZS0+cGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKCkgOiBudWxscHRyOwogCiAgICAg
X3BsYXliYWNrQ2xpZW50LnNldEludGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpOwot
ICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQuc2V0SW50ZXJmYWNlKHZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZSk7CiAKICAgICBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbCogcGxheWJhY2tT
ZXNzaW9uTW9kZWwgPSBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPyBwbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2UtPnBsYXliYWNrU2Vzc2lvbk1vZGVsKCkgOiBudWxscHRyOwogICAgIHNlbGYucGxh
eWluZyA9IHBsYXliYWNrU2Vzc2lvbk1vZGVsID8gcGxheWJhY2tTZXNzaW9uTW9kZWwtPmlzUGxh
eWluZygpIDogTk87CkBAIC0yNzIsNiArMjIyLDEzIEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIFtfcGlwQnV0dG9uIHNldEhpZGRlbjohaXNQaVBFbmFibGVkIHx8ICFp
c1BpUFN1cHBvcnRlZF07CiB9CiAKKy0gKHZvaWQpc2V0QW5pbWF0aW5nVmlld0FscGhhOihDR0Zs
b2F0KWFscGhhCit7CisgICAgW1VJVmlldyBhbmltYXRlV2l0aER1cmF0aW9uOnBpcEhpZGVBbmlt
YXRpb25EdXJhdGlvbiBhbmltYXRpb25zOl57CisgICAgICAgIF9hbmltYXRpbmdWaWV3LmdldCgp
LmFscGhhID0gYWxwaGE7CisgICAgfV07Cit9CisKIC0gKHZvaWQpc2V0UHJlZmVyc1N0YXR1c0Jh
ckhpZGRlbjooQk9PTCl2YWx1ZQogewogICAgIF9wcmVmZXJzU3RhdHVzQmFySGlkZGVuID0gdmFs
dWU7CkBAIC0zMzAsMzMgKzI4Nyw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgICAgICBbc2VsZiBzaG93VUldOwogfQogCi0tICh2b2lkKXdpbGxFbnRlclBpY3R1cmVJ
blBpY3R1cmUKLXsKLSAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmludGVyZmFjZSgpOwotICAgIGlmICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2UtPnBpY3R1cmVJ
blBpY3R1cmVXYXNTdGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBbVUlWaWV3IGFuaW1hdGVXaXRoRHVyYXRpb246cGlwSGlkZUFuaW1hdGlvbkR1
cmF0aW9uIGFuaW1hdGlvbnM6XnsKLSAgICAgICAgX2FuaW1hdGluZ1ZpZXcuZ2V0KCkuYWxwaGEg
PSAwOwotICAgIH1dOwotfQotCi0tICh2b2lkKWRpZEVudGVyUGljdHVyZUluUGljdHVyZQotewot
ICAgIFtzZWxmIF9jYW5jZWxBY3Rpb246c2VsZl07Ci19Ci0KLS0gKHZvaWQpZmFpbGVkVG9FbnRl
clBpY3R1cmVJblBpY3R1cmUKLXsKLSAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50LmludGVyZmFjZSgpOwotICAgIGlmICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2Ut
PnBpY3R1cmVJblBpY3R1cmVXYXNTdGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBbVUlWaWV3IGFuaW1hdGVXaXRoRHVyYXRpb246cGlwSGlkZUFu
aW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbnM6XnsKLSAgICAgICAgX2FuaW1hdGluZ1ZpZXcuZ2V0
KCkuYWxwaGEgPSAxOwotICAgIH1dOwotfQotCiAjcHJhZ21hIG1hcmsgLSBVSVZpZXdDb250cm9s
bGVyIE92ZXJyaWRlcwogCiAtICh2b2lkKWxvYWRWaWV3CkBAIC01MDMsNyArNDMzLDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKHZvaWQpX2NhbmNlbEFjdGlvbjoo
aWQpc2VuZGVyCiB7Ci0gICAgW1tzZWxmIHRhcmdldF0gcGVyZm9ybVNlbGVjdG9yOltzZWxmIGFj
dGlvbl1dOworICAgIFtbc2VsZiB0YXJnZXRdIHBlcmZvcm1TZWxlY3Rvcjpbc2VsZiBleGl0RnVs
bFNjcmVlbkFjdGlvbl1dOwogfQogCiAtICh2b2lkKV90b2dnbGVQaVBBY3Rpb246KGlkKXNlbmRl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oCmluZGV4IDMx
ZWM4MWM4NzBmNDBlZGZlY2FiOGIzOGFmNzM1MDBiY2ZkODRkN2IuLmZkMzk5YTBhMDczMmZmMTE4
NTQ5YTEyZmY4ZTRlNjQyZWY3MzQ5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLmgKQEAgLTM2LDYgKzM2LDcgQEAKIC0gKGlkKWluaXRXaXRoV2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpZW50ZXJGdWxsU2NyZWVuOwogLSAodm9p
ZCliZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJh
bWUgZmluYWxGcmFtZTooQ0dSZWN0KWZpbmFsRnJhbWU7CistICh2b2lkKXJlcXVlc3RFbnRlckZ1
bGxTY3JlZW47CiAtICh2b2lkKXJlcXVlc3RFeGl0RnVsbFNjcmVlbjsKIC0gKHZvaWQpZXhpdEZ1
bGxTY3JlZW47CiAtICh2b2lkKWJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihD
R1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHUmVjdClmaW5hbEZyYW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxs
c2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KaW5kZXggNDZiY2U2YWNk
YTRlMTUzOTEyZGZiMjFjMWU1NjZkNDg0M2JmM2MxZC4uNjg5OTQzYjRmNmY4M2FhMzUyMzJmZmNm
YjEyNGZiODhhNDE1MTExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVySU9TLm1tCkBAIC00MjQsNiArNDI0LDY1IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRl
cnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKICNwcmFnbWEgbWFyayAtCiAKK0BpbnRl
cmZhY2UgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVuQ2xpZW50
Q2FsbGJhY2tzKQorLSAodm9pZCl3aWxsRW50ZXJQaWN0dXJlSW5QaWN0dXJlOworLSAodm9pZClk
aWRFbnRlclBpY3R1cmVJblBpY3R1cmU7CistICh2b2lkKWZhaWxlZFRvRW50ZXJQaWN0dXJlSW5Q
aWN0dXJlOworLSAodm9pZClwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZTsKKy0gKHZvaWQp
ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmU7CitAZW5kCisKK2NsYXNzIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENsaWVudCA6IFdlYkNvcmU6OlZpZGVvRnVs
bHNjcmVlbk1vZGVsQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICB2b2lkIHNldFBhcmVudChXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpwYXJl
bnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KKworICAgIHZvaWQgc2V0SW50ZXJmYWNlKFdlYkNv
cmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KiBpbnRlcmZhY2UpCisgICAgeworICAg
ICAgICBpZiAobV9pbnRlcmZhY2UgPT0gaW50ZXJmYWNlKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGlmIChtX2ludGVyZmFjZSAmJiBtX2ludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVu
TW9kZWwoKSkKKyAgICAgICAgICAgIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5Nb2RlbCgp
LT5yZW1vdmVDbGllbnQoKnRoaXMpOworICAgICAgICBtX2ludGVyZmFjZSA9IGludGVyZmFjZTsK
KyAgICAgICAgaWYgKG1faW50ZXJmYWNlICYmIG1faW50ZXJmYWNlLT52aWRlb0Z1bGxzY3JlZW5N
b2RlbCgpKQorICAgICAgICAgICAgbV9pbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkt
PmFkZENsaWVudCgqdGhpcyk7CisgICAgfQorCisgICAgV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQqIGludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJmYWNlLmdl
dCgpOyB9CisKKyAgICB2b2lkIHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAorICAg
IHsKKyAgICAgICAgW21fcGFyZW50IHdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmVdOworICAgIH0K
KworICAgIHZvaWQgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKKyAgICB7CisgICAg
ICAgIFttX3BhcmVudCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmVdOworICAgIH0KKworICAgIHZv
aWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbAorICAgIHsKKyAgICAgICAg
W21fcGFyZW50IGZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlXTsKKyAgICB9CisKKyAgICB2
b2lkIHByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWwKKyAgICB7CisgICAgICAg
IFttX3BhcmVudCBwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZV07CisgICAgfQorCisgICAg
dm9pZCBkaWRFeGl0UGljdHVyZUluUGljdHVyZSgpIGZpbmFsCisgICAgeworICAgICAgICBbbV9w
YXJlbnQgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmVdOworICAgIH0KKworcHJpdmF0ZToKKyAgICBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICptX3BhcmVudCB7IG51bGxwdHIgfTsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IG1faW50ZXJmYWNl
OworfTsKKworI3ByYWdtYSBtYXJrIC0KKwogQGltcGxlbWVudGF0aW9uIFdLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIgewogICAgIFJldGFpblB0cjxXS0Z1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXc+IF93ZWJWaWV3UGxhY2Vob2xkZXI7CiAKQEAgLTQ0MSw2ICs1MDAsMTAgQEAgc3RhdGljIGNv
bnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICBSZXRhaW5Q
dHI8VUlQaW5jaEdlc3R1cmVSZWNvZ25pemVyPiBfaW50ZXJhY3RpdmVQaW5jaERpc21pc3NHZXN0
dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuSW50ZXJhY3RpdmVUcmFu
c2l0aW9uPiBfaW50ZXJhY3RpdmVEaXNtaXNzVHJhbnNpdGlvbkNvb3JkaW5hdG9yOwogCisgICAg
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50IF92
aWRlb0Z1bGxzY3JlZW5DbGllbnQ7CisgICAgQk9PTCBfaW5QaWN0dXJlSW5QaWN0dXJlOworICAg
IEJPT0wgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlOworCiAgICAgQ0dS
ZWN0IF9pbml0aWFsRnJhbWU7CiAgICAgQ0dSZWN0IF9maW5hbEZyYW1lOwogCkBAIC00NDgsNiAr
NTExLDggQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlvbiA9
IDAuMjsKICAgICBCT09MIF9FVk9yZ2FuaXphdGlvbk5hbWVJc1ZhbGlkOwogICAgIEJPT0wgX2lu
SW50ZXJhY3RpdmVEaXNtaXNzOwogICAgIEJPT0wgX2V4aXRSZXF1ZXN0ZWQ7CisgICAgQk9PTCBf
ZW50ZXJSZXF1ZXN0ZWQ7CisgICAgQk9PTCBfZXhpdGluZ0Z1bGxTY3JlZW47CiAKICAgICBSZXRh
aW5QdHI8aWQ+IF9ub3RpZmljYXRpb25MaXN0ZW5lcjsKIH0KQEAgLTQ2MCw2ICs1MjUsNyBAQCBz
dGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAg
ICAgICByZXR1cm4gbmlsOwogCiAgICAgc2VsZi5fd2ViVmlldyA9IHdlYlZpZXc7CisgICAgX3Zp
ZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRQYXJlbnQoc2VsZik7CiAKICAgICByZXR1cm4gc2VsZjsK
IH0KQEAgLTQ2OSw2ICs1MzUsOSBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1h
dGlvbkR1cmF0aW9uID0gMC4yOwogICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1S
ZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZl07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKIAorICAgIF92aWRlb0Z1bGxzY3JlZW5D
bGllbnQuc2V0SW50ZXJmYWNlKG51bGxwdHIpOworICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQu
c2V0UGFyZW50KG51bGxwdHIpOworCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCkBAIC01MjQs
NyArNTkzLDcgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtBbmltYXRpb25EdXJhdGlv
biA9IDAuMjsKICAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRUcmFuc2l0aW9uaW5n
RGVsZWdhdGU6c2VsZl07CiAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0TW9kYWxQ
cmVzZW50YXRpb25DYXB0dXJlc1N0YXR1c0JhckFwcGVhcmFuY2U6WUVTXTsKICAgICBbX2Z1bGxz
Y3JlZW5WaWV3Q29udHJvbGxlciBzZXRUYXJnZXQ6c2VsZl07Ci0gICAgW19mdWxsc2NyZWVuVmll
d0NvbnRyb2xsZXIgc2V0QWN0aW9uOkBzZWxlY3RvcihyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pXTsK
KyAgICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRFeGl0RnVsbFNjcmVlbkFjdGlvbjpA
c2VsZWN0b3IocmVxdWVzdEV4aXRGdWxsU2NyZWVuKV07CiAgICAgX2Z1bGxzY3JlZW5WaWV3Q29u
dHJvbGxlci5nZXQoKS52aWV3LmZyYW1lID0gX3Jvb3RWaWV3Q29udHJvbGxlci5nZXQoKS52aWV3
LmJvdW5kczsKICAgICBbc2VsZiBfdXBkYXRlTG9jYXRpb25JbmZvXTsKIApAQCAtNjUyLDYgKzcy
MSwxNyBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0g
MC4yOwogICAgICAgICAgICAgbWFuYWdlci0+ZGlkRW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgICAg
ICAgICBtYW5hZ2VyLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICAgICAgICAg
IHBhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOworCisgICAgICAgICAg
ICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFu
YWdlcigpOworICAgICAgICAgICAgYXV0byogdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlID0gdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlciA/IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNvbnRyb2xzTWFu
YWdlckludGVyZmFjZSgpIDogbnVsbHB0cjsKKyAgICAgICAgICAgIGlmIChfcmV0dXJuVG9GdWxs
c2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQodmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICBfcmV0dXJuVG9GdWxsc2Ny
ZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUgPSBOTzsKKyAgICAgICAgICAgICAgICBpZiAodmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlKQorICAgICAgICAgICAgICAgICAgICB2aWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UtPnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZShZRVMpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5zZXRJbnRl
cmZhY2UodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKTsKKwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKQEAgLTY2MCw2ICs3NDAsMTkgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVy
dmFsIGtBbmltYXRpb25EdXJhdGlvbiA9IDAuMjsKICAgICB9XTsKIH0KIAorLSAodm9pZClyZXF1
ZXN0RW50ZXJGdWxsU2NyZWVuCit7CisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgIT0gV2ViS2l0
OjpOb3RJbkZ1bGxTY3JlZW4pCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBtYW5h
Z2VyID0gc2VsZi5fbWFuYWdlcikgeworICAgICAgICBtYW5hZ2VyLT5yZXF1ZXN0RW50ZXJGdWxs
U2NyZWVuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKwogLSAodm9pZClyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4KIHsKICAgICBpZiAoX2Z1
bGxTY3JlZW5TdGF0ZSAhPSBXZWJLaXQ6OkluRnVsbFNjcmVlbikgewpAQCAtNjY5LDYgKzc2Miw3
IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7
CiAKICAgICBpZiAoYXV0byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXIpIHsKICAgICAgICAgbWFu
YWdlci0+cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CisgICAgICAgIF9leGl0aW5nRnVsbFNjcmVl
biA9IFlFUzsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzcwLDYgKzg2NCwxNiBAQCBz
dGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogICAg
ICAgICAgICAgcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAgICAg
ICAgICAgICBwYWdlLT5zZXROZWVkc0RPTVdpbmRvd1Jlc2l6ZUV2ZW50KCk7CiAgICAgICAgIH0K
KworICAgICAgICBpZiAoIV9pblBpY3R1cmVJblBpY3R1cmUpCisgICAgICAgICAgICBfdmlkZW9G
dWxsc2NyZWVuQ2xpZW50LnNldEludGVyZmFjZShudWxscHRyKTsKKworICAgICAgICBfZXhpdFJl
cXVlc3RlZCA9IE5POworICAgICAgICBfZXhpdGluZ0Z1bGxTY3JlZW4gPSBOTzsKKyAgICAgICAg
aWYgKF9lbnRlclJlcXVlc3RlZCkgeworICAgICAgICAgICAgX2VudGVyUmVxdWVzdGVkID0gTk87
CisgICAgICAgICAgICBbc2VsZiByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuXTsKKyAgICAgICAgfQog
ICAgIH0pOwogCiAgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKQEAg
LTc3OSw3ICs4ODMsNiBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1
cmF0aW9uID0gMC4yOwogCiAgICAgW19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0UHJlZmVy
c1N0YXR1c0JhckhpZGRlbjpZRVNdOwogICAgIF9mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgPSBu
aWw7Ci0gICAgX2V4aXRSZXF1ZXN0ZWQgPSBOTzsKIH0KIAogLSAodm9pZCljbG9zZQpAQCAtNzk4
LDYgKzkwMSwxMSBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0
aW9uID0gMC4yOwogewogICAgIGlmIChfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyKQogICAgICAg
ICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5n
ZV07CisKKyAgICBhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAgYXV0byog
dmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IHBhZ2UgPyBwYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyKCkgOiBudWxscHRyOworICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01h
bmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5z
ZXRJbnRlcmZhY2UodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKTsKIH0KIAogLSAodm9pZClwbGFj
ZWhvbGRlcldpbGxNb3ZlVG9TdXBlcnZpZXc6KFVJVmlldyAqKXN1cGVydmlldwpAQCAtODExLDYg
KzkxOSw1MyBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9u
ID0gMC4yOwogICAgIH0pOwogfQogCistICh2b2lkKXdpbGxFbnRlclBpY3R1cmVJblBpY3R1cmUK
K3sKKyAgICBhdXRvKiBpbnRlcmZhY2UgPSBfdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmludGVyZmFj
ZSgpOworICAgIGlmICghaW50ZXJmYWNlIHx8ICFpbnRlcmZhY2UtPnBpY3R1cmVJblBpY3R1cmVX
YXNTdGFydGVkV2hlbkVudGVyaW5nQmFja2dyb3VuZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBbX2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlciBzZXRBbmltYXRpbmdWaWV3QWxwaGE6MF07Cit9
CisKKy0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlCit7CisgICAgX2luUGljdHVyZUlu
UGljdHVyZSA9IFlFUzsKKyAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOworfQorCist
ICh2b2lkKWZhaWxlZFRvRW50ZXJQaWN0dXJlSW5QaWN0dXJlCit7CisgICAgYXV0byogaW50ZXJm
YWNlID0gX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC5pbnRlcmZhY2UoKTsKKyAgICBpZiAoIWludGVy
ZmFjZSB8fCAhaW50ZXJmYWNlLT5waWN0dXJlSW5QaWN0dXJlV2FzU3RhcnRlZFdoZW5FbnRlcmlu
Z0JhY2tncm91bmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW19mdWxsc2NyZWVuVmlld0Nv
bnRyb2xsZXIgc2V0QW5pbWF0aW5nVmlld0FscGhhOjFdOworfQorCistICh2b2lkKXByZXBhcmVU
b0V4aXRQaWN0dXJlSW5QaWN0dXJlCit7CisgICAgYXV0byogaW50ZXJmYWNlID0gX3ZpZGVvRnVs
bHNjcmVlbkNsaWVudC5pbnRlcmZhY2UoKTsKKyAgICBpZiAoIWludGVyZmFjZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaW50ZXJmYWNlLT5zZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUo
Tk8pOworICAgIGludGVyZmFjZS0+c2V0V2lsbEVudGVyU3RhbmRieUZyb21QaWN0dXJlSW5QaWN0
dXJlKFlFUyk7CisgICAgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0g
WUVTOworCisgICAgaWYgKCFfZXhpdGluZ0Z1bGxTY3JlZW4pCisgICAgICAgIFtzZWxmIHJlcXVl
c3RFbnRlckZ1bGxTY3JlZW5dOworICAgIGVsc2UKKyAgICAgICAgX2VudGVyUmVxdWVzdGVkID0g
WUVTOworfQorCistICh2b2lkKWRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlCit7CisgICAgX2luUGlj
dHVyZUluUGljdHVyZSA9IE5POworICAgIGlmICghX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0
dXJlSW5QaWN0dXJlICYmICFbc2VsZiBpc0Z1bGxTY3JlZW5dKQorICAgICAgICBfdmlkZW9GdWxs
c2NyZWVuQ2xpZW50LnNldEludGVyZmFjZShudWxscHRyKTsKK30KKwogI3ByYWdtYSBtYXJrIC0K
ICNwcmFnbWEgbWFyayBVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwCmluZGV4IDJmMmI2ZWNjMjdjMjRkNGViY2M2YjY4ZDQzOWNhNzY3N2Q5Nzc2YWIu
LmRmYTQzNzc4MDgyZTEyZWE0ZmNjNDRmYzFlMjM2MjQ1MjJlZmZiMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxh
eWVyQmFja2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNh
dG9yLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIuaCIKQEAgLTEzNiw2ICsxMzcsMTIgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQog
ICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZWxlbWVudCA9IGVsZW1l
bnQ7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQorICAgIGlmIChhdXRvKiBjdXJyZW50UGxheWJh
Y2tDb250cm9sc0VsZW1lbnQgPSBtX3BhZ2UtPnBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKS5jdXJy
ZW50UGxheWJhY2tDb250cm9sc0VsZW1lbnQoKSkKKyAgICAgICAgY3VycmVudFBsYXliYWNrQ29u
dHJvbHNFbGVtZW50LT5wcmVwYXJlRm9yVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpOworI2VuZGlm
CisKICAgICBtX2luaXRpYWxGcmFtZSA9IHNjcmVlblJlY3RPZkNvbnRlbnRzKG1fZWxlbWVudC5n
ZXQoKSk7CiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoKS5lbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fcGFnZS5nZXQoKSwgZWxlbWVudCk7CiB9CkBAIC0yMTcs
NiArMjI0LDE2IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnNldEFuaW1hdGluZ0Z1bGxT
Y3JlZW4oYm9vbCBhbmltYXRpbmcpCiAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLmZ1bGxzY3Jl
ZW5NYW5hZ2VyKCkuc2V0QW5pbWF0aW5nRnVsbHNjcmVlbihhbmltYXRpbmcpOwogfQogCit2b2lk
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBB
U1NFUlQobV9lbGVtZW50KTsKKyAgICBpZiAoIW1fZWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihXZWJD
b3JlOjpQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS5m
dWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudChtX2VsZW1lbnQu
Z2V0KCksIEZ1bGxzY3JlZW5NYW5hZ2VyOjpFeGVtcHRJRnJhbWVBbGxvd0Z1bGxzY3JlZW5SZXF1
aXJlbWVudCk7Cit9CisKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnJlcXVlc3RFeGl0RnVs
bFNjcmVlbigpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApp
bmRleCA5MTIwYWM5MGM3N2ZkYWIyMDJlMjY3NDk4YTAyMTA3YWEwMTY1ODY1Li4wMWZkZjdmZWRi
NmNmYmU2YTgwNjIyY2FjNjRhNmZjZTVlZGY4NDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKQEAg
LTc3LDYgKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0UElQU3RhbmRieUVsZW1lbnQo
V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopOwogCiAgICAgdm9pZCBzZXRBbmltYXRpbmdGdWxs
U2NyZWVuKGJvb2wpOworICAgIHZvaWQgcmVxdWVzdEVudGVyRnVsbFNjcmVlbigpOwogICAgIHZv
aWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBzYXZlU2Nyb2xsUG9zaXRpb24o
KTsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBiNjlhZWNlYzZiMDFiYWY5MWYyNmMxYTdhOTM2YWM5
Nzc2Yjc4YmYyLi5iZTUwZDZjMzQ4ZDA4Mjc2OTI3NGZkMWNmZDcxYzBkNTYzN2NkYzlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjIsNiArMjIsNyBAQAog
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogbWVzc2FnZXMgLT4gV2ViRnVsbFNjcmVlbk1h
bmFnZXIgTGVnYWN5UmVjZWl2ZXIgeworICAgIFJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKQogICAg
IFJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiAgICAgV2lsbEVudGVyRnVsbFNjcmVlbigpCiAgICAg
RGlkRW50ZXJGdWxsU2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZWZjMDAzYmQw
MTU5MTAwMDgyZGUzY2VmMWY2MDlmYTUyMjUxY2E1YS4uNDU5ZDVkYjk3MmRiODdiY2JhOGQ1ZWRm
NDU4YzkzZWU0NDcxNDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk0MCw2ICs5NDAs
MTEgQEAgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmIHAKIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByZXBhcmVGb3JWaWRlb0Z1bGxz
Y3JlZW4oKQoreworICAgIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7Cit9CisKIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICByZXR1cm4gbV9wYWdl
LnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihtb2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCBlNzVmNDg4NTJiZmEwNmIxYWQ0MGUzYmJhMWZhM2NjM2Uz
ZjQxYThlLi4xNTg4OWNjYTJjODEyZmRlN2M5OTgwNmE1MTExMjAzYzg4ZDAyNTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yNjQsNiArMjY0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgcHJlcGFyZUZvclZpZGVv
RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsK
ICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGZpbmFsOwogICAgIHZv
aWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIuaAppbmRleCBiOGFlNjdjYTQ5ODE2ZjZlMWYxM2Y5Zjg5NWJkZjU1ZDcyNTVmNjk4Li5l
ODIzZDIwYzRkMWI5MjQ0YTJlY2ViYjljMzkxZDVhZjM3MDJkNTQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
QEAgLTE1NCw3ICsxNTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyRnJh
bWVGZW5jZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0
UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpOwogICAgIHZvaWQgc2V0Vmlk
ZW9MYXllckdyYXZpdHlFbnVtKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCB1bnNp
Z25lZCBncmF2aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBpc1BhZ2VWaXNpYmxlKTsK
KyAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIsIGJvb2wgaXNQYWdlVmlzaWJsZSk7CiAgICAgdm9pZCByZXF1ZXN0Um91
dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllciwgTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RSb3V0ZVNoYXJp
bmdQb2xpY3lBbmRDb250ZXh0VUlEQXN5bmNSZXBseSYmKTsKIAogICAgIFdlYlBhZ2UqIG1fcGFn
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTNmM2MzNDY3ZWExNzcw
Y2RmZDQ4MGI3YTAzMDAxMzI1MTY5ZmVmZi4uMDc2ZmZmNTc3NjFlNTk3NDRhY2ViODdkNGRhMzY1
MWMyNWFjMGI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTM0LDcg
KzM0LDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAgICAgU2V0Vmlk
ZW9MYXllckZyYW1lRmVuY2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQg
ZmVuY2VQb3J0KQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShXZWJLaXQ6OlBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgdW5zaWduZWQgZ3Jhdml0eSkKICAg
ICBGdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQotICAgIEZ1bGxzY3JlZW5NYXlSZXR1
cm5Ub0lubGluZShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQorICAgIEZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9Jbmxp
bmUoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJv
b2wgaXNQYWdlVmlzaWJsZSkKICAgICBSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4
dFVJRChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5n
UG9saWN5LCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQpIEFzeW5jCiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW0KaW5kZXggYjZiNjljYzQyNGJiOWVjNmMxZGFkNWVkZTJiNzE4YTE4ZjA0MzlhMy4u
MGZiY2Y4NmU5Y2RjMzRjMDlhZGY5MTdhYjY0ZjA5MWYxNWRkNjY2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KQEAgLTUyNCw3ICs1MjQsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZp
ZGVvTGF5ZXJHcmF2aXR5RW51bShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbgogICAgIGVuc3Vy
ZU1vZGVsKGNvbnRleHRJZCkuc2V0VmlkZW9MYXllckdyYXZpdHkoKE1lZGlhUGxheWVyRW51bXM6
OlZpZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KICAgICAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQordm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQogewogICAg
IGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>