<?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>213793</bug_id>
          
          <creation_ts>2020-06-30 07:01:32 -0700</creation_ts>
          <short_desc>REGRESSION (r207558): [Mac] Context clicks on links sometimes result in navigations</short_desc>
          <delta_ts>2020-07-08 10:44:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163292</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ggaren</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>opendarwin</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>1667558</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-30 07:01:32 -0700</bug_when>
    <thetext>[Mac] Context clicks on links sometimes result in navigations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667559</commentid>
    <comment_count>1</comment_count>
      <attachid>403196</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-30 07:01:51 -0700</bug_when>
    <thetext>Created attachment 403196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668487</commentid>
    <comment_count>2</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-07-02 22:19:40 -0700</bug_when>
    <thetext>rdar://problem/64294015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668498</commentid>
    <comment_count>3</comment_count>
      <attachid>403443</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-07-03 00:13:50 -0700</bug_when>
    <thetext>Created attachment 403443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668499</commentid>
    <comment_count>4</comment_count>
      <attachid>403444</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-07-03 00:20:21 -0700</bug_when>
    <thetext>Created attachment 403444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669667</commentid>
    <comment_count>5</comment_count>
      <attachid>403759</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-07-07 22:46:23 -0700</bug_when>
    <thetext>Created attachment 403759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669671</commentid>
    <comment_count>6</comment_count>
      <attachid>403759</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-07 23:29:35 -0700</bug_when>
    <thetext>Comment on attachment 403759
Patch

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

Delightful!

&gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:62
&gt; +      &lt;CommandLineArguments&gt;
&gt; +         &lt;CommandLineArgument
&gt; +            argument = &quot;--gtest_filter=&amp;quot;WebKit.ContextMenuControlClick&amp;quot;&quot;
&gt; +            isEnabled = &quot;YES&quot;&gt;
&gt; +         &lt;/CommandLineArgument&gt;
&gt; +      &lt;/CommandLineArguments&gt;
&gt; +      &lt;AdditionalOptions&gt;
&gt; +      &lt;/AdditionalOptions&gt;

Please revert this part!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669775</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-07-08 09:33:08 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #6)
&gt; Comment on attachment 403759 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403759&amp;action=review
&gt; 
&gt; Delightful!

☺️

&gt; 
&gt; &gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:62
&gt; &gt; +      &lt;CommandLineArguments&gt;
&gt; &gt; +         &lt;CommandLineArgument
&gt; &gt; +            argument = &quot;--gtest_filter=&amp;quot;WebKit.ContextMenuControlClick&amp;quot;&quot;
&gt; &gt; +            isEnabled = &quot;YES&quot;&gt;
&gt; &gt; +         &lt;/CommandLineArgument&gt;
&gt; &gt; +      &lt;/CommandLineArguments&gt;
&gt; &gt; +      &lt;AdditionalOptions&gt;
&gt; &gt; +      &lt;/AdditionalOptions&gt;
&gt; 
&gt; Please revert this part!

😬</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669787</commentid>
    <comment_count>8</comment_count>
      <attachid>403793</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-07-08 10:05:52 -0700</bug_when>
    <thetext>Created attachment 403793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669792</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-08 10:44:01 -0700</bug_when>
    <thetext>Committed r264113: &lt;https://trac.webkit.org/changeset/264113&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403793.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403196</attachid>
            <date>2020-06-30 07:01:51 -0700</date>
            <delta_ts>2020-07-03 00:13:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213793-20200630070150.patch</filename>
            <type>text/plain</type>
            <size>10562</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjcwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTg0ZWI2ZTg0MjMzYjNlZTEwYmUzZjJjMjMxOTZkYjA3
MWUyNzhiOC4uNGQ1YzA1NmRlNDAzNGY5Y2M0NGJiODMzNjU3ZDEzY2IzMzk4N2Y2ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIwLTA2LTMwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBbTWFjXSBDb250ZXh0IGNsaWNrcyBvbiBsaW5rcyBzb21ldGltZXMgcmVzdWx0IGluIG5hdmln
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTM3OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUFzeW5j
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA2LTI5
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBydW4tamF2
YXNjcmlwdGNvcmUtdGVzdHM6IFN1cHBvcnQgQXBwbGUgU2lsaWNvbiBydW5uaW5nIHg4NiBwcm9j
ZXNzZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDY0MTEzMDc0NmJlOGQzYzRkMmViZGFm
ZGVkOTRjMTczMTVhM2M5Ny4uZDkxOWRmODlhNWRmZDY3MDY0YmM4MTEyMDcxYTRmNDI5MTIzN2Fm
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg2Nyw2ICs4NjcsNyBAQAogCQlBMTc5OTE4
QjFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTc5OTE4OTFFMUNBMjQxMDBBNTA1RUQg
LyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgKi87IH07CiAJCUExN0VBQzU1MjA4MzA1QTAwMDg0QjQx
QiAvKiBmaW5kLnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTdFQUM1NDIwODMwNTZFMDA4NEI0MUIgLyogZmluZC5wZGYgKi87IH07CiAJ
CUExODBDMEZBMUVFNjdERjAwMDQ2OEY0NyAvKiBSdW5PcGVuUGFuZWwubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTgwQzBGOTFFRTY3REYwMDA0NjhG
NDcgLyogUnVuT3BlblBhbmVsLm1tICovOyB9OworCQlBMUMxNDJDMjI0QUE3QjJFMDA0NDQyMDcg
LyogQ29udGV4dE1lbnVBc3luYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExQzE0MkMxMjRBQTdCMkUwMDQ0NDIwNyAvKiBDb250ZXh0TWVudUFzeW5j
Lm1tICovOyB9OwogCQlBMUM0RkI3MzFCQUNEMUNBMDAzNzQyRDAgLyogcGFnZXMucGFnZXMgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDNEZC
NzIxQkFDRDFCNzAwMzc0MkQwIC8qIHBhZ2VzLnBhZ2VzICovOyB9OwogCQlBMURGNzQzMjFDNDFC
NjU4MDBBMkY0RDAgLyogQWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERjc0MzAxQzQxQjY1ODAwQTJG
NEQwIC8qIEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcy5tbSAqLzsgfTsKIAkJQTFFQzExODgx
RjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFQzExODcxRjQyNTQxMjAwRDAxNDZFIC8q
IFByZXZpZXdDb252ZXJ0ZXIuY3BwICovOyB9OwpAQCAtMjQ0Myw2ICsyNDQ0LDcgQEAKIAkJQTE4
QUE4Q0MxQzNGQTIxODAwOUIyQjk3IC8qIENvbnRlbnRGaWx0ZXJpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEZpbHRlcmluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUE0RkU1RDE4REQzREI3MDBCNUVBOEEgLyogRG93bmxvYWQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEb3dubG9hZC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFCODlCOTkyMjFFMDI5RjAwRUI0Q0VBIC8qIFNES1Zh
cmlhbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU0RLVmFyaWFu
dC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFDMTQyQzEyNEFBN0Iy
RTAwNDQ0MjA3IC8qIENvbnRleHRNZW51QXN5bmMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBD
b250ZXh0TWVudUFzeW5jLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUM0RkI2
QzFCQUNDRTUwMDAzNzQyRDAgLyogUXVpY2tMb29rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUXVpY2tMb29rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMUM0RkI3MjFCQUNEMUI3MDAzNzQyRDAgLyogcGFnZXMucGFnZXMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gcGFnZXMu
cGFnZXM7IHBhdGggPSBpb3MvcGFnZXMucGFnZXM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKIAkJQTFERjc0MzAxQzQxQjY1ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRhdGVkVVJMU2No
ZW1lcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFsd2F5c1Jl
dmFsaWRhdGVkVVJMU2NoZW1lcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0
MTMsNiArNDQxNSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTlCRDQyMzk5MUUwNEJEOTgwMDIwMDM5NSAvKiBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9z
ZWRSYW5nZVdpdGhJbWFnZS5tbSAqLywKKwkJCQlBMUMxNDJDMTI0QUE3QjJFMDA0NDQyMDcgLyog
Q29udGV4dE1lbnVBc3luYy5tbSAqLywKIAkJCQk4MzQ5RDNDMTFEQjk2RERBMDA0QTlGNjUgLyog
Q29udGV4dE1lbnVEb3dubG9hZC5tbSAqLywKIAkJCQlDRDBCRDBBNzFGNzk5N0MyMDAxQUIyQ0Yg
LyogQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8uaHRtbCAqLywKIAkJCQlDRDBCRDBBNTFGNzk5MjIw
MDAxQUIyQ0YgLyogQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0gKi8sCkBAIC00ODc1LDcgKzQ4
NzgsNiBAQAogCQkJCTA3MTFERjUyMjI2QTk1RkMwMDNERDJGNyAvKiBBVkZvdW5kYXRpb25Tb2Z0
TGlua1Rlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VCNTFBNDExQTdFMDA0NDdDNEMg
LyogQmFja0ZvcndhcmRMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM3RkVCMjAyMDdDMEYy
RTAwRDIzMjc4IC8qIEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovLAotCQkJCUNEMDM3
MEUzMjRBNDREOTYwMEJBM0NBRSAvKiBNZWRpYUxvYWRpbmcubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlDMTVDQkIzMDIzRjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24u
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDMTY5MkRDQTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVy
eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NEI3QTYwMURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5k
bGVFZGl0aW5nRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKQEAgLTQ5MDksNiArNDkxMSw3IEBA
CiAJCQkJQTE0RkM1ODgxQjg5OTFCRjAwRDEwN0VCIC8qIENvbnRlbnRGaWx0ZXJpbmcubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1Q0ExREVEOTFGNzRBOTFBMDBFNzFCRDMgLyogQ29udGVudFJ1bGVM
aXN0Tm90aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDRDRjMxRkQyNDk5NDFFODAw
OUNCNkNCIC8qIENvbnRleHRNZW51QWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExQzE0
MkMyMjRBQTdCMkUwMDQ0NDIwNyAvKiBDb250ZXh0TWVudUFzeW5jLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFQjgxQTQxMUE3RTAwNDQ3QzRDIC8qIENvbnRleHRNZW51Q2FuQ29weVVSTC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTM3RkI3Mjk3MURCMkU4MkYwMEU0MUJFNCAvKiBDb250ZXh0
TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODM0OUQzQzIx
REI5NkRERTAwNEE5RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0gaW4gU291cmNlcyAqLywK
QEAgLTUwOTcsNiArNTEwMCw3IEBACiAJCQkJMDc2RTUwN0YxRjQ1MTNENjAwNkU5RjVBIC8qIExv
Z2dpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UxODY2NDkxRjcyRThGMTAwQTBDQUI2IC8q
IE1hcmtlZFRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdDQzdERkUyMjY2MzMwOTAwRTM5
MTgxIC8qIE1lZGlhQnVmZmVyaW5nUG9saWN5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QwMzcw
RTMyNEE0NEQ5NjAwQkEzQ0FFIC8qIE1lZGlhTG9hZGluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUNEQTMxNTk4MUVENTM2NTEwMDlGNjBEMyAvKiBNZWRpYVBsYXliYWNrU2xlZXBBc3NlcnRpb24u
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDREM5NDQyRTFFRjFGQzA4MDA1OUMzQzQgLyogTWVkaWFT
dHJlYW1UcmFja0RldGFjaGVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFCRTlFNjYyMzc2MDg5
RjAwQjRFMTE3IC8qIE1lZGlhVHlwZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51QXN5bmMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVBc3luYy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mOGZiMGZiMjk5MThhYjI0NGU2NDA0NmI2ZjhkY2JlN2RjZmJiYWI0Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRl
eHRNZW51QXN5bmMubW0KQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIlRlc3RDb2NvYS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisj
aW1wb3J0ICJPZmZzY3JlZW5XaW5kb3cuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPENhcmJvbi9DYXJib24u
aD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdCwgQ29udGV4dE1l
bnVBc3luYykKK3sKKyAgICBhdXRvIGZyYW1lID0gQ0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCk7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6ZnJhbWVdKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8IURPQ1RZUEUgaHRtbD48YSBocmVmPSdodHRwczovL3d3dy5hcHBsZS5jb20nPmxpbms8
L2E+Il07CisKKyAgICBhdXRvIHdpbmRvdyA9IGFkb3B0TlMoW1tPZmZzY3JlZW5XaW5kb3cgYWxs
b2NdIGluaXRXaXRoU2l6ZTpmcmFtZS5zaXplXSk7CisgICAgW1t3aW5kb3cgY29udGVudFZpZXdd
IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07
CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFtuYXZpZ2F0aW9uRGVsZWdh
dGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpeKFdLTmF2aWdhdGlvbkFjdGlv
biAqbmF2aWdhdGlvbkFjdGlvbiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5KSkgeworICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5Q2FuY2VsKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBO
U0V2ZW50ICpkb3duRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCgxMCwgMTApIG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpbd2luZG93
IHdpbmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRd
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAgIFt3ZWJWaWV3IG1v
dXNlRG93bjpkb3duRXZlbnRdOworICAgIAorICAgIE5TRXZlbnQgKnVwRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246TlNN
YWtlUG9pbnQoMTAsIDEwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVu
dFRpbWUoKSB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6W05TR3Jh
cGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBw
cmVzc3VyZTowXTsKKyAgICBbd2ViVmlldyBtb3VzZVVwOnVwRXZlbnRdOworCisvLyAgICBkaXNw
YXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCAoaW50NjRfdCkoMSAq
IE5TRUNfUEVSX1NFQykpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworLy8gICAgICAg
IAorLy8gICAgfSk7CisvLyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBeeworLy8gICAgICAgIE5TRXZlbnQgKnVwRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246TlNNYWtlUG9pbnQoMTAs
IDEwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5k
b3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsK
Ky8vICAgICAgICBbd2ViVmlldyBtb3VzZVVwOnVwRXZlbnRdOworLy8gICAgfSk7CisKKyAgICBV
dGlsOjpydW4oJmRvbmUpOworfQorCisvL05TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KKy8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoeCwgeSkKKy8vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAorLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKKy8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W21fd2luZG93IHdp
bmRvd051bWJlcl0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl
eHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XQorLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCisvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGlja0NvdW50OjAKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJlc3N1cmU6MF07CisvLworLy8KKy8vW21fdmlldyByaWdodE1vdXNlRG93bjpldmVu
dF07CisvLworLy9ldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01h
a2VQb2ludCh4LCB5KQorLy8gICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCisv
LyAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUo
KQorLy8gICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbbV93aW5kb3cgd2luZG93
TnVtYmVyXQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDpbTlNHcmFwaGlj
c0NvbnRleHQgY3VycmVudENvbnRleHRdCisvLyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
TnVtYmVyOjAKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6MAorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTowXTsKKy8vCisvL1ttX3ZpZXcgcmlnaHRN
b3VzZVVwOmV2ZW50XTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403443</attachid>
            <date>2020-07-03 00:13:50 -0700</date>
            <delta_ts>2020-07-03 00:20:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213793-20200703001350.patch</filename>
            <type>text/plain</type>
            <size>62262</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzMjEzMWQxY2M2NThhNTM0
NWE4ODJlZmY5MjAxZmRlZWFhZTk0Y2UuLjcxYTRkMWYzNDU1N2Q3MWM3N2Q5OTdhYWI5NmQ4MDAz
M2ZlOTU2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDIwLTA3LTAyICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjA3NTU4KTog
W01hY10gQ29udGV4dCBjbGlja3Mgb24gbGlua3Mgc29tZXRpbWVzIHJlc3VsdCBpbiBuYXZpZ2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
NzkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDI5NDAxNT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJQYWdlUHJveHk6OnNob3dDb250ZXh0
TWVudSB3YXMgd3JpdHRlbiB3aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgV2ViQ29udGV4dE1lbnVQ
cm94eTo6c2hvdworICAgICAgICB3b3VsZCBwcmVzZW50IGEgY29udGV4dCBtZW51IGFuZCBzcGlu
IGEgbmVzdGVkIHJ1biBsb29wLCBibG9ja2luZyB1bnRpbCB0aGUgbWVudSBkaXNtaXNzZXMuCisg
ICAgICAgIE9uY2UgV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyByZXR1cm5zLCBzaG93Q29udGV4
dE1lbnUgd291bGQgc2VuZCB0aGUKKyAgICAgICAgV2ViUGFnZTo6Q29udGV4dE1lbnVIaWRkZW4g
bWVzc2FnZSwgdGVsbGluZyB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRoYXQgaXQncyBPSyB0byBy
ZXN1bWUKKyAgICAgICAgcHJvY2Vzc2luZyBtb3VzZSBldmVudHMuCisKKyAgICAgICAgVGhpcyBh
c3N1bXB0aW9uIHdhcyBpbnZhbGlkYXRlZCBpbiByMjA3NTU4LCB3aGljaCBhZGRlZCBnZXRDb250
ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnVBc3luYworICAgICAgICB0byBXS1BhZ2VDb250ZXh0TWVu
dUNsaWVudC4gSWYgdGhlIGNvbnRleHQgbWVudSBjbGllbnQgcHJvdmlkZXMgY29udGV4dCBtZW51
IGl0ZW1zCisgICAgICAgIGFzeW5jaHJvbm91c2x5LCBXZWJDb250ZXh0TWVudVByb3h5OjpzaG93
IHdvdWxkIHJldHVybiAtLSBhbmQgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3b3VsZAorICAgICAg
ICByZXN1bWUgcHJvY2Vzc2luZyBtb3VzZSBldmVudHMgLS0gYmVmb3JlIHRoZSBjb250ZXh0IG1l
bnUgd2FzIGV2ZW4gcHJlc2VudGVkLiBTaW5jZSBjb250ZXh0CisgICAgICAgIG1lbnUgcHJlc2Vu
dGF0aW9uIGlzIHRyaWdnZXJlZCBieSBhIG1vdXNlIHByZXNzIGV2ZW50LCBpdCdzIHBvc3NpYmxl
IHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgbW91c2UgcmVsZWFzZSBldmVudCB3b3Vs
ZCBiZSBkZWxpdmVyZWQgYWZ0ZXIgZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51QXN5bmMg
d2FzCisgICAgICAgIGRpc3BhdGNoZWQgYnV0IGJlZm9yZSB0aGUgY2xpZW50IHJlc3BvbmRlZCB3
aXRoIG1lbnUgaXRlbXMgdG8gcHJlc2VudC4gSWYgdGhpcyBoYXBwZW5lZCwKKyAgICAgICAgc2lu
Y2UgbW91c2UgZXZlbnQgcHJvY2Vzc2luZyB3YXMgbm90IGRpc2FibGVkLCB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHdvdWxkIGRpc3BhdGNoIGEgRE9NCisgICAgICAgIGNsaWNrIGV2ZW50IHRvIHRo
ZSBwYWdlLCBwb3NzaWJseSB0cmlnZ2VyaW5nIGEgbmF2aWdhdGlvbi4KKworICAgICAgICBGaXgg
dGhpcyBieSB0ZWFjaGluZyBXZWJQYWdlUHJveHkgdG8gZGVmZXIgc2VuZGluZyBXZWJQYWdlOjpD
b250ZXh0TWVudUhpZGRlbiB1bnRpbCB0aGUKKyAgICAgICAgY29udGV4dCBtZW51IGhhcyBiZWVu
IGRpc21pc3NlZCwgZXZlbiBpbiBjYXNlcyB3aGVyZSB0aGUgY29udGV4dCBtZW51IGNsaWVudCBw
cm92aWRlcyBtZW51CisgICAgICAgIGl0ZW1zIGFzeW5jaHJvbm91c2x5LiBBbHNvLCB0YWtlIHRo
ZSBvcHBvcnR1bml0eSB0byBtb2Rlcm5pemUgV2ViQ29udGV4dE1lbnVQcm94eSBhbmQgaXRzCisg
ICAgICAgIHN1YmNsYXNzZXMgYnksIGUuZy4sIG1vdmluZyBkdXBsaWNhdGVkIHN1YmNsYXNzIGNv
ZGUgaW50byB0aGUgYmFzZSBjbGFzcywgdXNpbmcgdGhlIGNsaWVudAorICAgICAgICBwYXR0ZXJu
LCBhbmQgdXNpbmcgV2Vha1B0cnMgaW5zdGVhZCBvZiByYXcgcG9pbnRlcnMvcmVmZXJlbmNlcy4K
KworICAgICAgICBOZXcgQVBJIHRlc3Q6IFdlYktpdC5Db250ZXh0TWVudUNvbnRyb2xDbGljawor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oOgorICAgICAg
ICAoQVBJOjpDb250ZXh0TWVudUNsaWVudDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKEFQ
STo6Q29udGV4dE1lbnVDbGllbnQ6OmNhblNob3dDb250ZXh0TWVudSBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlQ29u
dGV4dE1lbnVDbGllbnQpOiBBZGRlZCBjYW5TaG93Q29udGV4dE1lbnUgdG8gZGV0ZXJtaW5lIHdo
ZXRoZXIgdGhlIGNsaWVudAorICAgICAgICBjYW4gc2hvdyBhIGNvbnRleHQgbWVudSB3aXRob3V0
IGFjdHVhbGx5IHNob3dpbmcgaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVD
b250ZXh0TWVudVByb3h5KTogUGFzc2VkIHBhZ2UgdG8KKyAgICAgICAgV2ViQ29udGV4dE1lbnVQ
cm94eVdQRTo6Y3JlYXRlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51TGlz
dGVuZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQ
cm94eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5Ojp1c2VDb250ZXh0TWVudUl0ZW1zKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjppbnZhbGlkYXRlKTogRGVsZXRl
ZC4gTm90IG5lZWRlZCBub3cgdGhhdCBtX2NsaWVudCBpcworICAgICAgICBhIFdlYWtQdHIuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Y3JlYXRlKTogUmF0aGVy
IHRoYW4gc3RvcmUgYSByYXcgcG9pbnRlciB0byBhCisgICAgICAgIFdlYkNvbnRleHRNZW51UHJv
eHksIHN0b3JlIGEgV2Vha1B0ciB0byBhIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xp
ZW50ICh3aGljaAorICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5IGltcGxlbWVudHMpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0TWVudVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KTogU3RvcmVkIGEg
V2Vha1B0ciB0byBhIFdlYlBhZ2VQcm94eQorICAgICAgICByYXRoZXIgdGhhbiBzdG9yaW5nIGEg
cmF3IHBvaW50ZXIgdG8gdGhlIHNhbWUgaW4gZWFjaCBzdWJjbGFzcy4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cHJvcG9zZWRJdGVtcyBjb25zdCk6IEFkZGVkIGEgdmly
dHVhbCBmdW5jdGlvbiB0byBjcmVhdGUKKyAgICAgICAgcHJvcG9zZWQgV2ViQ29udGV4dE1lbnVJ
dGVtcyBmcm9tIG1fY29udGV4dCdzIG1lbnUgaXRlbXMuIFdlYkNvbnRleHRNZW51UHJveHlHdGsg
b3ZlcnJpZGVzCisgICAgICAgIHRoaXMgdG8gZG8gc29tZXRoaW5nIHNsaWdodGx5IGRpZmZlcmVu
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyk6IEFkZGVkIGEg
YmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiB0aGF0IGNyZWF0ZXMgYQorICAgICAgICBXZWJDb250
ZXh0TWVudUxpc3RlbmVyUHJveHkgYW5kIGNhbGxzIENvbnRleHRNZW51Q2xpZW50OjpnZXRDb250
ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51
UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMpOiBBZGRlZCBhIGJhc2UgY2xhc3MgaW1wbGVtZW50
YXRpb24gdGhhdAorICAgICAgICBwZXJmb3JtcyB0aGUgd29yayBwcmV2aW91c2x5IGRvbmUgaW4g
V2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUuIENhbGxzCisgICAgICAgIHNob3dDb250ZXh0
TWVudVdpdGhJdGVtcywgd2hpY2ggbm93IGFsd2F5cyBzeW5jaHJvbm91c2x5IHByZXNlbnRzIHRo
ZSBtZW51LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaDogSW5o
ZXJpdGVkIGZyb20gV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpDbGllbnQuCisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHk6OnBhZ2UgY29uc3QpOiBBZGRlZCBmb3IgdXNl
IGJ5IFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dD
b250ZXh0TWVudSk6IE1vdmVkIGNvZGUgdGhhdCBhc3N1bWVzIHN5bmNocm9ub3VzIG1lbnUKKyAg
ICAgICAgcHJlc2VudGF0aW9uIHRvIFdlYkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRNZW51
SXRlbXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpwcm9wb3NlZEl0
ZW1zIGNvbnN0KTogSW1wbGVtZW50ZWQgR1RLJ3Mgc3BlY2lhbCB2ZXJzaW9uCisgICAgICAgIHRo
YXQgZXhjbHVkZXMgQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51LgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpzaG93KTogRGVsZXRlZC4gV2ViQ29udGV4dE1lbnVQ
cm94eTo6c2hvdyBoYW5kbGVzIHRoaXMgbm93LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5R3RrOjphcHBlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVBy
b3h5R3RrOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0TWVudVByb3h5R3RrOjpXZWJDb250ZXh0TWVudVByb3h5R3RrKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaDogTW92ZWQgbV9wYWdlIHRvIFdl
YkNvbnRleHRNZW51UHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1Nl
cnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tTaGFyaW5nU2VydmljZVBpY2tl
ckRlbGVnYXRlIHNoYXJpbmdTZXJ2aWNlOmRpZFNoYXJlSXRlbXM6XSk6IENoYW5nZWQgbm93IHRo
YXQKKyAgICAgICAgV2ViQ29udGV4dE1lbnVQcm94eTo6cGFnZSByZXR1cm5zIGEgcG9pbnRlci4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpwYWdlIGNvbnN0KTogRGVsZXRl
ZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6On5XZWJD
b250ZXh0TWVudVByb3h5TWFjKTogTm8gbmVlZCB0byBpbnZhbGlkYXRlCisgICAgICAgIG1fY29u
dGV4dE1lbnVMaXN0ZW5lciBub3cgdGhhdCBpdCBzdG9yZXMgYSBXZWFrUHRyIHRvIGl0cyBXZWJD
b250ZXh0TWVudVByb3h5LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFj
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnNob3dTZXJ2aWNlc01lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKTogT3ZlcnJvZGUgdG8gaGFuZGxlIHNl
cnZpY2UgbWVudXMuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnVz
ZUNvbnRleHRNZW51SXRlbXMpOiBPdmVycm9kZSB0byBnZXQgdGhlIHN0YW5kYXJkIE1hYyBtZW51
CisgICAgICAgIGl0ZW1zIGFuZCBkaXNwYXRjaCBDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Q
cm9wb3NlZE1lbnUgYmVmb3JlIHNob3dpbmcgdGhlIG1lbnUuCisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudSk6IERlbGV0ZWQuIFdlYkNvbnRl
eHRNZW51UHJveHk6OnNob3cgbm93CisgICAgICAgIGhhbmRsZXMgdGhpcy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHRNZW51UHJveHlXaW46OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlXaW46OldlYkNvbnRleHRNZW51UHJv
eHlXaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5V2luOjpzaG93KTog
RGVsZXRlZC4gV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyBub3cgaGFuZGxlcyB0aGlzLgorICAg
ICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL3dwZS9XZWJDb250ZXh0TWVudVByb3h5V1BFLmg6IFBhc3NlZCBwYWdlIHRv
IHRoZSBXZWJDb250ZXh0TWVudVByb3h5IGN0b3IuCisKIDIwMjAtMDYtMzAgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW2lPU10gQ3Jhc2ggdW5kZXIgV2Vi
S2l0OjpXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51Q2xpZW50LmgKaW5kZXggODE2
ZjcxZTEyNjcwY2IzZDY1YjFlNjMyODAzYTZiNDBlZjdkYmZhMi4uZTMzNzMzOWU1YWZmODlmNjQx
OWEyYjNhNWY1NTMxZTJiY2E0NmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSUNvbnRleHRNZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSUNvbnRleHRNZW51Q2xpZW50LmgKQEAgLTU1LDcgKzU1LDggQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudShXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFZlY3RvcjxSZWY8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW0+PiYm
IHByb3Bvc2VkTWVudSwgV2ViS2l0OjpXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkmIGxpc3Rl
bmVyLCBjb25zdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhJiwgQVBJOjpPYmplY3QqIC8q
IHVzZXJEYXRhICovKSB7IGxpc3RlbmVyLnVzZUNvbnRleHRNZW51SXRlbXMoV1RGTW92ZShwcm9w
b3NlZE1lbnUpKTsgfQogICAgIHZpcnR1YWwgdm9pZCBjdXN0b21Db250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YSYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFZlY3RvcjxSZWY8
V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW0+PiYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiwgY29uc3QgVmVjdG9yPFJlZjxXZWJLaXQ6OldlYkNvbnRleHRNZW51
SXRlbT4+JikgeyB9CisgICAgdmlydHVhbCBib29sIGNhblNob3dDb250ZXh0TWVudSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhpZGVDb250ZXh0TWVudShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICNpZiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBiYTJmZWVjZDI4
ODVhY2M0NWRkMTUzZmY1MDJkNDlmNzY1MGYyYzZkLi5jZGUyMGFhMTIxYTFmMmQxNmE4ZDJlMjU0
NmVlY2VlNzE4M2JiYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE1LTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC05MjYsMTAgKzkyNiwxMCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VDb250ZXh0
TWVudUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlQ29udGV4dE1lbnVDbAog
ICAgICAgICAgICAgbV9jbGllbnQuY3VzdG9tQ29udGV4dE1lbnVJdGVtU2VsZWN0ZWQodG9BUEko
JnBhZ2UpLCB0b0FQSShXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShpdGVtRGF0YSkucHRyKCkp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBz
aG93Q29udGV4dE1lbnUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbWVudUxvY2F0aW9uLCBjb25zdCBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiBt
ZW51SXRlbXNWZWN0b3IpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFdl
YlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwg
Y29uc3QgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYgbWVudUl0ZW1zVmVjdG9yKSBv
dmVycmlkZQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LnNob3dDb250ZXh0
TWVudSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNh
blNob3dDb250ZXh0TWVudSgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAg
ICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IG1lbnVJdGVtczsKICAgICAgICAgICAgIG1l
bnVJdGVtcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1lbnVJdGVtc1ZlY3Rvci5zaXplKCkpOwpA
QCAtOTM4LDggKzkzOCwxMSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VDb250ZXh0TWVudUNsaWVudChX
S1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlQ29udGV4dE1lbnVDbAogICAgICAgICAgICAg
ICAgIG1lbnVJdGVtcy51bmNoZWNrZWRBcHBlbmQobWVudUl0ZW0ucHRyKCkpOwogCiAgICAgICAg
ICAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUodG9BUEkoJnBhZ2UpLCB0b0FQSShtZW51TG9j
YXRpb24pLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShtZW51SXRlbXMpKS5wdHIo
KSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KIAotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGJvb2wgY2FuU2hvd0NvbnRleHRNZW51KCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LnNob3dDb250ZXh0
TWVudTsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgaGlkZUNvbnRleHRNZW51KFdlYlBhZ2VQ
cm94eSYgcGFnZSkgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggYzhiNDFmNDA3Nzc0ZDIzMzdlOTljYzdmOTE1
MWVjNjViZTNmYzUzMi4uZDA5ZjJjYjFiZWQxYWQ5YmU2MjU2YzcwNjg0MTJhOWIyNDRhMGQwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTI2Myw5ICsyNjMsOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZwogfQogCiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi1SZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNs
aWVudEltcGw6OmNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgQ29udGV4dE1l
bnVDb250ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK1JlZjxX
ZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94
eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgcmV0dXJuIFdlYkNvbnRleHRNZW51UHJv
eHlXUEU6OmNyZWF0ZShXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSk7CisgICAgcmV0dXJuIFdl
YkNvbnRleHRNZW51UHJveHlXUEU6OmNyZWF0ZShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2Vy
RGF0YSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggMTE1ZjAzM2FiZGIwMjRjODRj
MDM5MmU2NDI4MDM3MTI2ZTMxYzk2MC4uZGM3NDg0ZWNiZDJjYThhOTEwNzU3MmI2YjhiOWY1YTgz
MjRiNGYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0TWVudUxpc3RlbmVyUHJveHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDM1ICsyOCwyNCBAQAogCiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCiAKLSNpbmNsdWRlICJBUElBcnJheS5oIgotI2luY2x1ZGUgIldLQVBJQ2Fz
dC5oIgotI2luY2x1ZGUgIldLQXJyYXkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW0u
aCIKLSNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdlYkNvbnRleHRNZW51TGlzdGVuZXJQ
cm94eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNvbnRleHRNZW51UHJveHkqIGNv
bnRleHRNZW51TWFjKQotICAgIDogbV9jb250ZXh0TWVudU1hYyhjb250ZXh0TWVudU1hYykKK1dl
YkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdl
YkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xpZW50JiBjbGllbnQpCisgICAgOiBtX2NsaWVu
dChtYWtlV2Vha1B0cihjbGllbnQpKQogewogfQogCi1XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJv
eHk6On5XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkoKQotewotfQorV2ViQ29udGV4dE1lbnVM
aXN0ZW5lclByb3h5Ojp+V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KCkgPSBkZWZhdWx0Owog
CiB2b2lkIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6dXNlQ29udGV4dE1lbnVJdGVtcyhW
ZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYgaXRlbXMpCiB7Ci0gICAgaWYgKCFtX2Nv
bnRleHRNZW51TWFjKQorICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fY29udGV4dE1lbnVNYWMtPnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhXVEZNb3ZlKGl0ZW1z
KSk7Ci19Ci0KLXZvaWQgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjppbnZhbGlkYXRlKCkK
LXsKLSAgICBtX2NvbnRleHRNZW51TWFjID0gbnVsbHB0cjsKKyAgICBtX2NsaWVudC0+dXNlQ29u
dGV4dE1lbnVJdGVtcyhXVEZNb3ZlKGl0ZW1zKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0
ZW5lclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxpc3Rl
bmVyUHJveHkuaAppbmRleCA3ZmQzNDA2MzVmYTM4NjhjZWQwN2EwYjQxYTUxMDliMTQ3ZjMxODhm
Li43ZGIxM2NkZWI0M2RkMDc3Mjk2ODYzNjA1N2UyMWMwZTE2ODhlNzNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OCwzMSArMjgsMzUgQEAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAogI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgotI2luY2x1ZGUgIldLQXJyYXkuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0TWVu
dVByb3h5LmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFz
cyBXZWJDb250ZXh0TWVudVByb3h5TWFjOworCitjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW07CiAK
IGNsYXNzIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdElt
cGw8QVBJOjpPYmplY3Q6OlR5cGU6OkNvbnRleHRNZW51TGlzdGVuZXI+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRl
eHRNZW51UHJveHkqIGNvbnRleHRNZW51TWFjKQorICAgIHN0cnVjdCBDbGllbnQgOiBDYW5NYWtl
V2Vha1B0cjxDbGllbnQ+IHsKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgPSBkZWZhdWx0Owor
ICAgICAgICB2aXJ0dWFsIHZvaWQgdXNlQ29udGV4dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNv
bnRleHRNZW51SXRlbT4+JiYpID0gMDsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxXZWJDb250
ZXh0TWVudUxpc3RlbmVyUHJveHk+IGNyZWF0ZShDbGllbnQmIGNsaWVudCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eShjb250
ZXh0TWVudU1hYykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVu
dUxpc3RlbmVyUHJveHkoY2xpZW50KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViQ29udGV4
dE1lbnVMaXN0ZW5lclByb3h5KCk7CiAKICAgICB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMoVmVj
dG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKTsKIAotICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkoV2Vi
Q29udGV4dE1lbnVQcm94eSopOworICAgIGV4cGxpY2l0IFdlYkNvbnRleHRNZW51TGlzdGVuZXJQ
cm94eShDbGllbnQmKTsKIAotICAgIFdlYkNvbnRleHRNZW51UHJveHkqIG1fY29udGV4dE1lbnVN
YWM7CisgICAgV2Vha1B0cjxDbGllbnQ+IG1fY2xpZW50OwogfTsKLSAgICAKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAKaW5kZXggN2ZiMmM1
MmNjMjcxMDVlMjEyOGVhY2NiZTJjMzdiZDdlNTRiMmUyMi4uM2RjNmMzNzY3ODYwNDU2NjU3ZjJh
MTliZjJkNmFkZjJiYjM1YWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dE1lbnVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dE1lbnVQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTYgKzI4LDUwIEBACiAKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKIAorI2luY2x1ZGUgIkFQSUNvbnRleHRNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAi
V2ViUGFnZU1lc3NhZ2VzLmgiCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJDb250ZXh0TWVu
dVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250
ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCitXZWJDb250ZXh0TWVudVByb3h5OjpXZWJD
b250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0
YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICA6IG1fY29udGV4dChX
VEZNb3ZlKGNvbnRleHQpKQogICAgICwgbV91c2VyRGF0YSh1c2VyRGF0YSkKKyAgICAsIG1fcGFn
ZShtYWtlV2Vha1B0cihwYWdlKSkKK3sKK30KKworV2ViQ29udGV4dE1lbnVQcm94eTo6fldlYkNv
bnRleHRNZW51UHJveHkoKSA9IGRlZmF1bHQ7CisKK1ZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJ
dGVtPj4gV2ViQ29udGV4dE1lbnVQcm94eTo6cHJvcG9zZWRJdGVtcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFdURjo6bWFwKG1fY29udGV4dC5tZW51SXRlbXMoKSwgW10oYXV0byYgaXRlbSkgewor
ICAgICAgICByZXR1cm4gV2ViQ29udGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdygpCiB7CisgICAgbV9jb250ZXh0
TWVudUxpc3RlbmVyID0gV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVhdGUoKnRoaXMp
OworICAgIHBhZ2UoKS0+Y29udGV4dE1lbnVDbGllbnQoKS5nZXRDb250ZXh0TWVudUZyb21Qcm9w
b3NlZE1lbnUoKnBhZ2UoKSwgcHJvcG9zZWRJdGVtcygpLCAqbV9jb250ZXh0TWVudUxpc3RlbmVy
LCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgcGFnZSgpLT5wcm9jZXNzKCkudHJh
bnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAK
LVdlYkNvbnRleHRNZW51UHJveHk6On5XZWJDb250ZXh0TWVudVByb3h5KCkKK3ZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eTo6dXNlQ29udGV4dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRN
ZW51SXRlbT4+JiYgaXRlbXMpCiB7CisgICAgbV9jb250ZXh0TWVudUxpc3RlbmVyID0gbnVsbHB0
cjsKKworICAgIGF1dG8gcGFnZSA9IG1ha2VSZWZQdHIodGhpcy0+cGFnZSgpKTsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFNpbmNlIHNob3dDb250ZXh0TWVudVdp
dGhJdGVtcyBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRo
ZSByZXNwb25zaXZlbmVzcyB0aW1lci4KKyAgICBwYWdlLT5wcm9jZXNzKCkuc3RvcFJlc3BvbnNp
dmVuZXNzVGltZXIoKTsKKworICAgIC8vIFByb3RlY3QgfHRoaXN8IGZyb20gYmVpbmcgZGVhbGxv
Y2F0ZWQgaWYgV2ViUGFnZVByb3h5IGNvZGUgaXMgcmUtZW50ZXJlZCBmcm9tIHRoZSBtZW51IHJ1
bmxvb3Agb3IgZGVsZWdhdGVzLgorICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpOworICAgIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhXVEZNb3ZlKGl0ZW1zKSk7CisKKyAg
ICAvLyBObyBtYXR0ZXIgdGhlIHJlc3VsdCBvZiBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMsIGFs
d2F5cyBub3RpZnkgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgbWVudSBpcyBoaWRkZW4gc28gaXQg
c3RhcnRzIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyBhZ2Fpbi4KKyAgICBwYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpDb250ZXh0TWVudUhpZGRlbigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVu
dVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgK
aW5kZXggM2YwNWY0Mzk1YzA4NjU2ZWU2MGMxYTQ2N2M2ZmU4MDkxMTVhMDIxMC4uMmQyYzU3NjVj
MDFmMjY4MDc0OWE4ZjE5M2Q2MWZiNjY2YTA4YWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwyNSArMjksMzggQEAKIAogI2luY2x1ZGUg
IkNvbnRleHRNZW51Q29udGV4dERhdGEuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1
ZGUgIldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbTsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3Mg
V2ViQ29udGV4dE1lbnVQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkNvbnRleHRNZW51UHJv
eHk+IHsKK2NsYXNzIFdlYkNvbnRleHRNZW51UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJD
b250ZXh0TWVudVByb3h5PiwgcHVibGljIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xp
ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJDb250ZXh0TWVudVByb3h5KCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNv
bnRleHRNZW51SXRlbT4+JiYpID0gMDsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgotICAgIFdlYkNvbnRleHRNZW51
UHJveHkoQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIFdl
YkNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYm
LCBjb25zdCBVc2VyRGF0YSYpOworCisgICAgLy8gV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5
OjpDbGllbnQKKyAgICB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKIAogICAgIGNvbnN0IENvbnRleHRNZW51Q29udGV4
dERhdGEgbV9jb250ZXh0OwogICAgIGNvbnN0IFVzZXJEYXRhIG1fdXNlckRhdGE7CisKK3ByaXZh
dGU6CisgICAgdmlydHVhbCBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+IHByb3Bvc2Vk
SXRlbXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1z
KFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJikgPSAwOworCisgICAgUmVmUHRyPFdl
YkNvbnRleHRNZW51TGlzdGVuZXJQcm94eT4gbV9jb250ZXh0TWVudUxpc3RlbmVyOworICAgIFdl
YWtQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdhNzQ3MjU1MDlk
ZjJhNzYxYmUxMTUwZWFhZTQ2ZDQ0NmRjNTljYjUuLmUzMGEzYzgxYTc5ODVlZjE1YWRjYWJlYjhi
NzU3Njg1MWMyMjgyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNjU2MiwxNSArNjU2Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1l
bnUoQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmIGNvbnRleHRNZW51Q29udGV4dERhCiAKICAgICBt
X2FjdGl2ZUNvbnRleHRNZW51ID0gcGFnZUNsaWVudCgpLmNyZWF0ZUNvbnRleHRNZW51UHJveHko
KnRoaXMsIFdURk1vdmUoY29udGV4dE1lbnVDb250ZXh0RGF0YSksIHVzZXJEYXRhKTsKIAotICAg
IC8vIFNpbmNlIHNob3dDb250ZXh0TWVudSgpIGNhbiBzcGluIGEgbmVzdGVkIHJ1biBsb29wIHdl
IG5lZWQgdG8gdHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyLgotICAgIG1fcHJvY2Vz
cy0+c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKLQotICAgIC8vIG1fYWN0aXZlQ29udGV4dE1l
bnUgbWlnaHQgZ2V0IGNsZWFyZWQgaWYgV2ViUGFnZVByb3h5IGNvZGUgaXMgcmUtZW50ZXJlZCBm
cm9tIHRoZSBtZW51IHJ1bmxvb3Agb3IgZGVsZWdhdGVzLgotICAgIFJlZjxXZWJDb250ZXh0TWVu
dVByb3h5PiBwcm90ZWN0b3IoKm1fYWN0aXZlQ29udGV4dE1lbnUpOwogICAgIG1fYWN0aXZlQ29u
dGV4dE1lbnUtPnNob3coKTsKLQotICAgIC8vIE5vIG1hdHRlciB0aGUgcmVzdWx0IG9mIGludGVy
bmFsU2hvd0NvbnRleHRNZW51LCBhbHdheXMgbm90aWZ5IHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhl
IG1lbnUgaXMgaGlkZGVuIHNvIGl0IHN0YXJ0cyBoYW5kbGluZyBtb3VzZSBldmVudHMgYWdhaW4u
Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q29udGV4dE1lbnVIaWRkZW4oKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCmluZGV4IGE4OGNjNmIyYjU1NmI0MTIw
MzI4NzRkMDJlZDM0OGI5NmZlMTAyYWMuLjgwOWQwZmNlNjY1YTJhMDE2OWFkN2U2OGFiMmVhNjQy
ODU0NjE4ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb250
ZXh0TWVudVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2Vi
Q29udGV4dE1lbnVQcm94eUd0ay5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFdlYkNvbnRl
eHRNZW51UHJveHlHdGs6OmFwcGVuZChHTWVudSogbWVudSwgY29uc3QgV2ViQ29udGV4dE1lbnVJ
dGVtR2xpYiYgbQogICAgICAgICBpZiAobWVudUl0ZW0uYWN0aW9uKCkgPCBDb250ZXh0TWVudUl0
ZW1CYXNlQXBwbGljYXRpb25UYWcpIHsKICAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdf
T0JKRUNUKGFjdGlvbiksIGdDb250ZXh0TWVudUFjdGlvbklkLCBHSU5UX1RPX1BPSU5URVIobWVu
dUl0ZW0uYWN0aW9uKCkpKTsKICAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhX2Z1bGwoR19P
QkpFQ1QoYWN0aW9uKSwgZ0NvbnRleHRNZW51VGl0bGUsIGdfc3RyZHVwKG1lbnVJdGVtLnRpdGxl
KCkudXRmOCgpLmRhdGEoKSksIGdfZnJlZSk7Ci0gICAgICAgICAgICBzaWduYWxIYW5kbGVySWQg
PSBnX3NpZ25hbF9jb25uZWN0KGFjdGlvbiwgImFjdGl2YXRlIiwgR19DQUxMQkFDSyhjb250ZXh0
TWVudUl0ZW1BY3RpdmF0ZWRDYWxsYmFjayksIG1fcGFnZSk7CisgICAgICAgICAgICBzaWduYWxI
YW5kbGVySWQgPSBnX3NpZ25hbF9jb25uZWN0KGFjdGlvbiwgImFjdGl2YXRlIiwgR19DQUxMQkFD
Syhjb250ZXh0TWVudUl0ZW1BY3RpdmF0ZWRDYWxsYmFjayksIHBhZ2UoKSk7CiAgICAgICAgICAg
ICBtX3NpZ25hbEhhbmRsZXJzLnNldChzaWduYWxIYW5kbGVySWQsIGFjdGlvbik7CiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CkBAIC0yNTAsMTUgKzI1MCwxNCBAQCB2b2lkIFdlYkNvbnRleHRN
ZW51UHJveHlHdGs6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVt
Pj4mIGl0ZQogICAgIGJpbmRNb2RlbFRvTWVudVdpZGdldChtX21lbnUsIEdfTUVOVV9NT0RFTCht
ZW51LmdldCgpKSk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvdygpCitW
ZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+IFdlYkNvbnRleHRNZW51UHJveHlHdGs6OnBy
b3Bvc2VkSXRlbXMoKSBjb25zdAogewogICAgIFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVt
Pj4gcHJvcG9zZWRBUElJdGVtczsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2NvbnRleHQubWVu
dUl0ZW1zKCkpIHsKICAgICAgICAgaWYgKGl0ZW0uYWN0aW9uKCkgIT0gQ29udGV4dE1lbnVJdGVt
VGFnU2hhcmVNZW51KQogICAgICAgICAgICAgcHJvcG9zZWRBUElJdGVtcy5hcHBlbmQoV2ViQ29u
dGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbSkpOwogICAgIH0KLQotICAgIG1fcGFnZS0+Y29udGV4
dE1lbnVDbGllbnQoKS5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUoKm1fcGFnZSwgV1RG
TW92ZShwcm9wb3NlZEFQSUl0ZW1zKSwgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVh
dGUodGhpcykuZ2V0KCksIG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3BhZ2Ut
PnByb2Nlc3MoKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKG1fdXNlckRhdGEub2JqZWN0KCkp
LmdldCgpKTsKKyAgICByZXR1cm4gcHJvcG9zZWRBUElJdGVtczsKIH0KIAogdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5R3RrOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJD
b250ZXh0TWVudUl0ZW0+PiYmIGl0ZW1zKQpAQCAtMjY5LDE2ICsyNjgsMTUgQEAgdm9pZCBXZWJD
b250ZXh0TWVudVByb3h5R3RrOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxX
ZWJDb250ZXh0TWVudUkKICAgICBpZiAoIW1lbnVXaWRnZXRIYXNJdGVtcyhtX21lbnUpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gbV9w
YWdlLT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpOworICAgIE5hdGl2ZVdlYk1v
dXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBwYWdlKCktPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93
bkV2ZW50KCk7CiAgICAgY29uc3QgR2RrRXZlbnQqIGV2ZW50ID0gbW91c2VFdmVudCA/IG1vdXNl
RXZlbnQtPm5hdGl2ZUV2ZW50KCkgOiBudWxscHRyOwogICAgIGNvbnN0IEdka1JlY3RhbmdsZSBy
ZWN0ID0geyBtX2NvbnRleHQubWVudUxvY2F0aW9uKCkueCgpLCBtX2NvbnRleHQubWVudUxvY2F0
aW9uKCkueSgpLCAxLCAxIH07CiAgICAgcG9wdXBNZW51V2lkZ2V0KG1fbWVudSwgZXZlbnQsIHJl
Y3QpOwogfQogCiBXZWJDb250ZXh0TWVudVByb3h5R3RrOjpXZWJDb250ZXh0TWVudVByb3h5R3Rr
KEd0a1dpZGdldCogd2ViVmlldywgV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRl
eHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQotICAgIDogV2ViQ29u
dGV4dE1lbnVQcm94eShXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkKKyAgICA6IFdlYkNvbnRl
eHRNZW51UHJveHkocGFnZSwgV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCiAgICAgLCBtX3dl
YlZpZXcod2ViVmlldykKLSAgICAsIG1fcGFnZSgmcGFnZSkKICAgICAsIG1fbWVudShjcmVhdGVN
ZW51V2lkZ2V0KG1fd2ViVmlldykpCiB7CiAgICAgZ3RrX3dpZGdldF9pbnNlcnRfYWN0aW9uX2dy
b3VwKEdUS19XSURHRVQobV9tZW51KSwgZ0NvbnRleHRNZW51SXRlbUdyb3VwLCBHX0FDVElPTl9H
Uk9VUChtX2FjdGlvbkdyb3VwLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaAppbmRleCBlYTQ4ZGJhZDgzNGM5MTcy
OWM5NGI3NTI4YjMyZmYwOTUxNWU5YTdlLi4xYjRhZWZiMzYxMzAyMTJjMmRkNWEwYzU0YjFlNTg0
ZGU1ZmMyZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29u
dGV4dE1lbnVQcm94eUd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJD
b250ZXh0TWVudVByb3h5R3RrLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgV2ViQ29udGV4dE1l
bnVJdGVtOwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTsKIGNsYXNzIFdlYlBhZ2VQcm94
eTsKIAotY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eUd0ayA6IHB1YmxpYyBXZWJDb250ZXh0TWVu
dVByb3h5IHsKK2NsYXNzIFdlYkNvbnRleHRNZW51UHJveHlHdGsgZmluYWwgOiBwdWJsaWMgV2Vi
Q29udGV4dE1lbnVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKEd0a1dp
ZGdldCogd2lkZ2V0LCBXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEm
JiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgewpAQCAtNTYsNyArNTYs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eUd0ayhHdGtX
aWRnZXQqLCBXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCBzaG93KCkgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFJlZjxXZWJD
b250ZXh0TWVudUl0ZW0+PiBwcm9wb3NlZEl0ZW1zKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+
PiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGFwcGVuZChHTWVudSosIGNvbnN0IFdlYkNvbnRleHRN
ZW51SXRlbUdsaWImKTsKICAgICBHUmVmUHRyPEdNZW51PiBidWlsZE1lbnUoY29uc3QgVmVjdG9y
PFdlYkNvbnRleHRNZW51SXRlbUdsaWI+Jik7CkBAIC02NCw3ICs2NCw2IEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbUdsaWI+IHBvcHVsYXRlU3ViTWVudShjb25zdCBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7CiAKICAgICBHdGtXaWRnZXQqIG1fd2ViVmlldzsKLSAg
ICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBHdGtXaWRnZXQqIG1fbWVudTsKICAgICBIYXNo
TWFwPHVuc2lnbmVkIGxvbmcsIHZvaWQqPiBtX3NpZ25hbEhhbmRsZXJzOwogICAgIEdSZWZQdHI8
R1NpbXBsZUFjdGlvbkdyb3VwPiBtX2FjdGlvbkdyb3VwIHsgYWRvcHRHUmVmKGdfc2ltcGxlX2Fj
dGlvbl9ncm91cF9uZXcoKSkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCmluZGV4IDg1MDUz
YzA4NTNlNTU0ODMzYzNjN2VjZTgzYWNiYTdlZTlkNTU0YTUuLjMzZDRmZWI0YzQwMDU5NmVkMzM5
NjU3NTY2NWFiYmY0NDQwOWFmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbQpAQCAtMTI5
LDcgKzEyOSw3IEBAIC0gKHZvaWQpc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilz
aGFyaW5nU2VydmljZSBkaWRTaGFyZUl0ZW1zOihOU0FycmF5CiAgICAgfQogCiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhZG9wdCByZXBsYWNlU2VsZWN0aW9uV2l0aEF0dHJpYnV0ZWRTdHJpbmcg
aW5zdGVhZCBvZiBib3VuY2luZyB0aHJvdWdoIHRoZSAoZmFrZSkgcGFzdGVib2FyZC4KLSAgICBf
bWVudVByb3h5LT5wYWdlKCkucmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YSh0eXBl
cywgZGF0YVJlZmVyZW5jZSk7CisgICAgX21lbnVQcm94eS0+cGFnZSgpLT5yZXBsYWNlU2VsZWN0
aW9uV2l0aFBhc3RlYm9hcmREYXRhKHR5cGVzLCBkYXRhUmVmZXJlbmNlKTsKIH0KIAogLSAoTlNX
aW5kb3cgKilzaGFyaW5nU2VydmljZTooTlNTaGFyaW5nU2VydmljZSAqKXNoYXJpbmdTZXJ2aWNl
IHNvdXJjZVdpbmRvd0ZvclNoYXJlSXRlbXM6KE5TQXJyYXkgKilpdGVtcyBzaGFyaW5nQ29udGVu
dFNjb3BlOihOU1NoYXJpbmdDb250ZW50U2NvcGUgKilzaGFyaW5nQ29udGVudFNjb3BlCkBAIC0x
NDAsNCArMTQwLDMgQEAgLSAoTlNXaW5kb3cgKilzaGFyaW5nU2VydmljZTooTlNTaGFyaW5nU2Vy
dmljZSAqKXNoYXJpbmdTZXJ2aWNlIHNvdXJjZVdpbmRvd0ZvclMKIEBlbmQKIAogI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAppbmRleCA5MDBlZjBmMTc4YTkyNmRh
YWNkNTNlNjQ1ZTU3MzBhYWJmMWVhZjcxLi4wYmIwN2U2NzlmMzBlN2IzNjgyYjM3MzZiNTM3MmNi
YmIyZDMxZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNTAgKzI3LDQ0IEBACiAKICNpZiBQTEFURk9STShNQUMp
CiAKLSNpbmNsdWRlICJXS0FycmF5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5o
IgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha09iakNQdHIu
aD4KIAogT0JKQ19DTEFTUyBOU01lbnU7CiBPQkpDX0NMQVNTIE5TTWVudUl0ZW07Ci1PQkpDX0NM
QVNTIE5TUG9wVXBCdXR0b25DZWxsOwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIE5T
V2luZG93OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2hhcmVhYmxlQml0bWFwOwot
Y2xhc3MgVXNlckRhdGE7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwotY2xhc3MgV2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5OwotY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFzcyBX
ZWJDb250ZXh0TWVudVByb3h5TWFjIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgeworY2xh
c3MgV2ViQ29udGV4dE1lbnVQcm94eU1hYyBmaW5hbCA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVBy
b3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoTlNWaWV3KiB2aWV3LCBXZWJQ
YWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKE5TVmlldyAqd2ViVmll
dywgV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eU1hYyh2aWV3LCBwYWdlLCBXVEZNb3ZlKGNvbnRleHQp
LCB1c2VyRGF0YSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVu
dVByb3h5TWFjKHdlYlZpZXcsIHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKSk7CiAg
ICAgfQogICAgIH5XZWJDb250ZXh0TWVudVByb3h5TWFjKCk7CiAKICAgICB2b2lkIGNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKLSAgICB2b2lk
IHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+
JiYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdm9pZCBj
bGVhclNlcnZpY2VzTWVudSgpOwogI2VuZGlmCiAKLSAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBj
b25zdCB7IHJldHVybiBtX3BhZ2U7IH0KICAgICBOU1dpbmRvdyAqd2luZG93KCkgY29uc3Q7CiAK
IHByaXZhdGU6Ci0gICAgV2ViQ29udGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcqLCBXZWJQYWdlUHJv
eHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgV2Vi
Q29udGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcgKiwgV2ViUGFnZVByb3h5JiwgQ29udGV4dE1lbnVD
b250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOworCiAgICAgdm9pZCBzaG93KCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMo
VmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKIAotICAgIFJlZlB0
cjxXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IG1fY29udGV4dE1lbnVMaXN0ZW5lcjsKICAg
ICB2b2lkIGdldENvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChOU01lbnVJdGVtICopPiYmKTsKICAgICB2b2lkIGdldENv
bnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNNZW51ICopPiYmKTsKLSAgICB2b2lkIHNob3dDb250
ZXh0TWVudSgpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdm9pZCBnZXRT
aGFyZU1lbnVJdGVtKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNNZW51SXRlbSAqKT4mJik7CkBA
IC03OSw5ICs3Myw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFJldGFpblB0cjxOU01lbnU+
IG1fbWVudTsKLQotICAgIE5TVmlldyogbV93ZWJWaWV3OwotICAgIFdlYlBhZ2VQcm94eSYgbV9w
YWdlOworICAgIFdlYWtPYmpDUHRyPE5TVmlldz4gbV93ZWJWaWV3OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IDNkYWFhMjVkNGZmZWJiYmIxNjgyZWZjMDBkYzUw
MjYyY2QzODg2ZWMuLmE2NGUxMzZhY2Q5NTJmMjM5NDM3YzM5ZTUxZjhlYjkxZDY5OGE2MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVBy
b3h5TWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI5LDI1ICsyOSwxOSBAQAogI2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAi
QVBJQ29udGV4dE1lbnVDbGllbnQuaCIKLSNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBv
cnQgIk1lbnVVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsTWFjLmgiCiAjaW1w
b3J0ICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgot
I2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXS01lbnVJdGVtSWRlbnRpZmll
cnNQcml2YXRlLmgiCiAjaW1wb3J0ICJXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCIK
ICNpbXBvcnQgIldlYkNvbnRleHRNZW51SXRlbS5oIgogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5oIgotI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmgiCiAjaW1w
b3J0ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9y
dCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L21hYy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VQ
aWNrZXJTUEkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGludGVyZmFjZSBXS1VzZXJEYXRhV3JhcHBl
ciA6IE5TT2JqZWN0IHsKQEAgLTE1NCwyMSArMTQ4LDE1IEBAIEBlbmQKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdlYkNvbnRleHRNZW51UHJveHlNYWM6
OldlYkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkmIHBh
Z2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCi0gICAgOiBXZWJDb250ZXh0TWVudVByb3h5KFdURk1vdmUoY29udGV4dCksIHVzZXJE
YXRhKQorV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyhOU1Zp
ZXcgKndlYlZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYm
IGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICA6IFdlYkNvbnRleHRNZW51
UHJveHkocGFnZSwgV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCiAgICAgLCBtX3dlYlZpZXco
d2ViVmlldykKLSAgICAsIG1fcGFnZShwYWdlKQogewogfQogCiBXZWJDb250ZXh0TWVudVByb3h5
TWFjOjp+V2ViQ29udGV4dE1lbnVQcm94eU1hYygpCiB7CiAgICAgW21fbWVudSBjYW5jZWxUcmFj
a2luZ107Ci0KLSAgICBpZiAobV9jb250ZXh0TWVudUxpc3RlbmVyKSB7Ci0gICAgICAgIG1fY29u
dGV4dE1lbnVMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2NvbnRleHRNZW51TGlz
dGVuZXIgPSBudWxscHRyOwotICAgIH0KIH0KIAogdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFj
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBp
dGVtKQpAQCAtMTc3LDcgKzE2NSw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Y29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0CiAgICAgY2xl
YXJTZXJ2aWNlc01lbnUoKTsKICNlbmRpZgogCi0gICAgbV9wYWdlLmNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKGl0ZW0pOworICAgIHBhZ2UoKS0+Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoaXRlbSk7
CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKQEAgLTI1MSw4ICsyMzksOSBAQCB2
b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dTZXJ2aWNlc01lbnUoKQogewogICAgIHNl
dHVwU2VydmljZXNNZW51KCk7CiAKKyAgICBhdXRvIHdlYlZpZXcgPSBtX3dlYlZpZXcuZ2V0KCk7
CiAgICAgW1tXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgc2hhcmVkU2hhcmluZ1NlcnZp
Y2VQaWNrZXJEZWxlZ2F0ZV0gc2V0TWVudVByb3h5OnRoaXNdOwotICAgIFttX21lbnUgcG9wVXBN
ZW51UG9zaXRpb25pbmdJdGVtOm5pbCBhdExvY2F0aW9uOm1fY29udGV4dC5tZW51TG9jYXRpb24o
KSBpblZpZXc6bV93ZWJWaWV3XTsKKyAgICBbbV9tZW51IHBvcFVwTWVudVBvc2l0aW9uaW5nSXRl
bTpuaWwgYXRMb2NhdGlvbjptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgaW5WaWV3OndlYlZpZXcu
Z2V0KCldOwogfQogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmNsZWFyU2VydmljZXNN
ZW51KCkKQEAgLTMzNywxNiArMzI2LDE0IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6
Z2V0U2hhcmVNZW51SXRlbShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudUl0ZW0KIAogdm9p
ZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93KCkKIHsKLSAgICBSZWY8V2ViUGFnZVByb3h5
PiBwcm90ZWN0KG1fcGFnZSk7Ci0KICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBp
ZiAobV9jb250ZXh0LmlzU2VydmljZXNNZW51KCkpIHsKLSAgICAgICAgc2hvd1NlcnZpY2VzTWVu
dSgpOworICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5Ojp1c2VDb250ZXh0TWVudUl0ZW1zKHsg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAotICAgIHNob3dDb250ZXh0TWVu
dSgpOworICAgIFdlYkNvbnRleHRNZW51UHJveHk6OnNob3coKTsKIH0KIAogdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVu
dSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTUwNyw0NyArNDk0LDUyIEBAIHZvaWQgV2Vi
Q29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVJdGVtKGNvbnN0IFdlYkNvbnRleHRN
ZW51SXRlbURhdGEmIGl0CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvd0NvbnRl
eHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJiBpdGVtcykK
IHsKLSAgICBpZiAobV9wYWdlLmNvbnRleHRNZW51Q2xpZW50KCkuc2hvd0NvbnRleHRNZW51KG1f
cGFnZSwgbV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpLCBpdGVtcykpCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCisgICAgaWYgKG1fY29udGV4dC5pc1NlcnZpY2VzTWVudSgpKSB7CisgICAg
ICAgIEFTU0VSVChpdGVtcy5pc0VtcHR5KCkpOworICAgICAgICBzaG93U2VydmljZXNNZW51KCk7
CiAgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIAotICAgIGlmIChpdGVtcy5pc0VtcHR5
KCkpCisgICAgaWYgKHBhZ2UoKS0+Y29udGV4dE1lbnVDbGllbnQoKS5jYW5TaG93Q29udGV4dE1l
bnUoKSkgeworICAgICAgICBwYWdlKCktPmNvbnRleHRNZW51Q2xpZW50KCkuc2hvd0NvbnRleHRN
ZW51KCpwYWdlKCksIG1fY29udGV4dC5tZW51TG9jYXRpb24oKSwgaXRlbXMpOwogICAgICAgICBy
ZXR1cm47CisgICAgfQogCi0gICAgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IGRhdGE7
Ci0gICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGl0ZW1zLnNpemUoKSk7Ci0gICAgZm9y
IChhdXRvJiBpdGVtIDogaXRlbXMpCi0gICAgICAgIGRhdGEudW5jaGVja2VkQXBwZW5kKGl0ZW0t
PmRhdGEoKSk7CisgICAgQVNTRVJUKGl0ZW1zLmlzRW1wdHkoKSk7CisgICAgaWYgKCFtX21lbnUp
CisgICAgICAgIHJldHVybjsKIAotICAgIGdldENvbnRleHRNZW51RnJvbUl0ZW1zKGRhdGEsIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXNdKE5TTWVudSAqbWVudSkgbXV0YWJs
ZSB7Ci0gICAgICAgIFtbV0tNZW51VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94
eTp0aGlzXTsKLSAgICAgICAgbV9wYWdlLmNvbnRleHRNZW51Q2xpZW50KCkubWVudUZyb21Qcm9w
b3NlZE1lbnUobV9wYWdlLCBtZW51LCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwg
bV91c2VyRGF0YS5vYmplY3QoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFRoaXMpXSAoUmV0YWluUHRyPE5TTWVudT4mJiBtZW51KSB7Ci0gICAgICAgICAgICBtX21l
bnUgPSBXVEZNb3ZlKG1lbnUpOwotICAgICAgICAgICAgTlNQb2ludCBtZW51TG9jYXRpb24gPSBb
bV93ZWJWaWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5p
bF07Ci0gICAgICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcCBsb2NhdGlvbjptZW51TG9jYXRpb24gbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjptX3dlYlZpZXcud2luZG93LndpbmRv
d051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTow
XTsKLSAgICAgICAgICAgIFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0
aEV2ZW50OmV2ZW50IGZvclZpZXc6bV93ZWJWaWV3XTsKLQotICAgICAgICAgICAgaWYgKG1fY29u
dGV4dE1lbnVMaXN0ZW5lcikgewotICAgICAgICAgICAgICAgIG1fY29udGV4dE1lbnVMaXN0ZW5l
ci0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgICAgIG1fY29udGV4dE1lbnVMaXN0ZW5lciA9
IG51bGxwdHI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH0pOworICAgIGF1dG8g
d2ViVmlldyA9IG1fd2ViVmlldy5nZXQoKTsKKyAgICBOU1BvaW50IG1lbnVMb2NhdGlvbiA9IFt3
ZWJWaWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07
CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dlYlZpZXcgd2luZG93XS53aW5kb3dOdW1iZXIgY29u
dGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgW05T
TWVudSBwb3BVcENvbnRleHRNZW51Om1fbWVudS5nZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9yVmll
dzp3ZWJWaWV3LmdldCgpXTsKIH0KIAotdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93
Q29udGV4dE1lbnUoKQordm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1c2VDb250ZXh0TWVu
dUl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJiBpdGVtcykKIHsKLSAgICBW
ZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+IHByb3Bvc2VkQVBJSXRlbXM7Ci0gICAgZm9y
IChhdXRvJiBpdGVtIDogbV9jb250ZXh0Lm1lbnVJdGVtcygpKQotICAgICAgICBwcm9wb3NlZEFQ
SUl0ZW1zLmFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShpdGVtKSk7Ci0KLSAgICBp
ZiAobV9jb250ZXh0TWVudUxpc3RlbmVyKSB7Ci0gICAgICAgIG1fY29udGV4dE1lbnVMaXN0ZW5l
ci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIgPSBudWxscHRy
OworICAgIGlmIChpdGVtcy5pc0VtcHR5KCkgfHwgIXBhZ2UoKSB8fCBwYWdlKCktPmNvbnRleHRN
ZW51Q2xpZW50KCkuY2FuU2hvd0NvbnRleHRNZW51KCkpIHsKKyAgICAgICAgV2ViQ29udGV4dE1l
bnVQcm94eTo6dXNlQ29udGV4dE1lbnVJdGVtcyhXVEZNb3ZlKGl0ZW1zKSk7CisgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIgPSBXZWJDb250ZXh0TWVu
dUxpc3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyAgICBhdXRvIGRhdGEgPSBXVEY6Om1hcChp
dGVtcywgW10oYXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS0+ZGF0YSgpOworICAg
IH0pOwogCi0gICAgbV9wYWdlLmNvbnRleHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9t
UHJvcG9zZWRNZW51KG1fcGFnZSwgV1RGTW92ZShwcm9wb3NlZEFQSUl0ZW1zKSwgKm1fY29udGV4
dE1lbnVMaXN0ZW5lciwgbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fcGFnZS5w
cm9jZXNzKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgpKS5n
ZXQoKSk7CisgICAgZ2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoZGF0YSwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oTlNNZW51ICptZW51KSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKCFwYWdlKCkpIHsKKyAgICAgICAgICAgIFdlYkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRl
eHRNZW51SXRlbXMoeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIFtbV0tNZW51VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsK
KyAgICAgICAgcGFnZSgpLT5jb250ZXh0TWVudUNsaWVudCgpLm1lbnVGcm9tUHJvcG9zZWRNZW51
KCpwYWdlKCksIG1lbnUsIG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3VzZXJE
YXRhLm9iamVjdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhp
cyldKFJldGFpblB0cjxOU01lbnU+JiYgbWVudSkgeworICAgICAgICAgICAgbV9tZW51ID0gV1RG
TW92ZShtZW51KTsKKyAgICAgICAgICAgIFdlYkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRN
ZW51SXRlbXMoeyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9CiAKIE5TV2luZG93ICpXZWJD
b250ZXh0TWVudVByb3h5TWFjOjp3aW5kb3coKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uY3BwCmluZGV4IGFhMTcx
ZjQ4YmM0MGE5NmE4NmQ5NTE0NTFiNTc4ZjYwOWM1NzNmY2UuLjNkY2QwZWMzNWM5MmUzNzIzOTIw
OGE4ZjVkNGY0NjFmYmVhYWMzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L3dpbi9XZWJDb250ZXh0TWVudVByb3h5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHAKQEAgLTM4LDE1ICszOCw2IEBACiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi12b2lkIFdlYkNv
bnRleHRNZW51UHJveHlXaW46OnNob3coKQotewotICAgIFZlY3RvcjxSZWY8V2ViQ29udGV4dE1l
bnVJdGVtPj4gcHJvcG9zZWRBUElJdGVtczsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2NvbnRl
eHQubWVudUl0ZW1zKCkpCi0gICAgICAgIHByb3Bvc2VkQVBJSXRlbXMuYXBwZW5kKFdlYkNvbnRl
eHRNZW51SXRlbTo6Y3JlYXRlKGl0ZW0pKTsKLSAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIgPSBX
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKTsKLSAgICBtX3BhZ2UuY29u
dGV4dE1lbnVDbGllbnQoKS5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUobV9wYWdlLCBX
VEZNb3ZlKHByb3Bvc2VkQVBJSXRlbXMpLCAqbV9jb250ZXh0TWVudUxpc3RlbmVyLCBtX2NvbnRl
eHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV9wYWdlLnByb2Nlc3MoKS50cmFuc2Zvcm1IYW5k
bGVzVG9PYmplY3RzKG1fdXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKLX0KLQogc3RhdGljIEhN
RU5VIGNyZWF0ZU1lbnUoY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSAmY29udGV4dCkKIHsK
ICAgICBITUVOVSBtZW51ID0gOjpDcmVhdGVQb3B1cE1lbnUoKTsKQEAgLTEwNCwxNCArOTUsMTMg
QEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5V2luOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMo
VmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUkKIAogICAgIFVJTlQgZmxhZ3MgPSBUUE1fUklHSFRC
VVRUT04gfCBUUE1fVE9QQUxJR04gfCBUUE1fVkVSUE9TQU5JTUFUSU9OIHwgVFBNX0hPUklaT05U
QUwgfCBUUE1fTEVGVEFMSUdOIHwgVFBNX0hPUlBPU0FOSU1BVElPTjsKICAgICBQT0lOVCBwdCB7
IG1fY29udGV4dC5tZW51TG9jYXRpb24oKS54KCksIG1fY29udGV4dC5tZW51TG9jYXRpb24oKS55
KCkgfTsKLSAgICBIV05EIHduZCA9IG1fcGFnZS52aWV3V2lkZ2V0KCk7CisgICAgSFdORCB3bmQg
PSBwYWdlKCktPnZpZXdXaWRnZXQoKTsKICAgICA6OkNsaWVudFRvU2NyZWVuKHduZCwgJnB0KTsK
LSAgICA6OlRyYWNrUG9wdXBNZW51RXgobV9tZW51LCBmbGFncywgcHQueCwgcHQueSwgbV9wYWdl
LnZpZXdXaWRnZXQoKSwgbnVsbHB0cik7CisgICAgOjpUcmFja1BvcHVwTWVudUV4KG1fbWVudSwg
ZmxhZ3MsIHB0LngsIHB0LnksIHBhZ2UoKS0+dmlld1dpZGdldCgpLCBudWxscHRyKTsKIH0KIAog
V2ViQ29udGV4dE1lbnVQcm94eVdpbjo6V2ViQ29udGV4dE1lbnVQcm94eVdpbihXZWJQYWdlUHJv
eHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCi0gICAgOiBXZWJDb250ZXh0TWVudVByb3h5KFdURk1vdmUoY29udGV4dCks
IHVzZXJEYXRhKQotICAgICwgbV9wYWdlKHBhZ2UpCisgICAgOiBXZWJDb250ZXh0TWVudVByb3h5
KHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQogewogICAgIG1fbWVudSA9IGNyZWF0
ZU1lbnUobV9jb250ZXh0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L3dpbi9XZWJDb250ZXh0TWVudVByb3h5V2luLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5oCmluZGV4IDhlZGE2NzM4NDlkYTJkMWEzOGMzN2Ji
Mzg0ZGRlZjVlNzYwOTVhOWEuLjBjODBkOTcwYzNmOWE5ODdmYWY2MjAwODFjOTA5ZjZjNzAyMTk3
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVu
dVByb3h5V2luLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRN
ZW51UHJveHlXaW4uaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IFdlYkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFdl
YkNvbnRleHRNZW51UHJveHlXaW4gOiBwdWJsaWMgV2ViQ29udGV4dE1lbnVQcm94eSB7CitjbGFz
cyBXZWJDb250ZXh0TWVudVByb3h5V2luIGZpbmFsIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJv
eHkgewogcHVibGljOgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2Us
IENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiAgICAgewpAQCAtNDcsMTAgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJD
b250ZXh0TWVudVByb3h5V2luKFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERhdGEm
JiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhW
ZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2hv
dygpIG92ZXJyaWRlOwogCi0gICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Ci0gICAgUmVmUHRyPFdl
YkNvbnRleHRNZW51TGlzdGVuZXJQcm94eT4gbV9jb250ZXh0TWVudUxpc3RlbmVyOwogICAgIEhN
RU5VIG1fbWVudTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dw
ZS9XZWJDb250ZXh0TWVudVByb3h5V1BFLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUv
V2ViQ29udGV4dE1lbnVQcm94eVdQRS5oCmluZGV4IDhiMmQzYTM2Y2U0ZWMxNGI2MzhhNzc4OTkz
OGVmMGIxNGEzNmVhYjEuLjUyNDNkMGNjZjIzYzEzZDQwY2U0NTc3NWUzMDk3ZmEwZWM4MjAxOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJDb250ZXh0TWVudVBy
b3h5V1BFLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYkNvbnRleHRNZW51
UHJveHlXUEUuaApAQCAtMjksMTkgKzI5LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1j
bGFzcyBXZWJDb250ZXh0TWVudVByb3h5V1BFIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkg
eworY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eVdQRSBmaW5hbCA6IHB1YmxpYyBXZWJDb250ZXh0
TWVudVByb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoQ29udGV4dE1lbnVD
b250ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICBzdGF0
aWMgYXV0byBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRh
JiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eVdQRShXVEZNb3ZlKGNvbnRleHQp
LCB1c2VyRGF0YSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVu
dVByb3h5V1BFKHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVu
dUl0ZW0+PiYmKSBmaW5hbCB7IH0KICAgICB2b2lkIHNob3coKSBmaW5hbCB7IH07CiAKIHByaXZh
dGU6Ci0gICAgV2ViQ29udGV4dE1lbnVQcm94eVdQRShDb250ZXh0TWVudUNvbnRleHREYXRhJiYg
Y29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQotICAgICAgICA6IFdlYkNvbnRleHRN
ZW51UHJveHkoV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCisgICAgV2ViQ29udGV4dE1lbnVQ
cm94eVdQRShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250
ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgICAgIDogV2ViQ29udGV4dE1lbnVQ
cm94eShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkKICAgICB7IH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MWJhZmQw
NDg2NDA3ZjY3Zjc2ZTZhNjJkMDk4MmVkODExMmFhYWRjLi5kOWYzN2NmMWJlYmU3MzQ5ZDNlOTk1
MDdmNDM3NDhkNWUyMWY0MjFjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDctMDIgIEFuZHkgRXN0ZXMgIDxh
ZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyMDc1NTgpOiBbTWFjXSBD
b250ZXh0IGNsaWNrcyBvbiBsaW5rcyBzb21ldGltZXMgcmVzdWx0IGluIG5hdmlnYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM3OTMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0Mjk0MDE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGFuIEFQSSB0ZXN0LgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51Q29udHJv
bENsaWNrLm1tOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9t
YWMvY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLmg6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVGVzdFVJRGVsZWdhdGUg
X3dlYlZpZXc6Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OmZvckVsZW1lbnQ6dXNlcklu
Zm86Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIEFkZGVkIGEgcHJvcGVydHkgZm9yIHJl
c3BvbmRpbmcgdG8KKyAgICAgICAgLV93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bvc2Vk
TWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOi4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hv
c3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpjbGlja0NvdW50Om1v
ZGlmaWVyRmxhZ3M6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IF9tb3Vz
ZVVwQXRQb2ludDpjbGlja0NvdW50Om1vZGlmaWVyRmxhZ3M6XSk6CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpzaW11bGF0ZVByZXNzdXJlOl0pOgorICAgICAgICAo
LVtUZXN0V0tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTp3aXRoRmxh
Z3M6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6XSk6CisgICAg
ICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6d2l0aEZsYWdzOl0pOgorICAgICAg
ICAoLVtUZXN0V0tXZWJWaWV3IHNlbmRDbGlja3NBdFBvaW50Om51bWJlck9mQ2xpY2tzOl0pOiBB
ZGRlZCBtZXRob2RzIGZvciBzZW5kaW5nIG1vdXNlZG93bgorICAgICAgICBhbmQgbW91c2V1cCBl
dmVudHMgd2l0aCBtb2RpZmllcnMuCisKIDIwMjAtMDYtMzAgIEpvbmF0aGFuIEJlZGFyZCAgPGpi
ZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtUZXN0RXhwZWN0YXRpb25zXSBBZGQgYXJjaGl0
ZWN0dXJlIGZvciBBcHBsZSdzIHBvcnRzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2NDEx
MzA3NDZiZThkM2M0ZDJlYmRhZmRlZDk0YzE3MzE1YTNjOTcuLjViN2NjMTgyZGQ1NmU4NTkyNzdk
YzI4MmZhZWIzOTU4YTljN2JkNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDYsNiAr
ODQ2LDcgQEAKIAkJQTEyRERCRkIxRTgzNkYwNzAwQ0Y2Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRo
T3B0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMkREQkY5MUU4MzZGMDcwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW0g
Ki87IH07CiAJCUExMkREQzAwMUU4MzczRTcwMENGNkNBRSAvKiByZW5kZXJlZC1pbWFnZS1leGNs
dWRpbmctb3ZlcmZsb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTJEREJGRjFFODM3M0MxMDBDRjZDQUUgLyogcmVuZGVyZWQtaW1h
Z2UtZXhjbHVkaW5nLW92ZXJmbG93Lmh0bWwgKi87IH07CiAJCUExMkREQzAyMUU4MzdDMjQwMENG
NkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTJEREJGQzFFODM2RkYxMDBDRjZDQUUg
LyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0luLm1tICovOyB9OworCQlBMTNEMUFENjI0
QUQ0NjhGMDAzRjkyQTggLyogY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNEMUFENTI0
QUQ0Njc3MDAzRjkyQTggLyogY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbCAqLzsgfTsK
IAkJQTEzRUJCQUExQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBOTFCODc0MjhE
MDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5tbSAqLzsgfTsKIAkJQTEzRUJCQUIxQjg3NDM0
NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyog
UGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSAqLzsgfTsKIAkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3
MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxl
UGFyYW1ldGVyc1BsdWdJbi5tbSAqLzsgfTsKQEAgLTg2Nyw2ICs4NjgsNyBAQAogCQlBMTc5OTE4
QjFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTc5OTE4OTFFMUNBMjQxMDBBNTA1RUQg
LyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgKi87IH07CiAJCUExN0VBQzU1MjA4MzA1QTAwMDg0QjQx
QiAvKiBmaW5kLnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTdFQUM1NDIwODMwNTZFMDA4NEI0MUIgLyogZmluZC5wZGYgKi87IH07CiAJ
CUExODBDMEZBMUVFNjdERjAwMDQ2OEY0NyAvKiBSdW5PcGVuUGFuZWwubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTgwQzBGOTFFRTY3REYwMDA0NjhG
NDcgLyogUnVuT3BlblBhbmVsLm1tICovOyB9OworCQlBMUMxNDJDMjI0QUE3QjJFMDA0NDQyMDcg
LyogQ29udGV4dE1lbnVDb250cm9sQ2xpY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMUMxNDJDMTI0QUE3QjJFMDA0NDQyMDcgLyogQ29udGV4dE1l
bnVDb250cm9sQ2xpY2subW0gKi87IH07CiAJCUExQzRGQjczMUJBQ0QxQ0EwMDM3NDJEMCAvKiBw
YWdlcy5wYWdlcyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMUM0RkI3MjFCQUNEMUI3MDAzNzQyRDAgLyogcGFnZXMucGFnZXMgKi87IH07CiAJ
CUExREY3NDMyMUM0MUI2NTgwMEEyRjREMCAvKiBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGNzQz
MDFDNDFCNjU4MDBBMkY0RDAgLyogQWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1tICovOyB9
OwogCQlBMUVDMTE4ODFGNDI1NDEyMDBEMDE0NkUgLyogUHJldmlld0NvbnZlcnRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUVDMTE4NzFGNDI1
NDEyMDBEMDE0NkUgLyogUHJldmlld0NvbnZlcnRlci5jcHAgKi87IH07CkBAIC0xMzA0LDYgKzEz
MDYsNyBAQAogCQkJCUY0MUFCOUExMUVGNDY5NkIwMDgzRkEwOCAvKiBjb250ZW50ZWRpdGFibGUt
YW5kLXRleHRhcmVhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRBMzJFQ0IxRjA2
NDMzNzAwNDdDNTQ0IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlBMTZGNjZCQTFDNDBFQjRGMDBCRDREMjQgLyogQ29udGVudEZpbHRl
cmluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUExM0QxQUQ2MjRBRDQ2OEYwMDNG
OTJBOCAvKiBjb250ZXh0LW1lbnUtY29udHJvbC1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTUxNDJCMjczMTUxN0M4QzgwMEMzMkIxOSAvKiBDb250ZXh0TWVudUNhbkNvcHlV
UkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRDBCRDBBODFGNzk5ODJEMDAxQUIy
Q0YgLyogQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1QzI5MzY5NjFENUMwMEVEMDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMjQxMCw2ICsyNDEzLDcgQEAKIAkJQTEyRERCRkMxRTgzNkZG
MTAwQ0Y2Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uc1BsdWdJbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uc1Bs
dWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEyRERCRkYxRTgzNzNDMTAw
Q0Y2Q0FFIC8qIHJlbmRlcmVkLWltYWdlLWV4Y2x1ZGluZy1vdmVyZmxvdy5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gInJlbmRlcmVkLWltYWdlLWV4Y2x1ZGluZy1vdmVyZmxvdy5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEyRERDMDExRTgzNzRGNTAwQ0Y2
Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uc1Byb3RvY29sLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uc1Byb3RvY29sLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExM0QxQUQ1MjRBRDQ2NzcwMDNGOTJBOCAvKiBj
b250ZXh0LW1lbnUtY29udHJvbC1jbGljay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNvbnRleHQtbWVudS1j
b250cm9sLWNsaWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTNFQkI0
OTFCODczMzlFMDAwOTcxMTAgLyogVGVzdFdlYktpdEFQSS53a2J1bmRsZSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5j
bHVkZUluSW5kZXggPSAwOyBwYXRoID0gVGVzdFdlYktpdEFQSS53a2J1bmRsZTsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQTEzRUJCNTIxQjg3MzQ2NjAwMDk3MTEwIC8q
IFdlYlByb2Nlc3NQbHVnSW4ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTEzRUJCNTQxQjg3MzRFMDAwMDk3MTEwIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yNDQzLDYgKzI0NDcsNyBAQAogCQlBMThBQThDQzFDM0ZBMjE4MDA5QjJCOTcgLyogQ29u
dGVudEZpbHRlcmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50
RmlsdGVyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQTRGRTVEMThERDNE
QjcwMEI1RUE4QSAvKiBEb3dubG9hZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERvd25sb2FkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUI4
OUI5OTIyMUUwMjlGMDBFQjRDRUEgLyogU0RLVmFyaWFudC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBTREtWYXJpYW50LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBMUMxNDJDMTI0QUE3QjJFMDA0NDQyMDcgLyogQ29udGV4dE1lbnVDb250
cm9sQ2xpY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb250ZXh0TWVudUNvbnRyb2xDbGlj
ay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDNEZCNkMxQkFDQ0U1MDAwMzc0
MkQwIC8qIFF1aWNrTG9vay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFF1aWNrTG9vay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDNEZCNzIx
QkFDRDFCNzAwMzc0MkQwIC8qIHBhZ2VzLnBhZ2VzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IHBhZ2VzLnBhZ2VzOyBwYXRoID0g
aW9zL3BhZ2VzLnBhZ2VzOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUExREY3NDMw
MUM0MUI2NTgwMEEyRjREMCAvKiBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBbHdheXNSZXZhbGlkYXRlZFVSTFNj
aGVtZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDEzLDYgKzQ0MTgsOCBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk5QkQ0MjM5OTFFMDRC
RDk4MDAyMDAzOTUgLyogQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1h
Z2UubW0gKi8sCisJCQkJQTEzRDFBRDUyNEFENDY3NzAwM0Y5MkE4IC8qIGNvbnRleHQtbWVudS1j
b250cm9sLWNsaWNrLmh0bWwgKi8sCisJCQkJQTFDMTQyQzEyNEFBN0IyRTAwNDQ0MjA3IC8qIENv
bnRleHRNZW51Q29udHJvbENsaWNrLm1tICovLAogCQkJCTgzNDlEM0MxMURCOTZEREEwMDRBOUY2
NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tICovLAogCQkJCUNEMEJEMEE3MUY3OTk3QzIwMDFB
QjJDRiAvKiBDb250ZXh0TWVudUltZ1dpdGhWaWRlby5odG1sICovLAogCQkJCUNEMEJEMEE1MUY3
OTkyMjAwMDFBQjJDRiAvKiBDb250ZXh0TWVudUltZ1dpdGhWaWRlby5tbSAqLywKQEAgLTQ4NzUs
NyArNDg4Miw2IEBACiAJCQkJMDcxMURGNTIyMjZBOTVGQzAwM0REMkY3IC8qIEFWRm91bmRhdGlv
blNvZnRMaW5rVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUI1MUE0MTFBN0UwMDQ0
N0M0QyAvKiBCYWNrRm9yd2FyZExpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQzdGRUIyMDIw
N0MwRjJFMDBEMjMyNzggLyogQmFja2dyb3VuZENvbG9yLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJ
Q0QwMzcwRTMyNEE0NEQ5NjAwQkEzQ0FFIC8qIE1lZGlhTG9hZGluZy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUMxNUNCQjMwMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNh
dGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMxNjkyRENBMjNEMTBEQUUwMDZFODhGNyAvKiBC
YXR0ZXJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdBNjAxREYzNkVFRTAwQUNDQjZDIC8q
IEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLApAQCAtNDkxMCw2ICs0OTE2
LDcgQEAKIAkJCQk1Q0ExREVEOTFGNzRBOTFBMDBFNzFCRDMgLyogQ29udGVudFJ1bGVMaXN0Tm90
aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDRDRjMxRkQyNDk5NDFFODAwOUNCNkNC
IC8qIENvbnRleHRNZW51QWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUI4MUE0
MTFBN0UwMDQ0N0M0QyAvKiBDb250ZXh0TWVudUNhbkNvcHlVUkwubW0gaW4gU291cmNlcyAqLywK
KwkJCQlBMUMxNDJDMjI0QUE3QjJFMDA0NDQyMDcgLyogQ29udGV4dE1lbnVDb250cm9sQ2xpY2su
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0ZCNzI5NzFEQjJFODJGMDBFNDFCRTQgLyogQ29udGV4
dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTgzNDlEM0My
MURCOTZEREUwMDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0QwQkQwQTYxRjc5OTI0RDAwMUFCMkNGIC8qIENvbnRleHRNZW51SW1nV2l0aFZpZGVv
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC01MDk3LDYgKzUxMDQsNyBAQAogCQkJCTA3NkU1MDdGMUY0
NTEzRDYwMDZFOUY1QSAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFMTg2NjQ5
MUY3MkU4RjEwMEEwQ0FCNiAvKiBNYXJrZWRUZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
Q0M3REZFMjI2NjMzMDkwMEUzOTE4MSAvKiBNZWRpYUJ1ZmZlcmluZ1BvbGljeS5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCUNEMDM3MEUzMjRBNDREOTYwMEJBM0NBRSAvKiBNZWRpYUxvYWRpbmcubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDREEzMTU5ODFFRDUzNjUxMDA5RjYwRDMgLyogTWVkaWFQbGF5
YmFja1NsZWVwQXNzZXJ0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDOTQ0MkUxRUYxRkMw
ODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTUxQkU5RTY2MjM3NjA4OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250
ZXh0TWVudUNvbnRyb2xDbGljay5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L21hYy9Db250ZXh0TWVudUNvbnRyb2xDbGljay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjBjNmE2NzY0Y2Mz
MjdjZDBhNmY3NTlmNzEyMzU3ZDMyMGQ2YjhlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51Q29udHJvbENsaWNrLm1tCkBA
IC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlRlc3RDb2NvYS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJPZmZzY3JlZW5X
aW5kb3cuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRl
c3RVSURlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxDYXJi
b24vQ2FyYm9uLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitURVNUKFdlYktpdCwgQ29udGV4dE1lbnVDb250cm9sQ2xpY2spCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjb250ZXh0LW1lbnUtY29udHJvbC1jbGljayJdOwor
CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBib29sIG5hdmlnYXRp
b25BdHRlbXB0ZWQgPSBmYWxzZTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHNldERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb246XihXS05hdmlnYXRpb25BY3Rpb24gKm5hdmlnYXRpb25B
Y3Rpb24sIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkp
IHsKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNl
bCk7CisgICAgICAgIG5hdmlnYXRpb25BdHRlbXB0ZWQgPSB0cnVlOworICAgIH1dOworCisgICAg
YXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKworICAgIGF1
dG8gY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50KDEwLCA1OTApOworICAgIF9fYmxvY2sgYm9vbCBk
b25lID0gZmFsc2U7CisgICAgW3VpRGVsZWdhdGUgc2V0R2V0Q29udGV4dE1lbnVGcm9tUHJvcG9z
ZWRNZW51Ol4oTlNNZW51ICosIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKiwgaWQgPE5TU2Vj
dXJlQ29kaW5nPiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShOU01lbnUgKikpIHsKKyAgICAg
ICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6Y2xpY2tQb2ludCB3aXRoRmxhZ3M6TlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbnRyb2xdOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuaWwpOworICAg
ICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9p
bnQ6Y2xpY2tQb2ludCBzaW11bGF0ZVByZXNzdXJlOk5PIHdpdGhGbGFnczpOU0V2ZW50TW9kaWZp
ZXJGbGFnQ29udHJvbF07CisgICAgVXRpbDo6cnVuKCZkb25lKTsKKworICAgIEVYUEVDVF9GQUxT
RShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5jbGlja1Nl
ZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW1t3ZWJWaWV3IG9iamVjdEJ5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cubW91c2V1cFNlZW4iXSBib29sVmFsdWVdKTsKKyAg
ICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndp
bmRvdy5jb250ZXh0bWVudVNlZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfVFJVRShbW3dl
YlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5tb3VzZWRvd25TZWVu
Il0gYm9vbFZhbHVlXSk7CisKKyAgICBFWFBFQ1RfRkFMU0UobmF2aWdhdGlvbkF0dGVtcHRlZCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9j
b250ZXh0LW1lbnUtY29udHJvbC1jbGljay5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvbWFjL2NvbnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDU2ZmU5N2Q3MmM0N2Q1YzIwYTZhNWZhMGNhZWQxMTM0MmM1MGNiMQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9jb250ZXh0LW1lbnUtY29u
dHJvbC1jbGljay5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdjbGljaycs
ICgpID0+IGNsaWNrU2VlbiA9IHRydWUpOworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdjb250
ZXh0bWVudScsICgpID0+IGNvbnRleHRtZW51U2VlbiA9IHRydWUpOworICAgICAgICBhZGRFdmVu
dExpc3RlbmVyKCdtb3VzZWRvd24nLCAoKSA9PiBtb3VzZWRvd25TZWVuID0gdHJ1ZSk7CisgICAg
ICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCAoKSA9PiBtb3VzZXVwU2VlbiA9IHRydWUp
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGEgaHJlZj0naHR0cHM6Ly93
d3cuYXBwbGUuY29tJz5saW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5oCmluZGV4IDY0OTljY2M3ZTA0M2M0NzYwMjlmZTcy
NWI3MjgyOWZmNzE0NjEzMTAuLjRhNGJjM2FiZWRmZWU2OTgxZmM1Yzg3ZjY4OGI0YzE2YmM3ZGUx
YTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdhdGUu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLmgKQEAgLTI4
LDYgKzI4LDkgQEAKIEBpbnRlcmZhY2UgVGVzdFVJRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURl
bGVnYXRlPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXnJ1bkphdmFTY3Jp
cHRBbGVydFBhbmVsV2l0aE1lc3NhZ2UpKFdLV2ViVmlldyAqLCBOU1N0cmluZyAqLCBXS0ZyYW1l
SW5mbyAqLCB2b2lkICheKSh2b2lkKSk7CisjaWYgUExBVEZPUk0oTUFDKQorQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIHZvaWQgKF5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUpKE5T
TWVudSAqLCBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICosIGlkIDxOU1NlY3VyZUNvZGluZz4s
IHZvaWQgKF4pKE5TTWVudSAqKSk7CisjZW5kaWYKIAogLSAoTlNTdHJpbmcgKil3YWl0Rm9yQWxl
cnQ7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdh
dGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLm1tCmluZGV4
IDUwYTQwMDYwNWFlMzRjMGE5M2E5Mzg2MDg4MzU0ZTU1MjY2YTk0MWEuLmU3Y2VhNjU4NDM4ZjVi
OGVlMDg0Njg1ODkxNjY0ZjNiODU3OWYzMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFVJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0VUlEZWxlZ2F0ZS5tbQpAQCAtNDAsNiArNDAsMTYgQEAgLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5T
U3RyaW4KICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1B
QykKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0Q29udGV4dE1lbnVG
cm9tUHJvcG9zZWRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJ
bmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU01lbnUgKikpY29tcGxldGlvbkhhbmRs
ZXIKK3sKKyAgICBpZiAoX2dldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudSkKKyAgICAgICAg
X2dldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudShtZW51LCBlbGVtZW50LCB1c2VySW5mbywg
Y29tcGxldGlvbkhhbmRsZXIpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
bWVudSk7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCiAtIChOU1N0cmluZyAqKXdhaXRG
b3JBbGVydAogewogICAgIEVYUEVDVF9GQUxTRShzZWxmLnJ1bkphdmFTY3JpcHRBbGVydFBhbmVs
V2l0aE1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0
V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApp
bmRleCA0NTg3NDI5MWRhZmU5OTMwNTk0MmZjMTE2M2Y4Y2UwMjJmOGNjNjllLi41YTUzZWQwYmZm
NzgyMzJlYmMxZmY5MzY5ZmMyYmViYTZmN2NlOWUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0xMjEsOSArMTIxLDExIEBACiBAaW50ZXJmYWNlIFRlc3RXS1dl
YlZpZXcgKE1hY09ubHkpCiAvLyBTaW11bGF0ZXMgY2xpY2tpbmcgd2l0aCBhIHByZXNzdXJlLXNl
bnNpdGl2ZSBkZXZpY2UsIGlmIHBvc3NpYmxlLgogLSAodm9pZCltb3VzZURvd25BdFBvaW50OihO
U1BvaW50KXBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNz
dXJlOworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cgc2lt
dWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlIHdpdGhGbGFnczooTlNFdmVudE1v
ZGlmaWVyRmxhZ3MpZmxhZ3M7CiAtICh2b2lkKW1vdXNlRHJhZ1RvUG9pbnQ6KE5TUG9pbnQpcG9p
bnRJbldpbmRvdzsKIC0gKHZvaWQpbW91c2VFbnRlckF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldp
bmRvdzsKIC0gKHZvaWQpbW91c2VVcEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdzsKKy0g
KHZvaWQpbW91c2VVcEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5T
RXZlbnRNb2RpZmllckZsYWdzKWZsYWdzOwogLSAodm9pZCltb3VzZU1vdmVUb1BvaW50OihOU1Bv
aW50KXBvaW50SW5XaW5kb3cgd2l0aEZsYWdzOihOU0V2ZW50TW9kaWZpZXJGbGFncylmbGFnczsK
IC0gKHZvaWQpc2VuZENsaWNrc0F0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyBudW1iZXJP
ZkNsaWNrczooTlNVSW50ZWdlciludW1iZXJPZkNsaWNrczsKIC0gKHZvaWQpc2VuZENsaWNrQXRQ
b2ludDooTlNQb2ludClwb2ludEluV2luZG93OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDU4ODg5MTg3ZTVjMmQ1ODY3MGY5MTY5Yjg5YjdlMTBhYWI3
OTIwNGIuLmRmNTUyM2M2ZjU2Yzc1NzY4MjI3ZGY3NDljOWEyNzY1ZWI0ZDVlZjEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjkwLDExICsyOTAsMTAgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlldzooVGVzdFdLV2ViVmlldyAqKXdlYlZpZXcg
Y29udGVudFJlY3Q6KE5TUmVjdCljb24KICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAodm9pZClf
bW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNp
bXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDooTlNVSW50ZWdlciljbGlja0NvdW50CistICh2b2lk
KV9tb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wp
c2ltdWxhdGVQcmVzc3VyZSBjbGlja0NvdW50OihOU1VJbnRlZ2VyKWNsaWNrQ291bnQgbW9kaWZp
ZXJGbGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3MpbW9kaWZpZXJGbGFncwogewogICAgIE5TRXZl
bnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogCi0gICAg
TlNFdmVudE1hc2sgbW9kaWZpZXJGbGFncyA9IDA7CiAgICAgaWYgKHNpbXVsYXRlUHJlc3N1cmUp
CiAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1hc2tQcmVzc3VyZTsKIApAQCAtMzE2
LDkgKzMxNSw5IEBAIC0gKHZvaWQpX21vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2lt
dWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlCiAgICAgfQogfQogCi0tICh2b2lk
KV9tb3VzZVVwQXRQb2ludDooTlNQb2ludClwb2ludCBjbGlja0NvdW50OihOU1VJbnRlZ2VyKWNs
aWNrQ291bnQKKy0gKHZvaWQpX21vdXNlVXBBdFBvaW50OihOU1BvaW50KXBvaW50IGNsaWNrQ291
bnQ6KE5TVUludGVnZXIpY2xpY2tDb3VudCBtb2RpZmllckZsYWdzOihOU0V2ZW50TW9kaWZpZXJG
bGFncyltb2RpZmllckZsYWdzCiB7Ci0gICAgW3NlbGYgc2VuZEV2ZW50OltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOnBvaW50IG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6X3dlYlZpZXcuZXZlbnRUaW1lc3RhbXAgd2luZG93TnVtYmVy
OnNlbGYud2luZG93TnVtYmVyIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250
ZXh0XSBldmVudE51bWJlcjorK2dFdmVudE51bWJlciBjbGlja0NvdW50OmNsaWNrQ291bnQgcHJl
c3N1cmU6MF1dOworICAgIFtzZWxmIHNlbmRFdmVudDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdzOm1v
ZGlmaWVyRmxhZ3MgdGltZXN0YW1wOl93ZWJWaWV3LmV2ZW50VGltZXN0YW1wIHdpbmRvd051bWJl
cjpzZWxmLndpbmRvd051bWJlciBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29u
dGV4dF0gZXZlbnROdW1iZXI6KytnRXZlbnROdW1iZXIgY2xpY2tDb3VudDpjbGlja0NvdW50IHBy
ZXNzdXJlOjBdXTsKIH0KIAogI2VuZGlmCkBAIC03MjEsMTIgKzcyMCwyMiBAQCAtIChOU1RpbWVJ
bnRlcnZhbClldmVudFRpbWVzdGFtcAogCiAtICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9p
bnQpcG9pbnRJbldpbmRvdyBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUK
IHsKLSAgICBbX2hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnRJbldpbmRvdyBzaW11
bGF0ZVByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDoxXTsKKyAgICBbc2VsZiBt
b3VzZURvd25BdFBvaW50OnBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTpzaW11bGF0ZVBy
ZXNzdXJlIHdpdGhGbGFnczowXTsKK30KKworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1Bv
aW50KXBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJl
IHdpdGhGbGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3MpZmxhZ3MKK3sKKyAgICBbX2hvc3RXaW5k
b3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnRJbldpbmRvdyBzaW11bGF0ZVByZXNzdXJlOnNpbXVs
YXRlUHJlc3N1cmUgY2xpY2tDb3VudDoxIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NdOwogfQogCiAtICh2
b2lkKW1vdXNlVXBBdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cKIHsKLSAgICBbX2hvc3RX
aW5kb3cgX21vdXNlVXBBdFBvaW50OnBvaW50SW5XaW5kb3cgY2xpY2tDb3VudDoxXTsKKyAgICBb
c2VsZiBtb3VzZVVwQXRQb2ludDpwb2ludEluV2luZG93IHdpdGhGbGFnczowXTsKK30KKworLSAo
dm9pZCltb3VzZVVwQXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93IHdpdGhGbGFnczooTlNF
dmVudE1vZGlmaWVyRmxhZ3MpZmxhZ3MKK3sKKyAgICBbX2hvc3RXaW5kb3cgX21vdXNlVXBBdFBv
aW50OnBvaW50SW5XaW5kb3cgY2xpY2tDb3VudDoxIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NdOwogfQog
CiAtICh2b2lkKW1vdXNlTW92ZVRvUG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3aXRoRmxh
Z3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzCkBAIC03MzcsOCArNzQ2LDggQEAgLSAodm9p
ZCltb3VzZU1vdmVUb1BvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cgd2l0aEZsYWdzOihOU0V2
ZW50TW9kaWZpZXJGbGFncykKIC0gKHZvaWQpc2VuZENsaWNrc0F0UG9pbnQ6KE5TUG9pbnQpcG9p
bnRJbldpbmRvdyBudW1iZXJPZkNsaWNrczooTlNVSW50ZWdlciludW1iZXJPZkNsaWNrcwogewog
ICAgIGZvciAoTlNVSW50ZWdlciBjbGlja0NvdW50ID0gMTsgY2xpY2tDb3VudCA8PSBudW1iZXJP
ZkNsaWNrczsgKytjbGlja0NvdW50KSB7Ci0gICAgICAgIFtfaG9zdFdpbmRvdyBfbW91c2VEb3du
QXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRlUHJlc3N1cmU6Tk8gY2xpY2tDb3VudDpjbGlj
a0NvdW50XTsKLSAgICAgICAgW19ob3N0V2luZG93IF9tb3VzZVVwQXRQb2ludDpwb2ludEluV2lu
ZG93IGNsaWNrQ291bnQ6Y2xpY2tDb3VudF07CisgICAgICAgIFtfaG9zdFdpbmRvdyBfbW91c2VE
b3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRlUHJlc3N1cmU6Tk8gY2xpY2tDb3VudDpj
bGlja0NvdW50IG1vZGlmaWVyRmxhZ3M6MF07CisgICAgICAgIFtfaG9zdFdpbmRvdyBfbW91c2VV
cEF0UG9pbnQ6cG9pbnRJbldpbmRvdyBjbGlja0NvdW50OmNsaWNrQ291bnQgbW9kaWZpZXJGbGFn
czowXTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403444</attachid>
            <date>2020-07-03 00:20:21 -0700</date>
            <delta_ts>2020-07-07 22:46:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213793-20200703002021.patch</filename>
            <type>text/plain</type>
            <size>61296</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExMTdjZTZkMGM3OGM1NDJl
YWRlOTk0MGJmOGQyNzc4ZDAyZTYyZWMuLmUwYjc0ZTYzM2M2OGU0ZGZjYWZiZGU4YmNjZmZmNzU1
MzM2OGRlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDIwLTA3LTAyICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjA3NTU4KTog
W01hY10gQ29udGV4dCBjbGlja3Mgb24gbGlua3Mgc29tZXRpbWVzIHJlc3VsdCBpbiBuYXZpZ2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
NzkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDI5NDAxNT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJQYWdlUHJveHk6OnNob3dDb250ZXh0
TWVudSB3YXMgd3JpdHRlbiB3aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgV2ViQ29udGV4dE1lbnVQ
cm94eTo6c2hvdworICAgICAgICB3b3VsZCBwcmVzZW50IGEgY29udGV4dCBtZW51IGFuZCBzcGlu
IGEgbmVzdGVkIHJ1biBsb29wLCBibG9ja2luZyB1bnRpbCB0aGUgbWVudSBkaXNtaXNzZXMuCisg
ICAgICAgIE9uY2UgV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyByZXR1cm5zLCBzaG93Q29udGV4
dE1lbnUgd291bGQgc2VuZCB0aGUKKyAgICAgICAgV2ViUGFnZTo6Q29udGV4dE1lbnVIaWRkZW4g
bWVzc2FnZSwgdGVsbGluZyB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRoYXQgaXQncyBPSyB0byBy
ZXN1bWUKKyAgICAgICAgcHJvY2Vzc2luZyBtb3VzZSBldmVudHMuCisKKyAgICAgICAgVGhpcyBh
c3N1bXB0aW9uIHdhcyBpbnZhbGlkYXRlZCBpbiByMjA3NTU4LCB3aGljaCBhZGRlZCBnZXRDb250
ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnVBc3luYworICAgICAgICB0byBXS1BhZ2VDb250ZXh0TWVu
dUNsaWVudC4gSWYgdGhlIGNvbnRleHQgbWVudSBjbGllbnQgcHJvdmlkZXMgY29udGV4dCBtZW51
IGl0ZW1zCisgICAgICAgIGFzeW5jaHJvbm91c2x5LCBXZWJDb250ZXh0TWVudVByb3h5OjpzaG93
IHdvdWxkIHJldHVybiAtLSBhbmQgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3b3VsZAorICAgICAg
ICByZXN1bWUgcHJvY2Vzc2luZyBtb3VzZSBldmVudHMgLS0gYmVmb3JlIHRoZSBjb250ZXh0IG1l
bnUgd2FzIGV2ZW4gcHJlc2VudGVkLiBTaW5jZSBjb250ZXh0CisgICAgICAgIG1lbnUgcHJlc2Vu
dGF0aW9uIGlzIHRyaWdnZXJlZCBieSBhIG1vdXNlIHByZXNzIGV2ZW50LCBpdCdzIHBvc3NpYmxl
IHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgbW91c2UgcmVsZWFzZSBldmVudCB3b3Vs
ZCBiZSBkZWxpdmVyZWQgYWZ0ZXIgZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51QXN5bmMg
d2FzCisgICAgICAgIGRpc3BhdGNoZWQgYnV0IGJlZm9yZSB0aGUgY2xpZW50IHJlc3BvbmRlZCB3
aXRoIG1lbnUgaXRlbXMgdG8gcHJlc2VudC4gSWYgdGhpcyBoYXBwZW5lZCwKKyAgICAgICAgc2lu
Y2UgbW91c2UgZXZlbnQgcHJvY2Vzc2luZyB3YXMgbm90IGRpc2FibGVkLCB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHdvdWxkIGRpc3BhdGNoIGEgRE9NCisgICAgICAgIGNsaWNrIGV2ZW50IHRvIHRo
ZSBwYWdlLCBwb3NzaWJseSB0cmlnZ2VyaW5nIGEgbmF2aWdhdGlvbi4KKworICAgICAgICBGaXgg
dGhpcyBieSB0ZWFjaGluZyBXZWJQYWdlUHJveHkgdG8gZGVmZXIgc2VuZGluZyBXZWJQYWdlOjpD
b250ZXh0TWVudUhpZGRlbiB1bnRpbCB0aGUKKyAgICAgICAgY29udGV4dCBtZW51IGhhcyBiZWVu
IGRpc21pc3NlZCwgZXZlbiBpbiBjYXNlcyB3aGVyZSB0aGUgY29udGV4dCBtZW51IGNsaWVudCBw
cm92aWRlcyBtZW51CisgICAgICAgIGl0ZW1zIGFzeW5jaHJvbm91c2x5LiBBbHNvLCB0YWtlIHRo
ZSBvcHBvcnR1bml0eSB0byBtb2Rlcm5pemUgV2ViQ29udGV4dE1lbnVQcm94eSBhbmQgaXRzCisg
ICAgICAgIHN1YmNsYXNzZXMgYnksIGUuZy4sIG1vdmluZyBkdXBsaWNhdGVkIHN1YmNsYXNzIGNv
ZGUgaW50byB0aGUgYmFzZSBjbGFzcywgdXNpbmcgdGhlIGNsaWVudAorICAgICAgICBwYXR0ZXJu
LCBhbmQgdXNpbmcgV2Vha1B0cnMgaW5zdGVhZCBvZiByYXcgcG9pbnRlcnMvcmVmZXJlbmNlcy4K
KworICAgICAgICBOZXcgQVBJIHRlc3Q6IFdlYktpdC5Db250ZXh0TWVudUNvbnRyb2xDbGljawor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oOgorICAgICAg
ICAoQVBJOjpDb250ZXh0TWVudUNsaWVudDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKEFQ
STo6Q29udGV4dE1lbnVDbGllbnQ6OmNhblNob3dDb250ZXh0TWVudSBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlQ29u
dGV4dE1lbnVDbGllbnQpOiBBZGRlZCBjYW5TaG93Q29udGV4dE1lbnUgdG8gZGV0ZXJtaW5lIHdo
ZXRoZXIgdGhlIGNsaWVudAorICAgICAgICBjYW4gc2hvdyBhIGNvbnRleHQgbWVudSB3aXRob3V0
IGFjdHVhbGx5IHNob3dpbmcgaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVD
b250ZXh0TWVudVByb3h5KTogUGFzc2VkIHBhZ2UgdG8KKyAgICAgICAgV2ViQ29udGV4dE1lbnVQ
cm94eVdQRTo6Y3JlYXRlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51TGlz
dGVuZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQ
cm94eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5Ojp1c2VDb250ZXh0TWVudUl0ZW1zKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjppbnZhbGlkYXRlKTogRGVsZXRl
ZC4gTm90IG5lZWRlZCBub3cgdGhhdCBtX2NsaWVudCBpcworICAgICAgICBhIFdlYWtQdHIuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Y3JlYXRlKTogUmF0aGVy
IHRoYW4gc3RvcmUgYSByYXcgcG9pbnRlciB0byBhCisgICAgICAgIFdlYkNvbnRleHRNZW51UHJv
eHksIHN0b3JlIGEgV2Vha1B0ciB0byBhIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xp
ZW50ICh3aGljaAorICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5IGltcGxlbWVudHMpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0TWVudVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KTogU3RvcmVkIGEg
V2Vha1B0ciB0byBhIFdlYlBhZ2VQcm94eQorICAgICAgICByYXRoZXIgdGhhbiBzdG9yaW5nIGEg
cmF3IHBvaW50ZXIgdG8gdGhlIHNhbWUgaW4gZWFjaCBzdWJjbGFzcy4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cHJvcG9zZWRJdGVtcyBjb25zdCk6IEFkZGVkIGEgdmly
dHVhbCBmdW5jdGlvbiB0byBjcmVhdGUKKyAgICAgICAgcHJvcG9zZWQgV2ViQ29udGV4dE1lbnVJ
dGVtcyBmcm9tIG1fY29udGV4dCdzIG1lbnUgaXRlbXMuIFdlYkNvbnRleHRNZW51UHJveHlHdGsg
b3ZlcnJpZGVzCisgICAgICAgIHRoaXMgdG8gZG8gc29tZXRoaW5nIHNsaWdodGx5IGRpZmZlcmVu
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyk6IEFkZGVkIGEg
YmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiB0aGF0IGNyZWF0ZXMgYQorICAgICAgICBXZWJDb250
ZXh0TWVudUxpc3RlbmVyUHJveHkgYW5kIGNhbGxzIENvbnRleHRNZW51Q2xpZW50OjpnZXRDb250
ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51
UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMpOiBBZGRlZCBhIGJhc2UgY2xhc3MgaW1wbGVtZW50
YXRpb24gdGhhdAorICAgICAgICBwZXJmb3JtcyB0aGUgd29yayBwcmV2aW91c2x5IGRvbmUgaW4g
V2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUuIENhbGxzCisgICAgICAgIHNob3dDb250ZXh0
TWVudVdpdGhJdGVtcywgd2hpY2ggbm93IGFsd2F5cyBzeW5jaHJvbm91c2x5IHByZXNlbnRzIHRo
ZSBtZW51LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaDogSW5o
ZXJpdGVkIGZyb20gV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpDbGllbnQuCisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHk6OnBhZ2UgY29uc3QpOiBBZGRlZCBmb3IgdXNl
IGJ5IFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dD
b250ZXh0TWVudSk6IE1vdmVkIGNvZGUgdGhhdCBhc3N1bWVzIHN5bmNocm9ub3VzIG1lbnUKKyAg
ICAgICAgcHJlc2VudGF0aW9uIHRvIFdlYkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRNZW51
SXRlbXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpwcm9wb3NlZEl0
ZW1zIGNvbnN0KTogSW1wbGVtZW50ZWQgR1RLJ3Mgc3BlY2lhbCB2ZXJzaW9uCisgICAgICAgIHRo
YXQgZXhjbHVkZXMgQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51LgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpzaG93KTogRGVsZXRlZC4gV2ViQ29udGV4dE1lbnVQ
cm94eTo6c2hvdyBoYW5kbGVzIHRoaXMgbm93LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5R3RrOjphcHBlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVBy
b3h5R3RrOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0TWVudVByb3h5R3RrOjpXZWJDb250ZXh0TWVudVByb3h5R3RrKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaDogTW92ZWQgbV9wYWdlIHRvIFdl
YkNvbnRleHRNZW51UHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1Nl
cnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tTaGFyaW5nU2VydmljZVBpY2tl
ckRlbGVnYXRlIHNoYXJpbmdTZXJ2aWNlOmRpZFNoYXJlSXRlbXM6XSk6IENoYW5nZWQgbm93IHRo
YXQKKyAgICAgICAgV2ViQ29udGV4dE1lbnVQcm94eTo6cGFnZSByZXR1cm5zIGEgcG9pbnRlci4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpwYWdlIGNvbnN0KTogRGVsZXRl
ZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6On5XZWJD
b250ZXh0TWVudVByb3h5TWFjKTogTm8gbmVlZCB0byBpbnZhbGlkYXRlCisgICAgICAgIG1fY29u
dGV4dE1lbnVMaXN0ZW5lciBub3cgdGhhdCBpdCBzdG9yZXMgYSBXZWFrUHRyIHRvIGl0cyBXZWJD
b250ZXh0TWVudVByb3h5LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFj
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnNob3dTZXJ2aWNlc01lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKTogT3ZlcnJvZGUgdG8gaGFuZGxlIHNl
cnZpY2UgbWVudXMuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnVz
ZUNvbnRleHRNZW51SXRlbXMpOiBPdmVycm9kZSB0byBnZXQgdGhlIHN0YW5kYXJkIE1hYyBtZW51
CisgICAgICAgIGl0ZW1zIGFuZCBkaXNwYXRjaCBDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Q
cm9wb3NlZE1lbnUgYmVmb3JlIHNob3dpbmcgdGhlIG1lbnUuCisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudSk6IERlbGV0ZWQuIFdlYkNvbnRl
eHRNZW51UHJveHk6OnNob3cgbm93CisgICAgICAgIGhhbmRsZXMgdGhpcy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHRNZW51UHJveHlXaW46OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlXaW46OldlYkNvbnRleHRNZW51UHJv
eHlXaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5V2luOjpzaG93KTog
RGVsZXRlZC4gV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyBub3cgaGFuZGxlcyB0aGlzLgorICAg
ICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL3dwZS9XZWJDb250ZXh0TWVudVByb3h5V1BFLmg6IFBhc3NlZCBwYWdlIHRv
IHRoZSBXZWJDb250ZXh0TWVudVByb3h5IGN0b3IuCisKIDIwMjAtMDctMDIgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIF9XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIFNQSSBmb3IgSFNUUyBzdG9yYWdlIHRvIHJlcGxhY2Ug
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmhzdHNTdG9yYWdlRGlyZWN0b3J5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oCmluZGV4
IDgxNmY3MWUxMjY3MGNiM2Q2NWIxZTYzMjgwM2E2YjQwZWY3ZGJmYTIuLmUzMzczMzllNWFmZjg5
ZjY0MTlhMmIzYTVmNTUzMWUyYmNhNDZjZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oCkBAIC01NSw3ICs1NSw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBWZWN0b3I8UmVmPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVt
Pj4mJiBwcm9wb3NlZE1lbnUsIFdlYktpdDo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5JiBs
aXN0ZW5lciwgY29uc3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSYsIEFQSTo6T2JqZWN0
KiAvKiB1c2VyRGF0YSAqLykgeyBsaXN0ZW5lci51c2VDb250ZXh0TWVudUl0ZW1zKFdURk1vdmUo
cHJvcG9zZWRNZW51KSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tQ29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRN
ZW51SXRlbURhdGEmKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0NvbnRleHRNZW51KFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBWZWN0b3I8
UmVmPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtPj4mKSB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFZlY3RvcjxSZWY8V2ViS2l0OjpXZWJDb250ZXh0
TWVudUl0ZW0+PiYpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93Q29udGV4dE1lbnUoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoaWRlQ29udGV4dE1lbnUo
V2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IHJldHVybiBmYWxzZTsgfQogCiAjaWYgUExBVEZPUk0o
TUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYmEyZmVl
Y2QyODg1YWNjNDVkZDE1M2ZmNTAyZDQ5Zjc2NTBmMmM2ZC4uY2RlMjBhYTEyMWExZjJkMTZhOGQy
ZTI1NDZlZWNlZTcxODNiYmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNS0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtOTI2LDEwICs5MjYsMTAgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlQ29u
dGV4dE1lbnVDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUNvbnRleHRNZW51
Q2wKICAgICAgICAgICAgIG1fY2xpZW50LmN1c3RvbUNvbnRleHRNZW51SXRlbVNlbGVjdGVkKHRv
QVBJKCZwYWdlKSwgdG9BUEkoV2ViQ29udGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbURhdGEpLnB0
cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIGJv
b2wgc2hvd0NvbnRleHRNZW51KFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3QgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+
PiYgbWVudUl0ZW1zVmVjdG9yKSBvdmVycmlkZQorICAgICAgICB2b2lkIHNob3dDb250ZXh0TWVu
dShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRp
b24sIGNvbnN0IFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mIG1lbnVJdGVtc1ZlY3Rv
cikgb3ZlcnJpZGUKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5zaG93Q29u
dGV4dE1lbnUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYg
KCFjYW5TaG93Q29udGV4dE1lbnUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiBtZW51SXRlbXM7CiAgICAgICAgICAg
ICBtZW51SXRlbXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtZW51SXRlbXNWZWN0b3Iuc2l6ZSgp
KTsKQEAgLTkzOCw4ICs5MzgsMTEgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlQ29udGV4dE1lbnVDbGll
bnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2wKICAgICAgICAg
ICAgICAgICBtZW51SXRlbXMudW5jaGVja2VkQXBwZW5kKG1lbnVJdGVtLnB0cigpKTsKIAogICAg
ICAgICAgICAgbV9jbGllbnQuc2hvd0NvbnRleHRNZW51KHRvQVBJKCZwYWdlKSwgdG9BUEkobWVu
dUxvY2F0aW9uKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1vdmUobWVudUl0ZW1zKSku
cHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CiAKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBib29sIGNhblNob3dDb250ZXh0TWVudSgpIGNvbnN0
IG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2NsaWVudC5zaG93Q29u
dGV4dE1lbnU7CiAgICAgICAgIH0KIAogICAgICAgICBib29sIGhpZGVDb250ZXh0TWVudShXZWJQ
YWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDU3MzI2M2VlODhmZTIzMmIzMzU5NTIz
Njk4NTU2NjU0NjE3MmYyOTMuLjhhMjBjZWNjMTUzNDU5YmZkOTc2YjlkMGI5YWEwNmIxZTVhNTM1
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwCkBAIC0yNjMsOSArMjYzLDkgQEAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQ
YWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWcKIH0K
IAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotUmVmPFdlYkNvbnRleHRNZW51UHJveHk+IFBh
Z2VDbGllbnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRl
eHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCitS
ZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbnRleHRNZW51
UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4
dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIHJldHVybiBXZWJDb250ZXh0TWVu
dVByb3h5V1BFOjpjcmVhdGUoV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpOworICAgIHJldHVy
biBXZWJDb250ZXh0TWVudVByb3h5V1BFOjpjcmVhdGUocGFnZSwgV1RGTW92ZShjb250ZXh0KSwg
dXNlckRhdGEpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuY3BwCmluZGV4IDExNWYwMzNhYmRiMDI0
Yzg0YzAzOTJlNjQyODAzNzEyNmUzMWM5NjAuLmRjNzQ4NGVjYmQyY2E4YTkxMDc1NzJiNmI4Yjlm
NWE4MzI0YjRmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwzNSArMjgsMjQgQEAKIAogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQogCi0jaW5jbHVkZSAiQVBJQXJyYXkuaCIKLSNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKLSNpbmNsdWRlICJXS0FycmF5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJ
dGVtLmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJDb250ZXh0TWVudUxpc3Rl
bmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eShXZWJDb250ZXh0TWVudVByb3h5
KiBjb250ZXh0TWVudU1hYykKLSAgICA6IG1fY29udGV4dE1lbnVNYWMoY29udGV4dE1lbnVNYWMp
CitXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94
eShXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OkNsaWVudCYgY2xpZW50KQorICAgIDogbV9j
bGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKIH0KIAotV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5Ojp+V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KCkKLXsKLX0KK1dlYkNvbnRleHRN
ZW51TGlzdGVuZXJQcm94eTo6fldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSgpID0gZGVmYXVs
dDsKIAogdm9pZCBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OnVzZUNvbnRleHRNZW51SXRl
bXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmIGl0ZW1zKQogewotICAgIGlmICgh
bV9jb250ZXh0TWVudU1hYykKKyAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX2NvbnRleHRNZW51TWFjLT5zaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoV1RGTW92ZShp
dGVtcykpOwotfQotCi12b2lkIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0
ZSgpCi17Ci0gICAgbV9jb250ZXh0TWVudU1hYyA9IG51bGxwdHI7CisgICAgbV9jbGllbnQtPnVz
ZUNvbnRleHRNZW51SXRlbXMoV1RGTW92ZShpdGVtcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51
TGlzdGVuZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVM
aXN0ZW5lclByb3h5LmgKaW5kZXggN2ZkMzQwNjM1ZmEzODY4Y2VkMDdhMGI0MWE1MTA5YjE0N2Yz
MTg4Zi4uN2RiMTNjZGViNDNkZDA3NzI5Njg2MzYwNTdlMjFjMGUxNjg4ZTczZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjgsMzEgKzI4LDM1IEBACiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKICNpbmNsdWRl
ICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJXS0FycmF5LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4
dE1lbnVQcm94eS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewot
Y2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eU1hYzsKKworY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVt
OwogCiBjbGFzcyBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkgOiBwdWJsaWMgQVBJOjpPYmpl
Y3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpDb250ZXh0TWVudUxpc3RlbmVyPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJD
b250ZXh0TWVudVByb3h5KiBjb250ZXh0TWVudU1hYykKKyAgICBzdHJ1Y3QgQ2xpZW50IDogQ2Fu
TWFrZVdlYWtQdHI8Q2xpZW50PiB7CisgICAgICAgIHZpcnR1YWwgfkNsaWVudCgpID0gZGVmYXVs
dDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9yPFJlZjxX
ZWJDb250ZXh0TWVudUl0ZW0+PiYmKSA9IDA7CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8V2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5PiBjcmVhdGUoQ2xpZW50JiBjbGllbnQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHko
Y29udGV4dE1lbnVNYWMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4
dE1lbnVMaXN0ZW5lclByb3h5KGNsaWVudCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkNv
bnRleHRNZW51TGlzdGVuZXJQcm94eSgpOwogCiAgICAgdm9pZCB1c2VDb250ZXh0TWVudUl0ZW1z
KFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJik7CiAKLSAgICB2b2lkIGludmFsaWRh
dGUoKTsKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5
KFdlYkNvbnRleHRNZW51UHJveHkqKTsKKyAgICBleHBsaWNpdCBXZWJDb250ZXh0TWVudUxpc3Rl
bmVyUHJveHkoQ2xpZW50Jik7CiAKLSAgICBXZWJDb250ZXh0TWVudVByb3h5KiBtX2NvbnRleHRN
ZW51TWFjOworICAgIFdlYWtQdHI8Q2xpZW50PiBtX2NsaWVudDsKIH07Ci0gICAgCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCmluZGV4IDdm
YjJjNTJjYzI3MTA1ZTIxMjhlYWNjYmUyYzM3YmQ3ZTU0YjJlMjIuLjNkYzZjMzc2Nzg2MDQ1NjY1
N2YyYTE5YmYyZDZhZGYyYmIzNWFkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRNZW51UHJveHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE2ICsyOCw1MCBAQAogCiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCiAKKyNpbmNsdWRlICJBUElDb250ZXh0TWVudUNsaWVudC5oIgorI2luY2x1
ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29udGV4
dE1lbnVQcm94eTo6V2ViQ29udGV4dE1lbnVQcm94eShDb250ZXh0TWVudUNvbnRleHREYXRhJiYg
Y29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorV2ViQ29udGV4dE1lbnVQcm94eTo6
V2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4
dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgOiBtX2NvbnRl
eHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEpCisgICAgLCBt
X3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCit7Cit9CisKK1dlYkNvbnRleHRNZW51UHJveHk6On5X
ZWJDb250ZXh0TWVudVByb3h5KCkgPSBkZWZhdWx0OworCitWZWN0b3I8UmVmPFdlYkNvbnRleHRN
ZW51SXRlbT4+IFdlYkNvbnRleHRNZW51UHJveHk6OnByb3Bvc2VkSXRlbXMoKSBjb25zdAorewor
ICAgIHJldHVybiBXVEY6Om1hcChtX2NvbnRleHQubWVudUl0ZW1zKCksIFtdKGF1dG8mIGl0ZW0p
IHsKKyAgICAgICAgcmV0dXJuIFdlYkNvbnRleHRNZW51SXRlbTo6Y3JlYXRlKGl0ZW0pOworICAg
IH0pOworfQorCit2b2lkIFdlYkNvbnRleHRNZW51UHJveHk6OnNob3coKQogeworICAgIG1fY29u
dGV4dE1lbnVMaXN0ZW5lciA9IFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Y3JlYXRlKCp0
aGlzKTsKKyAgICBwYWdlKCktPmNvbnRleHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9t
UHJvcG9zZWRNZW51KCpwYWdlKCksIHByb3Bvc2VkSXRlbXMoKSwgKm1fY29udGV4dE1lbnVMaXN0
ZW5lciwgbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIHBhZ2UoKS0+cHJvY2Vzcygp
LnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMobV91c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwog
fQogCi1XZWJDb250ZXh0TWVudVByb3h5Ojp+V2ViQ29udGV4dE1lbnVQcm94eSgpCit2b2lkIFdl
YkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiYmIGl0ZW1zKQogeworICAgIG1fY29udGV4dE1lbnVMaXN0ZW5lciA9IG51
bGxwdHI7CisKKyAgICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRyKHRoaXMtPnBhZ2UoKSk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBTaW5jZSBzaG93Q29udGV4dE1l
bnVXaXRoSXRlbXMgY2FuIHNwaW4gYSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9m
ZiB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIuCisgICAgcGFnZS0+cHJvY2VzcygpLnN0b3BSZXNw
b25zaXZlbmVzc1RpbWVyKCk7CisKKyAgICAvLyBQcm90ZWN0IHx0aGlzfCBmcm9tIGJlaW5nIGRl
YWxsb2NhdGVkIGlmIFdlYlBhZ2VQcm94eSBjb2RlIGlzIHJlLWVudGVyZWQgZnJvbSB0aGUgbWVu
dSBydW5sb29wIG9yIGRlbGVnYXRlcy4KKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKTsKKyAgICBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoV1RGTW92ZShpdGVtcykpOwor
CisgICAgLy8gTm8gbWF0dGVyIHRoZSByZXN1bHQgb2Ygc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1z
LCBhbHdheXMgbm90aWZ5IHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIG1lbnUgaXMgaGlkZGVuIHNv
IGl0IHN0YXJ0cyBoYW5kbGluZyBtb3VzZSBldmVudHMgYWdhaW4uCisgICAgcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6Q29udGV4dE1lbnVIaWRkZW4oKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dE1lbnVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94
eS5oCmluZGV4IDNmMDVmNDM5NWMwODY1NmVlNjBjMWE0NjdjNmZlODA5MTE1YTAyMTAuLjJkMmM1
NzY1YzAxZjI2ODA3NDlhOGYxOTNkNjFmYjY2NmEwOGFiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMjUgKzI5LDM4IEBACiAKICNpbmNs
dWRlICJDb250ZXh0TWVudUNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKKyNp
bmNsdWRlICJXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW07CitjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNs
YXNzIFdlYkNvbnRleHRNZW51UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJDb250ZXh0TWVu
dVByb3h5PiB7CitjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViQ29udGV4dE1lbnVQcm94eT4sIHB1YmxpYyBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6
OkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQ29udGV4dE1lbnVQcm94eSgpOwog
Ci0gICAgdmlydHVhbCB2b2lkIHNob3coKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3coKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxX
ZWJDb250ZXh0TWVudUl0ZW0+PiYmKSA9IDA7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBXZWJDb250ZXh0
TWVudVByb3h5KENvbnRleHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICBXZWJDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERh
dGEmJiwgY29uc3QgVXNlckRhdGEmKTsKKworICAgIC8vIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQ
cm94eTo6Q2xpZW50CisgICAgdm9pZCB1c2VDb250ZXh0TWVudUl0ZW1zKFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4mJikgb3ZlcnJpZGU7CiAKICAgICBjb25zdCBDb250ZXh0TWVudUNv
bnRleHREYXRhIG1fY29udGV4dDsKICAgICBjb25zdCBVc2VyRGF0YSBtX3VzZXJEYXRhOworCitw
cml2YXRlOgorICAgIHZpcnR1YWwgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiBwcm9w
b3NlZEl0ZW1zKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJ
dGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpID0gMDsKKworICAgIFJlZlB0
cjxXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IG1fY29udGV4dE1lbnVMaXN0ZW5lcjsKKyAg
ICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NjYzYjQ0
Nzk0NzZmNWEyZGFmYzEzOTQ5ODM5NGYwNjVlNjIzZmQxLi44NDI1Zjk4MGI3M2UzMTE0NDllOGJm
YjY2MjU2YWI1NmEyZmQ0MTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTY1NjksMTUgKzY1NjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRl
eHRNZW51KENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0TWVudUNvbnRleHREYQogCiAg
ICAgbV9hY3RpdmVDb250ZXh0TWVudSA9IHBhZ2VDbGllbnQoKS5jcmVhdGVDb250ZXh0TWVudVBy
b3h5KCp0aGlzLCBXVEZNb3ZlKGNvbnRleHRNZW51Q29udGV4dERhdGEpLCB1c2VyRGF0YSk7CiAK
LSAgICAvLyBTaW5jZSBzaG93Q29udGV4dE1lbnUoKSBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9v
cCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lci4KLSAgICBtX3By
b2Nlc3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7Ci0KLSAgICAvLyBtX2FjdGl2ZUNvbnRl
eHRNZW51IG1pZ2h0IGdldCBjbGVhcmVkIGlmIFdlYlBhZ2VQcm94eSBjb2RlIGlzIHJlLWVudGVy
ZWQgZnJvbSB0aGUgbWVudSBydW5sb29wIG9yIGRlbGVnYXRlcy4KLSAgICBSZWY8V2ViQ29udGV4
dE1lbnVQcm94eT4gcHJvdGVjdG9yKCptX2FjdGl2ZUNvbnRleHRNZW51KTsKICAgICBtX2FjdGl2
ZUNvbnRleHRNZW51LT5zaG93KCk7Ci0KLSAgICAvLyBObyBtYXR0ZXIgdGhlIHJlc3VsdCBvZiBp
bnRlcm5hbFNob3dDb250ZXh0TWVudSwgYWx3YXlzIG5vdGlmeSB0aGUgV2ViUHJvY2VzcyB0aGF0
IHRoZSBtZW51IGlzIGhpZGRlbiBzbyBpdCBzdGFydHMgaGFuZGxpbmcgbW91c2UgZXZlbnRzIGFn
YWluLgotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuKCkpOwog
fQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcAppbmRleCBhODhjYzZiMmI1NTZi
NDEyMDMyODc0ZDAyZWQzNDhiOTZmZTEwMmFjLi44MDlkMGZjZTY2NWEyYTAxNjlhZDdlNjhhYjJl
YTY0Mjg1NDYxOGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2Vi
Q29udGV4dE1lbnVQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBXZWJD
b250ZXh0TWVudVByb3h5R3RrOjphcHBlbmQoR01lbnUqIG1lbnUsIGNvbnN0IFdlYkNvbnRleHRN
ZW51SXRlbUdsaWImIG0KICAgICAgICAgaWYgKG1lbnVJdGVtLmFjdGlvbigpIDwgQ29udGV4dE1l
bnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnKSB7CiAgICAgICAgICAgICBnX29iamVjdF9zZXRfZGF0
YShHX09CSkVDVChhY3Rpb24pLCBnQ29udGV4dE1lbnVBY3Rpb25JZCwgR0lOVF9UT19QT0lOVEVS
KG1lbnVJdGVtLmFjdGlvbigpKSk7CiAgICAgICAgICAgICBnX29iamVjdF9zZXRfZGF0YV9mdWxs
KEdfT0JKRUNUKGFjdGlvbiksIGdDb250ZXh0TWVudVRpdGxlLCBnX3N0cmR1cChtZW51SXRlbS50
aXRsZSgpLnV0ZjgoKS5kYXRhKCkpLCBnX2ZyZWUpOwotICAgICAgICAgICAgc2lnbmFsSGFuZGxl
cklkID0gZ19zaWduYWxfY29ubmVjdChhY3Rpb24sICJhY3RpdmF0ZSIsIEdfQ0FMTEJBQ0soY29u
dGV4dE1lbnVJdGVtQWN0aXZhdGVkQ2FsbGJhY2spLCBtX3BhZ2UpOworICAgICAgICAgICAgc2ln
bmFsSGFuZGxlcklkID0gZ19zaWduYWxfY29ubmVjdChhY3Rpb24sICJhY3RpdmF0ZSIsIEdfQ0FM
TEJBQ0soY29udGV4dE1lbnVJdGVtQWN0aXZhdGVkQ2FsbGJhY2spLCBwYWdlKCkpOwogICAgICAg
ICAgICAgbV9zaWduYWxIYW5kbGVycy5zZXQoc2lnbmFsSGFuZGxlcklkLCBhY3Rpb24pOwogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMjUwLDE1ICsyNTAsMTQgQEAgdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5R3RrOjpwb3B1bGF0ZShjb25zdCBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51
SXRlbT4+JiBpdGUKICAgICBiaW5kTW9kZWxUb01lbnVXaWRnZXQobV9tZW51LCBHX01FTlVfTU9E
RUwobWVudS5nZXQoKSkpOwogfQogCi12b2lkIFdlYkNvbnRleHRNZW51UHJveHlHdGs6OnNob3co
KQorVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiBXZWJDb250ZXh0TWVudVByb3h5R3Rr
Ojpwcm9wb3NlZEl0ZW1zKCkgY29uc3QKIHsKICAgICBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51
SXRlbT4+IHByb3Bvc2VkQVBJSXRlbXM7CiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jb250ZXh0
Lm1lbnVJdGVtcygpKSB7CiAgICAgICAgIGlmIChpdGVtLmFjdGlvbigpICE9IENvbnRleHRNZW51
SXRlbVRhZ1NoYXJlTWVudSkKICAgICAgICAgICAgIHByb3Bvc2VkQVBJSXRlbXMuYXBwZW5kKFdl
YkNvbnRleHRNZW51SXRlbTo6Y3JlYXRlKGl0ZW0pKTsKICAgICB9Ci0KLSAgICBtX3BhZ2UtPmNv
bnRleHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KCptX3BhZ2Us
IFdURk1vdmUocHJvcG9zZWRBUElJdGVtcyksIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6
Y3JlYXRlKHRoaXMpLmdldCgpLCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV9w
YWdlLT5wcm9jZXNzKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVj
dCgpKS5nZXQoKSk7CisgICAgcmV0dXJuIHByb3Bvc2VkQVBJSXRlbXM7CiB9CiAKIHZvaWQgV2Vi
Q29udGV4dE1lbnVQcm94eUd0azo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8
V2ViQ29udGV4dE1lbnVJdGVtPj4mJiBpdGVtcykKQEAgLTI2OSwxNiArMjY4LDE1IEBAIHZvaWQg
V2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxS
ZWY8V2ViQ29udGV4dE1lbnVJCiAgICAgaWYgKCFtZW51V2lkZ2V0SGFzSXRlbXMobV9tZW51KSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgTmF0aXZlV2ViTW91c2VFdmVudCogbW91c2VFdmVudCA9
IG1fcGFnZS0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKTsKKyAgICBOYXRpdmVX
ZWJNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gcGFnZSgpLT5jdXJyZW50bHlQcm9jZXNzZWRNb3Vz
ZURvd25FdmVudCgpOwogICAgIGNvbnN0IEdka0V2ZW50KiBldmVudCA9IG1vdXNlRXZlbnQgPyBt
b3VzZUV2ZW50LT5uYXRpdmVFdmVudCgpIDogbnVsbHB0cjsKICAgICBjb25zdCBHZGtSZWN0YW5n
bGUgcmVjdCA9IHsgbV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpLngoKSwgbV9jb250ZXh0Lm1lbnVM
b2NhdGlvbigpLnkoKSwgMSwgMSB9OwogICAgIHBvcHVwTWVudVdpZGdldChtX21lbnUsIGV2ZW50
LCByZWN0KTsKIH0KIAogV2ViQ29udGV4dE1lbnVQcm94eUd0azo6V2ViQ29udGV4dE1lbnVQcm94
eUd0ayhHdGtXaWRnZXQqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVD
b250ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKLSAgICA6IFdl
YkNvbnRleHRNZW51UHJveHkoV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCisgICAgOiBXZWJD
b250ZXh0TWVudVByb3h5KHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQogICAgICwg
bV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBtX3BhZ2UoJnBhZ2UpCiAgICAgLCBtX21lbnUoY3Jl
YXRlTWVudVdpZGdldChtX3dlYlZpZXcpKQogewogICAgIGd0a193aWRnZXRfaW5zZXJ0X2FjdGlv
bl9ncm91cChHVEtfV0lER0VUKG1fbWVudSksIGdDb250ZXh0TWVudUl0ZW1Hcm91cCwgR19BQ1RJ
T05fR1JPVVAobV9hY3Rpb25Hcm91cC5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmgKaW5kZXggZWE0OGRiYWQ4MzRj
OTE3MjljOTRiNzUyOGIzMmZmMDk1MTVlOWE3ZS4uMWI0YWVmYjM2MTMwMjEyYzJkZDVhMGM1NGIx
ZTU4NGRlNWZjMmZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dl
YkNvbnRleHRNZW51UHJveHlHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
V2ViQ29udGV4dE1lbnVQcm94eUd0ay5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFdlYkNvbnRl
eHRNZW51SXRlbTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJQYWdl
UHJveHk7CiAKLWNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViQ29udGV4
dE1lbnVQcm94eSB7CitjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5R3RrIGZpbmFsIDogcHVibGlj
IFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShH
dGtXaWRnZXQqIHdpZGdldCwgV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHRE
YXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIHsKQEAgLTU2LDcg
KzU2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFdlYkNvbnRleHRNZW51UHJveHlHdGso
R3RrV2lkZ2V0KiwgV2ViUGFnZVByb3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgc2hvdygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxSZWY8
V2ViQ29udGV4dE1lbnVJdGVtPj4gcHJvcG9zZWRJdGVtcygpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJ
dGVtPj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhcHBlbmQoR01lbnUqLCBjb25zdCBXZWJDb250
ZXh0TWVudUl0ZW1HbGliJik7CiAgICAgR1JlZlB0cjxHTWVudT4gYnVpbGRNZW51KGNvbnN0IFZl
Y3RvcjxXZWJDb250ZXh0TWVudUl0ZW1HbGliPiYpOwpAQCAtNjQsNyArNjQsNiBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1HbGliPiBwb3B1bGF0ZVN1Yk1lbnUoY29u
c3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwogCiAgICAgR3RrV2lkZ2V0KiBtX3dlYlZpZXc7
Ci0gICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgR3RrV2lkZ2V0KiBtX21lbnU7CiAgICAg
SGFzaE1hcDx1bnNpZ25lZCBsb25nLCB2b2lkKj4gbV9zaWduYWxIYW5kbGVyczsKICAgICBHUmVm
UHRyPEdTaW1wbGVBY3Rpb25Hcm91cD4gbV9hY3Rpb25Hcm91cCB7IGFkb3B0R1JlZihnX3NpbXBs
ZV9hY3Rpb25fZ3JvdXBfbmV3KCkpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbQppbmRleCA4
NTA1M2MwODUzZTU1NDgzM2MzYzdlY2U4M2FjYmE3ZWU5ZDU1NGE1Li4zM2Q0ZmViNGM0MDA1OTZl
ZDMzOTY1NzU2NjVhYmJmNDQ0MDlhZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KQEAg
LTEyOSw3ICsxMjksNyBAQCAtICh2b2lkKXNoYXJpbmdTZXJ2aWNlOihOU1NoYXJpbmdTZXJ2aWNl
ICopc2hhcmluZ1NlcnZpY2UgZGlkU2hhcmVJdGVtczooTlNBcnJheQogICAgIH0KIAogICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgYWRvcHQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3Ry
aW5nIGluc3RlYWQgb2YgYm91bmNpbmcgdGhyb3VnaCB0aGUgKGZha2UpIHBhc3RlYm9hcmQuCi0g
ICAgX21lbnVQcm94eS0+cGFnZSgpLnJlcGxhY2VTZWxlY3Rpb25XaXRoUGFzdGVib2FyZERhdGEo
dHlwZXMsIGRhdGFSZWZlcmVuY2UpOworICAgIF9tZW51UHJveHktPnBhZ2UoKS0+cmVwbGFjZVNl
bGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YSh0eXBlcywgZGF0YVJlZmVyZW5jZSk7CiB9CiAKIC0g
KE5TV2luZG93ICopc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilzaGFyaW5nU2Vy
dmljZSBzb3VyY2VXaW5kb3dGb3JTaGFyZUl0ZW1zOihOU0FycmF5ICopaXRlbXMgc2hhcmluZ0Nv
bnRlbnRTY29wZTooTlNTaGFyaW5nQ29udGVudFNjb3BlICopc2hhcmluZ0NvbnRlbnRTY29wZQpA
QCAtMTQwLDQgKzE0MCwzIEBAIC0gKE5TV2luZG93ICopc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmlu
Z1NlcnZpY2UgKilzaGFyaW5nU2VydmljZSBzb3VyY2VXaW5kb3dGb3JTCiBAZW5kCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKaW5kZXggOTAwZWYwZjE3OGE5
MjZkYWFjZDUzZTY0NWU1NzMwYWFiZjFlYWY3MS4uMGJiMDdlNjc5ZjMwZTdiMzY4MmIzNzM2YjUz
NzJjYmJiMmQzMWVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDUwICsyNyw0NCBAQAogCiAjaWYgUExBVEZPUk0o
TUFDKQogCi0jaW5jbHVkZSAiV0tBcnJheS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJv
eHkuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtPYmpD
UHRyLmg+CiAKIE9CSkNfQ0xBU1MgTlNNZW51OwogT0JKQ19DTEFTUyBOU01lbnVJdGVtOwotT0JK
Q19DTEFTUyBOU1BvcFVwQnV0dG9uQ2VsbDsKIE9CSkNfQ0xBU1MgTlNWaWV3OwogT0JKQ19DTEFT
UyBOU1dpbmRvdzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFNoYXJlYWJsZUJpdG1h
cDsKLWNsYXNzIFVzZXJEYXRhOwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTsKLWNsYXNz
IFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTsKLWNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xh
c3MgV2ViQ29udGV4dE1lbnVQcm94eU1hYyA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVByb3h5IHsK
K2NsYXNzIFdlYkNvbnRleHRNZW51UHJveHlNYWMgZmluYWwgOiBwdWJsaWMgV2ViQ29udGV4dE1l
bnVQcm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlKE5TVmlldyogdmlldywg
V2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShOU1ZpZXcgKndl
YlZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmIGNvbnRl
eHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYkNvbnRleHRNZW51UHJveHlNYWModmlldywgcGFnZSwgV1RGTW92ZShjb250
ZXh0KSwgdXNlckRhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4
dE1lbnVQcm94eU1hYyh3ZWJWaWV3LCBwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkp
OwogICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQcm94eU1hYygpOwogCiAgICAgdm9pZCBjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7Ci0gICAg
dm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0
ZW0+PiYmKSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZv
aWQgY2xlYXJTZXJ2aWNlc01lbnUoKTsKICNlbmRpZgogCi0gICAgV2ViUGFnZVByb3h5JiBwYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAgICAgTlNXaW5kb3cgKndpbmRvdygpIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIFdlYkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3KiwgV2ViUGFn
ZVByb3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOworICAg
IFdlYkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3ICosIFdlYlBhZ2VQcm94eSYsIENvbnRleHRN
ZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKTsKKwogICAgIHZvaWQgc2hvdygpIG92
ZXJyaWRlOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCB1c2VDb250ZXh0TWVudUl0
ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJikgb3ZlcnJpZGU7CiAKLSAgICBS
ZWZQdHI8V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5PiBtX2NvbnRleHRNZW51TGlzdGVuZXI7
CiAgICAgdm9pZCBnZXRDb250ZXh0TWVudUl0ZW0oY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNNZW51SXRlbSAqKT4mJik7CiAgICAgdm9pZCBn
ZXRDb250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0
YT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudSAqKT4mJik7Ci0gICAgdm9pZCBzaG93
Q29udGV4dE1lbnUoKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZvaWQg
Z2V0U2hhcmVNZW51SXRlbShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudUl0ZW0gKik+JiYp
OwpAQCAtNzksOSArNzMsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBSZXRhaW5QdHI8TlNN
ZW51PiBtX21lbnU7Ci0KLSAgICBOU1ZpZXcqIG1fd2ViVmlldzsKLSAgICBXZWJQYWdlUHJveHkm
IG1fcGFnZTsKKyAgICBXZWFrT2JqQ1B0cjxOU1ZpZXc+IG1fd2ViVmlldzsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCAzZGFhYTI1ZDRmZmViYmJiMTY4MmVmYzAw
ZGM1MDI2MmNkMzg4NmVjLi5hNjRlMTM2YWNkOTUyZjIzOTQzN2MzOWU1MWY4ZWI5MWQ2OThhNjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1l
bnVQcm94eU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSwyNSArMjksMTkgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBv
cnQgIkFQSUNvbnRleHRNZW51Q2xpZW50LmgiCi0jaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAj
aW1wb3J0ICJNZW51VXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJQYWdlQ2xpZW50SW1wbE1hYy5oIgog
I2ltcG9ydCAiU2VydmljZXNDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJTaGFyZWFibGVCaXRtYXAu
aCIKLSNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV0tNZW51SXRlbUlkZW50
aWZpZXJzUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRl
LmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbXBvcnQgIldlYkNvbnRleHRN
ZW51SXRlbURhdGEuaCIKLSNpbXBvcnQgIldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5oIgog
I2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNp
bXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJl
Y3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2
aWNlUGlja2VyU1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2aWNlU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbnRlcmZhY2UgV0tVc2VyRGF0YVdy
YXBwZXIgOiBOU09iamVjdCB7CkBAIC0xNTQsMjEgKzE0OCwxNSBAQCBAZW5kCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJDb250ZXh0TWVudVByb3h5
TWFjOjpXZWJDb250ZXh0TWVudVByb3h5TWFjKE5TVmlldyogd2ViVmlldywgV2ViUGFnZVByb3h5
JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQotICAgIDogV2ViQ29udGV4dE1lbnVQcm94eShXVEZNb3ZlKGNvbnRleHQpLCB1
c2VyRGF0YSkKK1dlYkNvbnRleHRNZW51UHJveHlNYWM6OldlYkNvbnRleHRNZW51UHJveHlNYWMo
TlNWaWV3ICp3ZWJWaWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERh
dGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgOiBXZWJDb250ZXh0
TWVudVByb3h5KHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQogICAgICwgbV93ZWJW
aWV3KHdlYlZpZXcpCi0gICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KIAogV2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6fldlYkNvbnRleHRNZW51UHJveHlNYWMoKQogewogICAgIFttX21lbnUgY2FuY2Vs
VHJhY2tpbmddOwotCi0gICAgaWYgKG1fY29udGV4dE1lbnVMaXN0ZW5lcikgewotICAgICAgICBt
X2NvbnRleHRNZW51TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9jb250ZXh0TWVu
dUxpc3RlbmVyID0gbnVsbHB0cjsKLSAgICB9CiB9CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94
eU1hYzo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YSYgaXRlbSkKQEAgLTE3Nyw3ICsxNjUsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdAogICAg
IGNsZWFyU2VydmljZXNNZW51KCk7CiAjZW5kaWYKIAotICAgIG1fcGFnZS5jb250ZXh0TWVudUl0
ZW1TZWxlY3RlZChpdGVtKTsKKyAgICBwYWdlKCktPmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGl0
ZW0pOwogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCkBAIC0yNTEsOCArMjM5LDkg
QEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93U2VydmljZXNNZW51KCkKIHsKICAg
ICBzZXR1cFNlcnZpY2VzTWVudSgpOwogCisgICAgYXV0byB3ZWJWaWV3ID0gbV93ZWJWaWV3Lmdl
dCgpOwogICAgIFtbV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlIHNoYXJlZFNoYXJpbmdT
ZXJ2aWNlUGlja2VyRGVsZWdhdGVdIHNldE1lbnVQcm94eTp0aGlzXTsKLSAgICBbbV9tZW51IHBv
cFVwTWVudVBvc2l0aW9uaW5nSXRlbTpuaWwgYXRMb2NhdGlvbjptX2NvbnRleHQubWVudUxvY2F0
aW9uKCkgaW5WaWV3Om1fd2ViVmlld107CisgICAgW21fbWVudSBwb3BVcE1lbnVQb3NpdGlvbmlu
Z0l0ZW06bmlsIGF0TG9jYXRpb246bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIGluVmlldzp3ZWJW
aWV3LmdldCgpXTsKIH0KIAogdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpjbGVhclNlcnZp
Y2VzTWVudSgpCkBAIC0zMzcsMTYgKzMyNiwxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlN
YWM6OmdldFNoYXJlTWVudUl0ZW0oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU01lbnVJdGVtCiAK
IHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvdygpCiB7Ci0gICAgUmVmPFdlYlBhZ2VQ
cm94eT4gcHJvdGVjdChtX3BhZ2UpOwotCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAg
ICAgaWYgKG1fY29udGV4dC5pc1NlcnZpY2VzTWVudSgpKSB7Ci0gICAgICAgIHNob3dTZXJ2aWNl
c01lbnUoKTsKKyAgICAgICAgV2ViQ29udGV4dE1lbnVQcm94eTo6dXNlQ29udGV4dE1lbnVJdGVt
cyh7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKLSAgICBzaG93Q29udGV4
dE1lbnUoKTsKKyAgICBXZWJDb250ZXh0TWVudVByb3h5OjpzaG93KCk7CiB9CiAKIHZvaWQgV2Vi
Q29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9y
PFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChO
U01lbnUgKik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC01MDcsNDcgKzQ5NCw1MiBAQCB2b2lk
IFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhJiBpdAogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dD
b250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYgaXRl
bXMpCiB7Ci0gICAgaWYgKG1fcGFnZS5jb250ZXh0TWVudUNsaWVudCgpLnNob3dDb250ZXh0TWVu
dShtX3BhZ2UsIG1fY29udGV4dC5tZW51TG9jYXRpb24oKSwgaXRlbXMpKQorI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQorICAgIGlmIChtX2NvbnRleHQuaXNTZXJ2aWNlc01lbnUoKSkgewor
ICAgICAgICBBU1NFUlQoaXRlbXMuaXNFbXB0eSgpKTsKKyAgICAgICAgc2hvd1NlcnZpY2VzTWVu
dSgpOwogICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAKLSAgICBpZiAoaXRlbXMuaXNF
bXB0eSgpKQorICAgIGlmIChwYWdlKCktPmNvbnRleHRNZW51Q2xpZW50KCkuY2FuU2hvd0NvbnRl
eHRNZW51KCkpIHsKKyAgICAgICAgcGFnZSgpLT5jb250ZXh0TWVudUNsaWVudCgpLnNob3dDb250
ZXh0TWVudSgqcGFnZSgpLCBtX2NvbnRleHQubWVudUxvY2F0aW9uKCksIGl0ZW1zKTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBk
YXRhOwotICAgIGRhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShpdGVtcy5zaXplKCkpOwotICAg
IGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKQotICAgICAgICBkYXRhLnVuY2hlY2tlZEFwcGVuZChp
dGVtLT5kYXRhKCkpOworICAgIEFTU0VSVChpdGVtcy5pc0VtcHR5KCkpOworICAgIGlmICghbV9t
ZW51KQorICAgICAgICByZXR1cm47CiAKLSAgICBnZXRDb250ZXh0TWVudUZyb21JdGVtcyhkYXRh
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzXShOU01lbnUgKm1lbnUpIG11
dGFibGUgewotICAgICAgICBbW1dLTWVudVRhcmdldCBzaGFyZWRNZW51VGFyZ2V0XSBzZXRNZW51
UHJveHk6dGhpc107Ci0gICAgICAgIG1fcGFnZS5jb250ZXh0TWVudUNsaWVudCgpLm1lbnVGcm9t
UHJvcG9zZWRNZW51KG1fcGFnZSwgbWVudSwgbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRh
KCksIG1fdXNlckRhdGEub2JqZWN0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKV0gKFJldGFpblB0cjxOU01lbnU+JiYgbWVudSkgewotICAgICAgICAgICAg
bV9tZW51ID0gV1RGTW92ZShtZW51KTsKLSAgICAgICAgICAgIE5TUG9pbnQgbWVudUxvY2F0aW9u
ID0gW21fd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIHRvVmll
dzpuaWxdOwotICAgICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53
aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1
cmU6MF07Ci0gICAgICAgICAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bV9tZW51LmdldCgp
IHdpdGhFdmVudDpldmVudCBmb3JWaWV3Om1fd2ViVmlld107Ci0KLSAgICAgICAgICAgIGlmICht
X2NvbnRleHRNZW51TGlzdGVuZXIpIHsKLSAgICAgICAgICAgICAgICBtX2NvbnRleHRNZW51TGlz
dGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVu
ZXIgPSBudWxscHRyOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9KTsKKyAgICBh
dXRvIHdlYlZpZXcgPSBtX3dlYlZpZXcuZ2V0KCk7CisgICAgTlNQb2ludCBtZW51TG9jYXRpb24g
PSBbd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIHRvVmlldzpu
aWxdOworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdz
OjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3ZWJWaWV3IHdpbmRvd10ud2luZG93TnVtYmVy
IGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAg
IFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50OmV2ZW50IGZv
clZpZXc6d2ViVmlldy5nZXQoKV07CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6
c2hvd0NvbnRleHRNZW51KCkKK3ZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6dXNlQ29udGV4
dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYgaXRlbXMpCiB7Ci0g
ICAgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiBwcm9wb3NlZEFQSUl0ZW1zOwotICAg
IGZvciAoYXV0byYgaXRlbSA6IG1fY29udGV4dC5tZW51SXRlbXMoKSkKLSAgICAgICAgcHJvcG9z
ZWRBUElJdGVtcy5hcHBlbmQoV2ViQ29udGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbSkpOwotCi0g
ICAgaWYgKG1fY29udGV4dE1lbnVMaXN0ZW5lcikgewotICAgICAgICBtX2NvbnRleHRNZW51TGlz
dGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9jb250ZXh0TWVudUxpc3RlbmVyID0gbnVs
bHB0cjsKKyAgICBpZiAoaXRlbXMuaXNFbXB0eSgpIHx8ICFwYWdlKCkgfHwgcGFnZSgpLT5jb250
ZXh0TWVudUNsaWVudCgpLmNhblNob3dDb250ZXh0TWVudSgpKSB7CisgICAgICAgIFdlYkNvbnRl
eHRNZW51UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMoV1RGTW92ZShpdGVtcykpOworICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb250ZXh0TWVudUxpc3RlbmVyID0gV2ViQ29udGV4
dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVhdGUodGhpcyk7CisgICAgYXV0byBkYXRhID0gV1RGOjpt
YXAoaXRlbXMsIFtdKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIGl0ZW0tPmRhdGEoKTsK
KyAgICB9KTsKIAotICAgIG1fcGFnZS5jb250ZXh0TWVudUNsaWVudCgpLmdldENvbnRleHRNZW51
RnJvbVByb3Bvc2VkTWVudShtX3BhZ2UsIFdURk1vdmUocHJvcG9zZWRBUElJdGVtcyksICptX2Nv
bnRleHRNZW51TGlzdGVuZXIsIG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3Bh
Z2UucHJvY2VzcygpLnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMobV91c2VyRGF0YS5vYmplY3Qo
KSkuZ2V0KCkpOworICAgIGdldENvbnRleHRNZW51RnJvbUl0ZW1zKGRhdGEsIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKE5TTWVudSAqbWVudSkgbXV0YWJsZSB7CisgICAg
ICAgIGlmICghcGFnZSgpKSB7CisgICAgICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5Ojp1c2VD
b250ZXh0TWVudUl0ZW1zKHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBbW1dLTWVudVRhcmdldCBzaGFyZWRNZW51VGFyZ2V0XSBzZXRNZW51UHJveHk6dGhp
c107CisgICAgICAgIHBhZ2UoKS0+Y29udGV4dE1lbnVDbGllbnQoKS5tZW51RnJvbVByb3Bvc2Vk
TWVudSgqcGFnZSgpLCBtZW51LCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV91
c2VyRGF0YS5vYmplY3QoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpXShSZXRhaW5QdHI8TlNNZW51PiYmIG1lbnUpIHsKKyAgICAgICAgICAgIG1fbWVudSA9
IFdURk1vdmUobWVudSk7CisgICAgICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5Ojp1c2VDb250
ZXh0TWVudUl0ZW1zKHsgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiBOU1dpbmRvdyAq
V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6d2luZG93KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVudVByb3h5V2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVudVByb3h5V2luLmNwcAppbmRleCBh
YTE3MWY0OGJjNDBhOTZhODZkOTUxNDUxYjU3OGY2MDljNTczZmNlLi4zZGNkMGVjMzVjOTJlMzcy
MzkyMDhhOGY1ZDRmNDYxZmJlYWFjM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uY3BwCkBAIC0zOCwxNSArMzgsNiBA
QAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5V2luOjpzaG93KCkKLXsKLSAgICBWZWN0b3I8UmVmPFdlYkNvbnRl
eHRNZW51SXRlbT4+IHByb3Bvc2VkQVBJSXRlbXM7Ci0gICAgZm9yIChhdXRvJiBpdGVtIDogbV9j
b250ZXh0Lm1lbnVJdGVtcygpKQotICAgICAgICBwcm9wb3NlZEFQSUl0ZW1zLmFwcGVuZChXZWJD
b250ZXh0TWVudUl0ZW06OmNyZWF0ZShpdGVtKSk7Ci0gICAgbV9jb250ZXh0TWVudUxpc3RlbmVy
ID0gV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVhdGUodGhpcyk7Ci0gICAgbV9wYWdl
LmNvbnRleHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KG1fcGFn
ZSwgV1RGTW92ZShwcm9wb3NlZEFQSUl0ZW1zKSwgKm1fY29udGV4dE1lbnVMaXN0ZW5lciwgbV9j
b250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fcGFnZS5wcm9jZXNzKCkudHJhbnNmb3Jt
SGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7Ci19Ci0KIHN0YXRp
YyBITUVOVSBjcmVhdGVNZW51KGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEgJmNvbnRleHQp
CiB7CiAgICAgSE1FTlUgbWVudSA9IDo6Q3JlYXRlUG9wdXBNZW51KCk7CkBAIC0xMDQsMTQgKzk1
LDEzIEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eVdpbjo6c2hvd0NvbnRleHRNZW51V2l0aEl0
ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJCiAKICAgICBVSU5UIGZsYWdzID0gVFBNX1JJ
R0hUQlVUVE9OIHwgVFBNX1RPUEFMSUdOIHwgVFBNX1ZFUlBPU0FOSU1BVElPTiB8IFRQTV9IT1JJ
Wk9OVEFMIHwgVFBNX0xFRlRBTElHTiB8IFRQTV9IT1JQT1NBTklNQVRJT047CiAgICAgUE9JTlQg
cHQgeyBtX2NvbnRleHQubWVudUxvY2F0aW9uKCkueCgpLCBtX2NvbnRleHQubWVudUxvY2F0aW9u
KCkueSgpIH07Ci0gICAgSFdORCB3bmQgPSBtX3BhZ2Uudmlld1dpZGdldCgpOworICAgIEhXTkQg
d25kID0gcGFnZSgpLT52aWV3V2lkZ2V0KCk7CiAgICAgOjpDbGllbnRUb1NjcmVlbih3bmQsICZw
dCk7Ci0gICAgOjpUcmFja1BvcHVwTWVudUV4KG1fbWVudSwgZmxhZ3MsIHB0LngsIHB0LnksIG1f
cGFnZS52aWV3V2lkZ2V0KCksIG51bGxwdHIpOworICAgIDo6VHJhY2tQb3B1cE1lbnVFeChtX21l
bnUsIGZsYWdzLCBwdC54LCBwdC55LCBwYWdlKCktPnZpZXdXaWRnZXQoKSwgbnVsbHB0cik7CiB9
CiAKIFdlYkNvbnRleHRNZW51UHJveHlXaW46OldlYkNvbnRleHRNZW51UHJveHlXaW4oV2ViUGFn
ZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQotICAgIDogV2ViQ29udGV4dE1lbnVQcm94eShXVEZNb3ZlKGNvbnRl
eHQpLCB1c2VyRGF0YSkKLSAgICAsIG1fcGFnZShwYWdlKQorICAgIDogV2ViQ29udGV4dE1lbnVQ
cm94eShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkKIHsKICAgICBtX21lbnUgPSBj
cmVhdGVNZW51KG1fY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uaAppbmRleCA4ZWRhNjczODQ5ZGEyZDFhMzhj
MzdiYjM4NGRkZWY1ZTc2MDk1YTlhLi4wYzgwZDk3MGMzZjlhOTg3ZmFmNjIwMDgxYzkwOWY2Yzcw
MjE5NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViQ29udGV4
dE1lbnVQcm94eVdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250
ZXh0TWVudVByb3h5V2luLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFz
cyBXZWJDb250ZXh0TWVudVByb3h5V2luIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewor
Y2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eVdpbiBmaW5hbCA6IHB1YmxpYyBXZWJDb250ZXh0TWVu
dVByb3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYXV0byBjcmVhdGUoV2ViUGFnZVByb3h5JiBw
YWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogICAgIHsKQEAgLTQ3LDEwICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
V2ViQ29udGV4dE1lbnVQcm94eVdpbihXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHRE
YXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRl
bXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKLSAgICB2b2lk
IHNob3coKSBvdmVycmlkZTsKIAotICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwotICAgIFJlZlB0
cjxXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IG1fY29udGV4dE1lbnVMaXN0ZW5lcjsKICAg
ICBITUVOVSBtX21lbnU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93cGUvV2ViQ29udGV4dE1lbnVQcm94eVdQRS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d3BlL1dlYkNvbnRleHRNZW51UHJveHlXUEUuaAppbmRleCA4YjJkM2EzNmNlNGVjMTRiNjM4YTc3
ODk5MzhlZjBiMTRhMzZlYWIxLi41MjQzZDBjY2YyM2MxM2Q0MGNlNDU3NzVlMzA5N2ZhMGVjODIw
MTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUvV2ViQ29udGV4dE1l
bnVQcm94eVdQRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJDb250ZXh0
TWVudVByb3h5V1BFLmgKQEAgLTI5LDE5ICsyOSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eVdQRSA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVBy
b3h5IHsKK2NsYXNzIFdlYkNvbnRleHRNZW51UHJveHlXUEUgZmluYWwgOiBwdWJsaWMgV2ViQ29u
dGV4dE1lbnVQcm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlKENvbnRleHRN
ZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAg
c3RhdGljIGF1dG8gY3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0
RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51UHJveHlXUEUoV1RGTW92ZShjb250
ZXh0KSwgdXNlckRhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4
dE1lbnVQcm94eVdQRShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkpOwogICAgIH0K
IAogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4
dE1lbnVJdGVtPj4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBzaG93KCkgZmluYWwgeyB9OwogCiBw
cml2YXRlOgotICAgIFdlYkNvbnRleHRNZW51UHJveHlXUEUoQ29udGV4dE1lbnVDb250ZXh0RGF0
YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKLSAgICAgICAgOiBXZWJDb250
ZXh0TWVudVByb3h5KFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQorICAgIFdlYkNvbnRleHRN
ZW51UHJveHlXUEUoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYg
Y29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgICAgICA6IFdlYkNvbnRleHRN
ZW51UHJveHkocGFnZSwgV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCiAgICAgeyB9CiB9Owog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjQ5
MzNlZGI1NGM5OThiZWMxZTNlMzU0MzZmZTEzMWFhZDE4MTIwZC4uMWQyMmZkY2QzNDRkMjA3MTdm
YWU4Yzg0MGU0YzkzNjM4M2U1MDhjNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA3LTAyICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjA3NTU4KTogW01h
Y10gQ29udGV4dCBjbGlja3Mgb24gbGlua3Mgc29tZXRpbWVzIHJlc3VsdCBpbiBuYXZpZ2F0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzkz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDI5NDAxNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhbiBBUEkgdGVzdC4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUNv
bnRyb2xDbGljay5tbTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL2NvbnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWw6IEFkZGVkLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdhdGUubW06CisgICAgICAgICgtW1Rlc3RVSURlbGVn
YXRlIF93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudTpmb3JFbGVtZW50OnVz
ZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICBBZGRlZCBhIHByb3BlcnR5IGZv
ciByZXNwb25kaW5nIHRvCisgICAgICAgIC1fd2ViVmlldzpnZXRDb250ZXh0TWVudUZyb21Qcm9w
b3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxlcjouCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZp
ZXdIb3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6Y2xpY2tDb3Vu
dDptb2RpZmllckZsYWdzOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBf
bW91c2VVcEF0UG9pbnQ6Y2xpY2tDb3VudDptb2RpZmllckZsYWdzOl0pOgorICAgICAgICAoLVtU
ZXN0V0tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToKKyAgICAg
ICAgKC1bVGVzdFdLV2ViVmlldyBtb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6d2l0
aEZsYWdzOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IG1vdXNlVXBBdFBvaW50Ol0pOgor
ICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IG1vdXNlVXBBdFBvaW50OndpdGhGbGFnczpdKToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBzZW5kQ2xpY2tzQXRQb2ludDpudW1iZXJPZkNsaWNrczpd
KTogQWRkZWQgbWV0aG9kcyBmb3Igc2VuZGluZyBtb3VzZWRvd24KKyAgICAgICAgYW5kIG1vdXNl
dXAgZXZlbnRzIHdpdGggbW9kaWZpZXJzLgorCiAyMDIwLTA3LTAyICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRlIE1hYyBDTWFrZSBi
dWlsZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMjBlYjMyZDJiZmVmNTQ1MWZhYzFlMWJm
YjY3Zjg4NGI0OGI4OGQ0Li45NmJmNWJiMjQwYmNiOTYwNzdkNzQ4MzQ4NjU5MzgyYjFmYjg4ZGRj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ1LDYgKzg0NSw3IEBACiAJCUExMkREQkZC
MUU4MzZGMDcwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTJEREJGOTFFODM2RjA3MDBD
RjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zLm1tICovOyB9OwogCQlBMTJEREMwMDFF
ODM3M0U3MDBDRjZDQUUgLyogcmVuZGVyZWQtaW1hZ2UtZXhjbHVkaW5nLW92ZXJmbG93Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEy
RERCRkYxRTgzNzNDMTAwQ0Y2Q0FFIC8qIHJlbmRlcmVkLWltYWdlLWV4Y2x1ZGluZy1vdmVyZmxv
dy5odG1sICovOyB9OwogCQlBMTJEREMwMjFFODM3QzI0MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFn
ZVdpdGhPcHRpb25zUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTEyRERCRkMxRTgzNkZGMTAwQ0Y2Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRo
T3B0aW9uc1BsdWdJbi5tbSAqLzsgfTsKKwkJQTEzRDFBRDYyNEFENDY4RjAwM0Y5MkE4IC8qIGNv
bnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRDFBRDUyNEFENDY3NzAwM0Y5MkE4IC8qIGNv
bnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwgKi87IH07CiAJCUExM0VCQkFBMUI4NzQyOEQw
MDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQTkxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nl
c3NQbHVnSW4ubW0gKi87IH07CiAJCUExM0VCQkFCMUI4NzQzNDYwMDA5NzExMCAvKiBQbGF0Zm9y
bVV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYxMzlFNzIxQTQyM0EyQjAwRjU5MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29j
b2EubW0gKi87IH07CiAJCUExM0VCQkIwMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0
ZXJzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEzRUJCQUUxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0g
Ki87IH07CkBAIC04NjYsNiArODY3LDcgQEAKIAkJQTE3OTkxOEIxRTFDQTI0MTAwQTUwNUVEIC8q
IFNoYXJlZEJ1ZmZlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE3OTkxODkxRTFDQTI0MTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlclRlc3Qu
Y3BwICovOyB9OwogCQlBMTdFQUM1NTIwODMwNUEwMDA4NEI0MUIgLyogZmluZC5wZGYgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3RUFDNTQy
MDgzMDU2RTAwODRCNDFCIC8qIGZpbmQucGRmICovOyB9OwogCQlBMTgwQzBGQTFFRTY3REYwMDA0
NjhGNDcgLyogUnVuT3BlblBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTE4MEMwRjkxRUU2N0RGMDAwNDY4RjQ3IC8qIFJ1bk9wZW5QYW5lbC5t
bSAqLzsgfTsKKwkJQTFDMTQyQzIyNEFBN0IyRTAwNDQ0MjA3IC8qIENvbnRleHRNZW51Q29udHJv
bENsaWNrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTFDMTQyQzEyNEFBN0IyRTAwNDQ0MjA3IC8qIENvbnRleHRNZW51Q29udHJvbENsaWNrLm1tICov
OyB9OwogCQlBMUM0RkI3MzFCQUNEMUNBMDAzNzQyRDAgLyogcGFnZXMucGFnZXMgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDNEZCNzIxQkFD
RDFCNzAwMzc0MkQwIC8qIHBhZ2VzLnBhZ2VzICovOyB9OwogCQlBMURGNzQzMjFDNDFCNjU4MDBB
MkY0RDAgLyogQWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERjc0MzAxQzQxQjY1ODAwQTJGNEQwIC8q
IEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcy5tbSAqLzsgfTsKIAkJQTFFQzExODgxRjQyNTQx
MjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFQzExODcxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZp
ZXdDb252ZXJ0ZXIuY3BwICovOyB9OwpAQCAtMTMwMyw2ICsxMzA1LDcgQEAKIAkJCQlGNDFBQjlB
MTFFRjQ2OTZCMDA4M0ZBMDggLyogY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0QTMyRUNCMUYwNjQzMzcwMDQ3QzU0NCAvKiBjb250
ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQTE2
RjY2QkExQzQwRUI0RjAwQkQ0RDI0IC8qIENvbnRlbnRGaWx0ZXJpbmcuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQlBMTNEMUFENjI0QUQ0NjhGMDAzRjkyQTggLyogY29udGV4dC1tZW51
LWNvbnRyb2wtY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTQyQjI3MzE1
MTdDOEM4MDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQ0QwQkQwQTgxRjc5OTgyRDAwMUFCMkNGIC8qIENvbnRleHRNZW51SW1n
V2l0aFZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUMyOTM2OTYxRDVDMDBF
RDAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAg
LTI0MDksNiArMjQxMiw3IEBACiAJCUExMkREQkZDMUU4MzZGRjEwMENGNkNBRSAvKiBSZW5kZXJl
ZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUExMkREQkZGMUU4MzczQzEwMENGNkNBRSAvKiByZW5kZXJlZC1p
bWFnZS1leGNsdWRpbmctb3ZlcmZsb3cuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJyZW5kZXJlZC1pbWFnZS1leGNsdWRpbmctb3ZlcmZsb3cuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUExMkREQzAxMUU4Mzc0RjUwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdl
V2l0aE9wdGlvbnNQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQcm90b2NvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBMTNEMUFENTI0QUQ0Njc3MDAzRjkyQTggLyogY29udGV4dC1tZW51LWNvbnRyb2wt
Y2xpY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjb250ZXh0LW1lbnUtY29udHJvbC1jbGljay5odG1sIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEzRUJCNDkxQjg3MzM5RTAwMDk3MTEwIC8q
IFRlc3RXZWJLaXRBUEkud2tidW5kbGUgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuY2ZidW5kbGU7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0
aCA9IFRlc3RXZWJLaXRBUEkud2tidW5kbGU7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCUExM0VCQjUyMUI4NzM0NjYwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYlByb2Nlc3NQbHVnSW4u
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExM0VCQjU0MUI4NzM0RTAw
MDA5NzExMCAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJ
bmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ0Miw2ICsyNDQ2LDcg
QEAKIAkJQTE4QUE4Q0MxQzNGQTIxODAwOUIyQjk3IC8qIENvbnRlbnRGaWx0ZXJpbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEZpbHRlcmluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMUE0RkU1RDE4REQzREI3MDBCNUVBOEEgLyogRG93bmxv
YWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEb3dubG9hZC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFCODlCOTkyMjFFMDI5RjAwRUI0Q0VB
IC8qIFNES1ZhcmlhbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
U0RLVmFyaWFudC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFDMTQy
QzEyNEFBN0IyRTAwNDQ0MjA3IC8qIENvbnRleHRNZW51Q29udHJvbENsaWNrLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQ29udGV4dE1lbnVDb250cm9sQ2xpY2subW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlja0xvb2subW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja0xvb2subW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzRGQjcyMUJBQ0QxQjcwMDM3NDJEMCAvKiBw
YWdlcy5wYWdlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IG5hbWUgPSBwYWdlcy5wYWdlczsgcGF0aCA9IGlvcy9wYWdlcy5wYWdlczsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlBMURGNzQzMDFDNDFCNjU4MDBBMkY0RDAgLyog
QWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDQxMCw2ICs0NDE1LDggQEAKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOUJENDIzOTkxRTA0QkQ5ODAwMjAwMzk1IC8qIEF0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tICovLAorCQkJCUExM0Qx
QUQ1MjRBRDQ2NzcwMDNGOTJBOCAvKiBjb250ZXh0LW1lbnUtY29udHJvbC1jbGljay5odG1sICov
LAorCQkJCUExQzE0MkMxMjRBQTdCMkUwMDQ0NDIwNyAvKiBDb250ZXh0TWVudUNvbnRyb2xDbGlj
ay5tbSAqLywKIAkJCQk4MzQ5RDNDMTFEQjk2RERBMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3du
bG9hZC5tbSAqLywKIAkJCQlDRDBCRDBBNzFGNzk5N0MyMDAxQUIyQ0YgLyogQ29udGV4dE1lbnVJ
bWdXaXRoVmlkZW8uaHRtbCAqLywKIAkJCQlDRDBCRDBBNTFGNzk5MjIwMDAxQUIyQ0YgLyogQ29u
dGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0gKi8sCkBAIC00OTA1LDYgKzQ5MTIsNyBAQAogCQkJCTVD
QTFERUQ5MUY3NEE5MUEwMEU3MUJEMyAvKiBDb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0g
aW4gU291cmNlcyAqLywKIAkJCQk0NENGMzFGRDI0OTk0MUU4MDA5Q0I2Q0IgLyogQ29udGV4dE1l
bnVBY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjgxQTQxMUE3RTAwNDQ3QzRD
IC8qIENvbnRleHRNZW51Q2FuQ29weVVSTC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUExQzE0MkMy
MjRBQTdCMkUwMDQ0NDIwNyAvKiBDb250ZXh0TWVudUNvbnRyb2xDbGljay5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3RkI3Mjk3MURCMkU4MkYwMEU0MUJFNCAvKiBDb250ZXh0TWVudURlZmF1bHRJ
dGVtc0hhdmVUYWdzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODM0OUQzQzIxREI5NkRERTAwNEE5
RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDBCRDBB
NjFGNzk5MjREMDAxQUIyQ0YgLyogQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9D
b250ZXh0TWVudUNvbnRyb2xDbGljay5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9Db250ZXh0TWVudUNvbnRyb2xDbGljay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjBjNmE2NzY0
Y2MzMjdjZDBhNmY3NTlmNzEyMzU3ZDMyMGQ2YjhlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51Q29udHJvbENsaWNrLm1t
CkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlRlc3RDb2NvYS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJPZmZzY3Jl
ZW5XaW5kb3cuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQg
IlRlc3RVSURlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxD
YXJib24vQ2FyYm9uLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdCwgQ29udGV4dE1lbnVDb250cm9sQ2xpY2spCit7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjb250ZXh0LW1lbnUtY29udHJvbC1jbGljayJd
OworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxl
Z2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBib29sIG5hdmln
YXRpb25BdHRlbXB0ZWQgPSBmYWxzZTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHNldERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246XihXS05hdmlnYXRpb25BY3Rpb24gKm5hdmlnYXRp
b25BY3Rpb24sIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSkpIHsKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNh
bmNlbCk7CisgICAgICAgIG5hdmlnYXRpb25BdHRlbXB0ZWQgPSB0cnVlOworICAgIH1dOworCisg
ICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKworICAg
IGF1dG8gY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50KDEwLCA1OTApOworICAgIF9fYmxvY2sgYm9v
bCBkb25lID0gZmFsc2U7CisgICAgW3VpRGVsZWdhdGUgc2V0R2V0Q29udGV4dE1lbnVGcm9tUHJv
cG9zZWRNZW51Ol4oTlNNZW51ICosIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKiwgaWQgPE5T
U2VjdXJlQ29kaW5nPiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShOU01lbnUgKikpIHsKKyAg
ICAgICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6Y2xpY2tQb2ludCB3aXRoRmxhZ3M6TlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2xdOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuaWwpOwor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0
UG9pbnQ6Y2xpY2tQb2ludCBzaW11bGF0ZVByZXNzdXJlOk5PIHdpdGhGbGFnczpOU0V2ZW50TW9k
aWZpZXJGbGFnQ29udHJvbF07CisgICAgVXRpbDo6cnVuKCZkb25lKTsKKworICAgIEVYUEVDVF9G
QUxTRShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5jbGlj
a1NlZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW1t3ZWJWaWV3IG9iamVjdEJ5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cubW91c2V1cFNlZW4iXSBib29sVmFsdWVdKTsK
KyAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
IndpbmRvdy5jb250ZXh0bWVudVNlZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfVFJVRShb
W3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5tb3VzZWRvd25T
ZWVuIl0gYm9vbFZhbHVlXSk7CisKKyAgICBFWFBFQ1RfRkFMU0UobmF2aWdhdGlvbkF0dGVtcHRl
ZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21h
Yy9jb250ZXh0LW1lbnUtY29udHJvbC1jbGljay5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvbWFjL2NvbnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDU2ZmU5N2Q3MmM0N2Q1YzIwYTZhNWZhMGNhZWQxMTM0MmM1MGNiMQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9jb250ZXh0LW1lbnUt
Y29udHJvbC1jbGljay5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsICgpID0+IGNsaWNrU2VlbiA9IHRydWUpOworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdj
b250ZXh0bWVudScsICgpID0+IGNvbnRleHRtZW51U2VlbiA9IHRydWUpOworICAgICAgICBhZGRF
dmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCAoKSA9PiBtb3VzZWRvd25TZWVuID0gdHJ1ZSk7Cisg
ICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCAoKSA9PiBtb3VzZXVwU2VlbiA9IHRy
dWUpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGEgaHJlZj0naHR0cHM6
Ly93d3cuYXBwbGUuY29tJz5saW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5oCmluZGV4IDY0OTljY2M3ZTA0M2M0NzYwMjlm
ZTcyNWI3MjgyOWZmNzE0NjEzMTAuLjRhNGJjM2FiZWRmZWU2OTgxZmM1Yzg3ZjY4OGI0YzE2YmM3
ZGUxYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdh
dGUuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLmgKQEAg
LTI4LDYgKzI4LDkgQEAKIEBpbnRlcmZhY2UgVGVzdFVJRGVsZWdhdGUgOiBOU09iamVjdCA8V0tV
SURlbGVnYXRlPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXnJ1bkphdmFT
Y3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2UpKFdLV2ViVmlldyAqLCBOU1N0cmluZyAqLCBXS0Zy
YW1lSW5mbyAqLCB2b2lkICheKSh2b2lkKSk7CisjaWYgUExBVEZPUk0oTUFDKQorQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUp
KE5TTWVudSAqLCBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICosIGlkIDxOU1NlY3VyZUNvZGlu
Zz4sIHZvaWQgKF4pKE5TTWVudSAqKSk7CisjZW5kaWYKIAogLSAoTlNTdHJpbmcgKil3YWl0Rm9y
QWxlcnQ7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVs
ZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLm1tCmlu
ZGV4IDUwYTQwMDYwNWFlMzRjMGE5M2E5Mzg2MDg4MzU0ZTU1MjY2YTk0MWEuLmU3Y2VhNjU4NDM4
ZjViOGVlMDg0Njg1ODkxNjY0ZjNiODU3OWYzMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFVJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbQpAQCAtNDAsNiArNDAsMTYgQEAgLSAodm9pZCl3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6
KE5TU3RyaW4KICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmIFBMQVRGT1JN
KE1BQykKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0Q29udGV4dE1l
bnVGcm9tUHJvcG9zZWRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRN
ZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVz
ZXJJbmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU01lbnUgKikpY29tcGxldGlvbkhh
bmRsZXIKK3sKKyAgICBpZiAoX2dldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudSkKKyAgICAg
ICAgX2dldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudShtZW51LCBlbGVtZW50LCB1c2VySW5m
bywgY29tcGxldGlvbkhhbmRsZXIpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIobWVudSk7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCiAtIChOU1N0cmluZyAqKXdh
aXRGb3JBbGVydAogewogICAgIEVYUEVDVF9GQUxTRShzZWxmLnJ1bkphdmFTY3JpcHRBbGVydFBh
bmVsV2l0aE1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
aAppbmRleCA0NTg3NDI5MWRhZmU5OTMwNTk0MmZjMTE2M2Y4Y2UwMjJmOGNjNjllLi41YTUzZWQw
YmZmNzgyMzJlYmMxZmY5MzY5ZmMyYmViYTZmN2NlOWUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjEsOSArMTIxLDExIEBACiBAaW50ZXJmYWNlIFRlc3RX
S1dlYlZpZXcgKE1hY09ubHkpCiAvLyBTaW11bGF0ZXMgY2xpY2tpbmcgd2l0aCBhIHByZXNzdXJl
LXNlbnNpdGl2ZSBkZXZpY2UsIGlmIHBvc3NpYmxlLgogLSAodm9pZCltb3VzZURvd25BdFBvaW50
OihOU1BvaW50KXBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVBy
ZXNzdXJlOworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cg
c2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlIHdpdGhGbGFnczooTlNFdmVu
dE1vZGlmaWVyRmxhZ3MpZmxhZ3M7CiAtICh2b2lkKW1vdXNlRHJhZ1RvUG9pbnQ6KE5TUG9pbnQp
cG9pbnRJbldpbmRvdzsKIC0gKHZvaWQpbW91c2VFbnRlckF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJ
bldpbmRvdzsKIC0gKHZvaWQpbW91c2VVcEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdzsK
Ky0gKHZvaWQpbW91c2VVcEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6
KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzOwogLSAodm9pZCltb3VzZU1vdmVUb1BvaW50OihO
U1BvaW50KXBvaW50SW5XaW5kb3cgd2l0aEZsYWdzOihOU0V2ZW50TW9kaWZpZXJGbGFncylmbGFn
czsKIC0gKHZvaWQpc2VuZENsaWNrc0F0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyBudW1i
ZXJPZkNsaWNrczooTlNVSW50ZWdlciludW1iZXJPZkNsaWNrczsKIC0gKHZvaWQpc2VuZENsaWNr
QXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDU4ODg5MTg3ZTVjMmQ1ODY3MGY5MTY5Yjg5YjdlMTBh
YWI3OTIwNGIuLmRmNTUyM2M2ZjU2Yzc1NzY4MjI3ZGY3NDljOWEyNzY1ZWI0ZDVlZjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjkwLDExICsyOTAsMTAg
QEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlldzooVGVzdFdLV2ViVmlldyAqKXdlYlZp
ZXcgY29udGVudFJlY3Q6KE5TUmVjdCljb24KICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAodm9p
ZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09M
KXNpbXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDooTlNVSW50ZWdlciljbGlja0NvdW50CistICh2
b2lkKV9tb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJP
T0wpc2ltdWxhdGVQcmVzc3VyZSBjbGlja0NvdW50OihOU1VJbnRlZ2VyKWNsaWNrQ291bnQgbW9k
aWZpZXJGbGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3MpbW9kaWZpZXJGbGFncwogewogICAgIE5T
RXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogCi0g
ICAgTlNFdmVudE1hc2sgbW9kaWZpZXJGbGFncyA9IDA7CiAgICAgaWYgKHNpbXVsYXRlUHJlc3N1
cmUpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1hc2tQcmVzc3VyZTsKIApAQCAt
MzE2LDkgKzMxNSw5IEBAIC0gKHZvaWQpX21vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQg
c2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlCiAgICAgfQogfQogCi0tICh2
b2lkKV9tb3VzZVVwQXRQb2ludDooTlNQb2ludClwb2ludCBjbGlja0NvdW50OihOU1VJbnRlZ2Vy
KWNsaWNrQ291bnQKKy0gKHZvaWQpX21vdXNlVXBBdFBvaW50OihOU1BvaW50KXBvaW50IGNsaWNr
Q291bnQ6KE5TVUludGVnZXIpY2xpY2tDb3VudCBtb2RpZmllckZsYWdzOihOU0V2ZW50TW9kaWZp
ZXJGbGFncyltb2RpZmllckZsYWdzCiB7Ci0gICAgW3NlbGYgc2VuZEV2ZW50OltOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOnBvaW50IG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6X3dlYlZpZXcuZXZlbnRUaW1lc3RhbXAgd2luZG93TnVt
YmVyOnNlbGYud2luZG93TnVtYmVyIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRD
b250ZXh0XSBldmVudE51bWJlcjorK2dFdmVudE51bWJlciBjbGlja0NvdW50OmNsaWNrQ291bnQg
cHJlc3N1cmU6MF1dOworICAgIFtzZWxmIHNlbmRFdmVudDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdz
Om1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOl93ZWJWaWV3LmV2ZW50VGltZXN0YW1wIHdpbmRvd051
bWJlcjpzZWxmLndpbmRvd051bWJlciBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF0gZXZlbnROdW1iZXI6KytnRXZlbnROdW1iZXIgY2xpY2tDb3VudDpjbGlja0NvdW50
IHByZXNzdXJlOjBdXTsKIH0KIAogI2VuZGlmCkBAIC03MjEsMTIgKzcyMCwyMiBAQCAtIChOU1Rp
bWVJbnRlcnZhbClldmVudFRpbWVzdGFtcAogCiAtICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5T
UG9pbnQpcG9pbnRJbldpbmRvdyBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1
cmUKIHsKLSAgICBbX2hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnRJbldpbmRvdyBz
aW11bGF0ZVByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDoxXTsKKyAgICBbc2Vs
ZiBtb3VzZURvd25BdFBvaW50OnBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTpzaW11bGF0
ZVByZXNzdXJlIHdpdGhGbGFnczowXTsKK30KKworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihO
U1BvaW50KXBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNz
dXJlIHdpdGhGbGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3MpZmxhZ3MKK3sKKyAgICBbX2hvc3RX
aW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnRJbldpbmRvdyBzaW11bGF0ZVByZXNzdXJlOnNp
bXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDoxIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NdOwogfQogCiAt
ICh2b2lkKW1vdXNlVXBBdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cKIHsKLSAgICBbX2hv
c3RXaW5kb3cgX21vdXNlVXBBdFBvaW50OnBvaW50SW5XaW5kb3cgY2xpY2tDb3VudDoxXTsKKyAg
ICBbc2VsZiBtb3VzZVVwQXRQb2ludDpwb2ludEluV2luZG93IHdpdGhGbGFnczowXTsKK30KKwor
LSAodm9pZCltb3VzZVVwQXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93IHdpdGhGbGFnczoo
TlNFdmVudE1vZGlmaWVyRmxhZ3MpZmxhZ3MKK3sKKyAgICBbX2hvc3RXaW5kb3cgX21vdXNlVXBB
dFBvaW50OnBvaW50SW5XaW5kb3cgY2xpY2tDb3VudDoxIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NdOwog
fQogCiAtICh2b2lkKW1vdXNlTW92ZVRvUG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3aXRo
RmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzCkBAIC03MzcsOCArNzQ2LDggQEAgLSAo
dm9pZCltb3VzZU1vdmVUb1BvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cgd2l0aEZsYWdzOihO
U0V2ZW50TW9kaWZpZXJGbGFncykKIC0gKHZvaWQpc2VuZENsaWNrc0F0UG9pbnQ6KE5TUG9pbnQp
cG9pbnRJbldpbmRvdyBudW1iZXJPZkNsaWNrczooTlNVSW50ZWdlciludW1iZXJPZkNsaWNrcwog
ewogICAgIGZvciAoTlNVSW50ZWdlciBjbGlja0NvdW50ID0gMTsgY2xpY2tDb3VudCA8PSBudW1i
ZXJPZkNsaWNrczsgKytjbGlja0NvdW50KSB7Ci0gICAgICAgIFtfaG9zdFdpbmRvdyBfbW91c2VE
b3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRlUHJlc3N1cmU6Tk8gY2xpY2tDb3VudDpj
bGlja0NvdW50XTsKLSAgICAgICAgW19ob3N0V2luZG93IF9tb3VzZVVwQXRQb2ludDpwb2ludElu
V2luZG93IGNsaWNrQ291bnQ6Y2xpY2tDb3VudF07CisgICAgICAgIFtfaG9zdFdpbmRvdyBfbW91
c2VEb3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRlUHJlc3N1cmU6Tk8gY2xpY2tDb3Vu
dDpjbGlja0NvdW50IG1vZGlmaWVyRmxhZ3M6MF07CisgICAgICAgIFtfaG9zdFdpbmRvdyBfbW91
c2VVcEF0UG9pbnQ6cG9pbnRJbldpbmRvdyBjbGlja0NvdW50OmNsaWNrQ291bnQgbW9kaWZpZXJG
bGFnczowXTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403759</attachid>
            <date>2020-07-07 22:46:23 -0700</date>
            <delta_ts>2020-07-08 10:05:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213793-20200707224619.patch</filename>
            <type>text/plain</type>
            <size>63670</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExM2IwZDJiOTNmN2VkNWYy
NDEzOGY5M2JhNWE3ODAxNWUxMmE3MzEuLjk1ODMwNzU3ZGJiY2Y4Y2Y4ZjdmMjQzMGEwMTgyNjlm
NDEzNzg3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE0IEBACisyMDIwLTA3LTAyICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjA3NTU4KTog
W01hY10gQ29udGV4dCBjbGlja3Mgb24gbGlua3Mgc29tZXRpbWVzIHJlc3VsdCBpbiBuYXZpZ2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
NzkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDI5NDAxNT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJQYWdlUHJveHk6OnNob3dDb250ZXh0
TWVudSB3YXMgd3JpdHRlbiB3aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgV2ViQ29udGV4dE1lbnVQ
cm94eTo6c2hvdworICAgICAgICB3b3VsZCBwcmVzZW50IGEgY29udGV4dCBtZW51IGFuZCBzcGlu
IGEgbmVzdGVkIHJ1biBsb29wLCBibG9ja2luZyB1bnRpbCB0aGUgbWVudSBkaXNtaXNzZXMuCisg
ICAgICAgIE9uY2UgV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyByZXR1cm5zLCBzaG93Q29udGV4
dE1lbnUgd291bGQgc2VuZCB0aGUKKyAgICAgICAgV2ViUGFnZTo6Q29udGV4dE1lbnVIaWRkZW4g
bWVzc2FnZSwgdGVsbGluZyB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRoYXQgaXQncyBPSyB0byBy
ZXN1bWUKKyAgICAgICAgcHJvY2Vzc2luZyBtb3VzZSBldmVudHMuCisKKyAgICAgICAgVGhpcyBh
c3N1bXB0aW9uIHdhcyBpbnZhbGlkYXRlZCBpbiByMjA3NTU4IChhbmQgYWdhaW4gaW4gc2V2ZXJh
bCBzdWJzZXF1ZW50IGNoYW5nZXMpLCB3aGljaAorICAgICAgICBhZGRlZCBhc3luY2hyb25vdXMg
QVBJcyB0byBXS1BhZ2VDb250ZXh0TWVudUNsaWVudC4gSWYgdGhlIGNvbnRleHQgbWVudSBjbGll
bnQgcHJvdmlkZXMKKyAgICAgICAgY29udGV4dCBtZW51IGl0ZW1zIGFzeW5jaHJvbm91c2x5LCBX
ZWJDb250ZXh0TWVudVByb3h5OjpzaG93IHdvdWxkIHJldHVybiAtLSBhbmQgdGhlCisgICAgICAg
IFdlYkNvbnRlbnQgcHJvY2VzcyB3b3VsZCByZXN1bWUgcHJvY2Vzc2luZyBtb3VzZSBldmVudHMg
LS0gYmVmb3JlIHRoZSBjb250ZXh0IG1lbnUgd2FzIGV2ZW4KKyAgICAgICAgcHJlc2VudGVkLiBT
aW5jZSBjb250ZXh0IG1lbnUgcHJlc2VudGF0aW9uIGlzIHRyaWdnZXJlZCBieSBhIG1vdXNlIHBy
ZXNzIGV2ZW50LCBpdCdzCisgICAgICAgIHBvc3NpYmxlIHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcg
bW91c2UgcmVsZWFzZSBldmVudCB3b3VsZCBiZSBkZWxpdmVyZWQgYWZ0ZXIKKyAgICAgICAgZ2V0
Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51QXN5bmMgd2FzIGRpc3BhdGNoZWQgYnV0IGJlZm9y
ZSB0aGUgY2xpZW50IHJlc3BvbmRlZCB3aXRoIG1lbnUKKyAgICAgICAgaXRlbXMgdG8gcHJlc2Vu
dC4gSWYgdGhpcyBoYXBwZW5lZCwgc2luY2UgbW91c2UgZXZlbnQgcHJvY2Vzc2luZyB3YXMgbm90
IGRpc2FibGVkLCB0aGUKKyAgICAgICAgV2ViQ29udGVudCBwcm9jZXNzIHdvdWxkIGRpc3BhdGNo
IGEgRE9NIGNsaWNrIGV2ZW50IHRvIHRoZSBwYWdlLCBwb3NzaWJseSB0cmlnZ2VyaW5nIGEKKyAg
ICAgICAgbmF2aWdhdGlvbi4KKworICAgICAgICBGaXggdGhpcyBieSB0ZWFjaGluZyBXZWJQYWdl
UHJveHkgdG8gZGVmZXIgc2VuZGluZyBXZWJQYWdlOjpDb250ZXh0TWVudUhpZGRlbiB1bnRpbCB0
aGUKKyAgICAgICAgY29udGV4dCBtZW51IGhhcyBiZWVuIGRpc21pc3NlZCwgZXZlbiBpbiBjYXNl
cyB3aGVyZSB0aGUgY29udGV4dCBtZW51IGNsaWVudCBwcm92aWRlcyBtZW51CisgICAgICAgIGl0
ZW1zIGFzeW5jaHJvbm91c2x5LiBBbHNvLCB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byBtb2Rlcm5p
emUgV2ViQ29udGV4dE1lbnVQcm94eSBhbmQgaXRzCisgICAgICAgIHN1YmNsYXNzZXMgYnksIGUu
Zy4sIG1vdmluZyBkdXBsaWNhdGVkIHN1YmNsYXNzIGNvZGUgaW50byB0aGUgYmFzZSBjbGFzcywg
dXNpbmcgdGhlIGNsaWVudAorICAgICAgICBwYXR0ZXJuLCBhbmQgdXNpbmcgV2Vha1B0cnMgaW5z
dGVhZCBvZiByYXcgcG9pbnRlcnMvcmVmZXJlbmNlcy4KKworICAgICAgICBOZXcgQVBJIHRlc3Rz
OiBDb250ZXh0TWVudU1vdXNlRXZlbnRzLioKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
Q29udGV4dE1lbnVDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6Q29udGV4dE1lbnVDbGllbnQ6OnNo
b3dDb250ZXh0TWVudSk6CisgICAgICAgIChBUEk6OkNvbnRleHRNZW51Q2xpZW50OjpjYW5TaG93
Q29udGV4dE1lbnUgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlU2V0UGFnZUNvbnRleHRNZW51Q2xpZW50KTogQWRkZWQgY2FuU2hv
d0NvbnRleHRNZW51IHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjbGllbnQKKyAgICAgICAgY2Fu
IHNob3cgYSBjb250ZXh0IG1lbnUgd2l0aG91dCBhY3R1YWxseSBzaG93aW5nIGl0LgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eSk6IFBhc3NlZCBwYWdl
IHRvCisgICAgICAgIFdlYkNvbnRleHRNZW51UHJveHlXUEU6OmNyZWF0ZS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6dXNl
Q29udGV4dE1lbnVJdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51TGlzdGVu
ZXJQcm94eTo6aW52YWxpZGF0ZSk6IERlbGV0ZWQuIE5vdCBuZWVkZWQgbm93IHRoYXQgbV9jbGll
bnQgaXMKKyAgICAgICAgYSBXZWFrUHRyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUxp
c3RlbmVyUHJveHk6OmNyZWF0ZSk6IFJhdGhlciB0aGFuIHN0b3JlIGEgcmF3IHBvaW50ZXIgdG8g
YQorICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5LCBzdG9yZSBhIFdlYWtQdHIgdG8gYSBXZWJD
b250ZXh0TWVudUxpc3RlbmVyUHJveHk6OkNsaWVudCAod2hpY2gKKyAgICAgICAgV2ViQ29udGV4
dE1lbnVQcm94eSBpbXBsZW1lbnRzKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0
TWVudVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6V2Vi
Q29udGV4dE1lbnVQcm94eSk6IFN0b3JlZCBhIFdlYWtQdHIgdG8gYSBXZWJQYWdlUHJveHkKKyAg
ICAgICAgcmF0aGVyIHRoYW4gc3RvcmluZyBhIHJhdyBwb2ludGVyIHRvIHRoZSBzYW1lIGluIGVh
Y2ggc3ViY2xhc3MuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHk6OnByb3Bv
c2VkSXRlbXMgY29uc3QpOiBBZGRlZCBhIHZpcnR1YWwgZnVuY3Rpb24gdG8gY3JlYXRlCisgICAg
ICAgIHByb3Bvc2VkIFdlYkNvbnRleHRNZW51SXRlbXMgZnJvbSBtX2NvbnRleHQncyBtZW51IGl0
ZW1zLiBXZWJDb250ZXh0TWVudVByb3h5R3RrIG92ZXJyaWRlcworICAgICAgICB0aGlzIHRvIGRv
IHNvbWV0aGluZyBzbGlnaHRseSBkaWZmZXJlbnQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHRNZW51UHJveHk6OnNob3cpOiBBZGRlZCBhIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gdGhh
dCBjcmVhdGVzIGEKKyAgICAgICAgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5IGFuZCBjYWxs
cyBDb250ZXh0TWVudUNsaWVudDo6Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51LgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5Ojp1c2VDb250ZXh0TWVudUl0ZW1zKTog
QWRkZWQgYSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIHRoYXQKKyAgICAgICAgcGVyZm9ybXMg
dGhlIHdvcmsgcHJldmlvdXNseSBkb25lIGluIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRNZW51
LiBDYWxscworICAgICAgICBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMsIHdoaWNoIG5vdyBhbHdh
eXMgc3luY2hyb25vdXNseSBwcmVzZW50cyB0aGUgbWVudS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJDb250ZXh0TWVudVByb3h5Lmg6IEluaGVyaXRlZCBmcm9tIFdlYkNvbnRleHRNZW51TGlz
dGVuZXJQcm94eTo6Q2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
OjpwYWdlIGNvbnN0KTogQWRkZWQgZm9yIHVzZSBieSBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVs
ZWdhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUpOiBNb3ZlZCBjb2RlIHRoYXQg
YXNzdW1lcyBzeW5jaHJvbm91cyBtZW51CisgICAgICAgIHByZXNlbnRhdGlvbiB0byBXZWJDb250
ZXh0TWVudVByb3h5Ojp1c2VDb250ZXh0TWVudUl0ZW1zLgorCisgICAgICAgICogVUlQcm9jZXNz
L2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dE1lbnVQcm94eUd0azo6cHJvcG9zZWRJdGVtcyBjb25zdCk6IEltcGxlbWVudGVkIEdUSydz
IHNwZWNpYWwgdmVyc2lvbgorICAgICAgICB0aGF0IGV4Y2x1ZGVzIENvbnRleHRNZW51SXRlbVRh
Z1NoYXJlTWVudS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hv
dyk6IERlbGV0ZWQuIFdlYkNvbnRleHRNZW51UHJveHk6OnNob3cgaGFuZGxlcyB0aGlzIG5vdy4K
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6YXBwZW5kKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvd0NvbnRleHRNZW51V2l0aEl0
ZW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6V2ViQ29udGV4
dE1lbnVQcm94eUd0ayk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVBy
b3h5R3RrLmg6IE1vdmVkIG1fcGFnZSB0byBXZWJDb250ZXh0TWVudVByb3h5LgorCisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW06CisgICAg
ICAgICgtW1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZSBzaGFyaW5nU2VydmljZTpkaWRT
aGFyZUl0ZW1zOl0pOiBDaGFuZ2VkIG5vdyB0aGF0CisgICAgICAgIFdlYkNvbnRleHRNZW51UHJv
eHk6OnBhZ2UgcmV0dXJucyBhIHBvaW50ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6cGFnZSBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OldlYkNvbnRleHRNZW51UHJveHlNYWMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0TWVudVByb3h5TWFjOjp+V2ViQ29udGV4dE1lbnVQcm94eU1hYyk6IE5vIG5lZWQg
dG8gaW52YWxpZGF0ZQorICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIgbm93IHRoYXQgaXQg
c3RvcmVzIGEgV2Vha1B0ciB0byBpdHMgV2ViQ29udGV4dE1lbnVQcm94eS4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93U2VydmljZXNNZW51
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvdyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudVdpdGhJ
dGVtcyk6IE92ZXJyb2RlIHRvIGhhbmRsZSBzZXJ2aWNlIG1lbnVzLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1c2VDb250ZXh0TWVudUl0ZW1zKTogT3ZlcnJvZGUg
dG8gZ2V0IHRoZSBzdGFuZGFyZCBNYWMgbWVudQorICAgICAgICBpdGVtcyBhbmQgZGlzcGF0Y2gg
Q29udGV4dE1lbnVDbGllbnQ6Om1lbnVGcm9tUHJvcG9zZWRNZW51IGJlZm9yZSBzaG93aW5nIHRo
ZSBtZW51LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93Q29u
dGV4dE1lbnUpOiBEZWxldGVkLiBXZWJDb250ZXh0TWVudVByb3h5OjpzaG93IG5vdworICAgICAg
ICBoYW5kbGVzIHRoaXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51
UHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5V2luOjpz
aG93Q29udGV4dE1lbnVXaXRoSXRlbXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVu
dVByb3h5V2luOjpXZWJDb250ZXh0TWVudVByb3h5V2luKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dE1lbnVQcm94eVdpbjo6c2hvdyk6IERlbGV0ZWQuIFdlYkNvbnRleHRNZW51UHJveHk6
OnNob3cgbm93IGhhbmRsZXMgdGhpcy4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYkNvbnRl
eHRNZW51UHJveHlXaW4uaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViQ29udGV4dE1l
bnVQcm94eVdQRS5oOiBQYXNzZWQgcGFnZSB0byB0aGUgV2ViQ29udGV4dE1lbnVQcm94eSBjdG9y
LgorCiAyMDIwLTA3LTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgTW9kZXJuaXplIEZpbmRPcHRpb25zIElQQyBjb2RlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oCmluZGV4IDgx
NmY3MWUxMjY3MGNiM2Q2NWIxZTYzMjgwM2E2YjQwZWY3ZGJmYTIuLmUzMzczMzllNWFmZjg5ZjY0
MTlhMmIzYTVmNTUzMWUyYmNhNDZjZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oCkBAIC01NSw3ICs1NSw4IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUoV2ViS2l0
OjpXZWJQYWdlUHJveHkmLCBWZWN0b3I8UmVmPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtPj4m
JiBwcm9wb3NlZE1lbnUsIFdlYktpdDo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5JiBsaXN0
ZW5lciwgY29uc3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSYsIEFQSTo6T2JqZWN0KiAv
KiB1c2VyRGF0YSAqLykgeyBsaXN0ZW5lci51c2VDb250ZXh0TWVudUl0ZW1zKFdURk1vdmUocHJv
cG9zZWRNZW51KSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY3VzdG9tQ29udGV4dE1lbnVJdGVtU2Vs
ZWN0ZWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51
SXRlbURhdGEmKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBWZWN0b3I8UmVm
PFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtPj4mKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFZlY3RvcjxSZWY8V2ViS2l0OjpXZWJDb250ZXh0TWVu
dUl0ZW0+PiYpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93Q29udGV4dE1lbnUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoaWRlQ29udGV4dE1lbnUoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKSB7IHJldHVybiBmYWxzZTsgfQogCiAjaWYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYmEyZmVlY2Qy
ODg1YWNjNDVkZDE1M2ZmNTAyZDQ5Zjc2NTBmMmM2ZC4uY2RlMjBhYTEyMWExZjJkMTZhOGQyZTI1
NDZlZWNlZTcxODNiYmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNS0yMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0y
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtOTI2LDEwICs5MjYsMTAgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlQ29udGV4
dE1lbnVDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2wK
ICAgICAgICAgICAgIG1fY2xpZW50LmN1c3RvbUNvbnRleHRNZW51SXRlbVNlbGVjdGVkKHRvQVBJ
KCZwYWdlKSwgdG9BUEkoV2ViQ29udGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbURhdGEpLnB0cigp
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wg
c2hvd0NvbnRleHRNZW51KFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIG1lbnVMb2NhdGlvbiwgY29uc3QgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYg
bWVudUl0ZW1zVmVjdG9yKSBvdmVycmlkZQorICAgICAgICB2b2lkIHNob3dDb250ZXh0TWVudShX
ZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24s
IGNvbnN0IFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mIG1lbnVJdGVtc1ZlY3Rvcikg
b3ZlcnJpZGUKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5zaG93Q29udGV4
dE1lbnUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFj
YW5TaG93Q29udGV4dE1lbnUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
ICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiBtZW51SXRlbXM7CiAgICAgICAgICAgICBt
ZW51SXRlbXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtZW51SXRlbXNWZWN0b3Iuc2l6ZSgpKTsK
QEAgLTkzOCw4ICs5MzgsMTEgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlQ29udGV4dE1lbnVDbGllbnQo
V0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2wKICAgICAgICAgICAg
ICAgICBtZW51SXRlbXMudW5jaGVja2VkQXBwZW5kKG1lbnVJdGVtLnB0cigpKTsKIAogICAgICAg
ICAgICAgbV9jbGllbnQuc2hvd0NvbnRleHRNZW51KHRvQVBJKCZwYWdlKSwgdG9BUEkobWVudUxv
Y2F0aW9uKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1vdmUobWVudUl0ZW1zKSkucHRy
KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CiAKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBib29sIGNhblNob3dDb250ZXh0TWVudSgpIGNvbnN0IG92
ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2NsaWVudC5zaG93Q29udGV4
dE1lbnU7CiAgICAgICAgIH0KIAogICAgICAgICBib29sIGhpZGVDb250ZXh0TWVudShXZWJQYWdl
UHJveHkmIHBhZ2UpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDU3MzI2M2VlODhmZTIzMmIzMzU5NTIzNjk4
NTU2NjU0NjE3MmYyOTMuLjhhMjBjZWNjMTUzNDU5YmZkOTc2YjlkMGI5YWEwNmIxZTVhNTM1NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwCkBAIC0yNjMsOSArMjYzLDkgQEAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdl
Q2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWcKIH0KIAog
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotUmVmPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRleHRN
ZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCitSZWY8
V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbnRleHRNZW51UHJv
eHkoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIHJldHVybiBXZWJDb250ZXh0TWVudVBy
b3h5V1BFOjpjcmVhdGUoV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpOworICAgIHJldHVybiBX
ZWJDb250ZXh0TWVudVByb3h5V1BFOjpjcmVhdGUocGFnZSwgV1RGTW92ZShjb250ZXh0KSwgdXNl
ckRhdGEpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuY3BwCmluZGV4IDExNWYwMzNhYmRiMDI0Yzg0
YzAzOTJlNjQyODAzNzEyNmUzMWM5NjAuLmRjNzQ4NGVjYmQyY2E4YTkxMDc1NzJiNmI4YjlmNWE4
MzI0YjRmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRN
ZW51TGlzdGVuZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29u
dGV4dE1lbnVMaXN0ZW5lclByb3h5LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwzNSArMjgsMjQgQEAKIAogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQogCi0jaW5jbHVkZSAiQVBJQXJyYXkuaCIKLSNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKLSNpbmNsdWRlICJXS0FycmF5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVt
LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJDb250ZXh0TWVudUxpc3RlbmVy
UHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eShXZWJDb250ZXh0TWVudVByb3h5KiBj
b250ZXh0TWVudU1hYykKLSAgICA6IG1fY29udGV4dE1lbnVNYWMoY29udGV4dE1lbnVNYWMpCitX
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eShX
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OkNsaWVudCYgY2xpZW50KQorICAgIDogbV9jbGll
bnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKIH0KIAotV2ViQ29udGV4dE1lbnVMaXN0ZW5lclBy
b3h5Ojp+V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KCkKLXsKLX0KK1dlYkNvbnRleHRNZW51
TGlzdGVuZXJQcm94eTo6fldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSgpID0gZGVmYXVsdDsK
IAogdm9pZCBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMo
VmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmIGl0ZW1zKQogewotICAgIGlmICghbV9j
b250ZXh0TWVudU1hYykKKyAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX2NvbnRleHRNZW51TWFjLT5zaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoV1RGTW92ZShpdGVt
cykpOwotfQotCi12b2lkIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgp
Ci17Ci0gICAgbV9jb250ZXh0TWVudU1hYyA9IG51bGxwdHI7CisgICAgbV9jbGllbnQtPnVzZUNv
bnRleHRNZW51SXRlbXMoV1RGTW92ZShpdGVtcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51TGlz
dGVuZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0
ZW5lclByb3h5LmgKaW5kZXggN2ZkMzQwNjM1ZmEzODY4Y2VkMDdhMGI0MWE1MTA5YjE0N2YzMTg4
Zi4uN2RiMTNjZGViNDNkZDA3NzI5Njg2MzYwNTdlMjFjMGUxNjg4ZTczZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjgsMzEgKzI4LDM1IEBACiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKICNpbmNsdWRlICJB
UElPYmplY3QuaCIKLSNpbmNsdWRlICJXS0FycmF5LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dE1l
bnVQcm94eS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotY2xh
c3MgV2ViQ29udGV4dE1lbnVQcm94eU1hYzsKKworY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtOwog
CiBjbGFzcyBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJ
bXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpDb250ZXh0TWVudUxpc3RlbmVyPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJDb250
ZXh0TWVudVByb3h5KiBjb250ZXh0TWVudU1hYykKKyAgICBzdHJ1Y3QgQ2xpZW50IDogQ2FuTWFr
ZVdlYWtQdHI8Q2xpZW50PiB7CisgICAgICAgIHZpcnR1YWwgfkNsaWVudCgpID0gZGVmYXVsdDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9yPFJlZjxXZWJD
b250ZXh0TWVudUl0ZW0+PiYmKSA9IDA7CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8V2ViQ29u
dGV4dE1lbnVMaXN0ZW5lclByb3h5PiBjcmVhdGUoQ2xpZW50JiBjbGllbnQpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkoY29u
dGV4dE1lbnVNYWMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1l
bnVMaXN0ZW5lclByb3h5KGNsaWVudCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eSgpOwogCiAgICAgdm9pZCB1c2VDb250ZXh0TWVudUl0ZW1zKFZl
Y3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJik7CiAKLSAgICB2b2lkIGludmFsaWRhdGUo
KTsKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdl
YkNvbnRleHRNZW51UHJveHkqKTsKKyAgICBleHBsaWNpdCBXZWJDb250ZXh0TWVudUxpc3RlbmVy
UHJveHkoQ2xpZW50Jik7CiAKLSAgICBXZWJDb250ZXh0TWVudVByb3h5KiBtX2NvbnRleHRNZW51
TWFjOworICAgIFdlYWtQdHI8Q2xpZW50PiBtX2NsaWVudDsKIH07Ci0gICAgCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCmluZGV4IDdmYjJj
NTJjYzI3MTA1ZTIxMjhlYWNjYmUyYzM3YmQ3ZTU0YjJlMjIuLjNkYzZjMzc2Nzg2MDQ1NjY1N2Yy
YTE5YmYyZDZhZGYyYmIzNWFkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRNZW51UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE2ICsyOCw1MCBAQAogCiAjaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCiAKKyNpbmNsdWRlICJBUElDb250ZXh0TWVudUNsaWVudC5oIgorI2luY2x1ZGUg
IldlYlBhZ2VNZXNzYWdlcy5oIgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29udGV4dE1l
bnVQcm94eTo6V2ViQ29udGV4dE1lbnVQcm94eShDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29u
dGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorV2ViQ29udGV4dE1lbnVQcm94eTo6V2Vi
Q29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERh
dGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgOiBtX2NvbnRleHQo
V1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEpCisgICAgLCBtX3Bh
Z2UobWFrZVdlYWtQdHIocGFnZSkpCit7Cit9CisKK1dlYkNvbnRleHRNZW51UHJveHk6On5XZWJD
b250ZXh0TWVudVByb3h5KCkgPSBkZWZhdWx0OworCitWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51
SXRlbT4+IFdlYkNvbnRleHRNZW51UHJveHk6OnByb3Bvc2VkSXRlbXMoKSBjb25zdAoreworICAg
IHJldHVybiBXVEY6Om1hcChtX2NvbnRleHQubWVudUl0ZW1zKCksIFtdKGF1dG8mIGl0ZW0pIHsK
KyAgICAgICAgcmV0dXJuIFdlYkNvbnRleHRNZW51SXRlbTo6Y3JlYXRlKGl0ZW0pOworICAgIH0p
OworfQorCit2b2lkIFdlYkNvbnRleHRNZW51UHJveHk6OnNob3coKQogeworICAgIG1fY29udGV4
dE1lbnVMaXN0ZW5lciA9IFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Y3JlYXRlKCp0aGlz
KTsKKyAgICBwYWdlKCktPmNvbnRleHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9tUHJv
cG9zZWRNZW51KCpwYWdlKCksIHByb3Bvc2VkSXRlbXMoKSwgKm1fY29udGV4dE1lbnVMaXN0ZW5l
ciwgbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIHBhZ2UoKS0+cHJvY2VzcygpLnRy
YW5zZm9ybUhhbmRsZXNUb09iamVjdHMobV91c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQog
Ci1XZWJDb250ZXh0TWVudVByb3h5Ojp+V2ViQ29udGV4dE1lbnVQcm94eSgpCit2b2lkIFdlYkNv
bnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0
TWVudUl0ZW0+PiYmIGl0ZW1zKQogeworICAgIG1fY29udGV4dE1lbnVMaXN0ZW5lciA9IG51bGxw
dHI7CisKKyAgICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRyKHRoaXMtPnBhZ2UoKSk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBTaW5jZSBzaG93Q29udGV4dE1lbnVX
aXRoSXRlbXMgY2FuIHNwaW4gYSBuZXN0ZWQgcnVuIGxvb3Agd2UgbmVlZCB0byB0dXJuIG9mZiB0
aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIuCisgICAgcGFnZS0+cHJvY2VzcygpLnN0b3BSZXNwb25z
aXZlbmVzc1RpbWVyKCk7CisKKyAgICAvLyBQcm90ZWN0IHx0aGlzfCBmcm9tIGJlaW5nIGRlYWxs
b2NhdGVkIGlmIFdlYlBhZ2VQcm94eSBjb2RlIGlzIHJlLWVudGVyZWQgZnJvbSB0aGUgbWVudSBy
dW5sb29wIG9yIGRlbGVnYXRlcy4KKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKTsKKyAgICBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoV1RGTW92ZShpdGVtcykpOworCisg
ICAgLy8gTm8gbWF0dGVyIHRoZSByZXN1bHQgb2Ygc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zLCBh
bHdheXMgbm90aWZ5IHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIG1lbnUgaXMgaGlkZGVuIHNvIGl0
IHN0YXJ0cyBoYW5kbGluZyBtb3VzZSBldmVudHMgYWdhaW4uCisgICAgcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6Q29udGV4dE1lbnVIaWRkZW4oKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5o
CmluZGV4IDNmMDVmNDM5NWMwODY1NmVlNjBjMWE0NjdjNmZlODA5MTE1YTAyMTAuLjJkMmM1NzY1
YzAxZjI2ODA3NDlhOGYxOTNkNjFmYjY2NmEwOGFiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMjUgKzI5LDM4IEBACiAKICNpbmNsdWRl
ICJDb250ZXh0TWVudUNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKKyNpbmNs
dWRlICJXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW07CitjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNz
IFdlYkNvbnRleHRNZW51UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJDb250ZXh0TWVudVBy
b3h5PiB7CitjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
Q29udGV4dE1lbnVQcm94eT4sIHB1YmxpYyBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6OkNs
aWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQ29udGV4dE1lbnVQcm94eSgpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNob3coKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3coKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJD
b250ZXh0TWVudUl0ZW0+PiYmKSA9IDA7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBXZWJDb250ZXh0TWVu
dVByb3h5KENvbnRleHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICBX
ZWJDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERhdGEm
JiwgY29uc3QgVXNlckRhdGEmKTsKKworICAgIC8vIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94
eTo6Q2xpZW50CisgICAgdm9pZCB1c2VDb250ZXh0TWVudUl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29u
dGV4dE1lbnVJdGVtPj4mJikgb3ZlcnJpZGU7CiAKICAgICBjb25zdCBDb250ZXh0TWVudUNvbnRl
eHREYXRhIG1fY29udGV4dDsKICAgICBjb25zdCBVc2VyRGF0YSBtX3VzZXJEYXRhOworCitwcml2
YXRlOgorICAgIHZpcnR1YWwgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiBwcm9wb3Nl
ZEl0ZW1zKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVt
cyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpID0gMDsKKworICAgIFJlZlB0cjxX
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IG1fY29udGV4dE1lbnVMaXN0ZW5lcjsKKyAgICBX
ZWFrUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1YzE4M2I1Y2Qz
ODIyYTk2YTQ1MDQxZTc1MjFiNTYyMWYxNWVjZTVjLi44Njc3MGJlMzgwMGM1YWViYjI4MTAyMmU2
YjBjYWFlN2M2ZGIxYjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTY1NTYsMTUgKzY1NTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRN
ZW51KENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0TWVudUNvbnRleHREYQogCiAgICAg
bV9hY3RpdmVDb250ZXh0TWVudSA9IHBhZ2VDbGllbnQoKS5jcmVhdGVDb250ZXh0TWVudVByb3h5
KCp0aGlzLCBXVEZNb3ZlKGNvbnRleHRNZW51Q29udGV4dERhdGEpLCB1c2VyRGF0YSk7CiAKLSAg
ICAvLyBTaW5jZSBzaG93Q29udGV4dE1lbnUoKSBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3
ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lci4KLSAgICBtX3Byb2Nl
c3MtPnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7Ci0KLSAgICAvLyBtX2FjdGl2ZUNvbnRleHRN
ZW51IG1pZ2h0IGdldCBjbGVhcmVkIGlmIFdlYlBhZ2VQcm94eSBjb2RlIGlzIHJlLWVudGVyZWQg
ZnJvbSB0aGUgbWVudSBydW5sb29wIG9yIGRlbGVnYXRlcy4KLSAgICBSZWY8V2ViQ29udGV4dE1l
bnVQcm94eT4gcHJvdGVjdG9yKCptX2FjdGl2ZUNvbnRleHRNZW51KTsKICAgICBtX2FjdGl2ZUNv
bnRleHRNZW51LT5zaG93KCk7Ci0KLSAgICAvLyBObyBtYXR0ZXIgdGhlIHJlc3VsdCBvZiBpbnRl
cm5hbFNob3dDb250ZXh0TWVudSwgYWx3YXlzIG5vdGlmeSB0aGUgV2ViUHJvY2VzcyB0aGF0IHRo
ZSBtZW51IGlzIGhpZGRlbiBzbyBpdCBzdGFydHMgaGFuZGxpbmcgbW91c2UgZXZlbnRzIGFnYWlu
LgotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuKCkpOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcAppbmRleCBhODhjYzZiMmI1NTZiNDEy
MDMyODc0ZDAyZWQzNDhiOTZmZTEwMmFjLi44MDlkMGZjZTY2NWEyYTAxNjlhZDdlNjhhYjJlYTY0
Mjg1NDYxOGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29u
dGV4dE1lbnVQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dl
YkNvbnRleHRNZW51UHJveHlHdGsuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5R3RrOjphcHBlbmQoR01lbnUqIG1lbnUsIGNvbnN0IFdlYkNvbnRleHRNZW51
SXRlbUdsaWImIG0KICAgICAgICAgaWYgKG1lbnVJdGVtLmFjdGlvbigpIDwgQ29udGV4dE1lbnVJ
dGVtQmFzZUFwcGxpY2F0aW9uVGFnKSB7CiAgICAgICAgICAgICBnX29iamVjdF9zZXRfZGF0YShH
X09CSkVDVChhY3Rpb24pLCBnQ29udGV4dE1lbnVBY3Rpb25JZCwgR0lOVF9UT19QT0lOVEVSKG1l
bnVJdGVtLmFjdGlvbigpKSk7CiAgICAgICAgICAgICBnX29iamVjdF9zZXRfZGF0YV9mdWxsKEdf
T0JKRUNUKGFjdGlvbiksIGdDb250ZXh0TWVudVRpdGxlLCBnX3N0cmR1cChtZW51SXRlbS50aXRs
ZSgpLnV0ZjgoKS5kYXRhKCkpLCBnX2ZyZWUpOwotICAgICAgICAgICAgc2lnbmFsSGFuZGxlcklk
ID0gZ19zaWduYWxfY29ubmVjdChhY3Rpb24sICJhY3RpdmF0ZSIsIEdfQ0FMTEJBQ0soY29udGV4
dE1lbnVJdGVtQWN0aXZhdGVkQ2FsbGJhY2spLCBtX3BhZ2UpOworICAgICAgICAgICAgc2lnbmFs
SGFuZGxlcklkID0gZ19zaWduYWxfY29ubmVjdChhY3Rpb24sICJhY3RpdmF0ZSIsIEdfQ0FMTEJB
Q0soY29udGV4dE1lbnVJdGVtQWN0aXZhdGVkQ2FsbGJhY2spLCBwYWdlKCkpOwogICAgICAgICAg
ICAgbV9zaWduYWxIYW5kbGVycy5zZXQoc2lnbmFsSGFuZGxlcklkLCBhY3Rpb24pOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMjUwLDE1ICsyNTAsMTQgQEAgdm9pZCBXZWJDb250ZXh0
TWVudVByb3h5R3RrOjpwb3B1bGF0ZShjb25zdCBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRl
bT4+JiBpdGUKICAgICBiaW5kTW9kZWxUb01lbnVXaWRnZXQobV9tZW51LCBHX01FTlVfTU9ERUwo
bWVudS5nZXQoKSkpOwogfQogCi12b2lkIFdlYkNvbnRleHRNZW51UHJveHlHdGs6OnNob3coKQor
VmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiBXZWJDb250ZXh0TWVudVByb3h5R3RrOjpw
cm9wb3NlZEl0ZW1zKCkgY29uc3QKIHsKICAgICBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRl
bT4+IHByb3Bvc2VkQVBJSXRlbXM7CiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jb250ZXh0Lm1l
bnVJdGVtcygpKSB7CiAgICAgICAgIGlmIChpdGVtLmFjdGlvbigpICE9IENvbnRleHRNZW51SXRl
bVRhZ1NoYXJlTWVudSkKICAgICAgICAgICAgIHByb3Bvc2VkQVBJSXRlbXMuYXBwZW5kKFdlYkNv
bnRleHRNZW51SXRlbTo6Y3JlYXRlKGl0ZW0pKTsKICAgICB9Ci0KLSAgICBtX3BhZ2UtPmNvbnRl
eHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KCptX3BhZ2UsIFdU
Rk1vdmUocHJvcG9zZWRBUElJdGVtcyksIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Y3Jl
YXRlKHRoaXMpLmdldCgpLCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV9wYWdl
LT5wcm9jZXNzKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgp
KS5nZXQoKSk7CisgICAgcmV0dXJuIHByb3Bvc2VkQVBJSXRlbXM7CiB9CiAKIHZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eUd0azo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4mJiBpdGVtcykKQEAgLTI2OSwxNiArMjY4LDE1IEBAIHZvaWQgV2Vi
Q29udGV4dE1lbnVQcm94eUd0azo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8
V2ViQ29udGV4dE1lbnVJCiAgICAgaWYgKCFtZW51V2lkZ2V0SGFzSXRlbXMobV9tZW51KSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgTmF0aXZlV2ViTW91c2VFdmVudCogbW91c2VFdmVudCA9IG1f
cGFnZS0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKTsKKyAgICBOYXRpdmVXZWJN
b3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gcGFnZSgpLT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURv
d25FdmVudCgpOwogICAgIGNvbnN0IEdka0V2ZW50KiBldmVudCA9IG1vdXNlRXZlbnQgPyBtb3Vz
ZUV2ZW50LT5uYXRpdmVFdmVudCgpIDogbnVsbHB0cjsKICAgICBjb25zdCBHZGtSZWN0YW5nbGUg
cmVjdCA9IHsgbV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpLngoKSwgbV9jb250ZXh0Lm1lbnVMb2Nh
dGlvbigpLnkoKSwgMSwgMSB9OwogICAgIHBvcHVwTWVudVdpZGdldChtX21lbnUsIGV2ZW50LCBy
ZWN0KTsKIH0KIAogV2ViQ29udGV4dE1lbnVQcm94eUd0azo6V2ViQ29udGV4dE1lbnVQcm94eUd0
ayhHdGtXaWRnZXQqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250
ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKLSAgICA6IFdlYkNv
bnRleHRNZW51UHJveHkoV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCisgICAgOiBXZWJDb250
ZXh0TWVudVByb3h5KHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQogICAgICwgbV93
ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBtX3BhZ2UoJnBhZ2UpCiAgICAgLCBtX21lbnUoY3JlYXRl
TWVudVdpZGdldChtX3dlYlZpZXcpKQogewogICAgIGd0a193aWRnZXRfaW5zZXJ0X2FjdGlvbl9n
cm91cChHVEtfV0lER0VUKG1fbWVudSksIGdDb250ZXh0TWVudUl0ZW1Hcm91cCwgR19BQ1RJT05f
R1JPVVAobV9hY3Rpb25Hcm91cC5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmgKaW5kZXggZWE0OGRiYWQ4MzRjOTE3
MjljOTRiNzUyOGIzMmZmMDk1MTVlOWE3ZS4uMWI0YWVmYjM2MTMwMjEyYzJkZDVhMGM1NGIxZTU4
NGRlNWZjMmZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNv
bnRleHRNZW51UHJveHlHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2Vi
Q29udGV4dE1lbnVQcm94eUd0ay5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFdlYkNvbnRleHRN
ZW51SXRlbTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJQYWdlUHJv
eHk7CiAKLWNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViQ29udGV4dE1l
bnVQcm94eSB7CitjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5R3RrIGZpbmFsIDogcHVibGljIFdl
YkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShHdGtX
aWRnZXQqIHdpZGdldCwgV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRh
JiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIHsKQEAgLTU2LDcgKzU2
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFdlYkNvbnRleHRNZW51UHJveHlHdGsoR3Rr
V2lkZ2V0KiwgV2ViUGFnZVByb3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBV
c2VyRGF0YSYpOwotICAgIHZvaWQgc2hvdygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4gcHJvcG9zZWRJdGVtcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVt
Pj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhcHBlbmQoR01lbnUqLCBjb25zdCBXZWJDb250ZXh0
TWVudUl0ZW1HbGliJik7CiAgICAgR1JlZlB0cjxHTWVudT4gYnVpbGRNZW51KGNvbnN0IFZlY3Rv
cjxXZWJDb250ZXh0TWVudUl0ZW1HbGliPiYpOwpAQCAtNjQsNyArNjQsNiBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1HbGliPiBwb3B1bGF0ZVN1Yk1lbnUoY29uc3Qg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwogCiAgICAgR3RrV2lkZ2V0KiBtX3dlYlZpZXc7Ci0g
ICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgR3RrV2lkZ2V0KiBtX21lbnU7CiAgICAgSGFz
aE1hcDx1bnNpZ25lZCBsb25nLCB2b2lkKj4gbV9zaWduYWxIYW5kbGVyczsKICAgICBHUmVmUHRy
PEdTaW1wbGVBY3Rpb25Hcm91cD4gbV9hY3Rpb25Hcm91cCB7IGFkb3B0R1JlZihnX3NpbXBsZV9h
Y3Rpb25fZ3JvdXBfbmV3KCkpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbQppbmRleCA4NTA1
M2MwODUzZTU1NDgzM2MzYzdlY2U4M2FjYmE3ZWU5ZDU1NGE1Li4zM2Q0ZmViNGM0MDA1OTZlZDMz
OTY1NzU2NjVhYmJmNDQ0MDlhZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KQEAgLTEy
OSw3ICsxMjksNyBAQCAtICh2b2lkKXNoYXJpbmdTZXJ2aWNlOihOU1NoYXJpbmdTZXJ2aWNlICop
c2hhcmluZ1NlcnZpY2UgZGlkU2hhcmVJdGVtczooTlNBcnJheQogICAgIH0KIAogICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYWRvcHQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5n
IGluc3RlYWQgb2YgYm91bmNpbmcgdGhyb3VnaCB0aGUgKGZha2UpIHBhc3RlYm9hcmQuCi0gICAg
X21lbnVQcm94eS0+cGFnZSgpLnJlcGxhY2VTZWxlY3Rpb25XaXRoUGFzdGVib2FyZERhdGEodHlw
ZXMsIGRhdGFSZWZlcmVuY2UpOworICAgIF9tZW51UHJveHktPnBhZ2UoKS0+cmVwbGFjZVNlbGVj
dGlvbldpdGhQYXN0ZWJvYXJkRGF0YSh0eXBlcywgZGF0YVJlZmVyZW5jZSk7CiB9CiAKIC0gKE5T
V2luZG93ICopc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilzaGFyaW5nU2Vydmlj
ZSBzb3VyY2VXaW5kb3dGb3JTaGFyZUl0ZW1zOihOU0FycmF5ICopaXRlbXMgc2hhcmluZ0NvbnRl
bnRTY29wZTooTlNTaGFyaW5nQ29udGVudFNjb3BlICopc2hhcmluZ0NvbnRlbnRTY29wZQpAQCAt
MTQwLDQgKzE0MCwzIEBAIC0gKE5TV2luZG93ICopc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1Nl
cnZpY2UgKilzaGFyaW5nU2VydmljZSBzb3VyY2VXaW5kb3dGb3JTCiBAZW5kCiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKaW5kZXggOTAwZWYwZjE3OGE5MjZk
YWFjZDUzZTY0NWU1NzMwYWFiZjFlYWY3MS4uMGJiMDdlNjc5ZjMwZTdiMzY4MmIzNzM2YjUzNzJj
YmJiMmQzMWVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDUwICsyNyw0NCBAQAogCiAjaWYgUExBVEZPUk0oTUFD
KQogCi0jaW5jbHVkZSAiV0tBcnJheS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHku
aCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtPYmpDUHRy
Lmg+CiAKIE9CSkNfQ0xBU1MgTlNNZW51OwogT0JKQ19DTEFTUyBOU01lbnVJdGVtOwotT0JKQ19D
TEFTUyBOU1BvcFVwQnV0dG9uQ2VsbDsKIE9CSkNfQ0xBU1MgTlNWaWV3OwogT0JKQ19DTEFTUyBO
U1dpbmRvdzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFNoYXJlYWJsZUJpdG1hcDsK
LWNsYXNzIFVzZXJEYXRhOwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTsKLWNsYXNzIFdl
YkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTsKLWNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3Mg
V2ViQ29udGV4dE1lbnVQcm94eU1hYyA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVByb3h5IHsKK2Ns
YXNzIFdlYkNvbnRleHRNZW51UHJveHlNYWMgZmluYWwgOiBwdWJsaWMgV2ViQ29udGV4dE1lbnVQ
cm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlKE5TVmlldyogdmlldywgV2Vi
UGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShOU1ZpZXcgKndlYlZp
ZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmIGNvbnRleHQs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYkNvbnRleHRNZW51UHJveHlNYWModmlldywgcGFnZSwgV1RGTW92ZShjb250ZXh0
KSwgdXNlckRhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1l
bnVQcm94eU1hYyh3ZWJWaWV3LCBwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkpOwog
ICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQcm94eU1hYygpOwogCiAgICAgdm9pZCBjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7Ci0gICAgdm9p
ZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+
PiYmKSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZvaWQg
Y2xlYXJTZXJ2aWNlc01lbnUoKTsKICNlbmRpZgogCi0gICAgV2ViUGFnZVByb3h5JiBwYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAgICAgTlNXaW5kb3cgKndpbmRvdygpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIFdlYkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3KiwgV2ViUGFnZVBy
b3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIFdl
YkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3ICosIFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51
Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKTsKKwogICAgIHZvaWQgc2hvdygpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29u
dGV4dE1lbnVJdGVtPj4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCB1c2VDb250ZXh0TWVudUl0ZW1z
KFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJikgb3ZlcnJpZGU7CiAKLSAgICBSZWZQ
dHI8V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5PiBtX2NvbnRleHRNZW51TGlzdGVuZXI7CiAg
ICAgdm9pZCBnZXRDb250ZXh0TWVudUl0ZW0oY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNNZW51SXRlbSAqKT4mJik7CiAgICAgdm9pZCBnZXRD
b250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudSAqKT4mJik7Ci0gICAgdm9pZCBzaG93Q29u
dGV4dE1lbnUoKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZvaWQgZ2V0
U2hhcmVNZW51SXRlbShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudUl0ZW0gKik+JiYpOwpA
QCAtNzksOSArNzMsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBSZXRhaW5QdHI8TlNNZW51
PiBtX21lbnU7Ci0KLSAgICBOU1ZpZXcqIG1fd2ViVmlldzsKLSAgICBXZWJQYWdlUHJveHkmIG1f
cGFnZTsKKyAgICBXZWFrT2JqQ1B0cjxOU1ZpZXc+IG1fd2ViVmlldzsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCAzZGFhYTI1ZDRmZmViYmJiMTY4MmVmYzAwZGM1
MDI2MmNkMzg4NmVjLi5hNjRlMTM2YWNkOTUyZjIzOTQzN2MzOWU1MWY4ZWI5MWQ2OThhNjA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOSwyNSArMjksMTkgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQg
IkFQSUNvbnRleHRNZW51Q2xpZW50LmgiCi0jaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW1w
b3J0ICJNZW51VXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJQYWdlQ2xpZW50SW1wbE1hYy5oIgogI2lt
cG9ydCAiU2VydmljZXNDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJTaGFyZWFibGVCaXRtYXAuaCIK
LSNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV0tNZW51SXRlbUlkZW50aWZp
ZXJzUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmgi
CiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51
SXRlbURhdGEuaCIKLSNpbXBvcnQgIldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5oIgogI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBv
cnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3Qu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2aWNl
UGlja2VyU1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2aWNlU1BJLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbnRlcmZhY2UgV0tVc2VyRGF0YVdyYXBw
ZXIgOiBOU09iamVjdCB7CkBAIC0xNTQsMjEgKzE0OCwxNSBAQCBAZW5kCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJDb250ZXh0TWVudVByb3h5TWFj
OjpXZWJDb250ZXh0TWVudVByb3h5TWFjKE5TVmlldyogd2ViVmlldywgV2ViUGFnZVByb3h5JiBw
YWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQotICAgIDogV2ViQ29udGV4dE1lbnVQcm94eShXVEZNb3ZlKGNvbnRleHQpLCB1c2Vy
RGF0YSkKK1dlYkNvbnRleHRNZW51UHJveHlNYWM6OldlYkNvbnRleHRNZW51UHJveHlNYWMoTlNW
aWV3ICp3ZWJWaWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEm
JiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgOiBXZWJDb250ZXh0TWVu
dVByb3h5KHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQogICAgICwgbV93ZWJWaWV3
KHdlYlZpZXcpCi0gICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KIAogV2ViQ29udGV4dE1lbnVQcm94
eU1hYzo6fldlYkNvbnRleHRNZW51UHJveHlNYWMoKQogewogICAgIFttX21lbnUgY2FuY2VsVHJh
Y2tpbmddOwotCi0gICAgaWYgKG1fY29udGV4dE1lbnVMaXN0ZW5lcikgewotICAgICAgICBtX2Nv
bnRleHRNZW51TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9jb250ZXh0TWVudUxp
c3RlbmVyID0gbnVsbHB0cjsKLSAgICB9CiB9CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1h
Yzo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYg
aXRlbSkKQEAgLTE3Nyw3ICsxNjUsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmNv
bnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdAogICAgIGNs
ZWFyU2VydmljZXNNZW51KCk7CiAjZW5kaWYKIAotICAgIG1fcGFnZS5jb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChpdGVtKTsKKyAgICBwYWdlKCktPmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGl0ZW0p
OwogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCkBAIC0yNTEsOCArMjM5LDkgQEAg
dm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93U2VydmljZXNNZW51KCkKIHsKICAgICBz
ZXR1cFNlcnZpY2VzTWVudSgpOwogCisgICAgYXV0byB3ZWJWaWV3ID0gbV93ZWJWaWV3LmdldCgp
OwogICAgIFtbV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlIHNoYXJlZFNoYXJpbmdTZXJ2
aWNlUGlja2VyRGVsZWdhdGVdIHNldE1lbnVQcm94eTp0aGlzXTsKLSAgICBbbV9tZW51IHBvcFVw
TWVudVBvc2l0aW9uaW5nSXRlbTpuaWwgYXRMb2NhdGlvbjptX2NvbnRleHQubWVudUxvY2F0aW9u
KCkgaW5WaWV3Om1fd2ViVmlld107CisgICAgW21fbWVudSBwb3BVcE1lbnVQb3NpdGlvbmluZ0l0
ZW06bmlsIGF0TG9jYXRpb246bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIGluVmlldzp3ZWJWaWV3
LmdldCgpXTsKIH0KIAogdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpjbGVhclNlcnZpY2Vz
TWVudSgpCkBAIC0zMzcsMTYgKzMyNiwxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6
OmdldFNoYXJlTWVudUl0ZW0oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU01lbnVJdGVtCiAKIHZv
aWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvdygpCiB7Ci0gICAgUmVmPFdlYlBhZ2VQcm94
eT4gcHJvdGVjdChtX3BhZ2UpOwotCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAg
aWYgKG1fY29udGV4dC5pc1NlcnZpY2VzTWVudSgpKSB7Ci0gICAgICAgIHNob3dTZXJ2aWNlc01l
bnUoKTsKKyAgICAgICAgV2ViQ29udGV4dE1lbnVQcm94eTo6dXNlQ29udGV4dE1lbnVJdGVtcyh7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKLSAgICBzaG93Q29udGV4dE1l
bnUoKTsKKyAgICBXZWJDb250ZXh0TWVudVByb3h5OjpzaG93KCk7CiB9CiAKIHZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdl
YkNvbnRleHRNZW51SXRlbURhdGE+JiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU01l
bnUgKik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC01MDcsNDcgKzQ5NCw1MiBAQCB2b2lkIFdl
YkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhJiBpdAogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250
ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYgaXRlbXMp
CiB7Ci0gICAgaWYgKG1fcGFnZS5jb250ZXh0TWVudUNsaWVudCgpLnNob3dDb250ZXh0TWVudSht
X3BhZ2UsIG1fY29udGV4dC5tZW51TG9jYXRpb24oKSwgaXRlbXMpKQorI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQorICAgIGlmIChtX2NvbnRleHQuaXNTZXJ2aWNlc01lbnUoKSkgeworICAg
ICAgICBBU1NFUlQoaXRlbXMuaXNFbXB0eSgpKTsKKyAgICAgICAgc2hvd1NlcnZpY2VzTWVudSgp
OwogICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAKLSAgICBpZiAoaXRlbXMuaXNFbXB0
eSgpKQorICAgIGlmIChwYWdlKCktPmNvbnRleHRNZW51Q2xpZW50KCkuY2FuU2hvd0NvbnRleHRN
ZW51KCkpIHsKKyAgICAgICAgcGFnZSgpLT5jb250ZXh0TWVudUNsaWVudCgpLnNob3dDb250ZXh0
TWVudSgqcGFnZSgpLCBtX2NvbnRleHQubWVudUxvY2F0aW9uKCksIGl0ZW1zKTsKICAgICAgICAg
cmV0dXJuOworICAgIH0KIAotICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBkYXRh
OwotICAgIGRhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShpdGVtcy5zaXplKCkpOwotICAgIGZv
ciAoYXV0byYgaXRlbSA6IGl0ZW1zKQotICAgICAgICBkYXRhLnVuY2hlY2tlZEFwcGVuZChpdGVt
LT5kYXRhKCkpOworICAgIEFTU0VSVChpdGVtcy5pc0VtcHR5KCkpOworICAgIGlmICghbV9tZW51
KQorICAgICAgICByZXR1cm47CiAKLSAgICBnZXRDb250ZXh0TWVudUZyb21JdGVtcyhkYXRhLCBb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzXShOU01lbnUgKm1lbnUpIG11dGFi
bGUgewotICAgICAgICBbW1dLTWVudVRhcmdldCBzaGFyZWRNZW51VGFyZ2V0XSBzZXRNZW51UHJv
eHk6dGhpc107Ci0gICAgICAgIG1fcGFnZS5jb250ZXh0TWVudUNsaWVudCgpLm1lbnVGcm9tUHJv
cG9zZWRNZW51KG1fcGFnZSwgbWVudSwgbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCks
IG1fdXNlckRhdGEub2JqZWN0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKV0gKFJldGFpblB0cjxOU01lbnU+JiYgbWVudSkgewotICAgICAgICAgICAgbV9t
ZW51ID0gV1RGTW92ZShtZW51KTsKLSAgICAgICAgICAgIE5TUG9pbnQgbWVudUxvY2F0aW9uID0g
W21fd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIHRvVmlldzpu
aWxdOwotICAgICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5k
b3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07Ci0gICAgICAgICAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bV9tZW51LmdldCgpIHdp
dGhFdmVudDpldmVudCBmb3JWaWV3Om1fd2ViVmlld107Ci0KLSAgICAgICAgICAgIGlmIChtX2Nv
bnRleHRNZW51TGlzdGVuZXIpIHsKLSAgICAgICAgICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVu
ZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIg
PSBudWxscHRyOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9KTsKKyAgICBhdXRv
IHdlYlZpZXcgPSBtX3dlYlZpZXcuZ2V0KCk7CisgICAgTlNQb2ludCBtZW51TG9jYXRpb24gPSBb
d2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIHRvVmlldzpuaWxd
OworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3ZWJWaWV3IHdpbmRvd10ud2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAgIFtO
U01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50OmV2ZW50IGZvclZp
ZXc6d2ViVmlldy5nZXQoKV07CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hv
d0NvbnRleHRNZW51KCkKK3ZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6dXNlQ29udGV4dE1l
bnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYgaXRlbXMpCiB7Ci0gICAg
VmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiBwcm9wb3NlZEFQSUl0ZW1zOwotICAgIGZv
ciAoYXV0byYgaXRlbSA6IG1fY29udGV4dC5tZW51SXRlbXMoKSkKLSAgICAgICAgcHJvcG9zZWRB
UElJdGVtcy5hcHBlbmQoV2ViQ29udGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbSkpOwotCi0gICAg
aWYgKG1fY29udGV4dE1lbnVMaXN0ZW5lcikgewotICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVu
ZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9jb250ZXh0TWVudUxpc3RlbmVyID0gbnVsbHB0
cjsKKyAgICBpZiAoaXRlbXMuaXNFbXB0eSgpIHx8ICFwYWdlKCkgfHwgcGFnZSgpLT5jb250ZXh0
TWVudUNsaWVudCgpLmNhblNob3dDb250ZXh0TWVudSgpKSB7CisgICAgICAgIFdlYkNvbnRleHRN
ZW51UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMoV1RGTW92ZShpdGVtcykpOworICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgbV9jb250ZXh0TWVudUxpc3RlbmVyID0gV2ViQ29udGV4dE1l
bnVMaXN0ZW5lclByb3h5OjpjcmVhdGUodGhpcyk7CisgICAgYXV0byBkYXRhID0gV1RGOjptYXAo
aXRlbXMsIFtdKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIGl0ZW0tPmRhdGEoKTsKKyAg
ICB9KTsKIAotICAgIG1fcGFnZS5jb250ZXh0TWVudUNsaWVudCgpLmdldENvbnRleHRNZW51RnJv
bVByb3Bvc2VkTWVudShtX3BhZ2UsIFdURk1vdmUocHJvcG9zZWRBUElJdGVtcyksICptX2NvbnRl
eHRNZW51TGlzdGVuZXIsIG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3BhZ2Uu
cHJvY2VzcygpLnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMobV91c2VyRGF0YS5vYmplY3QoKSku
Z2V0KCkpOworICAgIGdldENvbnRleHRNZW51RnJvbUl0ZW1zKGRhdGEsIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKE5TTWVudSAqbWVudSkgbXV0YWJsZSB7CisgICAgICAg
IGlmICghcGFnZSgpKSB7CisgICAgICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5Ojp1c2VDb250
ZXh0TWVudUl0ZW1zKHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBbW1dLTWVudVRhcmdldCBzaGFyZWRNZW51VGFyZ2V0XSBzZXRNZW51UHJveHk6dGhpc107
CisgICAgICAgIHBhZ2UoKS0+Y29udGV4dE1lbnVDbGllbnQoKS5tZW51RnJvbVByb3Bvc2VkTWVu
dSgqcGFnZSgpLCBtZW51LCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV91c2Vy
RGF0YS5vYmplY3QoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpXShSZXRhaW5QdHI8TlNNZW51PiYmIG1lbnUpIHsKKyAgICAgICAgICAgIG1fbWVudSA9IFdU
Rk1vdmUobWVudSk7CisgICAgICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5Ojp1c2VDb250ZXh0
TWVudUl0ZW1zKHsgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiBOU1dpbmRvdyAqV2Vi
Q29udGV4dE1lbnVQcm94eU1hYzo6d2luZG93KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVudVByb3h5V2luLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVudVByb3h5V2luLmNwcAppbmRleCBhYTE3
MWY0OGJjNDBhOTZhODZkOTUxNDUxYjU3OGY2MDljNTczZmNlLi4zZGNkMGVjMzVjOTJlMzcyMzky
MDhhOGY1ZDRmNDYxZmJlYWFjM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uY3BwCkBAIC0zOCwxNSArMzgsNiBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBXZWJD
b250ZXh0TWVudVByb3h5V2luOjpzaG93KCkKLXsKLSAgICBWZWN0b3I8UmVmPFdlYkNvbnRleHRN
ZW51SXRlbT4+IHByb3Bvc2VkQVBJSXRlbXM7Ci0gICAgZm9yIChhdXRvJiBpdGVtIDogbV9jb250
ZXh0Lm1lbnVJdGVtcygpKQotICAgICAgICBwcm9wb3NlZEFQSUl0ZW1zLmFwcGVuZChXZWJDb250
ZXh0TWVudUl0ZW06OmNyZWF0ZShpdGVtKSk7Ci0gICAgbV9jb250ZXh0TWVudUxpc3RlbmVyID0g
V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVhdGUodGhpcyk7Ci0gICAgbV9wYWdlLmNv
bnRleHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KG1fcGFnZSwg
V1RGTW92ZShwcm9wb3NlZEFQSUl0ZW1zKSwgKm1fY29udGV4dE1lbnVMaXN0ZW5lciwgbV9jb250
ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fcGFnZS5wcm9jZXNzKCkudHJhbnNmb3JtSGFu
ZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7Ci19Ci0KIHN0YXRpYyBI
TUVOVSBjcmVhdGVNZW51KGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEgJmNvbnRleHQpCiB7
CiAgICAgSE1FTlUgbWVudSA9IDo6Q3JlYXRlUG9wdXBNZW51KCk7CkBAIC0xMDQsMTQgKzk1LDEz
IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eVdpbjo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1z
KFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJCiAKICAgICBVSU5UIGZsYWdzID0gVFBNX1JJR0hU
QlVUVE9OIHwgVFBNX1RPUEFMSUdOIHwgVFBNX1ZFUlBPU0FOSU1BVElPTiB8IFRQTV9IT1JJWk9O
VEFMIHwgVFBNX0xFRlRBTElHTiB8IFRQTV9IT1JQT1NBTklNQVRJT047CiAgICAgUE9JTlQgcHQg
eyBtX2NvbnRleHQubWVudUxvY2F0aW9uKCkueCgpLCBtX2NvbnRleHQubWVudUxvY2F0aW9uKCku
eSgpIH07Ci0gICAgSFdORCB3bmQgPSBtX3BhZ2Uudmlld1dpZGdldCgpOworICAgIEhXTkQgd25k
ID0gcGFnZSgpLT52aWV3V2lkZ2V0KCk7CiAgICAgOjpDbGllbnRUb1NjcmVlbih3bmQsICZwdCk7
Ci0gICAgOjpUcmFja1BvcHVwTWVudUV4KG1fbWVudSwgZmxhZ3MsIHB0LngsIHB0LnksIG1fcGFn
ZS52aWV3V2lkZ2V0KCksIG51bGxwdHIpOworICAgIDo6VHJhY2tQb3B1cE1lbnVFeChtX21lbnUs
IGZsYWdzLCBwdC54LCBwdC55LCBwYWdlKCktPnZpZXdXaWRnZXQoKSwgbnVsbHB0cik7CiB9CiAK
IFdlYkNvbnRleHRNZW51UHJveHlXaW46OldlYkNvbnRleHRNZW51UHJveHlXaW4oV2ViUGFnZVBy
b3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQotICAgIDogV2ViQ29udGV4dE1lbnVQcm94eShXVEZNb3ZlKGNvbnRleHQp
LCB1c2VyRGF0YSkKLSAgICAsIG1fcGFnZShwYWdlKQorICAgIDogV2ViQ29udGV4dE1lbnVQcm94
eShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkKIHsKICAgICBtX21lbnUgPSBjcmVh
dGVNZW51KG1fY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uaAppbmRleCA4ZWRhNjczODQ5ZGEyZDFhMzhjMzdi
YjM4NGRkZWY1ZTc2MDk1YTlhLi4wYzgwZDk3MGMzZjlhOTg3ZmFmNjIwMDgxYzkwOWY2YzcwMjE5
NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViQ29udGV4dE1l
bnVQcm94eVdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0
TWVudVByb3h5V2luLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFzcyBX
ZWJDb250ZXh0TWVudVByb3h5V2luIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgeworY2xh
c3MgV2ViQ29udGV4dE1lbnVQcm94eVdpbiBmaW5hbCA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVBy
b3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYXV0byBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdl
LCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogICAgIHsKQEAgLTQ3LDEwICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2Vi
Q29udGV4dE1lbnVQcm94eVdpbihXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRh
JiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMo
VmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNo
b3coKSBvdmVycmlkZTsKIAotICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwotICAgIFJlZlB0cjxX
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IG1fY29udGV4dE1lbnVMaXN0ZW5lcjsKICAgICBI
TUVOVSBtX21lbnU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
cGUvV2ViQ29udGV4dE1lbnVQcm94eVdQRS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3Bl
L1dlYkNvbnRleHRNZW51UHJveHlXUEUuaAppbmRleCA4YjJkM2EzNmNlNGVjMTRiNjM4YTc3ODk5
MzhlZjBiMTRhMzZlYWIxLi41MjQzZDBjY2YyM2MxM2Q0MGNlNDU3NzVlMzA5N2ZhMGVjODIwMTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUvV2ViQ29udGV4dE1lbnVQ
cm94eVdQRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJDb250ZXh0TWVu
dVByb3h5V1BFLmgKQEAgLTI5LDE5ICsyOSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
Y2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eVdQRSA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVByb3h5
IHsKK2NsYXNzIFdlYkNvbnRleHRNZW51UHJveHlXUEUgZmluYWwgOiBwdWJsaWMgV2ViQ29udGV4
dE1lbnVQcm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlKENvbnRleHRNZW51
Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgc3Rh
dGljIGF1dG8gY3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0
YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51UHJveHlXUEUoV1RGTW92ZShjb250ZXh0
KSwgdXNlckRhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1l
bnVQcm94eVdQRShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkpOwogICAgIH0KIAog
ICAgIHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1l
bnVJdGVtPj4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBzaG93KCkgZmluYWwgeyB9OwogCiBwcml2
YXRlOgotICAgIFdlYkNvbnRleHRNZW51UHJveHlXUEUoQ29udGV4dE1lbnVDb250ZXh0RGF0YSYm
IGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKLSAgICAgICAgOiBXZWJDb250ZXh0
TWVudVByb3h5KFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQorICAgIFdlYkNvbnRleHRNZW51
UHJveHlXUEUoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29u
dGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgICAgICA6IFdlYkNvbnRleHRNZW51
UHJveHkocGFnZSwgV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCiAgICAgeyB9CiB9OwogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWQ0YjRi
ZGIwZGI0MTc0NjlmNmFhNjZlNjExYWY3ZjdkNTJiNzQxZS4uZWI5NmI5NTI5NDc5NmU5Njk4ODJh
MDFhYjE5MWNmNGRmNjFlNjkyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA3LTA3ICBBbmR5IEVzdGVzICA8
YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjA3NTU4KTogW01hY10g
Q29udGV4dCBjbGlja3Mgb24gbGlua3Mgc29tZXRpbWVzIHJlc3VsdCBpbiBuYXZpZ2F0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzkzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDI5NDAxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3hjc2hhcmVkZGF0
YS94Y3NjaGVtZXMvVGVzdFdlYktpdEFQSS54Y3NjaGVtZToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVNb3VzZUV2ZW50cy5tbTogUmVuYW1lZCBm
cm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUNvbnRy
b2xDbGljay5tbS4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnJ1blRlc3QpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0
V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2lu
dDpzaW11bGF0ZVByZXNzdXJlOmNsaWNrQ291bnQ6bW9kaWZpZXJGbGFnczptb3VzZUV2ZW50VHlw
ZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgX21vdXNlVXBBdFBvaW50
OmNsaWNrQ291bnQ6bW9kaWZpZXJGbGFnczpldmVudFR5cGU6XSk6CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpzaW11bGF0ZVByZXNzdXJlOl0pOgorICAgICAgICAo
LVtUZXN0V0tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTp3aXRoRmxh
Z3M6ZXZlbnRUeXBlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IG1vdXNlVXBBdFBvaW50
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IG1vdXNlVXBBdFBvaW50OndpdGhGbGFnczpl
dmVudFR5cGU6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6
bnVtYmVyT2ZDbGlja3M6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IF9t
b3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6Y2xpY2tDb3VudDptb2RpZmllckZsYWdz
Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBfbW91c2VV
cEF0UG9pbnQ6Y2xpY2tDb3VudDptb2RpZmllckZsYWdzOl0pOiBEZWxldGVkLgorICAgICAgICAo
LVtUZXN0V0tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTp3aXRoRmxh
Z3M6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6
d2l0aEZsYWdzOl0pOiBEZWxldGVkLgorCiAyMDIwLTA3LTA3ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGVkIHRlc3Rpbmcgb2YgZGF0ZS90aW1lIGlucHV0
IHR5cGVzIGZvciBXZWJLaXQyIG1hY09TCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlMjZj
OGVlZWM2YmQ4YjE1ZjE2MTA2MmJhOGRjOWRlNTJhNWZiMzUuLmM2MjRmYzZmZTQ3YmE4YjgyN2Mw
ZmQzMmEyOWQ5MzVkM2ZkZGFlYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDUsNiAr
ODQ1LDcgQEAKIAkJQTEyRERCRkIxRTgzNkYwNzAwQ0Y2Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRo
T3B0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMkREQkY5MUU4MzZGMDcwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW0g
Ki87IH07CiAJCUExMkREQzAwMUU4MzczRTcwMENGNkNBRSAvKiByZW5kZXJlZC1pbWFnZS1leGNs
dWRpbmctb3ZlcmZsb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTJEREJGRjFFODM3M0MxMDBDRjZDQUUgLyogcmVuZGVyZWQtaW1h
Z2UtZXhjbHVkaW5nLW92ZXJmbG93Lmh0bWwgKi87IH07CiAJCUExMkREQzAyMUU4MzdDMjQwMENG
NkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTJEREJGQzFFODM2RkYxMDBDRjZDQUUg
LyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0luLm1tICovOyB9OworCQlBMTNEMUFENjI0
QUQ0NjhGMDAzRjkyQTggLyogY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNEMUFENTI0
QUQ0Njc3MDAzRjkyQTggLyogY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbCAqLzsgfTsK
IAkJQTEzRUJCQUExQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBOTFCODc0MjhE
MDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5tbSAqLzsgfTsKIAkJQTEzRUJCQUIxQjg3NDM0
NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyog
UGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSAqLzsgfTsKIAkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3
MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxl
UGFyYW1ldGVyc1BsdWdJbi5tbSAqLzsgfTsKQEAgLTg2Niw2ICs4NjcsNyBAQAogCQlBMTc5OTE4
QjFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTc5OTE4OTFFMUNBMjQxMDBBNTA1RUQg
LyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgKi87IH07CiAJCUExN0VBQzU1MjA4MzA1QTAwMDg0QjQx
QiAvKiBmaW5kLnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTdFQUM1NDIwODMwNTZFMDA4NEI0MUIgLyogZmluZC5wZGYgKi87IH07CiAJ
CUExODBDMEZBMUVFNjdERjAwMDQ2OEY0NyAvKiBSdW5PcGVuUGFuZWwubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTgwQzBGOTFFRTY3REYwMDA0NjhG
NDcgLyogUnVuT3BlblBhbmVsLm1tICovOyB9OworCQlBMUMxNDJDMjI0QUE3QjJFMDA0NDQyMDcg
LyogQ29udGV4dE1lbnVNb3VzZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExQzE0MkMxMjRBQTdCMkUwMDQ0NDIwNyAvKiBDb250ZXh0TWVu
dU1vdXNlRXZlbnRzLm1tICovOyB9OwogCQlBMUM0RkI3MzFCQUNEMUNBMDAzNzQyRDAgLyogcGFn
ZXMucGFnZXMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFDNEZCNzIxQkFDRDFCNzAwMzc0MkQwIC8qIHBhZ2VzLnBhZ2VzICovOyB9OwogCQlB
MURGNzQzMjFDNDFCNjU4MDBBMkY0RDAgLyogQWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERjc0MzAx
QzQxQjY1ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcy5tbSAqLzsgfTsK
IAkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFQzExODcxRjQyNTQx
MjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwICovOyB9OwpAQCAtMTMwMyw2ICsxMzA1
LDcgQEAKIAkJCQlGNDFBQjlBMTFFRjQ2OTZCMDA4M0ZBMDggLyogY29udGVudGVkaXRhYmxlLWFu
ZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0QTMyRUNCMUYwNjQz
MzcwMDQ3QzU0NCAvKiBjb250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQTE2RjY2QkExQzQwRUI0RjAwQkQ0RDI0IC8qIENvbnRlbnRGaWx0ZXJp
bmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlBMTNEMUFENjI0QUQ0NjhGMDAzRjky
QTggLyogY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1MTQyQjI3MzE1MTdDOEM4MDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJM
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0QwQkQwQTgxRjc5OTgyRDAwMUFCMkNG
IC8qIENvbnRleHRNZW51SW1nV2l0aFZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJNUMyOTM2OTYxRDVDMDBFRDAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKQEAgLTI0MDksNiArMjQxMiw3IEBACiAJCUExMkREQkZDMUU4MzZGRjEw
MENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVn
SW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMkREQkZGMUU4MzczQzEwMENG
NkNBRSAvKiByZW5kZXJlZC1pbWFnZS1leGNsdWRpbmctb3ZlcmZsb3cuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJyZW5kZXJlZC1pbWFnZS1leGNsdWRpbmctb3ZlcmZsb3cuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMkREQzAxMUU4Mzc0RjUwMENGNkNB
RSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQcm90b2NvbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTNEMUFENTI0QUQ0Njc3MDAzRjkyQTggLyogY29u
dGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjb250ZXh0LW1lbnUtY29u
dHJvbC1jbGljay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEzRUJCNDkx
Qjg3MzM5RTAwMDk3MTEwIC8qIFRlc3RXZWJLaXRBUEkud2tidW5kbGUgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuY2ZidW5kbGU7IGluY2x1
ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFRlc3RXZWJLaXRBUEkud2tidW5kbGU7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUExM0VCQjUyMUI4NzM0NjYwMDA5NzExMCAvKiBX
ZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IFdlYlByb2Nlc3NQbHVnSW4ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExM0VCQjU0MUI4NzM0RTAwMDA5NzExMCAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjQ0Miw2ICsyNDQ2LDcgQEAKIAkJQTE4QUE4Q0MxQzNGQTIxODAwOUIyQjk3IC8qIENvbnRl
bnRGaWx0ZXJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEZp
bHRlcmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUE0RkU1RDE4REQzREI3
MDBCNUVBOEEgLyogRG93bmxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBEb3dubG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFCODlC
OTkyMjFFMDI5RjAwRUI0Q0VBIC8qIFNES1ZhcmlhbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnhjY29uZmlnOyBwYXRoID0gU0RLVmFyaWFudC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTFDMTQyQzEyNEFBN0IyRTAwNDQ0MjA3IC8qIENvbnRleHRNZW51TW91c2VF
dmVudHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb250ZXh0TWVudU1vdXNlRXZlbnRzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUM0RkI2QzFCQUNDRTUwMDAzNzQyRDAg
LyogUXVpY2tMb29rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UXVpY2tMb29rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUM0RkI3MjFCQUNE
MUI3MDAzNzQyRDAgLyogcGFnZXMucGFnZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gcGFnZXMucGFnZXM7IHBhdGggPSBpb3Mv
cGFnZXMucGFnZXM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQTFERjc0MzAxQzQx
QjY1ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1l
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0MDgsOSArNDQxMywxMSBAQAog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk5QkQ0MjM5OTFFMDRCRDk4
MDAyMDAzOTUgLyogQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2Uu
bW0gKi8sCisJCQkJQTEzRDFBRDUyNEFENDY3NzAwM0Y5MkE4IC8qIGNvbnRleHQtbWVudS1jb250
cm9sLWNsaWNrLmh0bWwgKi8sCiAJCQkJODM0OUQzQzExREI5NkREQTAwNEE5RjY1IC8qIENvbnRl
eHRNZW51RG93bmxvYWQubW0gKi8sCiAJCQkJQ0QwQkQwQTcxRjc5OTdDMjAwMUFCMkNGIC8qIENv
bnRleHRNZW51SW1nV2l0aFZpZGVvLmh0bWwgKi8sCiAJCQkJQ0QwQkQwQTUxRjc5OTIyMDAwMUFC
MkNGIC8qIENvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tICovLAorCQkJCUExQzE0MkMxMjRBQTdC
MkUwMDQ0NDIwNyAvKiBDb250ZXh0TWVudU1vdXNlRXZlbnRzLm1tICovLAogCQkJCTdBQzdCNTcy
MjBEOUJBRjAwMDJDMDlBMCAvKiBDdXN0b21CdW5kbGVPYmplY3QuaCAqLywKIAkJCQk3QUM3QjU2
RjIwRDlCQTVCMDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlT2JqZWN0Lm1tICovLAogCQkJCTdBQzdC
NTZDMjBEOTc2OEYwMDJDMDlBMCAvKiBDdXN0b21CdW5kbGVQYXJhbWV0ZXIubW0gKi8sCkBAIC00
OTA2LDYgKzQ5MTMsNyBAQAogCQkJCTM3RkI3Mjk3MURCMkU4MkYwMEU0MUJFNCAvKiBDb250ZXh0
TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODM0OUQzQzIx
REI5NkRERTAwNEE5RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRDBCRDBBNjFGNzk5MjREMDAxQUIyQ0YgLyogQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8u
bW0gaW4gU291cmNlcyAqLywKKwkJCQlBMUMxNDJDMjI0QUE3QjJFMDA0NDQyMDcgLyogQ29udGV4
dE1lbnVNb3VzZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDM0IxRDI2MjJBNzRGNjcw
MEJDRjREMCAvKiBDb250ZXh0TWVudXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzI5MzY5MzFE
NUJGNzBEMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUMxOUE1MjQxRkQwRjYwMTAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1Rlc3RXZWJLaXRBUEkueGNzY2hl
bWUgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3hjc2hhcmVk
ZGF0YS94Y3NjaGVtZXMvVGVzdFdlYktpdEFQSS54Y3NjaGVtZQppbmRleCA1ZjVlYzJlNGFlYzM5
ZWRjMzlmYzdmODVjN2Q5NjdlNWM0OTQ2OTRlLi4zMWJhMzkyMmY4N2U2MDY3NjQ0NTMzNjJjZWFk
N2E5NjI4ZmE1OTRhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvVGVzdFdlYktpdEFQSS54Y3NjaGVt
ZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3hjc2hh
cmVkZGF0YS94Y3NjaGVtZXMvVGVzdFdlYktpdEFQSS54Y3NjaGVtZQpAQCAtMjksNiArMjksOCBA
QAogICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiPgogICAgICAgPFRl
c3RhYmxlcz4KICAgICAgIDwvVGVzdGFibGVzPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPgor
ICAgICAgPC9BZGRpdGlvbmFsT3B0aW9ucz4KICAgIDwvVGVzdEFjdGlvbj4KICAgIDxMYXVuY2hB
Y3Rpb24KICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyIKQEAgLTUwLDYgKzUyLDE0
IEBACiAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpUZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvaiI+CiAgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KICAgICAg
IDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgICAgPENvbW1hbmRMaW5lQXJndW1lbnRz
PgorICAgICAgICAgPENvbW1hbmRMaW5lQXJndW1lbnQKKyAgICAgICAgICAgIGFyZ3VtZW50ID0g
Ii0tZ3Rlc3RfZmlsdGVyPSZxdW90O1dlYktpdC5Db250ZXh0TWVudUNvbnRyb2xDbGljayZxdW90
OyIKKyAgICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAgICAgPC9Db21tYW5kTGlu
ZUFyZ3VtZW50PgorICAgICAgPC9Db21tYW5kTGluZUFyZ3VtZW50cz4KKyAgICAgIDxBZGRpdGlv
bmFsT3B0aW9ucz4KKyAgICAgIDwvQWRkaXRpb25hbE9wdGlvbnM+CiAgICA8L0xhdW5jaEFjdGlv
bj4KICAgIDxQcm9maWxlQWN0aW9uCiAgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFz
ZSIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250
ZXh0TWVudU1vdXNlRXZlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
bWFjL0NvbnRleHRNZW51TW91c2VFdmVudHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MjJjZjJmY2Q0NDY3
YThmYWUwYTZmNTU2NDFhOGIyNDc4YzAyNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudU1vdXNlRXZlbnRzLm1tCkBAIC0w
LDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlRl
c3RDb2NvYS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJPZmZzY3JlZW5XaW5k
b3cuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RV
SURlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxDYXJib24v
Q2FyYm9uLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworICAgIAorc3RhdGljIHZvaWQgcnVuVGVzdChOU0V2ZW50TW9kaWZpZXJGbGFncyBm
bGFncywgTlNFdmVudFR5cGUgbW91c2VEb3duVHlwZSwgTlNFdmVudFR5cGUgbW91c2VVcFR5cGUp
Cit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjb250ZXh0LW1lbnUtY29udHJvbC1jbGlj
ayJdOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBib29sIG5h
dmlnYXRpb25BdHRlbXB0ZWQgPSBmYWxzZTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHNldERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246XihXS05hdmlnYXRpb25BY3Rpb24gKm5hdmln
YXRpb25BY3Rpb24sIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSkpIHsKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eUNhbmNlbCk7CisgICAgICAgIG5hdmlnYXRpb25BdHRlbXB0ZWQgPSB0cnVlOworICAgIH1dOwor
CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKwor
ICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgX19ibG9jayB2b2lkKF5jb21wbGV0
aW9uSGFuZGxlckNvcHkpKE5TTWVudSAqKTsKKyAgICBbdWlEZWxlZ2F0ZSBzZXRHZXRDb250ZXh0
TWVudUZyb21Qcm9wb3NlZE1lbnU6XihOU01lbnUgKiwgX1dLQ29udGV4dE1lbnVFbGVtZW50SW5m
byAqLCBpZCA8TlNTZWN1cmVDb2Rpbmc+LCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKE5TTWVu
dSAqKSkgeworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBeeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDb3B5ID0gW2NvbXBsZXRpb25IYW5k
bGVyIGNvcHldOworICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIH0pOworICAgIH1d
OworCisgICAgYXV0byBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAsIDU5MCk7CisgICAgW3dl
YlZpZXcgbW91c2VEb3duQXRQb2ludDpjbGlja1BvaW50IHNpbXVsYXRlUHJlc3N1cmU6Tk8gd2l0
aEZsYWdzOmZsYWdzIGV2ZW50VHlwZTptb3VzZURvd25UeXBlXTsKKyAgICBVdGlsOjpydW4oJmRv
bmUpOworCisgICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6Y2xpY2tQb2ludCB3aXRoRmxhZ3M6
ZmxhZ3MgZXZlbnRUeXBlOm1vdXNlVXBUeXBlXTsKKyAgICBjb21wbGV0aW9uSGFuZGxlckNvcHko
bmlsKTsKKworICAgIEVYUEVDVF9GQUxTRShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAIndpbmRvdy5jbGlja1NlZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfRkFM
U0UoW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cubW91c2V1
cFNlZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgb2JqZWN0QnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5jb250ZXh0bWVudVNlZW4iXSBib29sVmFsdWVd
KTsKKyAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAIndpbmRvdy5tb3VzZWRvd25TZWVuIl0gYm9vbFZhbHVlXSk7CisKKyAgICBFWFBFQ1RfRkFM
U0UobmF2aWdhdGlvbkF0dGVtcHRlZCk7Cit9CisKK1RFU1QoQ29udGV4dE1lbnVNb3VzZUV2ZW50
cywgQ29udHJvbENsaWNrKQoreworICAgIHJ1blRlc3QoTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRy
b2wsIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCk7Cit9
CisKK1RFU1QoQ29udGV4dE1lbnVNb3VzZUV2ZW50cywgUmlnaHRDbGljaykKK3sKKyAgICBydW5U
ZXN0KDAsIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVw
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFj
L2NvbnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9tYWMvY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNTZmZTk3ZDcyYzQ3ZDVjMjBhNmE1ZmEwY2FlZDExMzQyYzUwY2IxCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL2NvbnRleHQtbWVudS1j
b250cm9sLWNsaWNrLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgKCkgPT4gY2xpY2tTZWVuID0gdHJ1ZSk7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ2Nv
bnRleHRtZW51JywgKCkgPT4gY29udGV4dG1lbnVTZWVuID0gdHJ1ZSk7CisgICAgICAgIGFkZEV2
ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsICgpID0+IG1vdXNlZG93blNlZW4gPSB0cnVlKTsKKyAg
ICAgICAgYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsICgpID0+IG1vdXNldXBTZWVuID0gdHJ1
ZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8YSBocmVmPSdodHRwczov
L3d3dy5hcHBsZS5jb20nPmxpbms8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLmgKaW5kZXggNjQ5OWNjYzdlMDQzYzQ3NjAyOWZl
NzI1YjcyODI5ZmY3MTQ2MTMxMC4uNGE0YmMzYWJlZGZlZTY5ODFmYzVjODdmNjg4YjRjMTZiYzdk
ZTFhMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0
ZS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdhdGUuaApAQCAt
MjgsNiArMjgsOSBAQAogQGludGVyZmFjZSBUZXN0VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJ
RGVsZWdhdGU+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChecnVuSmF2YVNj
cmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZSkoV0tXZWJWaWV3ICosIE5TU3RyaW5nICosIFdLRnJh
bWVJbmZvICosIHZvaWQgKF4pKHZvaWQpKTsKKyNpZiBQTEFURk9STShNQUMpCitAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgdm9pZCAoXmdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudSko
TlNNZW51ICosIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKiwgaWQgPE5TU2VjdXJlQ29kaW5n
Piwgdm9pZCAoXikoTlNNZW51ICopKTsKKyNlbmRpZgogCiAtIChOU1N0cmluZyAqKXdhaXRGb3JB
bGVydDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0VUlEZWxl
Z2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdhdGUubW0KaW5k
ZXggNTBhNDAwNjA1YWUzNGMwYTkzYTkzODYwODgzNTRlNTUyNjZhOTQxYS4uZTdjZWE2NTg0Mzhm
NWI4ZWUwODQ2ODU4OTE2NjRmM2I4NTc5ZjMzOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3RVSURlbGVnYXRlLm1tCkBAIC00MCw2ICs0MCwxNiBAQCAtICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZToo
TlNTdHJpbgogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCisjaWYgUExBVEZPUk0o
TUFDKQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRDb250ZXh0TWVu
dUZyb21Qcm9wb3NlZE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1l
bnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNl
ckluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TTWVudSAqKSljb21wbGV0aW9uSGFu
ZGxlcgoreworICAgIGlmIChfZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KQorICAgICAg
ICBfZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KG1lbnUsIGVsZW1lbnQsIHVzZXJJbmZv
LCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihtZW51KTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKIC0gKE5TU3RyaW5nICopd2Fp
dEZvckFsZXJ0CiB7CiAgICAgRVhQRUNUX0ZBTFNFKHNlbGYucnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5o
CmluZGV4IDQ1ODc0MjkxZGFmZTk5MzA1OTQyZmMxMTYzZjhjZTAyMmY4Y2M2OWUuLjZlYjVlZmUz
YjA2ZWQ2NTZlNjMwY2RkODdhZmJhNGM0YTIyYjhiYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMSw5ICsxMjEsMTEgQEAKIEBpbnRlcmZhY2UgVGVzdFdL
V2ViVmlldyAoTWFjT25seSkKIC8vIFNpbXVsYXRlcyBjbGlja2luZyB3aXRoIGEgcHJlc3N1cmUt
c2Vuc2l0aXZlIGRldmljZSwgaWYgcG9zc2libGUuCiAtICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6
KE5TUG9pbnQpcG9pbnRJbldpbmRvdyBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJl
c3N1cmU7CistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyBz
aW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUgd2l0aEZsYWdzOihOU0V2ZW50
TW9kaWZpZXJGbGFncylmbGFncyBldmVudFR5cGU6KE5TRXZlbnRUeXBlKWV2ZW50VHlwZTsKIC0g
KHZvaWQpbW91c2VEcmFnVG9Qb2ludDooTlNQb2ludClwb2ludEluV2luZG93OwogLSAodm9pZClt
b3VzZUVudGVyQXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93OwogLSAodm9pZCltb3VzZVVw
QXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93OworLSAodm9pZCltb3VzZVVwQXRQb2ludDoo
TlNQb2ludClwb2ludEluV2luZG93IHdpdGhGbGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3MpZmxh
Z3MgZXZlbnRUeXBlOihOU0V2ZW50VHlwZSlldmVudFR5cGU7CiAtICh2b2lkKW1vdXNlTW92ZVRv
UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZs
YWdzKWZsYWdzOwogLSAodm9pZClzZW5kQ2xpY2tzQXRQb2ludDooTlNQb2ludClwb2ludEluV2lu
ZG93IG51bWJlck9mQ2xpY2tzOihOU1VJbnRlZ2VyKW51bWJlck9mQ2xpY2tzOwogLSAodm9pZClz
ZW5kQ2xpY2tBdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3c7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggNTg4ODkxODdlNWMyZDU4NjcwZjkxNjli
ODliN2UxMGFhYjc5MjA0Yi4uY2FiNjBmNjAxNDNjOTNmN2IzMTc1YjhhNDcxYWIyNjg1NzhiNTJm
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOTAsMTEg
KzI5MCw4IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXc6KFRlc3RXS1dlYlZpZXcg
Kil3ZWJWaWV3IGNvbnRlbnRSZWN0OihOU1JlY3QpY29uCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
LS0gKHZvaWQpX21vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQcmVzc3Vy
ZTooQk9PTClzaW11bGF0ZVByZXNzdXJlIGNsaWNrQ291bnQ6KE5TVUludGVnZXIpY2xpY2tDb3Vu
dAorLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVByZXNz
dXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDooTlNVSW50ZWdlciljbGlja0Nv
dW50IG1vZGlmaWVyRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKW1vZGlmaWVyRmxhZ3MgbW91
c2VFdmVudFR5cGU6KE5TRXZlbnRUeXBlKW1vdXNlRXZlbnRUeXBlCiB7Ci0gICAgTlNFdmVudFR5
cGUgbW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247Ci0KLSAgICBOU0V2
ZW50TWFzayBtb2RpZmllckZsYWdzID0gMDsKICAgICBpZiAoc2ltdWxhdGVQcmVzc3VyZSkKICAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TWFza1ByZXNzdXJlOwogCkBAIC0zMTYsOSAr
MzEzLDkgQEAgLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0
ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUKICAgICB9CiB9CiAKLS0gKHZvaWQpX21v
dXNlVXBBdFBvaW50OihOU1BvaW50KXBvaW50IGNsaWNrQ291bnQ6KE5TVUludGVnZXIpY2xpY2tD
b3VudAorLSAodm9pZClfbW91c2VVcEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgY2xpY2tDb3VudDoo
TlNVSW50ZWdlciljbGlja0NvdW50IG1vZGlmaWVyRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdz
KW1vZGlmaWVyRmxhZ3MgZXZlbnRUeXBlOihOU0V2ZW50VHlwZSlldmVudFR5cGUKIHsKLSAgICBb
c2VsZiBzZW5kRXZlbnQ6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVm
dE1vdXNlVXAgbG9jYXRpb246cG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpfd2ViVmll
dy5ldmVudFRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6c2VsZi53aW5kb3dOdW1iZXIgY29udGV4dDpb
TlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOisrZ0V2ZW50TnVt
YmVyIGNsaWNrQ291bnQ6Y2xpY2tDb3VudCBwcmVzc3VyZTowXV07CisgICAgW3NlbGYgc2VuZEV2
ZW50OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246cG9pbnQg
bW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzIHRpbWVzdGFtcDpfd2ViVmlldy5ldmVudFRpbWVz
dGFtcCB3aW5kb3dOdW1iZXI6c2VsZi53aW5kb3dOdW1iZXIgY29udGV4dDpbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOisrZ0V2ZW50TnVtYmVyIGNsaWNrQ291
bnQ6Y2xpY2tDb3VudCBwcmVzc3VyZTowXV07CiB9CiAKICNlbmRpZgpAQCAtNzIxLDEyICs3MTgs
MjIgQEAgLSAoTlNUaW1lSW50ZXJ2YWwpZXZlbnRUaW1lc3RhbXAKIAogLSAodm9pZCltb3VzZURv
d25BdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClz
aW11bGF0ZVByZXNzdXJlCiB7Ci0gICAgW19ob3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50OnBv
aW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTpzaW11bGF0ZVByZXNzdXJlIGNsaWNrQ291bnQ6
MV07CisgICAgW3NlbGYgbW91c2VEb3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRlUHJl
c3N1cmU6c2ltdWxhdGVQcmVzc3VyZSB3aXRoRmxhZ3M6MCBldmVudFR5cGU6TlNFdmVudFR5cGVM
ZWZ0TW91c2VEb3duXTsKK30KKworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBv
aW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlIHdpdGhG
bGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3MpZmxhZ3MgZXZlbnRUeXBlOihOU0V2ZW50VHlwZSll
dmVudFR5cGUKK3sKKyAgICBbX2hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnRJbldp
bmRvdyBzaW11bGF0ZVByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDoxIG1vZGlm
aWVyRmxhZ3M6ZmxhZ3MgbW91c2VFdmVudFR5cGU6ZXZlbnRUeXBlXTsKIH0KIAogLSAodm9pZClt
b3VzZVVwQXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93CiB7Ci0gICAgW19ob3N0V2luZG93
IF9tb3VzZVVwQXRQb2ludDpwb2ludEluV2luZG93IGNsaWNrQ291bnQ6MV07CisgICAgW3NlbGYg
bW91c2VVcEF0UG9pbnQ6cG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6MCBldmVudFR5cGU6TlNFdmVu
dFR5cGVMZWZ0TW91c2VVcF07Cit9CisKKy0gKHZvaWQpbW91c2VVcEF0UG9pbnQ6KE5TUG9pbnQp
cG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzIGV2ZW50
VHlwZTooTlNFdmVudFR5cGUpZXZlbnRUeXBlCit7CisgICAgW19ob3N0V2luZG93IF9tb3VzZVVw
QXRQb2ludDpwb2ludEluV2luZG93IGNsaWNrQ291bnQ6MSBtb2RpZmllckZsYWdzOmZsYWdzIGV2
ZW50VHlwZTpldmVudFR5cGVdOwogfQogCiAtICh2b2lkKW1vdXNlTW92ZVRvUG9pbnQ6KE5TUG9p
bnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzCkBA
IC03MzcsOCArNzQ0LDggQEAgLSAodm9pZCltb3VzZU1vdmVUb1BvaW50OihOU1BvaW50KXBvaW50
SW5XaW5kb3cgd2l0aEZsYWdzOihOU0V2ZW50TW9kaWZpZXJGbGFncykKIC0gKHZvaWQpc2VuZENs
aWNrc0F0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyBudW1iZXJPZkNsaWNrczooTlNVSW50
ZWdlciludW1iZXJPZkNsaWNrcwogewogICAgIGZvciAoTlNVSW50ZWdlciBjbGlja0NvdW50ID0g
MTsgY2xpY2tDb3VudCA8PSBudW1iZXJPZkNsaWNrczsgKytjbGlja0NvdW50KSB7Ci0gICAgICAg
IFtfaG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRlUHJl
c3N1cmU6Tk8gY2xpY2tDb3VudDpjbGlja0NvdW50XTsKLSAgICAgICAgW19ob3N0V2luZG93IF9t
b3VzZVVwQXRQb2ludDpwb2ludEluV2luZG93IGNsaWNrQ291bnQ6Y2xpY2tDb3VudF07CisgICAg
ICAgIFtfaG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRl
UHJlc3N1cmU6Tk8gY2xpY2tDb3VudDpjbGlja0NvdW50IG1vZGlmaWVyRmxhZ3M6MCBtb3VzZUV2
ZW50VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd25dOworICAgICAgICBbX2hvc3RXaW5kb3cg
X21vdXNlVXBBdFBvaW50OnBvaW50SW5XaW5kb3cgY2xpY2tDb3VudDpjbGlja0NvdW50IG1vZGlm
aWVyRmxhZ3M6MCBldmVudFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcF07CiAgICAgfQogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403793</attachid>
            <date>2020-07-08 10:05:52 -0700</date>
            <delta_ts>2020-07-08 10:44:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213793-20200708100552.patch</filename>
            <type>text/plain</type>
            <size>62419</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExM2IwZDJiOTNmN2VkNWYy
NDEzOGY5M2JhNWE3ODAxNWUxMmE3MzEuLmFhOGNhMjNhZTMzMjg2OGNlMzJkMWRiZGQ3Zjc2NmQw
ODAxZGU4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE0IEBACisyMDIwLTA3LTAyICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjA3NTU4KTog
W01hY10gQ29udGV4dCBjbGlja3Mgb24gbGlua3Mgc29tZXRpbWVzIHJlc3VsdCBpbiBuYXZpZ2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
NzkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDI5NDAxNT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRNZW51
IHdhcyB3cml0dGVuIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCBXZWJDb250ZXh0TWVudVByb3h5
OjpzaG93CisgICAgICAgIHdvdWxkIHByZXNlbnQgYSBjb250ZXh0IG1lbnUgYW5kIHNwaW4gYSBu
ZXN0ZWQgcnVuIGxvb3AsIGJsb2NraW5nIHVudGlsIHRoZSBtZW51IGRpc21pc3Nlcy4KKyAgICAg
ICAgT25jZSBXZWJDb250ZXh0TWVudVByb3h5OjpzaG93IHJldHVybnMsIHNob3dDb250ZXh0TWVu
dSB3b3VsZCBzZW5kIHRoZQorICAgICAgICBXZWJQYWdlOjpDb250ZXh0TWVudUhpZGRlbiBtZXNz
YWdlLCB0ZWxsaW5nIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgdGhhdCBpdCdzIE9LIHRvIHJlc3Vt
ZQorICAgICAgICBwcm9jZXNzaW5nIG1vdXNlIGV2ZW50cy4KKworICAgICAgICBUaGlzIGFzc3Vt
cHRpb24gd2FzIGludmFsaWRhdGVkIGluIHIyMDc1NTggKGFuZCBhZ2FpbiBpbiBzZXZlcmFsIHN1
YnNlcXVlbnQgY2hhbmdlcyksIHdoaWNoCisgICAgICAgIGFkZGVkIGFzeW5jaHJvbm91cyBBUElz
IHRvIFdLUGFnZUNvbnRleHRNZW51Q2xpZW50LiBJZiB0aGUgY29udGV4dCBtZW51IGNsaWVudCBw
cm92aWRlcworICAgICAgICBjb250ZXh0IG1lbnUgaXRlbXMgYXN5bmNocm9ub3VzbHksIFdlYkNv
bnRleHRNZW51UHJveHk6OnNob3cgd291bGQgcmV0dXJuIC0tIGFuZCB0aGUKKyAgICAgICAgV2Vi
Q29udGVudCBwcm9jZXNzIHdvdWxkIHJlc3VtZSBwcm9jZXNzaW5nIG1vdXNlIGV2ZW50cyAtLSBi
ZWZvcmUgdGhlIGNvbnRleHQgbWVudSB3YXMgZXZlbgorICAgICAgICBwcmVzZW50ZWQuIFNpbmNl
IGNvbnRleHQgbWVudSBwcmVzZW50YXRpb24gaXMgdHJpZ2dlcmVkIGJ5IGEgbW91c2UgcHJlc3Mg
ZXZlbnQsIGl0J3MKKyAgICAgICAgcG9zc2libGUgdGhhdCB0aGUgY29ycmVzcG9uZGluZyBtb3Vz
ZSByZWxlYXNlIGV2ZW50IHdvdWxkIGJlIGRlbGl2ZXJlZCBhZnRlcgorICAgICAgICBnZXRDb250
ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnVBc3luYyB3YXMgZGlzcGF0Y2hlZCBidXQgYmVmb3JlIHRo
ZSBjbGllbnQgcmVzcG9uZGVkIHdpdGggbWVudQorICAgICAgICBpdGVtcyB0byBwcmVzZW50LiBJ
ZiB0aGlzIGhhcHBlbmVkLCBzaW5jZSBtb3VzZSBldmVudCBwcm9jZXNzaW5nIHdhcyBub3QgZGlz
YWJsZWQsIHRoZQorICAgICAgICBXZWJDb250ZW50IHByb2Nlc3Mgd291bGQgZGlzcGF0Y2ggYSBE
T00gY2xpY2sgZXZlbnQgdG8gdGhlIHBhZ2UsIHBvc3NpYmx5IHRyaWdnZXJpbmcgYQorICAgICAg
ICBuYXZpZ2F0aW9uLgorCisgICAgICAgIEZpeCB0aGlzIGJ5IHRlYWNoaW5nIFdlYlBhZ2VQcm94
eSB0byBkZWZlciBzZW5kaW5nIFdlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuIHVudGlsIHRoZQor
ICAgICAgICBjb250ZXh0IG1lbnUgaGFzIGJlZW4gZGlzbWlzc2VkLCBldmVuIGluIGNhc2VzIHdo
ZXJlIHRoZSBjb250ZXh0IG1lbnUgY2xpZW50IHByb3ZpZGVzIG1lbnUKKyAgICAgICAgaXRlbXMg
YXN5bmNocm9ub3VzbHkuIEFsc28sIHRha2UgdGhlIG9wcG9ydHVuaXR5IHRvIG1vZGVybml6ZSBX
ZWJDb250ZXh0TWVudVByb3h5IGFuZCBpdHMKKyAgICAgICAgc3ViY2xhc3NlcyBieSwgZS5nLiwg
bW92aW5nIGR1cGxpY2F0ZWQgc3ViY2xhc3MgY29kZSBpbnRvIHRoZSBiYXNlIGNsYXNzLCB1c2lu
ZyB0aGUgY2xpZW50CisgICAgICAgIHBhdHRlcm4sIGFuZCB1c2luZyBXZWFrUHRycyBpbnN0ZWFk
IG9mIHJhdyBwb2ludGVycy9yZWZlcmVuY2VzLgorCisgICAgICAgIE5ldyBBUEkgdGVzdHM6IENv
bnRleHRNZW51TW91c2VFdmVudHMuKgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250
ZXh0TWVudUNsaWVudC5oOgorICAgICAgICAoQVBJOjpDb250ZXh0TWVudUNsaWVudDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKEFQSTo6Q29udGV4dE1lbnVDbGllbnQ6OmNhblNob3dDb250
ZXh0TWVudSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChXS1BhZ2VTZXRQYWdlQ29udGV4dE1lbnVDbGllbnQpOiBBZGRlZCBjYW5TaG93Q29u
dGV4dE1lbnUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNsaWVudAorICAgICAgICBjYW4gc2hv
dyBhIGNvbnRleHQgbWVudSB3aXRob3V0IGFjdHVhbGx5IHNob3dpbmcgaXQuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVByb3h5KTogUGFzc2VkIHBhZ2UgdG8K
KyAgICAgICAgV2ViQ29udGV4dE1lbnVQcm94eVdQRTo6Y3JlYXRlLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5Ojp1c2VDb250
ZXh0TWVudUl0ZW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclBy
b3h5OjppbnZhbGlkYXRlKTogRGVsZXRlZC4gTm90IG5lZWRlZCBub3cgdGhhdCBtX2NsaWVudCBp
cworICAgICAgICBhIFdlYWtQdHIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVMaXN0ZW5lclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51TGlzdGVu
ZXJQcm94eTo6Y3JlYXRlKTogUmF0aGVyIHRoYW4gc3RvcmUgYSByYXcgcG9pbnRlciB0byBhCisg
ICAgICAgIFdlYkNvbnRleHRNZW51UHJveHksIHN0b3JlIGEgV2Vha1B0ciB0byBhIFdlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eTo6Q2xpZW50ICh3aGljaAorICAgICAgICBXZWJDb250ZXh0TWVu
dVByb3h5IGltcGxlbWVudHMpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5OjpXZWJDb250
ZXh0TWVudVByb3h5KTogU3RvcmVkIGEgV2Vha1B0ciB0byBhIFdlYlBhZ2VQcm94eQorICAgICAg
ICByYXRoZXIgdGhhbiBzdG9yaW5nIGEgcmF3IHBvaW50ZXIgdG8gdGhlIHNhbWUgaW4gZWFjaCBz
dWJjbGFzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eTo6cHJvcG9zZWRJ
dGVtcyBjb25zdCk6IEFkZGVkIGEgdmlydHVhbCBmdW5jdGlvbiB0byBjcmVhdGUKKyAgICAgICAg
cHJvcG9zZWQgV2ViQ29udGV4dE1lbnVJdGVtcyBmcm9tIG1fY29udGV4dCdzIG1lbnUgaXRlbXMu
IFdlYkNvbnRleHRNZW51UHJveHlHdGsgb3ZlcnJpZGVzCisgICAgICAgIHRoaXMgdG8gZG8gc29t
ZXRoaW5nIHNsaWdodGx5IGRpZmZlcmVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1l
bnVQcm94eTo6c2hvdyk6IEFkZGVkIGEgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiB0aGF0IGNy
ZWF0ZXMgYQorICAgICAgICBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkgYW5kIGNhbGxzIENv
bnRleHRNZW51Q2xpZW50OjpnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUuCisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMpOiBBZGRl
ZCBhIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gdGhhdAorICAgICAgICBwZXJmb3JtcyB0aGUg
d29yayBwcmV2aW91c2x5IGRvbmUgaW4gV2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUuIENh
bGxzCisgICAgICAgIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcywgd2hpY2ggbm93IGFsd2F5cyBz
eW5jaHJvbm91c2x5IHByZXNlbnRzIHRoZSBtZW51LgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuaDogSW5oZXJpdGVkIGZyb20gV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5OjpDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHk6OnBh
Z2UgY29uc3QpOiBBZGRlZCBmb3IgdXNlIGJ5IFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb250ZXh0TWVudSk6IE1vdmVkIGNvZGUgdGhhdCBhc3N1
bWVzIHN5bmNocm9ub3VzIG1lbnUKKyAgICAgICAgcHJlc2VudGF0aW9uIHRvIFdlYkNvbnRleHRN
ZW51UHJveHk6OnVzZUNvbnRleHRNZW51SXRlbXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3Rr
L1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5R3RrOjpwcm9wb3NlZEl0ZW1zIGNvbnN0KTogSW1wbGVtZW50ZWQgR1RLJ3Mgc3Bl
Y2lhbCB2ZXJzaW9uCisgICAgICAgIHRoYXQgZXhjbHVkZXMgQ29udGV4dE1lbnVJdGVtVGFnU2hh
cmVNZW51LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpzaG93KTog
RGVsZXRlZC4gV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdyBoYW5kbGVzIHRoaXMgbm93LgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjphcHBlbmQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpXZWJDb250ZXh0TWVu
dVByb3h5R3RrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlH
dGsuaDogTW92ZWQgbV9wYWdlIHRvIFdlYkNvbnRleHRNZW51UHJveHkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAg
KC1bV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlIHNoYXJpbmdTZXJ2aWNlOmRpZFNoYXJl
SXRlbXM6XSk6IENoYW5nZWQgbm93IHRoYXQKKyAgICAgICAgV2ViQ29udGV4dE1lbnVQcm94eTo6
cGFnZSByZXR1cm5zIGEgcG9pbnRlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
TWFjOjpwYWdlIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHRNZW51UHJveHlNYWM6On5XZWJDb250ZXh0TWVudVByb3h5TWFjKTogTm8gbmVlZCB0byBp
bnZhbGlkYXRlCisgICAgICAgIG1fY29udGV4dE1lbnVMaXN0ZW5lciBub3cgdGhhdCBpdCBzdG9y
ZXMgYSBXZWFrUHRyIHRvIGl0cyBXZWJDb250ZXh0TWVudVByb3h5LgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dTZXJ2aWNlc01lbnUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1z
KTogT3ZlcnJvZGUgdG8gaGFuZGxlIHNlcnZpY2UgbWVudXMuCisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRNZW51UHJveHlNYWM6OnVzZUNvbnRleHRNZW51SXRlbXMpOiBPdmVycm9kZSB0byBn
ZXQgdGhlIHN0YW5kYXJkIE1hYyBtZW51CisgICAgICAgIGl0ZW1zIGFuZCBkaXNwYXRjaCBDb250
ZXh0TWVudUNsaWVudDo6bWVudUZyb21Qcm9wb3NlZE1lbnUgYmVmb3JlIHNob3dpbmcgdGhlIG1l
bnUuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0
TWVudSk6IERlbGV0ZWQuIFdlYkNvbnRleHRNZW51UHJveHk6OnNob3cgbm93CisgICAgICAgIGhh
bmRsZXMgdGhpcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViQ29udGV4dE1lbnVQcm94
eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlXaW46OnNob3dD
b250ZXh0TWVudVdpdGhJdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJv
eHlXaW46OldlYkNvbnRleHRNZW51UHJveHlXaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudVByb3h5V2luOjpzaG93KTogRGVsZXRlZC4gV2ViQ29udGV4dE1lbnVQcm94eTo6c2hv
dyBub3cgaGFuZGxlcyB0aGlzLgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViQ29udGV4dE1l
bnVQcm94eVdpbi5oOgorCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJDb250ZXh0TWVudVBy
b3h5V1BFLmg6IFBhc3NlZCBwYWdlIHRvIHRoZSBXZWJDb250ZXh0TWVudVByb3h5IGN0b3IuCisK
IDIwMjAtMDctMDcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBNb2Rlcm5pemUgRmluZE9wdGlvbnMgSVBDIGNvZGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51Q2xpZW50LmgKaW5kZXggODE2Zjcx
ZTEyNjcwY2IzZDY1YjFlNjMyODAzYTZiNDBlZjdkYmZhMi4uZTMzNzMzOWU1YWZmODlmNjQxOWEy
YjNhNWY1NTMxZTJiY2E0NmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUNvbnRleHRNZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUNvbnRleHRNZW51Q2xpZW50LmgKQEAgLTU1LDcgKzU1LDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFZlY3RvcjxSZWY8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW0+PiYmIHBy
b3Bvc2VkTWVudSwgV2ViS2l0OjpXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkmIGxpc3RlbmVy
LCBjb25zdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhJiwgQVBJOjpPYmplY3QqIC8qIHVz
ZXJEYXRhICovKSB7IGxpc3RlbmVyLnVzZUNvbnRleHRNZW51SXRlbXMoV1RGTW92ZShwcm9wb3Nl
ZE1lbnUpKTsgfQogICAgIHZpcnR1YWwgdm9pZCBjdXN0b21Db250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVt
RGF0YSYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFZlY3RvcjxSZWY8V2Vi
S2l0OjpXZWJDb250ZXh0TWVudUl0ZW0+PiYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgY29uc3QgVmVjdG9yPFJlZjxXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRl
bT4+JikgeyB9CisgICAgdmlydHVhbCBib29sIGNhblNob3dDb250ZXh0TWVudSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhpZGVDb250ZXh0TWVudShXZWJLaXQ6
OldlYlBhZ2VQcm94eSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICNpZiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBiYTJmZWVjZDI4ODVh
Y2M0NWRkMTUzZmY1MDJkNDlmNzY1MGYyYzZkLi5jZGUyMGFhMTIxYTFmMmQxNmE4ZDJlMjU0NmVl
Y2VlNzE4M2JiYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE1LTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC05MjYsMTAgKzkyNiwxMCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VDb250ZXh0TWVu
dUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlQ29udGV4dE1lbnVDbAogICAg
ICAgICAgICAgbV9jbGllbnQuY3VzdG9tQ29udGV4dE1lbnVJdGVtU2VsZWN0ZWQodG9BUEkoJnBh
Z2UpLCB0b0FQSShXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShpdGVtRGF0YSkucHRyKCkpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBzaG93
Q29udGV4dE1lbnUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
bWVudUxvY2F0aW9uLCBjb25zdCBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiBtZW51
SXRlbXNWZWN0b3IpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFdlYlBh
Z2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29u
c3QgVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYgbWVudUl0ZW1zVmVjdG9yKSBvdmVy
cmlkZQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LnNob3dDb250ZXh0TWVu
dSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNhblNo
b3dDb250ZXh0TWVudSgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAg
VmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IG1lbnVJdGVtczsKICAgICAgICAgICAgIG1lbnVJ
dGVtcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1lbnVJdGVtc1ZlY3Rvci5zaXplKCkpOwpAQCAt
OTM4LDggKzkzOCwxMSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VDb250ZXh0TWVudUNsaWVudChXS1Bh
Z2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlQ29udGV4dE1lbnVDbAogICAgICAgICAgICAgICAg
IG1lbnVJdGVtcy51bmNoZWNrZWRBcHBlbmQobWVudUl0ZW0ucHRyKCkpOwogCiAgICAgICAgICAg
ICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUodG9BUEkoJnBhZ2UpLCB0b0FQSShtZW51TG9jYXRp
b24pLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShtZW51SXRlbXMpKS5wdHIoKSks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KIAotICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGJvb2wgY2FuU2hvd0NvbnRleHRNZW51KCkgY29uc3Qgb3ZlcnJp
ZGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LnNob3dDb250ZXh0TWVu
dTsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgaGlkZUNvbnRleHRNZW51KFdlYlBhZ2VQcm94
eSYgcGFnZSkgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggNTczMjYzZWU4OGZlMjMyYjMzNTk1MjM2OTg1NTY2
NTQ2MTcyZjI5My4uOGEyMGNlY2MxNTM0NTliZmQ5NzZiOWQwYjlhYTA2YjFlNWE1MzU3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5j
cHAKQEAgLTI2Myw5ICsyNjMsOSBAQCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGll
bnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZwogfQogCiAjaWYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCi1SZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVu
dEltcGw6OmNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgQ29udGV4dE1lbnVD
b250ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK1JlZjxXZWJD
b250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgcmV0dXJuIFdlYkNvbnRleHRNZW51UHJveHlX
UEU6OmNyZWF0ZShXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSk7CisgICAgcmV0dXJuIFdlYkNv
bnRleHRNZW51UHJveHlXUEU6OmNyZWF0ZShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0
YSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggMTE1ZjAzM2FiZGIwMjRjODRjMDM5
MmU2NDI4MDM3MTI2ZTMxYzk2MC4uZGM3NDg0ZWNiZDJjYThhOTEwNzU3MmI2YjhiOWY1YTgzMjRi
NGYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVM
aXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
TWVudUxpc3RlbmVyUHJveHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDM1ICsyOCwyNCBAQAogCiAjaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCiAKLSNpbmNsdWRlICJBUElBcnJheS5oIgotI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgotI2luY2x1ZGUgIldLQXJyYXkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW0uaCIK
LSNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94
eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNvbnRleHRNZW51UHJveHkqIGNvbnRl
eHRNZW51TWFjKQotICAgIDogbV9jb250ZXh0TWVudU1hYyhjb250ZXh0TWVudU1hYykKK1dlYkNv
bnRleHRNZW51TGlzdGVuZXJQcm94eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNv
bnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xpZW50JiBjbGllbnQpCisgICAgOiBtX2NsaWVudCht
YWtlV2Vha1B0cihjbGllbnQpKQogewogfQogCi1XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk6
On5XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkoKQotewotfQorV2ViQ29udGV4dE1lbnVMaXN0
ZW5lclByb3h5Ojp+V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KCkgPSBkZWZhdWx0OwogCiB2
b2lkIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6dXNlQ29udGV4dE1lbnVJdGVtcyhWZWN0
b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYgaXRlbXMpCiB7Ci0gICAgaWYgKCFtX2NvbnRl
eHRNZW51TWFjKQorICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
Y29udGV4dE1lbnVNYWMtPnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhXVEZNb3ZlKGl0ZW1zKSk7
Ci19Ci0KLXZvaWQgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjppbnZhbGlkYXRlKCkKLXsK
LSAgICBtX2NvbnRleHRNZW51TWFjID0gbnVsbHB0cjsKKyAgICBtX2NsaWVudC0+dXNlQ29udGV4
dE1lbnVJdGVtcyhXVEZNb3ZlKGl0ZW1zKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxpc3RlbmVy
UHJveHkuaAppbmRleCA3ZmQzNDA2MzVmYTM4NjhjZWQwN2EwYjQxYTUxMDliMTQ3ZjMxODhmLi43
ZGIxM2NkZWI0M2RkMDc3Mjk2ODYzNjA1N2UyMWMwZTE2ODhlNzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwz
MSArMjgsMzUgQEAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAogI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgotI2luY2x1ZGUgIldLQXJyYXkuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0TWVudVBy
b3h5LmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBX
ZWJDb250ZXh0TWVudVByb3h5TWFjOworCitjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW07CiAKIGNs
YXNzIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8
QVBJOjpPYmplY3Q6OlR5cGU6OkNvbnRleHRNZW51TGlzdGVuZXI+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHRN
ZW51UHJveHkqIGNvbnRleHRNZW51TWFjKQorICAgIHN0cnVjdCBDbGllbnQgOiBDYW5NYWtlV2Vh
a1B0cjxDbGllbnQ+IHsKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgPSBkZWZhdWx0OworICAg
ICAgICB2aXJ0dWFsIHZvaWQgdXNlQ29udGV4dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRl
eHRNZW51SXRlbT4+JiYpID0gMDsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxXZWJDb250ZXh0
TWVudUxpc3RlbmVyUHJveHk+IGNyZWF0ZShDbGllbnQmIGNsaWVudCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eShjb250ZXh0
TWVudU1hYykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVudUxp
c3RlbmVyUHJveHkoY2xpZW50KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViQ29udGV4dE1l
bnVMaXN0ZW5lclByb3h5KCk7CiAKICAgICB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9y
PFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKTsKIAotICAgIHZvaWQgaW52YWxpZGF0ZSgpOwog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkoV2ViQ29u
dGV4dE1lbnVQcm94eSopOworICAgIGV4cGxpY2l0IFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94
eShDbGllbnQmKTsKIAotICAgIFdlYkNvbnRleHRNZW51UHJveHkqIG1fY29udGV4dE1lbnVNYWM7
CisgICAgV2Vha1B0cjxDbGllbnQ+IG1fY2xpZW50OwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAKaW5kZXggN2ZiMmM1MmNj
MjcxMDVlMjEyOGVhY2NiZTJjMzdiZDdlNTRiMmUyMi4uM2RjNmMzNzY3ODYwNDU2NjU3ZjJhMTli
ZjJkNmFkZjJiYjM1YWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dE1lbnVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29u
dGV4dE1lbnVQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjgsMTYgKzI4LDUwIEBACiAKICNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKIAorI2luY2x1ZGUgIkFQSUNvbnRleHRNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiV2Vi
UGFnZU1lc3NhZ2VzLmgiCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJDb250ZXh0TWVudVBy
b3h5OjpXZWJDb250ZXh0TWVudVByb3h5KENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCitXZWJDb250ZXh0TWVudVByb3h5OjpXZWJDb250
ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYm
IGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICA6IG1fY29udGV4dChXVEZN
b3ZlKGNvbnRleHQpKQogICAgICwgbV91c2VyRGF0YSh1c2VyRGF0YSkKKyAgICAsIG1fcGFnZSht
YWtlV2Vha1B0cihwYWdlKSkKK3sKK30KKworV2ViQ29udGV4dE1lbnVQcm94eTo6fldlYkNvbnRl
eHRNZW51UHJveHkoKSA9IGRlZmF1bHQ7CisKK1ZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVt
Pj4gV2ViQ29udGV4dE1lbnVQcm94eTo6cHJvcG9zZWRJdGVtcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFdURjo6bWFwKG1fY29udGV4dC5tZW51SXRlbXMoKSwgW10oYXV0byYgaXRlbSkgeworICAg
ICAgICByZXR1cm4gV2ViQ29udGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVQcm94eTo6c2hvdygpCiB7CisgICAgbV9jb250ZXh0TWVu
dUxpc3RlbmVyID0gV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVhdGUoKnRoaXMpOwor
ICAgIHBhZ2UoKS0+Y29udGV4dE1lbnVDbGllbnQoKS5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3Nl
ZE1lbnUoKnBhZ2UoKSwgcHJvcG9zZWRJdGVtcygpLCAqbV9jb250ZXh0TWVudUxpc3RlbmVyLCBt
X2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgcGFnZSgpLT5wcm9jZXNzKCkudHJhbnNm
b3JtSGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAKLVdl
YkNvbnRleHRNZW51UHJveHk6On5XZWJDb250ZXh0TWVudVByb3h5KCkKK3ZvaWQgV2ViQ29udGV4
dE1lbnVQcm94eTo6dXNlQ29udGV4dE1lbnVJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51
SXRlbT4+JiYgaXRlbXMpCiB7CisgICAgbV9jb250ZXh0TWVudUxpc3RlbmVyID0gbnVsbHB0cjsK
KworICAgIGF1dG8gcGFnZSA9IG1ha2VSZWZQdHIodGhpcy0+cGFnZSgpKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFNpbmNlIHNob3dDb250ZXh0TWVudVdpdGhJ
dGVtcyBjYW4gc3BpbiBhIG5lc3RlZCBydW4gbG9vcCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSBy
ZXNwb25zaXZlbmVzcyB0aW1lci4KKyAgICBwYWdlLT5wcm9jZXNzKCkuc3RvcFJlc3BvbnNpdmVu
ZXNzVGltZXIoKTsKKworICAgIC8vIFByb3RlY3QgfHRoaXN8IGZyb20gYmVpbmcgZGVhbGxvY2F0
ZWQgaWYgV2ViUGFnZVByb3h5IGNvZGUgaXMgcmUtZW50ZXJlZCBmcm9tIHRoZSBtZW51IHJ1bmxv
b3Agb3IgZGVsZWdhdGVzLgorICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
OworICAgIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhXVEZNb3ZlKGl0ZW1zKSk7CisKKyAgICAv
LyBObyBtYXR0ZXIgdGhlIHJlc3VsdCBvZiBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMsIGFsd2F5
cyBub3RpZnkgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgbWVudSBpcyBoaWRkZW4gc28gaXQgc3Rh
cnRzIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyBhZ2Fpbi4KKyAgICBwYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpDb250ZXh0TWVudUhpZGRlbigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKaW5k
ZXggM2YwNWY0Mzk1YzA4NjU2ZWU2MGMxYTQ2N2M2ZmU4MDkxMTVhMDIxMC4uMmQyYzU3NjVjMDFm
MjY4MDc0OWE4ZjE5M2Q2MWZiNjY2YTA4YWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwyNSArMjksMzggQEAKIAogI2luY2x1ZGUgIkNv
bnRleHRNZW51Q29udGV4dERhdGEuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUg
IldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFdlYkNvbnRleHRNZW51SXRlbTsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3MgV2Vi
Q29udGV4dE1lbnVQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkNvbnRleHRNZW51UHJveHk+
IHsKK2NsYXNzIFdlYkNvbnRleHRNZW51UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJDb250
ZXh0TWVudVByb3h5PiwgcHVibGljIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xpZW50
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJDb250ZXh0TWVudVByb3h5KCk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwogCi0gICAg
dmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRl
eHRNZW51SXRlbT4+JiYpID0gMDsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgotICAgIFdlYkNvbnRleHRNZW51UHJv
eHkoQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIFdlYkNv
bnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmLCBj
b25zdCBVc2VyRGF0YSYpOworCisgICAgLy8gV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpD
bGllbnQKKyAgICB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0
TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKIAogICAgIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERh
dGEgbV9jb250ZXh0OwogICAgIGNvbnN0IFVzZXJEYXRhIG1fdXNlckRhdGE7CisKK3ByaXZhdGU6
CisgICAgdmlydHVhbCBWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+IHByb3Bvc2VkSXRl
bXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKFZl
Y3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJikgPSAwOworCisgICAgUmVmUHRyPFdlYkNv
bnRleHRNZW51TGlzdGVuZXJQcm94eT4gbV9jb250ZXh0TWVudUxpc3RlbmVyOworICAgIFdlYWtQ
dHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDVjMTgzYjVjZDM4MjJh
OTZhNDUwNDFlNzUyMWI1NjIxZjE1ZWNlNWMuLjg2NzcwYmUzODAwYzVhZWJiMjgxMDIyZTZiMGNh
YWU3YzZkYjFiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNjU1NiwxNSArNjU1Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUo
Q29udGV4dE1lbnVDb250ZXh0RGF0YSYmIGNvbnRleHRNZW51Q29udGV4dERhCiAKICAgICBtX2Fj
dGl2ZUNvbnRleHRNZW51ID0gcGFnZUNsaWVudCgpLmNyZWF0ZUNvbnRleHRNZW51UHJveHkoKnRo
aXMsIFdURk1vdmUoY29udGV4dE1lbnVDb250ZXh0RGF0YSksIHVzZXJEYXRhKTsKIAotICAgIC8v
IFNpbmNlIHNob3dDb250ZXh0TWVudSgpIGNhbiBzcGluIGEgbmVzdGVkIHJ1biBsb29wIHdlIG5l
ZWQgdG8gdHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+
c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKLQotICAgIC8vIG1fYWN0aXZlQ29udGV4dE1lbnUg
bWlnaHQgZ2V0IGNsZWFyZWQgaWYgV2ViUGFnZVByb3h5IGNvZGUgaXMgcmUtZW50ZXJlZCBmcm9t
IHRoZSBtZW51IHJ1bmxvb3Agb3IgZGVsZWdhdGVzLgotICAgIFJlZjxXZWJDb250ZXh0TWVudVBy
b3h5PiBwcm90ZWN0b3IoKm1fYWN0aXZlQ29udGV4dE1lbnUpOwogICAgIG1fYWN0aXZlQ29udGV4
dE1lbnUtPnNob3coKTsKLQotICAgIC8vIE5vIG1hdHRlciB0aGUgcmVzdWx0IG9mIGludGVybmFs
U2hvd0NvbnRleHRNZW51LCBhbHdheXMgbm90aWZ5IHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIG1l
bnUgaXMgaGlkZGVuIHNvIGl0IHN0YXJ0cyBoYW5kbGluZyBtb3VzZSBldmVudHMgYWdhaW4uCi0g
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q29udGV4dE1lbnVIaWRkZW4oKSk7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCmluZGV4IGE4OGNjNmIyYjU1NmI0MTIwMzI4
NzRkMDJlZDM0OGI5NmZlMTAyYWMuLjgwOWQwZmNlNjY1YTJhMDE2OWFkN2U2OGFiMmVhNjQyODU0
NjE4ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0
TWVudVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29u
dGV4dE1lbnVQcm94eUd0ay5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFdlYkNvbnRleHRN
ZW51UHJveHlHdGs6OmFwcGVuZChHTWVudSogbWVudSwgY29uc3QgV2ViQ29udGV4dE1lbnVJdGVt
R2xpYiYgbQogICAgICAgICBpZiAobWVudUl0ZW0uYWN0aW9uKCkgPCBDb250ZXh0TWVudUl0ZW1C
YXNlQXBwbGljYXRpb25UYWcpIHsKICAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JK
RUNUKGFjdGlvbiksIGdDb250ZXh0TWVudUFjdGlvbklkLCBHSU5UX1RPX1BPSU5URVIobWVudUl0
ZW0uYWN0aW9uKCkpKTsKICAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhX2Z1bGwoR19PQkpF
Q1QoYWN0aW9uKSwgZ0NvbnRleHRNZW51VGl0bGUsIGdfc3RyZHVwKG1lbnVJdGVtLnRpdGxlKCku
dXRmOCgpLmRhdGEoKSksIGdfZnJlZSk7Ci0gICAgICAgICAgICBzaWduYWxIYW5kbGVySWQgPSBn
X3NpZ25hbF9jb25uZWN0KGFjdGlvbiwgImFjdGl2YXRlIiwgR19DQUxMQkFDSyhjb250ZXh0TWVu
dUl0ZW1BY3RpdmF0ZWRDYWxsYmFjayksIG1fcGFnZSk7CisgICAgICAgICAgICBzaWduYWxIYW5k
bGVySWQgPSBnX3NpZ25hbF9jb25uZWN0KGFjdGlvbiwgImFjdGl2YXRlIiwgR19DQUxMQkFDSyhj
b250ZXh0TWVudUl0ZW1BY3RpdmF0ZWRDYWxsYmFjayksIHBhZ2UoKSk7CiAgICAgICAgICAgICBt
X3NpZ25hbEhhbmRsZXJzLnNldChzaWduYWxIYW5kbGVySWQsIGFjdGlvbik7CiAgICAgICAgIH0K
ICAgICAgICAgYnJlYWs7CkBAIC0yNTAsMTUgKzI1MCwxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51
UHJveHlHdGs6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4m
IGl0ZQogICAgIGJpbmRNb2RlbFRvTWVudVdpZGdldChtX21lbnUsIEdfTUVOVV9NT0RFTChtZW51
LmdldCgpKSk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eUd0azo6c2hvdygpCitWZWN0
b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+IFdlYkNvbnRleHRNZW51UHJveHlHdGs6OnByb3Bv
c2VkSXRlbXMoKSBjb25zdAogewogICAgIFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4g
cHJvcG9zZWRBUElJdGVtczsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2NvbnRleHQubWVudUl0
ZW1zKCkpIHsKICAgICAgICAgaWYgKGl0ZW0uYWN0aW9uKCkgIT0gQ29udGV4dE1lbnVJdGVtVGFn
U2hhcmVNZW51KQogICAgICAgICAgICAgcHJvcG9zZWRBUElJdGVtcy5hcHBlbmQoV2ViQ29udGV4
dE1lbnVJdGVtOjpjcmVhdGUoaXRlbSkpOwogICAgIH0KLQotICAgIG1fcGFnZS0+Y29udGV4dE1l
bnVDbGllbnQoKS5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUoKm1fcGFnZSwgV1RGTW92
ZShwcm9wb3NlZEFQSUl0ZW1zKSwgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OjpjcmVhdGUo
dGhpcykuZ2V0KCksIG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3BhZ2UtPnBy
b2Nlc3MoKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKG1fdXNlckRhdGEub2JqZWN0KCkpLmdl
dCgpKTsKKyAgICByZXR1cm4gcHJvcG9zZWRBUElJdGVtczsKIH0KIAogdm9pZCBXZWJDb250ZXh0
TWVudVByb3h5R3RrOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiYmIGl0ZW1zKQpAQCAtMjY5LDE2ICsyNjgsMTUgQEAgdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5R3RrOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJD
b250ZXh0TWVudUkKICAgICBpZiAoIW1lbnVXaWRnZXRIYXNJdGVtcyhtX21lbnUpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gbV9wYWdl
LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpOworICAgIE5hdGl2ZVdlYk1vdXNl
RXZlbnQqIG1vdXNlRXZlbnQgPSBwYWdlKCktPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2
ZW50KCk7CiAgICAgY29uc3QgR2RrRXZlbnQqIGV2ZW50ID0gbW91c2VFdmVudCA/IG1vdXNlRXZl
bnQtPm5hdGl2ZUV2ZW50KCkgOiBudWxscHRyOwogICAgIGNvbnN0IEdka1JlY3RhbmdsZSByZWN0
ID0geyBtX2NvbnRleHQubWVudUxvY2F0aW9uKCkueCgpLCBtX2NvbnRleHQubWVudUxvY2F0aW9u
KCkueSgpLCAxLCAxIH07CiAgICAgcG9wdXBNZW51V2lkZ2V0KG1fbWVudSwgZXZlbnQsIHJlY3Qp
OwogfQogCiBXZWJDb250ZXh0TWVudVByb3h5R3RrOjpXZWJDb250ZXh0TWVudVByb3h5R3RrKEd0
a1dpZGdldCogd2ViVmlldywgV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHRE
YXRhJiYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQotICAgIDogV2ViQ29udGV4
dE1lbnVQcm94eShXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkKKyAgICA6IFdlYkNvbnRleHRN
ZW51UHJveHkocGFnZSwgV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCiAgICAgLCBtX3dlYlZp
ZXcod2ViVmlldykKLSAgICAsIG1fcGFnZSgmcGFnZSkKICAgICAsIG1fbWVudShjcmVhdGVNZW51
V2lkZ2V0KG1fd2ViVmlldykpCiB7CiAgICAgZ3RrX3dpZGdldF9pbnNlcnRfYWN0aW9uX2dyb3Vw
KEdUS19XSURHRVQobV9tZW51KSwgZ0NvbnRleHRNZW51SXRlbUdyb3VwLCBHX0FDVElPTl9HUk9V
UChtX2FjdGlvbkdyb3VwLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaAppbmRleCBlYTQ4ZGJhZDgzNGM5MTcyOWM5
NGI3NTI4YjMyZmYwOTUxNWU5YTdlLi4xYjRhZWZiMzYxMzAyMTJjMmRkNWEwYzU0YjFlNTg0ZGU1
ZmMyZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4
dE1lbnVQcm94eUd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJDb250
ZXh0TWVudVByb3h5R3RrLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgV2ViQ29udGV4dE1lbnVJ
dGVtOwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IAotY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eUd0ayA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVBy
b3h5IHsKK2NsYXNzIFdlYkNvbnRleHRNZW51UHJveHlHdGsgZmluYWwgOiBwdWJsaWMgV2ViQ29u
dGV4dE1lbnVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKEd0a1dpZGdl
dCogd2lkZ2V0LCBXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBj
b250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgewpAQCAtNTYsNyArNTYsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eUd0ayhHdGtXaWRn
ZXQqLCBXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVzZXJE
YXRhJik7Ci0gICAgdm9pZCBzaG93KCkgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFJlZjxXZWJDb250
ZXh0TWVudUl0ZW0+PiBwcm9wb3NlZEl0ZW1zKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
aG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGFwcGVuZChHTWVudSosIGNvbnN0IFdlYkNvbnRleHRNZW51
SXRlbUdsaWImKTsKICAgICBHUmVmUHRyPEdNZW51PiBidWlsZE1lbnUoY29uc3QgVmVjdG9yPFdl
YkNvbnRleHRNZW51SXRlbUdsaWI+Jik7CkBAIC02NCw3ICs2NCw2IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbUdsaWI+IHBvcHVsYXRlU3ViTWVudShjb25zdCBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhJik7CiAKICAgICBHdGtXaWRnZXQqIG1fd2ViVmlldzsKLSAgICBX
ZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBHdGtXaWRnZXQqIG1fbWVudTsKICAgICBIYXNoTWFw
PHVuc2lnbmVkIGxvbmcsIHZvaWQqPiBtX3NpZ25hbEhhbmRsZXJzOwogICAgIEdSZWZQdHI8R1Np
bXBsZUFjdGlvbkdyb3VwPiBtX2FjdGlvbkdyb3VwIHsgYWRvcHRHUmVmKGdfc2ltcGxlX2FjdGlv
bl9ncm91cF9uZXcoKSkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCmluZGV4IDg1MDUzYzA4
NTNlNTU0ODMzYzNjN2VjZTgzYWNiYTdlZTlkNTU0YTUuLjMzZDRmZWI0YzQwMDU5NmVkMzM5NjU3
NTY2NWFiYmY0NDQwOWFmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbQpAQCAtMTI5LDcg
KzEyOSw3IEBAIC0gKHZvaWQpc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilzaGFy
aW5nU2VydmljZSBkaWRTaGFyZUl0ZW1zOihOU0FycmF5CiAgICAgfQogCiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBhZG9wdCByZXBsYWNlU2VsZWN0aW9uV2l0aEF0dHJpYnV0ZWRTdHJpbmcgaW5z
dGVhZCBvZiBib3VuY2luZyB0aHJvdWdoIHRoZSAoZmFrZSkgcGFzdGVib2FyZC4KLSAgICBfbWVu
dVByb3h5LT5wYWdlKCkucmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YSh0eXBlcywg
ZGF0YVJlZmVyZW5jZSk7CisgICAgX21lbnVQcm94eS0+cGFnZSgpLT5yZXBsYWNlU2VsZWN0aW9u
V2l0aFBhc3RlYm9hcmREYXRhKHR5cGVzLCBkYXRhUmVmZXJlbmNlKTsKIH0KIAogLSAoTlNXaW5k
b3cgKilzaGFyaW5nU2VydmljZTooTlNTaGFyaW5nU2VydmljZSAqKXNoYXJpbmdTZXJ2aWNlIHNv
dXJjZVdpbmRvd0ZvclNoYXJlSXRlbXM6KE5TQXJyYXkgKilpdGVtcyBzaGFyaW5nQ29udGVudFNj
b3BlOihOU1NoYXJpbmdDb250ZW50U2NvcGUgKilzaGFyaW5nQ29udGVudFNjb3BlCkBAIC0xNDAs
NCArMTQwLDMgQEAgLSAoTlNXaW5kb3cgKilzaGFyaW5nU2VydmljZTooTlNTaGFyaW5nU2Vydmlj
ZSAqKXNoYXJpbmdTZXJ2aWNlIHNvdXJjZVdpbmRvd0ZvclMKIEBlbmQKIAogI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAppbmRleCA5MDBlZjBmMTc4YTkyNmRhYWNk
NTNlNjQ1ZTU3MzBhYWJmMWVhZjcxLi4wYmIwN2U2NzlmMzBlN2IzNjgyYjM3MzZiNTM3MmNiYmIy
ZDMxZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsNTAgKzI3LDQ0IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAK
LSNpbmNsdWRlICJXS0FycmF5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha09iakNQdHIuaD4K
IAogT0JKQ19DTEFTUyBOU01lbnU7CiBPQkpDX0NMQVNTIE5TTWVudUl0ZW07Ci1PQkpDX0NMQVNT
IE5TUG9wVXBCdXR0b25DZWxsOwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIE5TV2lu
ZG93OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2hhcmVhYmxlQml0bWFwOwotY2xh
c3MgVXNlckRhdGE7CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOwotY2xhc3MgV2ViQ29u
dGV4dE1lbnVMaXN0ZW5lclByb3h5OwotY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFzcyBXZWJD
b250ZXh0TWVudVByb3h5TWFjIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgeworY2xhc3Mg
V2ViQ29udGV4dE1lbnVQcm94eU1hYyBmaW5hbCA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVByb3h5
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoTlNWaWV3KiB2aWV3LCBXZWJQYWdl
UHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKE5TVmlldyAqd2ViVmlldywg
V2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29udGV4dCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViQ29udGV4dE1lbnVQcm94eU1hYyh2aWV3LCBwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1
c2VyRGF0YSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVudVBy
b3h5TWFjKHdlYlZpZXcsIHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKSk7CiAgICAg
fQogICAgIH5XZWJDb250ZXh0TWVudVByb3h5TWFjKCk7CiAKICAgICB2b2lkIGNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKLSAgICB2b2lkIHNo
b3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYp
IG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdm9pZCBjbGVh
clNlcnZpY2VzTWVudSgpOwogI2VuZGlmCiAKLSAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2U7IH0KICAgICBOU1dpbmRvdyAqd2luZG93KCkgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgV2ViQ29udGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcqLCBXZWJQYWdlUHJveHkm
LCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgV2ViQ29u
dGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcgKiwgV2ViUGFnZVByb3h5JiwgQ29udGV4dE1lbnVDb250
ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpOworCiAgICAgdm9pZCBzaG93KCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0
TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHVzZUNvbnRleHRNZW51SXRlbXMoVmVj
dG9yPFJlZjxXZWJDb250ZXh0TWVudUl0ZW0+PiYmKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxX
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk+IG1fY29udGV4dE1lbnVMaXN0ZW5lcjsKICAgICB2
b2lkIGdldENvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChOU01lbnVJdGVtICopPiYmKTsKICAgICB2b2lkIGdldENvbnRl
eHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoTlNNZW51ICopPiYmKTsKLSAgICB2b2lkIHNob3dDb250ZXh0
TWVudSgpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdm9pZCBnZXRTaGFy
ZU1lbnVJdGVtKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNNZW51SXRlbSAqKT4mJik7CkBAIC03
OSw5ICs3Myw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFJldGFpblB0cjxOU01lbnU+IG1f
bWVudTsKLQotICAgIE5TVmlldyogbV93ZWJWaWV3OwotICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdl
OworICAgIFdlYWtPYmpDUHRyPE5TVmlldz4gbV93ZWJWaWV3OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IDNkYWFhMjVkNGZmZWJiYmIxNjgyZWZjMDBkYzUwMjYy
Y2QzODg2ZWMuLmE2NGUxMzZhY2Q5NTJmMjM5NDM3YzM5ZTUxZjhlYjkxZDY5OGE2MDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI5LDI1ICsyOSwxOSBAQAogI2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiQVBJ
Q29udGV4dE1lbnVDbGllbnQuaCIKLSNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQg
Ik1lbnVVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsTWFjLmgiCiAjaW1wb3J0
ICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgotI2lt
cG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXS01lbnVJdGVtSWRlbnRpZmllcnNQ
cml2YXRlLmgiCiAjaW1wb3J0ICJXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCIKICNp
bXBvcnQgIldlYkNvbnRleHRNZW51SXRlbS5oIgogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVJdGVt
RGF0YS5oIgotI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmgiCiAjaW1wb3J0
ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCA8
V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21h
Yy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VQaWNr
ZXJTUEkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGludGVyZmFjZSBXS1VzZXJEYXRhV3JhcHBlciA6
IE5TT2JqZWN0IHsKQEAgLTE1NCwyMSArMTQ4LDE1IEBAIEBlbmQKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdlYkNvbnRleHRNZW51UHJveHlNYWM6Oldl
YkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkmIHBhZ2Us
IENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCi0gICAgOiBXZWJDb250ZXh0TWVudVByb3h5KFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRh
KQorV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcg
KndlYlZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYmIGNv
bnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICA6IFdlYkNvbnRleHRNZW51UHJv
eHkocGFnZSwgV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCiAgICAgLCBtX3dlYlZpZXcod2Vi
VmlldykKLSAgICAsIG1fcGFnZShwYWdlKQogewogfQogCiBXZWJDb250ZXh0TWVudVByb3h5TWFj
Ojp+V2ViQ29udGV4dE1lbnVQcm94eU1hYygpCiB7CiAgICAgW21fbWVudSBjYW5jZWxUcmFja2lu
Z107Ci0KLSAgICBpZiAobV9jb250ZXh0TWVudUxpc3RlbmVyKSB7Ci0gICAgICAgIG1fY29udGV4
dE1lbnVMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVu
ZXIgPSBudWxscHRyOwotICAgIH0KIH0KIAogdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVt
KQpAQCAtMTc3LDcgKzE2NSw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0CiAgICAgY2xlYXJT
ZXJ2aWNlc01lbnUoKTsKICNlbmRpZgogCi0gICAgbV9wYWdlLmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKGl0ZW0pOworICAgIHBhZ2UoKS0+Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoaXRlbSk7CiB9
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKQEAgLTI1MSw4ICsyMzksOSBAQCB2b2lk
IFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dTZXJ2aWNlc01lbnUoKQogewogICAgIHNldHVw
U2VydmljZXNNZW51KCk7CiAKKyAgICBhdXRvIHdlYlZpZXcgPSBtX3dlYlZpZXcuZ2V0KCk7CiAg
ICAgW1tXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgc2hhcmVkU2hhcmluZ1NlcnZpY2VQ
aWNrZXJEZWxlZ2F0ZV0gc2V0TWVudVByb3h5OnRoaXNdOwotICAgIFttX21lbnUgcG9wVXBNZW51
UG9zaXRpb25pbmdJdGVtOm5pbCBhdExvY2F0aW9uOm1fY29udGV4dC5tZW51TG9jYXRpb24oKSBp
blZpZXc6bV93ZWJWaWV3XTsKKyAgICBbbV9tZW51IHBvcFVwTWVudVBvc2l0aW9uaW5nSXRlbTpu
aWwgYXRMb2NhdGlvbjptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgaW5WaWV3OndlYlZpZXcuZ2V0
KCldOwogfQogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmNsZWFyU2VydmljZXNNZW51
KCkKQEAgLTMzNywxNiArMzI2LDE0IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0
U2hhcmVNZW51SXRlbShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudUl0ZW0KIAogdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93KCkKIHsKLSAgICBSZWY8V2ViUGFnZVByb3h5PiBw
cm90ZWN0KG1fcGFnZSk7Ci0KICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBpZiAo
bV9jb250ZXh0LmlzU2VydmljZXNNZW51KCkpIHsKLSAgICAgICAgc2hvd1NlcnZpY2VzTWVudSgp
OworICAgICAgICBXZWJDb250ZXh0TWVudVByb3h5Ojp1c2VDb250ZXh0TWVudUl0ZW1zKHsgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAotICAgIHNob3dDb250ZXh0TWVudSgp
OworICAgIFdlYkNvbnRleHRNZW51UHJveHk6OnNob3coKTsKIH0KIAogdm9pZCBXZWJDb250ZXh0
TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29u
dGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TTWVudSAq
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTUwNyw0NyArNDk0LDUyIEBAIHZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVJdGVtKGNvbnN0IFdlYkNvbnRleHRNZW51
SXRlbURhdGEmIGl0CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvd0NvbnRleHRN
ZW51V2l0aEl0ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJiBpdGVtcykKIHsK
LSAgICBpZiAobV9wYWdlLmNvbnRleHRNZW51Q2xpZW50KCkuc2hvd0NvbnRleHRNZW51KG1fcGFn
ZSwgbV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpLCBpdGVtcykpCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCisgICAgaWYgKG1fY29udGV4dC5pc1NlcnZpY2VzTWVudSgpKSB7CisgICAgICAg
IEFTU0VSVChpdGVtcy5pc0VtcHR5KCkpOworICAgICAgICBzaG93U2VydmljZXNNZW51KCk7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIAotICAgIGlmIChpdGVtcy5pc0VtcHR5KCkp
CisgICAgaWYgKHBhZ2UoKS0+Y29udGV4dE1lbnVDbGllbnQoKS5jYW5TaG93Q29udGV4dE1lbnUo
KSkgeworICAgICAgICBwYWdlKCktPmNvbnRleHRNZW51Q2xpZW50KCkuc2hvd0NvbnRleHRNZW51
KCpwYWdlKCksIG1fY29udGV4dC5tZW51TG9jYXRpb24oKSwgaXRlbXMpOwogICAgICAgICByZXR1
cm47CisgICAgfQogCi0gICAgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IGRhdGE7Ci0g
ICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGl0ZW1zLnNpemUoKSk7Ci0gICAgZm9yIChh
dXRvJiBpdGVtIDogaXRlbXMpCi0gICAgICAgIGRhdGEudW5jaGVja2VkQXBwZW5kKGl0ZW0tPmRh
dGEoKSk7CisgICAgQVNTRVJUKGl0ZW1zLmlzRW1wdHkoKSk7CisgICAgaWYgKCFtX21lbnUpCisg
ICAgICAgIHJldHVybjsKIAotICAgIGdldENvbnRleHRNZW51RnJvbUl0ZW1zKGRhdGEsIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXNdKE5TTWVudSAqbWVudSkgbXV0YWJsZSB7
Ci0gICAgICAgIFtbV0tNZW51VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0
aGlzXTsKLSAgICAgICAgbV9wYWdlLmNvbnRleHRNZW51Q2xpZW50KCkubWVudUZyb21Qcm9wb3Nl
ZE1lbnUobV9wYWdlLCBtZW51LCBtX2NvbnRleHQud2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV91
c2VyRGF0YS5vYmplY3QoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpXSAoUmV0YWluUHRyPE5TTWVudT4mJiBtZW51KSB7Ci0gICAgICAgICAgICBtX21lbnUg
PSBXVEZNb3ZlKG1lbnUpOwotICAgICAgICAgICAgTlNQb2ludCBtZW51TG9jYXRpb24gPSBbbV93
ZWJWaWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07
Ci0gICAgICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcCBsb2NhdGlvbjptZW51TG9jYXRpb24gbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjptX3dlYlZpZXcud2luZG93LndpbmRvd051
bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsK
LSAgICAgICAgICAgIFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2
ZW50OmV2ZW50IGZvclZpZXc6bV93ZWJWaWV3XTsKLQotICAgICAgICAgICAgaWYgKG1fY29udGV4
dE1lbnVMaXN0ZW5lcikgewotICAgICAgICAgICAgICAgIG1fY29udGV4dE1lbnVMaXN0ZW5lci0+
aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgICAgIG1fY29udGV4dE1lbnVMaXN0ZW5lciA9IG51
bGxwdHI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH0pOworICAgIGF1dG8gd2Vi
VmlldyA9IG1fd2ViVmlldy5nZXQoKTsKKyAgICBOU1BvaW50IG1lbnVMb2NhdGlvbiA9IFt3ZWJW
aWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07Cisg
ICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dlYlZpZXcgd2luZG93XS53aW5kb3dOdW1iZXIgY29udGV4
dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgW05TTWVu
dSBwb3BVcENvbnRleHRNZW51Om1fbWVudS5nZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9yVmlldzp3
ZWJWaWV3LmdldCgpXTsKIH0KIAotdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93Q29u
dGV4dE1lbnUoKQordm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1c2VDb250ZXh0TWVudUl0
ZW1zKFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJdGVtPj4mJiBpdGVtcykKIHsKLSAgICBWZWN0
b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+IHByb3Bvc2VkQVBJSXRlbXM7Ci0gICAgZm9yIChh
dXRvJiBpdGVtIDogbV9jb250ZXh0Lm1lbnVJdGVtcygpKQotICAgICAgICBwcm9wb3NlZEFQSUl0
ZW1zLmFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShpdGVtKSk7Ci0KLSAgICBpZiAo
bV9jb250ZXh0TWVudUxpc3RlbmVyKSB7Ci0gICAgICAgIG1fY29udGV4dE1lbnVMaXN0ZW5lci0+
aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIgPSBudWxscHRyOwor
ICAgIGlmIChpdGVtcy5pc0VtcHR5KCkgfHwgIXBhZ2UoKSB8fCBwYWdlKCktPmNvbnRleHRNZW51
Q2xpZW50KCkuY2FuU2hvd0NvbnRleHRNZW51KCkpIHsKKyAgICAgICAgV2ViQ29udGV4dE1lbnVQ
cm94eTo6dXNlQ29udGV4dE1lbnVJdGVtcyhXVEZNb3ZlKGl0ZW1zKSk7CisgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIgPSBXZWJDb250ZXh0TWVudUxp
c3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyAgICBhdXRvIGRhdGEgPSBXVEY6Om1hcChpdGVt
cywgW10oYXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS0+ZGF0YSgpOworICAgIH0p
OwogCi0gICAgbV9wYWdlLmNvbnRleHRNZW51Q2xpZW50KCkuZ2V0Q29udGV4dE1lbnVGcm9tUHJv
cG9zZWRNZW51KG1fcGFnZSwgV1RGTW92ZShwcm9wb3NlZEFQSUl0ZW1zKSwgKm1fY29udGV4dE1l
bnVMaXN0ZW5lciwgbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fcGFnZS5wcm9j
ZXNzKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhtX3VzZXJEYXRhLm9iamVjdCgpKS5nZXQo
KSk7CisgICAgZ2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoZGF0YSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0oTlNNZW51ICptZW51KSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCFwYWdlKCkpIHsKKyAgICAgICAgICAgIFdlYkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRN
ZW51SXRlbXMoeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IFtbV0tNZW51VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKKyAg
ICAgICAgcGFnZSgpLT5jb250ZXh0TWVudUNsaWVudCgpLm1lbnVGcm9tUHJvcG9zZWRNZW51KCpw
YWdlKCksIG1lbnUsIG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3VzZXJEYXRh
Lm9iamVjdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyld
KFJldGFpblB0cjxOU01lbnU+JiYgbWVudSkgeworICAgICAgICAgICAgbV9tZW51ID0gV1RGTW92
ZShtZW51KTsKKyAgICAgICAgICAgIFdlYkNvbnRleHRNZW51UHJveHk6OnVzZUNvbnRleHRNZW51
SXRlbXMoeyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9CiAKIE5TV2luZG93ICpXZWJDb250
ZXh0TWVudVByb3h5TWFjOjp3aW5kb3coKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51UHJveHlXaW4uY3BwCmluZGV4IGFhMTcxZjQ4
YmM0MGE5NmE4NmQ5NTE0NTFiNTc4ZjYwOWM1NzNmY2UuLjNkY2QwZWMzNWM5MmUzNzIzOTIwOGE4
ZjVkNGY0NjFmYmVhYWMzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dp
bi9XZWJDb250ZXh0TWVudVByb3h5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHAKQEAgLTM4LDE1ICszOCw2IEBACiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi12b2lkIFdlYkNvbnRl
eHRNZW51UHJveHlXaW46OnNob3coKQotewotICAgIFZlY3RvcjxSZWY8V2ViQ29udGV4dE1lbnVJ
dGVtPj4gcHJvcG9zZWRBUElJdGVtczsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2NvbnRleHQu
bWVudUl0ZW1zKCkpCi0gICAgICAgIHByb3Bvc2VkQVBJSXRlbXMuYXBwZW5kKFdlYkNvbnRleHRN
ZW51SXRlbTo6Y3JlYXRlKGl0ZW0pKTsKLSAgICBtX2NvbnRleHRNZW51TGlzdGVuZXIgPSBXZWJD
b250ZXh0TWVudUxpc3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKTsKLSAgICBtX3BhZ2UuY29udGV4
dE1lbnVDbGllbnQoKS5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUobV9wYWdlLCBXVEZN
b3ZlKHByb3Bvc2VkQVBJSXRlbXMpLCAqbV9jb250ZXh0TWVudUxpc3RlbmVyLCBtX2NvbnRleHQu
d2ViSGl0VGVzdFJlc3VsdERhdGEoKSwgbV9wYWdlLnByb2Nlc3MoKS50cmFuc2Zvcm1IYW5kbGVz
VG9PYmplY3RzKG1fdXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKLX0KLQogc3RhdGljIEhNRU5V
IGNyZWF0ZU1lbnUoY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSAmY29udGV4dCkKIHsKICAg
ICBITUVOVSBtZW51ID0gOjpDcmVhdGVQb3B1cE1lbnUoKTsKQEAgLTEwNCwxNCArOTUsMTMgQEAg
dm9pZCBXZWJDb250ZXh0TWVudVByb3h5V2luOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVj
dG9yPFJlZjxXZWJDb250ZXh0TWVudUkKIAogICAgIFVJTlQgZmxhZ3MgPSBUUE1fUklHSFRCVVRU
T04gfCBUUE1fVE9QQUxJR04gfCBUUE1fVkVSUE9TQU5JTUFUSU9OIHwgVFBNX0hPUklaT05UQUwg
fCBUUE1fTEVGVEFMSUdOIHwgVFBNX0hPUlBPU0FOSU1BVElPTjsKICAgICBQT0lOVCBwdCB7IG1f
Y29udGV4dC5tZW51TG9jYXRpb24oKS54KCksIG1fY29udGV4dC5tZW51TG9jYXRpb24oKS55KCkg
fTsKLSAgICBIV05EIHduZCA9IG1fcGFnZS52aWV3V2lkZ2V0KCk7CisgICAgSFdORCB3bmQgPSBw
YWdlKCktPnZpZXdXaWRnZXQoKTsKICAgICA6OkNsaWVudFRvU2NyZWVuKHduZCwgJnB0KTsKLSAg
ICA6OlRyYWNrUG9wdXBNZW51RXgobV9tZW51LCBmbGFncywgcHQueCwgcHQueSwgbV9wYWdlLnZp
ZXdXaWRnZXQoKSwgbnVsbHB0cik7CisgICAgOjpUcmFja1BvcHVwTWVudUV4KG1fbWVudSwgZmxh
Z3MsIHB0LngsIHB0LnksIHBhZ2UoKS0+dmlld1dpZGdldCgpLCBudWxscHRyKTsKIH0KIAogV2Vi
Q29udGV4dE1lbnVQcm94eVdpbjo6V2ViQ29udGV4dE1lbnVQcm94eVdpbihXZWJQYWdlUHJveHkm
IHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCi0gICAgOiBXZWJDb250ZXh0TWVudVByb3h5KFdURk1vdmUoY29udGV4dCksIHVz
ZXJEYXRhKQotICAgICwgbV9wYWdlKHBhZ2UpCisgICAgOiBXZWJDb250ZXh0TWVudVByb3h5KHBh
Z2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKQogewogICAgIG1fbWVudSA9IGNyZWF0ZU1l
bnUobV9jb250ZXh0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dp
bi9XZWJDb250ZXh0TWVudVByb3h5V2luLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4v
V2ViQ29udGV4dE1lbnVQcm94eVdpbi5oCmluZGV4IDhlZGE2NzM4NDlkYTJkMWEzOGMzN2JiMzg0
ZGRlZjVlNzYwOTVhOWEuLjBjODBkOTcwYzNmOWE5ODdmYWY2MjAwODFjOTA5ZjZjNzAyMTk3MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0TWVudVBy
b3h5V2luLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRNZW51
UHJveHlXaW4uaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdl
YkNvbnRleHRNZW51SXRlbURhdGE7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFdlYkNv
bnRleHRNZW51UHJveHlXaW4gOiBwdWJsaWMgV2ViQ29udGV4dE1lbnVQcm94eSB7CitjbGFzcyBX
ZWJDb250ZXh0TWVudVByb3h5V2luIGZpbmFsIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkg
ewogcHVibGljOgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIENv
bnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiAgICAgewpAQCAtNDcsMTAgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJDb250
ZXh0TWVudVByb3h5V2luKFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhWZWN0
b3I8UmVmPFdlYkNvbnRleHRNZW51SXRlbT4+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2hvdygp
IG92ZXJyaWRlOwogCi0gICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Ci0gICAgUmVmUHRyPFdlYkNv
bnRleHRNZW51TGlzdGVuZXJQcm94eT4gbV9jb250ZXh0TWVudUxpc3RlbmVyOwogICAgIEhNRU5V
IG1fbWVudTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9X
ZWJDb250ZXh0TWVudVByb3h5V1BFLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUvV2Vi
Q29udGV4dE1lbnVQcm94eVdQRS5oCmluZGV4IDhiMmQzYTM2Y2U0ZWMxNGI2MzhhNzc4OTkzOGVm
MGIxNGEzNmVhYjEuLjUyNDNkMGNjZjIzYzEzZDQwY2U0NTc3NWUzMDk3ZmEwZWM4MjAxOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJDb250ZXh0TWVudVByb3h5
V1BFLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYkNvbnRleHRNZW51UHJv
eHlXUEUuaApAQCAtMjksMTkgKzI5LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBXZWJDb250ZXh0TWVudVByb3h5V1BFIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewor
Y2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eVdQRSBmaW5hbCA6IHB1YmxpYyBXZWJDb250ZXh0TWVu
dVByb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoQ29udGV4dE1lbnVDb250
ZXh0RGF0YSYmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICBzdGF0aWMg
YXV0byBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYg
Y29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eVdQRShXVEZNb3ZlKGNvbnRleHQpLCB1
c2VyRGF0YSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb250ZXh0TWVudVBy
b3h5V1BFKHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKSk7CiAgICAgfQogCiAgICAg
dm9pZCBzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVudUl0
ZW0+PiYmKSBmaW5hbCB7IH0KICAgICB2b2lkIHNob3coKSBmaW5hbCB7IH07CiAKIHByaXZhdGU6
Ci0gICAgV2ViQ29udGV4dE1lbnVQcm94eVdQRShDb250ZXh0TWVudUNvbnRleHREYXRhJiYgY29u
dGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQotICAgICAgICA6IFdlYkNvbnRleHRNZW51
UHJveHkoV1RGTW92ZShjb250ZXh0KSwgdXNlckRhdGEpCisgICAgV2ViQ29udGV4dE1lbnVQcm94
eVdQRShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgICAgIDogV2ViQ29udGV4dE1lbnVQcm94
eShwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1c2VyRGF0YSkKICAgICB7IH0KIH07CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZDRiNGJkYjBk
YjQxNzQ2OWY2YWE2NmU2MTFhZjdmN2Q1MmI3NDFlLi40YTMxMThlOTBmYzRhN2UwMTNhNmU0NjU5
YWZlOGQyNmQwOGViODNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDctMDcgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyMDc1NTgpOiBbTWFjXSBDb250
ZXh0IGNsaWNrcyBvbiBsaW5rcyBzb21ldGltZXMgcmVzdWx0IGluIG5hdmlnYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM3OTMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY0Mjk0MDE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgQWRkZWQgQVBJIHRlc3RzLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hl
bWVzL1Rlc3RXZWJLaXRBUEkueGNzY2hlbWU6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51TW91c2VFdmVudHMubW06IFJlbmFtZWQgZnJvbSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVDb250cm9sQ2xpY2su
bW0uCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5UZXN0KToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6c2ltdWxh
dGVQcmVzc3VyZTpjbGlja0NvdW50Om1vZGlmaWVyRmxhZ3M6bW91c2VFdmVudFR5cGU6XSk6Cisg
ICAgICAgICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IF9tb3VzZVVwQXRQb2ludDpjbGlja0Nv
dW50Om1vZGlmaWVyRmxhZ3M6ZXZlbnRUeXBlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3
IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToKKyAgICAgICAgKC1bVGVzdFdL
V2ViVmlldyBtb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6d2l0aEZsYWdzOmV2ZW50
VHlwZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBtb3VzZVVwQXRQb2ludDpdKToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBtb3VzZVVwQXRQb2ludDp3aXRoRmxhZ3M6ZXZlbnRUeXBl
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHNlbmRDbGlja3NBdFBvaW50Om51bWJlck9m
Q2xpY2tzOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBfbW91c2VEb3du
QXRQb2ludDpzaW11bGF0ZVByZXNzdXJlOmNsaWNrQ291bnQ6bW9kaWZpZXJGbGFnczpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgX21vdXNlVXBBdFBvaW50
OmNsaWNrQ291bnQ6bW9kaWZpZXJGbGFnczpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bVGVzdFdL
V2ViVmlldyBtb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6d2l0aEZsYWdzOl0pOiBE
ZWxldGVkLgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IG1vdXNlVXBBdFBvaW50OndpdGhGbGFn
czpdKTogRGVsZXRlZC4KKwogMjAyMC0wNy0wNyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgRW5hYmxlZCB0ZXN0aW5nIG9mIGRhdGUvdGltZSBpbnB1dCB0eXBlcyBm
b3IgV2ViS2l0MiBtYWNPUwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZTI2YzhlZWVjNmJk
OGIxNWYxNjEwNjJiYThkYzlkZTUyYTVmYjM1Li5jNjI0ZmM2ZmU0N2JhOGI4MjdjMGZkMzJhMjlk
OTM1ZDNmZGRhZWM2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ1LDYgKzg0NSw3IEBA
CiAJCUExMkREQkZCMUU4MzZGMDcwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTJEREJG
OTFFODM2RjA3MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zLm1tICovOyB9Owog
CQlBMTJEREMwMDFFODM3M0U3MDBDRjZDQUUgLyogcmVuZGVyZWQtaW1hZ2UtZXhjbHVkaW5nLW92
ZXJmbG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTEyRERCRkYxRTgzNzNDMTAwQ0Y2Q0FFIC8qIHJlbmRlcmVkLWltYWdlLWV4Y2x1
ZGluZy1vdmVyZmxvdy5odG1sICovOyB9OwogCQlBMTJEREMwMjFFODM3QzI0MDBDRjZDQUUgLyog
UmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyRERCRkMxRTgzNkZGMTAwQ0Y2Q0FFIC8qIFJlbmRl
cmVkSW1hZ2VXaXRoT3B0aW9uc1BsdWdJbi5tbSAqLzsgfTsKKwkJQTEzRDFBRDYyNEFENDY4RjAw
M0Y5MkE4IC8qIGNvbnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRDFBRDUyNEFENDY3NzAw
M0Y5MkE4IC8qIGNvbnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwgKi87IH07CiAJCUExM0VC
QkFBMUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQTkxQjg3NDI4RDAwMDk3MTEw
IC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gKi87IH07CiAJCUExM0VCQkFCMUI4NzQzNDYwMDA5NzEx
MCAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzlFNzIxQTQyM0EyQjAwRjU5MEY1IC8qIFBsYXRmb3Jt
VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUExM0VCQkIwMUI4NzQzNkYwMDA5NzExMCAvKiBC
dW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTEzRUJCQUUxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRl
cnNQbHVnSW4ubW0gKi87IH07CkBAIC04NjYsNiArODY3LDcgQEAKIAkJQTE3OTkxOEIxRTFDQTI0
MTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3OTkxODkxRTFDQTI0MTAwQTUwNUVEIC8qIFNoYXJl
ZEJ1ZmZlclRlc3QuY3BwICovOyB9OwogCQlBMTdFQUM1NTIwODMwNUEwMDA4NEI0MUIgLyogZmlu
ZC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTE3RUFDNTQyMDgzMDU2RTAwODRCNDFCIC8qIGZpbmQucGRmICovOyB9OwogCQlBMTgwQzBG
QTFFRTY3REYwMDA0NjhGNDcgLyogUnVuT3BlblBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4MEMwRjkxRUU2N0RGMDAwNDY4RjQ3IC8qIFJ1
bk9wZW5QYW5lbC5tbSAqLzsgfTsKKwkJQTFDMTQyQzIyNEFBN0IyRTAwNDQ0MjA3IC8qIENvbnRl
eHRNZW51TW91c2VFdmVudHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMUMxNDJDMTI0QUE3QjJFMDA0NDQyMDcgLyogQ29udGV4dE1lbnVNb3VzZUV2
ZW50cy5tbSAqLzsgfTsKIAkJQTFDNEZCNzMxQkFDRDFDQTAwMzc0MkQwIC8qIHBhZ2VzLnBhZ2Vz
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
QzRGQjcyMUJBQ0QxQjcwMDM3NDJEMCAvKiBwYWdlcy5wYWdlcyAqLzsgfTsKIAkJQTFERjc0MzIx
QzQxQjY1ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExREY3NDMwMUM0MUI2NTgw
MEEyRjREMCAvKiBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW0gKi87IH07CiAJCUExRUMx
MTg4MUY0MjU0MTIwMEQwMTQ2RSAvKiBQcmV2aWV3Q29udmVydGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRUMxMTg3MUY0MjU0MTIwMEQwMTQ2
RSAvKiBQcmV2aWV3Q29udmVydGVyLmNwcCAqLzsgfTsKQEAgLTEzMDMsNiArMTMwNSw3IEBACiAJ
CQkJRjQxQUI5QTExRUY0Njk2QjAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFy
ZWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEEzMkVDQjFGMDY0MzM3MDA0N0M1
NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUExNkY2NkJBMUM0MEVCNEYwMEJENEQyNCAvKiBDb250ZW50RmlsdGVyaW5nLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJQTEzRDFBRDYyNEFENDY4RjAwM0Y5MkE4IC8qIGNv
bnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTE0MkIyNzMxNTE3QzhDODAwQzMyQjE5IC8qIENvbnRleHRNZW51Q2FuQ29weVVSTC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNEMEJEMEE4MUY3OTk4MkQwMDFBQjJDRiAvKiBDb250
ZXh0TWVudUltZ1dpdGhWaWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDMjkz
Njk2MUQ1QzAwRUQwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCkBAIC0yNDA5LDYgKzI0MTIsNyBAQAogCQlBMTJEREJGQzFFODM2RkYxMDBDRjZDQUUg
LyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0luLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTJEREJGRjFFODM3M0MxMDBDRjZDQUUgLyog
cmVuZGVyZWQtaW1hZ2UtZXhjbHVkaW5nLW92ZXJmbG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAicmVuZGVyZWQtaW1hZ2UtZXhjbHVkaW5nLW92ZXJmbG93Lmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTJEREMwMTFFODM3NEY1MDBDRjZDQUUgLyogUmVu
ZGVyZWRJbWFnZVdpdGhPcHRpb25zUHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUHJvdG9jb2wuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTEzRDFBRDUyNEFENDY3NzAwM0Y5MkE4IC8qIGNvbnRleHQtbWVu
dS1jb250cm9sLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29udGV4dC1tZW51LWNvbnRyb2wtY2xp
Y2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExM0VCQjQ5MUI4NzMzOUUw
MDA5NzExMCAvKiBUZXN0V2ViS2l0QVBJLndrYnVuZGxlICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxlOyBpbmNsdWRlSW5JbmRl
eCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJLndrYnVuZGxlOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQlBMTNFQkI1MjFCODczNDY2MDAwOTcxMTAgLyogV2ViUHJvY2Vz
c1BsdWdJbi54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJQcm9j
ZXNzUGx1Z0luLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTNFQkI1
NDFCODczNEUwMDAwOTcxMTAgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1s
OyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NDIs
NiArMjQ0Niw3IEBACiAJCUExOEFBOENDMUMzRkEyMTgwMDlCMkI5NyAvKiBDb250ZW50RmlsdGVy
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRGaWx0ZXJpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThB
IC8qIERvd25sb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RG93bmxvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQjg5Qjk5MjIxRTAy
OUYwMEVCNENFQSAvKiBTREtWYXJpYW50LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IFNES1ZhcmlhbnQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExQzE0MkMxMjRBQTdCMkUwMDQ0NDIwNyAvKiBDb250ZXh0TWVudU1vdXNlRXZlbnRzLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGV4dE1lbnVNb3VzZUV2ZW50cy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDNEZCNkMxQkFDQ0U1MDAwMzc0MkQwIC8qIFF1aWNr
TG9vay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFF1aWNrTG9v
ay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDNEZCNzIxQkFDRDFCNzAwMzc0
MkQwIC8qIHBhZ2VzLnBhZ2VzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IHBhZ2VzLnBhZ2VzOyBwYXRoID0gaW9zL3BhZ2VzLnBh
Z2VzOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUExREY3NDMwMUM0MUI2NTgwMEEy
RjREMCAvKiBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDA4LDkgKzQ0MTMsMTEgQEAKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOUJENDIzOTkxRTA0QkQ5ODAwMjAwMzk1
IC8qIEF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tICovLAor
CQkJCUExM0QxQUQ1MjRBRDQ2NzcwMDNGOTJBOCAvKiBjb250ZXh0LW1lbnUtY29udHJvbC1jbGlj
ay5odG1sICovLAogCQkJCTgzNDlEM0MxMURCOTZEREEwMDRBOUY2NSAvKiBDb250ZXh0TWVudURv
d25sb2FkLm1tICovLAogCQkJCUNEMEJEMEE3MUY3OTk3QzIwMDFBQjJDRiAvKiBDb250ZXh0TWVu
dUltZ1dpdGhWaWRlby5odG1sICovLAogCQkJCUNEMEJEMEE1MUY3OTkyMjAwMDFBQjJDRiAvKiBD
b250ZXh0TWVudUltZ1dpdGhWaWRlby5tbSAqLywKKwkJCQlBMUMxNDJDMTI0QUE3QjJFMDA0NDQy
MDcgLyogQ29udGV4dE1lbnVNb3VzZUV2ZW50cy5tbSAqLywKIAkJCQk3QUM3QjU3MjIwRDlCQUYw
MDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlT2JqZWN0LmggKi8sCiAJCQkJN0FDN0I1NkYyMEQ5QkE1
QjAwMkMwOUEwIC8qIEN1c3RvbUJ1bmRsZU9iamVjdC5tbSAqLywKIAkJCQk3QUM3QjU2QzIwRDk3
NjhGMDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlUGFyYW1ldGVyLm1tICovLApAQCAtNDkwNiw2ICs0
OTEzLDcgQEAKIAkJCQkzN0ZCNzI5NzFEQjJFODJGMDBFNDFCRTQgLyogQ29udGV4dE1lbnVEZWZh
dWx0SXRlbXNIYXZlVGFncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTgzNDlEM0MyMURCOTZEREUw
MDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Qw
QkQwQTYxRjc5OTI0RDAwMUFCMkNGIC8qIENvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQTFDMTQyQzIyNEFBN0IyRTAwNDQ0MjA3IC8qIENvbnRleHRNZW51TW91
c2VFdmVudHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzNCMUQyNjIyQTc0RjY3MDBCQ0Y0RDAg
LyogQ29udGV4dE1lbnVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMyOTM2OTMxRDVCRjcwRDAw
REVBQjFFIC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMTlB
NTI0MUZEMEY2MDEwMEVFQTMyMyAvKiBDb29raWVQcml2YXRlQnJvd3NpbmcubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9D
b250ZXh0TWVudU1vdXNlRXZlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0NvbnRleHRNZW51TW91c2VFdmVudHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MjJjZjJmY2Q0
NDY3YThmYWUwYTZmNTU2NDFhOGIyNDc4YzAyNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudU1vdXNlRXZlbnRzLm1tCkBA
IC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlRlc3RDb2NvYS5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJPZmZzY3JlZW5X
aW5kb3cuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRl
c3RVSURlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxDYXJi
b24vQ2FyYm9uLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworICAgIAorc3RhdGljIHZvaWQgcnVuVGVzdChOU0V2ZW50TW9kaWZpZXJGbGFn
cyBmbGFncywgTlNFdmVudFR5cGUgbW91c2VEb3duVHlwZSwgTlNFdmVudFR5cGUgbW91c2VVcFR5
cGUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjb250ZXh0LW1lbnUtY29udHJvbC1j
bGljayJdOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBib29s
IG5hdmlnYXRpb25BdHRlbXB0ZWQgPSBmYWxzZTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHNl
dERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246XihXS05hdmlnYXRpb25BY3Rpb24gKm5h
dmlnYXRpb25BY3Rpb24sIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSkpIHsKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeUNhbmNlbCk7CisgICAgICAgIG5hdmlnYXRpb25BdHRlbXB0ZWQgPSB0cnVlOworICAgIH1d
OworCisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsK
KworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgX19ibG9jayB2b2lkKF5jb21w
bGV0aW9uSGFuZGxlckNvcHkpKE5TTWVudSAqKTsKKyAgICBbdWlEZWxlZ2F0ZSBzZXRHZXRDb250
ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnU6XihOU01lbnUgKiwgX1dLQ29udGV4dE1lbnVFbGVtZW50
SW5mbyAqLCBpZCA8TlNTZWN1cmVDb2Rpbmc+LCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKE5T
TWVudSAqKSkgeworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBeeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDb3B5ID0gW2NvbXBsZXRpb25I
YW5kbGVyIGNvcHldOworICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIH0pOworICAg
IH1dOworCisgICAgYXV0byBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAsIDU5MCk7CisgICAg
W3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpjbGlja1BvaW50IHNpbXVsYXRlUHJlc3N1cmU6Tk8g
d2l0aEZsYWdzOmZsYWdzIGV2ZW50VHlwZTptb3VzZURvd25UeXBlXTsKKyAgICBVdGlsOjpydW4o
JmRvbmUpOworCisgICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6Y2xpY2tQb2ludCB3aXRoRmxh
Z3M6ZmxhZ3MgZXZlbnRUeXBlOm1vdXNlVXBUeXBlXTsKKyAgICBjb21wbGV0aW9uSGFuZGxlckNv
cHkobmlsKTsKKworICAgIEVYUEVDVF9GQUxTRShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAIndpbmRvdy5jbGlja1NlZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cubW91
c2V1cFNlZW4iXSBib29sVmFsdWVdKTsKKyAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgb2JqZWN0
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5jb250ZXh0bWVudVNlZW4iXSBib29sVmFs
dWVdKTsKKyAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAIndpbmRvdy5tb3VzZWRvd25TZWVuIl0gYm9vbFZhbHVlXSk7CisKKyAgICBFWFBFQ1Rf
RkFMU0UobmF2aWdhdGlvbkF0dGVtcHRlZCk7Cit9CisKK1RFU1QoQ29udGV4dE1lbnVNb3VzZUV2
ZW50cywgQ29udHJvbENsaWNrKQoreworICAgIHJ1blRlc3QoTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bnRyb2wsIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCk7
Cit9CisKK1RFU1QoQ29udGV4dE1lbnVNb3VzZUV2ZW50cywgUmlnaHRDbGljaykKK3sKKyAgICBy
dW5UZXN0KDAsIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
bWFjL2NvbnRleHQtbWVudS1jb250cm9sLWNsaWNrLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9tYWMvY29udGV4dC1tZW51LWNvbnRyb2wtY2xpY2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNTZmZTk3ZDcyYzQ3ZDVjMjBhNmE1ZmEwY2FlZDExMzQyYzUwY2IxCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL2NvbnRleHQtbWVu
dS1jb250cm9sLWNsaWNrLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgKCkgPT4gY2xpY2tTZWVuID0gdHJ1ZSk7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIo
J2NvbnRleHRtZW51JywgKCkgPT4gY29udGV4dG1lbnVTZWVuID0gdHJ1ZSk7CisgICAgICAgIGFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsICgpID0+IG1vdXNlZG93blNlZW4gPSB0cnVlKTsK
KyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsICgpID0+IG1vdXNldXBTZWVuID0g
dHJ1ZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8YSBocmVmPSdodHRw
czovL3d3dy5hcHBsZS5jb20nPmxpbms8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLmggYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RVSURlbGVnYXRlLmgKaW5kZXggNjQ5OWNjYzdlMDQzYzQ3NjAy
OWZlNzI1YjcyODI5ZmY3MTQ2MTMxMC4uNGE0YmMzYWJlZGZlZTY5ODFmYzVjODdmNjg4YjRjMTZi
YzdkZTFhMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0VUlEZWxl
Z2F0ZS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdhdGUuaApA
QCAtMjgsNiArMjgsOSBAQAogQGludGVyZmFjZSBUZXN0VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxX
S1VJRGVsZWdhdGU+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChecnVuSmF2
YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZSkoV0tXZWJWaWV3ICosIE5TU3RyaW5nICosIFdL
RnJhbWVJbmZvICosIHZvaWQgKF4pKHZvaWQpKTsKKyNpZiBQTEFURk9STShNQUMpCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVu
dSkoTlNNZW51ICosIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKiwgaWQgPE5TU2VjdXJlQ29k
aW5nPiwgdm9pZCAoXikoTlNNZW51ICopKTsKKyNlbmRpZgogCiAtIChOU1N0cmluZyAqKXdhaXRG
b3JBbGVydDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0VUlE
ZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFVJRGVsZWdhdGUubW0K
aW5kZXggNTBhNDAwNjA1YWUzNGMwYTkzYTkzODYwODgzNTRlNTUyNjZhOTQxYS4uZTdjZWE2NTg0
MzhmNWI4ZWUwODQ2ODU4OTE2NjRmM2I4NTc5ZjMzOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RVSURlbGVnYXRlLm1tCkBAIC00MCw2ICs0MCwxNiBAQCAtICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2Fn
ZTooTlNTdHJpbgogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCisjaWYgUExBVEZP
Uk0oTUFDKQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRDb250ZXh0
TWVudUZyb21Qcm9wb3NlZE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4
dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4p
dXNlckluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TTWVudSAqKSljb21wbGV0aW9u
SGFuZGxlcgoreworICAgIGlmIChfZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KQorICAg
ICAgICBfZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KG1lbnUsIGVsZW1lbnQsIHVzZXJJ
bmZvLCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtZW51KTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKIC0gKE5TU3RyaW5nICop
d2FpdEZvckFsZXJ0CiB7CiAgICAgRVhQRUNUX0ZBTFNFKHNlbGYucnVuSmF2YVNjcmlwdEFsZXJ0
UGFuZWxXaXRoTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5oCmluZGV4IDQ1ODc0MjkxZGFmZTk5MzA1OTQyZmMxMTYzZjhjZTAyMmY4Y2M2OWUuLjZlYjVl
ZmUzYjA2ZWQ2NTZlNjMwY2RkODdhZmJhNGM0YTIyYjhiYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMSw5ICsxMjEsMTEgQEAKIEBpbnRlcmZhY2UgVGVz
dFdLV2ViVmlldyAoTWFjT25seSkKIC8vIFNpbXVsYXRlcyBjbGlja2luZyB3aXRoIGEgcHJlc3N1
cmUtc2Vuc2l0aXZlIGRldmljZSwgaWYgcG9zc2libGUuCiAtICh2b2lkKW1vdXNlRG93bkF0UG9p
bnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRl
UHJlc3N1cmU7CistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRv
dyBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUgd2l0aEZsYWdzOihOU0V2
ZW50TW9kaWZpZXJGbGFncylmbGFncyBldmVudFR5cGU6KE5TRXZlbnRUeXBlKWV2ZW50VHlwZTsK
IC0gKHZvaWQpbW91c2VEcmFnVG9Qb2ludDooTlNQb2ludClwb2ludEluV2luZG93OwogLSAodm9p
ZCltb3VzZUVudGVyQXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93OwogLSAodm9pZCltb3Vz
ZVVwQXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93OworLSAodm9pZCltb3VzZVVwQXRQb2lu
dDooTlNQb2ludClwb2ludEluV2luZG93IHdpdGhGbGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3Mp
ZmxhZ3MgZXZlbnRUeXBlOihOU0V2ZW50VHlwZSlldmVudFR5cGU7CiAtICh2b2lkKW1vdXNlTW92
ZVRvUG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmll
ckZsYWdzKWZsYWdzOwogLSAodm9pZClzZW5kQ2xpY2tzQXRQb2ludDooTlNQb2ludClwb2ludElu
V2luZG93IG51bWJlck9mQ2xpY2tzOihOU1VJbnRlZ2VyKW51bWJlck9mQ2xpY2tzOwogLSAodm9p
ZClzZW5kQ2xpY2tBdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3c7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggNTg4ODkxODdlNWMyZDU4NjcwZjkx
NjliODliN2UxMGFhYjc5MjA0Yi4uY2FiNjBmNjAxNDNjOTNmN2IzMTc1YjhhNDcxYWIyNjg1Nzhi
NTJmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOTAs
MTEgKzI5MCw4IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXc6KFRlc3RXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbnRlbnRSZWN0OihOU1JlY3QpY29uCiAgICAgcmV0dXJuIHNlbGY7CiB9
CiAKLS0gKHZvaWQpX21vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQcmVz
c3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlIGNsaWNrQ291bnQ6KE5TVUludGVnZXIpY2xpY2tD
b3VudAorLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVBy
ZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDooTlNVSW50ZWdlciljbGlj
a0NvdW50IG1vZGlmaWVyRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKW1vZGlmaWVyRmxhZ3Mg
bW91c2VFdmVudFR5cGU6KE5TRXZlbnRUeXBlKW1vdXNlRXZlbnRUeXBlCiB7Ci0gICAgTlNFdmVu
dFR5cGUgbW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247Ci0KLSAgICBO
U0V2ZW50TWFzayBtb2RpZmllckZsYWdzID0gMDsKICAgICBpZiAoc2ltdWxhdGVQcmVzc3VyZSkK
ICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TWFza1ByZXNzdXJlOwogCkBAIC0zMTYs
OSArMzEzLDkgQEAgLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11
bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUKICAgICB9CiB9CiAKLS0gKHZvaWQp
X21vdXNlVXBBdFBvaW50OihOU1BvaW50KXBvaW50IGNsaWNrQ291bnQ6KE5TVUludGVnZXIpY2xp
Y2tDb3VudAorLSAodm9pZClfbW91c2VVcEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgY2xpY2tDb3Vu
dDooTlNVSW50ZWdlciljbGlja0NvdW50IG1vZGlmaWVyRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZs
YWdzKW1vZGlmaWVyRmxhZ3MgZXZlbnRUeXBlOihOU0V2ZW50VHlwZSlldmVudFR5cGUKIHsKLSAg
ICBbc2VsZiBzZW5kRXZlbnQ6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TGVmdE1vdXNlVXAgbG9jYXRpb246cG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpfd2Vi
Vmlldy5ldmVudFRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6c2VsZi53aW5kb3dOdW1iZXIgY29udGV4
dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOisrZ0V2ZW50
TnVtYmVyIGNsaWNrQ291bnQ6Y2xpY2tDb3VudCBwcmVzc3VyZTowXV07CisgICAgW3NlbGYgc2Vu
ZEV2ZW50OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246cG9p
bnQgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzIHRpbWVzdGFtcDpfd2ViVmlldy5ldmVudFRp
bWVzdGFtcCB3aW5kb3dOdW1iZXI6c2VsZi53aW5kb3dOdW1iZXIgY29udGV4dDpbTlNHcmFwaGlj
c0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOisrZ0V2ZW50TnVtYmVyIGNsaWNr
Q291bnQ6Y2xpY2tDb3VudCBwcmVzc3VyZTowXV07CiB9CiAKICNlbmRpZgpAQCAtNzIxLDEyICs3
MTgsMjIgQEAgLSAoTlNUaW1lSW50ZXJ2YWwpZXZlbnRUaW1lc3RhbXAKIAogLSAodm9pZCltb3Vz
ZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9P
TClzaW11bGF0ZVByZXNzdXJlCiB7Ci0gICAgW19ob3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50
OnBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTpzaW11bGF0ZVByZXNzdXJlIGNsaWNrQ291
bnQ6MV07CisgICAgW3NlbGYgbW91c2VEb3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRl
UHJlc3N1cmU6c2ltdWxhdGVQcmVzc3VyZSB3aXRoRmxhZ3M6MCBldmVudFR5cGU6TlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duXTsKK30KKworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50
KXBvaW50SW5XaW5kb3cgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlIHdp
dGhGbGFnczooTlNFdmVudE1vZGlmaWVyRmxhZ3MpZmxhZ3MgZXZlbnRUeXBlOihOU0V2ZW50VHlw
ZSlldmVudFR5cGUKK3sKKyAgICBbX2hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnRJ
bldpbmRvdyBzaW11bGF0ZVByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmUgY2xpY2tDb3VudDoxIG1v
ZGlmaWVyRmxhZ3M6ZmxhZ3MgbW91c2VFdmVudFR5cGU6ZXZlbnRUeXBlXTsKIH0KIAogLSAodm9p
ZCltb3VzZVVwQXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93CiB7Ci0gICAgW19ob3N0V2lu
ZG93IF9tb3VzZVVwQXRQb2ludDpwb2ludEluV2luZG93IGNsaWNrQ291bnQ6MV07CisgICAgW3Nl
bGYgbW91c2VVcEF0UG9pbnQ6cG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6MCBldmVudFR5cGU6TlNF
dmVudFR5cGVMZWZ0TW91c2VVcF07Cit9CisKKy0gKHZvaWQpbW91c2VVcEF0UG9pbnQ6KE5TUG9p
bnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzIGV2
ZW50VHlwZTooTlNFdmVudFR5cGUpZXZlbnRUeXBlCit7CisgICAgW19ob3N0V2luZG93IF9tb3Vz
ZVVwQXRQb2ludDpwb2ludEluV2luZG93IGNsaWNrQ291bnQ6MSBtb2RpZmllckZsYWdzOmZsYWdz
IGV2ZW50VHlwZTpldmVudFR5cGVdOwogfQogCiAtICh2b2lkKW1vdXNlTW92ZVRvUG9pbnQ6KE5T
UG9pbnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdz
CkBAIC03MzcsOCArNzQ0LDggQEAgLSAodm9pZCltb3VzZU1vdmVUb1BvaW50OihOU1BvaW50KXBv
aW50SW5XaW5kb3cgd2l0aEZsYWdzOihOU0V2ZW50TW9kaWZpZXJGbGFncykKIC0gKHZvaWQpc2Vu
ZENsaWNrc0F0UG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyBudW1iZXJPZkNsaWNrczooTlNV
SW50ZWdlciludW1iZXJPZkNsaWNrcwogewogICAgIGZvciAoTlNVSW50ZWdlciBjbGlja0NvdW50
ID0gMTsgY2xpY2tDb3VudCA8PSBudW1iZXJPZkNsaWNrczsgKytjbGlja0NvdW50KSB7Ci0gICAg
ICAgIFtfaG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVsYXRl
UHJlc3N1cmU6Tk8gY2xpY2tDb3VudDpjbGlja0NvdW50XTsKLSAgICAgICAgW19ob3N0V2luZG93
IF9tb3VzZVVwQXRQb2ludDpwb2ludEluV2luZG93IGNsaWNrQ291bnQ6Y2xpY2tDb3VudF07Cisg
ICAgICAgIFtfaG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2ludDpwb2ludEluV2luZG93IHNpbXVs
YXRlUHJlc3N1cmU6Tk8gY2xpY2tDb3VudDpjbGlja0NvdW50IG1vZGlmaWVyRmxhZ3M6MCBtb3Vz
ZUV2ZW50VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd25dOworICAgICAgICBbX2hvc3RXaW5k
b3cgX21vdXNlVXBBdFBvaW50OnBvaW50SW5XaW5kb3cgY2xpY2tDb3VudDpjbGlja0NvdW50IG1v
ZGlmaWVyRmxhZ3M6MCBldmVudFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcF07CiAgICAgfQog
fQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>