<?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>161561</bug_id>
          
          <creation_ts>2016-09-02 18:02:13 -0700</creation_ts>
          <short_desc>Web Inspector: Update ESLint rules and run it over most of UserInterface</short_desc>
          <delta_ts>2016-09-04 22:15:00 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1226060</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-02 18:02:13 -0700</bug_when>
    <thetext>Summary:
Update ESLint rules and run it over most of UserInterface

I ran it over everything except the Views folder, which is a beast on its own.
Updated the settings which catch reasonable issues.
There were some actual issues caught by this, but this update is only mostly pedantic changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226070</commentid>
    <comment_count>1</comment_count>
      <attachid>287847</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-02 19:09:40 -0700</bug_when>
    <thetext>Created attachment 287847
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226164</commentid>
    <comment_count>2</comment_count>
      <attachid>287847</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-09-03 13:59:14 -0700</bug_when>
    <thetext>Comment on attachment 287847
[PATCH] Proposed Fix

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Base/Object.js:41
&gt; +            return listener;

Why not return null or throw an exception in the exceptional cases? These are almost always programming errors we want to fail hard on.

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:992
&gt; +        let nextRecord = function(list) { return list.shift() || null; };

This could be an arrow, I suppose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226339</commentid>
    <comment_count>3</comment_count>
      <attachid>287847</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-04 21:49:56 -0700</bug_when>
    <thetext>Comment on attachment 287847
[PATCH] Proposed Fix

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Object.js:41
&gt;&gt; +            return listener;
&gt; 
&gt; Why not return null or throw an exception in the exceptional cases? These are almost always programming errors we want to fail hard on.

Okay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226346</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-04 22:15:00 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/205424&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287847</attachid>
            <date>2016-09-02 19:09:40 -0700</date>
            <delta_ts>2016-09-04 21:58:41 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>esline-1.patch</filename>
            <type>text/plain</type>
            <size>57967</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS8uZXNsaW50cmMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvLmVzbGludHJjCmluZGV4IGVhMjI5MDIuLjcxMTNiMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS8uZXNsaW50cmMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJLy5lc2xpbnRyYwpAQCAtMjcsMzcgKzI3LDY2IEBACiAgICAgImVudiI6IHsKICAgICAgICAg
