<?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>233954</bug_id>
          
          <creation_ts>2021-12-07 14:22:55 -0800</creation_ts>
          <short_desc>Make KVO work for WKWebpagePreferences._captivePortalModeEnabled</short_desc>
          <delta_ts>2021-12-08 10:05:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233900</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821220</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 14:22:55 -0800</bug_when>
    <thetext>Make KVO work for WKWebpagePreferences._captivePortalModeEnabled so that the client can observe when the system setting changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821223</commentid>
    <comment_count>1</comment_count>
      <attachid>446237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 14:29:11 -0800</bug_when>
    <thetext>Created attachment 446237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821278</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-07 16:31:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/86182490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821280</commentid>
    <comment_count>3</comment_count>
      <attachid>446253</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 16:37:42 -0800</bug_when>
    <thetext>Created attachment 446253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821582</commentid>
    <comment_count>4</comment_count>
      <attachid>446253</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-08 09:09:02 -0800</bug_when>
    <thetext>Comment on attachment 446253
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:125
&gt; +#if USE(APPLE_INTERNAL_SDK)

Why?
Also, I don&apos;t see an implementation of this.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:138
&gt; +    id m_object;

WeakObjCPtr&lt;id&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821584</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 09:10:54 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 446253 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446253&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:125
&gt; &gt; +#if USE(APPLE_INTERNAL_SDK)
&gt; 
&gt; Why?
&gt; Also, I don&apos;t see an implementation of this.

Please see corresponding patch in Internal.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:138
&gt; &gt; +    id m_object;
&gt; 
&gt; WeakObjCPtr&lt;id&gt;

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821588</commentid>
    <comment_count>6</comment_count>
      <attachid>446253</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-08 09:14:09 -0800</bug_when>
    <thetext>Comment on attachment 446253
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:125
&gt;&gt;&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt;&gt; 
&gt;&gt; Why?
&gt;&gt; Also, I don&apos;t see an implementation of this.
&gt; 
&gt; Please see corresponding patch in Internal.

FWIW, `USE(APPLE_INTERNAL_SDK)` is typically only used to guard WKA header includes. You could do something here like:

```
#if USE(APPLE_INTERNAL_SDK)
// include the WKA header
#else
// define empty method stubs
#endif
```

…and then avoid having to use `USE(APPLE_INTERNAL_SDK)` here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821596</commentid>
    <comment_count>7</comment_count>
      <attachid>446379</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 09:46:25 -0800</bug_when>
    <thetext>Created attachment 446379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821601</commentid>
    <comment_count>8</comment_count>
      <attachid>446379</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 10:05:05 -0800</bug_when>
    <thetext>Comment on attachment 446379
Patch

Clearing flags on attachment: 446379

Committed r286661 (?): &lt;https://commits.webkit.org/r286661&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821602</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 10:05:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446237</attachid>
            <date>2021-12-07 14:29:11 -0800</date>
            <delta_ts>2021-12-07 16:37:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233954-20211207142910.patch</filename>
            <type>text/plain</type>
            <size>49738</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzZjI3YWQ4OWJkZTU5MWEz
