<?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>196284</bug_id>
          
          <creation_ts>2019-03-26 19:12:37 -0700</creation_ts>
          <short_desc>[Cocoa] Add new API around WKWebpagePreferences in WKNavigationDelegate and WKWebViewConfiguration</short_desc>
          <delta_ts>2019-04-02 22:02:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195989</dependson>
    
    <dependson>196173</dependson>
          <blocked>196005</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1521590</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-26 19:12:37 -0700</bug_when>
    <thetext>More WIP towards &lt;rdar://problem/47228232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521594</commentid>
    <comment_count>1</comment_count>
      <attachid>366042</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-26 19:50:18 -0700</bug_when>
    <thetext>Created attachment 366042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522619</commentid>
    <comment_count>2</comment_count>
      <attachid>366313</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-29 15:23:34 -0700</bug_when>
    <thetext>Created attachment 366313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523078</commentid>
    <comment_count>3</comment_count>
      <attachid>366313</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-04-01 14:55:43 -0700</bug_when>
    <thetext>Comment on attachment 366313
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegate.h:87
&gt; + @discussion If you do not implement this method,
&gt; + -webView:decidePolicyForNavigationAction:decisionHandler: will be called

More importantly, if you DO implement this one, the historical one won&apos;t be called.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.h:133
&gt; +/*! @abstract The set of default web page preferences to use when loading and rendering content.

Just putting it out there...  we went with Webpage because we write it webpage. If we wrote it &quot;web page&quot; it would be WebPage. So you&apos;ve got the non-camel-cased version wrong here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523110</commentid>
    <comment_count>4</comment_count>
      <attachid>366313</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 15:44:07 -0700</bug_when>
    <thetext>Comment on attachment 366313
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegate.h:87
&gt;&gt; + -webView:decidePolicyForNavigationAction:decisionHandler: will be called
&gt; 
&gt; More importantly, if you DO implement this one, the historical one won&apos;t be called.

Good point — changed the @discussion here to make that clearer.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.h:133
&gt;&gt; +/*! @abstract The set of default web page preferences to use when loading and rendering content.
&gt; 
&gt; Just putting it out there...  we went with Webpage because we write it webpage. If we wrote it &quot;web page&quot; it would be WebPage. So you&apos;ve got the non-camel-cased version wrong here.

Old habits die hard :|

Replaced &quot;web page&quot; with &quot;webpage&quot; here, and in other places (including WKNavigationDelegate.h)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523174</commentid>
    <comment_count>5</comment_count>
      <attachid>366454</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-01 19:20:19 -0700</bug_when>
    <thetext>Created attachment 366454
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523322</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-02 08:49:29 -0700</bug_when>
    <thetext>&gt;     /bin/sh -c /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Script-5DF408C6131DD49700130071.sh
&gt; error: WebKit.framework/Headers/WKWebpagePreferences.h included &lt;WebKitAdditions/WKWebpagePreferencesAdditionsBefore.h&gt; but I could not find a header of that name!
&gt; error: WebKit.framework/Headers/WKWebpagePreferences.h included &lt;WebKitAdditions/WKWebpagePreferencesAdditionsAfter.h&gt; but I could not find a header of that name!
&gt; 
&gt; ** BUILD FAILED **
&gt; 
&gt; 
&gt; The following build commands failed:
&gt; 	PhaseScriptExecution Check\ For\ Framework\ Include\ Consistency /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Script-5DF408C6131DD49700130071.sh

Well, good to know &quot;Check For Framework Include Consistency&quot; is working as intended :/

It seems `WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED=YES` for certain build configurations, which includes macOS prior to 10.13. Perhaps I need to pull my &quot;Replace WebKitAdditions includes&quot; script out of postprocess-framework-headers.sh, and into either a separate build phase, or run it alongside postprocess-framework-headers.sh in the &quot;Postprocess Framework Headers&quot; build phase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523324</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-02 08:51:25 -0700</bug_when>
    <thetext>&gt; It seems `WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED=YES` for certain build
&gt; configurations, which includes macOS prior to 10.13. Perhaps I need to pull

*prior to 10.14.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523490</commentid>
    <comment_count>8</comment_count>
      <attachid>366543</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-02 15:07:09 -0700</bug_when>
    <thetext>Created attachment 366543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523542</commentid>
    <comment_count>9</comment_count>
      <attachid>366543</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-04-02 17:27:28 -0700</bug_when>
    <thetext>Comment on attachment 366543
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegate.h:89
&gt; + Otherwise, -webView:decidePolicyForNavigationAction:decisionHandler: will be
&gt; + called if it is implemented.

What is this sentence for? I think you just need the previous one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523565</commentid>
    <comment_count>10</comment_count>
      <attachid>366543</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-02 18:41:50 -0700</bug_when>
    <thetext>Comment on attachment 366543
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegate.h:89
&gt;&gt; + called if it is implemented.
&gt; 
&gt; What is this sentence for? I think you just need the previous one

Sounds good — removed the &quot;Otherwise, …&quot; sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523606</commentid>
    <comment_count>11</comment_count>
      <attachid>366576</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-02 21:16:57 -0700</bug_when>
    <thetext>Created attachment 366576
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523610</commentid>
    <comment_count>12</comment_count>
      <attachid>366576</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-02 21:58:10 -0700</bug_when>
    <thetext>Comment on attachment 366576
Patch for landing

Clearing flags on attachment: 366576

Committed r243787: &lt;https://trac.webkit.org/changeset/243787&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366042</attachid>
            <date>2019-03-26 19:50:18 -0700</date>
            <delta_ts>2019-03-29 14:47:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196284-20190326195017.patch</filename>
            <type>text/plain</type>
            <size>28992</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5MzE0YjZiNTJhZWE1NGI4
ZTY1ZWJjYTdlMjU5ODU2NjczMGNmZDkuLmVmMjgxYTc1MjdhNmU1NzIyMWUxNDQ0MGM0MDU0YTRl
YjY5ZTVmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMDMtMjYgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgbmV3
IEFQSSBhcm91bmQgV0tXZWJwYWdlUHJlZmVyZW5jZXMgaW4gV0tOYXZpZ2F0aW9uRGVsZWdhdGUg
YW5kIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NjI4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyMjgy
MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHMgZm9yIGJvdGggb2YgdGhlc2UgQVBJcyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBw
YXRjaC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6ZGVmYXVsdFdlYnBhZ2VQcmVmZXJl
bmNlcyBjb25zdCk6CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpzZXREZWZhdWx0
V2VicGFnZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25E
ZWxlZ2F0ZS5oOgorCisgICAgICAgIEFkZCBhIG5ldyBuYXZpZ2F0aW9uIGRlbGVnYXRlIGhvb2sg
dG8gYWxsb3cgY2xpZW50cyB0byByZXR1cm4gYSBXS1dlYnBhZ2VQcmVmZXJlbmNlIHRhcmdldGlu
ZyB0aGUgZ2l2ZW4KKyAgICAgICAgbmF2aWdhdGlvbiBhY3Rpb24uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbml0
aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorCisgICAgICAgIEFkZCBuZXcgQVBJIG9uIFdL
V2ViVmlld0NvbmZpZ3VyYXRpb24gdG8gc3BlY2lmeSBhIGRlZmF1bHQgV0tXZWJwYWdlUHJlZmVy
ZW5jZSB0byB1c2Ugd2hlbiBuYXZpZ2F0aW5nLgorCisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBzZXREZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpz
ZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6
Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTAzLTIzICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE5lZWQgYSB3
YXkgdG8gaW5jbHVkZSBXZWJLaXRBZGRpdGlvbnMgY29kZSBpbiBXZWJLaXQgQVBJIGhlYWRlcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCmluZGV4IDFmMDQ5YzJhMjNhMDUxOGVkZDA3MGM0NGIyNTY3MmYxYzM2NTk5YzcuLjQz
MmZjN2Y0NzA3ZGQ0ODZlYTY1ZDZhMzNiZGM5YmQ0Mzg5MWE1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAKICNpbmNsdWRl
ICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJBUElXZWJwYWdlUHJl
ZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgpAQCAtMTY0LDYgKzE2NSwxNiBA
QCB2b2lkIFBhZ2VDb25maWd1cmF0aW9uOjpzZXRXZWJzaXRlRGF0YVN0b3JlKEFQSTo6V2Vic2l0
ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdAogICAgICAgICBtX3Nlc3Npb25JRCA9IFBBTDo6U2Vz
c2lvbklEKCk7CiB9CiAKK1dlYnBhZ2VQcmVmZXJlbmNlcyogUGFnZUNvbmZpZ3VyYXRpb246OmRl
ZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2RlZmF1bHRX
ZWJwYWdlUHJlZmVyZW5jZXMuZ2V0KCk7Cit9CisKK3ZvaWQgUGFnZUNvbmZpZ3VyYXRpb246OnNl
dERlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMoV2VicGFnZVByZWZlcmVuY2VzKiB3ZWJwYWdlUHJl
ZmVyZW5jZXMpCit7CisgICAgbV9kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzID0gd2VicGFnZVBy
ZWZlcmVuY2VzOworfQorCiBQQUw6OlNlc3Npb25JRCBQYWdlQ29uZmlndXJhdGlvbjo6c2Vzc2lv
bklEKCkKIHsKICAgICBBU1NFUlQoIW1fd2Vic2l0ZURhdGFTdG9yZSB8fCBtX3dlYnNpdGVEYXRh
U3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSA9PSBtX3Nlc3Npb25JRCB8fCBt
X3Nlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9u
LmgKaW5kZXggYjVmYTZmZjMwN2VmOGViOWMxZjVlYTQwNjA0MWM1NmM3NWUzYTZjYy4uMjUwMWZj
ZWFiYTYyMzk1MGVhNzA5ZDkyNDkwZTQxNjY1N2ViOTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTQ0LDYgKzQ0LDcg
QEAgY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk7CiBuYW1lc3BhY2UgQVBJIHsK
IAogY2xhc3MgQXBwbGljYXRpb25NYW5pZmVzdDsKK2NsYXNzIFdlYnBhZ2VQcmVmZXJlbmNlczsK
IGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiAKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIDogcHVi
bGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpQYWdlQ29uZmlndXJhdGlvbj4gewpAQCAtODEs
NiArODIsOSBAQCBwdWJsaWM6CiAgICAgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9y
ZSgpOwogICAgIHZvaWQgc2V0V2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlKik7CiAK
KyAgICBXZWJwYWdlUHJlZmVyZW5jZXMqIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMoKSBjb25z
dDsKKyAgICB2b2lkIHNldERlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMoV2VicGFnZVByZWZlcmVu
Y2VzKik7CisKICAgICAvLyBGSVhNRTogT25jZSBQYWdlQ29uZmlndXJhdGlvbnMgKmFsd2F5cyog
aGF2ZSBhIGRhdGEgc3RvcmUsIGdldCByaWQgb2YgdGhlIHNlcGFyYXRlIHNlc3Npb25JRC4KICAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKTsKICAgICB2b2lkIHNldFNlc3Npb25JRChQQUw6
OlNlc3Npb25JRCk7CkBAIC0xMzUsNiArMTM5LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vi
S2l0OjpWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAKICAgICBSZWZQdHI8
V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOworICAgIFJlZlB0cjxXZWJwYWdl
UHJlZmVyZW5jZXM+IG1fZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlczsKICAgICAvLyBGSVhNRTog
V2UgY3VycmVudGx5IGhhdmUgdG8gcGFzcyB0aGUgc2Vzc2lvbiBJRCBzZXBhcmF0ZWx5IGhlcmUg
dG8gc3VwcG9ydCB0aGUgbGVnYWN5IHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbi4KICAgICAvLyBP
bmNlIHdlIGdldCByaWQgb2YgaXQgd2Ugc2hvdWxkIGdldCByaWQgb2YgdGhpcyBjb25maWd1cmF0
aW9uIHBhcmFtZXRlciBhcyB3ZWxsLgogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uRGVsZWdhdGUuaAppbmRleCA4ZWU0NjJjNDZjOGJjY2M4YTU5Yjg5NzRkNzU1ZDg4YWM3YjM0
NDZhLi43ODM2N2NjYmZjZTM4NjMwNjY3MTgxNjdmZjgzOWVjYjIyNjMzMWQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVs
ZWdhdGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMyw2ICszMyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBAY2xhc3MgV0tO
YXZpZ2F0aW9uQWN0aW9uOwogQGNsYXNzIFdLTmF2aWdhdGlvblJlc3BvbnNlOwogQGNsYXNzIFdL
V2ViVmlldzsKK0BjbGFzcyBXS1dlYnBhZ2VQcmVmZXJlbmNlczsKIAogLyohIEBlbnVtIFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeQogIEBhYnN0cmFjdCBUaGUgcG9saWN5IHRvIHBhc3MgYmFjayB0
byB0aGUgZGVjaXNpb24gaGFuZGxlciBmcm9tIHRoZQpAQCAtNzMsNiArNzQsMjEgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpIHsKICAqLwog
LSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKWRlY2lzaW9uSGFu
ZGxlcjsKIAorLyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgdG8gYWxsb3cgb3IgY2FuY2Vs
IGEgbmF2aWdhdGlvbi4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhl
IGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gbmF2aWdhdGlvbkFjdGlvbiBEZXNjcmlwdGl2ZSBp
bmZvcm1hdGlvbiBhYm91dCB0aGUgYWN0aW9uCisgdHJpZ2dlcmluZyB0aGUgbmF2aWdhdGlvbiBy
ZXF1ZXN0LgorIEBwYXJhbSBkZWZhdWx0UHJlZmVyZW5jZXMgVGhlIGRlZmF1bHQgc2V0IG9mIHdl
YiBwYWdlIHByZWZlcmVuY2VzLiBUaGlzIG1heSBiZQorIGNoYW5nZWQgYnkgc2V0dGluZyBkZWZh
dWx0V2VicGFnZVByZWZlcmVuY2VzIG9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uCisgQHBhcmFt
IGRlY2lzaW9uSGFuZGxlciBUaGUgcG9saWN5IGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCB0byBh
bGxvdyBvciBjYW5jZWwKKyB0aGUgbmF2aWdhdGlvbi4gVGhlIGFyZ3VtZW50cyBhcmUgb25lIG9m
IHRoZSBjb25zdGFudHMgb2YgdGhlIGVudW1lcmF0ZWQgdHlwZQorIFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSwgYXMgd2VsbCBhcyBhbiBpbnN0YW5jZSBvZiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy4K
KyBAZGlzY3Vzc2lvbiBJZiB5b3UgZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhvZCwKKyAtd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjogd2ls
bCBiZSBjYWxsZWQKKyBpbnN0ZWFkLCBpZiBpdCBpcyBpbXBsZW1lbnRlZC4KKyAqLworLSAodm9p
ZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVmYXVsdFByZWZl
cmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKWRlZmF1bHRQcmVmZXJlbmNlcyBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC8qISBAYWJzdHJhY3QgRGVjaWRlcyB3aGV0aGVy
IHRvIGFsbG93IG9yIGNhbmNlbCBhIG5hdmlnYXRpb24gYWZ0ZXIgaXRzCiAgcmVzcG9uc2UgaXMg
a25vd24uCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0
ZSBtZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBjOGM0MmM2NWNhOWRjMjcyYzI3Y2IyYzE1YmQ2NDkwNzhmODExNGRkLi5kZmM4
YjJkNGEzZTg4OTA2NGRiZmU1YWY4ZjE4ZjA2YzFkMTEyNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU3NCw2ICs1NzQsNyBAQCAt
ICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gKiljb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFVzZXJDb250ZW50
Q29udHJvbGxlcihbX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXS0+X3VzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0
VmlzaXRlZExpbmtTdG9yZShbX2NvbmZpZ3VyYXRpb24gX3Zpc2l0ZWRMaW5rU3RvcmVdLT5fdmlz
aXRlZExpbmtTdG9yZS5nZXQoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNpdGVE
YXRhU3RvcmUoW19jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdLT5fd2Vic2l0ZURhdGFT
dG9yZS5nZXQoKSk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldERlZmF1bHRXZWJwYWdlUHJl
ZmVyZW5jZXMoW19jb25maWd1cmF0aW9uIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vi
cGFnZVByZWZlcmVuY2VzLmdldCgpKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoYXV0
byBwYWdlR3JvdXAgPSBXZWJLaXQ6OnRvSW1wbChbY29uZmlndXJhdGlvbiBfcGFnZUdyb3VwXSkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5oCmluZGV4IDc1ZmFkZWQ0ZDczZjZkMGI3MTZjNDE4N2ZkNmU1
MzA2ZTJhOWRlN2MuLmIzZjRiODAxZGZkOGEwMWM1MDI5YjA2Yjg3OGY2OTE0ZTdkMjIwN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIEBjbGFzcyBXS1ByZWZlcmVuY2VzOwogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CiBAY2xh
c3MgV0tVc2VyQ29udGVudENvbnRyb2xsZXI7CitAY2xhc3MgV0tXZWJwYWdlUHJlZmVyZW5jZXM7
CiBAY2xhc3MgV0tXZWJzaXRlRGF0YVN0b3JlOwogQHByb3RvY29sIFdLVVJMU2NoZW1lSGFuZGxl
cjsKIApAQCAtMTI5LDYgKzEzMCwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTAp
LCBpb3MoOC4wKSkKIAogQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5
cGVzIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKKy8qISBAYWJzdHJhY3QgVGhlIHNldCBv
ZiBkZWZhdWx0IHdlYiBwYWdlIHByZWZlcmVuY2VzIHRvIHVzZSB3aGVuIGxvYWRpbmcgYW5kIHJl
bmRlcmluZyBjb250ZW50LgorIEBkaXNjdXNzaW9uIFRoZXNlIGRlZmF1bHQgd2ViIHBhZ2UgcHJl
ZmVyZW5jZXMgYXJlIGFkZGl0aW9uYWxseSBwYXNzZWQgdG8gdGhlIG5hdmlnYXRpb24gZGVsZWdh
dGUKKyBpbiAtd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlZmF1bHRQ
cmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6LgorICovCitAcHJvcGVydHkgKG51bGxfcmVzZXR0
YWJsZSwgbm9uYXRvbWljLCBjb3B5KSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqZGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLyohIEBhYnN0cmFjdCBBIEJvb2xl
YW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUTUw1IHZpZGVvcyBwbGF5IGlubGluZQogIChZ
RVMpIG9yIHVzZSB0aGUgbmF0aXZlIGZ1bGwtc2NyZWVuIGNvbnRyb2xsZXIgKE5PKS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0KaW5kZXggNzdiMTlkZDg2ZGE1NTYxNTJiYTdkNjQ5Y2I2MzFlMTRiZDdk
ZTFiZi4uNjAwNjY4ZGFlMjIyYmExYjllNDdjZWQ4NTAwNTI0MmJjYmM3ZjIzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0KQEAgLTEwOCw2ICsxMDgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiB7CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1VzZXJD
b250ZW50Q29udHJvbGxlcj4+IF91c2VyQ29udGVudENvbnRyb2xsZXI7CiAgICAgTGF6eUluaXRp
YWxpemVkPFJldGFpblB0cjxfV0tWaXNpdGVkTGlua1N0b3JlPj4gX3Zpc2l0ZWRMaW5rU3RvcmU7
CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1dlYnNpdGVEYXRhU3RvcmU+PiBfd2Vi
c2l0ZURhdGFTdG9yZTsKKyAgICBMYXp5SW5pdGlhbGl6ZWQ8UmV0YWluUHRyPFdLV2VicGFnZVBy
ZWZlcmVuY2VzPj4gX2RlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXM7CiAgICAgV2Vha09iakNQdHI8
V0tXZWJWaWV3PiBfcmVsYXRlZFdlYlZpZXc7CiAgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBf
YWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlczsKICAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IF9ncm91cElkZW50aWZpZXI7CkBAIC0zNDMsNiArMzQ0LDcgQEAgLSAoaWQpY29weVdp
dGhab25lOihOU1pvbmUgKil6b25lCiAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcyA9IHNl
bGYucHJlZmVyZW5jZXM7CiAgICAgY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIg
PSBzZWxmLnVzZXJDb250ZW50Q29udHJvbGxlcjsKICAgICBjb25maWd1cmF0aW9uLndlYnNpdGVE
YXRhU3RvcmUgPSBzZWxmLndlYnNpdGVEYXRhU3RvcmU7CisgICAgY29uZmlndXJhdGlvbi5kZWZh
dWx0V2VicGFnZVByZWZlcmVuY2VzID0gc2VsZi5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzOwog
ICAgIGNvbmZpZ3VyYXRpb24uX3Zpc2l0ZWRMaW5rU3RvcmUgPSBzZWxmLl92aXNpdGVkTGlua1N0
b3JlOwogICAgIGNvbmZpZ3VyYXRpb24uX3JlbGF0ZWRXZWJWaWV3ID0gX3JlbGF0ZWRXZWJWaWV3
LmdldCgpLmdldCgpOwogICAgIGNvbmZpZ3VyYXRpb24uX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZp
Z2F0aW9uR2VzdHVyZXMgPSBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlcy5n
ZXQoKS5nZXQoKTsKQEAgLTQ1OCw2ICs0NjAsMTggQEAgLSAodm9pZClzZXRXZWJzaXRlRGF0YVN0
b3JlOihXS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlCiAgICAgX3dlYnNpdGVE
YXRhU3RvcmUuc2V0KHdlYnNpdGVEYXRhU3RvcmUpOwogfQogCistIChXS1dlYnBhZ2VQcmVmZXJl
bmNlcyAqKWRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMKK3sKKyAgICByZXR1cm4gX2RlZmF1bHRX
ZWJwYWdlUHJlZmVyZW5jZXMuZ2V0KFtdIHsKKyAgICAgICAgcmV0dXJuIFdLV2VicGFnZVByZWZl
cmVuY2VzLmRlZmF1bHRQcmVmZXJlbmNlczsKKyAgICB9KTsKK30KKworLSAodm9pZClzZXREZWZh
dWx0V2VicGFnZVByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKWRlZmF1bHRXZWJw
YWdlUHJlZmVyZW5jZXMKK3sKKyAgICBfZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5zZXQoZGVm
YXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyA/OiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5kZWZhdWx0UHJl
ZmVyZW5jZXMpOworfQorCiBzdGF0aWMgTlNTdHJpbmcgKmRlZmF1bHRBcHBsaWNhdGlvbk5hbWVG
b3JVc2VyQWdlbnQoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5o
CmluZGV4IDMyOTE5OGVjZjAyZGE4ODQ4M2U5N2JhMmVkMDdmOTY2ZjRlNDFlZTQuLmRmZTFhY2Y3
NGJkYmVjNzdkZTFmZmE4MDAyZDk2OTZkMWViZGEyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCkBAIC0y
NSw2ICsyNSwxMCBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLV2VicGFn
ZVByZWZlcmVuY2VzQWRkaXRpb25zQmVmb3JlLmg+CisjZW5kaWYKKwogLyohIEEgV0tXZWJwYWdl
UHJlZmVyZW5jZXMgb2JqZWN0IGlzIGEgY29sbGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHRoYXQKICBk
ZXRlcm1pbmUgdGhlIHByZWZlcmVuY2VzIHRvIHVzZSB3aGVuIGxvYWRpbmcgYW5kIHJlbmRlcmlu
ZyBhIHBhZ2UuCiAgQGhlbHBzIENvbnRhaW5zIHByb3BlcnRpZXMgdXNlZCB0byBkZXRlcm1pbmUg
d2ViIHBhZ2UgcHJlZmVyZW5jZXMuCkBAIC0zMiw0ICszNiw4IEBACiBXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgOiBOU09iamVjdAogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS1dlYnBhZ2VQcmVmZXJlbmNlc0FkZGl0aW9uc0Fm
dGVyLmg+CisjZW5kaWYKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCAxZjBkNWY0N2JmZjE2YmE3YzZjNTIzYWVkNGQzMmQ4
NTQ0OWQ4MTg5Li5mYzU3M2Y1NTk5NWMzNzI2NWFmNDY2MDdhYzczNDkwNzhiNjRkYzEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAt
MTg2LDYgKzE4Niw3IEBAIHByaXZhdGU6CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBib29sIHdl
YlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyIDogMTsK
KyAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlZmF1
bHRQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNp
ZXMgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRs
ZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCmluZGV4IDI3MjRlYjIwNmZjMmFkMWFiZjgxZDI5NzEyYzY3NmI5MWZkNTcwNjUuLjBi
YzBkNzRjM2I4NmQ1ZDU3ZDY0MDc2N2FkNTYyZjIwZTA3MWQwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTMwLDYgKzMwLDcg
QEAKICNpbXBvcnQgIkFQSUZyYW1lSW5mby5oIgogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbkRhdGEu
aCIKICNpbXBvcnQgIkFQSU5hdmlnYXRpb25SZXNwb25zZS5oIgorI2ltcG9ydCAiQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIkFQSVN0cmluZy5oIgogI2ltcG9ydCAiQVBJVVJMLmgi
CiAjaW1wb3J0ICJBUElXZWJzaXRlRGF0YVN0b3JlLmgiCkBAIC0xNDgsNiArMTQ5LDcgQEAgdm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9u
RGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlID0gZGVsZWdhdGU7
CiAKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlZmF1bHRQcmVmZXJlbmNlc0RlY2lz
aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZp
ZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWZhdWx0UHJlZmVyZW5jZXM6ZGVj
aXNpb25IYW5kbGVyOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xp
Y2llcyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0
aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9u
c2VEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRs
ZXI6KV07CkBAIC01MDgsMTggKzUxMCwyMCBAQCBzdGF0aWMgdm9pZCB0cnlJbnRlcmNlcHROYXZp
Z2F0aW9uKFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbgogdm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFJlZjxBUEk6Ok5hdmlnYXRp
b25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqIHVzZXJJbmZvKQogewogICAgIGJvb2wgc3Vi
ZnJhbWVOYXZpZ2F0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi0+dGFyZ2V0RnJhbWUoKSAmJiAhbmF2
aWdhdGlvbkFjdGlvbi0+dGFyZ2V0RnJhbWUoKS0+aXNNYWluRnJhbWUoKTsKKyAgICBhdXRvIGRl
ZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMgPSBtYWtlUmVmUHRyKHdlYlBhZ2VQcm94eS5jb25maWd1
cmF0aW9uKCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcygpKTsKIAogICAgIGlmICghbV9uYXZp
Z2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyCisgICAgICAgICYmICFtX25hdmln
YXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25EZWZhdWx0UHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIKICAg
ICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNp
dGVQb2xpY2llcwogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlcklu
Zm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpIHsKLSAgICAgICAgYXV0byBjb21wbGV0
aW9uSGFuZGxlciA9IFt3ZWJQYWdlID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBsaXN0ZW5lciA9
IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5j
b3B5UmVmKCldIChib29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgeworICAgICAgICBhdXRvIGNv
bXBsZXRpb25IYW5kbGVyID0gW3dlYlBhZ2UgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIGxpc3Rl
bmVyID0gV1RGTW92ZShsaXN0ZW5lciksIG5hdmlnYXRpb25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0
aW9uLmNvcHlSZWYoKSwgZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlc10gKGJvb2wgaW50ZXJjZXB0
ZWROYXZpZ2F0aW9uKSB7CiAgICAgICAgICAgICBpZiAoaW50ZXJjZXB0ZWROYXZpZ2F0aW9uKSB7
CiAgICAgICAgICAgICAgICAgbGlzdGVuZXItPmlnbm9yZSgpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCFuYXZpZ2F0aW9uQWN0aW9u
LT50YXJnZXRGcmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAg
ICAgICAgICAgICAgIGxpc3RlbmVyLT51c2UoZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5nZXQo
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC01MjgsNyAr
NTMyLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVAKICAgICAgICAgICAgICAgICBpZiAobmF2
aWdhdGlvbkFjdGlvbi0+c2hvdWxkUGVyZm9ybURvd25sb2FkKCkpCiAgICAgICAgICAgICAgICAg
ICAgIGxpc3RlbmVyLT5kb3dubG9hZCgpOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICAgICAgICAgICAgICBsaXN0ZW5l
ci0+dXNlKGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuZ2V0KCkpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KIApAQCAtNTQ4LDI4ICs1NTIsMjkgQEAgdm9pZCBOYXZp
Z2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24oV2ViUGFnZVAKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYm9vbCBkZWxlZ2F0ZUhhc1dlYnNpdGVQb2xpY2llcyA9IG1fbmF2aWdhdGlv
blN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyB8fCBtX25hdmln
YXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2ll
czsKLSAgICAKLSAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
OjpjcmVhdGUobmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpLCBkZWxlZ2F0ZUhhc1dlYnNpdGVQb2xp
Y2llcyA/IEBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OmRlY2lzaW9uSGFuZGxlcjopIDogQHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgCi0gICAgYXV0byBkZWNpc2lv
bkhhbmRsZXJXaXRoUG9saWNpZXMgPSBbbG9jYWxMaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIp
LCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5UmVmKCksIGNoZWNrZXIg
PSBXVEZNb3ZlKGNoZWNrZXIpLCB3ZWJQYWdlUHJveHkgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSks
IHN1YmZyYW1lTmF2aWdhdGlvbl0oV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGlj
eSwgX1dLV2Vic2l0ZVBvbGljaWVzICp3ZWJzaXRlUG9saWNpZXMpIG11dGFibGUgeworICAgIGJv
b2wgZGVsZWdhdGVIYXNXZWJwYWdlUHJlZmVyZW5jZXMgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25EZWZhdWx0UHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXI7CisgICAgYm9vbCBkZWxlZ2F0
ZUhhc1ByaXZhdGVXZWJzaXRlUG9saWNpZXMgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25E
ZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgfHwgbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZp
Z2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXM7CisKKyAgICBhdXRvIGNo
ZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobmF2aWdhdGlvbkRl
bGVnYXRlLmdldCgpLCBkZWxlZ2F0ZUhhc1ByaXZhdGVXZWJzaXRlUG9saWNpZXMgPyBAc2VsZWN0
b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRs
ZXI6KSA6IEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
ZGVjaXNpb25IYW5kbGVyOikpOworCisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVy
ZW5jZXMgPSBbbG9jYWxMaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0
aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5UmVmKCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNr
ZXIpLCB3ZWJQYWdlUHJveHkgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIHN1YmZyYW1lTmF2aWdh
dGlvbiwgZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlc10gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSBhY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICp3ZWJwYWdlUHJlZmVyZW5jZXMp
IG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVu
Q2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXItPmRpZENhbGxD
b21wbGV0aW9uSGFuZGxlcigpOwogCi0gICAgICAgIFJlZlB0cjxBUEk6OldlYnBhZ2VQcmVmZXJl
bmNlcz4gYXBpV2VicGFnZVByZWZlcmVuY2VzID0gW3dlYnNpdGVQb2xpY2llcyB3ZWJwYWdlUHJl
ZmVyZW5jZXNdID8gW3dlYnNpdGVQb2xpY2llcyB3ZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2VicGFn
ZVByZWZlcmVuY2VzLmdldCgpIDogbnVsbHB0cjsKKyAgICAgICAgYXV0byBhcGlXZWJwYWdlUHJl
ZmVyZW5jZXMgPSB3ZWJwYWdlUHJlZmVyZW5jZXMgPyBtYWtlUmVmUHRyKHdlYnBhZ2VQcmVmZXJl
bmNlcy0+X3dlYnBhZ2VQcmVmZXJlbmNlcy5nZXQoKSkgOiBkZWZhdWx0V2VicGFnZVByZWZlcmVu
Y2VzOwogICAgICAgICBpZiAoYXBpV2VicGFnZVByZWZlcmVuY2VzKSB7CiAgICAgICAgICAgICBp
ZiAoYXV0byogd2Vic2l0ZURhdGFTdG9yZSA9IGFwaVdlYnBhZ2VQcmVmZXJlbmNlcy0+d2Vic2l0
ZURhdGFTdG9yZSgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJzaXRl
RGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCk7CiAgICAgICAgICAgICAg
ICAgaWYgKCFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSAmJiBzZXNzaW9uSUQgIT0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKLSAgICAgICAgICAgICAgICAgICAgW05TRXhjZXB0
aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIl9XS1dlYnNpdGVQ
b2xpY2llcy53ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsLCBkZWZhdWx0LCBvciBub24tcGVy
c2lzdGVudC4iXTsKKyAgICAgICAgICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52
YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2VicGFnZVByZWZlcmVuY2VzLndlYnNp
dGVEYXRhU3RvcmUgbXVzdCBiZSBuaWwsIGRlZmF1bHQsIG9yIG5vbi1wZXJzaXN0ZW50LiJdOwog
ICAgICAgICAgICAgICAgIGlmIChzdWJmcmFtZU5hdmlnYXRpb24pCi0gICAgICAgICAgICAgICAg
ICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6
QCJfV0tXZWJzaXRlUG9saWNpZXMud2Vic2l0ZURhdGFTdG9yZSBtdXN0IGJlIG5pbCBmb3Igc3Vi
ZnJhbWUgbmF2aWdhdGlvbnMuIl07CisgICAgICAgICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJXS1dlYnBhZ2VQcmVmZXJl
bmNlcy53ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsIGZvciBzdWJmcmFtZSBuYXZpZ2F0aW9u
cy4iXTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghYXBpV2VicGFnZVByZWZlcmVu
Y2VzLT5jdXN0b21Vc2VyQWdlbnQoKS5pc051bGwoKSAmJiBzdWJmcmFtZU5hdmlnYXRpb24pCi0g
ICAgICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0
aW9uIGZvcm1hdDpAIl9XS1dlYnNpdGVQb2xpY2llcy5jdXN0b21Vc2VyQWdlbnQgbXVzdCBiZSBu
aWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOworICAgICAgICAgICAgICAgIFtOU0V4Y2Vw
dGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJXS1dlYnBhZ2VQ
cmVmZXJlbmNlcy5jdXN0b21Vc2VyQWdlbnQgbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmln
YXRpb25zLiJdOwogICAgICAgICAgICAgaWYgKCFhcGlXZWJwYWdlUHJlZmVyZW5jZXMtPmN1c3Rv
bU5hdmlnYXRvclBsYXRmb3JtKCkuaXNOdWxsKCkgJiYgc3ViZnJhbWVOYXZpZ2F0aW9uKQotICAg
ICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlv
biBmb3JtYXQ6QCJfV0tXZWJzaXRlUG9saWNpZXMuY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0gbXVz
dCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOworICAgICAgICAgICAgICAgIFtO
U0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJXS1dl
YnBhZ2VQcmVmZXJlbmNlcy5jdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBtdXN0IGJlIG5pbCBmb3Ig
c3ViZnJhbWUgbmF2aWdhdGlvbnMuIl07CiAgICAgICAgIH0KIAogICAgICAgICBzd2l0Y2ggKGFj
dGlvblBvbGljeSkgewpAQCAtNjA1LDkgKzYxMCwxNCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6
TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdl
UAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9OwotICAgIAotICAgIGlmIChk
ZWxlZ2F0ZUhhc1dlYnNpdGVQb2xpY2llcykgewotICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcykpOwor
CisgICAgaWYgKGRlbGVnYXRlSGFzV2VicGFnZVByZWZlcmVuY2VzKQorICAgICAgICBbbmF2aWdh
dGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSBkZWZhdWx0
UHJlZmVyZW5jZXM6d3JhcHBlcihkZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzKSBkZWNpc2lvbkhh
bmRsZXI6bWFrZUJsb2NrUHRyKFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2Vz
KSkuZ2V0KCldOworICAgIGVsc2UgaWYgKGRlbGVnYXRlSGFzUHJpdmF0ZVdlYnNpdGVQb2xpY2ll
cykgeworICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlcldpdGhQcml2YXRlUG9saWNpZXMgPSBb
ZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJX
aXRoUHJlZmVyZW5jZXMpXSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSwg
X1dLV2Vic2l0ZVBvbGljaWVzICp3ZWJzaXRlUG9saWNpZXMpIG11dGFibGUgeworICAgICAgICAg
ICAgZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzKGFjdGlvblBvbGljeSwgd2Vic2l0ZVBv
bGljaWVzLndlYnBhZ2VQcmVmZXJlbmNlcyk7CisgICAgICAgIH07CisgICAgICAgIGF1dG8gZGVj
aXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFBy
aXZhdGVQb2xpY2llcykpOwogICAgICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0
aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
VXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpCiAgICAgICAgICAgICBbKGlk
IDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmll
dzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGlj
X2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWwgZGVj
aXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiAgICAgICAgIGVsc2UgewpAQCAt
NjE2LDEwICs2MjYsMTAgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVAKICAgICAgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXJXaXRob3V0UG9saWNpZXMgPSBbZGVjaXNpb25I
YW5kbGVyV2l0aFBvbGljaWVzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMp
XSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7Ci0gICAg
ICAgICAgICBkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMoYWN0aW9uUG9saWN5LCBuaWwpOwor
ICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlcldpdGhvdXRQcmVmZXJlbmNlcyA9IFtkZWNpc2lv
bkhhbmRsZXJXaXRoUHJlZmVyZW5jZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQcmVm
ZXJlbmNlcyldIChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgYWN0aW9uUG9saWN5KSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlcyhhY3Rpb25Qb2xp
Y3ksIG5pbCk7CiAgICAgICAgIH07Ci0gICAgICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmll
dzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQ
dHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRob3V0UG9saWNpZXMpKS5nZXQoKV07CisgICAg
ICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZp
ZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rp
b24pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJX
aXRob3V0UHJlZmVyZW5jZXMpKS5nZXQoKV07CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3Mzg3MzgxOTc2OWEzZjE4
OTM0ODA2OWIzZTIwMTFhZTFiNGMwMWIwLi43YTJiNDQ1Yzk3NWEzNWQ3NTlhMmNmYjQ3ZmQwMzcx
MWZhOTliNzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE2MzYsNyArMTYzNiw3IEBACiAJCUVDQTY4MEQ4MUU2OTBFMjUwMDczMUQy
MCAvKiBXZWJQcm9jZXNzQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEVDQTY4MEQ3MUU2OTBERjgwMDczMUQyMCAvKiBXZWJQcm9jZXNzQ29jb2Eu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFRDgy
QTdGMjEyOEM2RkFGMDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVF
NzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFn
RGVzdGluYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0MDlCQTE3MUU2RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUY0MzhDRDFDMjI0MTQyMTQwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMUIyMjQxNDBB
NjAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjQzOENEMUMyMjQxNDIxNDAwREU2RERBIC8q
IFdLV2VicGFnZVByZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDM4Q0QxQjIyNDE0MEE2MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVy
ZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJ
CUY0MzhDRDFGMjI0MTRENDAwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM4Q0Qx
RTIyNDE0RDQwMDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oICovOyB9
OwogCQlGNDM4Q0QyMTIyNDFGNjk1MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM4
Q0QyMDIyNDFGNjk1MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0MjkxOTIx
RkE1OTFDOTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDI5MTkxMUZBNTkxMDcwMDJDQzkzRSAvKiBfV0tB
dHRhY2htZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTM0ODMsMTMgKzM0ODMsMTIgQEAKIAkJNUMyQjFBRjQyMjNBQjcyODAwQjkxQ0Y3IC8q
IERvd25sb2FkTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb3du
bG9hZE1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyQjFBRjUyMjND
MUZEMjAwQjkxQ0Y3IC8qIERvd25sb2FkUHJveHlNYXBDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERvd25sb2FkUHJveHlNYXBDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMzNTlDMEMyMTU0NzMyMTAwOUU3OTQ4IC8qIFdLRGVw
cmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0RlcHJlY2F0ZWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUMzQUVBOEUxRkUxRjFERjAwMjMxOEQz
IC8qIFdlYnNpdGVQb2xpY2llc0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTVDM0FFQThFMUZFMUYxREYwMDIzMThEMyAvKiBXZWJwYWdlUHJlZmVyZW5jZXNEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnBhZ2VQcmVmZXJl
bmNlc0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFMjIyNDMw
RTRDMDA5OTQzQzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFMzIyNDMwRTREMDA5OTQzQzIgLyogX1dLQ29udGVu
dFJ1bGVMaXN0QWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1QzQ2MDlFNDIyNDMwRTREMDA5OTQzQzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9u
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQ29udGVudFJ1
bGVMaXN0QWN0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0
NjA5RTUyMjQzMEZBNjAwOTk0M0MyIC8qIEFQSUNvbnRlbnRSdWxlTGlzdEFjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElDb250ZW50UnVsZUxpc3RBY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFNjIyNDMwRkE3MDA5
OTQzQzIgLyogQVBJQ29udGVudFJ1bGVMaXN0QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFQSUNvbnRlbnRSdWxlTGlzdEFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1QzNBRUE4RTFGRTFGMURGMDAyMzE4RDMgLyogV2VicGFnZVByZWZlcmVu
Y2VzRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJwYWdl
UHJlZmVyZW5jZXNEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0NkMw
QUMyMUI3MTk4QjAwQkM1OTkxIC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0NkMwQUQyMUI3
MTk4QzAwQkM1OTkxIC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNDZDMEFFMjFCNzFBRTIwMEJDNTk5MSAv
KiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366313</attachid>
            <date>2019-03-29 15:23:34 -0700</date>
            <delta_ts>2019-04-01 19:00:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196284-20190329152333.patch</filename>
            <type>text/plain</type>
            <size>26431</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0YWMwZDVhYmNhZjc5YTgy
NzRkNzYxYjQ3Y2E4YWFhNTg3OTgzOTMuLjUzYzU5N2FjNzIxMWJmNDJkYWYwZWQ2ZTljZTg5ODlj
MzUzOWI4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTktMDMtMjkgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgbmV3
IEFQSSBhcm91bmQgV0tXZWJwYWdlUHJlZmVyZW5jZXMgaW4gV0tOYXZpZ2F0aW9uRGVsZWdhdGUg
YW5kIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NjI4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyMjgy
MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHMgZm9yIGJvdGggb2YgdGhlc2UgQVBJcyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBw
YXRjaC4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV2ViS2l0Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpkZWZhdWx0V2Vic2l0ZVBvbGljaWVzIGNvbnN0KToKKyAgICAgICAg
KEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg6CisKKyAgICAgICAgQWRk
IGEgbmV3IG5hdmlnYXRpb24gZGVsZWdhdGUgaG9vayB0byBhbGxvdyBjbGllbnRzIHRvIHJldHVy
biBhIFdLV2VicGFnZVByZWZlcmVuY2UgdGFyZ2V0aW5nIHRoZSBnaXZlbgorICAgICAgICBuYXZp
Z2F0aW9uIGFjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
bW06CisKKyAgICAgICAgQWRkIG5ldyBBUEkgb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB0byBz
cGVjaWZ5IGEgZGVmYXVsdCBXS1dlYnBhZ2VQcmVmZXJlbmNlIHRvIHVzZSB3aGVuIG5hdmlnYXRp
bmcuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6
CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJl
bmNlc10pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIHNldERlZmF1bHRXZWJw
YWdlUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBh
Z2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisKKyAgICAgICAgSW52b2tlIHRoZSBuZXcgV0tX
ZWJwYWdlUHJlZmVyZW5jZXMtYmFzZWQgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBtZXRob2QuCisKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMy0yOSAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViS2l0
Ml0gSW50cm9kdWNlIGEgcHVibGljIHZlcnNpb24gb2YgV0tXZWJzaXRlUG9saWNpZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaAppbmRleCA1M2ZjNTNkYmQxZDNjOTBhOWUw
MjhjNzlhYjg1Y2E1NzY5NWE2OWM4Li40YjQ4YTQwNDcxMGIyZjQ3ZGNlZTVhYTM5NDMyYjkyYzJj
YzgzOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCkBAIC01Miw2
ICs1Miw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0Lmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVByZWZlcmVuY2VzLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJzaXRlRGF0YVJlY29yZC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFT
dG9yZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2luZG93RmVhdHVyZXMuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4
IDFmMDQ5YzJhMjNhMDUxOGVkZDA3MGM0NGIyNTY3MmYxYzM2NTk5YzcuLjE3N2I5OTk4ODQwMmUz
Y2ViOTYxNWM5M2NkMWFlMzNkODU5ZmEzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAKICNpbmNsdWRlICJBUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJBUElXZWJzaXRlUG9saWNpZXMuaCIKICNp
bmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNs
dWRlICJXZWJQcmVmZXJlbmNlcy5oIgpAQCAtMTY0LDYgKzE2NSwxNiBAQCB2b2lkIFBhZ2VDb25m
aWd1cmF0aW9uOjpzZXRXZWJzaXRlRGF0YVN0b3JlKEFQSTo6V2Vic2l0ZURhdGFTdG9yZSogd2Vi
c2l0ZURhdGFTdAogICAgICAgICBtX3Nlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEKCk7CiB9CiAK
K1dlYnNpdGVQb2xpY2llcyogUGFnZUNvbmZpZ3VyYXRpb246OmRlZmF1bHRXZWJzaXRlUG9saWNp
ZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2RlZmF1bHRXZWJzaXRlUG9saWNpZXMuZ2V0KCk7
Cit9CisKK3ZvaWQgUGFnZUNvbmZpZ3VyYXRpb246OnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMo
V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcykKK3sKKyAgICBtX2RlZmF1bHRXZWJzaXRlUG9saWNp
ZXMgPSBwb2xpY2llczsKK30KKwogUEFMOjpTZXNzaW9uSUQgUGFnZUNvbmZpZ3VyYXRpb246OnNl
c3Npb25JRCgpCiB7CiAgICAgQVNTRVJUKCFtX3dlYnNpdGVEYXRhU3RvcmUgfHwgbV93ZWJzaXRl
RGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkgPT0gbV9zZXNzaW9uSUQg
fHwgbV9zZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZp
Z3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJh
dGlvbi5oCmluZGV4IGI1ZmE2ZmYzMDdlZjhlYjljMWY1ZWE0MDYwNDFjNTZjNzVlM2E2Y2MuLjY0
YTQ5NGExOWIzMzFhMzlhMzIyMjA1MjQ1YmZhZTkxZjllNjg0NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCkBAIC00NSw2ICs0
NSw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBjbGFzcyBBcHBsaWNhdGlvbk1hbmlmZXN0OwogY2xh
c3MgV2Vic2l0ZURhdGFTdG9yZTsKK2NsYXNzIFdlYnNpdGVQb2xpY2llczsKIAogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VDb25m
aWd1cmF0aW9uPiB7CiBwdWJsaWM6CkBAIC04MSw2ICs4Miw5IEBAIHB1YmxpYzoKICAgICBXZWJz
aXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlKCk7CiAgICAgdm9pZCBzZXRXZWJzaXRlRGF0
YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUqKTsKIAorICAgIFdlYnNpdGVQb2xpY2llcyogZGVmYXVs
dFdlYnNpdGVQb2xpY2llcygpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdFdlYnNpdGVQb2xp
Y2llcyhXZWJzaXRlUG9saWNpZXMqKTsKKwogICAgIC8vIEZJWE1FOiBPbmNlIFBhZ2VDb25maWd1
cmF0aW9ucyAqYWx3YXlzKiBoYXZlIGEgZGF0YSBzdG9yZSwgZ2V0IHJpZCBvZiB0aGUgc2VwYXJh
dGUgc2Vzc2lvbklELgogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpOwogICAgIHZvaWQg
c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKQEAgLTEzNSw2ICsxMzksNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxXZWJLaXQ6OlZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9y
ZTsKIAogICAgIFJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7Cisg
ICAgUmVmUHRyPFdlYnNpdGVQb2xpY2llcz4gbV9kZWZhdWx0V2Vic2l0ZVBvbGljaWVzOwogICAg
IC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgaGF2ZSB0byBwYXNzIHRoZSBzZXNzaW9uIElEIHNlcGFy
YXRlbHkgaGVyZSB0byBzdXBwb3J0IHRoZSBsZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9u
LgogICAgIC8vIE9uY2Ugd2UgZ2V0IHJpZCBvZiBpdCB3ZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGlz
IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGFzIHdlbGwuCiAgICAgUEFMOjpTZXNzaW9uSUQgbV9z
ZXNzaW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IDhlZTQ2MmM0NmM4YmNjYzhhNTliODk3NGQ3
NTVkODhhYzdiMzQ0NmEuLjI0ZTA3NDNmNWVmZjc0NDQ2M2M3NzBiNmJiMTE1MjM5YTU4MDFkZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IEBjbGFzcyBXS05hdmlnYXRpb25BY3Rpb247CiBAY2xhc3MgV0tOYXZpZ2F0aW9uUmVzcG9uc2U7
CiBAY2xhc3MgV0tXZWJWaWV3OworQGNsYXNzIFdLV2VicGFnZVByZWZlcmVuY2VzOwogCiAvKiEg
QGVudW0gV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5CiAgQGFic3RyYWN0IFRoZSBwb2xpY3kgdG8g
cGFzcyBiYWNrIHRvIHRoZSBkZWNpc2lvbiBoYW5kbGVyIGZyb20gdGhlCkBAIC03Myw2ICs3NCwy
MSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGlj
eSkgewogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFj
dGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkp
ZGVjaXNpb25IYW5kbGVyOwogCisvKiEgQGFic3RyYWN0IERlY2lkZXMgd2hldGhlciB0byBhbGxv
dyBvciBjYW5jZWwgYSBuYXZpZ2F0aW9uLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBp
bnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorIEBwYXJhbSBuYXZpZ2F0aW9uQWN0aW9uIERl
c2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhY3Rpb24KKyB0cmlnZ2VyaW5nIHRoZSBu
YXZpZ2F0aW9uIHJlcXVlc3QuCisgQHBhcmFtIHByZWZlcmVuY2VzIFRoZSBkZWZhdWx0IHNldCBv
ZiB3ZWIgcGFnZSBwcmVmZXJlbmNlcy4gVGhpcyBtYXkgYmUKKyBjaGFuZ2VkIGJ5IHNldHRpbmcg
ZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyBvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uLgorIEBw
YXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIHBvbGljeSBkZWNpc2lvbiBoYW5kbGVyIHRvIGNhbGwg
dG8gYWxsb3cgb3IgY2FuY2VsCisgdGhlIG5hdmlnYXRpb24uIFRoZSBhcmd1bWVudHMgYXJlIG9u
ZSBvZiB0aGUgY29uc3RhbnRzIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGUKKyBXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3ksIGFzIHdlbGwgYXMgYW4gaW5zdGFuY2Ugb2YgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMuCisgQGRpc2N1c3Npb24gSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QsCisg
LXdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6
IHdpbGwgYmUgY2FsbGVkCisgaW5zdGVhZCwgaWYgaXQgaXMgaW1wbGVtZW50ZWQuCisgKi8KKy0g
KHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdpdGhQcmVm
ZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKIC8qISBAYWJzdHJhY3QgRGVjaWRlcyB3aGV0aGVyIHRvIGFs
bG93IG9yIGNhbmNlbCBhIG5hdmlnYXRpb24gYWZ0ZXIgaXRzCiAgcmVzcG9uc2UgaXMga25vd24u
CiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRo
b2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCAxNjc1YzBiYzkyMGQ5NWFhYjc3OGQ5ZDQ3M2ZhZGY2ZDBhODZjMjQ3Li4wZGIxNWYzOTI1
ZDA3ZWM2NDViYmQ4MGEwYzNkNWJhZTQ0NWUyOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU3NCw2ICs1NzQsNyBAQCAtICh2b2lk
KV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKilj
b25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFVzZXJDb250ZW50Q29udHJv
bGxlcihbX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXS0+X3VzZXJDb250ZW50
Q29udHJvbGxlclByb3h5LmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0VmlzaXRl
ZExpbmtTdG9yZShbX2NvbmZpZ3VyYXRpb24gX3Zpc2l0ZWRMaW5rU3RvcmVdLT5fdmlzaXRlZExp
bmtTdG9yZS5nZXQoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNpdGVEYXRhU3Rv
cmUoW19jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdLT5fd2Vic2l0ZURhdGFTdG9yZS5n
ZXQoKSk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMo
W19jb25maWd1cmF0aW9uIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vic2l0ZVBvbGlj
aWVzLmdldCgpKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoYXV0byBwYWdlR3JvdXAg
PSBXZWJLaXQ6OnRvSW1wbChbY29uZmlndXJhdGlvbiBfcGFnZUdyb3VwXSkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5oCmluZGV4IDc1ZmFkZWQ0ZDczZjZkMGI3MTZjNDE4N2ZkNmU1MzA2ZTJhOWRlN2Mu
LjBiYTFhNmUwMDgxOTFhOWZkYTU0NjQwZDc0ZTE4NDI2YmFiZTVjNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBjbGFz
cyBXS1ByZWZlcmVuY2VzOwogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CiBAY2xhc3MgV0tVc2VyQ29u
dGVudENvbnRyb2xsZXI7CitAY2xhc3MgV0tXZWJwYWdlUHJlZmVyZW5jZXM7CiBAY2xhc3MgV0tX
ZWJzaXRlRGF0YVN0b3JlOwogQHByb3RvY29sIFdLVVJMU2NoZW1lSGFuZGxlcjsKIApAQCAtMTI5
LDYgKzEzMCwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkK
IAogQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1lZGlhVHlw
ZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMiksIGlvcygxMC4wKSk7CiAKKy8qISBAYWJzdHJhY3QgVGhlIHNldCBvZiBkZWZhdWx0IHdl
YiBwYWdlIHByZWZlcmVuY2VzIHRvIHVzZSB3aGVuIGxvYWRpbmcgYW5kIHJlbmRlcmluZyBjb250
ZW50LgorIEBkaXNjdXNzaW9uIFRoZXNlIGRlZmF1bHQgd2ViIHBhZ2UgcHJlZmVyZW5jZXMgYXJl
IGFkZGl0aW9uYWxseSBwYXNzZWQgdG8gdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUKKyBpbiAtd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndpdGhQcmVmZXJlbmNlczpkZWNp
c2lvbkhhbmRsZXI6LgorICovCitAcHJvcGVydHkgKG51bGxfcmVzZXR0YWJsZSwgbm9uYXRvbWlj
LCBjb3B5KSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAj
aWYgVEFSR0VUX09TX0lQSE9ORQogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNh
dGluZyB3aGV0aGVyIEhUTUw1IHZpZGVvcyBwbGF5IGlubGluZQogIChZRVMpIG9yIHVzZSB0aGUg
bmF0aXZlIGZ1bGwtc2NyZWVuIGNvbnRyb2xsZXIgKE5PKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
aW5kZXggNzdiMTlkZDg2ZGE1NTYxNTJiYTdkNjQ5Y2I2MzFlMTRiZDdkZTFiZi4uNjAwNjY4ZGFl
MjIyYmExYjllNDdjZWQ4NTAwNTI0MmJjYmM3ZjIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
QEAgLTEwOCw2ICsxMDgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlv
biB7CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxl
cj4+IF91c2VyQ29udGVudENvbnRyb2xsZXI7CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0
cjxfV0tWaXNpdGVkTGlua1N0b3JlPj4gX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgTGF6eUluaXRp
YWxpemVkPFJldGFpblB0cjxXS1dlYnNpdGVEYXRhU3RvcmU+PiBfd2Vic2l0ZURhdGFTdG9yZTsK
KyAgICBMYXp5SW5pdGlhbGl6ZWQ8UmV0YWluUHRyPFdLV2VicGFnZVByZWZlcmVuY2VzPj4gX2Rl
ZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXM7CiAgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBfcmVs
YXRlZFdlYlZpZXc7CiAgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBfYWx0ZXJuYXRlV2ViVmll
d0Zvck5hdmlnYXRpb25HZXN0dXJlczsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9ncm91cElk
ZW50aWZpZXI7CkBAIC0zNDMsNiArMzQ0LDcgQEAgLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUg
Kil6b25lCiAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcyA9IHNlbGYucHJlZmVyZW5jZXM7
CiAgICAgY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgPSBzZWxmLnVzZXJDb250
ZW50Q29udHJvbGxlcjsKICAgICBjb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgPSBzZWxm
LndlYnNpdGVEYXRhU3RvcmU7CisgICAgY29uZmlndXJhdGlvbi5kZWZhdWx0V2VicGFnZVByZWZl
cmVuY2VzID0gc2VsZi5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzOwogICAgIGNvbmZpZ3VyYXRp
b24uX3Zpc2l0ZWRMaW5rU3RvcmUgPSBzZWxmLl92aXNpdGVkTGlua1N0b3JlOwogICAgIGNvbmZp
Z3VyYXRpb24uX3JlbGF0ZWRXZWJWaWV3ID0gX3JlbGF0ZWRXZWJWaWV3LmdldCgpLmdldCgpOwog
ICAgIGNvbmZpZ3VyYXRpb24uX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXMg
PSBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlcy5nZXQoKS5nZXQoKTsKQEAg
LTQ1OCw2ICs0NjAsMTggQEAgLSAodm9pZClzZXRXZWJzaXRlRGF0YVN0b3JlOihXS1dlYnNpdGVE
YXRhU3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUuc2V0KHdl
YnNpdGVEYXRhU3RvcmUpOwogfQogCistIChXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKWRlZmF1bHRX
ZWJwYWdlUHJlZmVyZW5jZXMKK3sKKyAgICByZXR1cm4gX2RlZmF1bHRXZWJwYWdlUHJlZmVyZW5j
ZXMuZ2V0KFtdIHsKKyAgICAgICAgcmV0dXJuIFdLV2VicGFnZVByZWZlcmVuY2VzLmRlZmF1bHRQ
cmVmZXJlbmNlczsKKyAgICB9KTsKK30KKworLSAodm9pZClzZXREZWZhdWx0V2VicGFnZVByZWZl
cmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKWRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMK
K3sKKyAgICBfZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5zZXQoZGVmYXVsdFdlYnBhZ2VQcmVm
ZXJlbmNlcyA/OiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5kZWZhdWx0UHJlZmVyZW5jZXMpOworfQor
CiBzdGF0aWMgTlNTdHJpbmcgKmRlZmF1bHRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoKQog
ewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCmluZGV4IDMyOTE5OGVj
ZjAyZGE4ODQ4M2U5N2JhMmVkMDdmOTY2ZjRlNDFlZTQuLmRmZTFhY2Y3NGJkYmVjNzdkZTFmZmE4
MDAyZDk2OTZkMWViZGEyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCkBAIC0yNSw2ICsyNSwxMCBAQAog
CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLV2VicGFnZVByZWZlcmVuY2VzQWRk
aXRpb25zQmVmb3JlLmg+CisjZW5kaWYKKwogLyohIEEgV0tXZWJwYWdlUHJlZmVyZW5jZXMgb2Jq
ZWN0IGlzIGEgY29sbGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHRoYXQKICBkZXRlcm1pbmUgdGhlIHBy
ZWZlcmVuY2VzIHRvIHVzZSB3aGVuIGxvYWRpbmcgYW5kIHJlbmRlcmluZyBhIHBhZ2UuCiAgQGhl
bHBzIENvbnRhaW5zIHByb3BlcnRpZXMgdXNlZCB0byBkZXRlcm1pbmUgd2ViIHBhZ2UgcHJlZmVy
ZW5jZXMuCkBAIC0zMiw0ICszNiw4IEBACiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
OiBOU09iamVjdAogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktp
dEFkZGl0aW9ucy9XS1dlYnBhZ2VQcmVmZXJlbmNlc0FkZGl0aW9uc0FmdGVyLmg+CisjZW5kaWYK
KwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUuaAppbmRleCAxZjBkNWY0N2JmZjE2YmE3YzZjNTIzYWVkNGQzMmQ4NTQ0OWQ4MTg5Li5kYTZi
ZjVjYzkzOWViNGI0OGY1Y2NjNDJhZGU1ODdmMjIwYjc5ZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAtMTg2LDYgKzE4Niw3IEBA
IHByaXZhdGU6CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lz
aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lv
bkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IGVhZDU3
OTU2ZTNmNzVjMjUwYTNmZjUwYjQyNTA4MjA0Mzg4M2QzNWIuLmViOTFkOTZhZjdhYTYzZmRjNGRl
MzYzNjUzMDYwMmRlYzczZDFiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkFQSUZy
YW1lSW5mby5oIgogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbkRhdGEuaCIKICNpbXBvcnQgIkFQSU5h
dmlnYXRpb25SZXNwb25zZS5oIgorI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNp
bXBvcnQgIkFQSVN0cmluZy5oIgogI2ltcG9ydCAiQVBJVVJMLmgiCiAjaW1wb3J0ICJBUElXZWJz
aXRlRGF0YVN0b3JlLmgiCkBAIC0xNDgsNiArMTQ5LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6
OnNldE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRl
KQogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlID0gZGVsZWdhdGU7CiAKICAgICBtX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25E
ZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3
ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOild
OworICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjp3aXRoUHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb246ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25I
YW5kbGVyV2Vic2l0ZVBvbGljaWVzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5mbzpk
ZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRsZXIgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6KV07CkBAIC01MDgsMTggKzUxMCwy
MCBAQCBzdGF0aWMgdm9pZCB0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKFJlZjxBUEk6Ok5hdmlnYXRp
b25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbgogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmln
YXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVByb3h5
JiB3ZWJQYWdlUHJveHksIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFj
dGlvbiwgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpP
YmplY3QqIHVzZXJJbmZvKQogewogICAgIGJvb2wgc3ViZnJhbWVOYXZpZ2F0aW9uID0gbmF2aWdh
dGlvbkFjdGlvbi0+dGFyZ2V0RnJhbWUoKSAmJiAhbmF2aWdhdGlvbkFjdGlvbi0+dGFyZ2V0RnJh
bWUoKS0+aXNNYWluRnJhbWUoKTsKKyAgICBhdXRvIGRlZmF1bHRXZWJzaXRlUG9saWNpZXMgPSBt
YWtlUmVmUHRyKHdlYlBhZ2VQcm94eS5jb25maWd1cmF0aW9uKCkuZGVmYXVsdFdlYnNpdGVQb2xp
Y2llcygpKTsKIAogICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25I
YW5kbGVyCisgICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVy
ZW5jZXNEZWNpc2lvbkhhbmRsZXIKICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcwogICAgICAgICAmJiAhbV9uYXZpZ2F0
aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMp
IHsKLSAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt3ZWJQYWdlID0gbWFrZVJlZih3
ZWJQYWdlUHJveHkpLCBsaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0
aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5UmVmKCldIChib29sIGludGVyY2VwdGVkTmF2aWdh
dGlvbikgeworICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3dlYlBhZ2UgPSBtYWtl
UmVmKHdlYlBhZ2VQcm94eSksIGxpc3RlbmVyID0gV1RGTW92ZShsaXN0ZW5lciksIG5hdmlnYXRp
b25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmNvcHlSZWYoKSwgZGVmYXVsdFdlYnNpdGVQb2xp
Y2llc10gKGJvb2wgaW50ZXJjZXB0ZWROYXZpZ2F0aW9uKSB7CiAgICAgICAgICAgICBpZiAoaW50
ZXJjZXB0ZWROYXZpZ2F0aW9uKSB7CiAgICAgICAgICAgICAgICAgbGlzdGVuZXItPmlnbm9yZSgp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
aWYgKCFuYXZpZ2F0aW9uQWN0aW9uLT50YXJnZXRGcmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAg
bGlzdGVuZXItPnVzZSgpOworICAgICAgICAgICAgICAgIGxpc3RlbmVyLT51c2UoZGVmYXVsdFdl
YnNpdGVQb2xpY2llcy5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQogCkBAIC01MjgsNyArNTMyLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRp
b25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVAKICAgICAg
ICAgICAgICAgICBpZiAobmF2aWdhdGlvbkFjdGlvbi0+c2hvdWxkUGVyZm9ybURvd25sb2FkKCkp
CiAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLT5kb3dubG9hZCgpOwogICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICAg
ICAgICAgICAgICBsaXN0ZW5lci0+dXNlKGRlZmF1bHRXZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIApAQCAtNTQ4LDI4ICs1NTIs
MzcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVAKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0
ZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgYm9vbCBkZWxlZ2F0ZUhhc1dlYnBhZ2VQcmVmZXJl
bmNlcyA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9u
SGFuZGxlcjsKICAgICBib29sIGRlbGVnYXRlSGFzV2Vic2l0ZVBvbGljaWVzID0gbV9uYXZpZ2F0
aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzIHx8IG1fbmF2
aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGlj
aWVzOworCisgICAgYXV0byBzZWxlY3RvckZvckNvbXBsZXRpb25IYW5kbGVyQ2hlY2tlciA9IChb
Jl0gKCkgLT4gU0VMIHsKKyAgICAgICAgaWYgKGRlbGVnYXRlSGFzV2VicGFnZVByZWZlcmVuY2Vz
KQorICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb246d2l0aFByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjopOworICAgICAg
ICBpZiAoZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMpCisgICAgICAgICAgICByZXR1cm4gQHNl
bGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25I
YW5kbGVyOik7CisgICAgICAgIHJldHVybiBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopOworICAgIH0pKCk7CisKKyAgICBh
dXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpLCBzZWxlY3RvckZvckNvbXBsZXRpb25IYW5kbGVyQ2hlY2tlcik7
CiAgICAgCi0gICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6
Y3JlYXRlKG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSwgZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNp
ZXMgPyBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpk
ZWNpc2lvbkhhbmRsZXI6KSA6IEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOikpOwotICAgIAotICAgIGF1dG8gZGVjaXNpb25I
YW5kbGVyV2l0aFBvbGljaWVzID0gW2xvY2FsTGlzdGVuZXIgPSBXVEZNb3ZlKGxpc3RlbmVyKSwg
bmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigpLCBjaGVja2VyID0g
V1RGTW92ZShjaGVja2VyKSwgd2ViUGFnZVByb3h5ID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBz
dWJmcmFtZU5hdmlnYXRpb25dKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3ks
IF9XS1dlYnNpdGVQb2xpY2llcyAqd2Vic2l0ZVBvbGljaWVzKSBtdXRhYmxlIHsKKyAgICBhdXRv
IGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlcyA9IFtsb2NhbExpc3RlbmVyID0gV1RGTW92
ZShsaXN0ZW5lciksIG5hdmlnYXRpb25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmNvcHlSZWYo
KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlciksIHdlYlBhZ2VQcm94eSA9IG1ha2VSZWYod2Vi
UGFnZVByb3h5KSwgc3ViZnJhbWVOYXZpZ2F0aW9uLCBkZWZhdWx0V2Vic2l0ZVBvbGljaWVzXSAo
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKndlYnBhZ2VQcmVmZXJlbmNlcykgbXV0YWJsZSB7CiAgICAgICAgIGlmIChjaGVja2VyLT5j
b21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CiAKLSAgICAgICAgUmVm
UHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiBhcGlXZWJzaXRlUG9saWNpZXMgPSBbd2Vic2l0ZVBv
bGljaWVzIHdlYnBhZ2VQcmVmZXJlbmNlc10gPyBbd2Vic2l0ZVBvbGljaWVzIHdlYnBhZ2VQcmVm
ZXJlbmNlc10tPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCkgOiBudWxscHRyOworICAgICAgICBhdXRv
IGFwaVdlYnNpdGVQb2xpY2llcyA9IHdlYnBhZ2VQcmVmZXJlbmNlcyA/IG1ha2VSZWZQdHIod2Vi
cGFnZVByZWZlcmVuY2VzLT5fd2Vic2l0ZVBvbGljaWVzLmdldCgpKSA6IGRlZmF1bHRXZWJzaXRl
UG9saWNpZXM7CiAgICAgICAgIGlmIChhcGlXZWJzaXRlUG9saWNpZXMpIHsKICAgICAgICAgICAg
IGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gYXBpV2Vic2l0ZVBvbGljaWVzLT53ZWJzaXRl
RGF0YVN0b3JlKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIHNlc3Npb25JRCA9IHdlYnNpdGVE
YXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKTsKICAgICAgICAgICAgICAg
ICBpZiAoIXNlc3Npb25JRC5pc0VwaGVtZXJhbCgpICYmIHNlc3Npb25JRCAhPSBQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQotICAgICAgICAgICAgICAgICAgICBbTlNFeGNlcHRp
b24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiX1dLV2Vic2l0ZVBv
bGljaWVzLndlYnNpdGVEYXRhU3RvcmUgbXVzdCBiZSBuaWwsIGRlZmF1bHQsIG9yIG5vbi1wZXJz
aXN0ZW50LiJdOworICAgICAgICAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZh
bGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiV0tXZWJwYWdlUHJlZmVyZW5jZXMud2Vic2l0
ZURhdGFTdG9yZSBtdXN0IGJlIG5pbCwgZGVmYXVsdCwgb3Igbm9uLXBlcnNpc3RlbnQuIl07CiAg
ICAgICAgICAgICAgICAgaWYgKHN1YmZyYW1lTmF2aWdhdGlvbikKLSAgICAgICAgICAgICAgICAg
ICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpA
Il9XS1dlYnNpdGVQb2xpY2llcy53ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsIGZvciBzdWJm
cmFtZSBuYXZpZ2F0aW9ucy4iXTsKKyAgICAgICAgICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJh
aXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2VicGFnZVByZWZlcmVu
Y2VzLndlYnNpdGVEYXRhU3RvcmUgbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25z
LiJdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFhcGlXZWJzaXRlUG9saWNpZXMt
PmN1c3RvbVVzZXJBZ2VudCgpLmlzTnVsbCgpICYmIHN1YmZyYW1lTmF2aWdhdGlvbikKLSAgICAg
ICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiX1dLV2Vic2l0ZVBvbGljaWVzLmN1c3RvbVVzZXJBZ2VudCBtdXN0IGJlIG5pbCBm
b3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIl07CisgICAgICAgICAgICAgICAgW05TRXhjZXB0aW9u
IHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2VicGFnZVByZWZl
cmVuY2VzLmN1c3RvbVVzZXJBZ2VudCBtdXN0IGJlIG5pbCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlv
bnMuIl07CiAgICAgICAgICAgICBpZiAoIWFwaVdlYnNpdGVQb2xpY2llcy0+Y3VzdG9tTmF2aWdh
dG9yUGxhdGZvcm0oKS5pc051bGwoKSAmJiBzdWJmcmFtZU5hdmlnYXRpb24pCi0gICAgICAgICAg
ICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1h
dDpAIl9XS1dlYnNpdGVQb2xpY2llcy5jdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBtdXN0IGJlIG5p
bCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIl07CisgICAgICAgICAgICAgICAgW05TRXhjZXB0
aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2VicGFnZVBy
ZWZlcmVuY2VzLmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtIG11c3QgYmUgbmlsIGZvciBzdWJmcmFt
ZSBuYXZpZ2F0aW9ucy4iXTsKICAgICAgICAgfQogCiAgICAgICAgIHN3aXRjaCAoYWN0aW9uUG9s
aWN5KSB7CkBAIC02MDUsOCArNjE4LDEzIEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH07Ci0gICAgCi0gICAgaWYgKGRlbGVnYXRl
SGFzV2Vic2l0ZVBvbGljaWVzKSB7CisKKyAgICBpZiAoZGVsZWdhdGVIYXNXZWJwYWdlUHJlZmVy
ZW5jZXMpCisgICAgICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25T
dGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5h
dmlnYXRpb25BY3Rpb24pIHdpdGhQcmVmZXJlbmNlczp3cmFwcGVyKGRlZmF1bHRXZWJzaXRlUG9s
aWNpZXMpIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRs
ZXJXaXRoUHJlZmVyZW5jZXMpKS5nZXQoKV07CisgICAgZWxzZSBpZiAoZGVsZWdhdGVIYXNXZWJz
aXRlUG9saWNpZXMpIHsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMg
PSBbZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRs
ZXJXaXRoUHJlZmVyZW5jZXMpXSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGlj
eSwgX1dLV2Vic2l0ZVBvbGljaWVzICp3ZWJzaXRlUG9saWNpZXMpIG11dGFibGUgeworICAgICAg
ICAgICAgZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzKGFjdGlvblBvbGljeSwgd2Vic2l0
ZVBvbGljaWVzLndlYnBhZ2VQcmVmZXJlbmNlcyk7CisgICAgICAgIH07CiAgICAgICAgIGF1dG8g
ZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0
aFBvbGljaWVzKSk7CiAgICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2Vy
SW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcykKICAgICAgICAgICAgIFsoaWQgPFdL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1f
bmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2Fz
dDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lv
bkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKQEAgLTYxNiwxMCArNjM0LDEwIEBAIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gZGVjaXNp
b25IYW5kbGVyV2l0aG91dFBvbGljaWVzID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyA9
IFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzKV0gKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSBhY3Rpb25Qb2xpY3kpIG11dGFibGUgewotICAgICAgICAgICAgZGVjaXNpb25IYW5k
bGVyV2l0aFBvbGljaWVzKGFjdGlvblBvbGljeSwgbmlsKTsKKyAgICAgICAgYXV0byBkZWNpc2lv
bkhhbmRsZXJXaXRob3V0UHJlZmVyZW5jZXMgPSBbZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVu
Y2VzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXMpXSAoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CisgICAgICAgICAgICBkZWNp
c2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXMoYWN0aW9uUG9saWN5LCBuaWwpOwogICAgICAgICB9
OwotICAgICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUu
bV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0
aW9uQWN0aW9uKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFdURk1vdmUoZGVjaXNpb25I
YW5kbGVyV2l0aG91dFBvbGljaWVzKSkuZ2V0KCldOworICAgICAgICBbbmF2aWdhdGlvbkRlbGVn
YXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSBkZWNpc2lvbkhhbmRsZXI6
bWFrZUJsb2NrUHRyKFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aG91dFByZWZlcmVuY2VzKSku
Z2V0KCldOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYmRjMWM0ZTUyOTA5NjBiNWIyZjE1Mzk4MWU2ZTcxZTQ0NTkz
ZGIzMS4uYzRiMzlhZDk1Njc0ZmMyODUxOGIzZDhlMzIyMzU4OWZjZWI1ZDc3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjM2LDcg
KzE2MzYsNyBAQAogCQlFQ0E2ODBEODFFNjkwRTI1MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29h
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBE
NzFFNjkwREY4MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29hLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0Iz
IC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBMjJGMEZGMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VP
dmVybGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5QkExNzFF
NkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNDM4Q0QxQzIyNDE0MjE0MDBE
RTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDFCMjI0MTQwQTYwMERFNkREQSAvKiBXS1dlYnBh
Z2VQcmVmZXJlbmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUY0MzhDRDFDMjI0MTQyMTQwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENE
MUIyMjQxNDBBNjAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlGNDM4Q0QxRjIyNDE0RDQwMDBE
RTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMUUyMjQxNEQ0MDAwREU2RERBIC8q
IFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCAqLzsgfTsKIAkJRjQzOENEMjEyMjQxRjY5
NTAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMjAyMjQxRjY5NTAwREU2RERB
IC8qIFdLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0NDI5MTkyMUZBNTkxQzkwMDJDQzkzRSAvKiBf
V0tBdHRhY2htZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDQyOTE5MTFGQTU5MTA3MDAyQ0M5M0UgLyogX1dLQXR0YWNobWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366454</attachid>
            <date>2019-04-01 19:20:19 -0700</date>
            <delta_ts>2019-04-01 22:10:32 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-196284-20190401192018.patch</filename>
            <type>text/plain</type>
            <size>26507</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0NDU5M2U5MDhjMDEzYmU1
MGJkYWJkZmY5MmYwOTQyMTMxNzIxNTIuLjE2YjJiMTBhZjI4N2ZlZmQ3ZDk0ZTM3ODFmYjY4MTZm
OGI5ZDRiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTktMDQtMDEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgbmV3
IEFQSSBhcm91bmQgV0tXZWJwYWdlUHJlZmVyZW5jZXMgaW4gV0tOYXZpZ2F0aW9uRGVsZWdhdGUg
YW5kIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NjI4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyMjgy
MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHMgZm9yIGJvdGggb2YgdGhlc2UgQVBJcyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBw
YXRjaC4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV2ViS2l0Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpkZWZhdWx0V2Vic2l0ZVBvbGljaWVzIGNvbnN0KToKKyAgICAgICAg
KEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg6CisKKyAgICAgICAgQWRk
IGEgbmV3IG5hdmlnYXRpb24gZGVsZWdhdGUgaG9vayB0byBhbGxvdyBjbGllbnRzIHRvIHJldHVy
biBhIFdLV2VicGFnZVByZWZlcmVuY2UgdGFyZ2V0aW5nIHRoZSBnaXZlbgorICAgICAgICBuYXZp
Z2F0aW9uIGFjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
bW06CisKKyAgICAgICAgQWRkIG5ldyBBUEkgb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB0byBz
cGVjaWZ5IGEgZGVmYXVsdCBXS1dlYnBhZ2VQcmVmZXJlbmNlIHRvIHVzZSB3aGVuIG5hdmlnYXRp
bmcuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6
CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJl
bmNlc10pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIHNldERlZmF1bHRXZWJw
YWdlUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBh
Z2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisKKyAgICAgICAgSW52b2tlIHRoZSBuZXcgV0tX
ZWJwYWdlUHJlZmVyZW5jZXMtYmFzZWQgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBtZXRob2QuCisKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wNC0wMSAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViS2l0
Ml0gSW50cm9kdWNlIGEgcHVibGljIHZlcnNpb24gb2YgV0tXZWJzaXRlUG9saWNpZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaAppbmRleCA1M2ZjNTNkYmQxZDNjOTBhOWUw
MjhjNzlhYjg1Y2E1NzY5NWE2OWM4Li40YjQ4YTQwNDcxMGIyZjQ3ZGNlZTVhYTM5NDMyYjkyYzJj
YzgzOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCkBAIC01Miw2
ICs1Miw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0Lmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVByZWZlcmVuY2VzLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJzaXRlRGF0YVJlY29yZC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFT
dG9yZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2luZG93RmVhdHVyZXMuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4
IDFmMDQ5YzJhMjNhMDUxOGVkZDA3MGM0NGIyNTY3MmYxYzM2NTk5YzcuLjE3N2I5OTk4ODQwMmUz
Y2ViOTYxNWM5M2NkMWFlMzNkODU5ZmEzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAKICNpbmNsdWRlICJBUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJBUElXZWJzaXRlUG9saWNpZXMuaCIKICNp
bmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNs
dWRlICJXZWJQcmVmZXJlbmNlcy5oIgpAQCAtMTY0LDYgKzE2NSwxNiBAQCB2b2lkIFBhZ2VDb25m
aWd1cmF0aW9uOjpzZXRXZWJzaXRlRGF0YVN0b3JlKEFQSTo6V2Vic2l0ZURhdGFTdG9yZSogd2Vi
c2l0ZURhdGFTdAogICAgICAgICBtX3Nlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEKCk7CiB9CiAK
K1dlYnNpdGVQb2xpY2llcyogUGFnZUNvbmZpZ3VyYXRpb246OmRlZmF1bHRXZWJzaXRlUG9saWNp
ZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2RlZmF1bHRXZWJzaXRlUG9saWNpZXMuZ2V0KCk7
Cit9CisKK3ZvaWQgUGFnZUNvbmZpZ3VyYXRpb246OnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMo
V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcykKK3sKKyAgICBtX2RlZmF1bHRXZWJzaXRlUG9saWNp
ZXMgPSBwb2xpY2llczsKK30KKwogUEFMOjpTZXNzaW9uSUQgUGFnZUNvbmZpZ3VyYXRpb246OnNl
c3Npb25JRCgpCiB7CiAgICAgQVNTRVJUKCFtX3dlYnNpdGVEYXRhU3RvcmUgfHwgbV93ZWJzaXRl
RGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkgPT0gbV9zZXNzaW9uSUQg
fHwgbV9zZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZp
Z3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJh
dGlvbi5oCmluZGV4IGI1ZmE2ZmYzMDdlZjhlYjljMWY1ZWE0MDYwNDFjNTZjNzVlM2E2Y2MuLjY0
YTQ5NGExOWIzMzFhMzlhMzIyMjA1MjQ1YmZhZTkxZjllNjg0NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCkBAIC00NSw2ICs0
NSw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBjbGFzcyBBcHBsaWNhdGlvbk1hbmlmZXN0OwogY2xh
c3MgV2Vic2l0ZURhdGFTdG9yZTsKK2NsYXNzIFdlYnNpdGVQb2xpY2llczsKIAogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VDb25m
aWd1cmF0aW9uPiB7CiBwdWJsaWM6CkBAIC04MSw2ICs4Miw5IEBAIHB1YmxpYzoKICAgICBXZWJz
aXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlKCk7CiAgICAgdm9pZCBzZXRXZWJzaXRlRGF0
YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUqKTsKIAorICAgIFdlYnNpdGVQb2xpY2llcyogZGVmYXVs
dFdlYnNpdGVQb2xpY2llcygpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdFdlYnNpdGVQb2xp
Y2llcyhXZWJzaXRlUG9saWNpZXMqKTsKKwogICAgIC8vIEZJWE1FOiBPbmNlIFBhZ2VDb25maWd1
cmF0aW9ucyAqYWx3YXlzKiBoYXZlIGEgZGF0YSBzdG9yZSwgZ2V0IHJpZCBvZiB0aGUgc2VwYXJh
dGUgc2Vzc2lvbklELgogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpOwogICAgIHZvaWQg
c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKQEAgLTEzNSw2ICsxMzksNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxXZWJLaXQ6OlZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9y
ZTsKIAogICAgIFJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7Cisg
ICAgUmVmUHRyPFdlYnNpdGVQb2xpY2llcz4gbV9kZWZhdWx0V2Vic2l0ZVBvbGljaWVzOwogICAg
IC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgaGF2ZSB0byBwYXNzIHRoZSBzZXNzaW9uIElEIHNlcGFy
YXRlbHkgaGVyZSB0byBzdXBwb3J0IHRoZSBsZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9u
LgogICAgIC8vIE9uY2Ugd2UgZ2V0IHJpZCBvZiBpdCB3ZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGlz
IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGFzIHdlbGwuCiAgICAgUEFMOjpTZXNzaW9uSUQgbV9z
ZXNzaW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IDhlZTQ2MmM0NmM4YmNjYzhhNTliODk3NGQ3
NTVkODhhYzdiMzQ0NmEuLmUxMjdkMGJkZjA0YjczMmVjMDU0MjkwNjk1MjczY2RmNzYyMDAxYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IEBjbGFzcyBXS05hdmlnYXRpb25BY3Rpb247CiBAY2xhc3MgV0tOYXZpZ2F0aW9uUmVzcG9uc2U7
CiBAY2xhc3MgV0tXZWJWaWV3OworQGNsYXNzIFdLV2VicGFnZVByZWZlcmVuY2VzOwogCiAvKiEg
QGVudW0gV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5CiAgQGFic3RyYWN0IFRoZSBwb2xpY3kgdG8g
cGFzcyBiYWNrIHRvIHRoZSBkZWNpc2lvbiBoYW5kbGVyIGZyb20gdGhlCkBAIC03Myw2ICs3NCwy
MiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGlj
eSkgewogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFj
dGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkp
ZGVjaXNpb25IYW5kbGVyOwogCisvKiEgQGFic3RyYWN0IERlY2lkZXMgd2hldGhlciB0byBhbGxv
dyBvciBjYW5jZWwgYSBuYXZpZ2F0aW9uLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBp
bnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorIEBwYXJhbSBuYXZpZ2F0aW9uQWN0aW9uIERl
c2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhY3Rpb24KKyB0cmlnZ2VyaW5nIHRoZSBu
YXZpZ2F0aW9uIHJlcXVlc3QuCisgQHBhcmFtIHByZWZlcmVuY2VzIFRoZSBkZWZhdWx0IHNldCBv
ZiB3ZWJwYWdlIHByZWZlcmVuY2VzLiBUaGlzIG1heSBiZQorIGNoYW5nZWQgYnkgc2V0dGluZyBk
ZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzIG9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uCisgQHBh
cmFtIGRlY2lzaW9uSGFuZGxlciBUaGUgcG9saWN5IGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCB0
byBhbGxvdyBvciBjYW5jZWwKKyB0aGUgbmF2aWdhdGlvbi4gVGhlIGFyZ3VtZW50cyBhcmUgb25l
IG9mIHRoZSBjb25zdGFudHMgb2YgdGhlIGVudW1lcmF0ZWQgdHlwZQorIFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSwgYXMgd2VsbCBhcyBhbiBpbnN0YW5jZSBvZiBXS1dlYnBhZ2VQcmVmZXJlbmNl
cy4KKyBAZGlzY3Vzc2lvbiBJZiB5b3UgaW1wbGVtZW50IHRoaXMgbWV0aG9kLAorIC13ZWJWaWV3
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOiB3aWxsIG5v
dCBiZSBjYWxsZWQuCisgT3RoZXJ3aXNlLCAtd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjogd2lsbCBiZQorIGNhbGxlZCBpZiBpdCBpcyBpbXBs
ZW1lbnRlZC4KKyAqLworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRp
b25BY3Rpb24gd2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVu
Y2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogLyohIEBhYnN0cmFjdCBEZWNp
ZGVzIHdoZXRoZXIgdG8gYWxsb3cgb3IgY2FuY2VsIGEgbmF2aWdhdGlvbiBhZnRlciBpdHMKICBy
ZXNwb25zZSBpcyBrbm93bi4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcg
dGhlIGRlbGVnYXRlIG1ldGhvZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IGQ2NGFkOWMzNjEwMjQwMmE5ZDVlMmY5MTFmNzYwYzk1Yzk0
Yzg5M2QuLmNmNDAwMzI4MGMyZGZiNDg2ZjRhZTYxYjJiNzM3ZDJkZTRjNGQxZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTc0LDYg
KzU3NCw3IEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0
VXNlckNvbnRlbnRDb250cm9sbGVyKFtfY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xs
ZXJdLT5fdXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuZ2V0KCkpOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5zZXRWaXNpdGVkTGlua1N0b3JlKFtfY29uZmlndXJhdGlvbiBfdmlzaXRlZExpbmtT
dG9yZV0tPl92aXNpdGVkTGlua1N0b3JlLmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0V2Vic2l0ZURhdGFTdG9yZShbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0tPl93
ZWJzaXRlRGF0YVN0b3JlLmdldCgpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0RGVmYXVs
dFdlYnNpdGVQb2xpY2llcyhbX2NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNl
c10tPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlm
IChhdXRvIHBhZ2VHcm91cCA9IFdlYktpdDo6dG9JbXBsKFtjb25maWd1cmF0aW9uIF9wYWdlR3Jv
dXBdKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKaW5kZXggNzVmYWRlZDRkNzNmNmQwYjcxNmM0MTg3
ZmQ2ZTUzMDZlMmE5ZGU3Yy4uNDJkMjRhOWE4MGJlZGZlYTRhNzdiMGJlM2QzY2Y4MjBhMDE2ZGJm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogQGNsYXNzIFdLUHJlZmVyZW5jZXM7CiBAY2xhc3MgV0tQcm9jZXNzUG9vbDsK
IEBjbGFzcyBXS1VzZXJDb250ZW50Q29udHJvbGxlcjsKK0BjbGFzcyBXS1dlYnBhZ2VQcmVmZXJl
bmNlczsKIEBjbGFzcyBXS1dlYnNpdGVEYXRhU3RvcmU7CiBAcHJvdG9jb2wgV0tVUkxTY2hlbWVI
YW5kbGVyOwogCkBAIC0xMjksNiArMTMwLDEyIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKQogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgV0tBdWRpb3Zpc3VhbE1l
ZGlhVHlwZXMgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAorLyohIEBhYnN0cmFjdCBUaGUg
c2V0IG9mIGRlZmF1bHQgd2VicGFnZSBwcmVmZXJlbmNlcyB0byB1c2Ugd2hlbiBsb2FkaW5nIGFu
ZCByZW5kZXJpbmcgY29udGVudC4KKyBAZGlzY3Vzc2lvbiBUaGVzZSBkZWZhdWx0IHdlYnBhZ2Ug
cHJlZmVyZW5jZXMgYXJlIGFkZGl0aW9uYWxseSBwYXNzZWQgdG8gdGhlIG5hdmlnYXRpb24gZGVs
ZWdhdGUKKyBpbiAtd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndpdGhQ
cmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6LgorICovCitAcHJvcGVydHkgKG51bGxfcmVzZXR0
YWJsZSwgbm9uYXRvbWljLCBjb3B5KSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqZGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLyohIEBhYnN0cmFjdCBBIEJvb2xl
YW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUTUw1IHZpZGVvcyBwbGF5IGlubGluZQogIChZ
RVMpIG9yIHVzZSB0aGUgbmF0aXZlIGZ1bGwtc2NyZWVuIGNvbnRyb2xsZXIgKE5PKS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0KaW5kZXggZDYwMmFhZjRmMjAxNDkyNTM1OGRlNTViM2M1NzEwZWNmOTk5
OTlkYy4uN2U4OTE2YTBhMDRmZmRlMzA3OGE2ODkyYzdhM2JlMjRjMzEzM2FlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0KQEAgLTExOCw2ICsxMTgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiB7CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1VzZXJD
b250ZW50Q29udHJvbGxlcj4+IF91c2VyQ29udGVudENvbnRyb2xsZXI7CiAgICAgTGF6eUluaXRp
YWxpemVkPFJldGFpblB0cjxfV0tWaXNpdGVkTGlua1N0b3JlPj4gX3Zpc2l0ZWRMaW5rU3RvcmU7
CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1dlYnNpdGVEYXRhU3RvcmU+PiBfd2Vi
c2l0ZURhdGFTdG9yZTsKKyAgICBMYXp5SW5pdGlhbGl6ZWQ8UmV0YWluUHRyPFdLV2VicGFnZVBy
ZWZlcmVuY2VzPj4gX2RlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXM7CiAgICAgV2Vha09iakNQdHI8
V0tXZWJWaWV3PiBfcmVsYXRlZFdlYlZpZXc7CiAgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBf
YWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlczsKICAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IF9ncm91cElkZW50aWZpZXI7CkBAIC0zNTcsNiArMzU4LDcgQEAgLSAoaWQpY29weVdp
dGhab25lOihOU1pvbmUgKil6b25lCiAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcyA9IHNl
bGYucHJlZmVyZW5jZXM7CiAgICAgY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIg
PSBzZWxmLnVzZXJDb250ZW50Q29udHJvbGxlcjsKICAgICBjb25maWd1cmF0aW9uLndlYnNpdGVE
YXRhU3RvcmUgPSBzZWxmLndlYnNpdGVEYXRhU3RvcmU7CisgICAgY29uZmlndXJhdGlvbi5kZWZh
dWx0V2VicGFnZVByZWZlcmVuY2VzID0gc2VsZi5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzOwog
ICAgIGNvbmZpZ3VyYXRpb24uX3Zpc2l0ZWRMaW5rU3RvcmUgPSBzZWxmLl92aXNpdGVkTGlua1N0
b3JlOwogICAgIGNvbmZpZ3VyYXRpb24uX3JlbGF0ZWRXZWJWaWV3ID0gX3JlbGF0ZWRXZWJWaWV3
LmdldCgpLmdldCgpOwogICAgIGNvbmZpZ3VyYXRpb24uX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZp
Z2F0aW9uR2VzdHVyZXMgPSBfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlcy5n
ZXQoKS5nZXQoKTsKQEAgLTQ3Myw2ICs0NzUsMTggQEAgLSAodm9pZClzZXRXZWJzaXRlRGF0YVN0
b3JlOihXS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlCiAgICAgX3dlYnNpdGVE
YXRhU3RvcmUuc2V0KHdlYnNpdGVEYXRhU3RvcmUpOwogfQogCistIChXS1dlYnBhZ2VQcmVmZXJl
bmNlcyAqKWRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMKK3sKKyAgICByZXR1cm4gX2RlZmF1bHRX
ZWJwYWdlUHJlZmVyZW5jZXMuZ2V0KFtdIHsKKyAgICAgICAgcmV0dXJuIFdLV2VicGFnZVByZWZl
cmVuY2VzLmRlZmF1bHRQcmVmZXJlbmNlczsKKyAgICB9KTsKK30KKworLSAodm9pZClzZXREZWZh
dWx0V2VicGFnZVByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKWRlZmF1bHRXZWJw
YWdlUHJlZmVyZW5jZXMKK3sKKyAgICBfZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5zZXQoZGVm
YXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyA/OiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5kZWZhdWx0UHJl
ZmVyZW5jZXMpOworfQorCiBzdGF0aWMgTlNTdHJpbmcgKmRlZmF1bHRBcHBsaWNhdGlvbk5hbWVG
b3JVc2VyQWdlbnQoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5o
CmluZGV4IGM5NjcyNmU3OGE5NjBlYWEwZjk2ZmVkMmZjYzcxODg1NGNhNjNiZTguLjViMTM2NjNk
ZjAzODFkYjQ2YzU4NjI0MjVjNWU0OTVkYWRlNjU4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCkBAIC0y
NSw2ICsyNSwxMCBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLV2VicGFn
ZVByZWZlcmVuY2VzQWRkaXRpb25zQmVmb3JlLmg+CisjZW5kaWYKKwogLyohIEEgV0tXZWJwYWdl
UHJlZmVyZW5jZXMgb2JqZWN0IGlzIGEgY29sbGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHRoYXQKICBk
ZXRlcm1pbmUgdGhlIHByZWZlcmVuY2VzIHRvIHVzZSB3aGVuIGxvYWRpbmcgYW5kIHJlbmRlcmlu
ZyBhIHBhZ2UuCiAgQGRpc2N1c3Npb24gQ29udGFpbnMgcHJvcGVydGllcyB1c2VkIHRvIGRldGVy
bWluZSB3ZWJwYWdlIHByZWZlcmVuY2VzLgpAQCAtMzIsNCArMzYsOCBAQAogV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIFdL
V2VicGFnZVByZWZlcmVuY2VzIDogTlNPYmplY3QKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tXZWJwYWdlUHJlZmVyZW5jZXNBZGRpdGlv
bnNBZnRlci5oPgorI2VuZGlmCisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLmgKaW5kZXggMWYwZDVmNDdiZmYxNmJhN2M2YzUyM2FlZDRk
MzJkODU0NDlkODE4OS4uZGE2YmY1Y2M5MzllYjRiNDhmNWNjYzQyYWRlNTg3ZjIyMGI3OWQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgK
QEAgLTE4Niw2ICsxODYsNyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IHsKICAgICAgICAgYm9v
bCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlciA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25X
aXRoUHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGlj
aWVzIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVjaXNpb25IYW5k
bGVyIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbQppbmRleCBlYWQ1Nzk1NmUzZjc1YzI1MGEzZmY1MGI0MjUwODIwNDM4ODNkMzViLi5l
YjkxZDk2YWY3YWE2M2ZkYzRkZTM2MzY1MzA2MDJkZWM3M2QxYjczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0zMCw2ICszMCw3
IEBACiAjaW1wb3J0ICJBUElGcmFtZUluZm8uaCIKICNpbXBvcnQgIkFQSU5hdmlnYXRpb25EYXRh
LmgiCiAjaW1wb3J0ICJBUElOYXZpZ2F0aW9uUmVzcG9uc2UuaCIKKyNpbXBvcnQgIkFQSVBhZ2VD
b25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKICNpbXBvcnQgIkFQSVVSTC5o
IgogI2ltcG9ydCAiQVBJV2Vic2l0ZURhdGFTdG9yZS5oIgpAQCAtMTQ4LDYgKzE0OSw3IEBAIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUoaWQgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZSA9IGRlbGVnYXRl
OwogCiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OmRlY2lzaW9uSGFuZGxlcjopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNEZWNpc2lv
bkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d2l0aFByZWZlcmVuY2VzOmRlY2lzaW9u
SGFuZGxlcjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX25hdmln
YXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVj
aXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOild
OwpAQCAtNTA4LDE4ICs1MTAsMjAgQEAgc3RhdGljIHZvaWQgdHJ5SW50ZXJjZXB0TmF2aWdhdGlv
bihSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24KIHZvaWQgTmF2
aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0
aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+
JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1c2VySW5mbykKIHsKICAgICBib29sIHN1YmZyYW1l
TmF2aWdhdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24tPnRhcmdldEZyYW1lKCkgJiYgIW5hdmlnYXRp
b25BY3Rpb24tPnRhcmdldEZyYW1lKCktPmlzTWFpbkZyYW1lKCk7CisgICAgYXV0byBkZWZhdWx0
V2Vic2l0ZVBvbGljaWVzID0gbWFrZVJlZlB0cih3ZWJQYWdlUHJveHkuY29uZmlndXJhdGlvbigp
LmRlZmF1bHRXZWJzaXRlUG9saWNpZXMoKSk7CiAKICAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRl
Lm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcgorICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUu
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyCiAgICAgICAgICYmICFtX25h
dmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMKICAg
ICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5k
bGVyV2Vic2l0ZVBvbGljaWVzKSB7Ci0gICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBb
d2ViUGFnZSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgbGlzdGVuZXIgPSBXVEZNb3ZlKGxpc3Rl
bmVyKSwgbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigpXSAoYm9v
bCBpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxl
ciA9IFt3ZWJQYWdlID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBsaXN0ZW5lciA9IFdURk1vdmUo
bGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5UmVmKCks
IGRlZmF1bHRXZWJzaXRlUG9saWNpZXNdIChib29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgewog
ICAgICAgICAgICAgaWYgKGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAgICAgICAg
IGxpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGlmICghbmF2aWdhdGlvbkFjdGlvbi0+dGFyZ2V0RnJhbWUoKSkg
ewotICAgICAgICAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKKyAgICAgICAgICAgICAgICBsaXN0
ZW5lci0+dXNlKGRlZmF1bHRXZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KIApAQCAtNTI4LDcgKzUzMiw3IEBAIHZvaWQgTmF2aWdh
dGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdlYlBhZ2VQCiAgICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3Vs
ZFBlcmZvcm1Eb3dubG9hZCgpKQogICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci0+ZG93bmxv
YWQoKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGxpc3RlbmVy
LT51c2UoKTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXItPnVzZShkZWZhdWx0V2Vic2l0
ZVBvbGljaWVzLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAKQEAgLTU0OCwyOCArNTUyLDM3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgaWYg
KCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGJvb2wgZGVsZWdh
dGVIYXNXZWJwYWdlUHJlZmVyZW5jZXMgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRo
UHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXI7CiAgICAgYm9vbCBkZWxlZ2F0ZUhhc1dlYnNpdGVQ
b2xpY2llcyA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNp
dGVQb2xpY2llcyB8fCBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9u
SGFuZGxlcldlYnNpdGVQb2xpY2llczsKKworICAgIGF1dG8gc2VsZWN0b3JGb3JDb21wbGV0aW9u
SGFuZGxlckNoZWNrZXIgPSAoWyZdICgpIC0+IFNFTCB7CisgICAgICAgIGlmIChkZWxlZ2F0ZUhh
c1dlYnBhZ2VQcmVmZXJlbmNlcykKKyAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Iod2ViVmll
dzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndpdGhQcmVmZXJlbmNlczpkZWNpc2lv
bkhhbmRsZXI6KTsKKyAgICAgICAgaWYgKGRlbGVnYXRlSGFzV2Vic2l0ZVBvbGljaWVzKQorICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopOworICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHdl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KTsK
KyAgICB9KSgpOworCisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlcjo6Y3JlYXRlKG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSwgc2VsZWN0b3JGb3JDb21wbGV0
aW9uSGFuZGxlckNoZWNrZXIpOwogICAgIAotICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCksIGRlbGVn
YXRlSGFzV2Vic2l0ZVBvbGljaWVzID8gQHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOikgOiBAc2VsZWN0b3Iod2ViVmlldzpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopKTsKLSAgICAK
LSAgICBhdXRvIGRlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyA9IFtsb2NhbExpc3RlbmVyID0g
V1RGTW92ZShsaXN0ZW5lciksIG5hdmlnYXRpb25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmNv
cHlSZWYoKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlciksIHdlYlBhZ2VQcm94eSA9IG1ha2VS
ZWYod2ViUGFnZVByb3h5KSwgc3ViZnJhbWVOYXZpZ2F0aW9uXShXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3kgYWN0aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKndlYnNpdGVQb2xpY2llcykg
bXV0YWJsZSB7CisgICAgYXV0byBkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXMgPSBbbG9j
YWxMaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdh
dGlvbkFjdGlvbi5jb3B5UmVmKCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpLCB3ZWJQYWdl
UHJveHkgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIHN1YmZyYW1lTmF2aWdhdGlvbiwgZGVmYXVs
dFdlYnNpdGVQb2xpY2llc10gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3ks
IFdLV2VicGFnZVByZWZlcmVuY2VzICp3ZWJwYWdlUHJlZmVyZW5jZXMpIG11dGFibGUgewogICAg
ICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxl
cigpOwogCi0gICAgICAgIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4gYXBpV2Vic2l0ZVBv
bGljaWVzID0gW3dlYnNpdGVQb2xpY2llcyB3ZWJwYWdlUHJlZmVyZW5jZXNdID8gW3dlYnNpdGVQ
b2xpY2llcyB3ZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vic2l0ZVBvbGljaWVzLmdldCgpIDogbnVs
bHB0cjsKKyAgICAgICAgYXV0byBhcGlXZWJzaXRlUG9saWNpZXMgPSB3ZWJwYWdlUHJlZmVyZW5j
ZXMgPyBtYWtlUmVmUHRyKHdlYnBhZ2VQcmVmZXJlbmNlcy0+X3dlYnNpdGVQb2xpY2llcy5nZXQo
KSkgOiBkZWZhdWx0V2Vic2l0ZVBvbGljaWVzOwogICAgICAgICBpZiAoYXBpV2Vic2l0ZVBvbGlj
aWVzKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogd2Vic2l0ZURhdGFTdG9yZSA9IGFwaVdlYnNp
dGVQb2xpY2llcy0+d2Vic2l0ZURhdGFTdG9yZSgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBz
ZXNzaW9uSUQgPSB3ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklE
KCk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSAmJiBzZXNz
aW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKLSAgICAgICAgICAg
ICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZv
cm1hdDpAIl9XS1dlYnNpdGVQb2xpY2llcy53ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsLCBk
ZWZhdWx0LCBvciBub24tcGVyc2lzdGVudC4iXTsKKyAgICAgICAgICAgICAgICAgICAgW05TRXhj
ZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2VicGFn
ZVByZWZlcmVuY2VzLndlYnNpdGVEYXRhU3RvcmUgbXVzdCBiZSBuaWwsIGRlZmF1bHQsIG9yIG5v
bi1wZXJzaXN0ZW50LiJdOwogICAgICAgICAgICAgICAgIGlmIChzdWJmcmFtZU5hdmlnYXRpb24p
Ci0gICAgICAgICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVu
dEV4Y2VwdGlvbiBmb3JtYXQ6QCJfV0tXZWJzaXRlUG9saWNpZXMud2Vic2l0ZURhdGFTdG9yZSBt
dXN0IGJlIG5pbCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIl07CisgICAgICAgICAgICAgICAg
ICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6
QCJXS1dlYnBhZ2VQcmVmZXJlbmNlcy53ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsIGZvciBz
dWJmcmFtZSBuYXZpZ2F0aW9ucy4iXTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICgh
YXBpV2Vic2l0ZVBvbGljaWVzLT5jdXN0b21Vc2VyQWdlbnQoKS5pc051bGwoKSAmJiBzdWJmcmFt
ZU5hdmlnYXRpb24pCi0gICAgICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxp
ZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIl9XS1dlYnNpdGVQb2xpY2llcy5jdXN0b21Vc2Vy
QWdlbnQgbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOworICAgICAgICAg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3Jt
YXQ6QCJXS1dlYnBhZ2VQcmVmZXJlbmNlcy5jdXN0b21Vc2VyQWdlbnQgbXVzdCBiZSBuaWwgZm9y
IHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwogICAgICAgICAgICAgaWYgKCFhcGlXZWJzaXRlUG9s
aWNpZXMtPmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtKCkuaXNOdWxsKCkgJiYgc3ViZnJhbWVOYXZp
Z2F0aW9uKQotICAgICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1
bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJfV0tXZWJzaXRlUG9saWNpZXMuY3VzdG9tTmF2aWdhdG9y
UGxhdGZvcm0gbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOworICAgICAg
ICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBm
b3JtYXQ6QCJXS1dlYnBhZ2VQcmVmZXJlbmNlcy5jdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBtdXN0
IGJlIG5pbCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIl07CiAgICAgICAgIH0KIAogICAgICAg
ICBzd2l0Y2ggKGFjdGlvblBvbGljeSkgewpAQCAtNjA1LDggKzYxOCwxMyBAQCB2b2lkIE5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihXZWJQYWdlUAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9OwotICAg
IAotICAgIGlmIChkZWxlZ2F0ZUhhc1dlYnNpdGVQb2xpY2llcykgeworCisgICAgaWYgKGRlbGVn
YXRlSGFzV2VicGFnZVByZWZlcmVuY2VzKQorICAgICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdl
YlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSB3aXRoUHJlZmVyZW5jZXM6d3JhcHBl
cihkZWZhdWx0V2Vic2l0ZVBvbGljaWVzKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFdU
Rk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzKSkuZ2V0KCldOworICAgIGVsc2Ug
aWYgKGRlbGVnYXRlSGFzV2Vic2l0ZVBvbGljaWVzKSB7CisgICAgICAgIGF1dG8gZGVjaXNpb25I
YW5kbGVyV2l0aFBvbGljaWVzID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlcyA9IFdU
Rk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzKV0gKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSBhY3Rpb25Qb2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqd2Vic2l0ZVBvbGljaWVz
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlcyhh
Y3Rpb25Qb2xpY3ksIHdlYnNpdGVQb2xpY2llcy53ZWJwYWdlUHJlZmVyZW5jZXMpOworICAgICAg
ICB9OwogICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihXVEZNb3Zl
KGRlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcykpOwogICAgICAgICBpZiAobV9uYXZpZ2F0aW9u
U3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpCiAg
ICAgICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25E
ZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIHVzZXJJbmZvOnVz
ZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBw
ZXIoKSkgOiBuaWwgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CkBAIC02
MTYsMTAgKzYzNCwxMCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgICAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIH0KICAgICB9IGVsc2Ugewot
ICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlcldpdGhvdXRQb2xpY2llcyA9IFtkZWNpc2lvbkhh
bmRsZXJXaXRoUG9saWNpZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyld
IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgYWN0aW9uUG9saWN5KSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgIGRlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyhhY3Rpb25Qb2xpY3ksIG5pbCk7Cisg
ICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyV2l0aG91dFByZWZlcmVuY2VzID0gW2RlY2lzaW9u
SGFuZGxlcldpdGhQcmVmZXJlbmNlcyA9IFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFByZWZl
cmVuY2VzKV0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3kpIG11dGFibGUg
eworICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzKGFjdGlvblBvbGlj
eSwgbmlsKTsKICAgICAgICAgfTsKLSAgICAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0
cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhvdXRQb2xpY2llcykpLmdldCgpXTsKKyAgICAg
ICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlv
bikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldp
dGhvdXRQcmVmZXJlbmNlcykpLmdldCgpXTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY2ZmRmZDYxZjA4Y2Y3NGM5
YjJkZjhiY2EzZjVhZTQ0ZGIwNGJmNGUuLjRmMzc0NmY0ZDVjMjg3ZjNiYWEzZjViNTY4N2JiMmU5
Y2RhNTJhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTYzNCw3ICsxNjM0LDcgQEAKIAkJRUNBNjgwRDgxRTY5MEUyNTAwNzMxRDIw
IC8qIFdlYlByb2Nlc3NDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRUNBNjgwRDcxRTY5MERGODAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVEODJB
N0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3
NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdE
ZXN0aW5hdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQwOUJBMTcxRTZFNjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
RjQzOENEMUMyMjQxNDIxNDAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM4Q0QxQjIyNDE0MEE2
MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNDM4Q0QxQzIyNDE0MjE0MDBERTZEREEgLyog
V0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0MzhDRDFCMjI0MTQwQTYwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJl
bmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJ
RjQzOENEMUYyMjQxNEQ0MDAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDFF
MjI0MTRENDAwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmggKi87IH07
CiAJCUY0MzhDRDIxMjI0MUY2OTUwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhD
RDIwMjI0MUY2OTUwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDQyOTE5MjFG
QTU5MUM5MDAyQ0M5M0UgLyogX1dLQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0MjkxOTExRkE1OTEwNzAwMkNDOTNFIC8qIF9XS0F0
dGFjaG1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366543</attachid>
            <date>2019-04-02 15:07:09 -0700</date>
            <delta_ts>2019-04-02 17:27:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196284-20190402150708.patch</filename>
            <type>text/plain</type>
            <size>32812</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiYTc3ZThmN2RkMTUzNTE3
Mzk3MThhYTllMWI2MWVjYjA4YjQ3ZTguLmE2MTg5MmQ4ZjIwYjU5MjBkNTBkMTczZThkMzc4ZjBj
Y2FkODRlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDQtMDIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgbmV3
IEFQSSBhcm91bmQgV0tXZWJwYWdlUHJlZmVyZW5jZXMgaW4gV0tOYXZpZ2F0aW9uRGVsZWdhdGUg
YW5kIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NjI4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyMjgy
MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHMgZm9yIGJvdGggb2YgdGhlc2UgQVBJcyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBw
YXRjaC4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV2ViS2l0Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpkZWZhdWx0V2Vic2l0ZVBvbGljaWVzIGNvbnN0KToKKyAgICAgICAg
KEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg6CisKKyAgICAgICAgQWRk
IGEgbmV3IG5hdmlnYXRpb24gZGVsZWdhdGUgaG9vayB0byBhbGxvdyBjbGllbnRzIHRvIHJldHVy
biBhIFdLV2VicGFnZVByZWZlcmVuY2UgdGFyZ2V0aW5nIHRoZSBnaXZlbgorICAgICAgICBuYXZp
Z2F0aW9uIGFjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
bW06CisKKyAgICAgICAgQWRkIG5ldyBBUEkgb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB0byBz
cGVjaWZ5IGEgZGVmYXVsdCBXS1dlYnBhZ2VQcmVmZXJlbmNlIHRvIHVzZSB3aGVuIG5hdmlnYXRp
bmcuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6
CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJl
bmNlc10pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIHNldERlZmF1bHRXZWJw
YWdlUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBh
Z2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisKKyAgICAgICAgSW52b2tlIHRoZSBuZXcgV0tX
ZWJwYWdlUHJlZmVyZW5jZXMtYmFzZWQgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBtZXRob2QuCisKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBtYWMv
cG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2g6CisgICAgICAgICogbWFjL3JlcGxhY2Ut
d2Via2l0LWFkZGl0aW9ucy1pbi1mcmFtZXdvcmstaGVhZGVycy5zaDogQWRkZWQuCisKKyAgICAg
ICAgTW92ZSBsb2dpYyBpbiB0aGUgIlBvc3Rwcm9jZXNzIEZyYW1ld29yayBIZWFkZXJzIiBzdGVw
IHJlc3BvbnNpYmxlIGZvciBzdHJpcHBpbmcgYXdheSBpbmNsdWRlZCBmaWxlcyBmcm9tCisgICAg
ICAgIFdlYktpdEFkZGl0aW9ucyBvdXQgaW50byBhIHNlcGFyYXRlIGJ1aWxkIHBoYXNlLCBjYWxs
ZWQgIlJlcGxhY2UgV2ViS2l0QWRkaXRpb25zIGluIEZyYW1ld29yayBIZWFkZXJzIi4gVGhpcwor
ICAgICAgICBlbnN1cmVzIGhlYWRlcnMgYXR0ZW1wdGluZyB0byBpbmNsdWRlIGZyb20gV2ViS2l0
QWRkaXRpb25zIGhhdmUgdGhlc2UgYWRkaXRpb25hbCBzdGF0ZW1lbnRzIHJlbW92ZWQuCisKIDIw
MTktMDQtMDIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjI0MzcyNik6IENyYXNoIGF0IHVucmVjb2duaXplZCBzZWxlY3Rvcjog
LVtXS1dlYnBhZ2VQcmVmZXJlbmNlcyB3ZWJwYWdlUHJlZmVyZW5jZXNdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvV2ViS2l0LmgKaW5kZXggNTNmYzUzZGJkMWQzYzkwYTllMDI4Yzc5YWI4
NWNhNTc2OTVhNjljOC4uNGI0OGE0MDQ3MTBiMmY0N2RjZWU1YWEzOTQzMmI5MmMyY2M4Mzk3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaApAQCAtNTIsNiArNTIsNyBA
QAogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNpbXBv
cnQgPFdlYktpdC9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFSZWNvcmQuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dpbmRvd0ZlYXR1cmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCAxZjA0OWMy
YTIzYTA1MThlZGQwNzBjNDRiMjU2NzJmMWMzNjU5OWM3Li4xNzdiOTk5ODg0MDJlM2NlYjk2MTVj
OTNjZDFhZTMzZDg1OWZhM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogCiAjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiQVBJV2Vic2l0ZVBvbGljaWVzLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UHJlZmVyZW5jZXMuaCIKQEAgLTE2NCw2ICsxNjUsMTYgQEAgdm9pZCBQYWdlQ29uZmlndXJhdGlv
bjo6c2V0V2Vic2l0ZURhdGFTdG9yZShBUEk6OldlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRh
U3QKICAgICAgICAgbV9zZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRCgpOwogfQogCitXZWJzaXRl
UG9saWNpZXMqIFBhZ2VDb25maWd1cmF0aW9uOjpkZWZhdWx0V2Vic2l0ZVBvbGljaWVzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9kZWZhdWx0V2Vic2l0ZVBvbGljaWVzLmdldCgpOworfQorCit2
b2lkIFBhZ2VDb25maWd1cmF0aW9uOjpzZXREZWZhdWx0V2Vic2l0ZVBvbGljaWVzKFdlYnNpdGVQ
b2xpY2llcyogcG9saWNpZXMpCit7CisgICAgbV9kZWZhdWx0V2Vic2l0ZVBvbGljaWVzID0gcG9s
aWNpZXM7Cit9CisKIFBBTDo6U2Vzc2lvbklEIFBhZ2VDb25maWd1cmF0aW9uOjpzZXNzaW9uSUQo
KQogewogICAgIEFTU0VSVCghbV93ZWJzaXRlRGF0YVN0b3JlIHx8IG1fd2Vic2l0ZURhdGFTdG9y
ZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpID09IG1fc2Vzc2lvbklEIHx8IG1fc2Vz
c2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApp
bmRleCBiNWZhNmZmMzA3ZWY4ZWI5YzFmNWVhNDA2MDQxYzU2Yzc1ZTNhNmNjLi42NGE0OTRhMTli
MzMxYTM5YTMyMjIwNTI0NWJmYWU5MWY5ZTY4NDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNDUsNiArNDUsNyBAQCBu
YW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgQXBwbGljYXRpb25NYW5pZmVzdDsKIGNsYXNzIFdlYnNp
dGVEYXRhU3RvcmU7CitjbGFzcyBXZWJzaXRlUG9saWNpZXM7CiAKIGNsYXNzIFBhZ2VDb25maWd1
cmF0aW9uIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpQYWdlQ29uZmlndXJhdGlv
bj4gewogcHVibGljOgpAQCAtODEsNiArODIsOSBAQCBwdWJsaWM6CiAgICAgV2Vic2l0ZURhdGFT
dG9yZSogd2Vic2l0ZURhdGFTdG9yZSgpOwogICAgIHZvaWQgc2V0V2Vic2l0ZURhdGFTdG9yZShX
ZWJzaXRlRGF0YVN0b3JlKik7CiAKKyAgICBXZWJzaXRlUG9saWNpZXMqIGRlZmF1bHRXZWJzaXRl
UG9saWNpZXMoKSBjb25zdDsKKyAgICB2b2lkIHNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMoV2Vi
c2l0ZVBvbGljaWVzKik7CisKICAgICAvLyBGSVhNRTogT25jZSBQYWdlQ29uZmlndXJhdGlvbnMg
KmFsd2F5cyogaGF2ZSBhIGRhdGEgc3RvcmUsIGdldCByaWQgb2YgdGhlIHNlcGFyYXRlIHNlc3Np
b25JRC4KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKTsKICAgICB2b2lkIHNldFNlc3Np
b25JRChQQUw6OlNlc3Npb25JRCk7CkBAIC0xMzUsNiArMTM5LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8V2ViS2l0OjpWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAKICAg
ICBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOworICAgIFJlZlB0
cjxXZWJzaXRlUG9saWNpZXM+IG1fZGVmYXVsdFdlYnNpdGVQb2xpY2llczsKICAgICAvLyBGSVhN
RTogV2UgY3VycmVudGx5IGhhdmUgdG8gcGFzcyB0aGUgc2Vzc2lvbiBJRCBzZXBhcmF0ZWx5IGhl
cmUgdG8gc3VwcG9ydCB0aGUgbGVnYWN5IHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbi4KICAgICAv
LyBPbmNlIHdlIGdldCByaWQgb2YgaXQgd2Ugc2hvdWxkIGdldCByaWQgb2YgdGhpcyBjb25maWd1
cmF0aW9uIHBhcmFtZXRlciBhcyB3ZWxsLgogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uRGVsZWdhdGUuaAppbmRleCA4ZWU0NjJjNDZjOGJjY2M4YTU5Yjg5NzRkNzU1ZDg4YWM3
YjM0NDZhLi5lMTI3ZDBiZGYwNGI3MzJlYzA1NDI5MDY5NTI3M2NkZjc2MjAwMWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
RGVsZWdhdGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMyw2ICszMyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBAY2xhc3Mg
V0tOYXZpZ2F0aW9uQWN0aW9uOwogQGNsYXNzIFdLTmF2aWdhdGlvblJlc3BvbnNlOwogQGNsYXNz
IFdLV2ViVmlldzsKK0BjbGFzcyBXS1dlYnBhZ2VQcmVmZXJlbmNlczsKIAogLyohIEBlbnVtIFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeQogIEBhYnN0cmFjdCBUaGUgcG9saWN5IHRvIHBhc3MgYmFj
ayB0byB0aGUgZGVjaXNpb24gaGFuZGxlciBmcm9tIHRoZQpAQCAtNzMsNiArNzQsMjIgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpIHsKICAq
LwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKWRlY2lzaW9u
SGFuZGxlcjsKIAorLyohIEBhYnN0cmFjdCBEZWNpZGVzIHdoZXRoZXIgdG8gYWxsb3cgb3IgY2Fu
Y2VsIGEgbmF2aWdhdGlvbi4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcg
dGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gbmF2aWdhdGlvbkFjdGlvbiBEZXNjcmlwdGl2
ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWN0aW9uCisgdHJpZ2dlcmluZyB0aGUgbmF2aWdhdGlv
biByZXF1ZXN0LgorIEBwYXJhbSBwcmVmZXJlbmNlcyBUaGUgZGVmYXVsdCBzZXQgb2Ygd2VicGFn
ZSBwcmVmZXJlbmNlcy4gVGhpcyBtYXkgYmUKKyBjaGFuZ2VkIGJ5IHNldHRpbmcgZGVmYXVsdFdl
YnBhZ2VQcmVmZXJlbmNlcyBvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uLgorIEBwYXJhbSBkZWNp
c2lvbkhhbmRsZXIgVGhlIHBvbGljeSBkZWNpc2lvbiBoYW5kbGVyIHRvIGNhbGwgdG8gYWxsb3cg
b3IgY2FuY2VsCisgdGhlIG5hdmlnYXRpb24uIFRoZSBhcmd1bWVudHMgYXJlIG9uZSBvZiB0aGUg
Y29uc3RhbnRzIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGUKKyBXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3ksIGFzIHdlbGwgYXMgYW4gaW5zdGFuY2Ugb2YgV0tXZWJwYWdlUHJlZmVyZW5jZXMuCisgQGRp
c2N1c3Npb24gSWYgeW91IGltcGxlbWVudCB0aGlzIG1ldGhvZCwKKyAtd2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjogd2lsbCBub3QgYmUgY2Fs
bGVkLgorIE90aGVyd2lzZSwgLXdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjpkZWNpc2lvbkhhbmRsZXI6IHdpbGwgYmUKKyBjYWxsZWQgaWYgaXQgaXMgaW1wbGVtZW50ZWQu
CisgKi8KKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9u
IHdpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdl
UHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC8qISBAYWJzdHJhY3QgRGVjaWRlcyB3aGV0
aGVyIHRvIGFsbG93IG9yIGNhbmNlbCBhIG5hdmlnYXRpb24gYWZ0ZXIgaXRzCiAgcmVzcG9uc2Ug
aXMga25vd24uCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxl
Z2F0ZSBtZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCBkNjRhZDljMzYxMDI0MDJhOWQ1ZTJmOTExZjc2MGM5NWM5NGM4OTNkLi5j
ZjQwMDMyODBjMmRmYjQ4NmY0YWU2MWIyYjczN2QyZGU0YzRkMWY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU3NCw2ICs1NzQsNyBA
QCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFVzZXJDb250
ZW50Q29udHJvbGxlcihbX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXS0+X3Vz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0VmlzaXRlZExpbmtTdG9yZShbX2NvbmZpZ3VyYXRpb24gX3Zpc2l0ZWRMaW5rU3RvcmVdLT5f
dmlzaXRlZExpbmtTdG9yZS5nZXQoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNp
dGVEYXRhU3RvcmUoW19jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdLT5fd2Vic2l0ZURh
dGFTdG9yZS5nZXQoKSk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldERlZmF1bHRXZWJzaXRl
UG9saWNpZXMoW19jb25maWd1cmF0aW9uIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vi
c2l0ZVBvbGljaWVzLmdldCgpKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoYXV0byBw
YWdlR3JvdXAgPSBXZWJLaXQ6OnRvSW1wbChbY29uZmlndXJhdGlvbiBfcGFnZUdyb3VwXSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5oCmluZGV4IDc1ZmFkZWQ0ZDczZjZkMGI3MTZjNDE4N2ZkNmU1MzA2
ZTJhOWRlN2MuLjQyZDI0YTlhODBiZWRmZWE0YTc3YjBiZTNkM2NmODIwYTAxNmRiZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KIEBjbGFzcyBXS1ByZWZlcmVuY2VzOwogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CiBAY2xhc3Mg
V0tVc2VyQ29udGVudENvbnRyb2xsZXI7CitAY2xhc3MgV0tXZWJwYWdlUHJlZmVyZW5jZXM7CiBA
Y2xhc3MgV0tXZWJzaXRlRGF0YVN0b3JlOwogQHByb3RvY29sIFdLVVJMU2NoZW1lSGFuZGxlcjsK
IApAQCAtMTI5LDYgKzEzMCwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBp
b3MoOC4wKSkKIAogQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVz
IG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKKy8qISBAYWJzdHJhY3QgVGhlIHNldCBvZiBk
ZWZhdWx0IHdlYnBhZ2UgcHJlZmVyZW5jZXMgdG8gdXNlIHdoZW4gbG9hZGluZyBhbmQgcmVuZGVy
aW5nIGNvbnRlbnQuCisgQGRpc2N1c3Npb24gVGhlc2UgZGVmYXVsdCB3ZWJwYWdlIHByZWZlcmVu
Y2VzIGFyZSBhZGRpdGlvbmFsbHkgcGFzc2VkIHRvIHRoZSBuYXZpZ2F0aW9uIGRlbGVnYXRlCisg
aW4gLXdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3aXRoUHJlZmVyZW5j
ZXM6ZGVjaXNpb25IYW5kbGVyOi4KKyAqLworQHByb3BlcnR5IChudWxsX3Jlc2V0dGFibGUsIG5v
bmF0b21pYywgY29weSkgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKmRlZmF1bHRXZWJwYWdlUHJlZmVy
ZW5jZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVl
IGluZGljYXRpbmcgd2hldGhlciBIVE1MNSB2aWRlb3MgcGxheSBpbmxpbmUKICAoWUVTKSBvciB1
c2UgdGhlIG5hdGl2ZSBmdWxsLXNjcmVlbiBjb250cm9sbGVyIChOTykuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tCmluZGV4IGQ2MDJhYWY0ZjIwMTQ5MjUzNThkZTU1YjNjNTcxMGVjZjk5OTk5ZGMuLjdl
ODkxNmEwYTA0ZmZkZTMwNzhhNjg5MmM3YTNiZTI0YzMxMzNhZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tCkBAIC0xMTgsNiArMTE4LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24gewogICAgIExhenlJbml0aWFsaXplZDxSZXRhaW5QdHI8V0tVc2VyQ29udGVudENv
bnRyb2xsZXI+PiBfdXNlckNvbnRlbnRDb250cm9sbGVyOwogICAgIExhenlJbml0aWFsaXplZDxS
ZXRhaW5QdHI8X1dLVmlzaXRlZExpbmtTdG9yZT4+IF92aXNpdGVkTGlua1N0b3JlOwogICAgIExh
enlJbml0aWFsaXplZDxSZXRhaW5QdHI8V0tXZWJzaXRlRGF0YVN0b3JlPj4gX3dlYnNpdGVEYXRh
U3RvcmU7CisgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNl
cz4+IF9kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzOwogICAgIFdlYWtPYmpDUHRyPFdLV2ViVmll
dz4gX3JlbGF0ZWRXZWJWaWV3OwogICAgIFdlYWtPYmpDUHRyPFdLV2ViVmlldz4gX2FsdGVybmF0
ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBf
Z3JvdXBJZGVudGlmaWVyOwpAQCAtMzU3LDYgKzM1OCw3IEBAIC0gKGlkKWNvcHlXaXRoWm9uZToo
TlNab25lICopem9uZQogICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMgPSBzZWxmLnByZWZl
cmVuY2VzOwogICAgIGNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyID0gc2VsZi51
c2VyQ29udGVudENvbnRyb2xsZXI7CiAgICAgY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3Jl
ID0gc2VsZi53ZWJzaXRlRGF0YVN0b3JlOworICAgIGNvbmZpZ3VyYXRpb24uZGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlcyA9IHNlbGYuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlczsKICAgICBjb25m
aWd1cmF0aW9uLl92aXNpdGVkTGlua1N0b3JlID0gc2VsZi5fdmlzaXRlZExpbmtTdG9yZTsKICAg
ICBjb25maWd1cmF0aW9uLl9yZWxhdGVkV2ViVmlldyA9IF9yZWxhdGVkV2ViVmlldy5nZXQoKS5n
ZXQoKTsKICAgICBjb25maWd1cmF0aW9uLl9hbHRlcm5hdGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdl
c3R1cmVzID0gX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXMuZ2V0KCkuZ2V0
KCk7CkBAIC00NzMsNiArNDc1LDE4IEBAIC0gKHZvaWQpc2V0V2Vic2l0ZURhdGFTdG9yZTooV0tX
ZWJzaXRlRGF0YVN0b3JlICopd2Vic2l0ZURhdGFTdG9yZQogICAgIF93ZWJzaXRlRGF0YVN0b3Jl
LnNldCh3ZWJzaXRlRGF0YVN0b3JlKTsKIH0KIAorLSAoV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilk
ZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzCit7CisgICAgcmV0dXJuIF9kZWZhdWx0V2VicGFnZVBy
ZWZlcmVuY2VzLmdldChbXSB7CisgICAgICAgIHJldHVybiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5k
ZWZhdWx0UHJlZmVyZW5jZXM7CisgICAgfSk7Cit9CisKKy0gKHZvaWQpc2V0RGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilkZWZhdWx0V2VicGFnZVByZWZl
cmVuY2VzCit7CisgICAgX2RlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuc2V0KGRlZmF1bHRXZWJw
YWdlUHJlZmVyZW5jZXMgPzogV0tXZWJwYWdlUHJlZmVyZW5jZXMuZGVmYXVsdFByZWZlcmVuY2Vz
KTsKK30KKwogc3RhdGljIE5TU3RyaW5nICpkZWZhdWx0QXBwbGljYXRpb25OYW1lRm9yVXNlckFn
ZW50KCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAppbmRleCBj
OTY3MjZlNzhhOTYwZWFhMGY5NmZlZDJmY2M3MTg4NTRjYTYzYmU4Li41YjEzNjYzZGYwMzgxZGI0
NmM1ODYyNDI1YzVlNDk1ZGFkZTY1ODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaApAQCAtMjUsNiArMjUs
MTAgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS1dlYnBhZ2VQcmVmZXJl
bmNlc0FkZGl0aW9uc0JlZm9yZS5oPgorI2VuZGlmCisKIC8qISBBIFdLV2VicGFnZVByZWZlcmVu
Y2VzIG9iamVjdCBpcyBhIGNvbGxlY3Rpb24gb2YgcHJvcGVydGllcyB0aGF0CiAgZGV0ZXJtaW5l
IHRoZSBwcmVmZXJlbmNlcyB0byB1c2Ugd2hlbiBsb2FkaW5nIGFuZCByZW5kZXJpbmcgYSBwYWdl
LgogIEBkaXNjdXNzaW9uIENvbnRhaW5zIHByb3BlcnRpZXMgdXNlZCB0byBkZXRlcm1pbmUgd2Vi
cGFnZSBwcmVmZXJlbmNlcy4KQEAgLTMyLDQgKzM2LDggQEAKIFdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyA6IE5TT2JqZWN0CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLV2VicGFnZVByZWZlcmVuY2VzQWRkaXRpb25zQWZ0ZXIu
aD4KKyNlbmRpZgorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5oCmluZGV4IDFmMGQ1ZjQ3YmZmMTZiYTdjNmM1MjNhZWQ0ZDMyZDg1NDQ5
ZDgxODkuLmRhNmJmNWNjOTM5ZWI0YjQ4ZjVjY2M0MmFkZTU4N2YyMjBiNzlkMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCkBAIC0xODYs
NiArMTg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCB7CiAgICAgICAgIGJvb2wgd2ViVmll
d0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXIgOiAxOworICAg
ICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZl
cmVuY2VzRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA6IDE7
CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2Vy
SW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFuZGxlciA6IDE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0K
aW5kZXggNTRjZGY1MWUxOGMzNzJmM2VmMDMwMjNlNzJiMjk2YjU4MzE3OWJjZC4uMzJjNjU5MTMx
NjA5ZTAwZGZhN2IzODBjYjgxMmUyYTUyZDRlOTljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2lt
cG9ydCAiQVBJRnJhbWVJbmZvLmgiCiAjaW1wb3J0ICJBUElOYXZpZ2F0aW9uRGF0YS5oIgogI2lt
cG9ydCAiQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgiCisjaW1wb3J0ICJBUElQYWdlQ29uZmlndXJh
dGlvbi5oIgogI2ltcG9ydCAiQVBJU3RyaW5nLmgiCiAjaW1wb3J0ICJBUElVUkwuaCIKICNpbXBv
cnQgIkFQSVdlYnNpdGVEYXRhU3RvcmUuaCIKQEAgLTE0OCw2ICsxNDksNyBAQCB2b2lkIE5hdmln
YXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0
ZT4gZGVsZWdhdGUpCiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGUgPSBkZWxlZ2F0ZTsKIAogICAg
IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lv
bkhhbmRsZXI6KV07CisgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndpdGhQcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6
KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlcklu
Zm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjopXTsKQEAgLTUw
OCwxOCArNTEwLDIwIEBAIHN0YXRpYyB2b2lkIHRyeUludGVyY2VwdE5hdmlnYXRpb24oUmVmPEFQ
STo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uCiB2b2lkIE5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihX
ZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBu
YXZpZ2F0aW9uQWN0aW9uLCBSZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3Rl
bmVyLCBBUEk6Ok9iamVjdCogdXNlckluZm8pCiB7CiAgICAgYm9vbCBzdWJmcmFtZU5hdmlnYXRp
b24gPSBuYXZpZ2F0aW9uQWN0aW9uLT50YXJnZXRGcmFtZSgpICYmICFuYXZpZ2F0aW9uQWN0aW9u
LT50YXJnZXRGcmFtZSgpLT5pc01haW5GcmFtZSgpOworICAgIGF1dG8gZGVmYXVsdFdlYnNpdGVQ
b2xpY2llcyA9IG1ha2VSZWZQdHIod2ViUGFnZVByb3h5LmNvbmZpZ3VyYXRpb24oKS5kZWZhdWx0
V2Vic2l0ZVBvbGljaWVzKCkpOwogCiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmln
YXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25EZWNpc2lvbkhhbmRsZXIKKyAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdh
dGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcgogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9u
U3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzCiAgICAgICAgICYm
ICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNp
dGVQb2xpY2llcykgewotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3dlYlBhZ2Ug
PSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIGxpc3RlbmVyID0gV1RGTW92ZShsaXN0ZW5lciksIG5h
dmlnYXRpb25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmNvcHlSZWYoKV0gKGJvb2wgaW50ZXJj
ZXB0ZWROYXZpZ2F0aW9uKSB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbd2Vi
UGFnZSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgbGlzdGVuZXIgPSBXVEZNb3ZlKGxpc3RlbmVy
KSwgbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigpLCBkZWZhdWx0
V2Vic2l0ZVBvbGljaWVzXSAoYm9vbCBpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAg
ICAgIGlmIChpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAgICAgICAgICBsaXN0ZW5l
ci0+aWdub3JlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoIW5hdmlnYXRpb25BY3Rpb24tPnRhcmdldEZyYW1lKCkpIHsKLSAgICAg
ICAgICAgICAgICBsaXN0ZW5lci0+dXNlKCk7CisgICAgICAgICAgICAgICAgbGlzdGVuZXItPnVz
ZShkZWZhdWx0V2Vic2l0ZVBvbGljaWVzLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CiAKQEAgLTUyOCw3ICs1MzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQ
YWdlUAogICAgICAgICAgICAgICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLT5zaG91bGRQZXJmb3Jt
RG93bmxvYWQoKSkKICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXItPmRvd25sb2FkKCk7CiAg
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci0+dXNlKCk7
CisgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLT51c2UoZGVmYXVsdFdlYnNpdGVQb2xpY2ll
cy5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC01
NDgsMTEgKzU1MiwxOSBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgIGlmICghbmF2aWdh
dGlvbkRlbGVnYXRlKQogICAgICAgICByZXR1cm47CiAKKyAgICBib29sIGRlbGVnYXRlSGFzV2Vi
cGFnZVByZWZlcmVuY2VzID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVu
Y2VzRGVjaXNpb25IYW5kbGVyOwogICAgIGJvb2wgZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMg
PSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNp
ZXMgfHwgbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJX
ZWJzaXRlUG9saWNpZXM7Ci0gICAgCi0gICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRs
ZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSwgZGVsZWdhdGVI
YXNXZWJzaXRlUG9saWNpZXMgPyBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KSA6IEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOikpOwotICAgIAotICAg
IGF1dG8gZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzID0gW2xvY2FsTGlzdGVuZXIgPSBXVEZN
b3ZlKGxpc3RlbmVyKSwgbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJl
ZigpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgd2ViUGFnZVByb3h5ID0gbWFrZVJlZih3
ZWJQYWdlUHJveHkpLCBzdWJmcmFtZU5hdmlnYXRpb25dKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSBhY3Rpb25Qb2xpY3ksIGlkIHBvbGljaWVzT3JQcmVmZXJlbmNlcykgbXV0YWJsZSB7CisKKyAg
ICBhdXRvIHNlbGVjdG9yRm9yQ29tcGxldGlvbkhhbmRsZXJDaGVja2VyID0gKFsmXSAoKSAtPiBT
RUwgeworICAgICAgICBpZiAoZGVsZWdhdGVIYXNXZWJwYWdlUHJlZmVyZW5jZXMpCisgICAgICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjp3aXRoUHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOik7CisgICAgICAgIGlmIChkZWxl
Z2F0ZUhhc1dlYnNpdGVQb2xpY2llcykKKyAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IoX3dl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KTsK
KyAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOik7CisgICAgfSkoKTsKKworICAgIGF1dG8gY2hlY2tl
ciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShuYXZpZ2F0aW9uRGVsZWdh
dGUuZ2V0KCksIHNlbGVjdG9yRm9yQ29tcGxldGlvbkhhbmRsZXJDaGVja2VyKTsKKyAgICBhdXRv
IGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMgPSBbbG9jYWxMaXN0ZW5l
ciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlv
bi5jb3B5UmVmKCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpLCB3ZWJQYWdlUHJveHkgPSBt
YWtlUmVmKHdlYlBhZ2VQcm94eSksIHN1YmZyYW1lTmF2aWdhdGlvbiwgZGVmYXVsdFdlYnNpdGVQ
b2xpY2llc10gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3ksIGlkIHBvbGlj
aWVzT3JQcmVmZXJlbmNlcykgbXV0YWJsZSB7CiAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0
aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Y2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC01NjQsMTkgKzU3NiwyMSBA
QCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgICAgICAgICAgYXBpV2Vic2l0ZVBvbGljaWVz
ID0gW3BvbGljaWVzT3JQcmVmZXJlbmNlcyB3ZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vic2l0ZVBv
bGljaWVzLmdldCgpOwogICAgICAgICBlbHNlIGlmIChwb2xpY2llc09yUHJlZmVyZW5jZXMpCiAg
ICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiRXhwZWN0ZWQgcG9saWNpZXMgb2YgY2xhc3MgJUAsIGJ1dCBnb3QgJUAiLCBOU1N0
cmluZ0Zyb21DbGFzcyhfV0tXZWJzaXRlUG9saWNpZXMuc2VsZiksIFtwb2xpY2llc09yUHJlZmVy
ZW5jZXMgY2xhc3NdXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXBpV2Vic2l0ZVBvbGlj
aWVzID0gZGVmYXVsdFdlYnNpdGVQb2xpY2llczsKIAogICAgICAgICBpZiAoYXBpV2Vic2l0ZVBv
bGljaWVzKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogd2Vic2l0ZURhdGFTdG9yZSA9IGFwaVdl
YnNpdGVQb2xpY2llcy0+d2Vic2l0ZURhdGFTdG9yZSgpKSB7CiAgICAgICAgICAgICAgICAgYXV0
byBzZXNzaW9uSUQgPSB3ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lv
bklEKCk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSAmJiBz
ZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKLSAgICAgICAg
ICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u
IGZvcm1hdDpAIl9XS1dlYnNpdGVQb2xpY2llcy53ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmls
LCBkZWZhdWx0LCBvciBub24tcGVyc2lzdGVudC4iXTsKKyAgICAgICAgICAgICAgICAgICAgW05T
RXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2Vi
cGFnZVByZWZlcmVuY2VzLl93ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsLCBkZWZhdWx0LCBv
ciBub24tcGVyc2lzdGVudC4iXTsKICAgICAgICAgICAgICAgICBpZiAoc3ViZnJhbWVOYXZpZ2F0
aW9uKQotICAgICAgICAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiX1dLV2Vic2l0ZVBvbGljaWVzLndlYnNpdGVEYXRhU3Rv
cmUgbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOworICAgICAgICAgICAg
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9y
bWF0OkAiV0tXZWJwYWdlUHJlZmVyZW5jZXMuX3dlYnNpdGVEYXRhU3RvcmUgbXVzdCBiZSBuaWwg
Zm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
aWYgKCFhcGlXZWJzaXRlUG9saWNpZXMtPmN1c3RvbVVzZXJBZ2VudCgpLmlzTnVsbCgpICYmIHN1
YmZyYW1lTmF2aWdhdGlvbikKLSAgICAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJ
bnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiX1dLV2Vic2l0ZVBvbGljaWVzLmN1c3Rv
bVVzZXJBZ2VudCBtdXN0IGJlIG5pbCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIl07CisgICAg
ICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u
IGZvcm1hdDpAIldLV2VicGFnZVByZWZlcmVuY2VzLl9jdXN0b21Vc2VyQWdlbnQgbXVzdCBiZSBu
aWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwogICAgICAgICAgICAgaWYgKCFhcGlXZWJz
aXRlUG9saWNpZXMtPmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtKCkuaXNOdWxsKCkgJiYgc3ViZnJh
bWVOYXZpZ2F0aW9uKQotICAgICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFs
aWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJfV0tXZWJzaXRlUG9saWNpZXMuY3VzdG9tTmF2
aWdhdG9yUGxhdGZvcm0gbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwor
ICAgICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2Vw
dGlvbiBmb3JtYXQ6QCJXS1dlYnBhZ2VQcmVmZXJlbmNlcy5fY3VzdG9tTmF2aWdhdG9yUGxhdGZv
cm0gbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwogICAgICAgICB9CiAK
ICAgICAgICAgc3dpdGNoIChhY3Rpb25Qb2xpY3kpIHsKQEAgLTYxMiw5ICs2MjYsMTEgQEAgdm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV2ViUGFnZVAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
fTsKLSAgICAKLSAgICBpZiAoZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMpIHsKLSAgICAgICAg
YXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRs
ZXJXaXRoUG9saWNpZXMpKTsKKworICAgIGlmIChkZWxlZ2F0ZUhhc1dlYnBhZ2VQcmVmZXJlbmNl
cykKKyAgICAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRl
Lm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdh
dGlvbkFjdGlvbikgd2l0aFByZWZlcmVuY2VzOndyYXBwZXIoZGVmYXVsdFdlYnNpdGVQb2xpY2ll
cykgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldp
dGhQcmVmZXJlbmNlc09yUG9saWNpZXMpKS5nZXQoKV07CisgICAgZWxzZSBpZiAoZGVsZWdhdGVI
YXNXZWJzaXRlUG9saWNpZXMpIHsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVz
KSk7CiAgICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lz
aW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcykKICAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlv
blN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIo
bmF2aWdhdGlvbkFjdGlvbikgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNT
ZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICAgICAgZWxzZSB7CkBAIC02MjMsMTAgKzYzOSwx
MCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBhdXRv
IGRlY2lzaW9uSGFuZGxlcldpdGhvdXRQb2xpY2llcyA9IFtkZWNpc2lvbkhhbmRsZXJXaXRoUG9s
aWNpZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyldIChXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3kgYWN0aW9uUG9saWN5KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRlY2lz
aW9uSGFuZGxlcldpdGhQb2xpY2llcyhhY3Rpb25Qb2xpY3ksIG5pbCk7CisgICAgICAgIGF1dG8g
ZGVjaXNpb25IYW5kbGVyID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNp
ZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMpXSAo
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CisgICAgICAg
ICAgICBkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKGFjdGlvblBvbGlj
eSwgbmlsKTsKICAgICAgICAgfTsKLSAgICAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0
cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhvdXRQb2xpY2llcykpLmdldCgpXTsKKyAgICAg
ICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlv
bikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcikp
LmdldCgpXTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDdmNWZmZGFmNjRiMmZhN2Q4NTkwMDUwN2MwNmUwYzhmNDkz
MWQ1OTguLmNjYjUwMTE2MTIwMTIxOTZlODUzMmI5ZDYwZTU5OGVlYTk4MjIyMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTYzNiw3
ICsxNjM2LDcgQEAKIAkJRUNBNjgwRDgxRTY5MEUyNTAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2Nv
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgw
RDcxRTY5MERGODAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdC
MyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdl
T3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJBMTcx
RTZFNjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQzOENEMUMyMjQxNDIxNDAw
REU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM4Q0QxQjIyNDE0MEE2MDBERTZEREEgLyogV0tXZWJw
YWdlUHJlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlGNDM4Q0QxQzIyNDE0MjE0MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5j
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhD
RDFCMjI0MTQwQTYwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJRjQzOENEMUYyMjQxNEQ0MDAw
REU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDFFMjI0MTRENDAwMERFNkREQSAv
KiBXS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmggKi87IH07CiAJCUY0MzhDRDIxMjI0MUY2
OTUwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDIwMjI0MUY2OTUwMERFNkRE
QSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDQyOTE5MjFGQTU5MUM5MDAyQ0M5M0UgLyog
X1dLQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ0MjkxOTExRkE1OTEwNzAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzEwNywxMCArNzEw
NywxMCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUE4QjY2QjIxQkM0NUIwMTAwODJERjc3IC8q
IFdLQnVuZGxlTWFjLmggKi8sCiAJCQkJMUE4QjY2QjExQkM0NUIwMTAwODJERjc3IC8qIFdLQnVu
ZGxlTWFjLm1tICovLAotCQkJCUM2QTRDQTA5MjI1Mjg5OTgwMDE2OTI4OSAvKiBXS0J1bmRsZVBh
Z2VNYWMuaCAqLywKLQkJCQlDNkE0Q0EwQTIyNTI4OTk4MDAxNjkyODkgLyogV0tCdW5kbGVQYWdl
TWFjLm1tICovLAogCQkJCTdDRjQ3RkZEMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VC
YW5uZXJNYWMuaCAqLywKIAkJCQk3Q0Y0N0ZGQzE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQ
YWdlQmFubmVyTWFjLm1tICovLAorCQkJCUM2QTRDQTA5MjI1Mjg5OTgwMDE2OTI4OSAvKiBXS0J1
bmRsZVBhZ2VNYWMuaCAqLywKKwkJCQlDNkE0Q0EwQTIyNTI4OTk4MDAxNjkyODkgLyogV0tCdW5k
bGVQYWdlTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtOTc3Niw2ICs5Nzc2LDcgQEAKIAkJCQkxQUI0NzRFNjE4NEQ0NEI0MDA1
MUI2MjIgLyogV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM3QjYzM0QxMkE0NUQxMjAwRDE3NEE0IC8qIFdLQnVuZGxlUGFnZUdyb3VwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUI0NzREODE4NEQ0M0ZEMDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkE0Q0EwQjIyNTI4OTk4MDAxNjkyODkg
LyogV0tCdW5kbGVQYWdlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDgyQTdGMjEyOEM2RkFG
MDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFC
NDc0RUExODRENDUxMzAwNTFCNjIyIC8qIFdLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxQjQxOTgxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFnZVBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtOTc4Myw3ICs5Nzg0LDYgQEAKIAkJCQkxQUI0NzRE
RTE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdl
SGFuZGxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDNkE0Q0EwQjIyNTI4OTk4MDAxNjkyODkgLyog
V0tCdW5kbGVQYWdlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNzE2Q0Q3M0M1MDA3
RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzQwNzVGNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUlu
Zm8uaCBpbiBIZWFkZXJzICovLApAQCAtMTAxNzYsNiArMTAxNzYsNyBAQAogCQkJCTFBNjI4MEM4
MTkxOTk1NkIwMDZBRDlGOSAvKiBNaWdyYXRlIFdlYktpdExlZ2FjeSBIZWFkZXJzICovLAogCQkJ
CTM3NUEyNDg4MTdFNTA0OEUwMEM5QTA4NiAvKiBQb3N0cHJvY2VzcyBXS0Jhc2UuaCAqLywKIAkJ
CQkxQUQ5OEVDRjE5MUQ4NjczMDBDQUE2REYgLyogUG9zdHByb2Nlc3MgV0tGb3VuZGF0aW9uLmgg
Ki8sCisJCQkJRjRFRkJBRDUyMjU0MENCQjAwMDQ5QkE2IC8qIFJlcGxhY2UgV2ViS2l0QWRkaXRp
b25zIGluIEZyYW1ld29yayBIZWFkZXJzICovLAogCQkJCTFBMUQyMTE1MTkxRDk2MzgwMDAxNjE5
RiAvKiBQb3N0cHJvY2VzcyBGcmFtZXdvcmsgSGVhZGVycyAqLywKIAkJCQkyRTE2QjZGNDIwMTlC
QzI1MDA4OTk2RDYgLyogQ29weSBBZGRpdGlvbmFsIFJlc291cmNlcyAqLywKIAkJCQk4REMyRUY1
MjA0ODZBNjk0MDA5OEIyMTYgLyogUmVzb3VyY2VzICovLApAQCAtMTA4MzUsNiArMTA4MzYsMjAg
QEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVsbFNjcmlwdCA9ICJVTkxPQ0tfU0NS
SVBUX1BBVEg9XCIke1NSQ1JPT1R9Ly4uLy4uLy4uL0ludGVybmFsL1Rvb2xzL1NjcmlwdHMvdW5s
b2NrLXNhZmFyaS1lbmdpbmVlcmluZy1rZXljaGFpbi1pZi1uZWVkZWRcIlxuXG5bWyAteCBcIiR7
VU5MT0NLX1NDUklQVF9QQVRIfVwiIF1dICYmIGV4ZWMgXCIke1VOTE9DS19TQ1JJUFRfUEFUSH1c
IlxuXG5leGl0IDBcbiI7CiAJCX07CisJCUY0RUZCQUQ1MjI1NDBDQkIwMDA0OUJBNiAvKiBSZXBs
YWNlIFdlYktpdEFkZGl0aW9ucyBpbiBGcmFtZXdvcmsgSGVhZGVycyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5h
bWUgPSAiUmVwbGFjZSBXZWJLaXRBZGRpdGlvbnMgaW4gRnJhbWV3b3JrIEhlYWRlcnMiOworCQkJ
b3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAiaWYg
WyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxc
IiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBc
Imluc3RhbGxhcGlcIiBdOyB0aGVuXG4gICAgZm9yIEhFQURFUlNfRElSRUNUT1JZIGluIFwiJHtQ
VUJMSUNfSEVBREVSU19GT0xERVJfUEFUSH1cIiBcIiR7UFJJVkFURV9IRUFERVJTX0ZPTERFUl9Q
QVRIfVwiOyBkb1xuICAgICAgICBmb3IgSEVBREVSX1BBVEggaW4gXCIke1RBUkdFVF9CVUlMRF9E
SVJ9LyR7SEVBREVSU19ESVJFQ1RPUll9L1wiKi5oOyBkb1xuICAgICAgICAgICAgaWYgW1sgISAt
eiBgZ3JlcCAnI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zLy4qXFwuaD4nIFwiJHtIRUFERVJfUEFU
SH1cImAgXV07IHRoZW5cbiAgICAgICAgICAgICAgICBweXRob24gXCIke1NSQ1JPT1R9L21hYy9y
ZXBsYWNlLXdlYmtpdC1hZGRpdGlvbnMtaW5jbHVkZXMucHlcIiBcIiR7SEVBREVSX1BBVEh9XCIg
XCIke0JVSUxUX1BST0RVQ1RTX0RJUn1cIiBcIiR7U0RLUk9PVH1cIiB8fCBleGl0ICQ/XG4gICAg
ICAgICAgICBmaVxuICAgICAgICBkb25lXG4gICAgZG9uZVxuZmlcbiI7CisJCX07CiAvKiBFbmQg
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU291cmNl
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTEwNDgsNyArMTEwNjMsNiBAQAogCQkJCTJEMTFC
N0E3MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNDQtbW0ubW0gaW4gU291cmNlcyAq
LywKIAkJCQkyRDExQjdBODIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEMTFCN0E5MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291
cmNlNDUtbW0ubW0gaW4gU291cmNlcyAqLywKLQkJCQlDNkE0Q0EwQzIyNTI4OTk4MDAxNjkyODkg
LyogV0tCdW5kbGVQYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QUEyMTI2QTI4
MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0NS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDEx
QjdBQjIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ2LW1tLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQxMUI3QUMyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0Ni5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTExMjEwLDYgKzExMjI0LDcgQEAKIAkJCQkxQUFGMDhCNzE5MjY5
RTZEMDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDMzYxRDc4MTkyODAzQkQwMDM2QTU5RCAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDkyQTc4RjIxMkI2QUIxMDBGNDkzRkQgLyogV2ViV2hlZWxFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDNkE0Q0EwQzIyNTI4OTk4MDAxNjkyODkgLyogV0tCdW5kbGVQYWdlTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MzExNjkyMTJGNjFCMjAwMDQ0QkZFIC8qIFdLQ29u
dGVudFZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkzMTE2QTIxMkY2MUI1MDAwNDRCRkUg
LyogV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjM3Mjgx
QTMyMUFEQzc0NDAwOUUwREU2IC8qIFdLRG93bmxvYWRQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhl
YWRlcnMuc2ggYi9Tb3VyY2UvV2ViS2l0L21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVy
cy5zaAppbmRleCA5ZDZjYmFiMzliMThlNTVhMmJjMWUxZWQ3OTk4NDY0YmI5NTM4YWU3Li4wNzEw
NmI0YmRiZTllMTQ2NDVlNGRiOTAwZjQ4MzAwNjUwYjgwMTdlIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaApAQCAtNDgsMTQgKzQ4
LDYgQEAgZnVuY3Rpb24gcHJvY2Vzc19kZWZpbml0aW9ucyAoKSB7CiAgICAgc291cmNlICIke0RF
RklOSVRJT05TX0ZJTEV9IgogfQogCi1mdW5jdGlvbiByZXBsYWNlX3dlYmtpdF9hZGRpdGlvbnNf
aW5jbHVkZXMgKCkgewotICAgIGlmIFtbIC16IGBncmVwICcjaW1wb3J0IDxXZWJLaXRBZGRpdGlv
bnMvLipcLmg+JyAiJHsxfSJgIF1dOyB0aGVuCi0gICAgICAgIHJldHVybiAwCi0gICAgZmkKLSAg
ICBweXRob24gIiQoZGlybmFtZSAkMCkvcmVwbGFjZS13ZWJraXQtYWRkaXRpb25zLWluY2x1ZGVz
LnB5IiAiJHsxfSIgIiR7QlVJTFRfUFJPRFVDVFNfRElSfSIgIiR7U0RLUk9PVH0iCi0gICAgcmV0
dXJuICQ/Ci19Ci0KIGZ1bmN0aW9uIHJld3JpdGVfaGVhZGVycyAoKSB7CiAgICAgaWYgW1sgIiR7
V0tfUExBVEZPUk1fTkFNRX0iID09ICJtYWNvc3giIF1dOyB0aGVuCiAgICAgICAgIFtbIC1uICR7
T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9WRVJTSU9OPSR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
fQpAQCAtODksNyArODEsNiBAQCBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkgewogICAgIGZv
ciBIRUFERVJfUEFUSCBpbiAiJHsxfS8iKi5oOyBkbwogICAgICAgICBpZiBbWyAiJEhFQURFUl9Q
QVRIIiAtbnQgJFRJTUVTVEFNUF9QQVRIIF1dOyB0aGVuCiAgICAgICAgICAgICBkaXR0byAiJHtI
RUFERVJfUEFUSH0iICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IgotICAg
ICAgICAgICAgcmVwbGFjZV93ZWJraXRfYWRkaXRpb25zX2luY2x1ZGVzICIke1RBUkdFVF9URU1Q
X0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IgogICAgICAgICAgICAgc2VkIC1pIC50bXAgLUUgIiR7
U0VEX09QVElPTlNbQF19IiAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIg
fHwgZXhpdCAkPwogICAgICAgICAgICAgbXYgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9Q
QVRIIyMqL30iICIkSEVBREVSX1BBVEgiCiAgICAgICAgIGZpCg==
</data>
<flag name="review"
          id="382919"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366576</attachid>
            <date>2019-04-02 21:16:57 -0700</date>
            <delta_ts>2019-04-02 21:58:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196284-20190402211656.patch</filename>
            <type>text/plain</type>
            <size>32698</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiYTc3ZThmN2RkMTUzNTE3
Mzk3MThhYTllMWI2MWVjYjA4YjQ3ZTguLjZjNTY2N2UwZDI5NzAxZTVlMzE5MzgzZTY5MmEwZmJl
MTM0Nzg3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDQtMDIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgbmV3
IEFQSSBhcm91bmQgV0tXZWJwYWdlUHJlZmVyZW5jZXMgaW4gV0tOYXZpZ2F0aW9uRGVsZWdhdGUg
YW5kIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NjI4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyMjgy
MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBUZXN0cyBm
b3IgYm90aCBvZiB0aGVzZSBBUElzIHdpbGwgYmUgYWRkZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNo
LgorCisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNv
bmZpZ3VyYXRpb246OmRlZmF1bHRXZWJzaXRlUG9saWNpZXMgY29uc3QpOgorICAgICAgICAoQVBJ
OjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0RGVmYXVsdFdlYnNpdGVQb2xpY2llcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaDoKKworICAgICAgICBBZGQgYSBu
ZXcgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBob29rIHRvIGFsbG93IGNsaWVudHMgdG8gcmV0dXJuIGEg
V0tXZWJwYWdlUHJlZmVyZW5jZSB0YXJnZXRpbmcgdGhlIGdpdmVuCisgICAgICAgIG5hdmlnYXRp
b24gYWN0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToK
KworICAgICAgICBBZGQgbmV3IEFQSSBvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uIHRvIHNwZWNp
ZnkgYSBkZWZhdWx0IFdLV2VicGFnZVByZWZlcmVuY2UgdG8gdXNlIHdoZW4gbmF2aWdhdGluZy4K
KworICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGNvcHlXaXRoWm9uZTpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBkZWZhdWx0V2VicGFnZVByZWZlcmVuY2Vz
XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0RGVmYXVsdFdlYnBhZ2VQ
cmVmZXJlbmNlczpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVBy
ZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAg
IChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKworICAgICAgICBJbnZva2UgdGhlIG5ldyBXS1dlYnBh
Z2VQcmVmZXJlbmNlcy1iYXNlZCBuYXZpZ2F0aW9uIGRlbGVnYXRlIG1ldGhvZC4KKworICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIG1hYy9wb3N0
cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaDoKKyAgICAgICAgKiBtYWMvcmVwbGFjZS13ZWJr
aXQtYWRkaXRpb25zLWluLWZyYW1ld29yay1oZWFkZXJzLnNoOiBBZGRlZC4KKworICAgICAgICBN
b3ZlIGxvZ2ljIGluIHRoZSAiUG9zdHByb2Nlc3MgRnJhbWV3b3JrIEhlYWRlcnMiIHN0ZXAgcmVz
cG9uc2libGUgZm9yIHN0cmlwcGluZyBhd2F5IGluY2x1ZGVkIGZpbGVzIGZyb20KKyAgICAgICAg
V2ViS2l0QWRkaXRpb25zIG91dCBpbnRvIGEgc2VwYXJhdGUgYnVpbGQgcGhhc2UsIGNhbGxlZCAi
UmVwbGFjZSBXZWJLaXRBZGRpdGlvbnMgaW4gRnJhbWV3b3JrIEhlYWRlcnMiLiBUaGlzCisgICAg
ICAgIGVuc3VyZXMgaGVhZGVycyBhdHRlbXB0aW5nIHRvIGluY2x1ZGUgZnJvbSBXZWJLaXRBZGRp
dGlvbnMgaGF2ZSB0aGVzZSBhZGRpdGlvbmFsIHN0YXRlbWVudHMgcmVtb3ZlZC4KKwogMjAxOS0w
NC0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjQzNzI2KTogQ3Jhc2ggYXQgdW5yZWNvZ25pemVkIHNlbGVjdG9yOiAtW1dL
V2VicGFnZVByZWZlcmVuY2VzIHdlYnBhZ2VQcmVmZXJlbmNlc10KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9XZWJLaXQuaAppbmRleCA1M2ZjNTNkYmQxZDNjOTBhOWUwMjhjNzlhYjg1Y2E1
NzY5NWE2OWM4Li40YjQ4YTQwNDcxMGIyZjQ3ZGNlZTVhYTM5NDMyYjkyYzJjYzgzOTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCkBAIC01Miw2ICs1Miw3IEBACiAj
aW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8
V2ViS2l0L1dLV2VicGFnZVByZWZlcmVuY2VzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRl
RGF0YVJlY29yZC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2luZG93RmVhdHVyZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IDFmMDQ5YzJhMjNh
MDUxOGVkZDA3MGM0NGIyNTY3MmYxYzM2NTk5YzcuLjE3N2I5OTk4ODQwMmUzY2ViOTYxNWM5M2Nk
MWFlMzNkODU5ZmEzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkFQ
SVBhZ2VDb25maWd1cmF0aW9uLmgiCiAKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaCIKKyNpbmNsdWRlICJBUElXZWJzaXRlUG9saWNpZXMuaCIKICNpbmNsdWRlICJXZWJQ
YWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcmVm
ZXJlbmNlcy5oIgpAQCAtMTY0LDYgKzE2NSwxNiBAQCB2b2lkIFBhZ2VDb25maWd1cmF0aW9uOjpz
ZXRXZWJzaXRlRGF0YVN0b3JlKEFQSTo6V2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdAog
ICAgICAgICBtX3Nlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEKCk7CiB9CiAKK1dlYnNpdGVQb2xp
Y2llcyogUGFnZUNvbmZpZ3VyYXRpb246OmRlZmF1bHRXZWJzaXRlUG9saWNpZXMoKSBjb25zdAor
eworICAgIHJldHVybiBtX2RlZmF1bHRXZWJzaXRlUG9saWNpZXMuZ2V0KCk7Cit9CisKK3ZvaWQg
UGFnZUNvbmZpZ3VyYXRpb246OnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMoV2Vic2l0ZVBvbGlj
aWVzKiBwb2xpY2llcykKK3sKKyAgICBtX2RlZmF1bHRXZWJzaXRlUG9saWNpZXMgPSBwb2xpY2ll
czsKK30KKwogUEFMOjpTZXNzaW9uSUQgUGFnZUNvbmZpZ3VyYXRpb246OnNlc3Npb25JRCgpCiB7
CiAgICAgQVNTRVJUKCFtX3dlYnNpdGVEYXRhU3RvcmUgfHwgbV93ZWJzaXRlRGF0YVN0b3JlLT53
ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkgPT0gbV9zZXNzaW9uSUQgfHwgbV9zZXNzaW9u
SUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4
IGI1ZmE2ZmYzMDdlZjhlYjljMWY1ZWE0MDYwNDFjNTZjNzVlM2E2Y2MuLjY0YTQ5NGExOWIzMzFh
MzlhMzIyMjA1MjQ1YmZhZTkxZjllNjg0NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCkBAIC00NSw2ICs0NSw3IEBAIG5hbWVz
cGFjZSBBUEkgewogCiBjbGFzcyBBcHBsaWNhdGlvbk1hbmlmZXN0OwogY2xhc3MgV2Vic2l0ZURh
dGFTdG9yZTsKK2NsYXNzIFdlYnNpdGVQb2xpY2llczsKIAogY2xhc3MgUGFnZUNvbmZpZ3VyYXRp
b24gOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VDb25maWd1cmF0aW9uPiB7
CiBwdWJsaWM6CkBAIC04MSw2ICs4Miw5IEBAIHB1YmxpYzoKICAgICBXZWJzaXRlRGF0YVN0b3Jl
KiB3ZWJzaXRlRGF0YVN0b3JlKCk7CiAgICAgdm9pZCBzZXRXZWJzaXRlRGF0YVN0b3JlKFdlYnNp
dGVEYXRhU3RvcmUqKTsKIAorICAgIFdlYnNpdGVQb2xpY2llcyogZGVmYXVsdFdlYnNpdGVQb2xp
Y2llcygpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdFdlYnNpdGVQb2xpY2llcyhXZWJzaXRl
UG9saWNpZXMqKTsKKwogICAgIC8vIEZJWE1FOiBPbmNlIFBhZ2VDb25maWd1cmF0aW9ucyAqYWx3
YXlzKiBoYXZlIGEgZGF0YSBzdG9yZSwgZ2V0IHJpZCBvZiB0aGUgc2VwYXJhdGUgc2Vzc2lvbklE
LgogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpOwogICAgIHZvaWQgc2V0U2Vzc2lvbklE
KFBBTDo6U2Vzc2lvbklEKTsKQEAgLTEzNSw2ICsxMzksNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxXZWJLaXQ6OlZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKIAogICAgIFJl
ZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CisgICAgUmVmUHRyPFdl
YnNpdGVQb2xpY2llcz4gbV9kZWZhdWx0V2Vic2l0ZVBvbGljaWVzOwogICAgIC8vIEZJWE1FOiBX
ZSBjdXJyZW50bHkgaGF2ZSB0byBwYXNzIHRoZSBzZXNzaW9uIElEIHNlcGFyYXRlbHkgaGVyZSB0
byBzdXBwb3J0IHRoZSBsZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uLgogICAgIC8vIE9u
Y2Ugd2UgZ2V0IHJpZCBvZiBpdCB3ZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGlzIGNvbmZpZ3VyYXRp
b24gcGFyYW1ldGVyIGFzIHdlbGwuCiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25EZWxlZ2F0ZS5oCmluZGV4IDhlZTQ2MmM0NmM4YmNjYzhhNTliODk3NGQ3NTVkODhhYzdiMzQ0
NmEuLmU0YjU0ZTllNjBjZWZjZjkzMjk3ZmRiYTFhZTEwZmQxMGMzYmZlZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxl
Z2F0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBXS05h
dmlnYXRpb25BY3Rpb247CiBAY2xhc3MgV0tOYXZpZ2F0aW9uUmVzcG9uc2U7CiBAY2xhc3MgV0tX
ZWJWaWV3OworQGNsYXNzIFdLV2VicGFnZVByZWZlcmVuY2VzOwogCiAvKiEgQGVudW0gV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5CiAgQGFic3RyYWN0IFRoZSBwb2xpY3kgdG8gcGFzcyBiYWNrIHRv
IHRoZSBkZWNpc2lvbiBoYW5kbGVyIGZyb20gdGhlCkBAIC03Myw2ICs3NCwyMCBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogICovCiAt
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25IYW5k
bGVyOwogCisvKiEgQGFic3RyYWN0IERlY2lkZXMgd2hldGhlciB0byBhbGxvdyBvciBjYW5jZWwg
YSBuYXZpZ2F0aW9uLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUg
ZGVsZWdhdGUgbWV0aG9kLgorIEBwYXJhbSBuYXZpZ2F0aW9uQWN0aW9uIERlc2NyaXB0aXZlIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBhY3Rpb24KKyB0cmlnZ2VyaW5nIHRoZSBuYXZpZ2F0aW9uIHJl
cXVlc3QuCisgQHBhcmFtIHByZWZlcmVuY2VzIFRoZSBkZWZhdWx0IHNldCBvZiB3ZWJwYWdlIHBy
ZWZlcmVuY2VzLiBUaGlzIG1heSBiZQorIGNoYW5nZWQgYnkgc2V0dGluZyBkZWZhdWx0V2VicGFn
ZVByZWZlcmVuY2VzIG9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uCisgQHBhcmFtIGRlY2lzaW9u
SGFuZGxlciBUaGUgcG9saWN5IGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCB0byBhbGxvdyBvciBj
YW5jZWwKKyB0aGUgbmF2aWdhdGlvbi4gVGhlIGFyZ3VtZW50cyBhcmUgb25lIG9mIHRoZSBjb25z
dGFudHMgb2YgdGhlIGVudW1lcmF0ZWQgdHlwZQorIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwg
YXMgd2VsbCBhcyBhbiBpbnN0YW5jZSBvZiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy4KKyBAZGlzY3Vz
c2lvbiBJZiB5b3UgaW1wbGVtZW50IHRoaXMgbWV0aG9kLAorIC13ZWJWaWV3OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOiB3aWxsIG5vdCBiZSBjYWxsZWQu
CisgKi8KKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9u
IHdpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdl
UHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC8qISBAYWJzdHJhY3QgRGVjaWRlcyB3aGV0
aGVyIHRvIGFsbG93IG9yIGNhbmNlbCBhIG5hdmlnYXRpb24gYWZ0ZXIgaXRzCiAgcmVzcG9uc2Ug
aXMga25vd24uCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxl
Z2F0ZSBtZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCBkNjRhZDljMzYxMDI0MDJhOWQ1ZTJmOTExZjc2MGM5NWM5NGM4OTNkLi5j
ZjQwMDMyODBjMmRmYjQ4NmY0YWU2MWIyYjczN2QyZGU0YzRkMWY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU3NCw2ICs1NzQsNyBA
QCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFVzZXJDb250
ZW50Q29udHJvbGxlcihbX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXS0+X3Vz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0VmlzaXRlZExpbmtTdG9yZShbX2NvbmZpZ3VyYXRpb24gX3Zpc2l0ZWRMaW5rU3RvcmVdLT5f
dmlzaXRlZExpbmtTdG9yZS5nZXQoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNp
dGVEYXRhU3RvcmUoW19jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdLT5fd2Vic2l0ZURh
dGFTdG9yZS5nZXQoKSk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldERlZmF1bHRXZWJzaXRl
UG9saWNpZXMoW19jb25maWd1cmF0aW9uIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vi
c2l0ZVBvbGljaWVzLmdldCgpKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoYXV0byBw
YWdlR3JvdXAgPSBXZWJLaXQ6OnRvSW1wbChbY29uZmlndXJhdGlvbiBfcGFnZUdyb3VwXSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5oCmluZGV4IDc1ZmFkZWQ0ZDczZjZkMGI3MTZjNDE4N2ZkNmU1MzA2
ZTJhOWRlN2MuLjQyZDI0YTlhODBiZWRmZWE0YTc3YjBiZTNkM2NmODIwYTAxNmRiZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KIEBjbGFzcyBXS1ByZWZlcmVuY2VzOwogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CiBAY2xhc3Mg
V0tVc2VyQ29udGVudENvbnRyb2xsZXI7CitAY2xhc3MgV0tXZWJwYWdlUHJlZmVyZW5jZXM7CiBA
Y2xhc3MgV0tXZWJzaXRlRGF0YVN0b3JlOwogQHByb3RvY29sIFdLVVJMU2NoZW1lSGFuZGxlcjsK
IApAQCAtMTI5LDYgKzEzMCwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBp
b3MoOC4wKSkKIAogQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVz
IG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKKy8qISBAYWJzdHJhY3QgVGhlIHNldCBvZiBk
ZWZhdWx0IHdlYnBhZ2UgcHJlZmVyZW5jZXMgdG8gdXNlIHdoZW4gbG9hZGluZyBhbmQgcmVuZGVy
aW5nIGNvbnRlbnQuCisgQGRpc2N1c3Npb24gVGhlc2UgZGVmYXVsdCB3ZWJwYWdlIHByZWZlcmVu
Y2VzIGFyZSBhZGRpdGlvbmFsbHkgcGFzc2VkIHRvIHRoZSBuYXZpZ2F0aW9uIGRlbGVnYXRlCisg
aW4gLXdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3aXRoUHJlZmVyZW5j
ZXM6ZGVjaXNpb25IYW5kbGVyOi4KKyAqLworQHByb3BlcnR5IChudWxsX3Jlc2V0dGFibGUsIG5v
bmF0b21pYywgY29weSkgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKmRlZmF1bHRXZWJwYWdlUHJlZmVy
ZW5jZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVl
IGluZGljYXRpbmcgd2hldGhlciBIVE1MNSB2aWRlb3MgcGxheSBpbmxpbmUKICAoWUVTKSBvciB1
c2UgdGhlIG5hdGl2ZSBmdWxsLXNjcmVlbiBjb250cm9sbGVyIChOTykuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tCmluZGV4IGQ2MDJhYWY0ZjIwMTQ5MjUzNThkZTU1YjNjNTcxMGVjZjk5OTk5ZGMuLjdl
ODkxNmEwYTA0ZmZkZTMwNzhhNjg5MmM3YTNiZTI0YzMxMzNhZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tCkBAIC0xMTgsNiArMTE4LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24gewogICAgIExhenlJbml0aWFsaXplZDxSZXRhaW5QdHI8V0tVc2VyQ29udGVudENv
bnRyb2xsZXI+PiBfdXNlckNvbnRlbnRDb250cm9sbGVyOwogICAgIExhenlJbml0aWFsaXplZDxS
ZXRhaW5QdHI8X1dLVmlzaXRlZExpbmtTdG9yZT4+IF92aXNpdGVkTGlua1N0b3JlOwogICAgIExh
enlJbml0aWFsaXplZDxSZXRhaW5QdHI8V0tXZWJzaXRlRGF0YVN0b3JlPj4gX3dlYnNpdGVEYXRh
U3RvcmU7CisgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNl
cz4+IF9kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzOwogICAgIFdlYWtPYmpDUHRyPFdLV2ViVmll
dz4gX3JlbGF0ZWRXZWJWaWV3OwogICAgIFdlYWtPYmpDUHRyPFdLV2ViVmlldz4gX2FsdGVybmF0
ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBf
Z3JvdXBJZGVudGlmaWVyOwpAQCAtMzU3LDYgKzM1OCw3IEBAIC0gKGlkKWNvcHlXaXRoWm9uZToo
TlNab25lICopem9uZQogICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMgPSBzZWxmLnByZWZl
cmVuY2VzOwogICAgIGNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyID0gc2VsZi51
c2VyQ29udGVudENvbnRyb2xsZXI7CiAgICAgY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3Jl
ID0gc2VsZi53ZWJzaXRlRGF0YVN0b3JlOworICAgIGNvbmZpZ3VyYXRpb24uZGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlcyA9IHNlbGYuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlczsKICAgICBjb25m
aWd1cmF0aW9uLl92aXNpdGVkTGlua1N0b3JlID0gc2VsZi5fdmlzaXRlZExpbmtTdG9yZTsKICAg
ICBjb25maWd1cmF0aW9uLl9yZWxhdGVkV2ViVmlldyA9IF9yZWxhdGVkV2ViVmlldy5nZXQoKS5n
ZXQoKTsKICAgICBjb25maWd1cmF0aW9uLl9hbHRlcm5hdGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdl
c3R1cmVzID0gX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXMuZ2V0KCkuZ2V0
KCk7CkBAIC00NzMsNiArNDc1LDE4IEBAIC0gKHZvaWQpc2V0V2Vic2l0ZURhdGFTdG9yZTooV0tX
ZWJzaXRlRGF0YVN0b3JlICopd2Vic2l0ZURhdGFTdG9yZQogICAgIF93ZWJzaXRlRGF0YVN0b3Jl
LnNldCh3ZWJzaXRlRGF0YVN0b3JlKTsKIH0KIAorLSAoV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilk
ZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzCit7CisgICAgcmV0dXJuIF9kZWZhdWx0V2VicGFnZVBy
ZWZlcmVuY2VzLmdldChbXSB7CisgICAgICAgIHJldHVybiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5k
ZWZhdWx0UHJlZmVyZW5jZXM7CisgICAgfSk7Cit9CisKKy0gKHZvaWQpc2V0RGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilkZWZhdWx0V2VicGFnZVByZWZl
cmVuY2VzCit7CisgICAgX2RlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuc2V0KGRlZmF1bHRXZWJw
YWdlUHJlZmVyZW5jZXMgPzogV0tXZWJwYWdlUHJlZmVyZW5jZXMuZGVmYXVsdFByZWZlcmVuY2Vz
KTsKK30KKwogc3RhdGljIE5TU3RyaW5nICpkZWZhdWx0QXBwbGljYXRpb25OYW1lRm9yVXNlckFn
ZW50KCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAppbmRleCBj
OTY3MjZlNzhhOTYwZWFhMGY5NmZlZDJmY2M3MTg4NTRjYTYzYmU4Li41YjEzNjYzZGYwMzgxZGI0
NmM1ODYyNDI1YzVlNDk1ZGFkZTY1ODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaApAQCAtMjUsNiArMjUs
MTAgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS1dlYnBhZ2VQcmVmZXJl
bmNlc0FkZGl0aW9uc0JlZm9yZS5oPgorI2VuZGlmCisKIC8qISBBIFdLV2VicGFnZVByZWZlcmVu
Y2VzIG9iamVjdCBpcyBhIGNvbGxlY3Rpb24gb2YgcHJvcGVydGllcyB0aGF0CiAgZGV0ZXJtaW5l
IHRoZSBwcmVmZXJlbmNlcyB0byB1c2Ugd2hlbiBsb2FkaW5nIGFuZCByZW5kZXJpbmcgYSBwYWdl
LgogIEBkaXNjdXNzaW9uIENvbnRhaW5zIHByb3BlcnRpZXMgdXNlZCB0byBkZXRlcm1pbmUgd2Vi
cGFnZSBwcmVmZXJlbmNlcy4KQEAgLTMyLDQgKzM2LDggQEAKIFdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyA6IE5TT2JqZWN0CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLV2VicGFnZVByZWZlcmVuY2VzQWRkaXRpb25zQWZ0ZXIu
aD4KKyNlbmRpZgorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5oCmluZGV4IDFmMGQ1ZjQ3YmZmMTZiYTdjNmM1MjNhZWQ0ZDMyZDg1NDQ5
ZDgxODkuLmRhNmJmNWNjOTM5ZWI0YjQ4ZjVjY2M0MmFkZTU4N2YyMjBiNzlkMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCkBAIC0xODYs
NiArMTg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCB7CiAgICAgICAgIGJvb2wgd2ViVmll
d0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXIgOiAxOworICAg
ICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZl
cmVuY2VzRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA6IDE7
CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2Vy
SW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFuZGxlciA6IDE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0K
aW5kZXggNTRjZGY1MWUxOGMzNzJmM2VmMDMwMjNlNzJiMjk2YjU4MzE3OWJjZC4uMzJjNjU5MTMx
NjA5ZTAwZGZhN2IzODBjYjgxMmUyYTUyZDRlOTljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2lt
cG9ydCAiQVBJRnJhbWVJbmZvLmgiCiAjaW1wb3J0ICJBUElOYXZpZ2F0aW9uRGF0YS5oIgogI2lt
cG9ydCAiQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgiCisjaW1wb3J0ICJBUElQYWdlQ29uZmlndXJh
dGlvbi5oIgogI2ltcG9ydCAiQVBJU3RyaW5nLmgiCiAjaW1wb3J0ICJBUElVUkwuaCIKICNpbXBv
cnQgIkFQSVdlYnNpdGVEYXRhU3RvcmUuaCIKQEAgLTE0OCw2ICsxNDksNyBAQCB2b2lkIE5hdmln
YXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0
ZT4gZGVsZWdhdGUpCiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGUgPSBkZWxlZ2F0ZTsKIAogICAg
IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lv
bkhhbmRsZXI6KV07CisgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndpdGhQcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6
KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlcklu
Zm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjopXTsKQEAgLTUw
OCwxOCArNTEwLDIwIEBAIHN0YXRpYyB2b2lkIHRyeUludGVyY2VwdE5hdmlnYXRpb24oUmVmPEFQ
STo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uCiB2b2lkIE5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihX
ZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBu
YXZpZ2F0aW9uQWN0aW9uLCBSZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3Rl
bmVyLCBBUEk6Ok9iamVjdCogdXNlckluZm8pCiB7CiAgICAgYm9vbCBzdWJmcmFtZU5hdmlnYXRp
b24gPSBuYXZpZ2F0aW9uQWN0aW9uLT50YXJnZXRGcmFtZSgpICYmICFuYXZpZ2F0aW9uQWN0aW9u
LT50YXJnZXRGcmFtZSgpLT5pc01haW5GcmFtZSgpOworICAgIGF1dG8gZGVmYXVsdFdlYnNpdGVQ
b2xpY2llcyA9IG1ha2VSZWZQdHIod2ViUGFnZVByb3h5LmNvbmZpZ3VyYXRpb24oKS5kZWZhdWx0
V2Vic2l0ZVBvbGljaWVzKCkpOwogCiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmln
YXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25EZWNpc2lvbkhhbmRsZXIKKyAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdh
dGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcgogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9u
U3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzCiAgICAgICAgICYm
ICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNp
dGVQb2xpY2llcykgewotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3dlYlBhZ2Ug
PSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIGxpc3RlbmVyID0gV1RGTW92ZShsaXN0ZW5lciksIG5h
dmlnYXRpb25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmNvcHlSZWYoKV0gKGJvb2wgaW50ZXJj
ZXB0ZWROYXZpZ2F0aW9uKSB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbd2Vi
UGFnZSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgbGlzdGVuZXIgPSBXVEZNb3ZlKGxpc3RlbmVy
KSwgbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigpLCBkZWZhdWx0
V2Vic2l0ZVBvbGljaWVzXSAoYm9vbCBpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAg
ICAgIGlmIChpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAgICAgICAgICBsaXN0ZW5l
ci0+aWdub3JlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoIW5hdmlnYXRpb25BY3Rpb24tPnRhcmdldEZyYW1lKCkpIHsKLSAgICAg
ICAgICAgICAgICBsaXN0ZW5lci0+dXNlKCk7CisgICAgICAgICAgICAgICAgbGlzdGVuZXItPnVz
ZShkZWZhdWx0V2Vic2l0ZVBvbGljaWVzLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CiAKQEAgLTUyOCw3ICs1MzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQ
YWdlUAogICAgICAgICAgICAgICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLT5zaG91bGRQZXJmb3Jt
RG93bmxvYWQoKSkKICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXItPmRvd25sb2FkKCk7CiAg
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci0+dXNlKCk7
CisgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLT51c2UoZGVmYXVsdFdlYnNpdGVQb2xpY2ll
cy5nZXQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC01
NDgsMTEgKzU1MiwxOSBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgIGlmICghbmF2aWdh
dGlvbkRlbGVnYXRlKQogICAgICAgICByZXR1cm47CiAKKyAgICBib29sIGRlbGVnYXRlSGFzV2Vi
cGFnZVByZWZlcmVuY2VzID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVu
Y2VzRGVjaXNpb25IYW5kbGVyOwogICAgIGJvb2wgZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMg
PSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNp
ZXMgfHwgbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJX
ZWJzaXRlUG9saWNpZXM7Ci0gICAgCi0gICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRs
ZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSwgZGVsZWdhdGVI
YXNXZWJzaXRlUG9saWNpZXMgPyBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KSA6IEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOikpOwotICAgIAotICAg
IGF1dG8gZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzID0gW2xvY2FsTGlzdGVuZXIgPSBXVEZN
b3ZlKGxpc3RlbmVyKSwgbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJl
ZigpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgd2ViUGFnZVByb3h5ID0gbWFrZVJlZih3
ZWJQYWdlUHJveHkpLCBzdWJmcmFtZU5hdmlnYXRpb25dKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSBhY3Rpb25Qb2xpY3ksIGlkIHBvbGljaWVzT3JQcmVmZXJlbmNlcykgbXV0YWJsZSB7CisKKyAg
ICBhdXRvIHNlbGVjdG9yRm9yQ29tcGxldGlvbkhhbmRsZXJDaGVja2VyID0gKFsmXSAoKSAtPiBT
RUwgeworICAgICAgICBpZiAoZGVsZWdhdGVIYXNXZWJwYWdlUHJlZmVyZW5jZXMpCisgICAgICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjp3aXRoUHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOik7CisgICAgICAgIGlmIChkZWxl
Z2F0ZUhhc1dlYnNpdGVQb2xpY2llcykKKyAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IoX3dl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KTsK
KyAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOik7CisgICAgfSkoKTsKKworICAgIGF1dG8gY2hlY2tl
ciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShuYXZpZ2F0aW9uRGVsZWdh
dGUuZ2V0KCksIHNlbGVjdG9yRm9yQ29tcGxldGlvbkhhbmRsZXJDaGVja2VyKTsKKyAgICBhdXRv
IGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMgPSBbbG9jYWxMaXN0ZW5l
ciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlv
bi5jb3B5UmVmKCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpLCB3ZWJQYWdlUHJveHkgPSBt
YWtlUmVmKHdlYlBhZ2VQcm94eSksIHN1YmZyYW1lTmF2aWdhdGlvbiwgZGVmYXVsdFdlYnNpdGVQ
b2xpY2llc10gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3ksIGlkIHBvbGlj
aWVzT3JQcmVmZXJlbmNlcykgbXV0YWJsZSB7CiAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0
aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Y2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC01NjQsMTkgKzU3NiwyMSBA
QCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgICAgICAgICAgYXBpV2Vic2l0ZVBvbGljaWVz
ID0gW3BvbGljaWVzT3JQcmVmZXJlbmNlcyB3ZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vic2l0ZVBv
bGljaWVzLmdldCgpOwogICAgICAgICBlbHNlIGlmIChwb2xpY2llc09yUHJlZmVyZW5jZXMpCiAg
ICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiRXhwZWN0ZWQgcG9saWNpZXMgb2YgY2xhc3MgJUAsIGJ1dCBnb3QgJUAiLCBOU1N0
cmluZ0Zyb21DbGFzcyhfV0tXZWJzaXRlUG9saWNpZXMuc2VsZiksIFtwb2xpY2llc09yUHJlZmVy
ZW5jZXMgY2xhc3NdXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXBpV2Vic2l0ZVBvbGlj
aWVzID0gZGVmYXVsdFdlYnNpdGVQb2xpY2llczsKIAogICAgICAgICBpZiAoYXBpV2Vic2l0ZVBv
bGljaWVzKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogd2Vic2l0ZURhdGFTdG9yZSA9IGFwaVdl
YnNpdGVQb2xpY2llcy0+d2Vic2l0ZURhdGFTdG9yZSgpKSB7CiAgICAgICAgICAgICAgICAgYXV0
byBzZXNzaW9uSUQgPSB3ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lv
bklEKCk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSAmJiBz
ZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKLSAgICAgICAg
ICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u
IGZvcm1hdDpAIl9XS1dlYnNpdGVQb2xpY2llcy53ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmls
LCBkZWZhdWx0LCBvciBub24tcGVyc2lzdGVudC4iXTsKKyAgICAgICAgICAgICAgICAgICAgW05T
RXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2Vi
cGFnZVByZWZlcmVuY2VzLl93ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsLCBkZWZhdWx0LCBv
ciBub24tcGVyc2lzdGVudC4iXTsKICAgICAgICAgICAgICAgICBpZiAoc3ViZnJhbWVOYXZpZ2F0
aW9uKQotICAgICAgICAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiX1dLV2Vic2l0ZVBvbGljaWVzLndlYnNpdGVEYXRhU3Rv
cmUgbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOworICAgICAgICAgICAg
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9y
bWF0OkAiV0tXZWJwYWdlUHJlZmVyZW5jZXMuX3dlYnNpdGVEYXRhU3RvcmUgbXVzdCBiZSBuaWwg
Zm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
aWYgKCFhcGlXZWJzaXRlUG9saWNpZXMtPmN1c3RvbVVzZXJBZ2VudCgpLmlzTnVsbCgpICYmIHN1
YmZyYW1lTmF2aWdhdGlvbikKLSAgICAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJ
bnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiX1dLV2Vic2l0ZVBvbGljaWVzLmN1c3Rv
bVVzZXJBZ2VudCBtdXN0IGJlIG5pbCBmb3Igc3ViZnJhbWUgbmF2aWdhdGlvbnMuIl07CisgICAg
ICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u
IGZvcm1hdDpAIldLV2VicGFnZVByZWZlcmVuY2VzLl9jdXN0b21Vc2VyQWdlbnQgbXVzdCBiZSBu
aWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwogICAgICAgICAgICAgaWYgKCFhcGlXZWJz
aXRlUG9saWNpZXMtPmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtKCkuaXNOdWxsKCkgJiYgc3ViZnJh
bWVOYXZpZ2F0aW9uKQotICAgICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFs
aWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJfV0tXZWJzaXRlUG9saWNpZXMuY3VzdG9tTmF2
aWdhdG9yUGxhdGZvcm0gbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwor
ICAgICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2Vw
dGlvbiBmb3JtYXQ6QCJXS1dlYnBhZ2VQcmVmZXJlbmNlcy5fY3VzdG9tTmF2aWdhdG9yUGxhdGZv
cm0gbXVzdCBiZSBuaWwgZm9yIHN1YmZyYW1lIG5hdmlnYXRpb25zLiJdOwogICAgICAgICB9CiAK
ICAgICAgICAgc3dpdGNoIChhY3Rpb25Qb2xpY3kpIHsKQEAgLTYxMiw5ICs2MjYsMTEgQEAgdm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV2ViUGFnZVAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
fTsKLSAgICAKLSAgICBpZiAoZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMpIHsKLSAgICAgICAg
YXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRs
ZXJXaXRoUG9saWNpZXMpKTsKKworICAgIGlmIChkZWxlZ2F0ZUhhc1dlYnBhZ2VQcmVmZXJlbmNl
cykKKyAgICAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRl
Lm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdh
dGlvbkFjdGlvbikgd2l0aFByZWZlcmVuY2VzOndyYXBwZXIoZGVmYXVsdFdlYnNpdGVQb2xpY2ll
cykgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldp
dGhQcmVmZXJlbmNlc09yUG9saWNpZXMpKS5nZXQoKV07CisgICAgZWxzZSBpZiAoZGVsZWdhdGVI
YXNXZWJzaXRlUG9saWNpZXMpIHsKKyAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVz
KSk7CiAgICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lz
aW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcykKICAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlv
blN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIo
bmF2aWdhdGlvbkFjdGlvbikgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNT
ZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICAgICAgZWxzZSB7CkBAIC02MjMsMTAgKzYzOSwx
MCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBhdXRv
IGRlY2lzaW9uSGFuZGxlcldpdGhvdXRQb2xpY2llcyA9IFtkZWNpc2lvbkhhbmRsZXJXaXRoUG9s
aWNpZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyldIChXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3kgYWN0aW9uUG9saWN5KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRlY2lz
aW9uSGFuZGxlcldpdGhQb2xpY2llcyhhY3Rpb25Qb2xpY3ksIG5pbCk7CisgICAgICAgIGF1dG8g
ZGVjaXNpb25IYW5kbGVyID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNp
ZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMpXSAo
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CisgICAgICAg
ICAgICBkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKGFjdGlvblBvbGlj
eSwgbmlsKTsKICAgICAgICAgfTsKLSAgICAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0
cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhvdXRQb2xpY2llcykpLmdldCgpXTsKKyAgICAg
ICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlv
bikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcikp
LmdldCgpXTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDdmNWZmZGFmNjRiMmZhN2Q4NTkwMDUwN2MwNmUwYzhmNDkz
MWQ1OTguLmNjYjUwMTE2MTIwMTIxOTZlODUzMmI5ZDYwZTU5OGVlYTk4MjIyMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTYzNiw3
ICsxNjM2LDcgQEAKIAkJRUNBNjgwRDgxRTY5MEUyNTAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2Nv
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgw
RDcxRTY5MERGODAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdC
MyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdl
T3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJBMTcx
RTZFNjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQzOENEMUMyMjQxNDIxNDAw
REU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM4Q0QxQjIyNDE0MEE2MDBERTZEREEgLyogV0tXZWJw
YWdlUHJlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlGNDM4Q0QxQzIyNDE0MjE0MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5j
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhD
RDFCMjI0MTQwQTYwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJRjQzOENEMUYyMjQxNEQ0MDAw
REU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDFFMjI0MTRENDAwMERFNkREQSAv
KiBXS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmggKi87IH07CiAJCUY0MzhDRDIxMjI0MUY2
OTUwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDIwMjI0MUY2OTUwMERFNkRE
QSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDQyOTE5MjFGQTU5MUM5MDAyQ0M5M0UgLyog
X1dLQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ0MjkxOTExRkE1OTEwNzAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzEwNywxMCArNzEw
NywxMCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUE4QjY2QjIxQkM0NUIwMTAwODJERjc3IC8q
IFdLQnVuZGxlTWFjLmggKi8sCiAJCQkJMUE4QjY2QjExQkM0NUIwMTAwODJERjc3IC8qIFdLQnVu
ZGxlTWFjLm1tICovLAotCQkJCUM2QTRDQTA5MjI1Mjg5OTgwMDE2OTI4OSAvKiBXS0J1bmRsZVBh
Z2VNYWMuaCAqLywKLQkJCQlDNkE0Q0EwQTIyNTI4OTk4MDAxNjkyODkgLyogV0tCdW5kbGVQYWdl
TWFjLm1tICovLAogCQkJCTdDRjQ3RkZEMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VC
YW5uZXJNYWMuaCAqLywKIAkJCQk3Q0Y0N0ZGQzE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQ
YWdlQmFubmVyTWFjLm1tICovLAorCQkJCUM2QTRDQTA5MjI1Mjg5OTgwMDE2OTI4OSAvKiBXS0J1
bmRsZVBhZ2VNYWMuaCAqLywKKwkJCQlDNkE0Q0EwQTIyNTI4OTk4MDAxNjkyODkgLyogV0tCdW5k
bGVQYWdlTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtOTc3Niw2ICs5Nzc2LDcgQEAKIAkJCQkxQUI0NzRFNjE4NEQ0NEI0MDA1
MUI2MjIgLyogV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM3QjYzM0QxMkE0NUQxMjAwRDE3NEE0IC8qIFdLQnVuZGxlUGFnZUdyb3VwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUI0NzREODE4NEQ0M0ZEMDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkE0Q0EwQjIyNTI4OTk4MDAxNjkyODkg
LyogV0tCdW5kbGVQYWdlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDgyQTdGMjEyOEM2RkFG
MDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFC
NDc0RUExODRENDUxMzAwNTFCNjIyIC8qIFdLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxQjQxOTgxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFnZVBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtOTc4Myw3ICs5Nzg0LDYgQEAKIAkJCQkxQUI0NzRE
RTE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdl
SGFuZGxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDNkE0Q0EwQjIyNTI4OTk4MDAxNjkyODkgLyog
V0tCdW5kbGVQYWdlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNzE2Q0Q3M0M1MDA3
RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzQwNzVGNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUlu
Zm8uaCBpbiBIZWFkZXJzICovLApAQCAtMTAxNzYsNiArMTAxNzYsNyBAQAogCQkJCTFBNjI4MEM4
MTkxOTk1NkIwMDZBRDlGOSAvKiBNaWdyYXRlIFdlYktpdExlZ2FjeSBIZWFkZXJzICovLAogCQkJ
CTM3NUEyNDg4MTdFNTA0OEUwMEM5QTA4NiAvKiBQb3N0cHJvY2VzcyBXS0Jhc2UuaCAqLywKIAkJ
CQkxQUQ5OEVDRjE5MUQ4NjczMDBDQUE2REYgLyogUG9zdHByb2Nlc3MgV0tGb3VuZGF0aW9uLmgg
Ki8sCisJCQkJRjRFRkJBRDUyMjU0MENCQjAwMDQ5QkE2IC8qIFJlcGxhY2UgV2ViS2l0QWRkaXRp
b25zIGluIEZyYW1ld29yayBIZWFkZXJzICovLAogCQkJCTFBMUQyMTE1MTkxRDk2MzgwMDAxNjE5
RiAvKiBQb3N0cHJvY2VzcyBGcmFtZXdvcmsgSGVhZGVycyAqLywKIAkJCQkyRTE2QjZGNDIwMTlC
QzI1MDA4OTk2RDYgLyogQ29weSBBZGRpdGlvbmFsIFJlc291cmNlcyAqLywKIAkJCQk4REMyRUY1
MjA0ODZBNjk0MDA5OEIyMTYgLyogUmVzb3VyY2VzICovLApAQCAtMTA4MzUsNiArMTA4MzYsMjAg
QEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVsbFNjcmlwdCA9ICJVTkxPQ0tfU0NS
SVBUX1BBVEg9XCIke1NSQ1JPT1R9Ly4uLy4uLy4uL0ludGVybmFsL1Rvb2xzL1NjcmlwdHMvdW5s
b2NrLXNhZmFyaS1lbmdpbmVlcmluZy1rZXljaGFpbi1pZi1uZWVkZWRcIlxuXG5bWyAteCBcIiR7
VU5MT0NLX1NDUklQVF9QQVRIfVwiIF1dICYmIGV4ZWMgXCIke1VOTE9DS19TQ1JJUFRfUEFUSH1c
IlxuXG5leGl0IDBcbiI7CiAJCX07CisJCUY0RUZCQUQ1MjI1NDBDQkIwMDA0OUJBNiAvKiBSZXBs
YWNlIFdlYktpdEFkZGl0aW9ucyBpbiBGcmFtZXdvcmsgSGVhZGVycyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5h
bWUgPSAiUmVwbGFjZSBXZWJLaXRBZGRpdGlvbnMgaW4gRnJhbWV3b3JrIEhlYWRlcnMiOworCQkJ
b3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAiaWYg
WyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxc
IiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBc
Imluc3RhbGxhcGlcIiBdOyB0aGVuXG4gICAgZm9yIEhFQURFUlNfRElSRUNUT1JZIGluIFwiJHtQ
VUJMSUNfSEVBREVSU19GT0xERVJfUEFUSH1cIiBcIiR7UFJJVkFURV9IRUFERVJTX0ZPTERFUl9Q
QVRIfVwiOyBkb1xuICAgICAgICBmb3IgSEVBREVSX1BBVEggaW4gXCIke1RBUkdFVF9CVUlMRF9E
SVJ9LyR7SEVBREVSU19ESVJFQ1RPUll9L1wiKi5oOyBkb1xuICAgICAgICAgICAgaWYgW1sgISAt
eiBgZ3JlcCAnI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zLy4qXFwuaD4nIFwiJHtIRUFERVJfUEFU
SH1cImAgXV07IHRoZW5cbiAgICAgICAgICAgICAgICBweXRob24gXCIke1NSQ1JPT1R9L21hYy9y
ZXBsYWNlLXdlYmtpdC1hZGRpdGlvbnMtaW5jbHVkZXMucHlcIiBcIiR7SEVBREVSX1BBVEh9XCIg
XCIke0JVSUxUX1BST0RVQ1RTX0RJUn1cIiBcIiR7U0RLUk9PVH1cIiB8fCBleGl0ICQ/XG4gICAg
ICAgICAgICBmaVxuICAgICAgICBkb25lXG4gICAgZG9uZVxuZmlcbiI7CisJCX07CiAvKiBFbmQg
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU291cmNl
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTEwNDgsNyArMTEwNjMsNiBAQAogCQkJCTJEMTFC
N0E3MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNDQtbW0ubW0gaW4gU291cmNlcyAq
LywKIAkJCQkyRDExQjdBODIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEMTFCN0E5MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291
cmNlNDUtbW0ubW0gaW4gU291cmNlcyAqLywKLQkJCQlDNkE0Q0EwQzIyNTI4OTk4MDAxNjkyODkg
LyogV0tCdW5kbGVQYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QUEyMTI2QTI4
MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0NS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDEx
QjdBQjIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ2LW1tLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQxMUI3QUMyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0Ni5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTExMjEwLDYgKzExMjI0LDcgQEAKIAkJCQkxQUFGMDhCNzE5MjY5
RTZEMDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDMzYxRDc4MTkyODAzQkQwMDM2QTU5RCAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDkyQTc4RjIxMkI2QUIxMDBGNDkzRkQgLyogV2ViV2hlZWxFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDNkE0Q0EwQzIyNTI4OTk4MDAxNjkyODkgLyogV0tCdW5kbGVQYWdlTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MzExNjkyMTJGNjFCMjAwMDQ0QkZFIC8qIFdLQ29u
dGVudFZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkzMTE2QTIxMkY2MUI1MDAwNDRCRkUg
LyogV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjM3Mjgx
QTMyMUFEQzc0NDAwOUUwREU2IC8qIFdLRG93bmxvYWRQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhl
YWRlcnMuc2ggYi9Tb3VyY2UvV2ViS2l0L21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVy
cy5zaAppbmRleCA5ZDZjYmFiMzliMThlNTVhMmJjMWUxZWQ3OTk4NDY0YmI5NTM4YWU3Li4wNzEw
NmI0YmRiZTllMTQ2NDVlNGRiOTAwZjQ4MzAwNjUwYjgwMTdlIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaApAQCAtNDgsMTQgKzQ4
LDYgQEAgZnVuY3Rpb24gcHJvY2Vzc19kZWZpbml0aW9ucyAoKSB7CiAgICAgc291cmNlICIke0RF
RklOSVRJT05TX0ZJTEV9IgogfQogCi1mdW5jdGlvbiByZXBsYWNlX3dlYmtpdF9hZGRpdGlvbnNf
aW5jbHVkZXMgKCkgewotICAgIGlmIFtbIC16IGBncmVwICcjaW1wb3J0IDxXZWJLaXRBZGRpdGlv
bnMvLipcLmg+JyAiJHsxfSJgIF1dOyB0aGVuCi0gICAgICAgIHJldHVybiAwCi0gICAgZmkKLSAg
ICBweXRob24gIiQoZGlybmFtZSAkMCkvcmVwbGFjZS13ZWJraXQtYWRkaXRpb25zLWluY2x1ZGVz
LnB5IiAiJHsxfSIgIiR7QlVJTFRfUFJPRFVDVFNfRElSfSIgIiR7U0RLUk9PVH0iCi0gICAgcmV0
dXJuICQ/Ci19Ci0KIGZ1bmN0aW9uIHJld3JpdGVfaGVhZGVycyAoKSB7CiAgICAgaWYgW1sgIiR7
V0tfUExBVEZPUk1fTkFNRX0iID09ICJtYWNvc3giIF1dOyB0aGVuCiAgICAgICAgIFtbIC1uICR7
T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9WRVJTSU9OPSR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
fQpAQCAtODksNyArODEsNiBAQCBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkgewogICAgIGZv
ciBIRUFERVJfUEFUSCBpbiAiJHsxfS8iKi5oOyBkbwogICAgICAgICBpZiBbWyAiJEhFQURFUl9Q
QVRIIiAtbnQgJFRJTUVTVEFNUF9QQVRIIF1dOyB0aGVuCiAgICAgICAgICAgICBkaXR0byAiJHtI
RUFERVJfUEFUSH0iICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IgotICAg
ICAgICAgICAgcmVwbGFjZV93ZWJraXRfYWRkaXRpb25zX2luY2x1ZGVzICIke1RBUkdFVF9URU1Q
X0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IgogICAgICAgICAgICAgc2VkIC1pIC50bXAgLUUgIiR7
U0VEX09QVElPTlNbQF19IiAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIg
fHwgZXhpdCAkPwogICAgICAgICAgICAgbXYgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9Q
QVRIIyMqL30iICIkSEVBREVSX1BBVEgiCiAgICAgICAgIGZpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>