ImJyb3dzZXIiOiB0cnVlLAogICAgICAgICAiZXM2IjogdHJ1ZSwKLSAgICAgICAgIm5vZGUiOiBm
YWxzZSwKKyAgICAgICAgIndvcmtlciI6IHRydWUsCiAgICAgfSwKICAgICAiZ2xvYmFscyI6IHsK
KyAgICAgICAgLy8gQWdlbnRzCiAgICAgICAgICJBcHBsaWNhdGlvbkNhY2hlQWdlbnQiOiB0cnVl
LAogICAgICAgICAiQ1NTQWdlbnQiOiB0cnVlLAotICAgICAgICAiQ29kZU1pcnJvciI6IHRydWUs
CiAgICAgICAgICJDb25zb2xlQWdlbnQiOiB0cnVlLAogICAgICAgICAiRE9NQWdlbnQiOiB0cnVl
LAogICAgICAgICAiRE9NRGVidWdnZXJBZ2VudCI6IHRydWUsCiAgICAgICAgICJET01TdG9yYWdl
QWdlbnQiOiB0cnVlLAogICAgICAgICAiRGF0YWJhc2VBZ2VudCI6IHRydWUsCiAgICAgICAgICJE
ZWJ1Z2dlckFnZW50IjogdHJ1ZSwKLSAgICAgICAgIkZvcm1hdHRlciI6IHRydWUsCi0gICAgICAg
ICJGb3JtYXR0ZXJDb250ZW50QnVpbGRlciI6IHRydWUsCisgICAgICAgICJIZWFwQWdlbnQiLAog
ICAgICAgICAiSW5kZXhlZERCQWdlbnQiOiB0cnVlLAogICAgICAgICAiSW5zcGVjdG9yQWdlbnQi
OiB0cnVlLAotICAgICAgICAiSW5zcGVjdG9yQmFja2VuZCI6IHRydWUsCi0gICAgICAgICJJbnNw
ZWN0b3JGcm9udGVuZEFQSSI6IHRydWUsCi0gICAgICAgICJJbnNwZWN0b3JGcm9udGVuZEhvc3Qi
OiB0cnVlLAogICAgICAgICAiTGF5ZXJUcmVlQWdlbnQiOiB0cnVlLAotICAgICAgICAiTWFwIjog
dHJ1ZSwKKyAgICAgICAgIk1lbW9yeUFnZW50IjogdHJ1ZSwKICAgICAgICAgIk5ldHdvcmtBZ2Vu
dCI6IHRydWUsCiAgICAgICAgICJQYWdlQWdlbnQiOiB0cnVlLAogICAgICAgICAiUmVwbGF5QWdl
bnQiOiB0cnVlLAogICAgICAgICAiUnVudGltZUFnZW50IjogdHJ1ZSwKKyAgICAgICAgIlNjcmlw
dFByb2ZpbGVyQWdlbnQiOiB0cnVlLAogICAgICAgICAiVGltZWxpbmVBZ2VudCI6IHRydWUsCisg
ICAgICAgICJXb3JrZXJBZ2VudCI6IHRydWUsCisKKyAgICAgICAgLy8gV2ViSW5zcGVjdG9yCisg
ICAgICAgICJBc3luY1Rlc3RTdWl0ZSI6IHRydWUsCisgICAgICAgICJGb3JtYXR0ZXIiOiB0cnVl
LAorICAgICAgICAiRm9ybWF0dGVyQ29udGVudEJ1aWxkZXIiOiB0cnVlLAorICAgICAgICAiRnJv
bnRlbmRUZXN0SGFybmVzcyI6IHRydWUsCisgICAgICAgICJJbnNwZWN0b3JCYWNrZW5kIjogdHJ1
ZSwKKyAgICAgICAgIkluc3BlY3RvckJhY2tlbmRDbGFzcyI6IHRydWUsCisgICAgICAgICJJbnNw
ZWN0b3JGcm9udGVuZEFQSSI6IHRydWUsCisgICAgICAgICJJbnNwZWN0b3JGcm9udGVuZEhvc3Qi
OiB0cnVlLAorICAgICAgICAiSW5zcGVjdG9yUHJvdG9jb2wiOiB0cnVlLAorICAgICAgICAiSW5z
cGVjdG9yVGVzdCI6IHRydWUsCisgICAgICAgICJMaW5rZWRMaXN0IjogdHJ1ZSwKKyAgICAgICAg
Ikxpc3RNdWx0aW1hcCI6IHRydWUsCisgICAgICAgICJQcm90b2NvbFRlc3QiOiB0cnVlLAorICAg
ICAgICAiUHJvdG9jb2xUZXN0SGFybmVzcyI6IHRydWUsCisgICAgICAgICJTeW5jVGVzdFN1aXRl
IjogdHJ1ZSwKKyAgICAgICAgIlRlc3RIYXJuZXNzIjogdHJ1ZSwKKyAgICAgICAgIlRlc3RTdWl0
ZSI6IHRydWUsCiAgICAgICAgICJXZWJJbnNwZWN0b3IiOiB0cnVlLAorCisgICAgICAgIC8vIEV4
dGVybmFscworICAgICAgICAiQ29kZU1pcnJvciI6IHRydWUsCisgICAgICAgICJlc3ByaW1hIjog
dHJ1ZSwKKworICAgICAgICAvLyBET00KKyAgICAgICAgIkNTU1ByaW1pdGl2ZVZhbHVlIjogdHJ1
ZSwKKyAgICAgICAgIkV4Y2VwdGlvbiI6IHRydWUsCisgICAgICAgICJTUUxFeGNlcHRpb24iOiB0
cnVlLAogICAgICAgICAiV2ViS2l0UG9pbnQiOiB0cnVlLAotICAgICAgICAiV29ya2VyQWdlbnQi
OiB0cnVlLAotICAgICAgICAiY29uc29sZSI6IHRydWUsCi0gICAgICAgIC8vIHV0aWxpdGllcwor
CisgICAgICAgIC8vIFV0aWxpdGllcworICAgICAgICAiZmlndXJlRGFzaCI6IHRydWUsCisgICAg
ICAgICJlbGxpcHNpcyI6IHRydWUsCisgICAgICAgICJlbURhc2giOiB0cnVlLAorICAgICAgICAi
ZW5EYXNoIjogdHJ1ZSwKICAgICAgICAgImNsYW1wIjogdHJ1ZSwKICAgICAgICAgImlzRW50ZXJL
ZXkiOiB0cnVlLAogICAgICAgICAiaXNFbXB0eU9iamVjdCI6IHRydWUsCkBAIC02NSwyOSArOTQs
NDQgQEAKICAgICAgICAgImlzRnVuY3Rpb25TdHJpbmdOYXRpdmVDb2RlIjogdHJ1ZSwKICAgICAg
ICAgInBhcnNlTUlNRVR5cGUiOiB0cnVlLAogICAgICAgICAiZG91YmxlUXVvdGVkU3RyaW5nIjog
dHJ1ZSwKLSAgICAgICAgLy8gaW1hZ2UgdXRpbGl0aWVzCisgICAgICAgICJpc1dlYktpdEludGVy
bmFsU2NyaXB0IjogdHJ1ZSwKKyAgICAgICAgImlzV2ViSW5zcGVjdG9ySW50ZXJuYWxTY3JpcHQi
OiB0cnVlLAorICAgICAgICAiaXNXZWJJbnNwZWN0b3JDb25zb2xlRXZhbHVhdGlvblNjcmlwdCI6
IHRydWUsCisgICAgICAgICJhcHBlbmRXZWJJbnNwZWN0b3JTb3VyY2VVUkwiOiB0cnVlLAorICAg
ICAgICAiYXBwZW5kV2ViSW5zcGVjdG9yQ29uc29sZUV2YWx1YXRpb25Tb3VyY2VVUkwiOiB0cnVl
LAorICAgICAgICAidGltZXN0YW1wIjogdHJ1ZSwKKyAgICAgICAgImhhbmRsZVByb21pc2VFeGNl
cHRpb24iOiB0cnVlLAorCisgICAgICAgIC8vIEltYWdlIFV0aWxpdGllcwogICAgICAgICAicGxh
dGZvcm1JbWFnZVBhdGgiOiB0cnVlLAogICAgICAgICAid3JhcHBlZFNWR0RvY3VtZW50IjogdHJ1
ZSwKLSAgICAgICAgLy8gdXJsIHV0aWxpdGllcworICAgICAgICAiY3JlYXRlU1ZHRWxlbWVudCI6
IHRydWUsCisgICAgICAgICJ1c2VTVkdTeW1ib2wiOiB0cnVlLAorCisgICAgICAgIC8vIFVSTCBV
dGlsaXRpZXMKICAgICAgICAgImFic29sdXRlVVJMIjogdHJ1ZSwKICAgICAgICAgInBhcnNlUXVl
cnlTdHJpbmciOiB0cnVlLAogICAgICAgICAicGFyc2VVUkwiOiB0cnVlLAogICAgICAgICAicGFy
c2VTZWN1cml0eU9yaWdpbiI6IHRydWUsCiAgICAgICAgICJyZW1vdmVVUkxGcmFnbWVudCI6IHRy
dWUsCi0gICAgICAgIC8vIGV4dGVybmFscwotICAgICAgICAiZXNwcmltYSI6IHRydWUsCisgICAg
ICAgICJkZWNvZGVCYXNlNjRUb0Jsb2IiOiB0cnVlLAorICAgICAgICAicmVsYXRpdmVQYXRoIjog
dHJ1ZSwKKyAgICAgICAgInBhcnNlRGF0YVVSTCI6IHRydWUsCisgICAgICAgICJwYXJzZUxvY2F0
aW9uUXVlcnlQYXJhbWV0ZXJzIjogdHJ1ZSwKICAgICB9LAogICAgICJydWxlcyI6IHsKKyAgICAg
ICAgImNvbW1hLWRhbmdsZSI6IDAsCiAgICAgICAgICJjb25zaXN0ZW50LXJldHVybiI6IDIsCiAg
ICAgICAgICJjdXJseSI6IDAsCi0gICAgICAgICJjb21tYS1kYW5nbGUiOiAwLAogICAgICAgICAi
ZG90LW5vdGF0aW9uIjogMCwKICAgICAgICAgImVxZXFlcSI6IDIsCisgICAgICAgICJrZXl3b3Jk
LXNwYWNpbmciOiAyLAogICAgICAgICAibmV3LWNhcCI6IDAsCiAgICAgICAgICJuZXctcGFyZW5z
IjogMCwKICAgICAgICAgIm5vLWNvbnNvbGUiOiAwLAogICAgICAgICAibm8tY29uc3RhbnQtY29u
ZGl0aW9uIjogMCwKICAgICAgICAgIm5vLWV4dHJhLWJpbmQiOiAyLAorICAgICAgICAibm8tZXh0
cmEtcGFyZW5zIjogWzIsICJhbGwiLCB7Im5lc3RlZEJpbmFyeUV4cHJlc3Npb25zIjogZmFsc2V9
XSwKICAgICAgICAgIm5vLWV4dHJhLXNlbWkiOiAyLAogICAgICAgICAibm8taW5uZXItZGVjbGFy
YXRpb25zIjogMCwKICAgICAgICAgIm5vLW5ldyI6IDAsCkBAIC05NywxNSArMTQxLDEzIEBACiAg
ICAgICAgICJuby1zaGFkb3ciOiAwLAogICAgICAgICAibm8tdHJhaWxpbmctc3BhY2VzIjogMiwK
ICAgICAgICAgIm5vLXVuZGVmIjogMiwKLSAgICAgICAgIm5vLXVudXNlZC12YXJzIjogWzIsIHsi
dmFycyI6ICJhbGwiLCAiYXJncyI6ICJub25lIn1dLAogICAgICAgICAibm8tdW5kZXJzY29yZS1k
YW5nbGUiOiAwLAogICAgICAgICAibm8tdW51c2VkLWV4cHJlc3Npb25zIjogMiwKKyAgICAgICAg
Im5vLXVudXNlZC12YXJzIjogWzIsIHsidmFycyI6ICJhbGwiLCAiYXJncyI6ICJub25lIn1dLAog
ICAgICAgICAibm8tdXNlLWJlZm9yZS1kZWZpbmUiOiAwLAotICAgICAgICAibm8td3JhcC1mdW5j
IjogMiwKICAgICAgICAgInF1b3RlcyI6IFsyLCAiZG91YmxlIl0sCiAgICAgICAgICJzZW1pIjog
MiwKICAgICAgICAgInNwYWNlLWluZml4LW9wcyI6IDIsCi0gICAgICAgICJzcGFjZS1yZXR1cm4t
dGhyb3ctY2FzZSI6IDIsCiAgICAgICAgICJzdHJpY3QiOiAwLAogICAgICAgICAidmFsaWQtdHlw
ZW9mIjogMiwKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBjOTZkNWVlLi5iMDBm
MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxNi0wOS0w
MiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFVwZGF0ZSBFU0xpbnQgcnVsZXMgYW5kIHJ1biBpdCBvdmVyIG1vc3Qgb2YgVXNl
ckludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYxNTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiAuZXNsaW50cmM6CisgICAgICAgIFVwZGF0ZWQgRVNMaW50IHJ1bGVzLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9CYXNlL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9CYXNlL09iamVjdC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvUGxhdGZvcm0u
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9DU1NTdHlsZU1hbmFnZXIuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWlycm9yQ29tcGxldGlvbkNvbnRyb2xsZXIu
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWlycm9yVGV4dEtp
bGxDb250cm9sbGVyLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVi
dWdnZXJNYW5hZ2VyLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRHJh
Z1RvQWRqdXN0Q29udHJvbGxlci5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL1JlcGxheU1hbmFnZXIuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9Tb3VyY2VNYXBNYW5hZ2VyLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvVGltZWxpbmVNYW5hZ2VyLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvVHlwZVRva2VuQW5ub3RhdG9yLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuanM6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9EZWJ1Zy9Cb290c3RyYXAuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9E
ZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJlcG9ydGVyLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU1J1bGUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2Fs
bGluZ0NvbnRleHRUcmVlLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxp
bmdDb250ZXh0VHJlZU5vZGUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ29u
c29sZUNvbW1hbmRSZXN1bHRNZXNzYWdlLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL0Nvb2tpZVN0b3JhZ2VPYmplY3QuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2Rl
bHMvRnJhbWUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0cnkuanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3JkLmpzOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeVRpbWVsaW5lLmpzOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qczoKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9Qcm9maWxlTm9kZS5qczoKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL1NjcmlwdFN5bnRheFRyZWUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvU3RhY2tUcmFjZS5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9UeXBl
U2V0LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1dyYXBwZWRQcm9taXNlLmpz
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZC5qczoK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpz
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvU2NyaXB0UHJvZmlsZXJPYnNlcnZlci5qczoK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QvRnJvbnRlbmRUZXN0SGFybmVzcy5qczoKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QvSW5zcGVjdG9yUHJvdG9jb2wuanM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9UZXN0L1Byb3RvY29sVGVzdEhhcm5lc3MuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0
L1Rlc3RIYXJuZXNzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0U3VpdGUu
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Fc3ByaW1hRm9y
bWF0dGVyLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3Qv
SGVhcFNuYXBzaG90V29ya2VyLmpzOgorCiAyMDE2LTA5LTAyICBKb2hhbiBLLiBKZW5zZW4gIDxq
b2hhbl9qZW5zZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5ldHdvcmtU
aW1lbGluZU92ZXJ2aWV3R3JhcGguTWluaW11bUJhclBhZGRpbmdUaW1lIGlzIHVuZGVmaW5lZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9JbnNw
ZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQmFzZS9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzCmluZGV4IGMzOTIzNDEuLjFl
NzE4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMKQEAgLTMw
LDEzICszMCw2IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWlmICghd2luZG93LlN5bWJvbCkg
ewotICAgIHdpbmRvdy5TeW1ib2wgPSBmdW5jdGlvbihzdHJpbmcpCi0gICAgewotICAgICAgICBy
ZXR1cm4gc3RyaW5nOwotICAgIH0KLX0KLQogaWYgKCF3aW5kb3cuSW5zcGVjdG9yRnJvbnRlbmRI
b3N0KSB7CiAgICAgV2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIgPSBmdW5j
dGlvbigpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzCmluZGV4IGNmOGM5OGYuLjM5MzFiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTQ3Miw3ICs0NzIsNyBA
QCBXZWJJbnNwZWN0b3IuaXNUYWJUeXBlQWxsb3dlZCA9IGZ1bmN0aW9uKHRhYlR5cGUpCiBXZWJJ
bnNwZWN0b3Iua25vd25UYWJDbGFzc2VzID0gZnVuY3Rpb24oKQogewogICAgIHJldHVybiBuZXcg
U2V0KHRoaXMuX2tub3duVGFiQ2xhc3Nlc0J5VHlwZS52YWx1ZXMoKSk7Ci19Cit9OwogCiBXZWJJ
bnNwZWN0b3IuX3Nob3dPcGVuUmVzb3VyY2VEaWFsb2cgPSBmdW5jdGlvbigpCiB7CkBAIC00ODMs
NyArNDgzLDcgQEAgV2ViSW5zcGVjdG9yLl9zaG93T3BlblJlc291cmNlRGlhbG9nID0gZnVuY3Rp
b24oKQogICAgICAgICByZXR1cm47CiAKICAgICB0aGlzLl9vcGVuUmVzb3VyY2VEaWFsb2cucHJl
c2VudCh0aGlzLl9jb250ZW50RWxlbWVudCk7Ci19Cit9OwogCiBXZWJJbnNwZWN0b3IuX2NyZWF0
ZVRhYkNvbnRlbnRWaWV3Rm9yVHlwZSA9IGZ1bmN0aW9uKHRhYlR5cGUpCiB7CkBAIC01NjEsNyAr
NTYxLDcgQEAgV2ViSW5zcGVjdG9yLl90cnlUb1Jlc3RvcmVQZW5kaW5nVGFicyA9IGZ1bmN0aW9u
KCkKICAgICB0aGlzLl9wZW5kaW5nT3BlblRhYnMgPSBzdGlsbFBlbmRpbmdPcGVuVGFiczsKIAog
ICAgIHRoaXMuX3VwZGF0ZU5ld1RhYkJ1dHRvblN0YXRlKCk7Ci19Cit9OwogCiBXZWJJbnNwZWN0
b3Iuc2hvd05ld1RhYlRhYiA9IGZ1bmN0aW9uKHNob3VsZEFuaW1hdGUpCiB7CkBAIC02MzIsNyAr
NjMyLDcgQEAgV2ViSW5zcGVjdG9yLnJlZ2lzdGVyVGFiQ2xhc3MgPSBmdW5jdGlvbih0YWJDbGFz
cykKIAogICAgIHRoaXMuX3RyeVRvUmVzdG9yZVBlbmRpbmdUYWJzKCk7CiAgICAgdGhpcy5ub3Rp
ZmljYXRpb25zLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTm90aWZpY2F0
aW9uLlRhYlR5cGVzQ2hhbmdlZCk7Ci19Cit9OwogCiBXZWJJbnNwZWN0b3IuYWN0aXZhdGVFeHRy
YURvbWFpbnMgPSBmdW5jdGlvbihkb21haW5zKQogewpAQCAtNzI2LDcgKzcyNiw3IEBAIFdlYklu
c3BlY3Rvci51cGRhdGVWaXNpYmlsaXR5U3RhdGUgPSBmdW5jdGlvbih2aXNpYmxlKQogewogICAg
IHRoaXMudmlzaWJsZSA9IHZpc2libGU7CiAgICAgdGhpcy5ub3RpZmljYXRpb25zLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTm90aWZpY2F0aW9uLlZpc2liaWxpdHlTdGF0
ZURpZENoYW5nZSk7Ci19Cit9OwogCiBXZWJJbnNwZWN0b3IuaGFuZGxlUG9zc2libGVMaW5rQ2xp
Y2sgPSBmdW5jdGlvbihldmVudCwgZnJhbWUsIGFsd2F5c09wZW5FeHRlcm5hbGx5KQogewpAQCAt
OTkwLDcgKzk5MCw3IEBAIFdlYkluc3BlY3Rvci51bmxvY2FsaXplZFN0cmluZyA9IGZ1bmN0aW9u
KHN0cmluZykKICAgICAvLyAoc3VjaCBhcyBpbiBEZWJ1ZyBVSSkgb3IgaW4gdGV4dCB0aGF0IGlz
IHN0YW5kYXJkaXplZCBpbiBFbmdsaXNoLgogICAgIC8vIEZvciBleGFtcGxlLCBDU1MgcHJvcGVy
dHkgbmFtZXMgYW5kIHZhbHVlcyBhcmUgbmV2ZXIgbG9jYWxpemVkLgogICAgIHJldHVybiBzdHJp
bmc7Ci19Cit9OwogCiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcgPSBmdW5jdGlvbihzdHJpbmcsIHZh
cmFyZykKIHsKQEAgLTE0NzUsNyArMTQ3NSw3IEBAIFdlYkluc3BlY3Rvci5fY29udGV4dE1lbnVS
ZXF1ZXN0ZWQgPSBmdW5jdGlvbihldmVudCkKIFdlYkluc3BlY3Rvci5pc0RlYnVnVUlFbmFibGVk
ID0gZnVuY3Rpb24oKQogewogICAgIHJldHVybiBXZWJJbnNwZWN0b3Iuc2hvd0RlYnVnVUlTZXR0
aW5nICYmIFdlYkluc3BlY3Rvci5zaG93RGVidWdVSVNldHRpbmcudmFsdWU7Ci19Cit9OwogCiBX
ZWJJbnNwZWN0b3IuX3VuZG9jayA9IGZ1bmN0aW9uKGV2ZW50KQogewpAQCAtMTkzOCw3ICsxOTM4
LDcgQEAgV2ViSW5zcGVjdG9yLl9maW5kID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgdmFyIGNvbnRl
bnRCcm93c2VyID0gdGhpcy5fZm9jdXNlZE9yVmlzaWJsZUNvbnRlbnRCcm93c2VyKCk7CiAgICAg
aWYgKCFjb250ZW50QnJvd3NlciB8fCB0eXBlb2YgY29udGVudEJyb3dzZXIuaGFuZGxlRmluZEV2
ZW50ICE9PSAiZnVuY3Rpb24iKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBjb250ZW50
QnJvd3Nlci5oYW5kbGVGaW5kRXZlbnQoZXZlbnQpOwogfTsKIApAQCAtMjAyNywxNCArMjAyNywx
NCBAQCBXZWJJbnNwZWN0b3IuX3Jlc2V0Wm9vbSA9IGZ1bmN0aW9uKGV2ZW50KQogV2ViSW5zcGVj
dG9yLl96b29tRmFjdG9yID0gZnVuY3Rpb24oKQogewogICAgIHJldHVybiB0aGlzLl96b29tRmFj
dG9yU2V0dGluZy52YWx1ZTsKLX0KK307CiAKIFdlYkluc3BlY3Rvci5fc2V0Wm9vbUZhY3RvciA9
IGZ1bmN0aW9uKGZhY3RvcikKIHsKICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2V0Wm9vbUZh
Y3RvcihmYWN0b3IpOwogICAgIC8vIFJvdW5kLXRyaXAgdGhyb3VnaCB0aGUgZnJvbnRlbmQgaG9z
dCBBUEkgaW4gY2FzZSB0aGUgcmVxdWVzdGVkIGZhY3RvciBpcyBub3QgdXNlZC4KICAgICB0aGlz
Ll96b29tRmFjdG9yU2V0dGluZy52YWx1ZSA9IEluc3BlY3RvckZyb250ZW5kSG9zdC56b29tRmFj
dG9yKCk7Ci19Cit9OwogCiBXZWJJbnNwZWN0b3IuX3Nob3dUYWJBdEluZGV4ID0gZnVuY3Rpb24o
aSwgZXZlbnQpCiB7CkBAIC0yMTA1LDEzICsyMTA1LDggQEAgV2ViSW5zcGVjdG9yLmNyZWF0ZU1l
c3NhZ2VUZXh0VmlldyA9IGZ1bmN0aW9uKG1lc3NhZ2UsIGlzRXJyb3IpCiAKIFdlYkluc3BlY3Rv
ci5jcmVhdGVHb1RvQXJyb3dCdXR0b24gPSBmdW5jdGlvbigpCiB7Ci0gICAgZnVuY3Rpb24gc3Rv
cFByb3BhZ2F0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9u
KCkKLSAgICB9Ci0KICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0
dG9uIik7Ci0gICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHN0b3BQcm9w
YWdhdGlvbiwgdHJ1ZSk7CisgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIs
IChldmVudCkgPT4geyBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgfSwgdHJ1ZSk7CiAgICAgYnV0
dG9uLmNsYXNzTmFtZSA9ICJnby10by1hcnJvdyI7CiAgICAgYnV0dG9uLnRhYkluZGV4ID0gLTE7
CiAgICAgcmV0dXJuIGJ1dHRvbjsKQEAgLTIyMjEsNyArMjIxNiw3IEBAIFdlYkluc3BlY3Rvci5s
aW5raWZ5U3RyaW5nQXNGcmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIgPSBmdW5jdGlvbihzdHJp
bmcsIGxpbmtpCiAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQobm9uTGluayk7CiAKICAgICAgICAg
dmFyIHRpdGxlID0gbGlua1N0cmluZzsKLSAgICAgICAgdmFyIHJlYWxVUkwgPSAobGlua1N0cmlu
Zy5zdGFydHNXaXRoKCJ3d3cuIikgPyAiaHR0cDovLyIgKyBsaW5rU3RyaW5nIDogbGlua1N0cmlu
Zyk7CisgICAgICAgIHZhciByZWFsVVJMID0gbGlua1N0cmluZy5zdGFydHNXaXRoKCJ3d3cuIikg
PyAiaHR0cDovLyIgKyBsaW5rU3RyaW5nIDogbGlua1N0cmluZzsKICAgICAgICAgdmFyIGxpbmVD
b2x1bW5NYXRjaCA9IGxpbmVDb2x1bW5SZWdFeC5leGVjKHJlYWxVUkwpOwogICAgICAgICBpZiAo
bGluZUNvbHVtbk1hdGNoKQogICAgICAgICAgICAgcmVhbFVSTCA9IHJlYWxVUkwuc3Vic3RyaW5n
KDAsIHJlYWxVUkwubGVuZ3RoIC0gbGluZUNvbHVtbk1hdGNoWzBdLmxlbmd0aCk7CkBAIC0yMjcx
LDcgKzIyNjYsNyBAQCBXZWJJbnNwZWN0b3IuY3JlYXRlUmVzb3VyY2VMaW5rID0gZnVuY3Rpb24o
cmVzb3VyY2UsIGNsYXNzTmFtZSkKICAgICBsaW5rTm9kZS50ZXh0Q29udGVudCA9IChyZXNvdXJj
ZS51cmxDb21wb25lbnRzLmxhc3RQYXRoQ29tcG9uZW50IHx8IHJlc291cmNlLnVybCkuaW5zZXJ0
V29yZEJyZWFrQ2hhcmFjdGVycygpOwogICAgIGxpbmtOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgaGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CiAgICAgcmV0dXJuIGxpbmtOb2RlOwotfQor
fTsKIAogV2ViSW5zcGVjdG9yLl91bmRvS2V5Ym9hcmRTaG9ydGN1dCA9IGZ1bmN0aW9uKGV2ZW50
KQogewpAQCAtMjQyMCw3ICsyNDE1LDcgQEAgV2ViSW5zcGVjdG9yLmNhbkFyY2hpdmVNYWluRnJh
bWUgPSBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghV2ViSW5z
cGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZSB8fCAhV2ViSW5zcGVjdG9yLmZy
YW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS5tYWluUmVzb3VyY2UpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5SZXNv
dXJjZS50eXBlRnJvbU1JTUVUeXBlKFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5t
YWluRnJhbWUubWFpblJlc291cmNlLm1pbWVUeXBlKSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNl
LlR5cGUuRG9jdW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9PYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL09iamVjdC5qcwppbmRleCA4N2MxOWY2Li4yMTE2MzFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdC5qcwpAQCAt
MzgsMTEgKzM4LDExIEBAIFdlYkluc3BlY3Rvci5PYmplY3QgPSBjbGFzcyBXZWJJbnNwZWN0b3JP
YmplY3QKIAogICAgICAgICBjb25zb2xlLmFzc2VydChldmVudFR5cGUsICJPYmplY3QuYWRkRXZl
bnRMaXN0ZW5lcjogaW52YWxpZCBldmVudCB0eXBlICIsIGV2ZW50VHlwZSwgIihsaXN0ZW5lcjog
IiwgbGlzdGVuZXIsICJ0aGlzT2JqZWN0OiAiLCB0aGlzT2JqZWN0LCAiKSIpOwogICAgICAgICBp
ZiAoIWV2ZW50VHlwZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBs
aXN0ZW5lcjsKIAogICAgICAgICBjb25zb2xlLmFzc2VydChsaXN0ZW5lciwgIk9iamVjdC5hZGRF
dmVudExpc3RlbmVyOiBpbnZhbGlkIGxpc3RlbmVyICIsIGxpc3RlbmVyLCAiKGV2ZW50IHR5cGU6
ICIsIGV2ZW50VHlwZSwgInRoaXNPYmplY3Q6ICIsIHRoaXNPYmplY3QsICIpIik7CiAgICAgICAg
IGlmICghbGlzdGVuZXIpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4g
bGlzdGVuZXI7CiAKICAgICAgICAgaWYgKCF0aGlzLl9saXN0ZW5lcnMpCiAgICAgICAgICAgICB0
aGlzLl9saXN0ZW5lcnMgPSBuZXcgTWFwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1BsYXRmb3JtLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9QbGF0Zm9ybS5qcwppbmRleCBlM2RkY2Y3Li5iNDQwYzNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1Bs
YXRmb3JtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2Uv
UGxhdGZvcm0uanMKQEAgLTQzLDcgKzQzLDcgQEAgV2ViSW5zcGVjdG9yLlBsYXRmb3JtID0gewog
ICAgIGlmIChvc1ZlcnNpb25NYXRjaCAmJiBvc1ZlcnNpb25NYXRjaFsxXSA9PT0gIjEwIikgewog
ICAgICAgICBXZWJJbnNwZWN0b3IuUGxhdGZvcm0udmVyc2lvbi5iYXNlID0gMTA7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5QbGF0Zm9ybS52ZXJzaW9uLnJlbGVhc2UgPSBwYXJzZUludChvc1ZlcnNp
b25NYXRjaFsyXSk7Ci0gICAgICAgIHN3aXRjaChvc1ZlcnNpb25NYXRjaFsyXSkgeworICAgICAg
ICBzd2l0Y2ggKG9zVmVyc2lvbk1hdGNoWzJdKSB7CiAgICAgICAgICAgICBjYXNlICIxMSI6CiAg
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlBsYXRmb3JtLnZlcnNpb24ubmFtZSA9ICJlbC1j
YXBpdGFuIjsKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qcwppbmRleCAyNzgxOTAyLi5hY2Fh
N2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L1NldHRpbmcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9TZXR0aW5nLmpzCkBAIC02MSw3ICs2MSw3IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5nID0gY2xh
c3MgU2V0dGluZyBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKCF3aW5k
b3cuSW5zcGVjdG9yVGVzdCAmJiB3aW5kb3cubG9jYWxTdG9yYWdlICYmIHRoaXMuX2xvY2FsU3Rv
cmFnZUtleSBpbiB3aW5kb3cubG9jYWxTdG9yYWdlKSB7CiAgICAgICAgICAgICB0cnkgewogICAg
ICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gSlNPTi5wYXJzZSh3aW5kb3cubG9jYWxTdG9yYWdl
W3RoaXMuX2xvY2FsU3RvcmFnZUtleV0pOwotICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAg
ICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvdy5sb2Nh
bFN0b3JhZ2VbdGhpcy5fbG9jYWxTdG9yYWdlS2V5XTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtODMsNyArODMsNyBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZyA9IGNsYXNzIFNldHRpbmcg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB3
aW5kb3cubG9jYWxTdG9yYWdlW3RoaXMuX2xvY2FsU3RvcmFnZUtleV07CiAgICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlW3RoaXMuX2xv
Y2FsU3RvcmFnZUtleV0gPSBKU09OLnN0cmluZ2lmeSh0aGlzLl92YWx1ZSk7Ci0gICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAg
ICBjb25zb2xlLmVycm9yKCJFcnJvciBzYXZpbmcgc2V0dGluZyB3aXRoIG5hbWU6ICIgKyB0aGlz
Ll9uYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ1NTU3R5bGVNYW5hZ2VyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ1NTU3R5
bGVNYW5hZ2VyLmpzCmluZGV4IGQyZDY5ODEuLjI3ODQ0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NTU1N0eWxlTWFuYWdlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9D
U1NTdHlsZU1hbmFnZXIuanMKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNYW5hZ2VyID0gY2xhc3MgQ1NTU3R5bGVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogICAgICAgICAgICAgaWYgKCFzdHlsZVNoZWV0LnVybCkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHN0eWxlU2hlZXQucGFyZW50RnJh
bWUucmVzb3VyY2VGb3JVUkwoc3R5bGVTaGVldC51cmwpOzsKKyAgICAgICAgICAgIHZhciByZXNv
dXJjZSA9IHN0eWxlU2hlZXQucGFyZW50RnJhbWUucmVzb3VyY2VGb3JVUkwoc3R5bGVTaGVldC51
cmwpOwogICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0NvZGVNaXJyb3JDb21wbGV0aW9uQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JDb21wbGV0aW9uQ29u
dHJvbGxlci5qcwppbmRleCA2MTdmZjJhLi43NjZlZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWlycm9yQ29tcGxldGlv
bkNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvQ29kZU1pcnJvckNvbXBsZXRpb25Db250cm9sbGVyLmpzCkBAIC00MTYsNyAr
NDE2LDYgQEAgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JDb21wbGV0aW9uQ29udHJvbGxlciA9IGNs
YXNzIENvZGVNaXJyb3JDb21wbGV0aW9uQ29udHJvbGwKIAogICAgICAgICB2YXIgYnJhY2tldFN0
YWNrID0gW107CiAgICAgICAgIHZhciBicmFja2V0T2Zmc2V0U3RhY2sgPSBbXTsKLSAgICAgICAg
dmFyIGxhc3RDbG9zZUJyYWNrZXRPZmZzZXQgPSBOYU47CiAKICAgICAgICAgdmFyIHN0YXJ0T2Zm
c2V0ID0gZW5kT2Zmc2V0OwogICAgICAgICB2YXIgZmlyc3RPZmZzZXQgPSBlbmRPZmZzZXQgKyBk
aXJlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9Db2RlTWlycm9yVGV4dEtpbGxDb250cm9sbGVyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ29kZU1pcnJvclRleHRLaWxs
Q29udHJvbGxlci5qcwppbmRleCBlNDUzNjMxLi5hMzdlMjAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWlycm9yVGV4dEtp
bGxDb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JUZXh0S2lsbENvbnRyb2xsZXIuanMKQEAgLTEwMCw3ICsx
MDAsNyBAQCBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclRleHRLaWxsQ29udHJvbGxlciA9IGNsYXNz
IENvZGVNaXJyb3JUZXh0S2lsbENvbnRyb2xsZXIgZQogICAgICAgICBsZXQga2lsbGVkVGV4dDsK
ICAgICAgICAgaWYgKGNoYW5nZS50by5saW5lID09PSBjaGFuZ2UuZnJvbS5saW5lICsgMSAmJiBj
aGFuZ2UucmVtb3ZlZC5sZW5ndGggPT09IDIpIHsKICAgICAgICAgICAgIC8vIEFuIGVudGlyZSBs
aW5lIHdhcyBkZWxldGVkLCBpbmNsdWRpbmcgbmV3bGluZSAoQ21kLUQpLgotICAgICAgICAgICAg
aWYgKGNoYW5nZS5yZW1vdmVkWzBdLmxlbmd0aCAmJiAhY2hhbmdlLnJlbW92ZWRbMV0ubGVuZ3Ro
KSAKKyAgICAgICAgICAgIGlmIChjaGFuZ2UucmVtb3ZlZFswXS5sZW5ndGggJiYgIWNoYW5nZS5y
ZW1vdmVkWzFdLmxlbmd0aCkKICAgICAgICAgICAgICAgICBraWxsZWRUZXh0ID0gY2hhbmdlLnJl
bW92ZWRbMF0gKyAiXG4iOwogICAgICAgICAgICAgLy8gQSBuZXdsaW5lIHdhcyBraWxsZWQgYnkg
aXRzZWxmIChDdHJsLUspLgogICAgICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdn
ZXJNYW5hZ2VyLmpzCmluZGV4IGM2MTRiNzQuLmFkODkyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9E
ZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTI4NCw3ICsyODQsNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogICAgICAgICBjb25zb2xlLmFzc2VydChzb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5z
cGVjdG9yLlJlc291cmNlIHx8IHNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2Ny
aXB0KTsKIAogICAgICAgICBpZiAoc291cmNlQ29kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5T
b3VyY2VNYXBSZXNvdXJjZSkgewotICAgICAgICAgICAgdmFyIG1hcHBlZFJlc291cmNlQnJlYWtw
b2ludHMgPSBbXTsKICAgICAgICAgICAgIHZhciBvcmlnaW5hbFNvdXJjZUNvZGVCcmVha3BvaW50
cyA9IHRoaXMuYnJlYWtwb2ludHNGb3JTb3VyY2VDb2RlKHNvdXJjZUNvZGUuc291cmNlTWFwLm9y
aWdpbmFsU291cmNlQ29kZSk7CiAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxTb3VyY2VDb2Rl
QnJlYWtwb2ludHMuZmlsdGVyKGZ1bmN0aW9uKGJyZWFrcG9pbnQpIHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gYnJlYWtwb2ludC5zb3VyY2VDb2RlTG9jYXRpb24uZGlzcGxheVNvdXJjZUNvZGUg
PT09IHNvdXJjZUNvZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9EcmFnVG9BZGp1c3RDb250cm9sbGVyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRHJhZ1RvQWRqdXN0Q29udHJv
bGxlci5qcwppbmRleCBhODYwMDllLi40YWQzYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EcmFnVG9BZGp1c3RDb250cm9sbGVy
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0RyYWdUb0FkanVzdENvbnRyb2xsZXIuanMKQEAgLTEwOCw3ICsxMDgsNyBAQCBXZWJJbnNwZWN0
b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxlciA9IGNsYXNzIERyYWdUb0FkanVzdENvbnRyb2xsZXIK
IAogICAgIGhhbmRsZUV2ZW50KGV2ZW50KQogICAgIHsKLSAgICAgICAgc3dpdGNoKGV2ZW50LnR5
cGUpIHsKKyAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7CiAgICAgICAgIGNhc2UgIm1vdXNl
ZW50ZXIiOgogICAgICAgICAgICAgaWYgKCF0aGlzLl9kcmFnZ2luZykgewogICAgICAgICAgICAg
ICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZHJhZ1RvQWRq
dXN0Q29udHJvbGxlckNhbkJlQWN0aXZhdGVkID09PSAiZnVuY3Rpb24iKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvUmVwbGF5TWFu
YWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L1JlcGxheU1hbmFnZXIuanMKaW5kZXggYjVjMDhlMi4uYWIwNGRkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvUmVwbGF5TWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9SZXBsYXlNYW5hZ2VyLmpzCkBAIC0zNDEsNyArMzQxLDcgQEAgV2ViSW5zcGVjdG9yLlJlcGxh
eU1hbmFnZXIgPSBjbGFzcyBSZXBsYXlNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVj
dAogICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1hbmFnZXIuc2Vzc2lvblN0YXRlICE9
PSBXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5TZXNzaW9uU3RhdGUuQ2FwdHVyaW5nKTsKICAg
ICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChtYW5hZ2VyLnNlZ21lbnRTdGF0ZSA9PT0gV2Vi
SW5zcGVjdG9yLlJlcGxheU1hbmFnZXIuU2VnbWVudFN0YXRlLkxvYWRlZCB8fCBtYW5hZ2VyLnNl
Z21lbnRTdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIuU2VnbWVudFN0YXRlLlVu
bG9hZGVkKTsKIAotICAgICAgICAgICAgICAgIHJldHVybiBSZXBsYXlBZ2VudC5yZXBsYXlUb0Nv
bXBsZXRpb24obWFuYWdlci5wbGF5YmFja1NwZWVkID09PSBXZWJJbnNwZWN0b3IuUmVwbGF5TWFu
YWdlci5QbGF5YmFja1NwZWVkLkZhc3RGb3J3YXJkKQorICAgICAgICAgICAgICAgIHJldHVybiBS
ZXBsYXlBZ2VudC5yZXBsYXlUb0NvbXBsZXRpb24obWFuYWdlci5wbGF5YmFja1NwZWVkID09PSBX
ZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5QbGF5YmFja1NwZWVkLkZhc3RGb3J3YXJkKTsKICAg
ICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgY29u
c29sZS5lcnJvcigiRmFpbGVkIHRvIHN0YXJ0IHBsYXliYWNrIHRvIGNvbXBsZXRpb246ICIsIGVy
cm9yKTsKICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1NvdXJjZU1hcE1hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Tb3Vy
Y2VNYXBNYW5hZ2VyLmpzCmluZGV4IDMyMTZiNjIuLjZiYjhjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1NvdXJjZU1hcE1hbmFn
ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvU291cmNlTWFwTWFuYWdlci5qcwpAQCAtMTEzLDcgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5T
b3VyY2VNYXBNYW5hZ2VyID0gY2xhc3MgU291cmNlTWFwTWFuYWdlciBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplCiAgICAgICAgICAgICAgICAgdmFyIGJhc2VVUkwgPSBzb3VyY2VNYXBVUkwuc3Rh
cnRzV2l0aCgiZGF0YToiKSA/IG9yaWdpbmFsU291cmNlQ29kZS51cmwgOiBzb3VyY2VNYXBVUkw7
CiAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcCA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNl
TWFwKGJhc2VVUkwsIHBheWxvYWQsIG9yaWdpbmFsU291cmNlQ29kZSk7CiAgICAgICAgICAgICAg
ICAgdGhpcy5fbG9hZEFuZFBhcnNlU3VjY2VlZGVkKHNvdXJjZU1hcFVSTCwgc291cmNlTWFwKTsK
LSAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAg
ICAgICAgICAgICAgIHRoaXMuX2xvYWRBbmRQYXJzZUZhaWxlZChzb3VyY2VNYXBVUkwpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMK
aW5kZXggNjBmM2Y5NS4uYTdkMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdl
ci5qcwpAQCAtOTg5LDEyICs5ODksMTIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlciA9
IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAg
IF9tZXJnZVNjcmlwdFByb2ZpbGVSZWNvcmRzKCkKICAgICB7Ci0gICAgICAgIGxldCBuZXh0UmVj
b3JkID0gZnVuY3Rpb24obGlzdCkgeyByZXR1cm4gbGlzdC5zaGlmdCgpIHx8IG51bGw7IH0KKyAg
ICAgICAgbGV0IG5leHRSZWNvcmQgPSBmdW5jdGlvbihsaXN0KSB7IHJldHVybiBsaXN0LnNoaWZ0
KCkgfHwgbnVsbDsgfTsKICAgICAgICAgbGV0IG5leHRXZWJUaW1lbGluZVJlY29yZCA9IG5leHRS
ZWNvcmQuYmluZChudWxsLCB0aGlzLl93ZWJUaW1lbGluZVNjcmlwdFJlY29yZHNFeHBlY3RpbmdT
Y3JpcHRQcm9maWxlckV2ZW50cyk7CiAgICAgICAgIGxldCBuZXh0U2NyaXB0UHJvZmlsZXJSZWNv
cmQgPSBuZXh0UmVjb3JkLmJpbmQobnVsbCwgdGhpcy5fc2NyaXB0UHJvZmlsZXJSZWNvcmRzKTsK
ICAgICAgICAgbGV0IHJlY29yZEVuY2xvc2VzUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkMSwgcmVj
b3JkMikgewogICAgICAgICAgICAgcmV0dXJuIHJlY29yZDEuc3RhcnRUaW1lIDw9IHJlY29yZDIu
c3RhcnRUaW1lICYmIHJlY29yZDEuZW5kVGltZSA+PSByZWNvcmQyLmVuZFRpbWU7Ci0gICAgICAg
IH0KKyAgICAgICAgfTsKIAogICAgICAgICBsZXQgd2ViUmVjb3JkID0gbmV4dFdlYlRpbWVsaW5l
UmVjb3JkKCk7CiAgICAgICAgIGxldCBwcm9maWxlclJlY29yZCA9IG5leHRTY3JpcHRQcm9maWxl
clJlY29yZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvVHlwZVRva2VuQW5ub3RhdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVHlwZVRva2VuQW5ub3RhdG9yLmpzCmluZGV4
IDMwOTY0ZWYuLjdiODIwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL1R5cGVUb2tlbkFubm90YXRvci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UeXBlVG9rZW5Bbm5vdGF0
b3IuanMKQEAgLTEwMCw3ICsxMDAsNyBAQCBXZWJJbnNwZWN0b3IuVHlwZVRva2VuQW5ub3RhdG9y
ID0gY2xhc3MgVHlwZVRva2VuQW5ub3RhdG9yIGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogICAgICAg
ICBpZiAoIWZ1bmN0aW9uUmV0dXJuVHlwZSB8fCAhZnVuY3Rpb25SZXR1cm5UeXBlLnZhbGlkKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIElmIGEgZnVuY3Rpb24gZG9lcyBub3Qg
aGF2ZSBhbiBleHBsaWNpdCByZXR1cm4gc3RhdGVtZW50IHdpdGggYW4gYXJndW1lbnQgKGkuZSwg
InJldHVybiB4OyIgaW5zdGVhZCBvZiAicmV0dXJuOyIpIAorICAgICAgICAvLyBJZiBhIGZ1bmN0
aW9uIGRvZXMgbm90IGhhdmUgYW4gZXhwbGljaXQgcmV0dXJuIHN0YXRlbWVudCB3aXRoIGFuIGFy
Z3VtZW50IChpLmUsICJyZXR1cm4geDsiIGluc3RlYWQgb2YgInJldHVybjsiKQogICAgICAgICAv
LyB0aGVuIGRvbid0IHNob3cgYSByZXR1cm4gdHlwZSB1bmxlc3Mgd2UgdGhpbmsgaXQncyBhIGNv
bnN0cnVjdG9yLgogICAgICAgICB2YXIgc2NyaXB0U3ludGF4VHJlZSA9IHRoaXMuX3NjcmlwdC5f
c2NyaXB0U3ludGF4VHJlZTsKICAgICAgICAgaWYgKCFub2RlLmF0dGFjaG1lbnRzLl9fdHlwZVRv
a2VuICYmIChzY3JpcHRTeW50YXhUcmVlLmNvbnRhaW5zTm9uRW1wdHlSZXR1cm5TdGF0ZW1lbnQo
bm9kZS5ib2R5KSB8fCAhZnVuY3Rpb25SZXR1cm5UeXBlLnR5cGVTZXQuaXNDb250YWluZWRJbihX
ZWJJbnNwZWN0b3IuVHlwZVNldC5UeXBlQml0LlVuZGVmaW5lZCkpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9WaXN1YWxTdHls
ZUNvbXBsZXRpb25zQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL1Zpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyLmpzCmlu
ZGV4IGNhOTk5YTkuLmQyYTQwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Zpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVy
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L1Zpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyLmpzCkBAIC01MSw3ICs1MSw3IEBAIFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlciA9IGNsYXNzIFZpc3Vh
bFN0eWxlQ29tcGxldGlvbnNDb250CiAgICAgZ2V0IGN1cnJlbnRDb21wbGV0aW9uKCkKICAgICB7
CiAgICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0aW9ucykKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIHJldHVybiBudWxsOwogCiAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50
Q29tcGxldGlvbnNbdGhpcy5fc2VsZWN0ZWRDb21wbGV0aW9uSW5kZXhdIHx8IG51bGw7CiAgICAg
fQpAQCAtMTI5LDQgKzEyOSw0IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25z
Q29udHJvbGxlciA9IGNsYXNzIFZpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250CiAKIFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlci5FdmVudCA9IHsKICAgICBDb21w
bGV0aW9uU2VsZWN0ZWQ6ICJ2aXN1YWwtc3R5bGUtY29tcGxldGlvbnMtY29udHJvbGxlci1jb21w
bGV0aW9uLXNlbGVjdGVkIgotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0RlYnVnL0Jvb3RzdHJhcC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0RlYnVnL0Jvb3RzdHJhcC5qcwppbmRleCBmMjYxZmEwLi5mNTRkOTNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9C
b290c3RyYXAuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVi
dWcvQm9vdHN0cmFwLmpzCkBAIC01OCw0ICs1OCw0IEBAIFdlYkluc3BlY3Rvci5ydW5Cb290c3Ry
YXBPcGVyYXRpb25zID0gZnVuY3Rpb24oKSB7CiAgICAgfSk7CiAKICAgICB1cGRhdGVEZWJ1Z1VJ
KCk7Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvRGVidWcvVW5jYXVnaHRFeGNlcHRpb25SZXBvcnRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnL1VuY2F1Z2h0RXhjZXB0aW9uUmVwb3J0ZXIuanMKaW5k
ZXggYzVmZTY4Ni4uNDNjZTA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvRGVidWcvVW5jYXVnaHRFeGNlcHRpb25SZXBvcnRlci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJl
cG9ydGVyLmpzCkBAIC0xNjYsNyArMTY2LDcgQEAgZnVuY3Rpb24gY3JlYXRlRXJyb3JTaGVldCgp
IHsKIAogICAgICAgICBpZiAoZW50cnkuZGV0YWlscykgewogICAgICAgICAgICAgbGluZXMucHVz
aCgiIik7Ci0gICAgICAgICAgICBsaW5lcy5wdXNoKCJBZGRpdGlvbmFsIERldGFpbHM6IikKKyAg
ICAgICAgICAgIGxpbmVzLnB1c2goIkFkZGl0aW9uYWwgRGV0YWlsczoiKTsKICAgICAgICAgICAg
IGZvciAobGV0IGtleSBpbiBlbnRyeS5kZXRhaWxzKSB7CiAgICAgICAgICAgICAgICAgbGV0IHZh
bHVlID0gZW50cnkuZGV0YWlsc1trZXldOwogICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goYCR7
aW5kZW50fSR7a2V5fSAtLT4gJHt2YWx1ZX1gKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKaW5kZXggZjE1Y2EzYy4uZjE0
MTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0NTU1J1bGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU1J1bGUuanMKQEAgLTE3Niw3ICsxNzYsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTUnVs
ZSA9IGNsYXNzIENTU1J1bGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgZ2V0IG1l
ZGlhVGV4dCgpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX21lZGlhTGlzdC5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gIiI7CiAKICAgICAgICAgbGV0
IG1lZGlhVGV4dCA9ICIiOwogICAgICAgICBmb3IgKGxldCBtZWRpYSBvZiB0aGlzLl9tZWRpYUxp
c3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcwppbmRleCA2MjM0OGU3Li4yZmFiMDUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q2FsbGluZ0NvbnRleHRUcmVlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMKQEAgLTEwNiw3ICsxMDYsNyBAQCBX
ZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlID0gY2xhc3MgQ2FsbGluZ0NvbnRleHRUcmVl
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogCiAgICAgICAgIHRoaXMuX3Jvb3QuZm9yRWFjaENoaWxk
KChjaGlsZCkgPT4gewogICAgICAgICAgICAgaWYgKGNoaWxkLmhhc1N0YWNrVHJhY2VJblRpbWVS
YW5nZShzdGFydFRpbWUsIGVuZFRpbWUpKQotICAgICAgICAgICAgICAgIHJvb3RzLnB1c2goY2hp
bGQudG9DUFVQcm9maWxlTm9kZShudW1TYW1wbGVzSW5UaW1lUmFuZ2UsIHN0YXJ0VGltZSwgZW5k
VGltZSkpOyAKKyAgICAgICAgICAgICAgICByb290cy5wdXNoKGNoaWxkLnRvQ1BVUHJvZmlsZU5v
ZGUobnVtU2FtcGxlc0luVGltZVJhbmdlLCBzdGFydFRpbWUsIGVuZFRpbWUpKTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgY3B1UHJvZmlsZS5yb290Tm9kZXMgPSByb290czsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4
dFRyZWVOb2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NhbGxpbmdDb250ZXh0VHJlZU5vZGUuanMKaW5kZXggNTJhNzE2MC4uZGI4MTY1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdD
b250ZXh0VHJlZU5vZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5vZGUuanMKQEAgLTcyLDcgKzcyLDcgQEAgV2Vi
SW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZU5vZGUgPSBjbGFzcyBDYWxsaW5nQ29udGV4dFRy
ZWVOb2RlIGV4dGVuZHMgV2ViSW4KICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQotICAgIAorCiAgICAgaGFzU3RhY2tUcmFjZUluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5k
VGltZSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0VGltZSA8PSBlbmRUaW1l
KTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBXZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlTm9k
ZSA9IGNsYXNzIENhbGxpbmdDb250ZXh0VHJlZU5vZGUgZXh0ZW5kcyBXZWJJbgogICAgICAgICBp
ZiAoIWV4cHJlc3Npb25Mb2NhdGlvbikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBs
ZXQge2xpbmUsIGNvbHVtbn0gPSBleHByZXNzaW9uTG9jYXRpb247ICAgIAorICAgICAgICBsZXQg
e2xpbmUsIGNvbHVtbn0gPSBleHByZXNzaW9uTG9jYXRpb247CiAgICAgICAgIGxldCBoYXNoQ29u
cyA9IGxpbmUgKyAiOiIgKyBjb2x1bW47CiAgICAgICAgIGxldCB0aW1lc3RhbXBzID0gdGhpcy5f
ZXhwcmVzc2lvbkxvY2F0aW9uc1toYXNoQ29uc107CiAgICAgICAgIGlmICghdGltZXN0YW1wcykg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NvbnNvbGVDb21tYW5kUmVzdWx0TWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xlQ29tbWFuZFJlc3VsdE1lc3NhZ2UuanMKaW5kZXgg
NWMyMjk1MC4uMjA3MzJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0NvbnNvbGVDb21tYW5kUmVzdWx0TWVzc2FnZS5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29uc29sZUNvbW1hbmRSZXN1
bHRNZXNzYWdlLmpzCkBAIC0zMiw3ICszMiw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFu
ZFJlc3VsdE1lc3NhZ2UgPSBjbGFzcyBDb25zb2xlQ29tbWFuZFJlc3VsdCBleHRlbmRzIFdlCiAg
ICAgY29uc3RydWN0b3IocmVzdWx0LCB3YXNUaHJvd24sIHNhdmVkUmVzdWx0SW5kZXgsIHNob3Vs
ZFJldmVhbENvbnNvbGUgPSB0cnVlKQogICAgIHsKICAgICAgICAgbGV0IHNvdXJjZSA9IFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpTOwotICAgICAgICBsZXQgbGV2
ZWwgPSAod2FzVGhyb3duID8gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZl
bC5FcnJvciA6IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nKTsK
KyAgICAgICAgbGV0IGxldmVsID0gd2FzVGhyb3duID8gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlLk1lc3NhZ2VMZXZlbC5FcnJvciA6IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNz
YWdlTGV2ZWwuTG9nOwogICAgICAgICBsZXQgdHlwZSA9IFdlYkluc3BlY3Rvci5Db25zb2xlTWVz
c2FnZS5NZXNzYWdlVHlwZS5SZXN1bHQ7CiAKICAgICAgICAgc3VwZXIoc291cmNlLCBsZXZlbCwg
IiIsIHR5cGUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDAsIFtyZXN1bHRdLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ29va2llU3RvcmFnZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db29raWVTdG9yYWdlT2JqZWN0LmpzCmlu
ZGV4IDRkYjNlYjUuLmZlNDEwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9Db29raWVTdG9yYWdlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db29raWVTdG9yYWdlT2JqZWN0Lmpz
CkBAIC0zOCw5ICszOCw5IEBAIFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlT2JqZWN0ID0gY2xh
c3MgQ29va2llU3RvcmFnZU9iamVjdAogICAgICAgICBpZiAoIXBhcnNlZFVSTCB8fCAhV2ViSW5z
cGVjdG9yLkNvb2tpZVN0b3JhZ2VPYmplY3QuY29va2llRG9tYWluTWF0Y2hlc1Jlc291cmNlRG9t
YWluKGNvb2tpZS5kb21haW4sIHBhcnNlZFVSTC5ob3N0KSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICByZXR1cm4gKHBhcnNlZFVSTC5wYXRoLnN0YXJ0c1dpdGgoY29va2ll
LnBhdGgpCisgICAgICAgIHJldHVybiBwYXJzZWRVUkwucGF0aC5zdGFydHNXaXRoKGNvb2tpZS5w
YXRoKQogICAgICAgICAgICAgJiYgKCFjb29raWUucG9ydCB8fCBwYXJzZWRVUkwucG9ydCA9PT0g
Y29va2llLnBvcnQpCi0gICAgICAgICAgICAmJiAoIWNvb2tpZS5zZWN1cmUgfHwgcGFyc2VkVVJM
LnNjaGVtZSA9PT0gImh0dHBzIikpOworICAgICAgICAgICAgJiYgKCFjb29raWUuc2VjdXJlIHx8
IHBhcnNlZFVSTC5zY2hlbWUgPT09ICJodHRwcyIpOwogICAgIH0KIAogICAgIHN0YXRpYyBjb29r
aWVEb21haW5NYXRjaGVzUmVzb3VyY2VEb21haW4oY29va2llRG9tYWluLCByZXNvdXJjZURvbWFp
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9GcmFtZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9G
cmFtZS5qcwppbmRleCAzNmNmYmVjLi5iZjExNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRnJhbWUuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0ZyYW1lLmpzCkBAIC00NzIsNyArNDcyLDcg
QEAgV2ViSW5zcGVjdG9yLkZyYW1lID0gY2xhc3MgRnJhbWUgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAKICAgICBfaXNQcm92aXNpb25hbFJlc291cmNlKHJlc291cmNlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIChyZXNvdXJjZS5sb2FkZXJJZGVudGlmaWVyICYmIHRoaXMuX3Byb3Zpc2lv
bmFsTG9hZGVySWRlbnRpZmllciAmJiByZXNvdXJjZS5sb2FkZXJJZGVudGlmaWVyID09PSB0aGlz
Ll9wcm92aXNpb25hbExvYWRlcklkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gcmVzb3VyY2Uu
bG9hZGVySWRlbnRpZmllciAmJiB0aGlzLl9wcm92aXNpb25hbExvYWRlcklkZW50aWZpZXIgJiYg
cmVzb3VyY2UubG9hZGVySWRlbnRpZmllciA9PT0gdGhpcy5fcHJvdmlzaW9uYWxMb2FkZXJJZGVu
dGlmaWVyOwogICAgIH0KIAogICAgIF9hc3NvY2lhdGVXaXRoUmVzb3VyY2UocmVzb3VyY2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2Vv
bWV0cnkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2Vv
bWV0cnkuanMKaW5kZXggN2UzZDRjNy4uMmNhMmE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9tZXRyeS5qcwpAQCAtNTgsNyAr
NTgsNyBAQCBXZWJJbnNwZWN0b3IuUG9pbnQgPSBjbGFzcyBQb2ludAogCiAgICAgZXF1YWxzKGFu
b3RoZXJQb2ludCkKICAgICB7Ci0gICAgICAgIHJldHVybiAodGhpcy54ID09PSBhbm90aGVyUG9p
bnQueCAmJiB0aGlzLnkgPT09IGFub3RoZXJQb2ludC55KTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
eCA9PT0gYW5vdGhlclBvaW50LnggJiYgdGhpcy55ID09PSBhbm90aGVyUG9pbnQueTsKICAgICB9
CiAKICAgICBkaXN0YW5jZShhbm90aGVyUG9pbnQpCkBAIC05MSw3ICs5MSw3IEBAIFdlYkluc3Bl
Y3Rvci5TaXplID0gY2xhc3MgU2l6ZQogCiAgICAgZXF1YWxzKGFub3RoZXJTaXplKQogICAgIHsK
LSAgICAgICAgcmV0dXJuICh0aGlzLndpZHRoID09PSBhbm90aGVyU2l6ZS53aWR0aCAmJiB0aGlz
LmhlaWdodCA9PT0gYW5vdGhlclNpemUuaGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHRoaXMud2lk
dGggPT09IGFub3RoZXJTaXplLndpZHRoICYmIHRoaXMuaGVpZ2h0ID09PSBhbm90aGVyU2l6ZS5o
ZWlnaHQ7CiAgICAgfQogfTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIFdlYkluc3BlY3Rvci5SZWN0
ID0gY2xhc3MgUmVjdAogCiAgICAgZXF1YWxzKGFub3RoZXJSZWN0KQogICAgIHsKLSAgICAgICAg
cmV0dXJuICh0aGlzLm9yaWdpbi5lcXVhbHMoYW5vdGhlclJlY3Qub3JpZ2luKSAmJiB0aGlzLnNp
emUuZXF1YWxzKGFub3RoZXJSZWN0LnNpemUpKTsKKyAgICAgICAgcmV0dXJuIHRoaXMub3JpZ2lu
LmVxdWFscyhhbm90aGVyUmVjdC5vcmlnaW4pICYmIHRoaXMuc2l6ZS5lcXVhbHMoYW5vdGhlclJl
Y3Quc2l6ZSk7CiAgICAgfQogCiAgICAgaW5zZXQoaW5zZXRzKQpAQCAtMjUyLDggKzI1Miw4IEBA
IFdlYkluc3BlY3Rvci5FZGdlSW5zZXRzID0gY2xhc3MgRWRnZUluc2V0cwogCiAgICAgZXF1YWxz
KGFub3RoZXJJbnNldCkKICAgICB7Ci0gICAgICAgIHJldHVybiAodGhpcy50b3AgPT09IGFub3Ro
ZXJJbnNldC50b3AgJiYgdGhpcy5yaWdodCA9PT0gYW5vdGhlckluc2V0LnJpZ2h0ICYmCi0gICAg
ICAgICAgICAgICAgdGhpcy5ib3R0b20gPT09IGFub3RoZXJJbnNldC5ib3R0b20gJiYgdGhpcy5s
ZWZ0ID09PSBhbm90aGVySW5zZXQubGVmdCk7CisgICAgICAgIHJldHVybiB0aGlzLnRvcCA9PT0g
YW5vdGhlckluc2V0LnRvcCAmJiB0aGlzLnJpZ2h0ID09PSBhbm90aGVySW5zZXQucmlnaHQKKyAg
ICAgICAgICAgICYmIHRoaXMuYm90dG9tID09PSBhbm90aGVySW5zZXQuYm90dG9tICYmIHRoaXMu
bGVmdCA9PT0gYW5vdGhlckluc2V0LmxlZnQ7CiAgICAgfQogCiAgICAgY29weSgpCkBAIC0zMjAs
NyArMzIwLDcgQEAgV2ViSW5zcGVjdG9yLlBvbHlnb24gPSBjbGFzcyBQb2x5Z29uCiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmVjdChtaW5YLCBtaW5ZLCBtYXhY
IC0gbWluWCwgbWF4WSAtIG1pblkpOwogICAgIH0KLX0KK307CiAKIFdlYkluc3BlY3Rvci5DdWJp
Y0JlemllciA9IGNsYXNzIEN1YmljQmV6aWVyCiB7CkBAIC0zMzMsNyArMzMzLDcgQEAgV2ViSW5z
cGVjdG9yLkN1YmljQmV6aWVyID0gY2xhc3MgQ3ViaWNCZXppZXIKICAgICAgICAgdGhpcy5fY3Vy
dmVJbmZvID0gewogICAgICAgICAgICAgeDoge2M6IDMuMCAqIHgxfSwKICAgICAgICAgICAgIHk6
IHtjOiAzLjAgKiB5MX0KLSAgICAgICAgfQorICAgICAgICB9OwogCiAgICAgICAgIHRoaXMuX2N1
cnZlSW5mby54LmIgPSAzLjAgKiAoeDIgLSB4MSkgLSB0aGlzLl9jdXJ2ZUluZm8ueC5jOwogICAg
ICAgICB0aGlzLl9jdXJ2ZUluZm8ueC5hID0gMS4wIC0gdGhpcy5fY3VydmVJbmZvLnguYyAtIHRo
aXMuX2N1cnZlSW5mby54LmI7CkBAIC00NjcsNyArNDY3LDcgQEAgV2ViSW5zcGVjdG9yLkN1Ymlj
QmV6aWVyID0gY2xhc3MgQ3ViaWNCZXppZXIKICAgICAgICAgLy8gRmFpbHVyZS4KICAgICAgICAg
cmV0dXJuIHQyOwogICAgIH0KLX0KK307CiAKIFdlYkluc3BlY3Rvci5DdWJpY0Jlemllci5rZXl3
b3JkVmFsdWVzID0gewogICAgICJlYXNlIjogICAgICAgICBbMC4yNSwgMC4xLCAwLjI1LCAxXSwK
QEAgLTU2OCw0ICs1NjgsNCBAQCBXZWJJbnNwZWN0b3IuU3ByaW5nID0gY2xhc3MgU3ByaW5nCiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIHQ7CiAgICAgfQotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdl
LmpzCmluZGV4IGVmZDg3NDcuLjJiNDJmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcwpAQCAtODMs
NyArODMsNyBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlID0gY2xhc3MgSXNzdWVNZXNzYWdl
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgc3RhdGljIGRpc3BsYXlOYW1lKHR5
cGUpCiAgICAgewotICAgICAgICBzd2l0Y2godHlwZSkgeworICAgICAgICBzd2l0Y2ggKHR5cGUp
IHsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlR5cGUuU2VtYW50aWNJ
c3N1ZToKICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlbWFudGlj
IElzc3VlIik7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5UeXBlLlJh
bmdlSXNzdWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMKaW5kZXggZGI4MmEx
MC4uNzkzNzZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGluZVJlY29yZC5qcwpAQCAtNDMs
NyArNDMsNyBAQCBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBMYXlv
dXRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlYwogCiAgICAgc3RhdGljIGRpc3BsYXlO
YW1lRm9yRXZlbnRUeXBlKGV2ZW50VHlwZSkKICAgICB7Ci0gICAgICAgIHN3aXRjaChldmVudFR5
cGUpIHsKKyAgICAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlLkludmFsaWRhdGVTdHlsZXM6CiAg
ICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdHlsZXMgSW52YWxpZGF0
ZWQiKTsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZl
bnRUeXBlLlJlY2FsY3VsYXRlU3R5bGVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeVRpbWVsaW5lLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeVRpbWVsaW5lLmpzCmluZGV4IGVl
ZTRjZjMuLjhhNzkxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9NZW1vcnlUaW1lbGluZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5VGltZWxpbmUuanMKQEAgLTM1LDcgKzM1LDcg
QEAgV2ViSW5zcGVjdG9yLk1lbW9yeVRpbWVsaW5lID0gY2xhc3MgTWVtb3J5VGltZWxpbmUgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuVGltZWxpbmUKIAogICAgICAgICB0aGlzLl9wcmVzc3VyZUV2ZW50
cy5wdXNoKG1lbW9yeVByZXNzdXJlRXZlbnQpOwogCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5NZW1vcnlUaW1lbGluZS5FdmVudC5NZW1vcnlQcmVz
c3VyZUV2ZW50QWRkZWQsIHttZW1vcnlQcmVzc3VyZUV2ZW50fSkKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLk1lbW9yeVRpbWVsaW5lLkV2ZW50Lk1l
bW9yeVByZXNzdXJlRXZlbnRBZGRlZCwge21lbW9yeVByZXNzdXJlRXZlbnR9KTsKICAgICB9CiAK
ICAgICAvLyBQcm90ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJz
LmpzCmluZGV4IDUwYzMzNzAuLmI3MWNjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0
aW9uUGFyYW1ldGVycy5qcwpAQCAtMjE4Nyw3ICsyMTg3LDcgQEAgV2ViSW5zcGVjdG9yLk5hdGl2
ZVByb3RvdHlwZUZ1bmN0aW9uUGFyYW1ldGVycyA9IHsKICAgICAgICAgYmVmb3JlOiAiW25vZGV8
c3RyaW5nXS4uLiIsCiAgICAgICAgIHJlcGxhY2VXaXRoOiAiW25vZGV8c3RyaW5nXS4uLiIsCiAg
ICAgfTsKLSAgICBPYmplY3QuYXNzaWduKFdlYkluc3BlY3Rvci5OYXRpdmVQcm90b3R5cGVGdW5j
dGlvblBhcmFtZXRlcnMuRWxlbWVudCwgQ2hpbGROb2RlKQorICAgIE9iamVjdC5hc3NpZ24oV2Vi
SW5zcGVjdG9yLk5hdGl2ZVByb3RvdHlwZUZ1bmN0aW9uUGFyYW1ldGVycy5FbGVtZW50LCBDaGls
ZE5vZGUpOwogICAgIE9iamVjdC5hc3NpZ24oV2ViSW5zcGVjdG9yLk5hdGl2ZVByb3RvdHlwZUZ1
bmN0aW9uUGFyYW1ldGVycy5DaGFyYWN0ZXJEYXRhLCBDaGlsZE5vZGUpOwogCiAgICAgdmFyIFBh
cmVudE5vZGUgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanMKaW5kZXggMTI5NTQ3My4uYTgyNWZkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2Zp
bGVOb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9Qcm9maWxlTm9kZS5qcwpAQCAtNTAsNyArNTAsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZU5v
ZGUgPSBjbGFzcyBQcm9maWxlTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAg
ICAgdGhpcy5fbmV4dFNpYmxpbmcgPSBudWxsOwogICAgICAgICB0aGlzLl9jb21wdXRlZFRvdGFs
VGltZXMgPSBmYWxzZTsKIAotICAgICAgICBpZiAodGhpcy5fY2FsbEluZm8pIHsgICAgICAgICAg
ICAKKyAgICAgICAgaWYgKHRoaXMuX2NhbGxJbmZvKSB7CiAgICAgICAgICAgICB0aGlzLl9zdGFy
dFRpbWUgPSB0aGlzLl9jYWxsSW5mby5zdGFydFRpbWU7CiAgICAgICAgICAgICB0aGlzLl9lbmRU
aW1lID0gdGhpcy5fY2FsbEluZm8uZW5kVGltZTsKICAgICAgICAgICAgIHRoaXMuX3RvdGFsVGlt
ZSA9IHRoaXMuX2NhbGxJbmZvLnRvdGFsVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3Jk
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmlu
Z0ZyYW1lVGltZWxpbmVSZWNvcmQuanMKaW5kZXggNzU5OTI0OS4uMzZiNzQ4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0Zy
YW1lVGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuanMKQEAgLTQyLDcgKzQy
LDcgQEAgV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBS
ZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGUKIAogICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZv
clRhc2tUeXBlKHRhc2tUeXBlKQogICAgIHsKLSAgICAgICAgc3dpdGNoKHRhc2tUeXBlKSB7Cisg
ICAgICAgIHN3aXRjaCAodGFza1R5cGUpIHsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuUmVu
ZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5UYXNrVHlwZS5TY3JpcHQ6CiAgICAgICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JpcHQiKTsKICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5UYXNrVHlwZS5MYXlvdXQ6CkBA
IC01Niw3ICs1Niw3IEBAIFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3Jk
ID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCBlCiAKICAgICBzdGF0aWMgdGFz
a1R5cGVGb3JUaW1lbGluZVJlY29yZChyZWNvcmQpCiAgICAgewotICAgICAgICBzd2l0Y2gocmVj
b3JkLnR5cGUpIHsKKyAgICAgICAgc3dpdGNoIChyZWNvcmQudHlwZSkgewogICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlNjcmlwdDoKICAgICAgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5UYXNrVHlwZS5T
Y3JpcHQ7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuTGF5
b3V0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1Jlc291cmNlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1Jlc291cmNlLmpzCmluZGV4IGZlNjUxMTguLjcwY2I0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2UuanMKQEAg
LTg4LDcgKzg4LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlID0gY2xhc3MgUmVzb3VyY2UgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuU291cmNlQ29kZQogCiAgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9y
VHlwZSh0eXBlLCBwbHVyYWwpCiAgICAgewotICAgICAgICBzd2l0Y2godHlwZSkgeworICAgICAg
ICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlw
ZS5Eb2N1bWVudDoKICAgICAgICAgICAgIGlmIChwbHVyYWwpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9jdW1lbnRzIik7CkBAIC03MTcsOSArNzE3LDkg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlID0gY2xhc3MgUmVzb3VyY2UgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuU291cmNlQ29kZQogCiAgICAgICAgIGlmICh0aGlzLnJlcXVlc3REYXRhQ29udGVudFR5
cGUgJiYgdGhpcy5yZXF1ZXN0TWV0aG9kICE9PSAiR0VUIiAmJiB0aGlzLnJlcXVlc3REYXRhKSB7
CiAgICAgICAgICAgICBpZiAodGhpcy5yZXF1ZXN0RGF0YUNvbnRlbnRUeXBlLm1hdGNoKC9eYXBw
bGljYXRpb25cL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxzKig7LiopPyQvaSkpCi0gICAgICAgICAg
ICAgICAgY29tbWFuZC5wdXNoKCItLWRhdGEgIiArIGVzY2FwZVN0cmluZ1Bvc2l4KHRoaXMucmVx
dWVzdERhdGEpKQorICAgICAgICAgICAgICAgIGNvbW1hbmQucHVzaCgiLS1kYXRhICIgKyBlc2Nh
cGVTdHJpbmdQb3NpeCh0aGlzLnJlcXVlc3REYXRhKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgY29tbWFuZC5wdXNoKCItLWRhdGEtYmluYXJ5ICIgKyBlc2NhcGVTdHJpbmdQ
b3NpeCh0aGlzLnJlcXVlc3REYXRhKSkKKyAgICAgICAgICAgICAgICBjb21tYW5kLnB1c2goIi0t
ZGF0YS1iaW5hcnkgIiArIGVzY2FwZVN0cmluZ1Bvc2l4KHRoaXMucmVxdWVzdERhdGEpKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGxldCBjdXJsQ29tbWFuZCA9IGNvbW1hbmQuam9pbigiIFxcXG4i
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9TY3JpcHRTeW50YXhUcmVlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1NjcmlwdFN5bnRheFRyZWUuanMKaW5kZXggZjRjNjllYS4uZTI2NmE2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Njcmlw
dFN5bnRheFRyZWUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1NjcmlwdFN5bnRheFRyZWUuanMKQEAgLTE0OSwxNSArMTQ5LDE1IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRTeW50YXhUcmVlID0gY2xhc3MgU2NyaXB0U3ludGF4VHJlZSBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplCiAKICAgICBzdGF0aWMgZnVuY3Rpb25SZXR1cm5EaXZvdChub2RlKQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZS50eXBlID09PSBXZWJJbnNwZWN0b3Iu
U2NyaXB0U3ludGF4VHJlZS5Ob2RlVHlwZS5GdW5jdGlvbkRlY2xhcmF0aW9uIHx8IG5vZGUudHlw
ZSA9PT0gV2ViSW5zcGVjdG9yLlNjcmlwdFN5bnRheFRyZWUuTm9kZVR5cGUuRnVuY3Rpb25FeHBy
ZXNzaW9uIHx8IG5vZGUudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlNjcmlwdFN5bnRheFRyZWUuTm9k
ZVR5cGUuTWV0aG9kRGVmaW5pdGlvbiB8fCBub2RlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5TY3Jp
cHRTeW50YXhUcmVlLk5vZGVUeXBlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uKTsgCisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KG5vZGUudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlNjcmlwdFN5bnRheFRy
ZWUuTm9kZVR5cGUuRnVuY3Rpb25EZWNsYXJhdGlvbiB8fCBub2RlLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5TY3JpcHRTeW50YXhUcmVlLk5vZGVUeXBlLkZ1bmN0aW9uRXhwcmVzc2lvbiB8fCBub2Rl
LnR5cGUgPT09IFdlYkluc3BlY3Rvci5TY3JpcHRTeW50YXhUcmVlLk5vZGVUeXBlLk1ldGhvZERl
ZmluaXRpb24gfHwgbm9kZS50eXBlID09PSBXZWJJbnNwZWN0b3IuU2NyaXB0U3ludGF4VHJlZS5O
b2RlVHlwZS5BcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbik7CiAKLSAgICAgICAgLy8gQ09NUEFUSUJJ
TElUWSAoaU9TIDkpOiBMZWdhY3kgQmFja2VuZHMgdmlldyB0aGUgcmV0dXJuIHR5cGUgYXMgYmVp
bmcgdGhlIG9wZW5pbmcgInsiIG9mIHRoZSBmdW5jdGlvbiBib2R5LiAKKyAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDkpOiBMZWdhY3kgQmFja2VuZHMgdmlldyB0aGUgcmV0dXJuIHR5cGUg
YXMgYmVpbmcgdGhlIG9wZW5pbmcgInsiIG9mIHRoZSBmdW5jdGlvbiBib2R5LgogICAgICAgICAv
LyBBZnRlciBpT1MgOSwgdGhpcyBpcyB0byBtb3ZlIHRvIHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rp
b24gc3RhdGVtZW50L2V4cHJlc3Npb24uIFNlZSBiZWxvdzoKICAgICAgICAgLy8gRklYTUU6IE5l
ZWQgYSBiZXR0ZXIgd2F5IHRvIGRldGVybWluZSBiYWNrZW5kIHZlcnNpb25zLiBVc2luZyBET00u
cHNldWRvRWxlbWVudCBiZWNhdXNlIHRoYXQgd2FzIGFkZGVkIGFmdGVyIGlPUyA5LgogICAgICAg
ICBpZiAoIURPTUFnZW50Lmhhc0V2ZW50KCJwc2V1ZG9FbGVtZW50QWRkZWQiKSkKICAgICAgICAg
ICAgIHJldHVybiBub2RlLmJvZHkucmFuZ2VbMF07CiAKLSAgICAgICAgLy8gImYiIGluICJmdW5j
dGlvbiIuICJzIiBpbiAic2V0Ii4gImciIGluICJnZXQiLiBGaXJzdCBsZXR0ZXIgaW4gYW55IG1l
dGhvZCBuYW1lIGZvciBjbGFzc2VzIGFuZCBvYmplY3QgbGl0ZXJhbHMuIAorICAgICAgICAvLyAi
ZiIgaW4gImZ1bmN0aW9uIi4gInMiIGluICJzZXQiLiAiZyIgaW4gImdldCIuIEZpcnN0IGxldHRl
ciBpbiBhbnkgbWV0aG9kIG5hbWUgZm9yIGNsYXNzZXMgYW5kIG9iamVjdCBsaXRlcmFscy4KICAg
ICAgICAgLy8gVGhlICJbIiBmb3IgY29tcHV0ZWQgbWV0aG9kcyBpbiBjbGFzc2VzIGFuZCBvYmpl
Y3QgbGl0ZXJhbHMuCiAgICAgICAgIHJldHVybiBub2RlLnR5cGVQcm9maWxpbmdSZXR1cm5EaXZv
dDsKICAgICB9CkBAIC03ODAsNyArNzgwLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFN5bnRheFRy
ZWUgPSBjbGFzcyBTY3JpcHRTeW50YXhUcmVlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamUKICAg
ICAgICAgICAgICAgICB0eXBlOiBXZWJJbnNwZWN0b3IuU2NyaXB0U3ludGF4VHJlZS5Ob2RlVHlw
ZS5SZXN0RWxlbWVudCwKICAgICAgICAgICAgICAgICBhcmd1bWVudDogdGhpcy5fY3JlYXRlSW50
ZXJuYWxTeW50YXhUcmVlKG5vZGUuYXJndW1lbnQpCiAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgYnJlYWs7ICAgICAgICAgICAgCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAi
UmV0dXJuU3RhdGVtZW50IjoKICAgICAgICAgICAgIHJlc3VsdCA9IHsKICAgICAgICAgICAgICAg
ICB0eXBlOiBXZWJJbnNwZWN0b3IuU2NyaXB0U3ludGF4VHJlZS5Ob2RlVHlwZS5SZXR1cm5TdGF0
ZW1lbnQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKaW5kZXggODFlYTdhNy4u
YjExNzI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1NjcmlwdFRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwpAQCAtMzU3LDcg
KzM1Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuZGlz
cGxheU5hbWUgPSBmdW5jdGlvbihldmVudFR5cGUsIGRlCiAgICAgICAgIFdlYkluc3BlY3Rvci5T
Y3JpcHRUaW1lbGluZVJlY29yZC5fZXZlbnREaXNwbGF5TmFtZXMgPSBuYW1lTWFwOwogICAgIH0K
IAotICAgIHN3aXRjaChldmVudFR5cGUpIHsKKyAgICBzd2l0Y2ggKGV2ZW50VHlwZSkgewogICAg
IGNhc2UgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5TY3JpcHRF
dmFsdWF0ZWQ6CiAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQuRXZl
bnRUeXBlLkFQSVNjcmlwdEV2YWx1YXRlZDoKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiU2NyaXB0IEV2YWx1YXRlZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1N0YWNrVHJhY2UuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU3RhY2tUcmFjZS5qcwppbmRleCBhZDRhZWU2
Li43N2RhOWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvU3RhY2tUcmFjZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvU3RhY2tUcmFjZS5qcwpAQCAtMTUxLDUgKzE1MSw0IEBAIFdlYkluc3Bl
Y3Rvci5TdGFja1RyYWNlID0gY2xhc3MgU3RhY2tUcmFjZSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKIAogICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9Ci0gICAgCiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1R5cGVTZXQuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVHlwZVNldC5qcwpp
bmRleCAxNzMzMzgyLi5hZDViNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvVHlwZVNldC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVHlwZVNldC5qcwpAQCAtMTA1LDggKzEwNSw4IEBAIFdl
Ykluc3BlY3Rvci5UeXBlU2V0ID0gY2xhc3MgVHlwZVNldCBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKICAgICAgICAgaWYgKHR5cGVTZXQuaXNTeW1ib2wpCiAgICAgICAgICAgICB0aGlzLl9w
cmltaXRpdmVUeXBlTmFtZXMucHVzaCgiU3ltYm9sIik7CiAKLSAgICAgICAgLy8gSXQncyBpbXBs
aWVkIHRoYXQgdHlwZSBJbnRlZ2VyIGlzIGNvbnRhaW5lZCBpbiB0eXBlIE51bWJlci4gRG9uJ3Qg
cHV0IAotICAgICAgICAvLyBib3RoICdJbnRlZ2VyJyBhbmQgJ051bWJlcicgaW50byB0aGUgc2V0
IGJlY2F1c2UgdGhpcyBjb3VsZCBpbXBseSB0aGF0IAorICAgICAgICAvLyBJdCdzIGltcGxpZWQg
dGhhdCB0eXBlIEludGVnZXIgaXMgY29udGFpbmVkIGluIHR5cGUgTnVtYmVyLiBEb24ndCBwdXQK
KyAgICAgICAgLy8gYm90aCAnSW50ZWdlcicgYW5kICdOdW1iZXInIGludG8gdGhlIHNldCBiZWNh
dXNlIHRoaXMgY291bGQgaW1wbHkgdGhhdAogICAgICAgICAvLyBOdW1iZXIgbWVhbnMgdG8gRG91
YmxlIGluc3RlYWQgb2YgRG91YmxlfEludGVnZXIuCiAgICAgICAgIGlmICh0eXBlU2V0LmlzTnVt
YmVyKQogICAgICAgICAgICAgdGhpcy5fcHJpbWl0aXZlVHlwZU5hbWVzLnB1c2goIk51bWJlciIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1dyYXBwZWRQcm9taXNlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1dyYXBwZWRQcm9taXNlLmpzCmluZGV4IDM5YTEwZmUuLmQwOWQyMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9XcmFwcGVkUHJv
bWlzZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
V3JhcHBlZFByb21pc2UuanMKQEAgLTUyLDQgKzUyLDQgQEAgV2ViSW5zcGVjdG9yLldyYXBwZWRQ
cm9taXNlID0gY2xhc3MgV3JhcHBlZFByb21pc2UKICAgICB7CiAgICAgICAgIHRoaXMuX3JlamVj
dCh2YWx1ZSk7CiAgICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNw
ZWN0b3JCYWNrZW5kLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvSW5zcGVjdG9yQmFja2VuZC5qcwppbmRleCA2OTFhOTYyLi5iNWZmYmU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0
b3JCYWNrZW5kLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0luc3BlY3RvckJhY2tlbmQuanMKQEAgLTUyLDcgKzUyLDcgQEAgSW5zcGVjdG9yQmFj
a2VuZENsYXNzID0gY2xhc3MgSW5zcGVjdG9yQmFja2VuZENsYXNzCiAgICAgICAgIHRoaXMuX2R1
bXBJbnNwZWN0b3JUaW1lU3RhdHMgPSBmYWxzZTsKIAogICAgICAgICBsZXQgc2V0dGluZyA9IFdl
Ykluc3BlY3Rvci5hdXRvTG9nUHJvdG9jb2xNZXNzYWdlc1NldHRpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLlNldHRpbmcoImF1dG8tY29sbGVjdC1wcm90b2NvbC1tZXNzYWdlcyIsIGZhbHNlKTsKLSAg
ICAgICAgc2V0dGluZy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TZXR0aW5nLkV2ZW50
LkNoYW5nZWQsIHRoaXMuX3N0YXJ0T3JTdG9wQXV0b21hdGljVHJhY2luZy5iaW5kKHRoaXMpKQor
ICAgICAgICBzZXR0aW5nLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNldHRpbmcuRXZl
bnQuQ2hhbmdlZCwgdGhpcy5fc3RhcnRPclN0b3BBdXRvbWF0aWNUcmFjaW5nLmJpbmQodGhpcykp
OwogICAgICAgICB0aGlzLl9zdGFydE9yU3RvcEF1dG9tYXRpY1RyYWNpbmcoKTsKICAgICB9CiAK
QEAgLTQ3MCw3ICs0NzAsNyBAQCBJbnNwZWN0b3JCYWNrZW5kLkFnZW50ID0gY2xhc3MgSW5zcGVj
dG9yQmFja2VuZEFnZW50CiAvLyBCdXQgd2UgY2FuIHVzZSBzdHJpY3QgbW9kZSB0byBnZXQgc3Ry
aWN0ZXIgaGFuZGxpbmcgb2YgdGhlIGNvZGUgaW5zaWRlIGl0cyBmdW5jdGlvbnMuCiBJbnNwZWN0
b3JCYWNrZW5kLkNvbW1hbmQgPSBmdW5jdGlvbihiYWNrZW5kLCBxdWFsaWZpZWROYW1lLCBjYWxs
U2lnbmF0dXJlLCByZXBseVNpZ25hdHVyZSkKIHsKLSAgICAndXNlIHN0cmljdCc7CisgICAgInVz
ZSBzdHJpY3QiOwogCiAgICAgdGhpcy5fYmFja2VuZCA9IGJhY2tlbmQ7CiAgICAgdGhpcy5faW5z
dGFuY2UgPSB0aGlzOwpAQCAtNDg0LDcgKzQ4NCw3IEBAIEluc3BlY3RvckJhY2tlbmQuQ29tbWFu
ZCA9IGZ1bmN0aW9uKGJhY2tlbmQsIHF1YWxpZmllZE5hbWUsIGNhbGxTaWduYXR1cmUsIHJlcGx5
CiAKIEluc3BlY3RvckJhY2tlbmQuQ29tbWFuZC5jcmVhdGUgPSBmdW5jdGlvbihiYWNrZW5kLCBj
b21tYW5kTmFtZSwgY2FsbFNpZ25hdHVyZSwgcmVwbHlTaWduYXR1cmUpCiB7Ci0gICAgJ3VzZSBz
dHJpY3QnOworICAgICJ1c2Ugc3RyaWN0IjsKIAogICAgIHZhciBpbnN0YW5jZSA9IG5ldyBJbnNw
ZWN0b3JCYWNrZW5kLkNvbW1hbmQoYmFja2VuZCwgY29tbWFuZE5hbWUsIGNhbGxTaWduYXR1cmUs
IHJlcGx5U2lnbmF0dXJlKTsKIApAQCAtNTI3LDcgKzUyNyw3IEBAIEluc3BlY3RvckJhY2tlbmQu
Q29tbWFuZC5wcm90b3R5cGUgPSB7CiAKICAgICBpbnZva2U6IGZ1bmN0aW9uKGNvbW1hbmRBcmd1
bWVudHMsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgJ3VzZSBzdHJpY3QnOworICAgICAgICAi
dXNlIHN0cmljdCI7CiAKICAgICAgICAgbGV0IGluc3RhbmNlID0gdGhpcy5faW5zdGFuY2U7CiAK
QEAgLTUzOSw3ICs1MzksNyBAQCBJbnNwZWN0b3JCYWNrZW5kLkNvbW1hbmQucHJvdG90eXBlID0g
ewogCiAgICAgc3VwcG9ydHM6IGZ1bmN0aW9uKHBhcmFtZXRlck5hbWUpCiAgICAgewotICAgICAg
ICAndXNlIHN0cmljdCc7CisgICAgICAgICJ1c2Ugc3RyaWN0IjsKIAogICAgICAgICB2YXIgaW5z
dGFuY2UgPSB0aGlzLl9pbnN0YW5jZTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmNhbGxTaWdu
YXR1cmUuc29tZSgocGFyYW1ldGVyKSA9PiBwYXJhbWV0ZXJbIm5hbWUiXSA9PT0gcGFyYW1ldGVy
TmFtZSk7CkBAIC01NDksNyArNTQ5LDcgQEAgSW5zcGVjdG9yQmFja2VuZC5Db21tYW5kLnByb3Rv
dHlwZSA9IHsKIAogICAgIF9pbnZva2VXaXRoQXJndW1lbnRzOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICAndXNlIHN0cmljdCc7CisgICAgICAgICJ1c2Ugc3RyaWN0IjsKIAogICAgICAgICBs
ZXQgaW5zdGFuY2UgPSB0aGlzLl9pbnN0YW5jZTsKICAgICAgICAgbGV0IGNvbW1hbmRBcmd1bWVu
dHMgPSBBcnJheS5mcm9tKGFyZ3VtZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250
ZW5kQVBJLmpzCmluZGV4IGM3ZTA2N2IuLjk5ZWYzNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3Bl
Y3RvckZyb250ZW5kQVBJLmpzCkBAIC04Myw3ICs4Myw3IEBAIEluc3BlY3RvckZyb250ZW5kQVBJ
ID0gewogICAgICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gImNvbXBsZXRlIikKICAg
ICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLCB0
aGlzKTsKICAgICAgICAgaWYgKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSAhPT0gInZpc2libGUi
KQotICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5n
ZSIsIHRoaXMpOyAgCisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNp
YmlsaXR5Y2hhbmdlIiwgdGhpcyk7CiAgICAgfSwKIAogICAgIGhhbmRsZUV2ZW50OiBmdW5jdGlv
bihldmVudCkKQEAgLTE0Niw3ICsxNDYsNyBAQCBJbnNwZWN0b3JGcm9udGVuZEFQSSA9IHsKICAg
ICAgICAgdmFyIG1ldGhvZE5hbWUgPSBzaWduYXR1cmUuc2hpZnQoKTsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQoSW5zcGVjdG9yRnJvbnRlbmRBUElbbWV0aG9kTmFtZV0sICJVbmV4cGVjdGVkIElu
c3BlY3RvckZyb250ZW5kQVBJIG1ldGhvZCBuYW1lOiAiICsgbWV0aG9kTmFtZSk7CiAgICAgICAg
IGlmICghSW5zcGVjdG9yRnJvbnRlbmRBUElbbWV0aG9kTmFtZV0pCi0gICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAogICAgICAgICByZXR1cm4gSW5zcGVjdG9y
RnJvbnRlbmRBUElbbWV0aG9kTmFtZV0uYXBwbHkoSW5zcGVjdG9yRnJvbnRlbmRBUEksIHNpZ25h
dHVyZSk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwppbmRleCA4NWIyNzQ2Li5kYjFi
NjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCkBAIC00MzYsNyArNDM2LDcgQEAgV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9iamVjdAogCiAgICAgICAgIFJ1bnRp
bWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgYXBwZW5kV2ViSW5zcGVjdG9y
U291cmNlVVJMKGZ1bmN0aW9uRGVjbGFyYXRpb24udG9TdHJpbmcoKSksIGFyZ3MsIHRydWUsIHRy
dWUsIG15Y2FsbGJhY2spOwogICAgIH0KLSAgICAKKwogICAgIGludm9rZUdldHRlcihnZXR0ZXJS
ZW1vdGVPYmplY3QsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoZ2V0
dGVyUmVtb3RlT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk7CkBA
IC02MzksNyArNjM5LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5GYWtlUmVtb3RlT2Jq
ZWN0SWQgPSAiZmFrZS1yZW1vdGUtb2JqZWN0IjsKIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3Qu
U291cmNlQ29kZUxvY2F0aW9uUHJvbWlzZSA9IHsKICAgICBOb1NvdXJjZUZvdW5kOiAicmVtb3Rl
LW9iamVjdC1zb3VyY2UtY29kZS1sb2NhdGlvbi1wcm9taXNlLW5vLXNvdXJjZS1mb3VuZCIsCiAg
ICAgTWlzc2luZ09iamVjdElkOiAicmVtb3RlLW9iamVjdC1zb3VyY2UtY29kZS1sb2NhdGlvbi1w
cm9taXNlLW1pc3Npbmctb2JqZWN0LWlkIgotfQorfTsKIAogLy8gRklYTUU6IFBoYXNlIG91dCB0
aGlzIGRlcHJlY2F0ZWQgY2xhc3MuCiBXZWJJbnNwZWN0b3IuRGVwcmVjYXRlZFJlbW90ZU9iamVj
dFByb3BlcnR5ID0gY2xhc3MgRGVwcmVjYXRlZFJlbW90ZU9iamVjdFByb3BlcnR5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9TY3JpcHRQ
cm9maWxlck9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvU2NyaXB0UHJvZmlsZXJPYnNlcnZlci5qcwppbmRleCBlMTk2NDNmLi4wZDI5OTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9TY3JpcHRQcm9maWxlck9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL1NjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIuanMKQEAgLTQxLDcg
KzQxLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVyT2JzZXJ2ZXIgPSBjbGFzcyBTY3Jp
cHRQcm9maWxlck9ic2VydmVyCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVN
YW5hZ2VyLnNjcmlwdFByb2ZpbGVyVHJhY2tpbmdDb21wbGV0ZWQoc2FtcGxlcyk7CiAgICAgfQot
ICAgIAorCiAgICAgcHJvZ3JhbW1hdGljQ2FwdHVyZVN0YXJ0ZWQoKQogICAgIHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5zY3JpcHRQcm9maWxlclByb2dyYW1tYXRpY0Nh
cHR1cmVTdGFydGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3MuanMKaW5kZXggNzc1MzY0
NS4uNzUwNGFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC9Gcm9udGVuZFRlc3RIYXJuZXNzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Rlc3QvRnJvbnRlbmRUZXN0SGFybmVzcy5qcwpAQCAtMTY2LDE0ICsx
NjYsMTQgQEAgRnJvbnRlbmRUZXN0SGFybmVzcyA9IGNsYXNzIEZyb250ZW5kVGVzdEhhcm5lc3Mg
ZXh0ZW5kcyBUZXN0SGFybmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyYW1lLmlu
ZGV4T2YoIltuYXRpdmUgY29kZV0iKSAhPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnJhbWVMb2NhdGlvbiA9ICJbbmF0aXZlIGNvZGVdIjsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZUxvY2F0aW9uID0gIigi
ICsgZnJhbWVMb2NhdGlvbiArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1l
TG9jYXRpb24gPSAiKCIgKyBmcmFtZUxvY2F0aW9uICsgIikiOwogCiAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYCMke2l9OiAke2ZyYW1lTmFtZX0gJHtmcmFtZUxvY2F0aW9ufWA7CiAg
ICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZFJlc3Vs
dCgiVFJBQ0U6ICIgKyBBcnJheS5mcm9tKGFyZ3VtZW50cykuam9pbigiICIpKTsKICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5hZGRSZXN1bHQoc2FuaXRpemVkRnJhbWVzLmpvaW4oIlxuIikpOwog
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAgICAgICAg
IH0KIAogICAgICAgICBsZXQgcmVkaXJlY3RlZE1ldGhvZHMgPSB7fTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvSW5zcGVjdG9yUHJvdG9jb2wu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L0luc3BlY3RvclBy
b3RvY29sLmpzCmluZGV4IGJkNTU4MmIuLjYwZWM2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvSW5zcGVjdG9yUHJvdG9jb2wuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9JbnNwZWN0b3JQcm90b2Nv
bC5qcwpAQCAtNDQsNyArNDQsNyBAQCBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCA9IGZ1
bmN0aW9uKG1ldGhvZE9yT2JqZWN0LCBwYXJhbXMsIGhhbmRsZXIpCiAgICAgdGhpcy5fc2VuZE1l
c3NhZ2UobWVzc2FnZU9iamVjdCk7CiAKICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdElkOwotfQor
fTsKIAogSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kID0gZnVuY3Rpb24oYXJncykKIHsK
QEAgLTUyLDcgKzUyLDcgQEAgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kID0gZnVuY3Rp
b24oYXJncykKICAgICBsZXQgbWVzc2FnZU9iamVjdCA9IHttZXRob2QsIHBhcmFtcywgaWQ6ICsr
dGhpcy5fcmVxdWVzdElkfTsKIAogICAgIHJldHVybiB0aGlzLmF3YWl0TWVzc2FnZShtZXNzYWdl
T2JqZWN0KTsKLX0KK307CiAKIEluc3BlY3RvclByb3RvY29sLmF3YWl0TWVzc2FnZSA9IGZ1bmN0
aW9uKG1lc3NhZ2VPYmplY3QpCiB7CkBAIC03MCw3ICs3MCw3IEBAIEluc3BlY3RvclByb3RvY29s
LmF3YWl0TWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgICAgIHRoaXMuX2Rp
c3BhdGNoVGFibGVbcmVxdWVzdElkXSA9IHtyZXNvbHZlLCByZWplY3R9OwogICAgICAgICB0aGlz
Ll9zZW5kTWVzc2FnZShtZXNzYWdlT2JqZWN0KTsKICAgICB9KTsKLX0KK307CiAKIEluc3BlY3Rv
clByb3RvY29sLmF3YWl0RXZlbnQgPSBmdW5jdGlvbihhcmdzKQogewpAQCAtODIsOSArODIsOSBA
QCBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdEV2ZW50ID0gZnVuY3Rpb24oYXJncykKICAgICAgICAg
SW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyW2V2ZW50XSA9IGZ1bmN0aW9uKG1lc3NhZ2Up
IHsKICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlcltldmVudF0gPSB1
bmRlZmluZWQ7CiAgICAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpOwotICAgICAgICB9CisgICAg
ICAgIH07CiAgICAgfSk7Ci19Cit9OwogCiBJbnNwZWN0b3JQcm90b2NvbC5fc2VuZE1lc3NhZ2Ug
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogewpAQCAtOTQsNyArOTQsNyBAQCBJbnNwZWN0b3JQ
cm90b2NvbC5fc2VuZE1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgICAgICBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QudW5idWZmZXJlZExvZyhgZnJvbnRlbmQ6ICR7bWVzc2FnZVN0
cmluZ31gKTsKIAogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zZW5kTWVzc2FnZVRvQmFja2Vu
ZChtZXNzYWdlU3RyaW5nKTsKLX0KK307CiAKIEluc3BlY3RvclByb3RvY29sLmFkZEV2ZW50TGlz
dGVuZXIgPSBmdW5jdGlvbihldmVudFR5cGVPck9iamVjdCwgbGlzdGVuZXIpCiB7CkBAIC0xMjAs
NyArMTIwLDcgQEAgSW5zcGVjdG9yUHJvdG9jb2wuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9u
KGV2ZW50VHlwZU9yT2JqZWN0LCBsaXN0ZW5lcikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
YW5ub3QgcmVnaXN0ZXIgdGhlIHNhbWUgbGlzdGVuZXIgbW9yZSB0aGFuIG9uY2UuIik7CiAKICAg
ICBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7Ci19Cit9OwogCiBJbnNwZWN0b3JQcm90b2NvbC5j
aGVja0ZvckVycm9yID0gZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpCiB7CkBAIC0xMjksNyArMTI5
LDcgQEAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvciA9IGZ1bmN0aW9uKHJlc3BvbnNl
T2JqZWN0KQogICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgIHRo
cm93ICJQUk9UT0NPTCBFUlJPUiI7CiAgICAgfQotfQorfTsKIAogSW5zcGVjdG9yUHJvdG9jb2wu
ZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQgPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogewpA
QCAtMTc5LDQgKzE3OSw0IEBAIEluc3BlY3RvclByb3RvY29sLmRpc3BhdGNoTWVzc2FnZUZyb21C
YWNrZW5kID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICAgICAgICAgICAgICByZXNvbHZl
KG1lc3NhZ2VPYmplY3QucmVzdWx0KTsKICAgICAgICAgfQogICAgIH0KLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Byb3RvY29sVGVz
dEhhcm5lc3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1By
b3RvY29sVGVzdEhhcm5lc3MuanMKaW5kZXggYTJhNWM2Ni4uZDBlZjYxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9Qcm90b2NvbFRlc3RIYXJu
ZXNzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvUHJv
dG9jb2xUZXN0SGFybmVzcy5qcwpAQCAtNjIsNyArNjIsNyBAQCBQcm90b2NvbFRlc3RIYXJuZXNz
ID0gY2xhc3MgUHJvdG9jb2xUZXN0SGFybmVzcyBleHRlbmRzIFRlc3RIYXJuZXNzCiAgICAgICAg
IGxldCBhcmdzID0gewogICAgICAgICAgICAgbWV0aG9kOiAiUnVudGltZS5ldmFsdWF0ZSIsCiAg
ICAgICAgICAgICBwYXJhbXM6IHtleHByZXNzaW9ufQotICAgICAgICB9CisgICAgICAgIH07CiAK
ICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAg
IEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKGFyZ3MsIGNhbGxiYWNrKTsKQEAgLTc1LDQg
Kzc1LDQgQEAgUHJvdG9jb2xUZXN0SGFybmVzcyA9IGNsYXNzIFByb3RvY29sVGVzdEhhcm5lc3Mg
ZXh0ZW5kcyBUZXN0SGFybmVzcwogICAgICAgICB0aGlzLmR1bXBBY3Rpdml0eVRvU3lzdGVtQ29u
c29sZSA9IHRydWU7CiAgICAgICAgIHRoaXMuZHVtcEluc3BlY3RvclByb3RvY29sTWVzc2FnZXMg
PSB0cnVlOwogICAgIH0KLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0L1Rlc3QuanMKaW5kZXggZTBhYmRkNi4uMmM4ZGEyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcwpAQCAtNzUsNyAr
NzUsNyBAQCBXZWJJbnNwZWN0b3IubG9hZGVkID0gZnVuY3Rpb24oKQogCiAgICAgLy8gR2xvYmFs
IHNldHRpbmdzLgogICAgIHRoaXMuc2hvd1NoYWRvd0RPTVNldHRpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLlNldHRpbmcoInNob3ctc2hhZG93LWRvbSIsIHRydWUpOwotfQorfTsKIAogV2ViSW5zcGVj
dG9yLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiB7CkBAIC04NSw3ICs4NSw3IEBAIFdlYklu
c3BlY3Rvci5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogICAgIC8vIFRlbGwgdGhlIEluc3Bl
Y3RvckZyb250ZW5kSG9zdCB3ZSBsb2FkZWQsIHdoaWNoIGNhdXNlcyB0aGUgd2luZG93IHRvIGRp
c3BsYXkKICAgICAvLyBhbmQgcGVuZGluZyBJbnNwZWN0b3JGcm9udGVuZEFQSSBjb21tYW5kcyB0
byBiZSBzZW50LgogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkZWQoKTsKLX0KK307CiAK
IFdlYkluc3BlY3Rvci5pc0RlYnVnVUlFbmFibGVkID0gKCkgPT4gZmFsc2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3Mu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNz
LmpzCmluZGV4IDE3MGIzMjAuLjU2NjhiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcwpAQCAtMTE3LDcgKzEx
Nyw3IEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuT2JqZWN0CiAgICAgewogICAgICAgICBpZiAobWVzc2FnZSBpbnN0YW5jZW9mIEVsZW1lbnQp
CiAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZS50ZXh0Q29udGVudDsKLSAgICAgICAgCisKICAg
ICAgICAgcmV0dXJuICh0eXBlb2YgbWVzc2FnZSAhPT0gInN0cmluZyIpID8gSlNPTi5zdHJpbmdp
ZnkobWVzc2FnZSkgOiBtZXNzYWdlOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RTdWl0ZS5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdFN1aXRlLmpzCmluZGV4IDAxZDg1NGUu
LjVjMzQ0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QvVGVzdFN1aXRlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QvVGVzdFN1aXRlLmpzCkBAIC03OSwxMCArNzksMTAgQEAgVGVzdFN1aXRlID0gY2xh
c3MgVGVzdFN1aXRlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJUcmllZCB0byBhZGQgdGVzdCBjYXNlIHdpdGhvdXQgYHRlc3RgIGZ1bmN0
aW9uLiIpOwogCiAgICAgICAgIGlmICh0ZXN0Y2FzZS5zZXR1cCAmJiB0eXBlb2YgdGVzdGNhc2Uu
c2V0dXAgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRyaWVk
IHRvIGFkZCB0ZXN0IGNhc2Ugd2l0aCBpbnZhbGlkIGBzZXR1cGAgcGFyYW1ldGVyIChtdXN0IGJl
IGEgZnVuY3Rpb24pLiIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRyaWVkIHRvIGFk
ZCB0ZXN0IGNhc2Ugd2l0aCBpbnZhbGlkIGBzZXR1cGAgcGFyYW1ldGVyIChtdXN0IGJlIGEgZnVu
Y3Rpb24pLiIpOwogCiAgICAgICAgIGlmICh0ZXN0Y2FzZS50ZWFyZG93biAmJiB0eXBlb2YgdGVz
dGNhc2UudGVhcmRvd24gIT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlRyaWVkIHRvIGFkZCB0ZXN0IGNhc2Ugd2l0aCBpbnZhbGlkIGB0ZWFyZG93bmAgcGFyYW1l
dGVyIChtdXN0IGJlIGEgZnVuY3Rpb24pLiIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IlRyaWVkIHRvIGFkZCB0ZXN0IGNhc2Ugd2l0aCBpbnZhbGlkIGB0ZWFyZG93bmAgcGFyYW1ldGVy
IChtdXN0IGJlIGEgZnVuY3Rpb24pLiIpOwogCiAgICAgICAgIHRoaXMudGVzdGNhc2VzLnB1c2go
dGVzdGNhc2UpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyL0VzcHJpbWFGb3JtYXR0ZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Fc3ByaW1hRm9y
bWF0dGVyLmpzCmluZGV4IDM1MzcxZGYuLmQ3YWFkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyL0VzcHJpbWFGb3JtYXR0
ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9G
b3JtYXR0ZXIvRXNwcmltYUZvcm1hdHRlci5qcwpAQCAtMjYyLDcgKzI2Miw3IEBAIEVzcHJpbWFG
b3JtYXR0ZXIgPSBjbGFzcyBFc3ByaW1hRm9ybWF0dGVyCiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAobm9kZVR5cGUgPT09ICJMb2dpY2FsRXhwcmVzc2lvbiIgfHwgbm9kZVR5cGUgPT09ICJCaW5h
cnlFeHByZXNzaW9uIikgewotICAgICAgICAgICAgaWYgKCh0b2tlblZhbHVlICE9PSAiKCIgJiYg
dG9rZW5WYWx1ZSAhPT0gIikiKSkgeworICAgICAgICAgICAgaWYgKHRva2VuVmFsdWUgIT09ICIo
IiAmJiB0b2tlblZhbHVlICE9PSAiKSIpIHsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZFNwYWNlKCk7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRUb2tlbih0b2tlblZhbHVl
LCB0b2tlbk9mZnNldCk7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTcGFjZSgpOwpA
QCAtODc1LDQgKzg3NSw0IEBAIEVzcHJpbWFGb3JtYXR0ZXIgPSBjbGFzcyBFc3ByaW1hRm9ybWF0
dGVyCiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydCghcHJvZ3JhbU5vZGUudHJhaWxpbmdDb21t
ZW50cyk7CiAgICAgICAgIH0KICAgICB9Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90
V29ya2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9I
ZWFwU25hcHNob3QvSGVhcFNuYXBzaG90V29ya2VyLmpzCmluZGV4IGJhMGE0Y2QuLjEzZjY4NDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMv
SGVhcFNuYXBzaG90L0hlYXBTbmFwc2hvdFdvcmtlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3RXb3Jr
ZXIuanMKQEAgLTg4LDcgKzg4LDcgQEAgSGVhcFNuYXBzaG90V29ya2VyID0gY2xhc3MgSGVhcFNu
YXBzaG90V29ya2VyCiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQotICAgIAorCiAgICAgX2hhbmRs
ZU1lc3NhZ2UoZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgZGF0YSA9IGV2ZW50LmRhdGE7Cg==
</data>
<flag name="review"
          id="311266"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>