MDFjZTRiMDMzMDczODFiZjM3MWQ2YzEuLjU1NDc1N2MzOWMzNWQ3Mjc2ZjBkMzQyMTIzNTQyMTQx
ZGY0YjBhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMTItMDcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEtWTyB3b3JrIGZvciBXS1dl
YnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEtWTyB3b3JrIGZvciBXS1dl
YnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkIHNvIHRoYXQgdGhlIGNs
aWVudCBjYW4gb2JzZXJ2ZQorICAgICAgICB3aGVuIHRoZSBzeXN0ZW0gc2V0dGluZyBjaGFuZ2Vz
LiBBbHNvIGFkZCBTUEkgdG8gc2ltdWxhdGUgYSBjaGFuZ2Ugb2YgdGhlIHN5c3RlbSBzZXR0aW5n
IHNvIHRoYXQKKyAgICAgICAgSSBjYW4gd3JpdGUgQVBJIHRlc3RzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NQ
b29sIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmc6XSk6Cisg
ICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX2NsZWFyQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xv
YmFsbHlGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVuY2VzIGluaXRdKToK
KyAgICAgICAgKC1bV0tXZWJwYWdlUHJlZmVyZW5jZXMgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVu
Y2VzSW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ2FwdGl2ZVBvcnRhbE1vZGVPYnNl
cnZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oLgorICAgICAgICAoV2ViS2l0OjpDYXB0aXZlUG9y
dGFsTW9kZU9ic2VydmVyOjp+Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcik6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OmNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktpdDo6aXNDYXB0aXZl
UG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0Ojpp
c0NhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEJ5U3lzdGVtSWdub3JpbmdDYWNoaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNhcHRpdmVQb3J0YWxNb2RlU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6YWRkQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcik6CisgICAg
ICAgIChXZWJLaXQ6OnJlbW92ZUNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIpOgorICAgICAgICAo
V2ViS2l0OjpjYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRCeVN5c3RlbSk6CisgICAgICAgIChXZWJL
aXQ6OnNldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmFkZENhcHRpdmVQ
b3J0YWxNb2RlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpyZW1vdmVDYXB0aXZlUG9ydGFs
TW9kZU9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6c2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFi
bGVkR2xvYmFsbHlGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAy
MS0xMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbG9h
ZCB3ZWIgdmlld3Mgd2hlbiB0b2dnbGluZyB0aGUgY2FwdGl2ZSBwb3J0YWwgbW9kZSBhdCBzeXN0
ZW0gbGV2ZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0KaW5kZXggODUyMDdiZDI5ODBlMjhlM2E1ZTM0NzJiNzI3NzI2ZjU0NGFjZGJm
Yi4uN2JkNjlkOTYwZDRhMjY1YWIyYjMzMzFjMDliOThmNjJlOWQ0OWMyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQ5
OSw2ICs0OTksMTYgQEAgKyAodm9pZClfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRl
c3RpbmcKICAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1
aW50MzJfdD46Om1heCgpKTsKIH0KIAorKyAodm9pZClfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFi
bGVkR2xvYmFsbHlGb3JUZXN0aW5nOihCT09MKWlzRW5hYmxlZAoreworICAgIFdlYktpdDo6c2V0
Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKCEhaXNFbmFibGVkKTsK
K30KKworKyAodm9pZClfY2xlYXJDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRl
c3RpbmcKK3sKKyAgICBXZWJLaXQ6OnNldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5
Rm9yVGVzdGluZyhzdGQ6Om51bGxvcHQpOworfQorCiAtIChCT09MKV9pc0Nvb2tpZVN0b3JhZ2VQ
YXJ0aXRpb25pbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+Y29va2llU3Rv
cmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggODczYzA0YzZm
MzZkYzNkZmI0MDIxM2M3OWE5NTljMzgzNzhmZWE0Mi4uN2FmOWU3NTY0YmQ1YjA2MGU2NTY3ZDE4
NDJhYWY3NDdjMmRiNmI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTEyNCw2ICsxMjQsOCBAQAog
KyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKICsgKHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiArICh2b2lkKV9zZXRMaW5rZWRPbk9yQmVmb3JlRXZlcnl0aGluZ0ZvclRlc3RpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKysgKHZvaWQpX3NldENhcHRpdmVQ
b3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzooQk9PTClpc0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKysgKHZvaWQp
X2NsZWFyQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQp
X3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Ll9wcmVjb25uZWN0VG9TZXJ2ZXIiLCBtYWNvcygx
MC4xMy40LCAxMC4xNS40KSwgaW9zKDExLjMsIDEzLjQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmlu
ZGV4IDExNTNmZGNhYzkxYzRiMGU4NDBhNzE1NWVlMDU1YTYxODA2NzI2ZjMuLjQxMDc4OTY1ZDM3
NjAwM2E3MjBiOWViOWQwMzk2MzYxOGFiNTNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTI3
LDEwICsyNywxMiBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVByZWZlcmVuY2VzLmg+CiAK
ICNpbXBvcnQgIkFQSUN1c3RvbUhlYWRlckZpZWxkcy5oIgorI2ltcG9ydCAiQ2FwdGl2ZVBvcnRh
bE1vZGVPYnNlcnZlci5oIgogI2ltcG9ydCAiV0tVc2VyQ29udGVudENvbnRyb2xsZXJJbnRlcm5h
bC5oIgogI2ltcG9ydCAiV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkNvbnRlbnRNb2RlLmgi
CisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiX1dLQ3VzdG9tSGVhZGVyRmll
bGRzSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTEwMiw2ICsxMDQsMzQgQEAgc3Rh
dGljIFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kgY29yZU1vdXNlRXZlbnRQb2xpY3koX1dLV2Vi
c2l0ZU1vdXNlRXZlbnRQb2xpY3kKICAgICByZXR1cm4gV2ViQ29yZTo6TW91c2VFdmVudFBvbGlj
eTo6RGVmYXVsdDsKIH0KIAorY2xhc3MgV2ViUGFnZVByZWZlcmVuY2VzQ2FwdGl2ZVBvcnRhbE1v
ZGVPYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJQYWdlUHJlZmVyZW5j
ZXNDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKGlkIG9iamVjdCkKKyAgICAgICAgOiBtX29iamVj
dChvYmplY3QpCisgICAgeworICAgICAgICBhZGRDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKCp0
aGlzKTsKKyAgICB9CisKKyAgICB+V2ViUGFnZVByZWZlcmVuY2VzQ2FwdGl2ZVBvcnRhbE1vZGVP
YnNlcnZlcigpCisgICAgeworICAgICAgICByZW1vdmVDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVy
KCp0aGlzKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCB3aWxsQ2hhbmdlQ2FwdGl2ZVBv
cnRhbE1vZGUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fb2JqZWN0IHdpbGxDaGFuZ2VWYWx1
ZUZvcktleTpAIl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQiXTsKKyAgICB9CisKKyAgICB2b2lk
IGRpZENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlKCkgZmluYWwKKyAgICB7CisgICAgICAgIFttX29i
amVjdCBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAIl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQiXTsK
KyAgICB9CisKKyAgICBpZCBtX29iamVjdDsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiBAaW1wbGVtZW50YXRpb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKQEAgLTEyNyw2ICsxNTcsNyBA
QCAtIChpbnN0YW5jZXR5cGUpaW5pdAogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgQVBJOjpP
YmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVQb2xpY2llcz4oc2VsZik7Cisg
ICAgX2NhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViUGFn
ZVByZWZlcmVuY2VzQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcj4oc2VsZik7CiAKICAgICByZXR1
cm4gc2VsZjsKIH0KQEAgLTQxOCw5ICs0NDksNiBAQCAtIChCT09MKWFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0CiAKIC0gKHZvaWQpX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZDooQk9PTCljYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWQKIHsKLSAgICBpZiAoX3dlYnNpdGVQb2xpY2llcy0+Y2FwdGl2
ZVBvcnRhbE1vZGVFbmFibGVkKCkgPT0gY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkKQotICAgICAg
ICByZXR1cm47Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIC8vIE9uIGlPUywgdGhl
IHdlYiBicm93c2VyIGVudGl0bGVtZW50IGlzIHJlcXVpcmVkIHRvIGRpc2FibGUgY2FwdGl2ZSBw
b3J0YWwgbW9kZS4KICAgICBpZiAoIWNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZCAmJiAhV1RGOjpw
cm9jZXNzSGFzRW50aXRsZW1lbnQoImNvbS5hcHBsZS5kZXZlbG9wZXIud2ViLWJyb3dzZXIiKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQ
cmVmZXJlbmNlc0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oCmluZGV4IDZlMTE5ZjkwMWRkMTRlYTE5YzA3
NGNmZDMxNDhmYjcyOTk0MTVhMGMuLjhlMTAxYTVkYjQwODNhMmE2M2Y3ZWVjNGQwZTJiMjY4Yzc5
MTgyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaApAQCAtMzgsMTEgKzM4LDE0
IEBAIFdLQ29udGVudE1vZGUgY29udGVudE1vZGUoV2ViQ29udGVudE1vZGUpOwogV2ViQ29udGVu
dE1vZGUgd2ViQ29udGVudE1vZGUoV0tDb250ZW50TW9kZSk7CiAjZW5kaWYKIAorY2xhc3MgV2Vi
UGFnZVByZWZlcmVuY2VzQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcjsKKwogfQogCiBAaW50ZXJm
YWNlIFdLV2VicGFnZVByZWZlcmVuY2VzICgpIDxXS09iamVjdD4gewogQHBhY2thZ2UKICAgICBB
UEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpXZWJzaXRlUG9saWNpZXM+IF93ZWJzaXRlUG9saWNpZXM7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6V2ViUGFnZVByZWZlcmVuY2VzQ2FwdGl2ZVBv
cnRhbE1vZGVPYnNlcnZlcj4gX2NhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXI7CiB9CiAKIEBwcm9w
ZXJ0eSAoY2xhc3MsIG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2VicGFnZVByZWZlcmVuY2VzICpk
ZWZhdWx0UHJlZmVyZW5jZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
YXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DYXB0
aXZlUG9ydGFsTW9kZU9ic2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFkNzdiNDQ4NzdmYWU1ZTE4YWFm
NDc5Y2E4MjhhM2UwYmM3NDAxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDQwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlciA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyPiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcigpIHsgfQorCisgICAgdmlydHVh
bCB2b2lkIHdpbGxDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGUoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCmluZGV4IDViNmUzMWRmYmVjNzhiNjEzMDVkYTdiZmNlZjJhYzViYzFh
YzBhZWEuLjE1OWM3MjIyZTI3MGEyZjU4OTE1OGUxYWFiOGMyYWFhMTQ2YmEyOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgogI2ltcG9ydCAi
QWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5U3VwcG9y
dFNQSS5oIgorI2ltcG9ydCAiQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlci5oIgogI2ltcG9ydCAi
Q29va2llU3RvcmFnZVV0aWxzQ0YuaCIKICNpbXBvcnQgIkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tz
LmgiCiAjaW1wb3J0ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCIKQEAgLTk0
NSwxMCArOTQ2LDM1IEBAIGludCB3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygpCiAgICAgcmV0dXJu
IHFvczsKIH0KIAorc3RhdGljIFdlYWtIYXNoU2V0PENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXI+
JiBjYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVycygpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoaXNN
YWluUnVuTG9vcCgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha0hhc2hTZXQ8Q2Fw
dGl2ZVBvcnRhbE1vZGVPYnNlcnZlcj4+IG9ic2VydmVyczsKKyAgICByZXR1cm4gb2JzZXJ2ZXJz
OworfQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiYgaXNDYXB0aXZlUG9ydGFsTW9kZUVu
YWJsZWRHbG9iYWxseUZvclRlc3RpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxz
dGQ6Om9wdGlvbmFsPGJvb2w+PiBlbmFibGVkRm9yVGVzdGluZzsKKyAgICByZXR1cm4gZW5hYmxl
ZEZvclRlc3Rpbmc7Cit9CisKK3N0YXRpYyBib29sIGlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVk
QnlTeXN0ZW1JZ25vcmluZ0NhY2hpbmcoKQoreworICAgIGlmIChhdXRvJiBlbmFibGVkRm9yVGVz
dGluZyA9IGlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKCkpCisg
ICAgICAgIHJldHVybiAqZW5hYmxlZEZvclRlc3Rpbmc7CisKKyAgICByZXR1cm4gW1tOU1VzZXJE
ZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5n
V2l0aFVURjhTdHJpbmc6V2ViS2l0Q2FwdGl2ZVBvcnRhbE1vZGVDaGFuZ2VkTm90aWZpY2F0aW9u
XV07Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNhcHRpdmVQb3J0YWxNb2RlU3RhdGVDaGFu
Z2VkKCkKIHsKLSAgICBjYWNoZWRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseSgpID0g
c3RkOjpudWxsb3B0OwotICAgIGF1dG8gaXNOb3dFbmFibGVkID0gY2FwdGl2ZVBvcnRhbE1vZGVF
bmFibGVkQnlTeXN0ZW0oKTsKKyAgICBhdXRvIGlzTm93RW5hYmxlZCA9IGlzQ2FwdGl2ZVBvcnRh
bE1vZGVFbmFibGVkQnlTeXN0ZW1JZ25vcmluZ0NhY2hpbmcoKTsKKyAgICBpZiAoY2FjaGVkQ2Fw
dGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHkoKSAhPSBpc05vd0VuYWJsZWQpIHsKKyAgICAg
ICAgY2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcnMoKS5mb3JFYWNoKFtdKGF1dG8mIG9ic2VydmVy
KSB7IG9ic2VydmVyLndpbGxDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSgpOyB9KTsKKyAgICAgICAg
Y2FjaGVkQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHkoKSA9IGlzTm93RW5hYmxlZDsK
KyAgICAgICAgY2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcnMoKS5mb3JFYWNoKFtdKGF1dG8mIG9i
c2VydmVyKSB7IG9ic2VydmVyLmRpZENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlKCk7IH0pOworICAg
IH0KIAogICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HKExvYWRpbmcsICJXZWJQcm9jZXNz
UG9vbDo6Y2FwdGl2ZVBvcnRhbE1vZGVTdGF0ZUNoYW5nZWQoKSBpc05vd0VuYWJsZWQ9JWQiLCBp
c05vd0VuYWJsZWQpOwogCkBAIC05NjksMTYgKzk5NSw0MCBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpCiAgICAgfQogfQogCit2b2lkIGFkZENh
cHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIoQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlciYgb2JzZXJ2
ZXIpCit7CisgICAgLy8gTWFrZSBzdXJlIGNhY2hlZENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEds
b2JhbGx5KCkgZ2V0cyBpbml0aWFsaXplZCBzbyBjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdl
ZCgpIGNhbiB0cmFjayBjaGFuZ2VzLgorICAgIGF1dG8mIGNhY2hlZFN0YXRlID0gY2FjaGVkQ2Fw
dGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHkoKTsKKyAgICBpZiAoIWNhY2hlZFN0YXRlKQor
ICAgICAgICBjYWNoZWRTdGF0ZSA9IGlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlTeXN0ZW1J
Z25vcmluZ0NhY2hpbmcoKTsKKworICAgIGNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXJzKCkuYWRk
KG9ic2VydmVyKTsKK30KKwordm9pZCByZW1vdmVDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKENh
cHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIGNhcHRpdmVQb3J0YWxN
b2RlT2JzZXJ2ZXJzKCkucmVtb3ZlKG9ic2VydmVyKTsKK30KKwogYm9vbCBjYXB0aXZlUG9ydGFs
TW9kZUVuYWJsZWRCeVN5c3RlbSgpCiB7CiAgICAgYXV0byYgY2FjaGVkU3RhdGUgPSBjYWNoZWRD
YXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseSgpOwotICAgIGlmICghY2FjaGVkU3RhdGUp
IHsKLSAgICAgICAgLy8gRklYTUU6IFVzaW5nIE5TVXNlckRlZmF1bHRzIGlzIGEgdGVtcG9yYXJ5
IHdvcmthcm91bmQuIFRoaXMgc2V0dGluZyBzaG91bGQgYmUgc3RvcmVkIGVsc2V3aGVyZSAoVEND
PykuCi0gICAgICAgIGNhY2hlZFN0YXRlID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6V2ViS2l0
Q2FwdGl2ZVBvcnRhbE1vZGVDaGFuZ2VkTm90aWZpY2F0aW9uXV07Ci0gICAgfQorICAgIGlmICgh
Y2FjaGVkU3RhdGUpCisgICAgICAgIGNhY2hlZFN0YXRlID0gaXNDYXB0aXZlUG9ydGFsTW9kZUVu
YWJsZWRCeVN5c3RlbUlnbm9yaW5nQ2FjaGluZygpOwogICAgIHJldHVybiAqY2FjaGVkU3RhdGU7
CiB9CiAKK3ZvaWQgc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5n
KHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5hYmxlZEZvclRlc3RpbmcpCit7CisgICAgaWYgKGlzQ2Fw
dGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKCkgPT0gZW5hYmxlZEZvclRl
c3RpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVk
R2xvYmFsbHlGb3JUZXN0aW5nKCkgPSBlbmFibGVkRm9yVGVzdGluZzsKKworICAgIGZvciAoYXV0
byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpCisgICAg
ICAgIHByb2Nlc3NQb29sLT5jYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpOworfQorCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6YXBwbGljYXRp
b25Jc0Fib3V0VG9TdXNwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IGNjM2IwN2E1YzVjODEzMzk2OWYwMGYwYzMzZjRiODQ2NWVjNzYyNGUuLjZjZjVj
MzkxNDZlYzQwNmVlMzkyMDgxYjg3YjYzNzc0NjVhY2YxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzQ1Miw3ICszNDUyLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xp
Y3lBY3Rpb24sIEEKICAgICAgICAgfQogICAgIH0KIAotICAgIG1faXNDYXB0aXZlUG9ydGFsTW9k
ZUV4cGxpY2l0bHlTZXQgPSBwb2xpY2llcyA/IHBvbGljaWVzLT5pc0NhcHRpdmVQb3J0YWxNb2Rl
RXhwbGljaXRseVNldCgpIDogbV9jb25maWd1cmF0aW9uLT5pc0NhcHRpdmVQb3J0YWxNb2RlRXhw
bGljaXRseVNldCgpOworICAgIG1faXNDYXB0aXZlUG9ydGFsTW9kZUV4cGxpY2l0bHlTZXQgPSAo
cG9saWNpZXMgJiYgcG9saWNpZXMtPmlzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBsaWNpdGx5U2V0KCkp
IHx8IG1fY29uZmlndXJhdGlvbi0+aXNDYXB0aXZlUG9ydGFsTW9kZUV4cGxpY2l0bHlTZXQoKTsK
ICAgICBhdXRvIGNhcHRpdmVQb3J0YWxNb2RlID0gKHBvbGljaWVzID8gcG9saWNpZXMtPmNhcHRp
dmVQb3J0YWxNb2RlRW5hYmxlZCgpIDogc2hvdWxkRW5hYmxlQ2FwdGl2ZVBvcnRhbE1vZGUoKSkg
PyBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlOjpFbmFibGVkIDogV2ViUHJvY2Vz
c1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RGlzYWJsZWQ7CiAgICAgcHJvY2VzcygpLnByb2Nl
c3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0aW9uLCBzb3VyY2VQ
cm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBjYXB0aXZlUG9ydGFsTW9kZSwgZnJhbWVJbmZvLCBXVEZNb3ZlKHdlYnNpdGVEYXRhU3RvcmUp
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBvbGljeUFjdGlvbiwgbmF2
aWdhdGlvbiA9IFJlZiB7ICpuYXZpZ2F0aW9uIH0sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb24pLCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJvY2Vzcy5jb3B5UmVm
KCksCiAgICAgICAgIHBvbGljaWVzID0gV1RGTW92ZShwb2xpY2llcyksIHNlbmRlciA9IFdURk1v
dmUoc2VuZGVyKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudF0gKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2Vzc0Zvck5hdmlnYXRpb24sIFN1c3BlbmRlZFBhZ2VQcm94eSogZGVzdGlu
YXRpb25TdXNwZW5kZWRQYWdlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgbXV0YWJsZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYTk0ZTdiMjdjOGVh
OTU1ZWNiZjRjMTdhNDMyMTFmNjQ5NGUzZDY5Zi4uMDk2MTM2N2E2MWU4OTY0N2M0MGMwMzk2MmE0
YmEzZDBlYTZiMWFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMjEyNCwxMCArMjEyNCwxOSBAQCBib29sIFdlYlByb2Nlc3NQb29sOjpoYXNTZXJ2
aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpIGNvbnN0CiAjZW5kaWYKIAog
I2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgYWRkQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcihD
YXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyJikKK3sKK30KK3ZvaWQgcmVtb3ZlQ2FwdGl2ZVBvcnRh
bE1vZGVPYnNlcnZlcihDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyJikKK3sKK30KIGJvb2wgY2Fw
dGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlTeXN0ZW0oKQogewogICAgIHJldHVybiBmYWxzZTsKIH0K
K3ZvaWQgc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKHN0ZDo6
b3B0aW9uYWw8Ym9vbD4pCit7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAzYjQzMDNiMjE0NTJm
MzU3Y2JmNmMyZjg1OTdlYzQxZTZjMGNhOTE4Li43NjYyNGJjZjE5OGZiMTc2ZmQ1MDcwNDY0MDdm
YmE3NWZhYmNmMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
QEAgLTk3LDEyICs5NywxMyBAQCBjbGFzcyBQb3dlclNvdXJjZU5vdGlmaWVyOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViQmFja0ZvcndhcmRDYWNoZTsKK2NsYXNzIENhcHRpdmVQ
b3J0YWxNb2RlT2JzZXJ2ZXI7CiBjbGFzcyBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlcjsKIGNsYXNzIFVJR2FtZXBhZDsKIGNsYXNzIFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNh
bXBsZXI7CiBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHk7CiBjbGFzcyBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjsKK2NsYXNzIFdlYkJhY2tGb3J3YXJkQ2FjaGU7CiBjbGFzcyBXZWJDb250ZXh0U3VwcGxl
bWVudDsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKQEAgLTExOSw3
ICsxMjAsMTAgQEAgaW50IG5ldHdvcmtQcm9jZXNzVGhyb3VnaHB1dFFPUygpOwogaW50IHdlYlBy
b2Nlc3NMYXRlbmN5UU9TKCk7CiBpbnQgd2ViUHJvY2Vzc1Rocm91Z2hwdXRRT1MoKTsKICNlbmRp
Zgordm9pZCBhZGRDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKENhcHRpdmVQb3J0YWxNb2RlT2Jz
ZXJ2ZXImKTsKK3ZvaWQgcmVtb3ZlQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcihDYXB0aXZlUG9y
dGFsTW9kZU9ic2VydmVyJik7CiBib29sIGNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEJ5U3lzdGVt
KCk7Cit2b2lkIHNldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZyhz
dGQ6Om9wdGlvbmFsPGJvb2w+KTsKIAogZW51bSBjbGFzcyBDYWxsRG93bmxvYWREaWRTdGFydCA6
IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwpA
QCAtNDMyLDYgKzQzNiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvb2tpZVN0b3JhZ2VQYXJ0
aXRpb25pbmdFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBjbGVhclBlcm1hbmVudENyZWRlbnRp
YWxzRm9yUHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYmKTsKKworICAg
IHZvaWQgY2FwdGl2ZVBvcnRhbE1vZGVTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgogCiAgICAgRm9y
ZWdyb3VuZFdlYlByb2Nlc3NUb2tlbiBmb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuKCkgY29uc3Qg
eyByZXR1cm4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbihtX2ZvcmVncm91bmRXZWJQcm9jZXNz
Q291bnRlci5jb3VudCgpKTsgfQpAQCAtNTQ4LDggKzU1NCw2IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCk7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
Tm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCk7Ci0KLSAgICB2b2lkIGNhcHRpdmVQb3J0YWxNb2RlU3Rh
dGVDaGFuZ2VkKCk7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0QXBwbGljYXRpb25Jc0FjdGl2ZShi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDQxNTk1OTQ4NDIzNGM0ODUwODhjMzQxNGI0OWVlNjI5ZmZhNjlhMjguLmJmYzdlYWNi
YzJkNDdhZTBlYmJkMTA5Njk3NGY5YWU3YWFlMzZlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTA4LDYgKzkwOCw3IEBACiAJCTQ2
MUNDQ0E2MjMxNDg1QUEwMEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzMjM2ODMyMzE0ODFF
RjAwQTQ4RkE3IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi87IH07CiAJCTQ2M0ZENDgw
MUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0N0YxRUI5NDU4NDAw
QTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJD
IC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OworCQk0NjU5RjI1RjI3NUZGNkIyMDBCQkIzNjkgLyog
Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY1OUYyNUUyNzVGRjZCMjAwQkJCMzY5IC8qIENhcHRpdmVQb3J0
YWxNb2RlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJNDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjVGNEUwNTIzMEIyRTdDMDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVz
cGFjZUlkZW50aWZpZXIuaCAqLzsgfTsKIAkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdl
YkxvY2tSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuaCAqLzsgfTsKIAkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaCAqLzsgfTsKQEAgLTQxOTAsNiArNDE5MSw3IEBACiAJCTQ2M0ZENDgxMUVCOTRF
QUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2NTFFQ0U2MjIxNzhBODUwMDY3RUI5NSAvKiBXZWJQcm9jZXNz
Q2FjaGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YlByb2Nlc3NDYWNoZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjUy
NTBFNTFFQ0Y1MkNEMDAyMDI1Q0IgLyogV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdDJJbml0aWFsaXplQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NTlGMjVFMjc1RkY2QjIwMEJCQjM2
OSAvKiBDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDMyMzA3NjA0RTAwM0NFREI3IC8qIFN0b3JhZ2VB
cmVhSW1wbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwNTIzMEIyRTdDMDAz
Q0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUwMjQsNyArNTAyNiw2IEBACiAJCTdCNDgzRjFDMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNzYWdl
UmVjZWl2ZVF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VS
ZWNlaXZlUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I0ODNGMUQyNUNE
REE5QjAwMTIwNDg2IC8qIE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNDgzRjFFMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNz
YWdlUmVjZWl2ZVF1ZXVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNz
YWdlUmVjZWl2ZVF1ZXVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QjUzMDBF
NzI3MTgyMTdBMDAwODIwODYgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjY0QzBCNjI1NEM1QzI1MDAwNkI0
QUYgLyogR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjczMTIzMTI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzMxMjMyMjVDQzg1MjMwMDNCMjc5NiAvKiBT
dHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtOTk0OCw3ICs5OTQ5LDYgQEAKIAkJNUMxNTdBMEEyNzE3QzlGMTAwRUQ1
MjgwIC8qIHdlYnB1c2hkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKLQkJCQk1MTdCNUY3NzI3NUU5Nzk1MDAyREMyMkQgLyogd2VicHVzaGQuY3BwICovLAogCQkJ
CTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1MTYwRTk1
NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUxNjBFOTUz
Mjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tICovLApAQCAtOTk2MSwxMCAr
OTk2MSwxMSBAQAogCQkJCTUxNjBFOTU4Mjc0QzBEODgwMDU2NzM4OCAvKiBQdXNoQXBwQnVuZGxl
Lm1tICovLAogCQkJCTUxRjdCQjc5Mjc0NEM1MDcwMEM0NUE3MiAvKiBQdXNoQ2xpZW50Q29ubmVj
dGlvbi5oICovLAogCQkJCTUxRjdCQjdBMjc0NEM1MDcwMEM0NUE3MiAvKiBQdXNoQ2xpZW50Q29u
bmVjdGlvbi5tbSAqLywKKwkJCQk1MTdCNUY3NzI3NUU5Nzk1MDAyREMyMkQgLyogd2VicHVzaGQu
Y3BwICovLAogCQkJCTUxMkNENjlEMjcyMzM5M0EwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uLmgg
Ki8sCiAJCQkJNTEyQ0Q2OUUyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24ubW0gKi8s
Ci0JCQkJNUMxNTdBMEIyNzE3Q0ExQzAwRUQ1MjgwIC8qIFdlYlB1c2hEYWVtb25NYWluLm1tICov
LAogCQkJCTUxN0I1RjcyMjc1RTk2MDkwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5oICov
LAorCQkJCTVDMTU3QTBCMjcxN0NBMUMwMEVENTI4MCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5tbSAq
LywKIAkJCSk7CiAJCQlwYXRoID0gd2VicHVzaGQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMTA3NjksNiArMTA3NzAsNyBAQAogCQkJCUUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAv
KiBBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCAqLywKIAkJCQk0NkEyQjYwNjFFNTY3NUEyMDBDM0RF
REEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAqLywKIAkJCQk0
NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVz
c1RpbWVyLmggKi8sCisJCQkJNDY1OUYyNUUyNzVGRjZCMjAwQkJCMzY5IC8qIENhcHRpdmVQb3J0
YWxNb2RlT2JzZXJ2ZXIuaCAqLywKIAkJCQkwNzI5N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2
aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovLAogCQkJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDcz
NSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oICovLAogCQkJCUJDMjY1MjEyMTE4MjYwODEw
MDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmNwcCAqLywKQEAgLTEyNTkzLDcgKzEyNTk1LDYg
QEAKIAkJCQk1Q0FGREU0NTIxMzA4NDYzMDBCMUY3RTEgLyogX1dLSW5zcGVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5OTRDNjA0MjI1M0NBNTQ0MDBCREYwNjAgLyogX1dLSW5zcGVjdG9yQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk0QzYwNDUyNTNDQUJBMjAwQkRGMDYw
IC8qIF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNTE3QjVGN0YyNzVFOTdCNjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk5MUY0OTJGMjNBODEyQzYwMDU0NjQyQiAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dh
YmxlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwMzZBRTIyM0E5NDlDRjAwMDBCMDZBIC8q
IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkxOTc5NDBDMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMjc1Nyw2ICsxMjc1OCw3IEBACiAJCQkJMUE2NTYzRTUxQjdBOEM1MDAw
OUNGNzg3IC8qIEFQSVdpbmRvd0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJE
QjI1MzhGNkI2MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTcyRUJCREQyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGODUyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1bmRsZVJl
cXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NDg3OUI5MjM3M0E5MDkwMEY1Njc4RSAvKiBB
cHBLaXRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4RDJBODUyMTU4M0E3RTAwQzY3
NTJCIC8qIEFwcEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTU2NTA4MzkyNkQ4N0EyQjAw
RTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjgw
Miw2ICsxMjgwNCw3IEBACiAJCQkJNDE4OTdFRDgxRjQxNUQ4QTAwMTZGQTQyIC8qIENhY2hlU3Rv
cmFnZUVuZ2luZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQUJEMkExRjRERTAwMTAwNkE2Qzk3
IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5N0VE
QTFGNDE1RDhBMDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDY1OUYyNUYyNzVGRjZCMjAwQkJCMzY5IC8qIENhcHRpdmVQb3J0YWxN
b2RlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTU3OUE2MjYzNDgzNjcwMEY1QzVF
OSAvKiBDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1N0I0QjQ2MDIwQjUwNEFDMDBENEFENzkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNh
dGlvblhQQ0NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRGRTBBM0IyNDYzMkI2MDAw
MjYzMUUxIC8qIENvY29hQ29sb3IuaCBpbiBIZWFkZXJzICovLApAQCAtMTI5NzAsNiArMTI5NzMs
OCBAQAogCQkJCTFBM0VFRDBGMTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUIwMzdBMTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdl
U2VuZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTNCM0RBMjIwN0YzOURFMDA5MEM1OEQgLyog
TW9iaWxlV2lGaVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGN0MyNzVFOTdCNjAwMkRD
MjJEIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdC
NUY4MDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1N0RDRURDQjIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURDNzIxNEYxODMwMDAxNkI4NDcgLyog
TW9ja0xvY2FsQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQzMyMTRGMTE0
QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTI5OTcs
NyArMTMwMDIsNiBAQAogCQkJCTgzMUVFQkJEMUJEODVDNDMwMEJCNjRDMyAvKiBOZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMkFFMjUyMUJFMkU4Q0Qw
MEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNDQzNkVDRjFBMEQwNDBCMDBFQUQyMDQgLyogTmV0d29ya0NhY2hlU3RvcmFn
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGN0MyNzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tB
cHBCdW5kbGVGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzEwNDI4QjFCRDZCNjZG
MDBBNzE1RTQgLyogTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxM0ExNjREMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8q
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApA
QCAtMTMwOTIsNiArMTMwOTYsOCBAQAogCQkJCTg2RTY3QTI1MTkxMEI5RDEwMDAwNEFCNyAvKiBQ
cm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzA0OEFFNjFBQ0E0NURDMDA4
MkM4MzIgLyogUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQy
NzlFMTkyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTE3QjVGN0QyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hDbGllbnRDb25u
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyog
UXVhcmFudGluZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2
MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUVFNTcyNTI0MDlGMTQyMDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTEzMTMyLDcgKzEzMTM4LDYgQEAKIAkJCQkwNzFCQzU5MTIzQ0Ux
RUFBMDA2ODBEN0MgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFENEQ3Mzc2MjNB
OUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGODUyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1
bmRsZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFERDJBNjg1MjU2MzNDNjcwMEZGN0I2
RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFERDJBNjg4MjU2MzNDOTUwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2Fn
ZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI3ODQ3MTE2M0YyNDY5MDAwN0I2OTIg
LyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMTMyMjUsNyAr
MTMyMzAsNiBAQAogCQkJCTU3RkQzMTg2MjJCMzUxNkMwMDhEMEU4QiAvKiBTdWJGcmFtZVNPQXV0
aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OEFDMjRFMjY3MTM1QTcw
MEIyODkyMSAvKiBTeW5hcHNlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDU5OTg0MjIyODMz
RTg3MDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1MTdCNUY3RDI3NUU5N0I2MDAyREMyMkQgLyogUHVzaENsaWVudENvbm5lY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTMxNTcxMzVGMjA0MEE5QjIwMDg0RjlDRiAvKiBTeXN0ZW1Q
cmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5RDFEOUEyNjk2MENEMzAw
ODgzNTc3IC8qIFN5c3RlbVN0YXR1c1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjREOTg1Q0Iy
NjkxMDk2NjAwQkJDQ0JFIC8qIFRhcEhhbmRsaW5nUmVzdWx0LmggaW4gSGVhZGVycyAqLywKQEAg
LTEzMjUwLDcgKzEzMjU0LDYgQEAKIAkJCQkxQTY0MjQ1RTEyREUyOUExMDBDQUFFMkMgLyogVXBk
YXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMxOUE1MjAxRkQwQjI5NTAwRUVBMzIzIC8q
IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMxMzM2ODE4
NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0I1Rjgw
Mjc1RTk3QjYwMDJEQzIyRCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q0OTFCMEUxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENDkxQjEz
MUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLywKQEAgLTEzNDc2LDkgKzEzNDc5LDExIEBACiAJCQkJQkNFMEU0MjUxNjhCN0EyODAw
NTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTFF
MDkzNDE4ODYxRDM4MDBEMkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNw
YWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUY3RjI3NUU5N0I2MDAyREMyMkQgLyogV2Vi
UHVzaERhZW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OTgyNzIxRUZDODAwRjdGOEVD
IC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdCNUYy
RTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5QTI3MjFGMEE5MDBGN0Y4RUMgLyogV2ViUHVz
aERhZW1vbkNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGNzMyNzVFOTYwOTAw
MkRDMjJEIC8qIFdlYlB1c2hEYWVtb25NYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjFDQ0NB
NjIzMTQ4NUFBMDBCNjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2Vw
dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMEFGRkJBMTY1NDIwNDgwMDFCQTA1
RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzcyOCw3ICsxMzcz
Myw2IEBACiAJCQkJQTE1NzlCMjgyNTg0OTBFNTAwNTI4MjM2IC8qIFdLTWVkaWFGb3JtYXRSZWFk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBQ0MwN0I5MjVDODIxODQwMERDNjM4NiAvKiBXS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0
MEVFNjFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGODEyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBCdW5k
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQUJEQzg2MjJDNDBGREUwMDFFREU4RSAvKiBXS01l
c3NhZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzExRTE2OTQyMTJCODdDNTAwOTg1
RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMUE4RERCMjBEREQx
QUMwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzc5
NCw3ICsxMzc5OCw2IEBACiAJCQkJQkMyRDAyMTkxMkFDNDI2QzAwRTczMkEzIC8qIFdLUGFnZUxv
YWRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8q
IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENzMwMzc5MUE3
QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQk1MTdCNUY3MzI3NUU5NjA5MDAyREMyMkQgLyogV2ViUHVzaERhZW1vbk1haW4uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBQjhBMUVFMTg0MDBBQ0IwMEU5QUU2OSAvKiBXS1BhZ2VQb2xpY3lD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3M0NFQUQ4MTg1OTU1M0YwMDhDMzYzRCAvKiBX
S1BhZ2VQb2xpY3lDbGllbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxNzc0NjUx
MThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTUw
OTgsOCArMTUxMDEsOCBAQAogCQkJCTUxRjdCQjdEMjc0NTY0MDQwMEM0NUE3MiAvKiBDb2RlU2ln
bmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMTU3OUZGMjcxN0I2RDIwMEVENTI4MCAvKiBE
YWVtb25EZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMTU3OUZFMjcxN0I2QzEwMEVE
NTI4MCAvKiBEYWVtb25FbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxN0I1Rjc4Mjc1
RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzE1NzlG
QjI3MTdBRjUwMDBFRDUyODAgLyogRGFlbW9uVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJNTE3QjVGNzgyNzVFOTc5NTAwMkRDMjJEIC8qIHdlYnB1c2hkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMTUxNDMsNiArMTUxNDYsNyBAQAogCQkJCTk5RTcxODlBMjFGNzlEOUUwMDU1RTk3NSAv
KiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODQy
MTJCNkFCMTAwRjQ5M0ZEIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTU3MkVCQkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1
bmRsZVJlcXVlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3QjIxMkI2QTcxMDBGNDkz
RkQgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFQjFEMkUyMTI3
NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ5MkE3N0MyMTJCNkE3MTAwRjQ5M0ZEIC8qIEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xNTE1MCw3ICsxNTE1NCw2IEBACiAJCQkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VCIC8q
IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4QTIxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0ZBQkIx
MzI1ODE4MjdDMDA1OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTb2Z0TGluay5t
bSBpbiBTb3VyY2VzICovLAotCQkJCTUxN0I1RjdFMjc1RTk3QjYwMDJEQzIyRCAvKiBBcHBCdW5k
bGVSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk1NUE2RjQxQzc5ODZEQzAwRUI2QTkz
IC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTkyNDlBRDUxRjFGMUU1NjAwQjYyRkJCIC8qIEF1dG9tYXRpb25Gcm9udGVuZERpc3BhdGNoZXJz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAvKiBBdXRv
bWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTUxODksNiArMTUx
OTIsOCBAQAogCQkJCTdCNDgzRjIxMjVDRERBOUMwMDEyMDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1
ZXVlTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgxMjEyQjZBNzEwMEY0OTNGRCAv
KiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODIyMTJC
NkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3
QjVGODQyNzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNTE3QjVGODYyNzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVS
ZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzdBMjEyQjZBNjEwMEY0OTNGRCAv
KiBNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdCODI2NDUyMzA0RjE0MDAwQjcyRUIw
IC8qIE5lYXJGaWVsZFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzFDMUIzMEYyNTQw
RjUwRDAwRDkxMDBCIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWFjLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0xNTIxMyw2ICsxNTIxOCw4IEBACiAJCQkJMkQ5MTM0NEQyMTJDRjlGMDAw
MTI4QUZEIC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE1Q0JCMzcyM0Yz
N0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTE3QjVGODIyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBCdW5kbGUubW0g
aW4gU291cmNlcyAqLywKKwkJCQk1MTdCNUY3QjI3NUU5N0E5MDAyREMyMkQgLyogUHVzaENsaWVu
dENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0NTExMzBBMDBFRDYx
NEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkxQTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTUyMzIsNyArMTUy
MzksNiBAQAogCQkJCUNERTU1NTM1MjQwNkVCOEMwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1T
ZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRUVG
NDYyNTc5QzI2MTAwNjU2M0JCIC8qIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIz
OUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGN0EyNzVFOTdBNDAwMkRDMjJEIC8q
IFdlYlB1c2hEYWVtb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzAxNzg5RTIzQkU5Q0ZDMDA1
RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3MUJDNThGMjNDRTFFQUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFENEQ3MzcwMjNBOUU1NDcw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTE1MjczLDggKzE1Mjc5LDYgQEAKIAkJCQkyRDExQjc1NTIxMjZB
MjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTMtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDExQjc1NjIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQxMUI3NTcyMTI2QTI4MjAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0LW1tLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGODQyNzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBC
dW5kbGVGb3JUZXN0aW5nLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGODYyNzVFOTdCNjAw
MkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
MTFCNzU4MjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDExQjc1OTIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTUtbW0ubW0g
aW4gU291cmNlcyAqLywKIAkJCQkyRDExQjc1QTIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNv
dXJjZTUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTM1Nyw3ICsxNTM2MSw2IEBACiAJCQkJMkQx
MUI3QTcyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0NC1tbS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEMTFCN0E4MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNDQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QTkyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRT
b3VyY2U0NS1tbS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxN0I1RjgyMjc1RTk3QjYwMDJEQzIy
RCAvKiBQdXNoQXBwQnVuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QUEyMTI2QTI4
MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0NS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDEx
QjdBQjIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ2LW1tLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQxMUI3QUMyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0Ni5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTE1Mzg4LDcgKzE1MzkxLDYgQEAKIAkJCQkyRDExQjdDNTIxMjZB
MjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTU5LW1tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQxMUI3QzYyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U1OS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDExQjdDNzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTYwLW1t
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGNzkyNzVFOTdBMTAwMkRDMjJEIC8qIFdlYlB1
c2hEYWVtb25NYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QzgyMTI2QTI4MzAwNkY4
ODc4IC8qIFVuaWZpZWRTb3VyY2U2MC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDU0QzMxQTIx
MkYzQjMzMDA0OUMxNzQgLyogVW5pZmllZFNvdXJjZTYxLW1tLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQxMUI3Q0EyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U2MS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTE1Mzk2LDcgKzE1Mzk4LDYgQEAKIAkJCQkyRDExQjdDQjIxMjZBMjgzMDA2
Rjg4NzggLyogVW5pZmllZFNvdXJjZTYyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzA4
MjEyRjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNjMtbW0ubW0gaW4gU291cmNlcyAqLywK
IAkJCQkyRDExQjdDQzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTYzLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29u
bmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzBDMjEyRjNCMzMwMDQ5QzE3NCAv
KiBVbmlmaWVkU291cmNlNjQtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjdDRDIxMjZB
MjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
NTRDMzA3MjEyRjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNjUtbW0ubW0gaW4gU291cmNl
cyAqLywKQEAgLTE1NTMxLDYgKzE1NTMyLDggQEAKIAkJCQlCQzMwNjZCRTEyNUE0NDIxMDBFNzEy
NzggLyogV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
Q0U0RDIyNzFBNDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRTdBRDAxMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlBy
b2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTdCNUY3
QTI3NUU5N0E0MDAyREMyMkQgLyogV2ViUHVzaERhZW1vbi5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTUxN0I1Rjc5Mjc1RTk3QTEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1
MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTAxYjcyMWVkZjk3YjUxZWExMTI3M2NlOGRkY2ZlMmVl
MTBhNjI2Ny4uOTAwN2NlM2MxYzMxZDkxNmY3OWM1N2JiN2IxMDU5NzI3MGUwYmIwZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTEyLTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBLVk8gd29yayBmb3IgV0tXZWJwYWdlUHJlZmVyZW5jZXMuX2NhcHRpdmVQb3J0YWxN
b2RlRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMzOTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bQ2Fw
dGl2ZVBvcnRhbE1vZGVLVk8gb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6
Y29udGV4dDpdKToKKwogMjAyMS0xMi0wNyAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KIAogICAgICAgICBGZXRjaCBhbmQgcmVtb3ZlIGZpbGUgc3lzdGVtIGRhdGEgdmlhIFdLV2Vi
c2l0ZURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggOGQ4YTRh
Nzc5ZjExZWQwOGYxOWJiMDM0ZDQ3NWI0MGQyZmZjMDhiMy4uYzUzMzgwY2IxMjlmM2I0MzNiMzkw
YTNmZGU4ZDc3YWRkZjYyZDI5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBA
IC04OSw2ICs4OSwyOSBAQCBzdGF0aWMgYm9vbCBkaWRDbG9zZVdpbmRvdzsKIHN0YXRpYyBSZXRh
aW5QdHI8TlNVUkw+IGNsaWVudFJlZGlyZWN0U291cmNlVVJMOwogc3RhdGljIFJldGFpblB0cjxO
U1VSTD4gY2xpZW50UmVkaXJlY3REZXN0aW5hdGlvblVSTDsKIAorc3RhdGljIGJvb2wgZGlkQ2hh
bmdlQ2FwdGl2ZVBvcnRhbE1vZGU7CitzdGF0aWMgYm9vbCBjYXB0aXZlUG9ydGFsTW9kZUJlZm9y
ZUNoYW5nZTsKK3N0YXRpYyBib29sIGNhcHRpdmVQb3J0YWxNb2RlQWZ0ZXJDaGFuZ2U7CisKK0Bp
bnRlcmZhY2UgQ2FwdGl2ZVBvcnRhbE1vZGVLVk8gOiBOU09iamVjdCB7CitAcHVibGljCit9CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBDYXB0aXZlUG9ydGFsTW9kZUtWTworCistICh2b2lkKW9i
c2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2Jq
ZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWNoYW5nZSBjb250ZXh0
Oih2b2lkICopY29udGV4dAoreworICAgIEFTU0VSVChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6
QCJfY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkIl0pOworICAgIEFTU0VSVChbW29iamVjdCBjbGFz
c10gaXNFcXVhbDpbV0tXZWJwYWdlUHJlZmVyZW5jZXMgY2xhc3NdXSk7CisKKyAgICBjYXB0aXZl
UG9ydGFsTW9kZUJlZm9yZUNoYW5nZSA9IFtbY2hhbmdlIG9iamVjdEZvcktleTpOU0tleVZhbHVl
Q2hhbmdlT2xkS2V5XSBib29sVmFsdWVdOworICAgIGNhcHRpdmVQb3J0YWxNb2RlQWZ0ZXJDaGFu
Z2UgPSBbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5ld0tleV0gYm9vbFZh
bHVlXTsKKyAgICBkaWRDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSA9IHRydWU7Cit9CisKK0BlbmQK
KwogQGludGVyZmFjZSBQU09OTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNz
YWdlSGFuZGxlcj4KIEBlbmQKIApAQCAtNzgxOSw2ICs3ODQyLDcwIEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdUb0NhcHRpdmVQb3J0YWxNb2RlKQogICAgIGNoZWNrU2V0dGluZ3NDb250
cm9sbGVkQnlDYXB0aXZlUG9ydGFsTW9kZSh3ZWJWaWV3LmdldCgpLCBTaG91bGRCZUVuYWJsZWQ6
Ok5vKTsKIH0KIAorVEVTVChQcm9jZXNzU3dhcCwgQ2FwdGl2ZVBvcnRhbE1vZGVTeXN0ZW1TZXR0
aW5nQ2hhbmdlKQoreworICAgIGF1dG8ga3ZvID0gYWRvcHROUyhbQ2FwdGl2ZVBvcnRhbE1vZGVL
Vk8gbmV3XSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICBFWFBFQ1RfRkFMU0Uod2ViVmlld0NvbmZp
Z3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1v
ZGVFbmFibGVkKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBh
Z2VQcmVmZXJlbmNlcyBhZGRPYnNlcnZlcjprdm8uZ2V0KCkgZm9yS2V5UGF0aDpAIl9jYXB0aXZl
UG9ydGFsTW9kZUVuYWJsZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyB8
IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQgY29udGV4dDpuaWxdOworCisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdl
dCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisK
KyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdh
dGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlv
biAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAg
IE5TVVJMICp1cmwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2lt
cGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOnVybF1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRO
YXZpZ2F0aW9uKTsKKworICAgIHBpZF90IHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklU
RW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoZGlkQ2hhbmdlQ2Fw
dGl2ZVBvcnRhbE1vZGUpOworCisgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAg
Ly8gTm93IGNoYW5nZSB0aGUgZ2xvYmFsIHNldHRpbmcuCisgICAgW1dLUHJvY2Vzc1Bvb2wgX3Nl
dENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzpZRVNdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKGNhcHRpdmVQb3J0YWxNb2RlQmVmb3JlQ2hhbmdlKTsKKyAgICBFWFBF
Q1RfVFJVRShjYXB0aXZlUG9ydGFsTW9kZUFmdGVyQ2hhbmdlKTsKKyAgICBFWFBFQ1RfVFJVRSh3
ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzLl9jYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWQpOworCisgICAgLy8gVGhpcyBzaG91bGQgY2F1c2UgdGhlIFdl
YlZpZXcgdG8gcmVsb2FkIHdpdGggYSBXZWJQcm9jZXNzIGluIGNhcHRpdmUgcG9ydGFsIG1vZGUu
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworCisg
ICAgRVhQRUNUX0ZBTFNFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBwaWRf
dCBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUo
cGlkMSwgcGlkMik7CisKKyAgICBkaWRDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSA9IGZhbHNlOwor
ICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIFtXS1Byb2Nlc3NQb29sIF9jbGVh
ckNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZ107CisKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlKTsKKyAgICBF
WFBFQ1RfVFJVRShjYXB0aXZlUG9ydGFsTW9kZUJlZm9yZUNoYW5nZSk7CisgICAgRVhQRUNUX0ZB
TFNFKGNhcHRpdmVQb3J0YWxNb2RlQWZ0ZXJDaGFuZ2UpOworICAgIEVYUEVDVF9GQUxTRSh3ZWJW
aWV3Q29uZmlndXJhdGlvbi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzLl9jYXB0aXZl
UG9ydGFsTW9kZUVuYWJsZWQpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5p
c2hlZE5hdmlnYXRpb24pOworCisgICAgRVhQRUNUX1RSVUUoaXNKSVRFbmFibGVkKHdlYlZpZXcu
Z2V0KCkpKTsKKworICAgIHBpZF90IHBpZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOworICAgIEVYUEVDVF9ORShwaWQyLCBwaWQzKTsKK30KKwogI2lmIFBMQVRGT1JNKElPUykK
IAogVEVTVChQcm9jZXNzU3dhcCwgQ2Fubm90RGlzYWJsZUNhcHRpdmVQb3J0YWxNb2RlV2l0aG91
dEJyb3dzZXJFbnRpdGxlbWVudCkKQEAgLTc5NDYsNCArODAzMywxODkgQEAgVEVTVChQcm9jZXNz
U3dhcCwgQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlEZWZhdWx0VGhlbk9wdE91dCkKICAgICBF
WFBFQ1RfRVEocGlkMiwgW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwogfQogCitU
RVNUKFByb2Nlc3NTd2FwLCBDYXB0aXZlUG9ydGFsTW9kZVN5c3RlbVNldHRpbmdDaGFuZ2VEb2Vz
Tm90UmVsb2FkVmlld3NXaGVuTW9kZUlzU2V0RXhwbGljaXRseTEpCit7CisgICAgLy8gQ2FwdGl2
ZSBwb3J0YWwgbW9kZSBpcyBkaXNhYmxlZCBnbG9iYWxseSBhbmQgZXhwbGljaXRseSBvcHRlZCBv
dXQgdmlhIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuCisKKyAgICBhdXRvIHdlYlZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICBF
WFBFQ1RfRkFMU0Uod2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVm
ZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkKTsKKyAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0Q2FwdGl2ZVBvcnRhbE1v
ZGVFbmFibGVkOk5PXTsgLy8gRXhwbGljaXRseSBvcHQgb3V0IHZpYSBkZWZhdWx0IFdLV2VicGFn
ZVByZWZlcmVuY2VzLgorCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklU
RW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZp
Z2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9
IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdh
dGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIE5TVVJMICp1cmwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIHBpZF90IHBpZDEg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAw
KTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAg
ICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICAvLyBOb3cgY2hhbmdlIHRoZSBnbG9i
YWwgc2V0dGluZy4KKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFi
bGVkR2xvYmFsbHlGb3JUZXN0aW5nOllFU107CisKKyAgICAvLyBUaGlzIHNob3VsZCBub3QgcmVs
b2FkIHRoZSB3ZWIgdmlldyBzaW5jZSB0aGUgdmlldyBoYXMgZXhwbGljaXRseSBvcHRlZCBvdXQg
b2YgY2FwdGl2ZSBwb3J0YWwgbW9kZS4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgw
LjUpOworICAgIEVYUEVDVF9GQUxTRShmaW5pc2hlZE5hdmlnYXRpb24pOworCisgICAgcGlkX3Qg
cGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX0VRKHBp
ZDEsIHBpZDIpOworCisgICAgRVhQRUNUX1RSVUUoaXNKSVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkp
KTsKKworICAgIFtXS1Byb2Nlc3NQb29sIF9jbGVhckNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEds
b2JhbGx5Rm9yVGVzdGluZ107Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIENhcHRpdmVQb3J0YWxN
b2RlU3lzdGVtU2V0dGluZ0NoYW5nZURvZXNOb3RSZWxvYWRWaWV3c1doZW5Nb2RlSXNTZXRFeHBs
aWNpdGx5MikKK3sKKyAgICAvLyBDYXB0aXZlIHBvcnRhbCBtb2RlIGlzIGVuYWJsZWQgZ2xvYmFs
bHkgYnV0IGV4cGxpY2l0bHkgb3B0ZWQgb3V0IHZpYSBkZWZhdWx0V2VicGFnZVByZWZlcmVuY2Vz
LgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxs
eUZvclRlc3Rpbmc6WUVTXTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIEVYUEVDVF9UUlVFKHdlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuX2NhcHRpdmVQ
b3J0YWxNb2RlRW5hYmxlZCk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLmRlZmF1
bHRXZWJwYWdlUHJlZmVyZW5jZXMgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZDpOT107IC8v
IEV4cGxpY2l0bHkgb3B0IG91dCB2aWEgZGVmYXVsdCBXS1dlYnBhZ2VQcmVmZXJlbmNlcy4KKwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmln
dXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5n
ZXQoKSkpOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwor
ICAgIGRlbGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBX
S05hdmlnYXRpb24gKikgeworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSB0cnVlOworICAg
IH07CisKKyAgICBOU1VSTCAqdXJsID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBwaWRfdCBwaWQxID0gW3dlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisKKyAgICBFWFBFQ1Rf
VFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgZmluaXNoZWROYXZpZ2F0
aW9uID0gZmFsc2U7CisgICAgLy8gTm93IGNoYW5nZSB0aGUgZ2xvYmFsIHNldHRpbmcuCisgICAg
W1dLUHJvY2Vzc1Bvb2wgX2NsZWFyQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JU
ZXN0aW5nXTsKKworICAgIC8vIFRoaXMgc2hvdWxkIG5vdCByZWxvYWQgdGhlIHdlYiB2aWV3IHNp
bmNlIHRoZSB2aWV3IGhhcyBleHBsaWNpdGx5IG9wdGVkIG91dCBvZiBjYXB0aXZlIHBvcnRhbCBt
b2RlLgorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7CisgICAgRVhQRUNUX0ZB
TFNFKGZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBwaWRfdCBwaWQyID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisKKyAgICBF
WFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5nZXQoKSkpOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBDYXB0aXZlUG9ydGFsTW9kZVN5c3RlbVNldHRpbmdDaGFuZ2VEb2VzTm90UmVsb2Fk
Vmlld3NXaGVuTW9kZUlzU2V0RXhwbGljaXRseTMpCit7CisgICAgLy8gQ2FwdGl2ZSBwb3J0YWwg
bW9kZSBpcyBkaXNhYmxlZCBnbG9iYWxseSBhbmQgZXhwbGljaXRseSBvcHRlZCBvdXQgZm9yIHRo
ZSBsb2FkLgorCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgRVhQRUNUX0ZBTFNFKHdlYlZpZXdDb25maWd1
cmF0aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuX2NhcHRpdmVQb3J0YWxNb2Rl
RW5hYmxlZCk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0
aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgRVhQRUNUX1RSVUUoaXNKSVRFbmFi
bGVkKHdlYlZpZXcuZ2V0KCkpKTsKKworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZE5hdmlnYXRp
b24gPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gXihX
S1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopIHsKKyAgICAgICAgZmluaXNoZWROYXZpZ2F0aW9u
ID0gdHJ1ZTsKKyAgICB9OworCisgICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IF4oV0tOYXZpZ2F0aW9uQWN0aW9uICphY3Rp
b24sIFdLV2VicGFnZVByZWZlcmVuY2VzICpwcmVmZXJlbmNlcywgdm9pZCAoXmNvbXBsZXRpb25I
YW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICop
KSB7CisgICAgICAgIEVYUEVDVF9GQUxTRShwcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVF
bmFibGVkKTsKKyAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJs
ZWQ6Tk9dOyAvLyBFeHBsaWNpdGx5IE9wdCBvdXQgb2YgY2FwdGl2ZSBwb3J0YWwgbW9kZSBmb3Ig
dGhpcyBsb2FkLgorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOworICAgIH07CisKKyAgICBOU1VSTCAqdXJsID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxdXTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAg
ICBwaWRfdCBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBF
Q1RfTkUocGlkMSwgMCk7CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5n
ZXQoKSkpOworCisgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgLy8gTm93IGNo
YW5nZSB0aGUgZ2xvYmFsIHNldHRpbmcuCisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldENhcHRpdmVQ
b3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzpZRVNdOworCisgICAgLy8gVGhpcyBz
aG91bGQgbm90IHJlbG9hZCB0aGUgd2ViIHZpZXcgc2luY2UgdGhlIHZpZXcgaGFzIGV4cGxpY2l0
bHkgb3B0ZWQgb3V0IG9mIGNhcHRpdmUgcG9ydGFsIG1vZGUuCisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0UoZmluaXNoZWROYXZpZ2F0aW9uKTsK
KworICAgIHBpZF90IHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAg
IEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3
ZWJWaWV3LmdldCgpKSk7CisKKyAgICBbV0tQcm9jZXNzUG9vbCBfY2xlYXJDYXB0aXZlUG9ydGFs
TW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmddOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBD
YXB0aXZlUG9ydGFsTW9kZVN5c3RlbVNldHRpbmdDaGFuZ2VEb2VzTm90UmVsb2FkVmlld3NXaGVu
TW9kZUlzU2V0RXhwbGljaXRseTQpCit7CisgICAgLy8gQ2FwdGl2ZSBwb3J0YWwgbW9kZSBpcyBl
bmFibGVkIGdsb2JhbGx5IGJ1dCBleHBsaWNpdGx5IG9wdGVkIG91dCBmb3IgdGhlIGxvYWQuCisg
ICAgW1dLUHJvY2Vzc1Bvb2wgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9y
VGVzdGluZzpZRVNdOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgRVhQRUNUX1RSVUUod2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRh
bE1vZGVFbmFibGVkKTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5h
dmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBFWFBFQ1RfRkFMU0UoaXNK
SVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkpKTsKKworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZE5h
dmlnYXRpb24gPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9u
ID0gXihXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopIHsKKyAgICAgICAgZmluaXNoZWROYXZp
Z2F0aW9uID0gdHJ1ZTsKKyAgICB9OworCisgICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IF4oV0tOYXZpZ2F0aW9uQWN0aW9u
ICphY3Rpb24sIFdLV2VicGFnZVByZWZlcmVuY2VzICpwcmVmZXJlbmNlcywgdm9pZCAoXmNvbXBs
ZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVu
Y2VzICopKSB7CisgICAgICAgIEVYUEVDVF9UUlVFKHByZWZlcmVuY2VzLl9jYXB0aXZlUG9ydGFs
TW9kZUVuYWJsZWQpOworICAgICAgICBbcHJlZmVyZW5jZXMgX3NldENhcHRpdmVQb3J0YWxNb2Rl
RW5hYmxlZDpOT107IC8vIEV4cGxpY2l0bHkgT3B0IG91dCBvZiBjYXB0aXZlIHBvcnRhbCBtb2Rl
IGZvciB0aGlzIGxvYWQuCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CisgICAgfTsKKworICAgIE5TVVJMICp1cmwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVy
bF1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsK
KworICAgIHBpZF90IHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAg
IEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3ZWJW
aWV3LmdldCgpKSk7CisKKyAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICAvLyBO
b3cgY2hhbmdlIHRoZSBnbG9iYWwgc2V0dGluZy4KKyAgICBbV0tQcm9jZXNzUG9vbCBfY2xlYXJD
YXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmddOworCisgICAgLy8gVGhp
cyBzaG91bGQgbm90IHJlbG9hZCB0aGUgd2ViIHZpZXcgc2luY2UgdGhlIHZpZXcgaGFzIGV4cGxp
Y2l0bHkgb3B0ZWQgb3V0IG9mIGNhcHRpdmUgcG9ydGFsIG1vZGUuCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0UoZmluaXNoZWROYXZpZ2F0aW9u
KTsKKworICAgIHBpZF90IHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwor
ICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxl
ZCh3ZWJWaWV3LmdldCgpKSk7CisKK30KKwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446253</attachid>
            <date>2021-12-07 16:37:42 -0800</date>
            <delta_ts>2021-12-08 09:46:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233954-20211207163740.patch</filename>
            <type>text/plain</type>
            <size>50035</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzZjI3YWQ4OWJkZTU5MWEz
MDFjZTRiMDMzMDczODFiZjM3MWQ2YzEuLjU1NDc1N2MzOWMzNWQ3Mjc2ZjBkMzQyMTIzNTQyMTQx
ZGY0YjBhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMTItMDcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEtWTyB3b3JrIGZvciBXS1dl
YnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEtWTyB3b3JrIGZvciBXS1dl
YnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkIHNvIHRoYXQgdGhlIGNs
aWVudCBjYW4gb2JzZXJ2ZQorICAgICAgICB3aGVuIHRoZSBzeXN0ZW0gc2V0dGluZyBjaGFuZ2Vz
LiBBbHNvIGFkZCBTUEkgdG8gc2ltdWxhdGUgYSBjaGFuZ2Ugb2YgdGhlIHN5c3RlbSBzZXR0aW5n
IHNvIHRoYXQKKyAgICAgICAgSSBjYW4gd3JpdGUgQVBJIHRlc3RzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NQ
b29sIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmc6XSk6Cisg
ICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX2NsZWFyQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xv
YmFsbHlGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVuY2VzIGluaXRdKToK
KyAgICAgICAgKC1bV0tXZWJwYWdlUHJlZmVyZW5jZXMgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVu
Y2VzSW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ2FwdGl2ZVBvcnRhbE1vZGVPYnNl
cnZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oLgorICAgICAgICAoV2ViS2l0OjpDYXB0aXZlUG9y
dGFsTW9kZU9ic2VydmVyOjp+Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcik6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OmNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktpdDo6aXNDYXB0aXZl
UG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0Ojpp
c0NhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEJ5U3lzdGVtSWdub3JpbmdDYWNoaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNhcHRpdmVQb3J0YWxNb2RlU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6YWRkQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcik6CisgICAg
ICAgIChXZWJLaXQ6OnJlbW92ZUNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIpOgorICAgICAgICAo
V2ViS2l0OjpjYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRCeVN5c3RlbSk6CisgICAgICAgIChXZWJL
aXQ6OnNldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmFkZENhcHRpdmVQ
b3J0YWxNb2RlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpyZW1vdmVDYXB0aXZlUG9ydGFs
TW9kZU9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6c2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFi
bGVkR2xvYmFsbHlGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAy
MS0xMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbG9h
ZCB3ZWIgdmlld3Mgd2hlbiB0b2dnbGluZyB0aGUgY2FwdGl2ZSBwb3J0YWwgbW9kZSBhdCBzeXN0
ZW0gbGV2ZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0KaW5kZXggODUyMDdiZDI5ODBlMjhlM2E1ZTM0NzJiNzI3NzI2ZjU0NGFjZGJm
Yi4uN2JkNjlkOTYwZDRhMjY1YWIyYjMzMzFjMDliOThmNjJlOWQ0OWMyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQ5
OSw2ICs0OTksMTYgQEAgKyAodm9pZClfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRl
c3RpbmcKICAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1
aW50MzJfdD46Om1heCgpKTsKIH0KIAorKyAodm9pZClfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFi
bGVkR2xvYmFsbHlGb3JUZXN0aW5nOihCT09MKWlzRW5hYmxlZAoreworICAgIFdlYktpdDo6c2V0
Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKCEhaXNFbmFibGVkKTsK
K30KKworKyAodm9pZClfY2xlYXJDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRl
c3RpbmcKK3sKKyAgICBXZWJLaXQ6OnNldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5
Rm9yVGVzdGluZyhzdGQ6Om51bGxvcHQpOworfQorCiAtIChCT09MKV9pc0Nvb2tpZVN0b3JhZ2VQ
YXJ0aXRpb25pbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+Y29va2llU3Rv
cmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggODczYzA0YzZm
MzZkYzNkZmI0MDIxM2M3OWE5NTljMzgzNzhmZWE0Mi4uN2FmOWU3NTY0YmQ1YjA2MGU2NTY3ZDE4
NDJhYWY3NDdjMmRiNmI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTEyNCw2ICsxMjQsOCBAQAog
KyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKICsgKHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiArICh2b2lkKV9zZXRMaW5rZWRPbk9yQmVmb3JlRXZlcnl0aGluZ0ZvclRlc3RpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKysgKHZvaWQpX3NldENhcHRpdmVQ
b3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzooQk9PTClpc0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKysgKHZvaWQp
X2NsZWFyQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQp
X3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Ll9wcmVjb25uZWN0VG9TZXJ2ZXIiLCBtYWNvcygx
MC4xMy40LCAxMC4xNS40KSwgaW9zKDExLjMsIDEzLjQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmlu
ZGV4IDExNTNmZGNhYzkxYzRiMGU4NDBhNzE1NWVlMDU1YTYxODA2NzI2ZjMuLmU4ZTExZmU2NmZj
M2ZmZTgwZGIwM2Q2ZDExY2Y0MGE5MThiOTg0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTI3
LDEwICsyNywxMiBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVByZWZlcmVuY2VzLmg+CiAK
ICNpbXBvcnQgIkFQSUN1c3RvbUhlYWRlckZpZWxkcy5oIgorI2ltcG9ydCAiQ2FwdGl2ZVBvcnRh
bE1vZGVPYnNlcnZlci5oIgogI2ltcG9ydCAiV0tVc2VyQ29udGVudENvbnRyb2xsZXJJbnRlcm5h
bC5oIgogI2ltcG9ydCAiV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkNvbnRlbnRNb2RlLmgi
CisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiX1dLQ3VzdG9tSGVhZGVyRmll
bGRzSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTEwMiw2ICsxMDQsNDAgQEAgc3Rh
dGljIFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kgY29yZU1vdXNlRXZlbnRQb2xpY3koX1dLV2Vi
c2l0ZU1vdXNlRXZlbnRQb2xpY3kKICAgICByZXR1cm4gV2ViQ29yZTo6TW91c2VFdmVudFBvbGlj
eTo6RGVmYXVsdDsKIH0KIAorY2xhc3MgV2ViUGFnZVByZWZlcmVuY2VzQ2FwdGl2ZVBvcnRhbE1v
ZGVPYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJQYWdlUHJlZmVyZW5j
ZXNDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKGlkIG9iamVjdCkKKyAgICAgICAgOiBtX29iamVj
dChvYmplY3QpCisgICAgeworICAgICAgICBhZGRDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKCp0
aGlzKTsKKyAgICB9CisKKyAgICB+V2ViUGFnZVByZWZlcmVuY2VzQ2FwdGl2ZVBvcnRhbE1vZGVP
YnNlcnZlcigpCisgICAgeworICAgICAgICByZW1vdmVDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVy
KCp0aGlzKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCB3aWxsQ2hhbmdlQ2FwdGl2ZVBv
cnRhbE1vZGUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgW21fb2JqZWN0IHdpbGxDaGFuZ2VWYWx1
ZUZvcktleTpAIl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQiXTsKKyNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQorICAgICAgICBbbV9vYmplY3QgX3dpbGxDaGFuZ2VDYXB0aXZlUG9ydGFsTW9k
ZV07CisjZW5kaWYKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUNhcHRpdmVQb3J0YWxNb2Rl
KCkgZmluYWwKKyAgICB7CisgICAgICAgIFttX29iamVjdCBkaWRDaGFuZ2VWYWx1ZUZvcktleTpA
Il9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQiXTsKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorICAgICAgICBbbV9vYmplY3QgX2RpZENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlXTsKKyNlbmRp
ZgorICAgIH0KKworICAgIGlkIG1fb2JqZWN0OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcwpAQCAtMTI3LDYgKzE2Myw3
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBBUEk6
Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPihzZWxmKTsK
KyAgICBfY2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlciA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJQ
YWdlUHJlZmVyZW5jZXNDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyPihzZWxmKTsKIAogICAgIHJl
dHVybiBzZWxmOwogfQpAQCAtNDE4LDkgKzQ1NSw2IEBAIC0gKEJPT0wpYWxsb3dzQ29udGVudEph
dmFTY3JpcHQKIAogLSAodm9pZClfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkOihCT09MKWNh
cHRpdmVQb3J0YWxNb2RlRW5hYmxlZAogewotICAgIGlmIChfd2Vic2l0ZVBvbGljaWVzLT5jYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWQoKSA9PSBjYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQpCi0gICAg
ICAgIHJldHVybjsKLQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLy8gT24gaU9TLCB0
aGUgd2ViIGJyb3dzZXIgZW50aXRsZW1lbnQgaXMgcmVxdWlyZWQgdG8gZGlzYWJsZSBjYXB0aXZl
IHBvcnRhbCBtb2RlLgogICAgIGlmICghY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkICYmICFXVEY6
OnByb2Nlc3NIYXNFbnRpdGxlbWVudCgiY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlciIp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFn
ZVByZWZlcmVuY2VzSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmgKaW5kZXggNmUxMTlmOTAxZGQxNGVhMTlj
MDc0Y2ZkMzE0OGZiNzI5OTQxNWEwYy4uNWViMTRkYzVhMGQ3ZTY0MTIzYTBhMzIwNmNkYTkyNDZi
MDgzYTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oCkBAIC0zOCwxMiArMzgs
MjEgQEAgV0tDb250ZW50TW9kZSBjb250ZW50TW9kZShXZWJDb250ZW50TW9kZSk7CiBXZWJDb250
ZW50TW9kZSB3ZWJDb250ZW50TW9kZShXS0NvbnRlbnRNb2RlKTsKICNlbmRpZgogCitjbGFzcyBX
ZWJQYWdlUHJlZmVyZW5jZXNDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyOworCiB9CiAKIEBpbnRl
cmZhY2UgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKCkgPFdLT2JqZWN0PiB7CiBAcGFja2FnZQogICAg
IEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OldlYnNpdGVQb2xpY2llcz4gX3dlYnNpdGVQb2xpY2ll
czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpXZWJQYWdlUHJlZmVyZW5jZXNDYXB0aXZl
UG9ydGFsTW9kZU9ic2VydmVyPiBfY2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcjsKIH0KIAogQHBy
b3BlcnR5IChjbGFzcywgbm9uYXRvbWljLCByZWFkb25seSkgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KmRlZmF1bHRQcmVmZXJlbmNlczsKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCistICh2
b2lkKV93aWxsQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGU7CistICh2b2lkKV9kaWRDaGFuZ2VDYXB0
aXZlUG9ydGFsTW9kZTsKKyNlbmRpZgorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9DYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9DYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFkNzdiNDQ4
NzdmYWU1ZTE4YWFmNDc5Y2E4MjhhM2UwYmM3NDAxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaApAQCAtMCwwICsx
LDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ2FwdGl2ZVBvcnRhbE1vZGVPYnNl
cnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyPiB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcigpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGUoKSA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDViNmUzMWRmYmVjNzhiNjEzMDVkYTdi
ZmNlZjJhYzViYzFhYzBhZWEuLjE1OWM3MjIyZTI3MGEyZjU4OTE1OGUxYWFiOGMyYWFhMTQ2YmEy
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5o
IgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCiAjaW1wb3J0ICJBY2Nlc3Np
YmlsaXR5U3VwcG9ydFNQSS5oIgorI2ltcG9ydCAiQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlci5o
IgogI2ltcG9ydCAiQ29va2llU3RvcmFnZVV0aWxzQ0YuaCIKICNpbXBvcnQgIkRlZmF1bHRXZWJC
cm93c2VyQ2hlY2tzLmgiCiAjaW1wb3J0ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGll
bnQuaCIKQEAgLTk0NSwxMCArOTQ2LDM1IEBAIGludCB3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygp
CiAgICAgcmV0dXJuIHFvczsKIH0KIAorc3RhdGljIFdlYWtIYXNoU2V0PENhcHRpdmVQb3J0YWxN
b2RlT2JzZXJ2ZXI+JiBjYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVycygpCit7CisgICAgUkVMRUFT
RV9BU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vh
a0hhc2hTZXQ8Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcj4+IG9ic2VydmVyczsKKyAgICByZXR1
cm4gb2JzZXJ2ZXJzOworfQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiYgaXNDYXB0aXZl
UG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmcoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPGJvb2w+PiBlbmFibGVkRm9yVGVzdGluZzsKKyAgICBy
ZXR1cm4gZW5hYmxlZEZvclRlc3Rpbmc7Cit9CisKK3N0YXRpYyBib29sIGlzQ2FwdGl2ZVBvcnRh
bE1vZGVFbmFibGVkQnlTeXN0ZW1JZ25vcmluZ0NhY2hpbmcoKQoreworICAgIGlmIChhdXRvJiBl
bmFibGVkRm9yVGVzdGluZyA9IGlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JU
ZXN0aW5nKCkpCisgICAgICAgIHJldHVybiAqZW5hYmxlZEZvclRlc3Rpbmc7CisKKyAgICByZXR1
cm4gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpbTlNT
dHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6V2ViS2l0Q2FwdGl2ZVBvcnRhbE1vZGVDaGFuZ2Vk
Tm90aWZpY2F0aW9uXV07Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNhcHRpdmVQb3J0YWxN
b2RlU3RhdGVDaGFuZ2VkKCkKIHsKLSAgICBjYWNoZWRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRH
bG9iYWxseSgpID0gc3RkOjpudWxsb3B0OwotICAgIGF1dG8gaXNOb3dFbmFibGVkID0gY2FwdGl2
ZVBvcnRhbE1vZGVFbmFibGVkQnlTeXN0ZW0oKTsKKyAgICBhdXRvIGlzTm93RW5hYmxlZCA9IGlz
Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlTeXN0ZW1JZ25vcmluZ0NhY2hpbmcoKTsKKyAgICBp
ZiAoY2FjaGVkQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHkoKSAhPSBpc05vd0VuYWJs
ZWQpIHsKKyAgICAgICAgY2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcnMoKS5mb3JFYWNoKFtdKGF1
dG8mIG9ic2VydmVyKSB7IG9ic2VydmVyLndpbGxDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSgpOyB9
KTsKKyAgICAgICAgY2FjaGVkQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHkoKSA9IGlz
Tm93RW5hYmxlZDsKKyAgICAgICAgY2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcnMoKS5mb3JFYWNo
KFtdKGF1dG8mIG9ic2VydmVyKSB7IG9ic2VydmVyLmRpZENoYW5nZUNhcHRpdmVQb3J0YWxNb2Rl
KCk7IH0pOworICAgIH0KIAogICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HKExvYWRpbmcs
ICJXZWJQcm9jZXNzUG9vbDo6Y2FwdGl2ZVBvcnRhbE1vZGVTdGF0ZUNoYW5nZWQoKSBpc05vd0Vu
YWJsZWQ9JWQiLCBpc05vd0VuYWJsZWQpOwogCkBAIC05NjksMTYgKzk5NSw0MCBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpCiAgICAgfQogfQog
Cit2b2lkIGFkZENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIoQ2FwdGl2ZVBvcnRhbE1vZGVPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgLy8gTWFrZSBzdXJlIGNhY2hlZENhcHRpdmVQb3J0YWxN
b2RlRW5hYmxlZEdsb2JhbGx5KCkgZ2V0cyBpbml0aWFsaXplZCBzbyBjYXB0aXZlUG9ydGFsTW9k
ZVN0YXRlQ2hhbmdlZCgpIGNhbiB0cmFjayBjaGFuZ2VzLgorICAgIGF1dG8mIGNhY2hlZFN0YXRl
ID0gY2FjaGVkQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHkoKTsKKyAgICBpZiAoIWNh
Y2hlZFN0YXRlKQorICAgICAgICBjYWNoZWRTdGF0ZSA9IGlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFi
bGVkQnlTeXN0ZW1JZ25vcmluZ0NhY2hpbmcoKTsKKworICAgIGNhcHRpdmVQb3J0YWxNb2RlT2Jz
ZXJ2ZXJzKCkuYWRkKG9ic2VydmVyKTsKK30KKwordm9pZCByZW1vdmVDYXB0aXZlUG9ydGFsTW9k
ZU9ic2VydmVyKENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIGNh
cHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXJzKCkucmVtb3ZlKG9ic2VydmVyKTsKK30KKwogYm9vbCBj
YXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRCeVN5c3RlbSgpCiB7CiAgICAgYXV0byYgY2FjaGVkU3Rh
dGUgPSBjYWNoZWRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseSgpOwotICAgIGlmICgh
Y2FjaGVkU3RhdGUpIHsKLSAgICAgICAgLy8gRklYTUU6IFVzaW5nIE5TVXNlckRlZmF1bHRzIGlz
IGEgdGVtcG9yYXJ5IHdvcmthcm91bmQuIFRoaXMgc2V0dGluZyBzaG91bGQgYmUgc3RvcmVkIGVs
c2V3aGVyZSAoVENDPykuCi0gICAgICAgIGNhY2hlZFN0YXRlID0gW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhT
dHJpbmc6V2ViS2l0Q2FwdGl2ZVBvcnRhbE1vZGVDaGFuZ2VkTm90aWZpY2F0aW9uXV07Ci0gICAg
fQorICAgIGlmICghY2FjaGVkU3RhdGUpCisgICAgICAgIGNhY2hlZFN0YXRlID0gaXNDYXB0aXZl
UG9ydGFsTW9kZUVuYWJsZWRCeVN5c3RlbUlnbm9yaW5nQ2FjaGluZygpOwogICAgIHJldHVybiAq
Y2FjaGVkU3RhdGU7CiB9CiAKK3ZvaWQgc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFs
bHlGb3JUZXN0aW5nKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5hYmxlZEZvclRlc3RpbmcpCit7Cisg
ICAgaWYgKGlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKCkgPT0g
ZW5hYmxlZEZvclRlc3RpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlzQ2FwdGl2ZVBvcnRh
bE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKCkgPSBlbmFibGVkRm9yVGVzdGluZzsKKwor
ICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bv
b2xzKCkpCisgICAgICAgIHByb2Nlc3NQb29sLT5jYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdl
ZCgpOworfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6YXBwbGljYXRpb25Jc0Fib3V0VG9TdXNwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IGNjM2IwN2E1YzVjODEzMzk2OWYwMGYwYzMzZjRiODQ2NWVj
NzYyNGUuLjZjZjVjMzkxNDZlYzQwNmVlMzkyMDgxYjg3YjYzNzc0NjVhY2YxOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzQ1Miw3ICszNDUyLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGlj
eUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgfQogICAgIH0KIAotICAgIG1faXNDYXB0
aXZlUG9ydGFsTW9kZUV4cGxpY2l0bHlTZXQgPSBwb2xpY2llcyA/IHBvbGljaWVzLT5pc0NhcHRp
dmVQb3J0YWxNb2RlRXhwbGljaXRseVNldCgpIDogbV9jb25maWd1cmF0aW9uLT5pc0NhcHRpdmVQ
b3J0YWxNb2RlRXhwbGljaXRseVNldCgpOworICAgIG1faXNDYXB0aXZlUG9ydGFsTW9kZUV4cGxp
Y2l0bHlTZXQgPSAocG9saWNpZXMgJiYgcG9saWNpZXMtPmlzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBs
aWNpdGx5U2V0KCkpIHx8IG1fY29uZmlndXJhdGlvbi0+aXNDYXB0aXZlUG9ydGFsTW9kZUV4cGxp
Y2l0bHlTZXQoKTsKICAgICBhdXRvIGNhcHRpdmVQb3J0YWxNb2RlID0gKHBvbGljaWVzID8gcG9s
aWNpZXMtPmNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZCgpIDogc2hvdWxkRW5hYmxlQ2FwdGl2ZVBv
cnRhbE1vZGUoKSkgPyBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlOjpFbmFibGVk
IDogV2ViUHJvY2Vzc1Byb3h5OjpDYXB0aXZlUG9ydGFsTW9kZTo6RGlzYWJsZWQ7CiAgICAgcHJv
Y2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0
aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBjYXB0aXZlUG9ydGFsTW9kZSwgZnJhbWVJbmZvLCBXVEZNb3ZlKHdlYnNp
dGVEYXRhU3RvcmUpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBvbGlj
eUFjdGlvbiwgbmF2aWdhdGlvbiA9IFJlZiB7ICpuYXZpZ2F0aW9uIH0sIG5hdmlnYXRpb25BY3Rp
b24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJv
Y2Vzcy5jb3B5UmVmKCksCiAgICAgICAgIHBvbGljaWVzID0gV1RGTW92ZShwb2xpY2llcyksIHNl
bmRlciA9IFdURk1vdmUoc2VuZGVyKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudF0gKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzc0Zvck5hdmlnYXRpb24sIFN1c3BlbmRlZFBhZ2VQ
cm94eSogZGVzdGluYXRpb25TdXNwZW5kZWRQYWdlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgbXV0
YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXgg
YTk0ZTdiMjdjOGVhOTU1ZWNiZjRjMTdhNDMyMTFmNjQ5NGUzZDY5Zi4uMDk2MTM2N2E2MWU4OTY0
N2M0MGMwMzk2MmE0YmEzZDBlYTZiMWFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcApAQCAtMjEyNCwxMCArMjEyNCwxOSBAQCBib29sIFdlYlByb2Nlc3NQ
b29sOjpoYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpIGNvbnN0
CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgYWRkQ2FwdGl2ZVBvcnRhbE1v
ZGVPYnNlcnZlcihDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyJikKK3sKK30KK3ZvaWQgcmVtb3Zl
Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcihDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyJikKK3sK
K30KIGJvb2wgY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlTeXN0ZW0oKQogewogICAgIHJldHVy
biBmYWxzZTsKIH0KK3ZvaWQgc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JU
ZXN0aW5nKHN0ZDo6b3B0aW9uYWw8Ym9vbD4pCit7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAz
YjQzMDNiMjE0NTJmMzU3Y2JmNmMyZjg1OTdlYzQxZTZjMGNhOTE4Li43NjYyNGJjZjE5OGZiMTc2
ZmQ1MDcwNDY0MDdmYmE3NWZhYmNmMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKQEAgLTk3LDEyICs5NywxMyBAQCBjbGFzcyBQb3dlclNvdXJjZU5vdGlmaWVy
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViQmFja0ZvcndhcmRDYWNoZTsKK2Ns
YXNzIENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXI7CiBjbGFzcyBIaWdoUGVyZm9ybWFuY2VHcmFw
aGljc1VzYWdlU2FtcGxlcjsKIGNsYXNzIFVJR2FtZXBhZDsKIGNsYXNzIFBlckFjdGl2aXR5U3Rh
dGVDUFVVc2FnZVNhbXBsZXI7CiBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHk7CiBjbGFzcyBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjsKK2NsYXNzIFdlYkJhY2tGb3J3YXJkQ2FjaGU7CiBjbGFzcyBXZWJD
b250ZXh0U3VwcGxlbWVudDsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94
eTsKQEAgLTExOSw3ICsxMjAsMTAgQEAgaW50IG5ldHdvcmtQcm9jZXNzVGhyb3VnaHB1dFFPUygp
OwogaW50IHdlYlByb2Nlc3NMYXRlbmN5UU9TKCk7CiBpbnQgd2ViUHJvY2Vzc1Rocm91Z2hwdXRR
T1MoKTsKICNlbmRpZgordm9pZCBhZGRDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKENhcHRpdmVQ
b3J0YWxNb2RlT2JzZXJ2ZXImKTsKK3ZvaWQgcmVtb3ZlQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZl
cihDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyJik7CiBib29sIGNhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZEJ5U3lzdGVtKCk7Cit2b2lkIHNldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5
Rm9yVGVzdGluZyhzdGQ6Om9wdGlvbmFsPGJvb2w+KTsKIAogZW51bSBjbGFzcyBDYWxsRG93bmxv
YWREaWRTdGFydCA6IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQgOiBib29sOwpAQCAtNDMyLDYgKzQzNiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvb2tp
ZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBjbGVhclBlcm1h
bmVudENyZWRlbnRpYWxzRm9yUHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZSYmKTsKKworICAgIHZvaWQgY2FwdGl2ZVBvcnRhbE1vZGVTdGF0ZUNoYW5nZWQoKTsKICNlbmRp
ZgogCiAgICAgRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbiBmb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rv
a2VuKCkgY29uc3QgeyByZXR1cm4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbihtX2ZvcmVncm91
bmRXZWJQcm9jZXNzQ291bnRlci5jb3VudCgpKTsgfQpAQCAtNTQ4LDggKzU1NCw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCk7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCk7Ci0KLSAgICB2b2lkIGNhcHRpdmVQ
b3J0YWxNb2RlU3RhdGVDaGFuZ2VkKCk7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0QXBwbGljYXRp
b25Jc0FjdGl2ZShib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQxNTk1OTQ4NDIzNGM0ODUwODhjMzQxNGI0OWVlNjI5ZmZhNjlh
MjguLmJmYzdlYWNiYzJkNDdhZTBlYmJkMTA5Njk3NGY5YWU3YWFlMzZlYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTA4LDYgKzkw
OCw3IEBACiAJCTQ2MUNDQ0E2MjMxNDg1QUEwMEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYz
MjM2ODMyMzE0ODFFRjAwQTQ4RkE3IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi87IH07
CiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0
N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRkQ0ODIxRUI5
NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJD
IC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OworCQk0NjU5RjI1RjI3NUZGNkIy
MDBCQkIzNjkgLyogQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1OUYyNUUyNzVGRjZCMjAwQkJCMzY5IC8q
IENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJNDY1RjRFMDYyMzBCMkU5NTAw
M0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVGNEUwNTIzMEIyRTdDMDAzQ0VEQjcgLyog
U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLzsgfTsKIAkJNDY1RkE3MjYyNzU3RDkzRDAw
NzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9j
a1JlZ2lzdHJ5UHJveHkuaCAqLzsgfTsKIAkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLzsgfTsKQEAgLTQxOTAsNiArNDE5MSw3IEBACiAJCTQ2
M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NTFFQ0U2MjIxNzhBODUwMDY3RUI5NSAv
KiBXZWJQcm9jZXNzQ2FjaGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYlByb2Nlc3NDYWNoZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjUyNTBFNTFFQ0Y1MkNEMDAyMDI1Q0IgLyogV2ViS2l0MkluaXRpYWxpemVDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdDJJbml0
aWFsaXplQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NTlGMjVFMjc1
RkY2QjIwMEJCQjM2OSAvKiBDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3Jh
Z2VBcmVhSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUlkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDMyMzA3NjA0RTAwM0NFREI3
IC8qIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUw
NTIzMEIyRTdDMDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTUwMjQsNyArNTAyNiw2IEBACiAJCTdCNDgzRjFDMjVDRERBOUIwMDEyMDQ4
NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lc3NhZ2VSZWNlaXZlUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0I0ODNGMUQyNUNEREE5QjAwMTIwNDg2IC8qIE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVRdWV1ZU1h
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNDgzRjFFMjVDRERBOUIwMDEy
MDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZXNzYWdlUmVjZWl2ZVF1ZXVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk3QjUzMDBFNzI3MTgyMTdBMDAwODIwODYgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjY0QzBCNjI1
NEM1QzI1MDAwNkI0QUYgLyogR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QjczMTIzMTI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1Db25uZWN0aW9u
QnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzMxMjMyMjVDQzg1MjMw
MDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTk0OCw3ICs5OTQ5LDYgQEAKIAkJNUMxNTdBMEEy
NzE3QzlGMTAwRUQ1MjgwIC8qIHdlYnB1c2hkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQk1MTdCNUY3NzI3NUU5Nzk1MDAyREMyMkQgLyogd2VicHVzaGQu
Y3BwICovLAogCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywK
IAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5oICovLAog
CQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tICovLApA
QCAtOTk2MSwxMCArOTk2MSwxMSBAQAogCQkJCTUxNjBFOTU4Mjc0QzBEODgwMDU2NzM4OCAvKiBQ
dXNoQXBwQnVuZGxlLm1tICovLAogCQkJCTUxRjdCQjc5Mjc0NEM1MDcwMEM0NUE3MiAvKiBQdXNo
Q2xpZW50Q29ubmVjdGlvbi5oICovLAogCQkJCTUxRjdCQjdBMjc0NEM1MDcwMEM0NUE3MiAvKiBQ
dXNoQ2xpZW50Q29ubmVjdGlvbi5tbSAqLywKKwkJCQk1MTdCNUY3NzI3NUU5Nzk1MDAyREMyMkQg
Lyogd2VicHVzaGQuY3BwICovLAogCQkJCTUxMkNENjlEMjcyMzM5M0EwMEY3RjhFQyAvKiBXZWJQ
dXNoRGFlbW9uLmggKi8sCiAJCQkJNTEyQ0Q2OUUyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hE
YWVtb24ubW0gKi8sCi0JCQkJNUMxNTdBMEIyNzE3Q0ExQzAwRUQ1MjgwIC8qIFdlYlB1c2hEYWVt
b25NYWluLm1tICovLAogCQkJCTUxN0I1RjcyMjc1RTk2MDkwMDJEQzIyRCAvKiBXZWJQdXNoRGFl
bW9uTWFpbi5oICovLAorCQkJCTVDMTU3QTBCMjcxN0NBMUMwMEVENTI4MCAvKiBXZWJQdXNoRGFl
bW9uTWFpbi5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2VicHVzaGQ7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMTA3NjksNiArMTA3NzAsNyBAQAogCQkJCUUxNTEzQzY1MTY2RUFC
QjIwMDE0OUZDQiAvKiBBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCAqLywKIAkJCQk0NkEyQjYwNjFF
NTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNw
cCAqLywKIAkJCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NS
ZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCisJCQkJNDY1OUYyNUUyNzVGRjZCMjAwQkJCMzY5IC8q
IENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaCAqLywKIAkJCQkwNzI5N0Y5QzFDMTcxMUVBMDAz
RjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovLAogCQkJCTA3Mjk3RjlEMUMx
N0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oICovLAogCQkJCUJDMjY1
MjEyMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmNwcCAqLywKQEAgLTEyNTkz
LDcgKzEyNTk1LDYgQEAKIAkJCQk1Q0FGREU0NTIxMzA4NDYzMDBCMUY3RTEgLyogX1dLSW5zcGVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTRDNjA0MjI1M0NBNTQ0MDBCREYwNjAgLyogX1dL
SW5zcGVjdG9yQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk0QzYwNDUyNTND
QUJBMjAwQkRGMDYwIC8qIF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNTE3QjVGN0YyNzVFOTdCNjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTk5MUY0OTJGMjNBODEyQzYwMDU0NjQyQiAvKiBfV0tJbnNw
ZWN0b3JEZWJ1Z2dhYmxlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwMzZBRTIyM0E5NDlD
RjAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkxOTc5NDBDMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjc1Nyw2ICsxMjc1OCw3IEBACiAJCQkJMUE2NTYz
RTUxQjdBOEM1MDAwOUNGNzg3IC8qIEFQSVdpbmRvd0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzJFQkJEQjI1MzhGNkI2MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCREQyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0
dGVzdFNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGODUyNzVFOTdCNjAwMkRDMjJEIC8q
IEFwcEJ1bmRsZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NDg3OUI5MjM3M0E5MDkw
MEY1Njc4RSAvKiBBcHBLaXRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4RDJBODUy
MTU4M0E3RTAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTU2NTA4
MzkyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMjgwMiw2ICsxMjgwNCw3IEBACiAJCQkJNDE4OTdFRDgxRjQxNUQ4QTAwMTZGQTQy
IC8qIENhY2hlU3RvcmFnZUVuZ2luZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQUJEMkExRjRE
RTAwMTAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTg5N0VEQTFGNDE1RDhBMDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY1OUYyNUYyNzVGRjZCMjAwQkJCMzY5IC8qIENh
cHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTU3OUE2MjYz
NDgzNjcwMEY1QzVFOSAvKiBDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1N0I0QjQ2MDIwQjUwNEFDMDBENEFENzkgLyogQ2xpZW50Q2VydGlmaWNh
dGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRGRTBB
M0IyNDYzMkI2MDAwMjYzMUUxIC8qIENvY29hQ29sb3IuaCBpbiBIZWFkZXJzICovLApAQCAtMTI5
NzAsNiArMTI5NzMsOCBAQAogCQkJCTFBM0VFRDBGMTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdl
UmVjZWl2ZXJNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUIwMzdBMTg1QTdDNkEwMEVERjUw
MSAvKiBNZXNzYWdlU2VuZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTNCM0RBMjIwN0YzOURF
MDA5MEM1OEQgLyogTW9iaWxlV2lGaVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGN0My
NzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MTdCNUY4MDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURDQjIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURDNzIxNEYxODMw
MDAxNkI4NDcgLyogTW9ja0xvY2FsQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdE
Q0VEQzMyMTRGMTE0QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICov
LApAQCAtMTI5OTcsNyArMTMwMDIsNiBAQAogCQkJCTgzMUVFQkJEMUJEODVDNDMwMEJCNjRDMyAv
KiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMkFF
MjUyMUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVDRjFBMEQwNDBCMDBFQUQyMDQgLyogTmV0d29y
a0NhY2hlU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGN0MyNzVFOTdCNjAwMkRD
MjJEIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzEw
NDI4QjFCRDZCNjZGMDBBNzE1RTQgLyogTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxM0ExNjREMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFERDlGMjkxNjM2N0RB
MjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTMwOTIsNiArMTMwOTYsOCBAQAogCQkJCTg2RTY3QTI1MTkxMEI5RDEw
MDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzA0OEFF
NjFBQ0E0NURDMDA4MkM4MzIgLyogUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQyNzlFMTkyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1
bmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGN0QyNzVFOTdCNjAwMkRDMjJEIC8qIFB1
c2hDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFC
MDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0Uy
NDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQyMDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJu
YWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMTMyLDcgKzEzMTM4LDYgQEAKIAkJCQkw
NzFCQzU5MTIzQ0UxRUFBMDA2ODBEN0MgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGODUyNzVFOTdCNjAwMkRD
MjJEIC8qIEFwcEJ1bmRsZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFERDJBNjg1MjU2
MzNDNjcwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFERDJBNjg4MjU2MzNDOTUwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJj
ZVByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI3ODQ3MTE2M0Yy
NDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApA
QCAtMTMyMjUsNyArMTMyMzAsNiBAQAogCQkJCTU3RkQzMTg2MjJCMzUxNkMwMDhEMEU4QiAvKiBT
dWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OEFD
MjRFMjY3MTM1QTcwMEIyODkyMSAvKiBTeW5hcHNlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NDU5OTg0MjIyODMzRTg3MDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUY3RDI3NUU5N0I2MDAyREMyMkQgLyogUHVzaENsaWVu
dENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNTcxMzVGMjA0MEE5QjIwMDg0RjlD
RiAvKiBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5RDFE
OUEyNjk2MENEMzAwODgzNTc3IC8qIFN5c3RlbVN0YXR1c1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjREOTg1Q0IyNjkxMDk2NjAwQkJDQ0JFIC8qIFRhcEhhbmRsaW5nUmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTEzMjUwLDcgKzEzMjU0LDYgQEAKIAkJCQkxQTY0MjQ1RTEyREUyOUExMDBD
QUFFMkMgLyogVXBkYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMxOUE1MjAxRkQwQjI5
NTAwRUVBMzIzIC8qIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUMxMzM2ODE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuaCBpbiBIZWFkZXJzICovLAot
CQkJCTUxN0I1RjgwMjc1RTk3QjYwMDJEQzIyRCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovLAogCQkJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q0OTFCMEUxRTczMkU0RDAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTEzNDc2LDkgKzEzNDc5LDExIEBACiAJCQkJQkNFMEU0
MjUxNjhCN0EyODAwNTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTFFMDkzNDE4ODYxRDM4MDBEMkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2Vi
UHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUY3RjI3NUU5N0I2MDAy
REMyMkQgLyogV2ViUHVzaERhZW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OTgyNzIx
RUZDODAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25D
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5QTI3MjFGMEE5MDBGN0Y4
RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVG
NzMyNzVFOTYwOTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25NYWluLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NjFDQ0NBNjIzMTQ4NUFBMDBCNjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNv
dXJjZUludGVyY2VwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMEFGRkJBMTY1
NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MzcyOCw3ICsxMzczMyw2IEBACiAJCQkJQTE1NzlCMjgyNTg0OTBFNTAwNTI4MjM2IC8qIFdLTWVk
aWFGb3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBQ0MwN0I5MjVDODIxODQwMERD
NjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUI0MEVFNjFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJz
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGODEyNzVFOTdCNjAwMkRDMjJEIC8q
IFB1c2hBcHBCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQUJEQzg2MjJDNDBGREUwMDFF
REU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzExRTE2OTQy
MTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
MUE4RERCMjBEREQxQUMwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMzc5NCw3ICsxMzc5OCw2IEBACiAJCQkJQkMyRDAyMTkxMkFDNDI2QzAwRTczMkEz
IC8qIFdLUGFnZUxvYWRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCREVCMDExNzFERDdB
RjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJENzMwMzc5MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKLQkJCQk1MTdCNUY3MzI3NUU5NjA5MDAyREMyMkQgLyogV2ViUHVzaERhZW1v
bk1haW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjhBMUVFMTg0MDBBQ0IwMEU5QUU2OSAvKiBX
S1BhZ2VQb2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3M0NFQUQ4MTg1OTU1M0Yw
MDhDMzYzRCAvKiBXS1BhZ2VQb2xpY3lDbGllbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxNzc0NjUxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTUwOTgsOCArMTUxMDEsOCBAQAogCQkJCTUxRjdCQjdEMjc0NTY0MDQwMEM0NUE3
MiAvKiBDb2RlU2lnbmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMTU3OUZGMjcxN0I2RDIw
MEVENTI4MCAvKiBEYWVtb25EZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMTU3OUZF
MjcxN0I2QzEwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTUxN0I1Rjc4Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1QzE1NzlGQjI3MTdBRjUwMDBFRDUyODAgLyogRGFlbW9uVXRpbGl0aWVzLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNTE3QjVGNzgyNzVFOTc5NTAwMkRDMjJEIC8qIHdlYnB1c2hkLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMTUxNDMsNiArMTUxNDYsNyBAQAogCQkJCTk5RTcxODlBMjFGNzlE
OUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3ODQyMTJCNkFCMTAwRjQ5M0ZEIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTU3MkVCQkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRl
cm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRD
MjJEIC8qIEFwcEJ1bmRsZVJlcXVlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3QjIx
MkI2QTcxMDBGNDkzRkQgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkRFQjFEMkUyMTI3NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MkE3N0MyMTJCNkE3MTAwRjQ5M0ZEIC8qIEF0dGFjaG1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0xNTE1MCw3ICsxNTE1NCw2IEBACiAJCQkJQ0Q0NTcwRDMyNDQxMTNC
NTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4QTIxMkE4ODNBRDAwNjI5NTMwIC8q
IEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1N0ZBQkIxMzI1ODE4MjdDMDA1OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0Nv
cmVTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxN0I1RjdFMjc1RTk3QjYwMDJEQzIy
RCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk1NUE2RjQxQzc5
ODZEQzAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTkyNDlBRDUxRjFGMUU1NjAwQjYyRkJCIC8qIEF1dG9tYXRpb25Gcm9udGVu
ZERpc3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5NTVBNkY2MUM3OTg2RTMwMEVC
NkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTUxODksNiArMTUxOTIsOCBAQAogCQkJCTdCNDgzRjIxMjVDRERBOUMwMDEyMDQ4NiAvKiBNZXNz
YWdlUmVjZWl2ZVF1ZXVlTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgxMjEyQjZB
NzEwMEY0OTNGRCAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ5MkE3ODIyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTE3QjVGODQyNzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0
aW5nLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGODYyNzVFOTdCNjAwMkRDMjJEIC8qIE1v
Y2tBcHBCdW5kbGVSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzdBMjEyQjZB
NjEwMEY0OTNGRCAvKiBNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdCODI2NDUyMzA0
RjE0MDAwQjcyRUIwIC8qIE5lYXJGaWVsZFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzFDMUIzMEYyNTQwRjUwRDAwRDkxMDBCIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xNTIxMyw2ICsxNTIxOCw4IEBACiAJCQkJMkQ5MTM0
NEQyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzE1Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGODIyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hB
cHBCdW5kbGUubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTdCNUY3QjI3NUU5N0E5MDAyREMyMkQg
LyogUHVzaENsaWVudENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0
NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJu
YWlsTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTUyMzIsNyArMTUyMzksNiBAQAogCQkJCUNERTU1NTM1MjQwNkVCOEMwMDhBM0REQiAvKiBSZW1v
dGVMZWdhY3lDRE1TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0QzRUVGNDYyNTc5QzI2MTAwNjU2M0JCIC8qIFJlbW90ZU1lZGlhRW5naW5lQ29uZmln
dXJhdGlvbkZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGN0EyNzVFOTdB
NDAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzAxNzg5
RTIzQkU5Q0ZDMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3MUJDNThGMjNDRTFFQUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFENEQ3
MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1MjczLDggKzE1Mjc5LDYgQEAKIAkJCQky
RDExQjc1NTIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTMtbW0ubW0gaW4gU291cmNl
cyAqLywKIAkJCQkyRDExQjc1NjIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3NTcyMTI2QTI4MjAwNkY4ODc4IC8qIFVuaWZpZWRT
b3VyY2U0LW1tLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGODQyNzVFOTdCNjAwMkRDMjJE
IC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVG
ODYyNzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVSZWdpc3RyeS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEMTFCNzU4MjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDExQjc1OTIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNv
dXJjZTUtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjc1QTIxMjZBMjgyMDA2Rjg4Nzgg
LyogVW5pZmllZFNvdXJjZTUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTM1Nyw3ICsxNTM2MSw2
IEBACiAJCQkJMkQxMUI3QTcyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0NC1tbS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCN0E4MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVk
U291cmNlNDQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QTkyMTI2QTI4MzAwNkY4ODc4
IC8qIFVuaWZpZWRTb3VyY2U0NS1tbS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxN0I1RjgyMjc1
RTk3QjYwMDJEQzIyRCAvKiBQdXNoQXBwQnVuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQx
MUI3QUEyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0NS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDExQjdBQjIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ2LW1tLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QUMyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRT
b3VyY2U0Ni5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1Mzg4LDcgKzE1MzkxLDYgQEAKIAkJCQky
RDExQjdDNTIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTU5LW1tLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQxMUI3QzYyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U1OS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjdDNzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmll
ZFNvdXJjZTYwLW1tLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGNzkyNzVFOTdBMTAwMkRD
MjJEIC8qIFdlYlB1c2hEYWVtb25NYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3Qzgy
MTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U2MC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDU0QzMxQTIxMkYzQjMzMDA0OUMxNzQgLyogVW5pZmllZFNvdXJjZTYxLW1tLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQxMUI3Q0EyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U2
MS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1Mzk2LDcgKzE1Mzk4LDYgQEAKIAkJCQkyRDExQjdD
QjIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTYyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJENTRDMzA4MjEyRjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNjMtbW0ubW0gaW4g
U291cmNlcyAqLywKIAkJCQkyRDExQjdDQzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJj
ZTYzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQ
dXNoQ2xpZW50Q29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzBDMjEyRjNC
MzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNjQtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDExQjdDRDIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTY0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJENTRDMzA3MjEyRjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNjUtbW0u
bW0gaW4gU291cmNlcyAqLywKQEAgLTE1NTMxLDYgKzE1NTMyLDggQEAKIAkJCQlCQzMwNjZCRTEy
NUE0NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3Q0U0RDIyNzFBNDkxNkMyMDBDN0YxNTIgLyogV2ViUHJvY2Vzc1Bvb2xNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRTdBRDAxMjgxNzk4ODAwOTgy
N0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MTdCNUY3QTI3NUU5N0E0MDAyREMyMkQgLyogV2ViUHVzaERhZW1vbi5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTUxN0I1Rjc5Mjc1RTk3QTEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uTWFp
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQiAvKiBXZWJS
ZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYw
NjBFMTE2NTQzMTg1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyogV2ViUlRDUmVz
b2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTAxYjcyMWVkZjk3YjUxZWExMTI3
M2NlOGRkY2ZlMmVlMTBhNjI2Ny4uOTAwN2NlM2MxYzMxZDkxNmY3OWM1N2JiN2IxMDU5NzI3MGUw
YmIwZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIxLTEyLTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgTWFrZSBLVk8gd29yayBmb3IgV0tXZWJwYWdlUHJlZmVyZW5jZXMuX2Nh
cHRpdmVQb3J0YWxNb2RlRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzOTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKC1bQ2FwdGl2ZVBvcnRhbE1vZGVLVk8gb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9i
amVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKwogMjAyMS0xMi0wNyAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGZXRjaCBhbmQgcmVtb3ZlIGZpbGUgc3lzdGVtIGRh
dGEgdmlhIFdLV2Vic2l0ZURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
aW5kZXggOGQ4YTRhNzc5ZjExZWQwOGYxOWJiMDM0ZDQ3NWI0MGQyZmZjMDhiMy4uYzUzMzgwY2Ix
MjlmM2I0MzNiMzkwYTNmZGU4ZDc3YWRkZjYyZDI5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tCkBAIC04OSw2ICs4OSwyOSBAQCBzdGF0aWMgYm9vbCBkaWRDbG9zZVdpbmRvdzsK
IHN0YXRpYyBSZXRhaW5QdHI8TlNVUkw+IGNsaWVudFJlZGlyZWN0U291cmNlVVJMOwogc3RhdGlj
IFJldGFpblB0cjxOU1VSTD4gY2xpZW50UmVkaXJlY3REZXN0aW5hdGlvblVSTDsKIAorc3RhdGlj
IGJvb2wgZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGU7CitzdGF0aWMgYm9vbCBjYXB0aXZlUG9y
dGFsTW9kZUJlZm9yZUNoYW5nZTsKK3N0YXRpYyBib29sIGNhcHRpdmVQb3J0YWxNb2RlQWZ0ZXJD
aGFuZ2U7CisKK0BpbnRlcmZhY2UgQ2FwdGl2ZVBvcnRhbE1vZGVLVk8gOiBOU09iamVjdCB7CitA
cHVibGljCit9CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBDYXB0aXZlUG9ydGFsTW9kZUtWTwor
CistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9i
amVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWNo
YW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIEFTU0VSVChba2V5UGF0aCBpc0Vx
dWFsVG9TdHJpbmc6QCJfY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkIl0pOworICAgIEFTU0VSVChb
W29iamVjdCBjbGFzc10gaXNFcXVhbDpbV0tXZWJwYWdlUHJlZmVyZW5jZXMgY2xhc3NdXSk7CisK
KyAgICBjYXB0aXZlUG9ydGFsTW9kZUJlZm9yZUNoYW5nZSA9IFtbY2hhbmdlIG9iamVjdEZvcktl
eTpOU0tleVZhbHVlQ2hhbmdlT2xkS2V5XSBib29sVmFsdWVdOworICAgIGNhcHRpdmVQb3J0YWxN
b2RlQWZ0ZXJDaGFuZ2UgPSBbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5l
d0tleV0gYm9vbFZhbHVlXTsKKyAgICBkaWRDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSA9IHRydWU7
Cit9CisKK0BlbmQKKwogQGludGVyZmFjZSBQU09OTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8
V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KIEBlbmQKIApAQCAtNzgxOSw2ICs3ODQyLDcwIEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdUb0NhcHRpdmVQb3J0YWxNb2RlKQogICAgIGNoZWNr
U2V0dGluZ3NDb250cm9sbGVkQnlDYXB0aXZlUG9ydGFsTW9kZSh3ZWJWaWV3LmdldCgpLCBTaG91
bGRCZUVuYWJsZWQ6Ok5vKTsKIH0KIAorVEVTVChQcm9jZXNzU3dhcCwgQ2FwdGl2ZVBvcnRhbE1v
ZGVTeXN0ZW1TZXR0aW5nQ2hhbmdlKQoreworICAgIGF1dG8ga3ZvID0gYWRvcHROUyhbQ2FwdGl2
ZVBvcnRhbE1vZGVLVk8gbmV3XSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5fY2Fw
dGl2ZVBvcnRhbE1vZGVFbmFibGVkKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCku
ZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyBhZGRPYnNlcnZlcjprdm8uZ2V0KCkgZm9yS2V5UGF0
aDpAIl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2Vydmlu
Z09wdGlvbk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQgY29udGV4dDpuaWxdOwor
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25m
aWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3
LmdldCgpKSk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7
CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICos
IFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7Cisg
ICAgfTsKKworICAgIE5TVVJMICp1cmwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIHBpZF90IHBpZDEgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIEVYUEVD
VF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBFWFBFQ1RfRkFMU0Uo
ZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGUpOworCisgICAgZmluaXNoZWROYXZpZ2F0aW9uID0g
ZmFsc2U7CisgICAgLy8gTm93IGNoYW5nZSB0aGUgZ2xvYmFsIHNldHRpbmcuCisgICAgW1dLUHJv
Y2Vzc1Bvb2wgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzpZ
RVNdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDaGFuZ2VDYXB0aXZlUG9y
dGFsTW9kZSk7CisgICAgRVhQRUNUX0ZBTFNFKGNhcHRpdmVQb3J0YWxNb2RlQmVmb3JlQ2hhbmdl
KTsKKyAgICBFWFBFQ1RfVFJVRShjYXB0aXZlUG9ydGFsTW9kZUFmdGVyQ2hhbmdlKTsKKyAgICBF
WFBFQ1RfVFJVRSh3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZl
cmVuY2VzLl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQpOworCisgICAgLy8gVGhpcyBzaG91bGQg
Y2F1c2UgdGhlIFdlYlZpZXcgdG8gcmVsb2FkIHdpdGggYSBXZWJQcm9jZXNzIGluIGNhcHRpdmUg
cG9ydGFsIG1vZGUuCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmln
YXRpb24pOworCisgICAgRVhQRUNUX0ZBTFNFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7
CisKKyAgICBwaWRfdCBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAg
ICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CisKKyAgICBkaWRDaGFuZ2VDYXB0aXZlUG9ydGFsTW9k
ZSA9IGZhbHNlOworICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIFtXS1Byb2Nl
c3NQb29sIF9jbGVhckNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZ107
CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENoYW5nZUNhcHRpdmVQb3J0YWxN
b2RlKTsKKyAgICBFWFBFQ1RfVFJVRShjYXB0aXZlUG9ydGFsTW9kZUJlZm9yZUNoYW5nZSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKGNhcHRpdmVQb3J0YWxNb2RlQWZ0ZXJDaGFuZ2UpOworICAgIEVYUEVD
VF9GQUxTRSh3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZlcmVu
Y2VzLl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworCisgICAgRVhQRUNUX1RSVUUoaXNKSVRFbmFi
bGVkKHdlYlZpZXcuZ2V0KCkpKTsKKworICAgIHBpZF90IHBpZDMgPSBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQyLCBwaWQzKTsKK30KKwogI2lmIFBM
QVRGT1JNKElPUykKIAogVEVTVChQcm9jZXNzU3dhcCwgQ2Fubm90RGlzYWJsZUNhcHRpdmVQb3J0
YWxNb2RlV2l0aG91dEJyb3dzZXJFbnRpdGxlbWVudCkKQEAgLTc5NDYsNCArODAzMywxODkgQEAg
VEVTVChQcm9jZXNzU3dhcCwgQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlEZWZhdWx0VGhlbk9w
dE91dCkKICAgICBFWFBFQ1RfRVEocGlkMiwgW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmll
cl0pOwogfQogCitURVNUKFByb2Nlc3NTd2FwLCBDYXB0aXZlUG9ydGFsTW9kZVN5c3RlbVNldHRp
bmdDaGFuZ2VEb2VzTm90UmVsb2FkVmlld3NXaGVuTW9kZUlzU2V0RXhwbGljaXRseTEpCit7Cisg
ICAgLy8gQ2FwdGl2ZSBwb3J0YWwgbW9kZSBpcyBkaXNhYmxlZCBnbG9iYWxseSBhbmQgZXhwbGlj
aXRseSBvcHRlZCBvdXQgdmlhIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuCisKKyAgICBhdXRv
IHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBu
ZXddKTsKKyAgICBFWFBFQ1RfRkFMU0Uod2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVs
dFdlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkKTsKKyAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0Q2Fw
dGl2ZVBvcnRhbE1vZGVFbmFibGVkOk5PXTsgLy8gRXhwbGljaXRseSBvcHQgb3V0IHZpYSBkZWZh
dWx0IFdLV2VicGFnZVByZWZlcmVuY2VzLgorCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgW3dl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIEVYUEVD
VF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBfX2Jsb2NrIGJvb2wg
ZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNo
TmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZp
bmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIE5TVVJMICp1cmwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAg
IHBpZF90IHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVD
VF9ORShwaWQxLCAwKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3Lmdl
dCgpKSk7CisKKyAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICAvLyBOb3cgY2hh
bmdlIHRoZSBnbG9iYWwgc2V0dGluZy4KKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0Q2FwdGl2ZVBv
cnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nOllFU107CisKKyAgICAvLyBUaGlzIHNo
b3VsZCBub3QgcmVsb2FkIHRoZSB3ZWIgdmlldyBzaW5jZSB0aGUgdmlldyBoYXMgZXhwbGljaXRs
eSBvcHRlZCBvdXQgb2YgY2FwdGl2ZSBwb3J0YWwgbW9kZS4KKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpzbGVlcCgwLjUpOworICAgIEVYUEVDVF9GQUxTRShmaW5pc2hlZE5hdmlnYXRpb24pOwor
CisgICAgcGlkX3QgcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAg
RVhQRUNUX0VRKHBpZDEsIHBpZDIpOworCisgICAgRVhQRUNUX1RSVUUoaXNKSVRFbmFibGVkKHdl
YlZpZXcuZ2V0KCkpKTsKKworICAgIFtXS1Byb2Nlc3NQb29sIF9jbGVhckNhcHRpdmVQb3J0YWxN
b2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZ107Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIENh
cHRpdmVQb3J0YWxNb2RlU3lzdGVtU2V0dGluZ0NoYW5nZURvZXNOb3RSZWxvYWRWaWV3c1doZW5N
b2RlSXNTZXRFeHBsaWNpdGx5MikKK3sKKyAgICAvLyBDYXB0aXZlIHBvcnRhbCBtb2RlIGlzIGVu
YWJsZWQgZ2xvYmFsbHkgYnV0IGV4cGxpY2l0bHkgb3B0ZWQgb3V0IHZpYSBkZWZhdWx0V2VicGFn
ZVByZWZlcmVuY2VzLgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVu
YWJsZWRHbG9iYWxseUZvclRlc3Rpbmc6WUVTXTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIEVYUEVD
VF9UUlVFKHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5j
ZXMuX2NhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZCk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
LmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZDpOT107IC8vIEV4cGxpY2l0bHkgb3B0IG91dCB2aWEgZGVmYXVsdCBXS1dlYnBhZ2VQcmVm
ZXJlbmNlcy4KKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3
ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJs
ZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlv
biA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdL
V2ViVmlldyAqLCBXS05hdmlnYXRpb24gKikgeworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24g
PSB0cnVlOworICAgIH07CisKKyAgICBOU1VSTCAqdXJsID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxdXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBwaWRfdCBwaWQxID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisK
KyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgZmlu
aXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgLy8gTm93IGNoYW5nZSB0aGUgZ2xvYmFsIHNl
dHRpbmcuCisgICAgW1dLUHJvY2Vzc1Bvb2wgX2NsZWFyQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVk
R2xvYmFsbHlGb3JUZXN0aW5nXTsKKworICAgIC8vIFRoaXMgc2hvdWxkIG5vdCByZWxvYWQgdGhl
IHdlYiB2aWV3IHNpbmNlIHRoZSB2aWV3IGhhcyBleHBsaWNpdGx5IG9wdGVkIG91dCBvZiBjYXB0
aXZlIHBvcnRhbCBtb2RlLgorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKGZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBwaWRfdCBwaWQyID0g
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfRVEocGlkMSwgcGlk
Mik7CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5nZXQoKSkpOworfQor
CitURVNUKFByb2Nlc3NTd2FwLCBDYXB0aXZlUG9ydGFsTW9kZVN5c3RlbVNldHRpbmdDaGFuZ2VE
b2VzTm90UmVsb2FkVmlld3NXaGVuTW9kZUlzU2V0RXhwbGljaXRseTMpCit7CisgICAgLy8gQ2Fw
dGl2ZSBwb3J0YWwgbW9kZSBpcyBkaXNhYmxlZCBnbG9iYWxseSBhbmQgZXhwbGljaXRseSBvcHRl
ZCBvdXQgZm9yIHRoZSBsb2FkLgorCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgRVhQRUNUX0ZBTFNFKHdl
YlZpZXdDb25maWd1cmF0aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuX2NhcHRp
dmVQb3J0YWxNb2RlRW5hYmxlZCk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgRVhQRUNUX1RS
VUUoaXNKSVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkpKTsKKworICAgIF9fYmxvY2sgYm9vbCBmaW5p
c2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRGaW5pc2hOYXZp
Z2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopIHsKKyAgICAgICAgZmluaXNo
ZWROYXZpZ2F0aW9uID0gdHJ1ZTsKKyAgICB9OworCisgICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IF4oV0tOYXZpZ2F0aW9u
QWN0aW9uICphY3Rpb24sIFdLV2VicGFnZVByZWZlcmVuY2VzICpwcmVmZXJlbmNlcywgdm9pZCAo
XmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVBy
ZWZlcmVuY2VzICopKSB7CisgICAgICAgIEVYUEVDVF9GQUxTRShwcmVmZXJlbmNlcy5fY2FwdGl2
ZVBvcnRhbE1vZGVFbmFibGVkKTsKKyAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRDYXB0aXZlUG9y
dGFsTW9kZUVuYWJsZWQ6Tk9dOyAvLyBFeHBsaWNpdGx5IE9wdCBvdXQgb2YgY2FwdGl2ZSBwb3J0
YWwgbW9kZSBmb3IgdGhpcyBsb2FkLgorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOworICAgIH07CisKKyAgICBOU1VS
TCAqdXJsID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp1cmxdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdh
dGlvbik7CisKKyAgICBwaWRfdCBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJs
ZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7Cisg
ICAgLy8gTm93IGNoYW5nZSB0aGUgZ2xvYmFsIHNldHRpbmcuCisgICAgW1dLUHJvY2Vzc1Bvb2wg
X3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzpZRVNdOworCisg
ICAgLy8gVGhpcyBzaG91bGQgbm90IHJlbG9hZCB0aGUgd2ViIHZpZXcgc2luY2UgdGhlIHZpZXcg
aGFzIGV4cGxpY2l0bHkgb3B0ZWQgb3V0IG9mIGNhcHRpdmUgcG9ydGFsIG1vZGUuCisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0UoZmluaXNoZWRO
YXZpZ2F0aW9uKTsKKworICAgIHBpZF90IHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOworICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKworICAgIEVYUEVDVF9UUlVFKGlz
SklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBbV0tQcm9jZXNzUG9vbCBfY2xlYXJD
YXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmddOworfQorCitURVNUKFBy
b2Nlc3NTd2FwLCBDYXB0aXZlUG9ydGFsTW9kZVN5c3RlbVNldHRpbmdDaGFuZ2VEb2VzTm90UmVs
b2FkVmlld3NXaGVuTW9kZUlzU2V0RXhwbGljaXRseTQpCit7CisgICAgLy8gQ2FwdGl2ZSBwb3J0
YWwgbW9kZSBpcyBlbmFibGVkIGdsb2JhbGx5IGJ1dCBleHBsaWNpdGx5IG9wdGVkIG91dCBmb3Ig
dGhlIGxvYWQuCisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxl
ZEdsb2JhbGx5Rm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgRVhQRUNUX1RS
VUUod2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5f
Y2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkKTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBFWFBF
Q1RfRkFMU0UoaXNKSVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkpKTsKKworICAgIF9fYmxvY2sgYm9v
bCBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRGaW5p
c2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopIHsKKyAgICAgICAg
ZmluaXNoZWROYXZpZ2F0aW9uID0gdHJ1ZTsKKyAgICB9OworCisgICAgZGVsZWdhdGUuZ2V0KCku
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IF4oV0tOYXZp
Z2F0aW9uQWN0aW9uICphY3Rpb24sIFdLV2VicGFnZVByZWZlcmVuY2VzICpwcmVmZXJlbmNlcywg
dm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopKSB7CisgICAgICAgIEVYUEVDVF9UUlVFKHByZWZlcmVuY2VzLl9j
YXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQpOworICAgICAgICBbcHJlZmVyZW5jZXMgX3NldENhcHRp
dmVQb3J0YWxNb2RlRW5hYmxlZDpOT107IC8vIEV4cGxpY2l0bHkgT3B0IG91dCBvZiBjYXB0aXZl
IHBvcnRhbCBtb2RlIGZvciB0aGlzIGxvYWQuCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CisgICAgfTsKKworICAg
IE5TVVJMICp1cmwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2lt
cGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOnVybF1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRO
YXZpZ2F0aW9uKTsKKworICAgIHBpZF90IHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklU
RW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxz
ZTsKKyAgICAvLyBOb3cgY2hhbmdlIHRoZSBnbG9iYWwgc2V0dGluZy4KKyAgICBbV0tQcm9jZXNz
UG9vbCBfY2xlYXJDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmddOwor
CisgICAgLy8gVGhpcyBzaG91bGQgbm90IHJlbG9hZCB0aGUgd2ViIHZpZXcgc2luY2UgdGhlIHZp
ZXcgaGFzIGV4cGxpY2l0bHkgb3B0ZWQgb3V0IG9mIGNhcHRpdmUgcG9ydGFsIG1vZGUuCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0UoZmluaXNo
ZWROYXZpZ2F0aW9uKTsKKworICAgIHBpZF90IHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOworICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKworICAgIEVYUEVDVF9UUlVF
KGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKK30KKwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446379</attachid>
            <date>2021-12-08 09:46:25 -0800</date>
            <delta_ts>2021-12-08 09:46:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233954-20211208094624.patch</filename>
            <type>text/plain</type>
            <size>50360</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIxNWY4Zjg0Y2YxNGI2ZWFk
Y2EzNzYwNDVkZjEzODg5ZjQ3MGEwMTEuLjMyNDMyNDk5YjQ4NzY5OWIxY2ZjNGI4MWYzOTg3OGM4
YTE2MGE0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMTItMDcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEtWTyB3b3JrIGZvciBXS1dl
YnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIE1ha2UgS1ZPIHdvcmsgZm9yIFdL
V2VicGFnZVByZWZlcmVuY2VzLl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQgc28gdGhhdCB0aGUg
Y2xpZW50IGNhbiBvYnNlcnZlCisgICAgICAgIHdoZW4gdGhlIHN5c3RlbSBzZXR0aW5nIGNoYW5n
ZXMuIEFsc28gYWRkIFNQSSB0byBzaW11bGF0ZSBhIGNoYW5nZSBvZiB0aGUgc3lzdGVtIHNldHRp
bmcgc28gdGhhdAorICAgICAgICBJIGNhbiB3cml0ZSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgrW1dLUHJvY2Vz
c1Bvb2wgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzpdKToK
KyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfY2xlYXJDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRH
bG9iYWxseUZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBh
Z2VQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tXZWJwYWdlUHJlZmVyZW5jZXMgaW5pdF0p
OgorICAgICAgICAoLVtXS1dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVF
bmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVy
ZW5jZXNJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9DYXB0aXZlUG9ydGFsTW9kZU9i
c2VydmVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmguCisgICAgICAgIChXZWJLaXQ6OkNhcHRpdmVQ
b3J0YWxNb2RlT2JzZXJ2ZXI6On5DYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6Y2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcnMpOgorICAgICAgICAoV2ViS2l0Ojppc0NhcHRp
dmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OmlzQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlTeXN0ZW1JZ25vcmluZ0NhY2hpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y2FwdGl2ZVBvcnRhbE1vZGVTdGF0ZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViS2l0OjphZGRDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKToKKyAg
ICAgICAgKFdlYktpdDo6cmVtb3ZlQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcik6CisgICAgICAg
IChXZWJLaXQ6OmNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEJ5U3lzdGVtKToKKyAgICAgICAgKFdl
YktpdDo6c2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YWRkQ2FwdGl2
ZVBvcnRhbE1vZGVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OnJlbW92ZUNhcHRpdmVQb3J0
YWxNb2RlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpzZXRDYXB0aXZlUG9ydGFsTW9kZUVu
YWJsZWRHbG9iYWxseUZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDIxLTEyLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBM
ZXQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
OjpVbml0IHN3aXRjaCB0byBWUElPIHVuaXQgaWYgVlBJTyBpcyBydW5uaW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDg1
MjA3YmQyOTgwZTI4ZTNhNWUzNDcyYjcyNzcyNmY1NDRhY2RiZmIuLjdiZDY5ZDk2MGQ0YTI2NWFi
MmIzMzMxYzA5Yjk4ZjYyZTlkNDljMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00OTksNiArNDk5LDE2IEBAICsgKHZv
aWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiAgICAgc2V0QXBwbGlj
YXRpb25TREtWZXJzaW9uKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7CiB9
CiAKKysgKHZvaWQpX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGlu
ZzooQk9PTClpc0VuYWJsZWQKK3sKKyAgICBXZWJLaXQ6OnNldENhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZEdsb2JhbGx5Rm9yVGVzdGluZyghIWlzRW5hYmxlZCk7Cit9CisKKysgKHZvaWQpX2NsZWFy
Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nCit7CisgICAgV2ViS2l0
OjpzZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmcoc3RkOjpudWxs
b3B0KTsKK30KKwogLSAoQk9PTClfaXNDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZAog
ewogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFi
bGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDg3M2MwNGM2ZjM2ZGMzZGZiNDAyMTNjNzlhOTU5
YzM4Mzc4ZmVhNDIuLjdhZjllNzU2NGJkNWIwNjBlNjU2N2QxODQyYWFmNzQ3YzJkYjZiNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oCkBAIC0xMjQsNiArMTI0LDggQEAKICsgKHZvaWQpX2ZvcmNlR2FtZUNv
bnRyb2xsZXJGcmFtZXdvcmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4w
KSk7CiArICh2b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAodm9pZClfc2V0TGlua2Vk
T25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CisrICh2b2lkKV9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9i
YWxseUZvclRlc3Rpbmc6KEJPT0wpaXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrICh2b2lkKV9jbGVhckNhcHRpdmVQb3J0YWxN
b2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6
KE5TVVJMICopc2VydmVyVVJMIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
V2ViVmlldy5fcHJlY29ubmVjdFRvU2VydmVyIiwgbWFjb3MoMTAuMTMuNCwgMTAuMTUuNCksIGlv
cygxMS4zLCAxMy40KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQppbmRleCAxMTUzZmRjYWM5MWM0YjBl
ODQwYTcxNTVlZTA1NWE2MTgwNjcyNmYzLi4xYjUzNDM3YzI4NTVkNDBlNWQ2YjI5NTc2MDVmOWZl
N2RhOWJjMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCkBAIC0yNywxMCArMjcsMTIgQEAKICNpbXBv
cnQgPFdlYktpdC9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oPgogCiAjaW1wb3J0ICJBUElDdXN0b21I
ZWFkZXJGaWVsZHMuaCIKKyNpbXBvcnQgIkNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaCIKICNp
bXBvcnQgIldLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vi
cGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9yZUlu
dGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDb250ZW50TW9kZS5oIgorI2ltcG9ydCAiV2ViUHJvY2Vz
c1Bvb2wuaCIKICNpbXBvcnQgIl9XS0N1c3RvbUhlYWRlckZpZWxkc0ludGVybmFsLmgiCiAjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVP
YmpDRXh0cmFzLmg+CkBAIC0xMDIsNiArMTA0LDQwIEBAIHN0YXRpYyBXZWJDb3JlOjpNb3VzZUV2
ZW50UG9saWN5IGNvcmVNb3VzZUV2ZW50UG9saWN5KF9XS1dlYnNpdGVNb3VzZUV2ZW50UG9saWN5
CiAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3k6OkRlZmF1bHQ7CiB9CiAKK2Ns
YXNzIFdlYlBhZ2VQcmVmZXJlbmNlc0NhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIgZmluYWwgOiBw
dWJsaWMgQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgV2ViUGFnZVByZWZlcmVuY2VzQ2FwdGl2ZVBvcnRhbE1vZGVP
YnNlcnZlcihpZCBvYmplY3QpCisgICAgICAgIDogbV9vYmplY3Qob2JqZWN0KQorICAgIHsKKyAg
ICAgICAgYWRkQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAg
fldlYlBhZ2VQcmVmZXJlbmNlc0NhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIoKQorICAgIHsKKyAg
ICAgICAgcmVtb3ZlQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCitw
cml2YXRlOgorICAgIHZvaWQgd2lsbENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlKCkgZmluYWwKKyAg
ICB7CisgICAgICAgIGlmIChhdXRvIG9iamVjdCA9IG1fb2JqZWN0LmdldCgpKSB7CisgICAgICAg
ICAgICBbb2JqZWN0IHdpbGxDaGFuZ2VWYWx1ZUZvcktleTpAIl9jYXB0aXZlUG9ydGFsTW9kZUVu
YWJsZWQiXTsKKyAgICAgICAgICAgIFtvYmplY3QgX3dpbGxDaGFuZ2VDYXB0aXZlUG9ydGFsTW9k
ZV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUNhcHRpdmVQb3J0YWxN
b2RlKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChhdXRvIG9iamVjdCA9IG1fb2JqZWN0Lmdl
dCgpKSB7CisgICAgICAgICAgICBbb2JqZWN0IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAiX2NhcHRp
dmVQb3J0YWxNb2RlRW5hYmxlZCJdOworICAgICAgICAgICAgW29iamVjdCBfZGlkQ2hhbmdlQ2Fw
dGl2ZVBvcnRhbE1vZGVdOworICAgICAgICB9CisgICAgfQorCisgICAgV2Vha09iakNQdHI8aWQ+
IG1fb2JqZWN0OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIEBpbXBsZW1lbnRhdGlv
biBXS1dlYnBhZ2VQcmVmZXJlbmNlcwpAQCAtMTI3LDYgKzE2Myw3IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0
SW5XcmFwcGVyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPihzZWxmKTsKKyAgICBfY2FwdGl2ZVBvcnRh
bE1vZGVPYnNlcnZlciA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJQYWdlUHJlZmVyZW5jZXNDYXB0
aXZlUG9ydGFsTW9kZU9ic2VydmVyPihzZWxmKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAt
NDE4LDkgKzQ1NSw2IEBAIC0gKEJPT0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKIAogLSAodm9p
ZClfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkOihCT09MKWNhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZAogewotICAgIGlmIChfd2Vic2l0ZVBvbGljaWVzLT5jYXB0aXZlUG9ydGFsTW9kZUVuYWJs
ZWQoKSA9PSBjYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLy8gT24gaU9TLCB0aGUgd2ViIGJyb3dzZXIgZW50
aXRsZW1lbnQgaXMgcmVxdWlyZWQgdG8gZGlzYWJsZSBjYXB0aXZlIHBvcnRhbCBtb2RlLgogICAg
IGlmICghY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkICYmICFXVEY6OnByb2Nlc3NIYXNFbnRpdGxl
bWVudCgiY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlciIpKQpAQCAtNDYxLDYgKzQ5NSwx
MyBAQCAtIChfV0tXZWJzaXRlTW91c2VFdmVudFBvbGljeSlfbW91c2VFdmVudFBvbGljeQogCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS1dl
YnBhZ2VQcmVmZXJlbmNlc0FkZGl0aW9ucy5tbT4KKyNlbHNlCistICh2b2lkKV93aWxsQ2hhbmdl
Q2FwdGl2ZVBvcnRhbE1vZGUKK3sKK30KKy0gKHZvaWQpX2RpZENoYW5nZUNhcHRpdmVQb3J0YWxN
b2RlCit7Cit9CiAjZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmgK
aW5kZXggNmUxMTlmOTAxZGQxNGVhMTljMDc0Y2ZkMzE0OGZiNzI5OTQxNWEwYy4uMGVkYWE5Mzcz
ZjViNjQ5NDhjNWRkOTBlYTc1ZDBmZGQ2MzQ4ZTBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNJ
bnRlcm5hbC5oCkBAIC0zOCwxMiArMzgsMTkgQEAgV0tDb250ZW50TW9kZSBjb250ZW50TW9kZShX
ZWJDb250ZW50TW9kZSk7CiBXZWJDb250ZW50TW9kZSB3ZWJDb250ZW50TW9kZShXS0NvbnRlbnRN
b2RlKTsKICNlbmRpZgogCitjbGFzcyBXZWJQYWdlUHJlZmVyZW5jZXNDYXB0aXZlUG9ydGFsTW9k
ZU9ic2VydmVyOworCiB9CiAKIEBpbnRlcmZhY2UgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKCkgPFdL
T2JqZWN0PiB7CiBAcGFja2FnZQogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OldlYnNpdGVQ
b2xpY2llcz4gX3dlYnNpdGVQb2xpY2llczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpX
ZWJQYWdlUHJlZmVyZW5jZXNDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyPiBfY2FwdGl2ZVBvcnRh
bE1vZGVPYnNlcnZlcjsKIH0KIAogQHByb3BlcnR5IChjbGFzcywgbm9uYXRvbWljLCByZWFkb25s
eSkgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKmRlZmF1bHRQcmVmZXJlbmNlczsKKworLSAodm9pZClf
d2lsbENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlOworLSAodm9pZClfZGlkQ2hhbmdlQ2FwdGl2ZVBv
cnRhbE1vZGU7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nh
cHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NhcHRp
dmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWQ3N2I0NDg3N2ZhZTVlMThhYWY0
NzljYTgyOGEzZTBiYzc0MDE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXI+IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5DYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKCkgeyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0KaW5kZXggNWI2ZTMxZGZiZWM3OGI2MTMwNWRhN2JmY2VmMmFjNWJjMWFj
MGFlYS4uMTU5YzcyMjJlMjcwYTJmNTg5MTU4ZTFhYWI4YzJhYWExNDZiYTI5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJBUElOYXZpZ2F0aW9uLmgiCiAjaW1wb3J0ICJB
Y2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmgiCisjaW1wb3J0ICJDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJD
b29raWVTdG9yYWdlVXRpbHNDRi5oIgogI2ltcG9ydCAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3Mu
aCIKICNpbXBvcnQgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oIgpAQCAtOTQ1
LDEwICs5NDYsMzUgQEAgaW50IHdlYlByb2Nlc3NUaHJvdWdocHV0UU9TKCkKICAgICByZXR1cm4g
cW9zOwogfQogCitzdGF0aWMgV2Vha0hhc2hTZXQ8Q2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcj4m
IGNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXJzKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChpc01h
aW5SdW5Mb29wKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrSGFzaFNldDxDYXB0
aXZlUG9ydGFsTW9kZU9ic2VydmVyPj4gb2JzZXJ2ZXJzOworICAgIHJldHVybiBvYnNlcnZlcnM7
Cit9CisKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPGJvb2w+JiBpc0NhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZEdsb2JhbGx5Rm9yVGVzdGluZygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0
ZDo6b3B0aW9uYWw8Ym9vbD4+IGVuYWJsZWRGb3JUZXN0aW5nOworICAgIHJldHVybiBlbmFibGVk
Rm9yVGVzdGluZzsKK30KKworc3RhdGljIGJvb2wgaXNDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRC
eVN5c3RlbUlnbm9yaW5nQ2FjaGluZygpCit7CisgICAgaWYgKGF1dG8mIGVuYWJsZWRGb3JUZXN0
aW5nID0gaXNDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICplbmFibGVkRm9yVGVzdGluZzsKKworICAgIHJldHVybiBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdX
aXRoVVRGOFN0cmluZzpXZWJLaXRDYXB0aXZlUG9ydGFsTW9kZUNoYW5nZWROb3RpZmljYXRpb25d
XTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2FwdGl2ZVBvcnRhbE1vZGVTdGF0ZUNoYW5n
ZWQoKQogewotICAgIGNhY2hlZENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5KCkgPSBz
dGQ6Om51bGxvcHQ7Ci0gICAgYXV0byBpc05vd0VuYWJsZWQgPSBjYXB0aXZlUG9ydGFsTW9kZUVu
YWJsZWRCeVN5c3RlbSgpOworICAgIGF1dG8gaXNOb3dFbmFibGVkID0gaXNDYXB0aXZlUG9ydGFs
TW9kZUVuYWJsZWRCeVN5c3RlbUlnbm9yaW5nQ2FjaGluZygpOworICAgIGlmIChjYWNoZWRDYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseSgpICE9IGlzTm93RW5hYmxlZCkgeworICAgICAg
ICBjYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVycygpLmZvckVhY2goW10oYXV0byYgb2JzZXJ2ZXIp
IHsgb2JzZXJ2ZXIud2lsbENoYW5nZUNhcHRpdmVQb3J0YWxNb2RlKCk7IH0pOworICAgICAgICBj
YWNoZWRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseSgpID0gaXNOb3dFbmFibGVkOwor
ICAgICAgICBjYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVycygpLmZvckVhY2goW10oYXV0byYgb2Jz
ZXJ2ZXIpIHsgb2JzZXJ2ZXIuZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGUoKTsgfSk7CisgICAg
fQogCiAgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0coTG9hZGluZywgIldlYlByb2Nlc3NQ
b29sOjpjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpIGlzTm93RW5hYmxlZD0lZCIsIGlz
Tm93RW5hYmxlZCk7CiAKQEAgLTk2OSwxNiArOTk1LDQwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmNhcHRpdmVQb3J0YWxNb2RlU3RhdGVDaGFuZ2VkKCkKICAgICB9CiB9CiAKK3ZvaWQgYWRkQ2Fw
dGl2ZVBvcnRhbE1vZGVPYnNlcnZlcihDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyJiBvYnNlcnZl
cikKK3sKKyAgICAvLyBNYWtlIHN1cmUgY2FjaGVkQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xv
YmFsbHkoKSBnZXRzIGluaXRpYWxpemVkIHNvIGNhcHRpdmVQb3J0YWxNb2RlU3RhdGVDaGFuZ2Vk
KCkgY2FuIHRyYWNrIGNoYW5nZXMuCisgICAgYXV0byYgY2FjaGVkU3RhdGUgPSBjYWNoZWRDYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseSgpOworICAgIGlmICghY2FjaGVkU3RhdGUpCisg
ICAgICAgIGNhY2hlZFN0YXRlID0gaXNDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRCeVN5c3RlbUln
bm9yaW5nQ2FjaGluZygpOworCisgICAgY2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlcnMoKS5hZGQo
b2JzZXJ2ZXIpOworfQorCit2b2lkIHJlbW92ZUNhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIoQ2Fw
dGl2ZVBvcnRhbE1vZGVPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgY2FwdGl2ZVBvcnRhbE1v
ZGVPYnNlcnZlcnMoKS5yZW1vdmUob2JzZXJ2ZXIpOworfQorCiBib29sIGNhcHRpdmVQb3J0YWxN
b2RlRW5hYmxlZEJ5U3lzdGVtKCkKIHsKICAgICBhdXRvJiBjYWNoZWRTdGF0ZSA9IGNhY2hlZENh
cHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5KCk7Ci0gICAgaWYgKCFjYWNoZWRTdGF0ZSkg
ewotICAgICAgICAvLyBGSVhNRTogVXNpbmcgTlNVc2VyRGVmYXVsdHMgaXMgYSB0ZW1wb3Jhcnkg
d29ya2Fyb3VuZC4gVGhpcyBzZXR0aW5nIHNob3VsZCBiZSBzdG9yZWQgZWxzZXdoZXJlIChUQ0M/
KS4KLSAgICAgICAgY2FjaGVkU3RhdGUgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpXZWJLaXRD
YXB0aXZlUG9ydGFsTW9kZUNoYW5nZWROb3RpZmljYXRpb25dXTsKLSAgICB9CisgICAgaWYgKCFj
YWNoZWRTdGF0ZSkKKyAgICAgICAgY2FjaGVkU3RhdGUgPSBpc0NhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZEJ5U3lzdGVtSWdub3JpbmdDYWNoaW5nKCk7CiAgICAgcmV0dXJuICpjYWNoZWRTdGF0ZTsK
IH0KIAordm9pZCBzZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmco
c3RkOjpvcHRpb25hbDxib29sPiBlbmFibGVkRm9yVGVzdGluZykKK3sKKyAgICBpZiAoaXNDYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmcoKSA9PSBlbmFibGVkRm9yVGVz
dGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgaXNDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRH
bG9iYWxseUZvclRlc3RpbmcoKSA9IGVuYWJsZWRGb3JUZXN0aW5nOworCisgICAgZm9yIChhdXRv
JiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkKKyAgICAg
ICAgcHJvY2Vzc1Bvb2wtPmNhcHRpdmVQb3J0YWxNb2RlU3RhdGVDaGFuZ2VkKCk7Cit9CisKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjphcHBsaWNhdGlv
bklzQWJvdXRUb1N1c3BlbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggODRkZjgwNWIzMGE0MTY4MzE2MjZjMmI1MTNhN2M5N2RjZWY0NTFjNS4uOWM2Zjk3
MDA1OWNmMzc2NzgwOTlkM2I0MTQ0NTVlYWZiMDk5NjlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNDU3LDcgKzM0NTcsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgQQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9pc0NhcHRpdmVQb3J0YWxNb2Rl
RXhwbGljaXRseVNldCA9IHBvbGljaWVzID8gcG9saWNpZXMtPmlzQ2FwdGl2ZVBvcnRhbE1vZGVF
eHBsaWNpdGx5U2V0KCkgOiBtX2NvbmZpZ3VyYXRpb24tPmlzQ2FwdGl2ZVBvcnRhbE1vZGVFeHBs
aWNpdGx5U2V0KCk7CisgICAgbV9pc0NhcHRpdmVQb3J0YWxNb2RlRXhwbGljaXRseVNldCA9IChw
b2xpY2llcyAmJiBwb2xpY2llcy0+aXNDYXB0aXZlUG9ydGFsTW9kZUV4cGxpY2l0bHlTZXQoKSkg
fHwgbV9jb25maWd1cmF0aW9uLT5pc0NhcHRpdmVQb3J0YWxNb2RlRXhwbGljaXRseVNldCgpOwog
ICAgIGF1dG8gY2FwdGl2ZVBvcnRhbE1vZGUgPSAocG9saWNpZXMgPyBwb2xpY2llcy0+Y2FwdGl2
ZVBvcnRhbE1vZGVFbmFibGVkKCkgOiBzaG91bGRFbmFibGVDYXB0aXZlUG9ydGFsTW9kZSgpKSA/
IFdlYlByb2Nlc3NQcm94eTo6Q2FwdGl2ZVBvcnRhbE1vZGU6OkVuYWJsZWQgOiBXZWJQcm9jZXNz
UHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlOjpEaXNhYmxlZDsKICAgICBwcm9jZXNzKCkucHJvY2Vz
c1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgKm5hdmlnYXRpb24sIHNvdXJjZVBy
b2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IGNhcHRpdmVQb3J0YWxNb2RlLCBmcmFtZUluZm8sIFdURk1vdmUod2Vic2l0ZURhdGFTdG9yZSks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcG9saWN5QWN0aW9uLCBuYXZp
Z2F0aW9uID0gUmVmIHsgKm5hdmlnYXRpb24gfSwgbmF2aWdhdGlvbkFjdGlvbiA9IFdURk1vdmUo
bmF2aWdhdGlvbkFjdGlvbiksIHNvdXJjZVByb2Nlc3MgPSBzb3VyY2VQcm9jZXNzLmNvcHlSZWYo
KSwKICAgICAgICAgcG9saWNpZXMgPSBXVEZNb3ZlKHBvbGljaWVzKSwgc2VuZGVyID0gV1RGTW92
ZShzZW5kZXIpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50XSAoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzRm9yTmF2aWdhdGlvbiwgU3VzcGVuZGVkUGFnZVByb3h5KiBkZXN0aW5h
dGlvblN1c3BlbmRlZFBhZ2UsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBtdXRhYmxlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBhOTRlN2IyN2M4ZWE5
NTVlY2JmNGMxN2E0MzIxMWY2NDk0ZTNkNjlmLi4wOTYxMzY3YTYxZTg5NjQ3YzQwYzAzOTYyYTRi
YTNkMGVhNmIxYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCkBAIC0yMTI0LDEwICsyMTI0LDE5IEBAIGJvb2wgV2ViUHJvY2Vzc1Bvb2w6Omhhc1NlcnZp
Y2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nKCkgY29uc3QKICNlbmRpZgogCiAj
aWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBhZGRDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKENh
cHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXImKQoreworfQordm9pZCByZW1vdmVDYXB0aXZlUG9ydGFs
TW9kZU9ic2VydmVyKENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXImKQoreworfQogYm9vbCBjYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRCeVN5c3RlbSgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQor
dm9pZCBzZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmcoc3RkOjpv
cHRpb25hbDxib29sPikKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDNiNDMwM2IyMTQ1MmYz
NTdjYmY2YzJmODU5N2VjNDFlNmMwY2E5MTguLjc2NjI0YmNmMTk4ZmIxNzZmZDUwNzA0NjQwN2Zi
YTc1ZmFiY2YxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApA
QCAtOTcsMTIgKzk3LDEzIEBAIGNsYXNzIFBvd2VyU291cmNlTm90aWZpZXI7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1jbGFzcyBXZWJCYWNrRm9yd2FyZENhY2hlOworY2xhc3MgQ2FwdGl2ZVBv
cnRhbE1vZGVPYnNlcnZlcjsKIGNsYXNzIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1w
bGVyOwogY2xhc3MgVUlHYW1lcGFkOwogY2xhc3MgUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2Ft
cGxlcjsKIGNsYXNzIFN1c3BlbmRlZFBhZ2VQcm94eTsKIGNsYXNzIFdlYkF1dG9tYXRpb25TZXNz
aW9uOworY2xhc3MgV2ViQmFja0ZvcndhcmRDYWNoZTsKIGNsYXNzIFdlYkNvbnRleHRTdXBwbGVt
ZW50OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwpAQCAtMTE5LDcg
KzEyMCwxMCBAQCBpbnQgbmV0d29ya1Byb2Nlc3NUaHJvdWdocHV0UU9TKCk7CiBpbnQgd2ViUHJv
Y2Vzc0xhdGVuY3lRT1MoKTsKIGludCB3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygpOwogI2VuZGlm
Cit2b2lkIGFkZENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIoQ2FwdGl2ZVBvcnRhbE1vZGVPYnNl
cnZlciYpOwordm9pZCByZW1vdmVDYXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyKENhcHRpdmVQb3J0
YWxNb2RlT2JzZXJ2ZXImKTsKIGJvb2wgY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkQnlTeXN0ZW0o
KTsKK3ZvaWQgc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nKHN0
ZDo6b3B0aW9uYWw8Ym9vbD4pOwogCiBlbnVtIGNsYXNzIENhbGxEb3dubG9hZERpZFN0YXJ0IDog
Ym9vbDsKIGVudW0gY2xhc3MgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCA6IGJvb2w7CkBA
IC00MzIsNiArNDM2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29va2llU3RvcmFnZVBhcnRp
dGlvbmluZ0VuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyUGVybWFuZW50Q3JlZGVudGlh
bHNGb3JQcm90ZWN0aW9uU3BhY2UoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiYpOworCisgICAg
dm9pZCBjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpOwogI2VuZGlmCiAKICAgICBGb3Jl
Z3JvdW5kV2ViUHJvY2Vzc1Rva2VuIGZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW4oKSBjb25zdCB7
IHJldHVybiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuKG1fZm9yZWdyb3VuZFdlYlByb2Nlc3ND
b3VudGVyLmNvdW50KCkpOyB9CkBAIC01NDgsOCArNTU0LDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgcmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKTsKICAgICB2b2lkIHVucmVnaXN0ZXJO
b3RpZmljYXRpb25PYnNlcnZlcnMoKTsKLQotICAgIHZvaWQgY2FwdGl2ZVBvcnRhbE1vZGVTdGF0
ZUNoYW5nZWQoKTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbklzQWN0aXZlKGJv
b2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMDNiNGVkOGNhNDRmMTc5ZmQ1OGEzZTg5YTMzYTRlODFlZDBlZDZjNS4uZmJmNDg3OWU4
Y2MzNjNhY2U4YWFkYjEzMTc1OGUxNzFiZjU0NGI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MDgsNiArOTA4LDcgQEAKIAkJNDYx
Q0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjMyMzY4MzIzMTQ4MUVG
MDBBNDhGQTcgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCAqLzsgfTsKIAkJNDYzRkQ0ODAx
RUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBB
Mjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMg
LyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uLmggKi87IH07CisJCTQ2NTlGMjVGMjc1RkY2QjIwMEJCQjM2OSAvKiBD
YXB0aXZlUG9ydGFsTW9kZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjU5RjI1RTI3NUZGNkIyMDBCQkIzNjkgLyogQ2FwdGl2ZVBvcnRh
bE1vZGVPYnNlcnZlci5oICovOyB9OwogCQk0NjVGNEUwNjIzMEIyRTk1MDAzQ0VEQjcgLyogU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2NUY0RTA1MjMwQjJFN0MwMDNDRURCNyAvKiBTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllci5oICovOyB9OwogCQk0NjVGQTcyNjI3NTdEOTNEMDA3MjM2MkIgLyogV2Vi
TG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94
eS5oICovOyB9OwogCQk0NjZCQzAzQzFGQTI2NkRBMDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5oICovOyB9OwpAQCAtNDE5MCw2ICs0MTkxLDcgQEAKIAkJNDYzRkQ0ODExRUI5NEVB
RDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDY1MUVDRTYyMjE3OEE4NTAwNjdFQjk1IC8qIFdlYlByb2Nlc3ND
YWNoZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
UHJvY2Vzc0NhY2hlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NTI1
MEU1MUVDRjUyQ0QwMDIwMjVDQiAvKiBXZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViS2l0MkluaXRpYWxpemVDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1OUYyNUUyNzVGRjZCMjAwQkJCMzY5
IC8qIENhcHRpdmVQb3J0YWxNb2RlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FwdGl2ZVBvcnRhbE1vZGVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjVGNEUwMjIzMDc1OUQ1MDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwMzIzMDc2MDRFMDAzQ0VEQjcgLyogU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUY0RTA1MjMwQjJFN0MwMDND
RURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTAyMyw3ICs1MDI1LDYgQEAKIAkJN0I0ODNGMUMyNUNEREE5QjAwMTIwNDg2IC8qIE1lc3NhZ2VS
ZWNlaXZlUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJl
Y2VpdmVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjQ4M0YxRDI1Q0RE
QTlCMDAxMjA0ODYgLyogTWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I0ODNGMUUyNUNEREE5QjAwMTIwNDg2IC8qIE1lc3Nh
Z2VSZWNlaXZlUXVldWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3Nh
Z2VSZWNlaXZlUXVldWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNTMwMEU3
MjcxODIxN0EwMDA4MjA4NiAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNjRDMEI2MjU0QzVDMjUwMDA2QjRB
RiAvKiBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhp
Y3NDb250ZXh0R0xJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdC
NzMxMjMxMjVDQzg1MjMwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzEyMzIyNUNDODUyMzAwM0IyNzk2IC8qIFN0
cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05OTQ5LDcgKzk5NTAsNiBAQAogCQk1QzE1N0EwQTI3MTdDOUYxMDBFRDUy
ODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAotCQkJCTUxN0I1Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJCQkJ
NTE3QjVGNjMyNzVBOEQ1QzAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovLAogCQkJCTUxNjBFOTU0
Mjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0LmggKi8sCiAJCQkJNTE2MEU5NTMy
NzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJlcXVlc3QubW0gKi8sCkBAIC05OTYzLDEwICs5
OTYzLDExIEBACiAJCQkJNTE2MEU5NTgyNzRDMEQ4ODAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUu
bW0gKi8sCiAJCQkJNTFGN0JCNzkyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0
aW9uLmggKi8sCiAJCQkJNTFGN0JCN0EyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25u
ZWN0aW9uLm1tICovLAorCQkJCTUxN0I1Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5j
cHAgKi8sCiAJCQkJNTEyQ0Q2OUQyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAq
LywKIAkJCQk1MTJDRDY5RTI3MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywK
LQkJCQk1QzE1N0EwQjI3MTdDQTFDMDBFRDUyODAgLyogV2ViUHVzaERhZW1vbk1haW4ubW0gKi8s
CiAJCQkJNTE3QjVGNzIyNzVFOTYwOTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25NYWluLmggKi8s
CisJCQkJNUMxNTdBMEIyNzE3Q0ExQzAwRUQ1MjgwIC8qIFdlYlB1c2hEYWVtb25NYWluLm1tICov
LAogCQkJKTsKIAkJCXBhdGggPSB3ZWJwdXNoZDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xMDc3MSw2ICsxMDc3Miw3IEBACiAJCQkJRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8q
IEF1eGlsaWFyeVByb2Nlc3NQcm94eS5oICovLAogCQkJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVE
QSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTQ2
QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXIuaCAqLywKKwkJCQk0NjU5RjI1RTI3NUZGNkIyMDBCQkIzNjkgLyogQ2FwdGl2ZVBvcnRh
bE1vZGVPYnNlcnZlci5oICovLAogCQkJCTA3Mjk3RjlDMUMxNzExRUEwMDNGMDczNSAvKiBEZXZp
Y2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAgKi8sCiAJCQkJMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1
IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8sCiAJCQkJQkMyNjUyMTIxMTgyNjA4MTAw
MjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHkuY3BwICovLApAQCAtMTI1OTUsNyArMTI1OTcsNiBA
QAogCQkJCTVDQUZERTQ1MjEzMDg0NjMwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk5NEM2MDQyMjUzQ0E1NDQwMEJERjA2MCAvKiBfV0tJbnNwZWN0b3JDb25m
aWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTRDNjA0NTI1M0NBQkEyMDBCREYwNjAg
LyogX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk1MTdCNUY3RjI3NUU5N0I2MDAyREMyMkQgLyogV2ViUHVzaERhZW1vbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTkxRjQ5MkYyM0E4MTJDNjAwNTQ2NDJCIC8qIF9XS0luc3BlY3RvckRlYnVnZ2Fi
bGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyog
X1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTE5Nzk0MEMyM0RCQzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyNzU5LDYgKzEyNzYwLDcgQEAKIAkJCQkxQTY1NjNFNTFCN0E4QzUwMDA5
Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkRC
MjUzOEY2QjYwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzJFQkJERDI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1MTdCNUY4NTI3NUU5N0I2MDAyREMyMkQgLyogQXBwQnVuZGxlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc0ODc5QjkyMzczQTkwOTAwRjU2NzhFIC8qIEFw
cEtpdFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1
MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBF
MTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEyODA0
LDYgKzEyODA2LDcgQEAKIAkJCQk0MTg5N0VEODFGNDE1RDhBMDAxNkZBNDIgLyogQ2FjaGVTdG9y
YWdlRW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZDOTcg
LyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODk3RURB
MUY0MTVEOEEwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0NjU5RjI1RjI3NUZGNkIyMDBCQkIzNjkgLyogQ2FwdGl2ZVBvcnRhbE1v
ZGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNTc5QTYyNjM0ODM2NzAwRjVDNUU5
IC8qIENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU3QjRCNDYwMjBCNTA0QUMwMEQ0QUQ3OSAvKiBDbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0
aW9uWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEZFMEEzQjI0NjMyQjYwMDAy
NjMxRTEgLyogQ29jb2FDb2xvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk3Miw2ICsxMjk3NSw4
IEBACiAJCQkJMUEzRUVEMEYxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBQjAzN0ExODVBN0M2QTAwRURGNTAxIC8qIE1lc3NhZ2VT
ZW5kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExM0IzREEyMjA3RjM5REUwMDkwQzU4RCAvKiBN
b2JpbGVXaUZpU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUY3QzI3NUU5N0I2MDAyREMy
MkQgLyogTW9ja0FwcEJ1bmRsZUZvclRlc3RpbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0I1
RjgwMjc1RTk3QjYwMDJEQzIyRCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3RENFRENCMjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENFREM3MjE0RjE4MzAwMDE2Qjg0NyAvKiBN
b2NrTG9jYWxDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURDMzIxNEYxMTRD
MDAxNkI4NDcgLyogTW9ja0xvY2FsU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk5OSw3
ICsxMzAwNCw2IEBACiAJCQkJODMxRUVCQkQxQkQ4NUM0MzAwQkI2NEMzIC8qIE5ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMyQUUyNTIxQkUyRThDRDAw
RkFBRTEwIC8qIE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0NDM2RUNGMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdl
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUY3QzI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0Fw
cEJ1bmRsZUZvclRlc3RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTA0MjhCMUJENkI2NkYw
MEE3MTVFNCAvKiBOZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTEzQTE2NEQxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyog
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMzA5NCw2ICsxMzA5OCw4IEBACiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFBy
b2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgy
QzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI3
OUUxOTI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCBpbiBIZWFkZXJzICov
LAorCQkJCTUxN0I1RjgxMjc1RTk3QjYwMDJEQzIyRCAvKiBQdXNoQXBwQnVuZGxlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MTdCNUY3RDI3NUU5N0I2MDAyREMyMkQgLyogUHVzaENsaWVudENvbm5l
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBR
dWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTExMzBBMDBFRDYx
NEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBRUU1NzI1MjQwOUYxNDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMTMxMzQsNyArMTMxNDAsNiBAQAogCQkJCTA3MUJDNTkxMjNDRTFF
QUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ0RDczNzYyM0E5
RUQxODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUY4NTI3NUU5N0I2MDAyREMyMkQgLyogQXBwQnVu
ZGxlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUREMkE2ODUyNTYzM0M2NzAwRkY3QjZG
IC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUREMkE2ODgyNTYzM0M5NTAwRkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdl
c1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5MiAv
KiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzIyNyw3ICsx
MzIzMiw2IEBACiAJCQkJNTdGRDMxODYyMkIzNTE2QzAwOEQwRThCIC8qIFN1YkZyYW1lU09BdXRo
b3JpemF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ4QUMyNEUyNjcxMzVBNzAw
QjI4OTIxIC8qIFN5bmFwc2VTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0NTk5ODQyMjI4MzNF
ODcwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCTUxN0I1RjdEMjc1RTk3QjYwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzE1NzEzNUYyMDQwQTlCMjAwODRGOUNGIC8qIFN5c3RlbVBy
ZXZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzlEMUQ5QTI2OTYwQ0QzMDA4
ODM1NzcgLyogU3lzdGVtU3RhdHVzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEQ5ODVDQjI2
OTEwOTY2MDBCQkNDQkUgLyogVGFwSGFuZGxpbmdSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAt
MTMyNTIsNyArMTMyNTYsNiBAQAogCQkJCTFBNjQyNDVFMTJERTI5QTEwMENBQUUyQyAvKiBVcGRh
dGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzE5QTUyMDFGRDBCMjk1MDBFRUEzMjMgLyog
VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzY4MTg1
NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGODAy
NzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q0OTFCMTMx
RTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTM0NzgsOSArMTM0ODEsMTEgQEAKIAkJCQlCQ0UwRTQyNTE2OEI3QTI4MDA1
N0U2NkEgLyogV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMUUw
OTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90ZWN0aW9uU3Bh
Y2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0I1RjdGMjc1RTk3QjYwMDJEQzIyRCAvKiBXZWJQ
dXNoRGFlbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5ODI3MjFFRkM4MDBGN0Y4RUMg
LyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0I1RjJF
Mjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNENjlBMjcyMUYwQTkwMEY3RjhFQyAvKiBXZWJQdXNo
RGFlbW9uQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUY3MzI3NUU5NjA5MDAy
REMyMkQgLyogV2ViUHVzaERhZW1vbk1haW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MUNDQ0E2
MjMxNDg1QUEwMEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU4NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwQUZGQkExNjU0MjA0ODAwMUJBMDVF
IC8qIFdlYlJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzNzMwLDcgKzEzNzM1
LDYgQEAKIAkJCQlBMTU3OUIyODI1ODQ5MEU1MDA1MjgyMzYgLyogV0tNZWRpYUZvcm1hdFJlYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3QjkyNUM4MjE4NDAwREM2Mzg2IC8qIFdLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjQw
RUU2MUJGNjc3RTMwMEJBODFCRSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKLQkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNBQkRDODYyMkM0MEZERTAwMUVERThFIC8qIFdLTWVz
c2FnZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTFFMTY5NDIxMkI4N0M1MDA5ODVG
RjYgLyogV0tNb2NrRGlzcGxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExQThEREIyMERERDFB
QzAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmggaW4gSGVhZGVycyAqLywKQEAgLTEzNzk2
LDcgKzEzODAwLDYgQEAKIAkJCQlCQzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9h
ZFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyog
V0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3MzAzNzkxQTdD
MkI3NTAwRjhGNDg3IC8qIFdLUGFnZU5hdmlnYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTUxN0I1RjczMjc1RTk2MDkwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFCOEExRUUxODQwMEFDQjAwRTlBRTY5IC8qIFdLUGFnZVBvbGljeUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzczQ0VBRDgxODU5NTUzRjAwOEMzNjNEIC8qIFdL
UGFnZVBvbGljeUNsaWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE3NzQ2NTEx
OEI5RkY0MDA3RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTEw
NCw4ICsxNTEwNyw4IEBACiAJCQkJNTFGN0JCN0QyNzQ1NjQwNDAwQzQ1QTcyIC8qIENvZGVTaWdu
aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxNTc5RkYyNzE3QjZEMjAwRUQ1MjgwIC8qIERh
ZW1vbkRlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxNTc5RkUyNzE3QjZDMTAwRUQ1
MjgwIC8qIERhZW1vbkVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGNzgyNzVF
OTc5NTAwMkRDMjJEIC8qIHdlYnB1c2hkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMTU3OUZC
MjcxN0FGNTAwMEVENTI4MCAvKiBEYWVtb25VdGlsaXRpZXMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQk1MTdCNUY3ODI3NUU5Nzk1MDAyREMyMkQgLyogd2VicHVzaGQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0xNTE0OSw2ICsxNTE1Miw3IEBACiAJCQkJOTlFNzE4OUEyMUY3OUQ5RTAwNTVFOTc1IC8q
IF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4NDIx
MkI2QUIxMDBGNDkzRkQgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTcyRUJCREEyNTM4RjZCNDAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsu
bW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTdCNUY3RTI3NUU5N0I2MDAyREMyMkQgLyogQXBwQnVu
ZGxlUmVxdWVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzdCMjEyQjZBNzEwMEY0OTNG
RCAvKiBBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREVCMUQyRTIxMjc0
NzM2MDA5MzM5MDYgLyogQXJndW1lbnRDb2RlcnNDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDkyQTc3QzIxMkI2QTcxMDBGNDkzRkQgLyogQXR0YWNobWVudC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE1MTU2LDcgKzE1MTYwLDYgQEAKIAkJCQlDRDQ1NzBEMzI0NDExM0I1MDBBM0RDRUIgLyog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MTJGNThBMjEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRp
b25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3RkFCQjEz
MjU4MTgyN0MwMDU5REM5NSAvKiBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1bmRs
ZVJlcXVlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk5OTU1QTZGNDFDNzk4NkRDMDBFQjZBOTMg
LyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
OTI0OUFENTFGMUYxRTU2MDBCNjJGQkIgLyogQXV0b21hdGlvbkZyb250ZW5kRGlzcGF0Y2hlcnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk1NUE2RjYxQzc5ODZFMzAwRUI2QTkzIC8qIEF1dG9t
YXRpb25Qcm90b2NvbE9iamVjdHMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTE5NSw2ICsxNTE5
OCw4IEBACiAJCQkJN0I0ODNGMjEyNUNEREE5QzAwMTIwNDg2IC8qIE1lc3NhZ2VSZWNlaXZlUXVl
dWVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODEyMTJCNkE3MTAwRjQ5M0ZEIC8q
IE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4MjIxMkI2
QTcxMDBGNDkzRkQgLyogTWVzc2FnZVNlbmRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTdC
NUY4NDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZUZvclRlc3RpbmcubW0gaW4gU291
cmNlcyAqLywKKwkJCQk1MTdCNUY4NjI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZVJl
Z2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3N0EyMTJCNkE2MTAwRjQ5M0ZEIC8q
IE1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0I4MjY0NTIzMDRGMTQwMDBCNzJFQjAg
LyogTmVhckZpZWxkU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMUMxQjMwRjI1NDBG
NTBEMDBEOTEwMEIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNYWMubW0gaW4gU291
cmNlcyAqLywKQEAgLTE1MjE5LDYgKzE1MjI0LDggQEAKIAkJCQkyRDkxMzQ0RDIxMkNGOUYwMDAx
MjhBRkQgLyogUGx1Z2luVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMTVDQkIzNzIzRjM3
RUNCMDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ1NEMzMUIyMTJGNERBNjAwNDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1MTdCNUY4MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBp
biBTb3VyY2VzICovLAorCQkJCTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50
Q29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEMyMjdGMjQ1MTEzMEEwMEVENjE0
RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTFBMEMyMjVFMjQzNTc1Q0QwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIubW0g
aW4gU291cmNlcyAqLywKIAkJCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTIzOCw3ICsxNTI0
NSw2IEBACiAJCQkJQ0RFNTU1MzUyNDA2RUI4QzAwOEEzRERCIC8qIFJlbW90ZUxlZ2FjeUNETVNl
c3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFRUY0
NjI1NzlDMjYxMDA2NTYzQkIgLyogUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9y
eVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTRCMjM5
Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTdCNUY3QTI3NUU5N0E0MDAyREMyMkQgLyog
V2ViUHVzaERhZW1vbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MDE3ODlFMjNCRTlDRkMwMDVG
MEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDcxQkM1OEYyM0NFMUVBQTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUQ0RDczNzAyM0E5RTU0NzAw
NzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMTUyNzksOCArMTUyODUsNiBAQAogCQkJCTJEMTFCNzU1MjEyNkEy
ODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMy1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
MTFCNzU2MjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDExQjc1NzIxMjZBMjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQtbW0ubW0g
aW4gU291cmNlcyAqLywKLQkJCQk1MTdCNUY4NDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1
bmRsZUZvclRlc3RpbmcubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MTdCNUY4NjI3NUU5N0I2MDAy
REMyMkQgLyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQx
MUI3NTgyMTI2QTI4MjAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEMTFCNzU5MjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNS1tbS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTJEMTFCNzVBMjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291
cmNlNS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1MzYzLDcgKzE1MzY3LDYgQEAKIAkJCQkyRDEx
QjdBNzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ0LW1tLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQxMUI3QTgyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U0NC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDExQjdBOTIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNv
dXJjZTQ1LW1tLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3QjVGODIyNzVFOTdCNjAwMkRDMjJE
IC8qIFB1c2hBcHBCdW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjdBQTIxMjZBMjgz
MDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFC
N0FCMjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNDYtbW0ubW0gaW4gU291cmNlcyAq
LywKIAkJCQkyRDExQjdBQzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQ2LmNwcCBp
biBTb3VyY2VzICovLApAQCAtMTUzOTQsNyArMTUzOTcsNiBAQAogCQkJCTJEMTFCN0M1MjEyNkEy
ODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNTktbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDExQjdDNjIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTU5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEMTFCN0M3MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNjAtbW0u
bW0gaW4gU291cmNlcyAqLywKLQkJCQk1MTdCNUY3OTI3NUU5N0ExMDAyREMyMkQgLyogV2ViUHVz
aERhZW1vbk1haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjdDODIxMjZBMjgzMDA2Rjg4
NzggLyogVW5pZmllZFNvdXJjZTYwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFBMjEy
RjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNjEtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyRDExQjdDQTIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTYxLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTU0MDIsNyArMTU0MDQsNiBAQAogCQkJCTJEMTFCN0NCMjEyNkEyODMwMDZG
ODg3OCAvKiBVbmlmaWVkU291cmNlNjIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMzMDgy
MTJGM0IzMzAwNDlDMTc0IC8qIFVuaWZpZWRTb3VyY2U2My1tbS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTJEMTFCN0NDMjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNjMuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTE3QjVGN0IyNzVFOTdBOTAwMkRDMjJEIC8qIFB1c2hDbGllbnRDb25u
ZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMzMEMyMTJGM0IzMzAwNDlDMTc0IC8q
IFVuaWZpZWRTb3VyY2U2NC1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCN0NEMjEyNkEy
ODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNjQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1
NEMzMDcyMTJGM0IzMzAwNDlDMTc0IC8qIFVuaWZpZWRTb3VyY2U2NS1tbS5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtMTU1MzcsNiArMTU1MzgsOCBAQAogCQkJCUJDMzA2NkJFMTI1QTQ0MjEwMEU3MTI3
OCAvKiBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
RTREMjI3MUE0OTE2QzIwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbE1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VFN0FEMDEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxN0I1RjdB
Mjc1RTk3QTQwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTE3QjVGNzkyNzVFOTdBMTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25NYWluLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUw
MEYzMjgxRiAvKiBXZWJSVENNb25pdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhM2RmZDNkMGVjMTE4NDA2NWU4OGNkNzAzMmYyNjE5MGE3
YTZiNGFlLi5hNzJlNzZhZjgwOWVkZDY3Njk5MmUwOTg2NGJhZTVmNzkxZjg0Y2IwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjEtMTItMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBNYWtlIEtWTyB3b3JrIGZvciBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1v
ZGVFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM5NTQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAg
ICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW0Nh
cHRpdmVQb3J0YWxNb2RlS1ZPIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdl
OmNvbnRleHQ6XSk6CisKIDIwMjEtMTItMDcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGZpbmQtaW4t
cGFnZSBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDhkOGE0YTc3OWYx
MWVkMDhmMTliYjAzNGQ0NzViNDBkMmZmYzA4YjMuLmM1MzM4MGNiMTI5ZjNiNDMzYjM5MGEzZmRl
OGQ3N2FkZGY2MmQyOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtODks
NiArODksMjkgQEAgc3RhdGljIGJvb2wgZGlkQ2xvc2VXaW5kb3c7CiBzdGF0aWMgUmV0YWluUHRy
PE5TVVJMPiBjbGllbnRSZWRpcmVjdFNvdXJjZVVSTDsKIHN0YXRpYyBSZXRhaW5QdHI8TlNVUkw+
IGNsaWVudFJlZGlyZWN0RGVzdGluYXRpb25VUkw7CiAKK3N0YXRpYyBib29sIGRpZENoYW5nZUNh
cHRpdmVQb3J0YWxNb2RlOworc3RhdGljIGJvb2wgY2FwdGl2ZVBvcnRhbE1vZGVCZWZvcmVDaGFu
Z2U7CitzdGF0aWMgYm9vbCBjYXB0aXZlUG9ydGFsTW9kZUFmdGVyQ2hhbmdlOworCitAaW50ZXJm
YWNlIENhcHRpdmVQb3J0YWxNb2RlS1ZPIDogTlNPYmplY3QgeworQHB1YmxpYworfQorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gQ2FwdGl2ZVBvcnRhbE1vZGVLVk8KKworLSAodm9pZClvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBj
aGFuZ2U6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKiljaGFuZ2UgY29udGV4dDoodm9p
ZCAqKWNvbnRleHQKK3sKKyAgICBBU1NFUlQoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiX2Nh
cHRpdmVQb3J0YWxNb2RlRW5hYmxlZCJdKTsKKyAgICBBU1NFUlQoW1tvYmplY3QgY2xhc3NdIGlz
RXF1YWw6W1dLV2VicGFnZVByZWZlcmVuY2VzIGNsYXNzXV0pOworCisgICAgY2FwdGl2ZVBvcnRh
bE1vZGVCZWZvcmVDaGFuZ2UgPSBbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5n
ZU9sZEtleV0gYm9vbFZhbHVlXTsKKyAgICBjYXB0aXZlUG9ydGFsTW9kZUFmdGVyQ2hhbmdlID0g
W1tjaGFuZ2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldIGJvb2xWYWx1ZV07
CisgICAgZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGUgPSB0cnVlOworfQorCitAZW5kCisKIEBp
bnRlcmZhY2UgUFNPTk1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhh
bmRsZXI+CiBAZW5kCiAKQEAgLTc4MTksNiArNzg0Miw3MCBAQCBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nVG9DYXB0aXZlUG9ydGFsTW9kZSkKICAgICBjaGVja1NldHRpbmdzQ29udHJvbGxl
ZEJ5Q2FwdGl2ZVBvcnRhbE1vZGUod2ViVmlldy5nZXQoKSwgU2hvdWxkQmVFbmFibGVkOjpObyk7
CiB9CiAKK1RFU1QoUHJvY2Vzc1N3YXAsIENhcHRpdmVQb3J0YWxNb2RlU3lzdGVtU2V0dGluZ0No
YW5nZSkKK3sKKyAgICBhdXRvIGt2byA9IGFkb3B0TlMoW0NhcHRpdmVQb3J0YWxNb2RlS1ZPIG5l
d10pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgRVhQRUNUX0ZBTFNFKHdlYlZpZXdDb25maWd1cmF0
aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuX2NhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZCk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJl
ZmVyZW5jZXMgYWRkT2JzZXJ2ZXI6a3ZvLmdldCgpIGZvcktleVBhdGg6QCJfY2FwdGl2ZVBvcnRh
bE1vZGVFbmFibGVkIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgfCBOU0tl
eVZhbHVlT2JzZXJ2aW5nT3B0aW9uT2xkIGNvbnRleHQ6bmlsXTsKKworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0p
OworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5l
d10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07
CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5nZXQoKSkpOworCisgICAg
X19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdl
dCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKikg
eworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07CisKKyAgICBOU1VS
TCAqdXJsID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp1cmxdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdh
dGlvbik7CisKKyAgICBwaWRfdCBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJs
ZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgRVhQRUNUX0ZBTFNFKGRpZENoYW5nZUNhcHRpdmVQ
b3J0YWxNb2RlKTsKKworICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIC8vIE5v
dyBjaGFuZ2UgdGhlIGdsb2JhbCBzZXR0aW5nLgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRDYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmc6WUVTXTsKKworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGUpOworICAgIEVY
UEVDVF9GQUxTRShjYXB0aXZlUG9ydGFsTW9kZUJlZm9yZUNoYW5nZSk7CisgICAgRVhQRUNUX1RS
VUUoY2FwdGl2ZVBvcnRhbE1vZGVBZnRlckNoYW5nZSk7CisgICAgRVhQRUNUX1RSVUUod2ViVmll
d0NvbmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBv
cnRhbE1vZGVFbmFibGVkKTsKKworICAgIC8vIFRoaXMgc2hvdWxkIGNhdXNlIHRoZSBXZWJWaWV3
IHRvIHJlbG9hZCB3aXRoIGEgV2ViUHJvY2VzcyBpbiBjYXB0aXZlIHBvcnRhbCBtb2RlLgorICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIEVY
UEVDVF9GQUxTRShpc0pJVEVuYWJsZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgcGlkX3QgcGlk
MiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEs
IHBpZDIpOworCisgICAgZGlkQ2hhbmdlQ2FwdGl2ZVBvcnRhbE1vZGUgPSBmYWxzZTsKKyAgICBm
aW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICBbV0tQcm9jZXNzUG9vbCBfY2xlYXJDYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3RpbmddOworCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkaWRDaGFuZ2VDYXB0aXZlUG9ydGFsTW9kZSk7CisgICAgRVhQRUNU
X1RSVUUoY2FwdGl2ZVBvcnRhbE1vZGVCZWZvcmVDaGFuZ2UpOworICAgIEVYUEVDVF9GQUxTRShj
YXB0aXZlUG9ydGFsTW9kZUFmdGVyQ2hhbmdlKTsKKyAgICBFWFBFQ1RfRkFMU0Uod2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCkuZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRh
bE1vZGVFbmFibGVkKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRO
YXZpZ2F0aW9uKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgp
KSk7CisKKyAgICBwaWRfdCBwaWQzID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
KyAgICBFWFBFQ1RfTkUocGlkMiwgcGlkMyk7Cit9CisKICNpZiBQTEFURk9STShJT1MpCiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIENhbm5vdERpc2FibGVDYXB0aXZlUG9ydGFsTW9kZVdpdGhvdXRCcm93
c2VyRW50aXRsZW1lbnQpCkBAIC03OTQ2LDQgKzgwMzMsMTg5IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEJ5RGVmYXVsdFRoZW5PcHRPdXQpCiAgICAgRVhQRUNU
X0VRKHBpZDIsIFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKIH0KIAorVEVTVChQ
cm9jZXNzU3dhcCwgQ2FwdGl2ZVBvcnRhbE1vZGVTeXN0ZW1TZXR0aW5nQ2hhbmdlRG9lc05vdFJl
bG9hZFZpZXdzV2hlbk1vZGVJc1NldEV4cGxpY2l0bHkxKQoreworICAgIC8vIENhcHRpdmUgcG9y
dGFsIG1vZGUgaXMgZGlzYWJsZWQgZ2xvYmFsbHkgYW5kIGV4cGxpY2l0bHkgb3B0ZWQgb3V0IHZp
YSBkZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzLgorCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgRVhQRUNU
X0ZBTFNFKHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5j
ZXMuX2NhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZCk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
LmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZDpOT107IC8vIEV4cGxpY2l0bHkgb3B0IG91dCB2aWEgZGVmYXVsdCBXS1dlYnBhZ2VQcmVm
ZXJlbmNlcy4KKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3
ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJs
ZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlv
biA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdL
V2ViVmlldyAqLCBXS05hdmlnYXRpb24gKikgeworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24g
PSB0cnVlOworICAgIH07CisKKyAgICBOU1VSTCAqdXJsID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxdXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBwaWRfdCBwaWQxID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisK
KyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5nZXQoKSkpOworCisgICAgZmlu
aXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgLy8gTm93IGNoYW5nZSB0aGUgZ2xvYmFsIHNl
dHRpbmcuCisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEds
b2JhbGx5Rm9yVGVzdGluZzpZRVNdOworCisgICAgLy8gVGhpcyBzaG91bGQgbm90IHJlbG9hZCB0
aGUgd2ViIHZpZXcgc2luY2UgdGhlIHZpZXcgaGFzIGV4cGxpY2l0bHkgb3B0ZWQgb3V0IG9mIGNh
cHRpdmUgcG9ydGFsIG1vZGUuCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsK
KyAgICBFWFBFQ1RfRkFMU0UoZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIHBpZF90IHBpZDIg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9FUShwaWQxLCBw
aWQyKTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3ZWJWaWV3LmdldCgpKSk7CisK
KyAgICBbV0tQcm9jZXNzUG9vbCBfY2xlYXJDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxs
eUZvclRlc3RpbmddOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBDYXB0aXZlUG9ydGFsTW9kZVN5
c3RlbVNldHRpbmdDaGFuZ2VEb2VzTm90UmVsb2FkVmlld3NXaGVuTW9kZUlzU2V0RXhwbGljaXRs
eTIpCit7CisgICAgLy8gQ2FwdGl2ZSBwb3J0YWwgbW9kZSBpcyBlbmFibGVkIGdsb2JhbGx5IGJ1
dCBleHBsaWNpdGx5IG9wdGVkIG91dCB2aWEgZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcy4KKyAg
ICBbV0tQcm9jZXNzUG9vbCBfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JU
ZXN0aW5nOllFU107CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICBFWFBFQ1RfVFJVRSh3ZWJWaWV3Q29u
ZmlndXJhdGlvbi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzLl9jYXB0aXZlUG9ydGFs
TW9kZUVuYWJsZWQpOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5kZWZhdWx0V2Vi
cGFnZVByZWZlcmVuY2VzIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQ6Tk9dOyAvLyBFeHBs
aWNpdGx5IG9wdCBvdXQgdmlhIGRlZmF1bHQgV0tXZWJwYWdlUHJlZmVyZW5jZXMuCisKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdh
dGUuZ2V0KCldOworCisgICAgRVhQRUNUX1RSVUUoaXNKSVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkp
KTsKKworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICBk
ZWxlZ2F0ZS5nZXQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZp
Z2F0aW9uICopIHsKKyAgICAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gdHJ1ZTsKKyAgICB9Owor
CisgICAgTlNVUkwgKnVybCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6dXJsXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5p
c2hlZE5hdmlnYXRpb24pOworCisgICAgcGlkX3QgcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIDApOworCisgICAgRVhQRUNUX1RSVUUo
aXNKSVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkpKTsKKworICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9
IGZhbHNlOworICAgIC8vIE5vdyBjaGFuZ2UgdGhlIGdsb2JhbCBzZXR0aW5nLgorICAgIFtXS1By
b2Nlc3NQb29sIF9jbGVhckNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGlu
Z107CisKKyAgICAvLyBUaGlzIHNob3VsZCBub3QgcmVsb2FkIHRoZSB3ZWIgdmlldyBzaW5jZSB0
aGUgdmlldyBoYXMgZXhwbGljaXRseSBvcHRlZCBvdXQgb2YgY2FwdGl2ZSBwb3J0YWwgbW9kZS4K
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjUpOworICAgIEVYUEVDVF9GQUxTRShm
aW5pc2hlZE5hdmlnYXRpb24pOworCisgICAgcGlkX3QgcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworCisgICAgRVhQRUNU
X1RSVUUoaXNKSVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkpKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgQ2FwdGl2ZVBvcnRhbE1vZGVTeXN0ZW1TZXR0aW5nQ2hhbmdlRG9lc05vdFJlbG9hZFZpZXdz
V2hlbk1vZGVJc1NldEV4cGxpY2l0bHkzKQoreworICAgIC8vIENhcHRpdmUgcG9ydGFsIG1vZGUg
aXMgZGlzYWJsZWQgZ2xvYmFsbHkgYW5kIGV4cGxpY2l0bHkgb3B0ZWQgb3V0IGZvciB0aGUgbG9h
ZC4KKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIG5ld10pOworICAgIEVYUEVDVF9GQUxTRSh3ZWJWaWV3Q29uZmlndXJhdGlv
bi5nZXQoKS5kZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzLl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJs
ZWQpOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIEVYUEVDVF9UUlVFKGlzSklURW5hYmxlZCh3
ZWJWaWV3LmdldCgpKSk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0g
ZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJW
aWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRy
dWU7CisgICAgfTsKKworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0aW9uLCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMsIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxl
cikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgewor
ICAgICAgICBFWFBFQ1RfRkFMU0UocHJlZmVyZW5jZXMuX2NhcHRpdmVQb3J0YWxNb2RlRW5hYmxl
ZCk7CisgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0Q2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkOk5P
XTsgLy8gRXhwbGljaXRseSBPcHQgb3V0IG9mIGNhcHRpdmUgcG9ydGFsIG1vZGUgZm9yIHRoaXMg
bG9hZC4KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
QWxsb3csIHByZWZlcmVuY2VzKTsKKyAgICB9OworCisgICAgTlNVUkwgKnVybCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsXV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworCisgICAgcGlk
X3QgcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05F
KHBpZDEsIDApOworCisgICAgRVhQRUNUX1RSVUUoaXNKSVRFbmFibGVkKHdlYlZpZXcuZ2V0KCkp
KTsKKworICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIC8vIE5vdyBjaGFuZ2Ug
dGhlIGdsb2JhbCBzZXR0aW5nLgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRDYXB0aXZlUG9ydGFs
TW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmc6WUVTXTsKKworICAgIC8vIFRoaXMgc2hvdWxk
IG5vdCByZWxvYWQgdGhlIHdlYiB2aWV3IHNpbmNlIHRoZSB2aWV3IGhhcyBleHBsaWNpdGx5IG9w
dGVkIG91dCBvZiBjYXB0aXZlIHBvcnRhbCBtb2RlLgorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnNsZWVwKDAuNSk7CisgICAgRVhQRUNUX0ZBTFNFKGZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAg
ICBwaWRfdCBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBF
Q1RfRVEocGlkMSwgcGlkMik7CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmll
dy5nZXQoKSkpOworCisgICAgW1dLUHJvY2Vzc1Bvb2wgX2NsZWFyQ2FwdGl2ZVBvcnRhbE1vZGVF
bmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nXTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgQ2FwdGl2
ZVBvcnRhbE1vZGVTeXN0ZW1TZXR0aW5nQ2hhbmdlRG9lc05vdFJlbG9hZFZpZXdzV2hlbk1vZGVJ
c1NldEV4cGxpY2l0bHk0KQoreworICAgIC8vIENhcHRpdmUgcG9ydGFsIG1vZGUgaXMgZW5hYmxl
ZCBnbG9iYWxseSBidXQgZXhwbGljaXRseSBvcHRlZCBvdXQgZm9yIHRoZSBsb2FkLgorICAgIFtX
S1Byb2Nlc3NQb29sIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rp
bmc6WUVTXTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIEVYUEVDVF9UUlVFKHdlYlZpZXdDb25maWd1
cmF0aW9uLmdldCgpLmRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXMuX2NhcHRpdmVQb3J0YWxNb2Rl
RW5hYmxlZCk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0
aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgRVhQRUNUX0ZBTFNFKGlzSklURW5h
YmxlZCh3ZWJWaWV3LmdldCgpKSk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0
aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4o
V0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlv
biA9IHRydWU7CisgICAgfTsKKworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0
aW9uLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMsIHZvaWQgKF5jb21wbGV0aW9u
SGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KSkgeworICAgICAgICBFWFBFQ1RfVFJVRShwcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVF
bmFibGVkKTsKKyAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRDYXB0aXZlUG9ydGFsTW9kZUVuYWJs
ZWQ6Tk9dOyAvLyBFeHBsaWNpdGx5IE9wdCBvdXQgb2YgY2FwdGl2ZSBwb3J0YWwgbW9kZSBmb3Ig
dGhpcyBsb2FkLgorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOworICAgIH07CisKKyAgICBOU1VSTCAqdXJsID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxdXTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAg
ICBwaWRfdCBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBF
Q1RfTkUocGlkMSwgMCk7CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2ViVmlldy5n
ZXQoKSkpOworCisgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgLy8gTm93IGNo
YW5nZSB0aGUgZ2xvYmFsIHNldHRpbmcuCisgICAgW1dLUHJvY2Vzc1Bvb2wgX2NsZWFyQ2FwdGl2
ZVBvcnRhbE1vZGVFbmFibGVkR2xvYmFsbHlGb3JUZXN0aW5nXTsKKworICAgIC8vIFRoaXMgc2hv
dWxkIG5vdCByZWxvYWQgdGhlIHdlYiB2aWV3IHNpbmNlIHRoZSB2aWV3IGhhcyBleHBsaWNpdGx5
IG9wdGVkIG91dCBvZiBjYXB0aXZlIHBvcnRhbCBtb2RlLgorICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnNsZWVwKDAuNSk7CisgICAgRVhQRUNUX0ZBTFNFKGZpbmlzaGVkTmF2aWdhdGlvbik7CisK
KyAgICBwaWRfdCBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBF
WFBFQ1RfRVEocGlkMSwgcGlkMik7CisKKyAgICBFWFBFQ1RfVFJVRShpc0pJVEVuYWJsZWQod2Vi
Vmlldy5nZXQoKSkpOworCit9CisKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>