<?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>195353</bug_id>
          
          <creation_ts>2019-03-05 20:21:39 -0800</creation_ts>
          <short_desc>[ContentChangeObserver] Add a setting to be able to turn content change observation on/off</short_desc>
          <delta_ts>2019-03-07 16:36:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1512981</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-03-05 20:21:39 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512982</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-05 20:22:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/48626394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512984</commentid>
    <comment_count>2</comment_count>
      <attachid>363728</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-05 20:33:43 -0800</bug_when>
    <thetext>Created attachment 363728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513001</commentid>
    <comment_count>3</comment_count>
      <attachid>363732</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-05 22:08:46 -0800</bug_when>
    <thetext>Created attachment 363732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513002</commentid>
    <comment_count>4</comment_count>
      <attachid>363733</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-05 22:11:01 -0800</bug_when>
    <thetext>Created attachment 363733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513004</commentid>
    <comment_count>5</comment_count>
      <attachid>363734</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-05 22:14:08 -0800</bug_when>
    <thetext>Created attachment 363734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513535</commentid>
    <comment_count>6</comment_count>
      <attachid>363883</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-07 09:20:39 -0800</bug_when>
    <thetext>Created attachment 363883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513620</commentid>
    <comment_count>7</comment_count>
      <attachid>363883</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-07 11:24:47 -0800</bug_when>
    <thetext>Comment on attachment 363883
Patch

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

&gt; Source/WebCore/page/Settings.yaml:450
&gt; +  initial: true

Follow defaultTextAutosizingEnabled().

&gt; Source/WebCore/testing/InternalSettings.cpp:303
&gt; +    settings().setContentChangeObserverEnabled(false);

I think this is wrong.

&gt; Source/WebKit/Shared/WebPreferences.yaml:489
&gt; +  defaultValue: true

Like WebCore::Settings::defaultTextAutosizingEnabled()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513713</commentid>
    <comment_count>8</comment_count>
      <attachid>363927</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-07 14:21:49 -0800</bug_when>
    <thetext>Created attachment 363927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513717</commentid>
    <comment_count>9</comment_count>
      <attachid>363927</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-07 14:30:23 -0800</bug_when>
    <thetext>Comment on attachment 363927
Patch

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

&gt; Source/WebCore/page/Settings.yaml:450
&gt; +  initial: true

Do like   initial: defaultSmartInsertDeleteEnabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513747</commentid>
    <comment_count>10</comment_count>
      <attachid>363939</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-07 15:13:17 -0800</bug_when>
    <thetext>Created attachment 363939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513802</commentid>
    <comment_count>11</comment_count>
      <attachid>363939</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-07 16:36:49 -0800</bug_when>
    <thetext>Comment on attachment 363939
Patch

Clearing flags on attachment: 363939

Committed r242621: &lt;https://trac.webkit.org/changeset/242621&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513803</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-07 16:36:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363728</attachid>
            <date>2019-03-05 20:33:43 -0800</date>
            <delta_ts>2019-03-05 22:08:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195353-20190305203342.patch</filename>
            <type>text/plain</type>
            <size>44667</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjNlYmYyMzQ5NTdkY2Jl
Yzg4YzYzM2FjZDE2ZDU4ZGU2ZGNmODcxYS4uOGNlOTNkZGZkNmU4MWYwMzE1ZTRkZjgwODM5OGE2
MjY0ZjI4ZGJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTAzLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNl
cnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2Jz
ZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgY29udGVudCBv
YnNlcnZhdGlvbiB0ZXN0cyB0byBhIGRlZGljYXRlZCBkaXJlY3RvcnkuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3Rl
YWQtb2YtaG92ZXItc2ltcGxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5j
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2Vy
dmF0aW9uL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVkdWxl
LWFuZC1mb3JjZS1yZWxhbGMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUt
c2Vjb25kLXRpbWVyLmh0bWwKKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAg
ICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjppc05vdGlmeUNvbnRlbnRDaGFuZ2VBbGxv
d2VkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6aXNOb3RpZnlDb250ZW50
Q2hhbmdlQWxsb3dlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOgorCiAyMDE5LTAzLTA1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBTaG91bGQgbm90IHNjcm9sbCB3aGVuIGNoZWNr
Ym94LCByYWRpbywgc3VibWl0LCByZXNldCwgb3IgYnV0dG9uIGlzIHNwYWNlYmFyIGFjdGl2YXRl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBhNmE5ZDdiMmYzYjk4ODA0MGQzODJiM2U3MzhkMTJjNzk1OWJiOTVlLi45
OTM2MzE1MWY3NTVhMDg5OTliOTRmNDM4Y2EyMWNhZjdmZThkOTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxl
IHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1Nl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfY29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRo
ZXRpY0NsaWNrKToKKwogMjAxOS0wMy0wNSAgVGFrYXNoaSBLb21vcmkgIDxUYWthc2hpLktvbW9y
aUBzb255LmNvbT4KIAogICAgICAgICBbQ3VybF0gSW1wbGVtZW50IENvb2tpZSBBY2NlcHQgUG9s
aWN5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDE0ZjNjZGI4YzM2MTFjNmM2NTgz
M2UxZDJkYTdhMDczMjc0OTQxNmIuLjJhZTNmOTFmZjQxY2Y5YWZlYTFlZDQ1YWI1NGI3YTMwZjAx
MjA2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
OS0wMy0wNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJdIEFkZCBhIHNldHRpbmcgdG8gYmUgYWJsZSB0byB0dXJuIGNvbnRl
bnQgY2hhbmdlIG9ic2VydmF0aW9uIG9uL29mZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODYy
NjM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0p
OgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBjb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVk
XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVu
YWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVu
Y2VzQ2hhbmdlZDpdKToKKwogMjAxOS0wMy0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc29tZSBtb3JlIHVudXNlZCAzMi1iaXQgY29k
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJk
ZDRhOGRhMjU3ZThhYjk3N2MuLmQwNTBiMWQwNDUxZjY3YzQ1ZThlMjc2ODc4Mjc5ZDdhYzFkZDc0
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTQ0Niw2ICs0NDYsOSBAQCBzaW1w
bGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKICAgb25D
aGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwogCitjb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisKIHN1YnBpeGVsQ1NTT01FbGVtZW50TWV0
cmljc0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwCmluZGV4IDI3MTkwYzhlZTc1MTBlNTEy
NmQ1ZTA2NjI1YTI5MDQ0NDc2YzU3NjUuLmYwZDU4MTVmN2Y3ODBhNDQ2YWEwMjUwY2FiODVjNDU4
MjQxZWM2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFu
Z2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5n
ZU9ic2VydmVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw2ICs0NCw4IEBAIENv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6Q29udGVudENoYW5nZU9ic2VydmVyKERvY3VtZW50JiBkb2N1
bWVudCkKIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZEluc3RhbGxET01UaW1lcihj
b25zdCBET01UaW1lciYgdGltZXIsIFNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQog
eworICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX2RvY3VtZW50LmFjdGl2ZURPTU9i
amVjdHNBcmVTdXNwZW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0aW1lb3V0ID4g
MjUwX21zIHx8ICFzaW5nbGVTaG90KQpAQCAtMTc2LDYgKzE3OSwxMyBAQCBib29sIENvbnRlbnRD
aGFuZ2VPYnNlcnZlcjo6aGFzRGV0ZXJtaW5hdGVTdGF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG9i
c2VydmVkQ29udGVudENoYW5nZSgpID09IFdLQ29udGVudE5vQ2hhbmdlICYmICFoYXNQZW5kaW5n
QWN0aXZpdHkoKTsKIH0KIAorI2lmICFBU1NFUlRfRElTQUJMRUQKK2Jvb2wgQ29udGVudENoYW5n
ZU9ic2VydmVyOjppc05vdGlmeUNvbnRlbnRDaGFuZ2VBbGxvd2VkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQo
KSAmJiAhbV9tb3VzZU1vdmVkSXNCZWluZ0Rpc3BhdGNoZWQ7Cit9CisjZW5kaWYKKwogdm9pZCBD
b250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmFkanVzdE9ic2VydmVkU3RhdGUoRXZlbnQgZXZlbnQpCiB7
CiAgICAgYXV0byBub3RpZnlDb250ZW50Q2hhbmdlSWZOZWVkZWQgPSBbJl0gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaAppbmRleCBlMzFjZDAy
YTViYjZhNjM4OTI2MDEyNWVjOWI3ZjlmOThjOGI2YzRjLi4xMDJhY2E0ZmJlMzYzZjY4M2QzYzVj
MWJkMTg5MzUxNTcyNTYzODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9D
b250ZW50Q2hhbmdlT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250
ZW50Q2hhbmdlT2JzZXJ2ZXIuaApAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIGhhc09ic2VydmVkRE9NVGlt
ZXIoKSB8fCBtX2RvY3VtZW50Lmhhc1BlbmRpbmdTdHlsZVJlY2FsYygpOyB9CiAjaWYgIUFTU0VS
VF9ESVNBQkxFRAotICAgIGJvb2wgaXNOb3RpZnlDb250ZW50Q2hhbmdlQWxsb3dlZCgpIGNvbnN0
IHsgcmV0dXJuICFtX21vdXNlTW92ZWRJc0JlaW5nRGlzcGF0Y2hlZDsgfQorICAgIGJvb2wgaXNO
b3RpZnlDb250ZW50Q2hhbmdlQWxsb3dlZCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBlbnVtIGNs
YXNzIEV2ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
CmluZGV4IDVkZmIwNjUwNTZkNDdhYjE3ODIzNGMwNmUzNTlmZmY0NDk5YjMyYTMuLjFmN2ZmMDU1
ZjkxNDQ2MjhhZTRiNzhiYTcxNDA1YzZlYjE5NTVhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMzAwLDYgKzMwMCw3IEBAIHZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCiAgICAgbV9iYWNrdXAgPSBCYWNr
dXAgeyBzZXR0aW5ncygpIH07CiAKICAgICBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjpyZXNl
dFRvQ29uc2lzdGVudFN0YXRlKCk7CisgICAgc2V0dGluZ3MoKS5zZXRDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJFbmFibGVkKGZhbHNlKTsKIH0KIAogU2V0dGluZ3MmIEludGVybmFsU2V0dGluZ3M6OnNl
dHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IGUyYWU2YTgxMmI2NzgwYTdlMDgwNDIyNTYxMmRjYWFiYzkyZTEwOWEuLmFhZmQxMTViZmUy
NDlmOTllNTg0NjZlMWQxM2IzODZiYjFhNjcwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbApAQCAtNDg0LDYgKzQ4NCwxMCBAQCBTaW1wbGVMaW5lTGF5b3V0RW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIAorQ29udGVudENoYW5n
ZU9ic2VydmVyRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IHRydWUKKwog
U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZh
dWx0VmFsdWU6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IDMwNTEzMzBjMGM2NzMyMzk1YTNlYmU1ZGI4MjAyNzlmYzE1OGYz
ODEuLmM4MmJjYTVmZjFlODVlNGY1OTNmMTA3YWVhOTI0NzBkYzgxYjljYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xMzUwLDYg
KzEzNTAsMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9y
ZGVyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXIKICAgICByZXR1cm4gdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+c2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQoKTsKIH0K
IAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+c2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChmbGFnKTsKK30K
KworYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCk7Cit9CisKIHZvaWQgV0tQ
cmVmZXJlbmNlc1NldE5ld0Jsb2NrSW5zaWRlSW5saW5lTW9kZWxFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYsIGJvb2wpCiB7CiAgICAgLy8gRklYTUU6IFJlbW92ZSBTYWZhcmkgY2FsbCB0byB0aGlz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
c1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXNSZWZQcml2YXRlLmgKaW5kZXggN2MxMzVkODM5NDIxOTU3NTZiN2Q2NzMyNWQ4YjgxNjhhOTAy
M2M0MS4uMjBjMzZmYTY3YmVhNWYyMDRiYjFlMTM1YjEwMWFhMzM1NzQ0ZTE4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oCkBAIC0zMzQsNiArMzM0LDkgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dl
dFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYsIGJvb2wpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNp
bXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCitX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOworCiAvLyBE
ZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXROZXdCbG9j
a0luc2lkZUlubGluZU1vZGVsRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKIFdLX0VY
UE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXROZXdCbG9ja0luc2lkZUlubGluZU1vZGVsRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggYjNhZjIyMzI2OGM5ZWMwYTZkZmZhYjkwN2Qx
OTQ3YzhkZmE0M2JiYS4uMDUwMDA4NDEyYjQxMWQ1NTg4ZjMyNWJjMjBlNzYzMzM5OTdiNDY5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0KQEAgLTMzNSw2ICszMzUsMTYgQEAgLSAodm9pZClfc2V0U2ltcGxlTGluZUxheW91dERl
YnVnQm9yZGVyc0VuYWJsZWQ6KEJPT0wpc2ltcGxlTGluZUxheW91dERlYnVnQm9yZGUKICAgICBf
cHJlZmVyZW5jZXMtPnNldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKHNpbXBs
ZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKTsKIH0KIAorLSAoQk9PTClfY29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmNvbnRlbnRD
aGFuZ2VPYnNlcnZlckVuYWJsZWQoKTsKK30KKworLSAodm9pZClfc2V0Q29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZDooQk9PTCljb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkCit7CisgICAg
X3ByZWZlcmVuY2VzLT5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKGNvbnRlbnRDaGFu
Z2VPYnNlcnZlckVuYWJsZWQpOworfQorCiAtIChCT09MKV9hY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0MzVkMWUxNGE1OGQ2ODY4YWRiNzJmYjVmOGM1NTgw
YWQ1Nzg4ZGFjLi5lZTY2MzljZGNkNjM5ZTllMWZkMjJlOTQ1NGZkMDMxMjk3YzQ4OGMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlc1ByaXZhdGUuaApAQCAtNzIsNiArNzIsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0VmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25z
IF92aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNpbXBsZUxp
bmVMYXlvdXRFbmFibGVkOikgQk9PTCBfc2ltcGxlTGluZUxheW91dEVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KSBCT09MIF9z
aW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENv
bnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6KSBCT09MIF9jb250ZW50Q2hhbmdlT2JzZXJ2ZXJF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZDopIEJPT0wgX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2lu
Z0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFi
bGVkOikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0MmVlNzU3YTFjNmZjNGJh
NjgyYWI4YTczYjIxZmViMTAwNGYxMDI5Li45OTg0YzRlNTM0NjZkMTM4YThjMGViZTVmMWQwMmZk
ZmY5ODcxODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtNTY2LDYgKzU2Niw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxl
U3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3Jl
OjpGCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFu
Z2U6IHsKICAgICAgICAgLy8gV2FpdCBmb3IgY2FsbGJhY2sgdG8gY29tcGxldGVQZW5kaW5nU3lu
dGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSB0byBkZWNpZGUgd2hldGhlciB0
byBzZW5kIHRoZSBjbGljayBldmVudC4KKyAgICAgICAgQVNTRVJUKHJlc3BvbmRpbmdEb2N1bWVu
dC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSk7CiAgICAgICAgIG1f
cGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2s7CiAgICAg
ICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBsb2NhdGlvbjsKICAgICAgICAg
bV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSBtb2RpZmllcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCBmMDFlZDZkNjI5OGQyZjk4NDk1MDc1ZDliMGFlMTZhODcwYjU4MmVmLi42
MGEwMDE3YzY4ZGIyMGNiN2E1NjI4ODllYzZlMjM4NWFjYzE0Zjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTExMSw2ICsxMTEsNyBAQAogI2RlZmluZSBXZWJLaXRTdWJwaXhlbEFudGlhbGlh
c2VkTGF5ZXJUZXh0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTdWJwaXhlbEFudGlhbGlh
c2VkTGF5ZXJUZXh0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U2ltcGxlTGluZUxheW91dEVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U2ltcGxlTGluZUxheW91dEVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkIgorI2RlZmluZSBXZWJL
aXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENvbnRl
bnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFNob3dSZXBhaW50Q291bnRl
clByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93UmVwYWludENvdW50ZXIiCiAjZGVmaW5lIFdlYktp
dFdlYkF1ZGlvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRXZWJBdWRpb0VuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdFdlYkdMRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRXZWJHTEVuYWJs
ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCBlY2ZmMWE0NmU5ZjdmYTJiMWE1ZjMwZWFiOGY1NmNjZWMxNmNmNmU3Li5hZTE1
Nzc0MWQ1NWQwNDQwZmE3ZWE5MTE0Mjc0OTE2YTYwMTg5MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTUwOSw2ICs1MDks
NyBAQCArICh2b2lkKWluaXRpYWxpemUKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29s
Ok5PXSwgICBXZWJLaXRTaG93RGVidWdCb3JkZXJzUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRTaW1wbGVMaW5lTGF5b3V0RW5hYmxl
ZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAg
V2ViS2l0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWRQcmVmZXJlbmNlS2V5LAor
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdENvbnRlbnRDaGFu
Z2VPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVy
V2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXksCiAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0V2ViR0xFbmFibGVk
UHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgIFdl
YktpdEZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZ1ByZWZlcmVuY2VLZXksCkBAIC0yMDg0LDYg
KzIwODUsMTYgQEAgLSAodm9pZClzZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxl
ZDooQk9PTCllbmFibGVkCiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZvcktleTpX
ZWJLaXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZFByZWZlcmVuY2VLZXldOwog
fQogCistIChCT09MKWNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQKK3sKKyAgICByZXR1cm4g
W3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVk
UHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5h
YmxlZDooQk9PTCllbmFibGVkCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZv
cktleTpXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9
CisKIC0gKEJPT0wpc2hvd1JlcGFpbnRDb3VudGVyCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29s
VmFsdWVGb3JLZXk6V2ViS2l0U2hvd1JlcGFpbnRDb3VudGVyUHJlZmVyZW5jZUtleV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCBmYWJkOGRlM2FkZWI2ZjMzY2FjNmVlYTQ0NThkODU4ZjI4NmZmOTJiLi5l
OGRmYmQzODYxMzBiOTMzMjc3MGZiMmRjNmI1OGU0MTA1NWNjOTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
QEAgLTI1MSw2ICsyNTEsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVN
b2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogLSAoQk9PTClzaW1w
bGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZDsKIC0gKHZvaWQpc2V0U2ltcGxlTGluZUxh
eW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKIAorLSAoQk9PTCljb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOworLSAodm9pZClzZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJF
bmFibGVkOihCT09MKWVuYWJsZWQ7CisKIC0gKEJPT0wpc2hvd1JlcGFpbnRDb3VudGVyOwogLSAo
dm9pZClzZXRTaG93UmVwYWludENvdW50ZXI6KEJPT0wpc2hvdzsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQwNjJlOTcyMzYzNGFlOTYwMTM0NGI1
N2Q3YTczZDNjNmE4MTM1M2IuLjM4MTZiM2Y2NzJkMzFjOTA0MGJiMWZkNjE5MDZlY2M3NTU1Mzk1
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5
MTcsNiArMjkxNyw3IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5j
ZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdzLnNldFNob3dEZWJ1Z0JvcmRlcnMoW3ByZWZl
cmVuY2VzIHNob3dEZWJ1Z0JvcmRlcnNdKTsKICAgICBzZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5
b3V0RW5hYmxlZChbcHJlZmVyZW5jZXMgc2ltcGxlTGluZUxheW91dEVuYWJsZWRdKTsKICAgICBz
ZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZChbcHJlZmVyZW5j
ZXMgc2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5z
ZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKFtwcmVmZXJlbmNlcyBjb250ZW50Q2hhbmdl
T2JzZXJ2ZXJFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U2hvd1JlcGFpbnRDb3VudGVyKFtw
cmVmZXJlbmNlcyBzaG93UmVwYWludENvdW50ZXJdKTsKICAgICBzZXR0aW5ncy5zZXRXZWJHTEVu
YWJsZWQoW3ByZWZlcmVuY2VzIHdlYkdMRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldFN1YnBp
eGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHN1YnBpeGVsQ1NTT01F
bGVtZW50TWV0cmljc0VuYWJsZWRdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NjhkNmEwYzYyYzMwZThkNDk3NDdkMTk4NzM3MWE5Y2NmMGQ1
NGU1Li5lZmYwZWUzM2YyY2RjYmZkMzNiNWFhZmZmMjI5MTAzNzNjZmIwOThhIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTktMDMtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29udGVudENoYW5nZU9ic2VydmVyXSBBZGQgYSBzZXR0aW5nIHRvIGJlIGFibGUgdG8gdHVybiBj
b250ZW50IGNoYW5nZSBvYnNlcnZhdGlvbiBvbi9vZmYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NDg2MjYzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyk6CisKIDIwMTktMDMtMDUgIFRha2FzaGkgS29tb3JpICA8VGFrYXNoaS5Lb21vcmlA
c29ueS5jb20+CiAKICAgICAgICAgW0N1cmxdIEltcGxlbWVudCBDb29raWUgQWNjZXB0IFBvbGlj
eS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVy
SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0K
aW5kZXggYjAxMWJjYjhiYzRkMjVmZWZmNjA0NzYyNGJlODkwYWFjZGZlNmE4Mi4uZTU3MjRmMTZh
NGNkYzk0NmVmMWQzZjZlMTRhYmE0ZDhjNzMwODU4NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KQEAgLTEyOCw2ICsxMjgsNyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1
ZXMoKQogewogICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBwbGF0Zm9ybVByZWZl
cmVuY2VzKCk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFRleHRBdXRvc2l6aW5nRW5hYmxlZChwcmVm
ZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNTZXRDb250ZW50Q2hhbmdlT2JzZXJ2
ZXJFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYg
b3B0aW9ucykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBjNjgwYWJhZjlkNjM0YjcwYmY1NzQ2NTMyMDc4ZTMyY2VkZTQyYzIz
Li42MjE2NTI3ZWVmMDI3YmRkMjNhZjAwMGU4ZDU3YTgxYzRhZjcyNTNhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTktMDMtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29udGVudENoYW5nZU9ic2VydmVyXSBBZGQgYSBzZXR0aW5nIHRvIGJlIGFibGUg
dG8gdHVybiBjb250ZW50IGNoYW5nZSBvYnNlcnZhdGlvbiBvbi9vZmYKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM1MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDg2MjYzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9j
bGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2staW5zdGVhZC1vZi1ob3Zlci1z
aW1wbGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250
ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2staW5zdGVhZC1v
Zi1ob3Zlci1zaW1wbGUuaHRtbC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29u
dGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaG92
ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUt
Y2hhbmdlLWlzLWFzeW5jLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHVjay13aXRo
LWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHVjay13
aXRoLWhvdmVyLXN0YXRlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1sLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVs
ZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJl
bGFsYy1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRl
bnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1y
ZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy5odG1sLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBl
bnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10
aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRo
ZS1zZWNvbmQtdGltZXIuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXIu
aHRtbC4KKwogMjAxOS0wMy0wNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gU2hvdWxkIG5vdCBzY3JvbGwgd2hlbiBjaGVja2JveCwgcmFkaW8sIHN1
Ym1pdCwgcmVzZXQsIG9yIGJ1dHRvbiBpcyBzcGFjZWJhciBhY3RpdmF0ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1pbnN0ZWFkLW9mLWhvdmVy
LXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
Y2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5NmEzMmRiYmI5OTU4N2Y5ZWIzYzA4M2FkZmI5MjkzNDkyZmU4YTRi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVBBU1MgaWYgY2xpY2tl
ZC4KLWNsaWNrZWQKLXRvb2x0aXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNDIzOGU0MGZmMjkzZjFmNTlmNTBl
ODMyNjg3NmRkNmFhOWY4YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQt
b2YtaG92ZXItc2ltcGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdnZXIgY2xpY2sgd2hlbiBo
b3ZlciB3b3VsZCBub3QgZGlzcGxheSBub24tY2xpY2thYmxlIGNvbnRlbnQuPC90aXRsZT4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2Ny
aXB0PgotPHN0eWxlPgotI3RhcHRoaXMgewotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6
IDQwMHB4OwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwotfQotPC9zdHlsZT4KLTxzY3Jp
cHQ+Ci1hc3luYyBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIg
fHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi0g
ICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGxldCB4
ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7Ci0gICAgbGV0IHkgPSByZWN0LnRvcCArIHJl
Y3QuaGVpZ2h0IC8gMjsKLQotCWF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7Ci0KLSAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0
ZXN0KCkiPgotPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgY2xpY2tlZC48L2Rpdj4KLTxwcmUgaWQ9
cmVzdWx0PjwvcHJlPgotPHNjcmlwdD4KLXRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vv
dmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAotCWxldCBuZXdDb250ZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0JbmV3Q29udGVudC5pbm5lckhUTUwgPSAidG9vbHRpcCI7
Ci0JZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuZXdDb250ZW50KTsJCQotfSwgZmFsc2UpOwot
Ci10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAg
IAotCXJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Ci19LCBmYWxzZSk7Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50
LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NmEzMmRiYmI5OTU4N2Y5ZWIzYzA4M2FkZmI5MjkzNDkyZmU4YTRiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQt
b2JzZXJ2YXRpb24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorUEFTUyBpZiBjbGlja2VkLgorY2xpY2tlZAordG9vbHRpcApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRp
b24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92
ZXItc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRjY2Y5YjRhMWU3YTk3NTViYTEyNjU2NTlkYTNm
YjQxYWNlYjQ4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxl
Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3Qg
dGhhdCB3ZSB0cmlnZ2VyIGNsaWNrIHdoZW4gaG92ZXIgd291bGQgbm90IGRpc3BsYXkgbm9uLWNs
aWNrYWJsZSBjb250ZW50LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXB0aGlzIHsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBib3JkZXI6IDFweCBz
b2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gdGVzdCgp
IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQorICAgICAgICByZXR1cm47CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKHRydWUpOwor
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
CisgICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKKyAgICBsZXQgeSA9IHJl
Y3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOworCisJYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKKwor
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiBjbGlja2VkLjwvZGl2
PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisJbGV0IG5ld0NvbnRlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKwluZXdDb250ZW50LmlubmVySFRNTCA9
ICJ0b29sdGlwIjsKKwlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5ld0NvbnRlbnQpOwkJCit9
LCBmYWxzZSk7CisKK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigg
ZXZlbnQgKSB7ICAgCisJcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsKK30sIGZhbHNlKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92ZXItd2hlbi1zdHlsZS1j
aGFuZ2UtaXMtYXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5
bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTY4NTM2MGZlYjk3NWJlNDBkNzBiY2M3Njg2
ZWExMDYwOWRlOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1h
c3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlmIG5vICdjbGlja2VkJyB0
ZXh0IGlzIHNob3duIGJlbG93LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1p
cy1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQt
b2JzZXJ2YXRpb24vaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYzYzZjcyNjc5NGJmMWUwMGRhZDdkNjhhMzUxMjMwNmYyMmQzNWFjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2
YXRpb24vaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbApAQCAtMCwwICsxLDY1
IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdnZXIgaG92
ZXIgd2hlbiB0aGUgY29udGVudCBjaGFuZ2UgaXMgYXN5bmMuPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgorI3RhcHRoaXMgeworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4
OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworfQorCisjaGlkZGVuRmlyc3QgeworICAg
IHZpc2liaWxpdHk6IGhpZGRlbjsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
YXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1cm47CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJFbmFibGVkKHRydWUpOworCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRo
IC8gMjsKKyAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOworCisgICAgYXdh
aXQgdGFwQXRQb2ludCh4LCB5KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJ0ZXN0KCkiPgorPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgbm8gJ2NsaWNrZWQnIHRleHQgaXMg
c2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPWhpZGRlbkZpcnN0PjwvZGl2PgorPHByZSBpZD1y
ZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92
ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAgLy8gMS4gSW5zdGFsbCBhIHRpbWVyIG9uIGhv
dmVyCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gMi4gVHJpZ2dlciBh
IG5vbi1mb3JjaW5nIHN0eWxlIGNoYW5nZQorICAgICAgICBoaWRkZW5GaXJzdC5zdHlsZS52aXNp
YmlsaXR5ID0gInZpc2libGUiOworICAgICAgICAvLyAzLiBJbnN0YWxsIGEgdGltZXIgZm9yIHN0
eWxlIHJlY2FsYworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0sIDEwKTsKKyAgICB9LCAwKTsKK30sIGZhbHNlKTsKKworaGlkZGVuRmlyc3QuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVy
SFRNTCA9ICJjbGlja2VkIjsKK30sIGZhbHNlKTsKKwordGFwdGhpcy5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0g
ImNsaWNrZWQiOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZh
dGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0dWNrLXdpdGgtaG92ZXIt
c3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZmFlNTMxZmJiYTJkN2NiMTk5ZjhlYjk5
Nzg0N2ExMDgxZDk1OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgY2xpY2tlZC4KK2NsaWNrZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2Vy
dmF0aW9uL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YzU5ZjMxYmVhNWY5MDYzNDllZDQwYzdlNDZiNTU0NDkyYmM2ODBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Nv
bnRlbnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1sCkBAIC0wLDAgKzEs
NDUgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dlciBj
bGljayB3aGVuIGhvdmVyIHdvdWxkIG5vdCBkaXNwbGF5IG5vbi1jbGlja2FibGUgY29udGVudC48
L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0
dXJlcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4
OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9Cis8
L3N0eWxlPgorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKCF3aW5k
b3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgcmV0dXJu
OworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCh0cnVlKTsKKworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgbGV0
IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIGxldCB4ID0gcmVj
dC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7CisgICAgbGV0IHkgPSByZWN0LnRvcCArIHJlY3QuaGVp
Z2h0IC8gMjsKKworCWF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7CisKKyAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCki
PgorPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgY2xpY2tlZC48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0
PjwvcHJlPgorPHNjcmlwdD4KK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwg
ZnVuY3Rpb24oIGV2ZW50ICkgeworCWNsZWFyVGltZW91dChzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyB0YXB0aGlzLmlubmVySFRNTCA9ICJzaG91bGQgbm90IHNlZSB0aGlzIjsgfSwgNTApKTsKK30s
IGZhbHNlKTsKKwordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBl
dmVudCApIHsgICAKKwlyZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOworfSwgZmFsc2UpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1yZWNhbGMtc2NoZWR1
bGUtYW5kLWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5k
LWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc3ZTNhMzFlNGQyNzU5M2Fh
OTRkYmQ2MzdhNDUzYWY4Y2VkZGQ3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hl
ZHVsZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1Mg
aWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuCitjbGlja2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHls
ZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVk
dWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjEwNjkzNjA4MzcxZGFiMTg2
MDU0MjViNzUwNmY4MGM0ZDY5YjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVk
dWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbApAQCAtMCwwICsxLDY4IEBACis8aHRtbD4KKzxoZWFk
PgorPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdnZXIgaG92ZXIgd2hlbiB0aGUgY29udGVu
dCBjaGFuZ2Ugc3RhcnRzIGFzIGFzeW5jIGJ1dCBpdCB0dXJucyBpbnRvIGEgc3luYyBzdHlsZSBy
ZWNhbGMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFz
aWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcHRoaXMgeworICAgIHdpZHRo
OiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVu
OworfQorCisjc3RheXNIaWRkZW4geworICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKKyAgICB3aWR0
aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAg
ICByZXR1cm47CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKHRydWUpOworCisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisK
KyAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgbGV0
IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKKyAgICBsZXQgeSA9IHJlY3QudG9wICsg
cmVjdC5oZWlnaHQgLyAyOworCisgICAgYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD10YXB0aGlzPlBB
U1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPXN0YXlz
SGlkZGVuPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAgLy8g
MS4gSW5zdGFsbCBhIHRpbWVyIG9uIGhvdmVyCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21lIG5vbi1mb3JjaW5nIChub24tdmlzaWJpbGl0eSkg
c3R5bGUgY2hhbmdlIHdpdGggZm9yY2luZyBvZmZzZXRIZWlnaHQuCisgICAgICAgIHN0YXlzSGlk
ZGVuLnN0eWxlLm1hcmdpbkxlZnQgPSAiNXB4IjsKKworICAgICAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldEhlaWdodDsKKyAgICB9LCAwKTsKKyAgICAvLyAzLiBJbnN0YWxsIGEgbG9uZ2VyLCBlbXB0
eSB0aW1lci4KKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIH0sIDUpOworfSwgZmFs
c2UpOworCitzdGF5c0hpZGRlbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBl
dmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQgaGlkZGVuIjsKK30s
IGZhbHNlKTsKKwordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBl
dmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOworICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOworfSwgZmFsc2UpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1o
YXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2Ut
aGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmRi
NGM5NDA4YTZjMDMxMmRkMGUyZDQ4NWMwMWI4MzVlN2NmOTNkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlz
aWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgbm90IHNob3duIGJlbG93
LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVu
dC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGlt
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2Vy
dmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE2NDBhMTg4NTZkOTJlZTI1NGM2YjM4ZWU1ZGE3MDE5MGEyMGM3NDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVu
dC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGlt
ZXIuaHRtbApAQCAtMCwwICsxLDY3IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRoaXMgdGVz
dHMgdGhlIGNhc2Ugd2hlbiB0aGUgc2Vjb25kIHRpbWVyIHRyaWdnZXJzIHZpc2libGUgY29udGVu
dCBjaGFuZ2U8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9i
YXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAgd2lk
dGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3Jl
ZW47Cit9CisKKyNiZWNvbWVzVmlzaWJsZSB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAg
IHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisg
ICAgICAgIHJldHVybjsKKwlpZiAod2luZG93LmludGVybmFscykKKwkJaW50ZXJuYWxzLnNldHRp
bmdzLnNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7CisKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAg
IGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBsZXQgeCA9
IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0
LmhlaWdodCAvIDI7CisKKyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBp
ZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPWJlY29t
ZXNWaXNpYmxlPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhp
cy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAg
Ly8gMS4gSW5zdGFsbCAyIHRpbWVycyBvbiBob3ZlcgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgIC8vIDIuIFRyaWdnZXIgc29tZSBub24tdmlzaWJpbGl0eSBzdHlsZSBjaGFu
Z2Ugd2l0aCBmb3JjaW5nIG9mZnNldEhlaWdodC4KKyAgICAgICAgYmVjb21lc1Zpc2libGUuc3R5
bGUubWFyZ2luTGVmdCA9ICI1cHgiOworICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdo
dDsKKyAgICB9LCAwKTsKKyAgICAvLyAzLiBJbnN0YWxsIGEgbG9uZ2VyIHRpbWVyIHdpdGggdmlz
aWJpbGl0eSBjaGFuZ2UuCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgYmVj
b21lc1Zpc2libGUuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQodGVzdFJ1bm5lci5ub3RpZnlEb25lKCksIDApOworICAgIH0s
IDIwKTsKK30sIGZhbHNlKTsKKworYmVjb21lc1Zpc2libGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlj
a2VkIGhpZGRlbiI7Cit9LCBmYWxzZSk7CisKK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlj
a2VkIjsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5bGUtY2hh
bmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjZTY4NTM2MGZlYjk3NWJlNDBkNzBiY2M3Njg2ZWEx
MDYwOWRlOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdl
LWlzLWFzeW5jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotUEFT
UyBpZiBubyAnY2xpY2tlZCcgdGV4dCBpcyBzaG93biBiZWxvdy4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlz
LWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaG92ZXItd2hl
bi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWQwNjg2MWY2OTk0YzgzY2QwMjlmZDI4NDY5MDUyMjEzNDAzZWMzNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+VGhpcyB0ZXN0
IHRoYXQgd2UgdHJpZ2dlciBob3ZlciB3aGVuIHRoZSBjb250ZW50IGNoYW5nZSBpcyBhc3luYy48
L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJl
cy5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0jdGFwdGhpcyB7Ci0gICAgd2lkdGg6IDQwMHB4Owot
ICAgIGhlaWdodDogNDAwcHg7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Ci19Ci0KLSNo
aWRkZW5GaXJzdCB7Ci0gICAgdmlzaWJpbGl0eTogaGlkZGVuOwotICAgIHdpZHRoOiAxMDBweDsK
LSAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotfQotPC9z
dHlsZT4KLTxzY3JpcHQ+Ci1hc3luYyBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwotCi0gICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7Ci0gICAgbGV0IHkgPSBy
ZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKLQotICAgIGF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxkaXYgaWQ9
dGFwdGhpcz5QQVNTIGlmIG5vICdjbGlja2VkJyB0ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2Pgot
PGRpdiBpZD1oaWRkZW5GaXJzdD48L2Rpdj4KLTxwcmUgaWQ9cmVzdWx0PjwvcHJlPgotPHNjcmlw
dD4KLXRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50
ICkgewotICAgIC8vIDEuIEluc3RhbGwgYSB0aW1lciBvbiBob3ZlcgotICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIDIuIFRyaWdnZXIgYSBub24tZm9yY2luZyBzdHlsZSBj
aGFuZ2UKLSAgICAgICAgaGlkZGVuRmlyc3Quc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsK
LSAgICAgICAgLy8gMy4gSW5zdGFsbCBhIHRpbWVyIGZvciBzdHlsZSByZWNhbGMKLSAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
SGVpZ2h0OwotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9LCAxMCk7Ci0gICAgfSwgMCk7
Ci19LCBmYWxzZSk7Ci0KLWhpZGRlbkZpcnN0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVu
Y3Rpb24oIGV2ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Ci19
LCBmYWxzZSk7Ci0KLXRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigg
ZXZlbnQgKSB7ICAgCi0gICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsKLX0sIGZhbHNl
KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3Rh
dGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWZhZTUzMWZi
YmEyZDdjYjE5OWY4ZWI5OTc4NDdhMTA4MWQ5NThkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9z
dHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIg
KzAsMCBAQAotUEFTUyBpZiBjbGlja2VkLgotY2xpY2tlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHVjay13aXRoLWhvdmVyLXN0YXRlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZDBkOGQ5NzJiZjQ0ODg3MTMwMDJm
MzU1MTM0YmZkN2E2MDZkNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92
ZXItc3RhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08dGl0bGU+VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dlciBjbGljayB3aGVuIGhvdmVyIHdv
dWxkIG5vdCBkaXNwbGF5IG5vbi1jbGlja2FibGUgY29udGVudC48L3RpdGxlPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Ci08
c3R5bGU+Ci0jdGFwdGhpcyB7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7
Ci0gICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWFz
eW5jIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICBsZXQg
cmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgbGV0IHggPSByZWN0
LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKLSAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWln
aHQgLyAyOwotCi0JYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKLQotICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+
Ci08ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiBjbGlja2VkLjwvZGl2PgotPHByZSBpZD1yZXN1bHQ+
PC9wcmU+Ci08c2NyaXB0PgotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBm
dW5jdGlvbiggZXZlbnQgKSB7Ci0JY2xlYXJUaW1lb3V0KHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IHRhcHRoaXMuaW5uZXJIVE1MID0gInNob3VsZCBub3Qgc2VlIHRoaXMiOyB9LCA1MCkpOwotfSwg
ZmFsc2UpOwotCi10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2
ZW50ICkgeyAgIAotCXJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Ci19LCBmYWxzZSk7Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVj
YWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NzdlM2EzMWU0ZDI3NTkzYWE5NGRiZDYzN2E0NTNhZjhjZWRkZDc4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNl
LXJlbGFsYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVBBU1Mg
aWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuCi1jbGlja2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFu
ZC1mb3JjZS1yZWxhbGMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9z
dHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4ZDUzYzZlZjBmNWNjZWY4MDRjNDEwNDlkNGJiZGIyMjEwMDQ3OGQ1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNl
LXJlbGFsYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTx0aXRsZT5UaGlzIHRlc3QgdGhhdCB3ZSB0cmlnZ2VyIGhvdmVyIHdoZW4gdGhlIGNvbnRl
bnQgY2hhbmdlIHN0YXJ0cyBhcyBhc3luYyBidXQgaXQgdHVybnMgaW50byBhIHN5bmMgc3R5bGUg
cmVjYWxjLjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2lj
LWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSN0YXB0aGlzIHsKLSAgICB3aWR0aDog
NDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsK
LX0KLQotI3N0YXlzSGlkZGVuIHsKLSAgICB2aXNpYmlsaXR5OiBoaWRkZW47Ci0gICAgd2lkdGg6
IDEwMHB4OwotICAgIGhlaWdodDogMTAwcHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYg
KCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0KLSAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7Ci0gICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKLSAgICBs
ZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOwotCi0gICAgYXdhaXQgdGFwQXRQb2lu
dCh4LCB5KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgot
PGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuPC9k
aXY+Ci08ZGl2IGlkPXN0YXlzSGlkZGVuPjwvZGl2PgotPHByZSBpZD1yZXN1bHQ+PC9wcmU+Ci08
c2NyaXB0PgotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbigg
ZXZlbnQgKSB7Ci0gICAgLy8gMS4gSW5zdGFsbCBhIHRpbWVyIG9uIGhvdmVyCi0gICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21lIG5vbi1mb3JjaW5n
IChub24tdmlzaWJpbGl0eSkgc3R5bGUgY2hhbmdlIHdpdGggZm9yY2luZyBvZmZzZXRIZWlnaHQu
Ci0gICAgICAgIHN0YXlzSGlkZGVuLnN0eWxlLm1hcmdpbkxlZnQgPSAiNXB4IjsKLQotICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKLSAgICB9LCAwKTsKLSAgICAvLyAzLiBJbnN0
YWxsIGEgbG9uZ2VyLCBlbXB0eSB0aW1lci4KLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewot
ICAgIH0sIDUpOwotfSwgZmFsc2UpOwotCi1zdGF5c0hpZGRlbi5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICByZXN1bHQuaW5uZXJIVE1MID0gImNs
aWNrZWQgaGlkZGVuIjsKLX0sIGZhbHNlKTsKLQotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICByZXN1bHQuaW5uZXJIVE1MID0gImNs
aWNrZWQiOwotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0s
IDApOwotfSwgZmFsc2UpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFuZ2UtaGFw
cGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQt
dGltZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NmRiNGM5
NDA4YTZjMDMxMmRkMGUyZDQ4NWMwMWI4MzVlN2NmOTNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1QQVNTIGlmICdjbGlja2VkJyB0ZXh0
IGlzIG5vdCBzaG93biBiZWxvdy4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1l
ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zpc2liaWxpdHktY2hh
bmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzYzE1Yjc4MGU4OWQyMjY3NTkwZjI3YmU5MTdlNDhlNDI1YzM4NGZmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNv
bmQtdGltZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08dGl0bGU+VGhpcyB0ZXN0cyB0aGUgY2FzZSB3aGVuIHRoZSBzZWNvbmQgdGltZXIgdHJp
Z2dlcnMgdmlzaWJsZSBjb250ZW50IGNoYW5nZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSN0
YXB0aGlzIHsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBib3Jk
ZXI6IDFweCBzb2xpZCBncmVlbjsKLX0KLQotI2JlY29tZXNWaXNpYmxlIHsKLSAgICB2aXNpYmls
aXR5OiBoaWRkZW47Ci0gICAgd2lkdGg6IDEwMHB4OwotICAgIGhlaWdodDogMTAwcHg7Ci0gICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWFzeW5jIGZ1
bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICBsZXQgcmVjdCA9
IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgbGV0IHggPSByZWN0LmxlZnQg
KyByZWN0LndpZHRoIC8gMjsKLSAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAy
OwotCi0gICAgYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgJ2NsaWNrZWQn
IHRleHQgaXMgbm90IHNob3duIGJlbG93LjwvZGl2PgotPGRpdiBpZD1iZWNvbWVzVmlzaWJsZT48
L2Rpdj4KLTxwcmUgaWQ9cmVzdWx0PjwvcHJlPgotPHNjcmlwdD4KLXRhcHRoaXMuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgewotICAgIC8vIDEuIEluc3Rh
bGwgMiB0aW1lcnMgb24gaG92ZXIKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAg
ICAvLyAyLiBUcmlnZ2VyIHNvbWUgbm9uLXZpc2liaWxpdHkgc3R5bGUgY2hhbmdlIHdpdGggZm9y
Y2luZyBvZmZzZXRIZWlnaHQuCi0gICAgICAgIGJlY29tZXNWaXNpYmxlLnN0eWxlLm1hcmdpbkxl
ZnQgPSAiNXB4IjsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7Ci0gICAgfSwg
MCk7Ci0gICAgLy8gMy4gSW5zdGFsbCBhIGxvbmdlciB0aW1lciB3aXRoIHZpc2liaWxpdHkgY2hh
bmdlLgotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlY29tZXNWaXNpYmxl
LnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0SGVpZ2h0OwotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICBz
ZXRUaW1lb3V0KHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpLCAwKTsKLSAgICB9LCAyMCk7Ci19LCBm
YWxzZSk7Ci0KLWJlY29tZXNWaXNpYmxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rp
b24oIGV2ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCBoaWRkZW4i
OwotfSwgZmFsc2UpOwotCi10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rp
b24oIGV2ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Ci19LCBm
YWxzZSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363732</attachid>
            <date>2019-03-05 22:08:46 -0800</date>
            <delta_ts>2019-03-05 22:09:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>23715</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjE2NTI3ZWVmMC4uZThmYzk3OGJkNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wMy0wNSAgQWxhbiBLaW5zbGV5ICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEludHJvZHVjZSBmaXhlZCBkdXJhdGlvbiBjb250ZW50IG9i
c2VydmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTUyOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NTc5OTEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1l
ci1ob3BzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1l
ci1ob3BzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGlu
ZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNl
cnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRp
b24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjZkYjRjOTQwOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1v
YnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hv
d24gYmVsb3cuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9jb250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtb24tdGltZXIt
aG9wcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlNWIwMDRlYTllCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLmh0bWwKQEAg
LTAsMCArMSw2OCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoZSBjYXNl
IHdoZW4gbmVzdGVkIHRpbWVycyB0cmlnZ2VyIHZpc2libGUgY29udGVudCBjaGFuZ2U8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAg
IGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9CisKKyNiZWNv
bWVzVmlzaWJsZSB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIHdpZHRoOiAxMDBweDsK
KyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9z
dHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7CisKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGxldCBy
ZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBsZXQgeCA9IHJlY3Qu
bGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdo
dCAvIDI7CisKKyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiAnY2xp
Y2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPWJlY29tZXNWaXNp
YmxlPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAgLy8gMS4g
SW5zdGFsbCBhIHNob3J0IHRpbWVyIG9uIGhvdmVyCisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21lIG5vbi12aXNpYmlsaXR5IHN0eWxlIGNoYW5n
ZSB3aXRoIGZvcmNpbmcgb2Zmc2V0SGVpZ2h0LgorICAgICAgICBiZWNvbWVzVmlzaWJsZS5zdHls
ZS5tYXJnaW5MZWZ0ID0gIjVweCI7CisgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0
OworCisgICAgICAgIC8vIDMuIEluc3RhbGwgYSBuZXN0ZWQgdGltZXIgd2l0aCB2aXNpYmlsaXR5
IGNoYW5nZS4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJl
Y29tZXNWaXNpYmxlLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
LCAwKTsKKyAgICAgICAgfSwgMTApOworICAgIH0sIDApOworfSwgZmFsc2UpOworCitiZWNvbWVz
VmlzaWJsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAK
KyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQgaGlkZGVuIjsKK30sIGZhbHNlKTsKKwor
dGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAK
KyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOworfSwgZmFsc2UpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNlOTNkZGZkNmUuLjIyY2ZlYWY0MDk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDMtMDUgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudENoYW5nZU9ic2VydmVyXSBJbnRy
b2R1Y2UgZml4ZWQgZHVyYXRpb24gY29udGVudCBvYnNlcnZhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1Mjk1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODU3OTkxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTb21lIHBhZ2VzIGhhdmUgYSBydW5sb29wLWxpa2Ugc2NoZWR1bGluZyBzZXR1
cCB3aGVyZSB0aGUgY29udGVudCB0cmlnZ2VyaW5nIGNoYW5nZSBoYXBwZW5zIGF0IGEgbmVzdGVk
IHRpbWVyIGZpcmluZy4KKyAgICAgICAgVGhpcyBwYXRjaCBoZWxwcyBmaW5kaW5nIGNhc2VzIGxp
a2UgdGhhdCB1c2luZyBhIDMybXMgbG9uZyBmaXhlZCB3aW5kb3cuIEN1cnJlbnRseSBuZXN0ZWQg
dGltZXJzIGdldCBkcm9wcGVkIG9uIHRoZSBmbG9vciBhbmQKKyAgICAgICAgd2Ugc3RvcCBvYnNl
cnZpbmcgZm9yIGNvbnRlbnQgY2hhbmdlcyBiZWZvcmUgdGhleSBldmVuIGdldCBmaXJlZC4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92
aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMuaHRtbAorCisgICAgICAgICog
cGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6Q29udGVudENoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6c3RhcnRDb250ZW50T2JzZXJ2YXRpb25Gb3JE
dXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNvbXBs
ZXRlRHVyYXRpb25CYXNlZENvbnRlbnRPYnNlcnZhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZEluc3RhbGxET01UaW1lcik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZFJlbW92ZURPTVRpbWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZG9tVGltZXJFeGVjdXRlRGlkU3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkb21UaW1lckV4ZWN1
dGVEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpz
dHlsZVJlY2FsY0RpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNl
cnZlcjo6c3R5bGVSZWNhbGNEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENo
YW5nZU9ic2VydmVyOjpjYW5jZWxQZW5kaW5nQWN0aXZpdGllcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZFN1c3BlbmRBY3RpdmVET01PYmplY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6d2lsbERldGFjaFBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpjb250ZW50VmlzaWJpbGl0
eURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnNl
dFNob3VsZE9ic2VydmVOZXh0U3R5bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dENoYW5nZU9ic2VydmVyOjphZGp1c3RPYnNlcnZlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6U3R5bGVDaGFuZ2VTY29wZTo6U3R5bGVDaGFuZ2VTY29w
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OlN0eWxlQ2hhbmdl
U2NvcGU6On5TdHlsZUNoYW5nZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFu
Z2VPYnNlcnZlcjo6Y2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6Y2xlYXJPYnNlcnZlZERPTVRpbWVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmlzT2JzZXJ2aW5nQ29udGVu
dENoYW5nZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVy
OjpoYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorCiAyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRk
IGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24g
b24vb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdl
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2Vy
dmVyLmNwcAppbmRleCBmMGQ1ODE1ZjdmNy4uZWY5NjVkNmQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcApAQCAtMzksOSArMzks
MjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OkNvbnRl
bnRDaGFuZ2VPYnNlcnZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQorICAgICwgbV9jb250ZW50T2JzZXJ2YXRpb25UaW1lcihbdGhpc10geyBjb21wbGV0
ZUR1cmF0aW9uQmFzZWRDb250ZW50T2JzZXJ2YXRpb24oKTsgfSkKIHsKIH0KIAordm9pZCBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0YXJ0Q29udGVudE9ic2VydmF0aW9uRm9yRHVyYXRpb24oU2Vj
b25kcyBkdXJhdGlvbikKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoIWhh
c1Zpc2libGVDaGFuZ2VTdGF0ZSgpKTsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBzdGFydENvbnRl
bnRPYnNlcnZhdGlvbkZvckR1cmF0aW9uOiBzdGFydCBvYnNlcnZpbmcgdGhlIGNvbnRlbnQgZm9y
IG1zIik7CisgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudDo6U3RhcnRlZEZpeGVkT2JzZXJ2
YXRpb25UaW1lV2luZG93KTsKKyAgICBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLnN0YXJ0T25l
U2hvdChkdXJhdGlvbik7Cit9CisKK3ZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjb21wbGV0
ZUR1cmF0aW9uQmFzZWRDb250ZW50T2JzZXJ2YXRpb24oKQoreworICAgIFdURkxvZ0Fsd2F5cygi
WkFMIGNvbXBsZXRlRHVyYXRpb25CYXNlZENvbnRlbnRPYnNlcnZhdGlvbjogY29tcGxldGUgZHVy
YXRpb24gYmFzZWQgY29udGVudCBvYnNlcnZpbmcgIik7CisgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0
ZShFdmVudDo6RW5kZWRGaXhlZE9ic2VydmF0aW9uVGltZVdpbmRvdyk7Cit9CisKIHZvaWQgQ29u
dGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRp
bWVyLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsKICAgICBpZiAoIW1fZG9j
dW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCkBAIC01NCw3
ICs3MSw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIo
Y29uc3QgRE9NVGltZXImIHRpbWVyLCBTZWNvbmRzIHRpCiAgICAgICAgIHJldHVybjsKICAgICBp
ZiAoaGFzVmlzaWJsZUNoYW5nZVN0YXRlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBMT0dfV0lU
SF9TVFJFQU0oQ29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImRpZEluc3RhbGxET01UaW1l
cjogcmVnaXN0ZXIgdGhpcyB0aW1lcjogKCIgPDwgJnRpbWVyIDw8ICIpIGFuZCBvYnNlcnZlIHdo
ZW4gaXQgZmlyZXMuIik7CisgICAgV1RGTG9nQWx3YXlzKCJaQUwgZGlkSW5zdGFsbERPTVRpbWVy
OiByZWdpc3RlciB0aGlzIHRpbWVyOiBhbmQgb2JzZXJ2ZSB3aGVuIGl0IGZpcmVzLiIpOwogCiAg
ICAgcmVnaXN0ZXJET01UaW1lcih0aW1lcik7CiAgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVu
dDo6SW5zdGFsbGVkRE9NVGltZXIpOwpAQCAtNjQsNyArODEsNyBAQCB2b2lkIENvbnRlbnRDaGFu
Z2VPYnNlcnZlcjo6ZGlkUmVtb3ZlRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRpbWVyKQogewog
ICAgIGlmICghY29udGFpbnNPYnNlcnZlZERPTVRpbWVyKHRpbWVyKSkKICAgICAgICAgcmV0dXJu
OwotICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2YXRpb24sIHN0cmVhbSA8PCAicmVt
b3ZlRE9NVGltZXI6IHJlbW92ZSByZWdpc3RlcmVkIHRpbWVyICgiIDw8ICZ0aW1lciA8PCAiKSIp
OworICAgIFdURkxvZ0Fsd2F5cygiWkFMIHJlbW92ZURPTVRpbWVyOiByZW1vdmUgcmVnaXN0ZXJl
ZCB0aW1lciApIik7CiAKICAgICB1bnJlZ2lzdGVyRE9NVGltZXIodGltZXIpOwogICAgIGFkanVz
dE9ic2VydmVkU3RhdGUoRXZlbnQ6OlJlbW92ZWRET01UaW1lcik7CkBAIC03NCw3ICs5MSw3IEBA
IHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkb21UaW1lckV4ZWN1dGVEaWRTdGFydChjb25z
dCBET01UaW1lciYgdGltZXIpCiB7CiAgICAgaWYgKCFjb250YWluc09ic2VydmVkRE9NVGltZXIo
dGltZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRPYnNl
cnZhdGlvbiwgc3RyZWFtIDw8ICJzdGFydE9ic2VydmluZ0RPTVRpbWVyRXhlY3V0ZTogc3RhcnQg
b2JzZXJ2aW5nICgiIDw8ICZ0aW1lciA8PCAiKSB0aW1lciBjYWxsYmFjay4iKTsKKyAgICBXVEZM
b2dBbHdheXMoIlpBTCBzdGFydE9ic2VydmluZ0RPTVRpbWVyRXhlY3V0ZTogc3RhcnQgb2JzZXJ2
aW5nIHRpbWVyIGNhbGxiYWNrLiIpOwogCiAgICAgbV9kb21UaW1lcklzQmVpbmdFeGVjdXRlZCA9
IHRydWU7CiB9CkBAIC04Myw3ICsxMDAsNyBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6
ZG9tVGltZXJFeGVjdXRlRGlkRmluaXNoKGNvbnN0IERPTVRpbWVyJiB0aW1lcikKIHsKICAgICBp
ZiAoIWNvbnRhaW5zT2JzZXJ2ZWRET01UaW1lcih0aW1lcikpCiAgICAgICAgIHJldHVybjsKLSAg
ICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgInN0b3BPYnNl
cnZpbmdET01UaW1lckV4ZWN1dGU6IHN0b3Agb2JzZXJ2aW5nICgiIDw8ICZ0aW1lciA8PCAiKSB0
aW1lciBjYWxsYmFjay4iKTsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBzdG9wT2JzZXJ2aW5nRE9N
VGltZXJFeGVjdXRlOiBzdG9wIG9ic2VydmluZyB0aW1lciBjYWxsYmFjay4iKTsKIAogICAgIG1f
ZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgPSBmYWxzZTsKICAgICB1bnJlZ2lzdGVyRE9NVGltZXIo
dGltZXIpOwpAQCAtOTcsNyArMTE0LDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0
eWxlUmVjYWxjRGlkU3RhcnQoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGhhc1Zpc2libGVD
aGFuZ2VTdGF0ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgTE9HKENvbnRlbnRPYnNlcnZhdGlv
biwgInN0YXJ0T2JzZXJ2aW5nU3R5bGVSZWNhbGM6IHN0YXJ0IG9ic2VydmluZyBzdHlsZSByZWNh
bGMuIik7CisgICAgV1RGTG9nQWx3YXlzKCJaQUwgc3RhcnRPYnNlcnZpbmdTdHlsZVJlY2FsYzog
c3RhcnQgb2JzZXJ2aW5nIHN0eWxlIHJlY2FsYy4iKTsKIAogICAgIG1fc3R5bGVSZWNhbGNJc0Jl
aW5nRXhlY3V0ZWQgPSB0cnVlOwogfQpAQCAtMTA2LDM4ICsxMjMsMzQgQEAgdm9pZCBDb250ZW50
Q2hhbmdlT2JzZXJ2ZXI6OnN0eWxlUmVjYWxjRGlkRmluaXNoKCkKIHsKICAgICBpZiAoIWlzT2Jz
ZXJ2aW5nU3R5bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJuOwotICAgIExPRyhDb250ZW50T2Jz
ZXJ2YXRpb24sICJzdG9wT2JzZXJ2aW5nU3R5bGVSZWNhbGM6IHN0b3Agb2JzZXJ2aW5nIHN0eWxl
IHJlY2FsYyIpOworICAgIFdURkxvZ0Fsd2F5cygiWkFMIHN0b3BPYnNlcnZpbmdTdHlsZVJlY2Fs
Yzogc3RvcCBvYnNlcnZpbmcgc3R5bGUgcmVjYWxjIik7CiAKICAgICBtX3N0eWxlUmVjYWxjSXNC
ZWluZ0V4ZWN1dGVkID0gZmFsc2U7CiAgICAgc2V0U2hvdWxkT2JzZXJ2ZU5leHRTdHlsZVJlY2Fs
YyhmYWxzZSk7CiAgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudDo6U3R5bGVSZWNhbGNGaW5p
c2hlZCk7CiB9CiAKLXZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjbGVhclRpbWVyc0FuZFJl
cG9ydENvbnRlbnRDaGFuZ2UoKQordm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNhbmNlbFBl
bmRpbmdBY3Rpdml0aWVzKCkKIHsKLSAgICBpZiAoIWhhc09ic2VydmVkRE9NVGltZXIoKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2YXRpb24sIHN0
cmVhbSA8PCAiY2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlOiByZW1vdmUgcmVnaXN0
ZXJlZCB0aW1lcnMgYW5kIHJlcG9ydCBjb250ZW50IGNoYW5nZS4iIDw8IG9ic2VydmVkQ29udGVu
dENoYW5nZSgpKTsKLQogICAgIGNsZWFyT2JzZXJ2ZWRET01UaW1lcnMoKTsKLSAgICBBU1NFUlQo
bV9kb2N1bWVudC5wYWdlKCkpOwotICAgIEFTU0VSVChtX2RvY3VtZW50LmZyYW1lKCkpOwotICAg
IG1fZG9jdW1lbnQucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFu
Z2UoKm1fZG9jdW1lbnQuZnJhbWUoKSk7CisgICAgbV9jb250ZW50T2JzZXJ2YXRpb25UaW1lci5z
dG9wKCk7CiB9CiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRTdXNwZW5kQWN0aXZl
RE9NT2JqZWN0cygpCiB7Ci0gICAgY2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlKCk7
CisgICAgV1RGTG9nQWx3YXlzKCJaQUwgZGlkU3VzcGVuZEFjdGl2ZURPTU9iamVjdHMiKTsKKyAg
ICBjYW5jZWxQZW5kaW5nQWN0aXZpdGllcygpOwogfQogCiB2b2lkIENvbnRlbnRDaGFuZ2VPYnNl
cnZlcjo6d2lsbERldGFjaFBhZ2UoKQogewotICAgIGNsZWFyVGltZXJzQW5kUmVwb3J0Q29udGVu
dENoYW5nZSgpOworICAgIFdURkxvZ0Fsd2F5cygiWkFMIHdpbGxEZXRhY2hQYWdlIik7CisgICAg
Y2FuY2VsUGVuZGluZ0FjdGl2aXRpZXMoKTsKIH0KIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2
ZXI6OmNvbnRlbnRWaXNpYmlsaXR5RGlkQ2hhbmdlKCkKIHsKLSAgICBMT0coQ29udGVudE9ic2Vy
dmF0aW9uLCAiY29udGVudFZpc2liaWxpdHlEaWRDaGFuZ2U6IHZpc2libGUgY29udGVudCBjaGFu
Z2UgZGlkIGhhcHBlbi4iKTsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBjb250ZW50VmlzaWJpbGl0
eURpZENoYW5nZTogdmlzaWJsZSBjb250ZW50IGNoYW5nZSBkaWQgaGFwcGVuLiIpOwogICAgIGFk
anVzdE9ic2VydmVkU3RhdGUoRXZlbnQ6OkNvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlZCk7CiB9CiAK
QEAgLTE2OCw3ICsxODEsNyBAQCBXS0NvbnRlbnRDaGFuZ2UgQ29udGVudENoYW5nZU9ic2VydmVy
OjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBjb25zdAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2
ZXI6OnNldFNob3VsZE9ic2VydmVOZXh0U3R5bGVSZWNhbGMoYm9vbCBzaG91bGRPYnNlcnZlKQog
ewogICAgIGlmIChzaG91bGRPYnNlcnZlKQotICAgICAgICBMT0coQ29udGVudE9ic2VydmF0aW9u
LCAiV2FpdCB1bnRpbCBuZXh0IHN0eWxlIHJlY2FsYyBmaXJlcy4iKTsKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCJaQUwgV2FpdCB1bnRpbCBuZXh0IHN0eWxlIHJlY2FsYyBmaXJlcy4iKTsKICAgICBt
X2lzT2JzZXJ2aW5nU3R5bGVSZWNhbGMgPSBzaG91bGRPYnNlcnZlOwogfQogCkBAIC0xOTAsMTAg
KzIwMywxMCBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6YWRqdXN0T2JzZXJ2ZWRTdGF0
ZShFdmVudCBldmVudCkKIHsKICAgICBhdXRvIG5vdGlmeUNvbnRlbnRDaGFuZ2VJZk5lZWRlZCA9
IFsmXSB7CiAgICAgICAgIGlmICghaGFzRGV0ZXJtaW5hdGVTdGF0ZSgpKSB7Ci0gICAgICAgICAg
ICBMT0coQ29udGVudE9ic2VydmF0aW9uLCAibm90aWZ5Q29udGVudENoYW5nZUlmTmVlZGVkOiBu
b3QgaW4gYSBkZXRlcm1pbmVkIHN0YXRlIHlldC4iKTsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiWkFMIG5vdGlmeUNvbnRlbnRDaGFuZ2VJZk5lZWRlZDogbm90IGluIGEgZGV0ZXJtaW5lZCBz
dGF0ZSB5ZXQuIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJub3RpZnlDb250ZW50
Q2hhbmdlSWZOZWVkZWQ6IHNlbmRpbmcgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlIC0+IiA8PCBvYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiWkFMIG5vdGlmeUNv
bnRlbnRDaGFuZ2VJZk5lZWRlZDogc2VuZGluZyBvYnNlcnZlZENvbnRlbnRDaGFuZ2UgLT4gJWQi
LCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSk7CiAgICAgICAgIEFTU0VSVChpc05vdGlmeUNvbnRl
bnRDaGFuZ2VBbGxvd2VkKCkpOwogICAgICAgICBBU1NFUlQobV9kb2N1bWVudC5wYWdlKCkpOwog
ICAgICAgICBBU1NFUlQobV9kb2N1bWVudC5mcmFtZSgpKTsKQEAgLTIwNSw2ICsyMTgsNyBAQCB2
b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6YWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudCBldmVu
dCkKICAgICAgICAgc2V0SGFzTm9DaGFuZ2VTdGF0ZSgpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEV2ZW50OjpJbnN0YWxsZWRET01UaW1lcjoKKyAgICBjYXNlIEV2ZW50OjpTdGFydGVkRml4
ZWRPYnNlcnZhdGlvblRpbWVXaW5kb3c6CiAgICAgICAgIC8vIEV4cGVjdGluZyBhIHRpbWVyIGZp
cmUuIFByb21vdGUgdG8gYW4gaW5kZXRlcm1pbmF0ZSBzdGF0ZS4KICAgICAgICAgQVNTRVJUKCFo
YXNWaXNpYmxlQ2hhbmdlU3RhdGUoKSk7CiAgICAgICAgIHNldEhhc0luZGV0ZXJtaW5hdGVTdGF0
ZSgpOwpAQCAtMjEyLDYgKzIyNiw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjphZGp1
c3RPYnNlcnZlZFN0YXRlKEV2ZW50IGV2ZW50KQogICAgIGNhc2UgRXZlbnQ6OlJlbW92ZWRET01U
aW1lcjoKICAgICBjYXNlIEV2ZW50OjpTdHlsZVJlY2FsY0ZpbmlzaGVkOgogICAgIGNhc2UgRXZl
bnQ6OkVuZGVkRE9NVGltZXJFeGVjdXRpb246CisgICAgY2FzZSBFdmVudDo6RW5kZWRGaXhlZE9i
c2VydmF0aW9uVGltZVdpbmRvdzoKICAgICAgICAgLy8gRGVtb3RlIHRvICJubyBjaGFuZ2UiIHdo
ZW4gdGhlcmUncyBubyBwZW5kaW5nIGFjdGl2aXR5IGFueW1vcmUuCiAgICAgICAgIGlmIChvYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnRJbmRldGVybWluYXRlQ2hhbmdlICYmICFo
YXNQZW5kaW5nQWN0aXZpdHkoKSkKICAgICAgICAgICAgIHNldEhhc05vQ2hhbmdlU3RhdGUoKTsK
QEAgLTI1MSwxMCArMjY2LDEyIEBAIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6U3R5bGVDaGFuZ2VT
Y29wZTo6U3R5bGVDaGFuZ2VTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvCiAgICAgLCBtX2Vs
ZW1lbnQoZWxlbWVudCkKICAgICAsIG1fbmVlZHNPYnNlcnZpbmcobV9jb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpICYmICFtX2NvbnRlbnRDaGFuZ2VPYnNl
cnZlci5oYXNWaXNpYmxlQ2hhbmdlU3RhdGUoKSkKIHsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBT
dHlsZUNoYW5nZVNjb3BlOjpTdHlsZUNoYW5nZVNjb3BlICVkIiwgbV9jb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpKTsKICAgICBpZiAobV9uZWVkc09ic2Vy
dmluZykgewogICAgICAgICBtX3ByZXZpb3VzRGlzcGxheSA9IGVsZW1lbnQucmVuZGVyU3R5bGUo
KSA/IGVsZW1lbnQucmVuZGVyU3R5bGUoKS0+ZGlzcGxheSgpIDogRGlzcGxheVR5cGU6Ok5vbmU7
CiAgICAgICAgIG1fcHJldmlvdXNWaXNpYmlsaXR5ID0gZWxlbWVudC5yZW5kZXJTdHlsZSgpID8g
ZWxlbWVudC5yZW5kZXJTdHlsZSgpLT52aXNpYmlsaXR5KCkgOiBWaXNpYmlsaXR5OjpIaWRkZW47
CiAgICAgICAgIG1fcHJldmlvdXNJbXBsaWNpdFZpc2liaWxpdHkgPSBlbGVtZW50SW1wbGljaXRW
aXNpYmlsaXR5KGVsZW1lbnQpOworICAgICAgICBXVEZMb2dBbHdheXMoIlpBTCBTdHlsZUNoYW5n
ZVNjb3BlOjpTdHlsZUNoYW5nZVNjb3BlIG1fbmVlZHNPYnNlcnZpbmcgJWQgbV9wcmV2aW91c1Zp
c2liaWxpdHk6JWhodSIsIG1fbmVlZHNPYnNlcnZpbmcsIG1fcHJldmlvdXNWaXNpYmlsaXR5KTsK
ICAgICB9CiB9CiAKQEAgLTI3Nyw2ICsyOTQsNyBAQCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OlN0
eWxlQ2hhbmdlU2NvcGU6On5TdHlsZUNoYW5nZVNjb3BlKCkKICAgICBpZiAoIXF1YWxpZmllc0Zv
clZpc2liaWxpdHlDaGVjaygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBXVEZMb2dBbHdheXMo
IlpBTCBTdHlsZUNoYW5nZVNjb3BlOjp+U3R5bGVDaGFuZ2VTY29wZSB2aXNpYmlsaXR5OiVoaHUi
LCBzdHlsZS0+dmlzaWJpbGl0eSgpKTsKICAgICBpZiAoKG1fcHJldmlvdXNEaXNwbGF5ID09IERp
c3BsYXlUeXBlOjpOb25lICYmIHN0eWxlLT5kaXNwbGF5KCkgIT0gRGlzcGxheVR5cGU6Ok5vbmUp
CiAgICAgICAgIHx8IChtX3ByZXZpb3VzVmlzaWJpbGl0eSA9PSBWaXNpYmlsaXR5OjpIaWRkZW4g
JiYgc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpIaWRkZW4pCiAgICAgICAgIHx8
IChtX3ByZXZpb3VzSW1wbGljaXRWaXNpYmlsaXR5ID09IFZpc2liaWxpdHk6OkhpZGRlbiAmJiBl
bGVtZW50SW1wbGljaXRWaXNpYmlsaXR5KG1fZWxlbWVudCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJs
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5o
CmluZGV4IDEwMmFjYTRmYmUzLi41NTNlNzlhMTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldL
Q29udGVudE9ic2VydmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDExICsz
OSwxMSBAQCBjbGFzcyBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIENvbnRl
bnRDaGFuZ2VPYnNlcnZlcihEb2N1bWVudCYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
dGFydENvbnRlbnRPYnNlcnZhdGlvbkZvckR1cmF0aW9uKFNlY29uZHMgZHVyYXRpb24pOwogICAg
IFdFQkNPUkVfRVhQT1JUIFdLQ29udGVudENoYW5nZSBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBj
b25zdDsKIAogICAgIHZvaWQgZGlkSW5zdGFsbERPTVRpbWVyKGNvbnN0IERPTVRpbWVyJiwgU2Vj
b25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwogICAgIHZvaWQgZGlkUmVtb3ZlRE9NVGlt
ZXIoY29uc3QgRE9NVGltZXImKTsKLSAgICB2b2lkIGNvbnRlbnRWaXNpYmlsaXR5RGlkQ2hhbmdl
KCk7CiAgICAgdm9pZCBkaWRTdXNwZW5kQWN0aXZlRE9NT2JqZWN0cygpOwogICAgIHZvaWQgd2ls
bERldGFjaFBhZ2UoKTsKIApAQCAtODksMTIgKzkwLDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBt
b3VzZU1vdmVkRGlkU3RhcnQoKTsKICAgICB2b2lkIG1vdXNlTW92ZWREaWRGaW5pc2goKTsKIAor
ICAgIHZvaWQgY29udGVudFZpc2liaWxpdHlEaWRDaGFuZ2UoKTsKKwogICAgIHZvaWQgc2V0U2hv
dWxkT2JzZXJ2ZURPTVRpbWVyU2NoZWR1bGluZyhib29sIG9ic2VydmUpIHsgbV9pc09ic2Vydmlu
Z0RPTVRpbWVyU2NoZWR1bGluZyA9IG9ic2VydmU7IH0KICAgICBib29sIGlzT2JzZXJ2aW5nRE9N
VGltZXJTY2hlZHVsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc09ic2VydmluZ0RPTVRpbWVyU2No
ZWR1bGluZzsgfQogICAgIHZvaWQgZG9tVGltZXJFeGVjdXRlRGlkU3RhcnQoY29uc3QgRE9NVGlt
ZXImKTsKICAgICB2b2lkIGRvbVRpbWVyRXhlY3V0ZURpZEZpbmlzaChjb25zdCBET01UaW1lciYp
OwogICAgIHZvaWQgcmVnaXN0ZXJET01UaW1lcihjb25zdCBET01UaW1lciYgdGltZXIpIHsgbV9E
T01UaW1lckxpc3QuYWRkKCZ0aW1lcik7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJET01UaW1lcihj
b25zdCBET01UaW1lciYgdGltZXIpIHsgbV9ET01UaW1lckxpc3QucmVtb3ZlKCZ0aW1lcik7IH0K
KyAgICB2b2lkIGNsZWFyT2JzZXJ2ZWRET01UaW1lcnMoKSB7IG1fRE9NVGltZXJMaXN0LmNsZWFy
KCk7IH0KICAgICBib29sIGNvbnRhaW5zT2JzZXJ2ZWRET01UaW1lcihjb25zdCBET01UaW1lciYg
dGltZXIpIGNvbnN0IHsgcmV0dXJuIG1fRE9NVGltZXJMaXN0LmNvbnRhaW5zKCZ0aW1lcik7IH0K
IAogICAgIHZvaWQgc3R5bGVSZWNhbGNEaWRTdGFydCgpOwpAQCAtMTAyLDEwICsxMDYsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZU5leHRTdHlsZVJlY2FsYyhib29sKTsK
ICAgICBib29sIGlzT2JzZXJ2aW5nU3R5bGVSZWNhbGMoKSBjb25zdCB7IHJldHVybiBtX2lzT2Jz
ZXJ2aW5nU3R5bGVSZWNhbGM7IH0KIAotICAgIGJvb2wgaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgfHwgbV9zdHlsZVJl
Y2FsY0lzQmVpbmdFeGVjdXRlZDsgfQorICAgIGJvb2wgaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgfHwgbV9zdHlsZVJl
Y2FsY0lzQmVpbmdFeGVjdXRlZCB8fCBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLmlzQWN0aXZl
KCk7IH0KIAotICAgIHZvaWQgY2xlYXJPYnNlcnZlZERPTVRpbWVycygpIHsgbV9ET01UaW1lckxp
c3QuY2xlYXIoKTsgfQotICAgIHZvaWQgY2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdl
KCk7CisgICAgdm9pZCBjYW5jZWxQZW5kaW5nQWN0aXZpdGllcygpOwogCiAgICAgdm9pZCBzZXRI
YXNJbmRldGVybWluYXRlU3RhdGUoKTsKICAgICB2b2lkIHNldEhhc1Zpc2libGVDaGFuZ2VTdGF0
ZSgpOwpAQCAtMTE1LDIyICsxMTgsMjcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc09ic2VydmVk
RE9NVGltZXIoKSBjb25zdCB7IHJldHVybiAhbV9ET01UaW1lckxpc3QuaXNFbXB0eSgpOyB9CiAg
ICAgYm9vbCBoYXNEZXRlcm1pbmF0ZVN0YXRlKCkgY29uc3Q7CiAKLSAgICBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIGhhc09ic2VydmVkRE9NVGltZXIoKSB8fCBtX2Rv
Y3VtZW50Lmhhc1BlbmRpbmdTdHlsZVJlY2FsYygpOyB9CisgICAgYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdCB7IHJldHVybiBoYXNPYnNlcnZlZERPTVRpbWVyKCkgfHwgbV9kb2N1bWVu
dC5oYXNQZW5kaW5nU3R5bGVSZWNhbGMoKSB8fCBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLmlz
QWN0aXZlKCk7IH0KICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgYm9vbCBpc05vdGlmeUNvbnRl
bnRDaGFuZ2VBbGxvd2VkKCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIHZvaWQgY29tcGxldGVEdXJh
dGlvbkJhc2VkQ29udGVudE9ic2VydmF0aW9uKCk7CisKICAgICBlbnVtIGNsYXNzIEV2ZW50IHsK
ICAgICAgICAgU3RhcnRlZE1vdXNlTW92ZWRFdmVudERpc3BhdGNoaW5nLAogICAgICAgICBJbnN0
YWxsZWRET01UaW1lciwKICAgICAgICAgUmVtb3ZlZERPTVRpbWVyLAogICAgICAgICBFbmRlZERP
TVRpbWVyRXhlY3V0aW9uLAogICAgICAgICBTdHlsZVJlY2FsY0ZpbmlzaGVkLAotICAgICAgICBD
b250ZW50VmlzaWJpbGl0eUNoYW5nZWQKKyAgICAgICAgQ29udGVudFZpc2liaWxpdHlDaGFuZ2Vk
LAorICAgICAgICBTdGFydGVkRml4ZWRPYnNlcnZhdGlvblRpbWVXaW5kb3csCisgICAgICAgIEVu
ZGVkRml4ZWRPYnNlcnZhdGlvblRpbWVXaW5kb3cKICAgICB9OwogICAgIHZvaWQgYWRqdXN0T2Jz
ZXJ2ZWRTdGF0ZShFdmVudCk7CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBUaW1l
ciBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyOwogICAgIEhhc2hTZXQ8Y29uc3QgRE9NVGltZXIq
PiBtX0RPTVRpbWVyTGlzdDsKICAgICBib29sIG1faXNPYnNlcnZpbmdTdHlsZVJlY2FsYyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3N0eWxlUmVjYWxjSXNCZWluZ0V4ZWN1dGVkIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTkzNjMxNTFmNzUuLjQzNmI2YTY1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gSW50cm9kdWNlIGZpeGVkIGR1cmF0aW9uIGNv
bnRlbnQgb2JzZXJ2YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTI5NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg1Nzk5MTM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhh
bmRsZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcGxldGVQ
ZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIpOgorCiAyMDE5LTAz
LTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRD
aGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBj
aGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDk5ODRjNGU1MzQ2Li4zNmJkNzQ4Mzhm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTU0NSw1MyArNTQ1LDUwIEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhl
dGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAg
ICAgYm9vbCBhbHRLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpB
bHRLZXkpOwogICAgIGJvb2wgbWV0YUtleSA9IG1vZGlmaWVycy5jb250YWlucyhXZWJFdmVudDo6
TW9kaWZpZXI6Ok1ldGFLZXkpOwogICAgIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRl
bnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJoYW5kbGVTeW50aGV0aWNDbGljazogbm9kZSgiIDw8
ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2sgPDwgIikgIiA8PCBsb2NhdGlvbik7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiWkFMIGhhbmRsZVN5bnRoZXRpY0NsaWNrOiBub2RlIik7CiAgICAgICAgIENv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6TW91c2VNb3ZlZFNjb3BlIG9ic2VydmluZ1Njb3BlKHJlc3Bv
bmRpbmdEb2N1bWVudCk7CiAgICAgICAgIGF1dG8mIG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZy
YW1lKCk7CiAgICAgICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRm
b3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQs
IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtl
eSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgV2ViQ29yZTo6Tm9UYXApKTsKICAgICAgICAgbWFpbmZyYW1lLmRvY3VtZW50KCktPnVwZGF0
ZVN0eWxlSWZOZWVkZWQoKTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05v
ZGUgPSBudWxscHRyOwotICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBGbG9h
dFBvaW50KCk7Ci0gICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSB7IH07Ci0K
ICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3dpdGNoIChyZXNw
b25kaW5nRG9jdW1lbnQuY29udGVudENoYW5nZU9ic2VydmVyKCkub2JzZXJ2ZWRDb250ZW50Q2hh
bmdlKCkpIHsKLSAgICBjYXNlIFdLQ29udGVudFZpc2liaWxpdHlDaGFuZ2U6CisgICAgYXV0byYg
Y29udGVudENoYW5nZU9ic2VydmVyID0gcmVzcG9uZGluZ0RvY3VtZW50LmNvbnRlbnRDaGFuZ2VP
YnNlcnZlcigpOworICAgIGF1dG8gb2JzZXJ2ZWRDb250ZW50Q2hhbmdlID0gY29udGVudENoYW5n
ZU9ic2VydmVyLm9ic2VydmVkQ29udGVudENoYW5nZSgpOworICAgIGlmIChvYnNlcnZlZENvbnRl
bnRDaGFuZ2UgPT0gV0tDb250ZW50VmlzaWJpbGl0eUNoYW5nZSkgewogICAgICAgICAvLyBUaGUg
bW92ZSBldmVudCBjYXVzZWQgbmV3IGNvbnRlbnRzIHRvIGFwcGVhci4gRG9uJ3Qgc2VuZCB0aGUg
Y2xpY2sgZXZlbnQuCi0gICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5kbGVTeW50
aGV0aWNDbGljazogT2JzZXJ2ZWQgbWVhbmluZ2Z1bCB2aXNpYmxlIGNoYW5nZSAtPiBob3Zlci4i
KTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJaQUwgaGFuZGxlU3ludGhldGljQ2xpY2s6IE9ic2Vy
dmVkIG1lYW5pbmdmdWwgdmlzaWJsZSBjaGFuZ2UgLT4gaG92ZXIuIik7CiAgICAgICAgIHJldHVy
bjsKLSAgICBjYXNlIFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2U6IHsKLSAgICAgICAgLy8g
V2FpdCBmb3IgY2FsbGJhY2sgdG8gY29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250
ZW50Q2hhbmdlT2JzZXJ2ZXIoKSB0byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZSBjbGljayBl
dmVudC4KLSAgICAgICAgQVNTRVJUKHJlc3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRl
bnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSk7Ci0gICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0Ns
aWNrTm9kZSA9ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2s7Ci0gICAgICAgIG1fcGVuZGluZ1N5bnRo
ZXRpY0NsaWNrTG9jYXRpb24gPSBsb2NhdGlvbjsKLSAgICAgICAgbV9wZW5kaW5nU3ludGhldGlj
Q2xpY2tNb2RpZmllcnMgPSBtb2RpZmllcnM7Ci0gICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRp
b24sICJoYW5kbGVTeW50aGV0aWNDbGljazogT2JzZXJ2ZWQgc29tZSBjaGFuZ2UsIGJ1dCBjYW4n
dCBkZWNpZGUgaXQgeWV0IC0+IHdhaXQuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9IGNhc2Ug
V0tDb250ZW50Tm9DaGFuZ2U6Ci0gICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5k
bGVTeW50aGV0aWNDbGljazogTm8gY2hhbmdlIHdhcyBvYnNlcnZlZCAtPiBjbGljay4iKTsKKyAg
ICB9CisgICAgY29uc3QgU2Vjb25kcyBvYnNlcnZhdGlvbkR1cmF0aW9uID0gMzJfbXM7CisgICAg
Y29udGVudENoYW5nZU9ic2VydmVyLnN0YXJ0Q29udGVudE9ic2VydmF0aW9uRm9yRHVyYXRpb24o
b2JzZXJ2YXRpb25EdXJhdGlvbik7CisgICAgaWYgKGNvbnRlbnRDaGFuZ2VPYnNlcnZlci5vYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnROb0NoYW5nZSkgeworICAgICAgICBBU1NF
UlQoIXJlc3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVu
YWJsZWQoKSk7CiAgICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdU
b0NsaWNrLCBsb2NhdGlvbiwgbW9kaWZpZXJzLCBXZWJDb3JlOjpPbmVGaW5nZXJUYXApOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgV1RG
TG9nQWx3YXlzKCJaQUwgaGFuZGxlU3ludGhldGljQ2xpY2s6IENhbid0IGRlY2lkZSBpdCB5ZXQg
LT4gd2FpdC4iKTsKKyAgICAvLyBXYWl0IGZvciBjYWxsYmFjayB0byBjb21wbGV0ZVBlbmRpbmdT
eW50aGV0aWNDbGlja0ZvckNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpIHRvIGRlY2lkZSB3aGV0aGVy
IHRvIHNlbmQgdGhlIGNsaWNrIGV2ZW50LgorICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9k
ZSA9ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2s7CisgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tM
b2NhdGlvbiA9IGxvY2F0aW9uOworICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTW9kaWZpZXJz
ID0gbW9kaWZpZXJzOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlUGVuZGluZ1N5bnRoZXRp
Y0NsaWNrRm9yQ29udGVudENoYW5nZU9ic2VydmVyKCkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0o
Q29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImNvbXBsZXRlUGVuZGluZ1N5bnRoZXRpY0Ns
aWNrRm9yQ29udGVudENoYW5nZU9ic2VydmVyOiBwZW5kaW5nIHRhcmdldCBub2RlKCIgPDwgbV9w
ZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlIDw8ICIpIik7CisgICAgV1RGTG9nQWx3YXlzKCJaQUwg
Y29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6IHBl
bmRpbmcgdGFyZ2V0IG5vZGUiKTsKICAgICBpZiAoIW1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9k
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIGF1dG8gb2JzZXJ2ZWRDb250ZW50Q2hhbmdlID0gbV9w
ZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlLT5kb2N1bWVudCgpLmNvbnRlbnRDaGFuZ2VPYnNlcnZl
cigpLm9ic2VydmVkQ29udGVudENoYW5nZSgpOwogICAgIC8vIE9ubHkgZGlzcGF0Y2ggdGhlIGNs
aWNrIGlmIHRoZSBkb2N1bWVudCBkaWRuJ3QgZ2V0IGNoYW5nZWQgYnkgYW55IHRpbWVycyBzdGFy
dGVkIGJ5IHRoZSBtb3ZlIGV2ZW50LgogICAgIGlmIChvYnNlcnZlZENvbnRlbnRDaGFuZ2UgPT0g
V0tDb250ZW50Tm9DaGFuZ2UpIHsKLSAgICAgICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgIk5v
IGNoYWdlIHdhcyBvYnNlcnZlZCAtPiBjbGljay4iKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJa
QUwgTm8gY2hhZ2Ugd2FzIG9ic2VydmVkIC0+IGNsaWNrLiIpOwogICAgICAgICBjb21wbGV0ZVN5
bnRoZXRpY0NsaWNrKCptX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUsIG1fcGVuZGluZ1N5bnRo
ZXRpY0NsaWNrTG9jYXRpb24sIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTW9kaWZpZXJzLCBXZWJD
b3JlOjpPbmVGaW5nZXJUYXApOwogICAgIH0gZWxzZQotICAgICAgICBMT0coQ29udGVudE9ic2Vy
dmF0aW9uLCAiT2JzZXJ2ZWQgbWVhbmluZ2Z1bCB2aXNpYmxlIGNoYW5nZSAtPiBob3Zlci4iKTsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJaQUwgT2JzZXJ2ZWQgbWVhbmluZ2Z1bCB2aXNpYmxlIGNo
YW5nZSAtPiBob3Zlci4iKTsKIAogICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9IG51
bGxwdHI7CiAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbiA9IEZsb2F0UG9pbnQo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363733</attachid>
            <date>2019-03-05 22:11:01 -0800</date>
            <delta_ts>2019-03-05 22:11:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>23715</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjE2NTI3ZWVmMC4uZThmYzk3OGJkNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wMy0wNSAgQWxhbiBLaW5zbGV5ICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEludHJvZHVjZSBmaXhlZCBkdXJhdGlvbiBjb250ZW50IG9i
c2VydmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTUyOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NTc5OTEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1l
ci1ob3BzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1l
ci1ob3BzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGlu
ZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNl
cnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRp
b24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjZkYjRjOTQwOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1v
YnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hv
d24gYmVsb3cuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9jb250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtb24tdGltZXIt
aG9wcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlNWIwMDRlYTllCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLmh0bWwKQEAg
LTAsMCArMSw2OCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoZSBjYXNl
IHdoZW4gbmVzdGVkIHRpbWVycyB0cmlnZ2VyIHZpc2libGUgY29udGVudCBjaGFuZ2U8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAg
IGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9CisKKyNiZWNv
bWVzVmlzaWJsZSB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIHdpZHRoOiAxMDBweDsK
KyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9z
dHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7CisKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGxldCBy
ZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBsZXQgeCA9IHJlY3Qu
bGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdo
dCAvIDI7CisKKyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiAnY2xp
Y2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPWJlY29tZXNWaXNp
YmxlPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAgLy8gMS4g
SW5zdGFsbCBhIHNob3J0IHRpbWVyIG9uIGhvdmVyCisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21lIG5vbi12aXNpYmlsaXR5IHN0eWxlIGNoYW5n
ZSB3aXRoIGZvcmNpbmcgb2Zmc2V0SGVpZ2h0LgorICAgICAgICBiZWNvbWVzVmlzaWJsZS5zdHls
ZS5tYXJnaW5MZWZ0ID0gIjVweCI7CisgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0
OworCisgICAgICAgIC8vIDMuIEluc3RhbGwgYSBuZXN0ZWQgdGltZXIgd2l0aCB2aXNpYmlsaXR5
IGNoYW5nZS4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJl
Y29tZXNWaXNpYmxlLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
LCAwKTsKKyAgICAgICAgfSwgMTApOworICAgIH0sIDApOworfSwgZmFsc2UpOworCitiZWNvbWVz
VmlzaWJsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAK
KyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQgaGlkZGVuIjsKK30sIGZhbHNlKTsKKwor
dGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAK
KyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOworfSwgZmFsc2UpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNlOTNkZGZkNmUuLjIyY2ZlYWY0MDk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDMtMDUgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudENoYW5nZU9ic2VydmVyXSBJbnRy
b2R1Y2UgZml4ZWQgZHVyYXRpb24gY29udGVudCBvYnNlcnZhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1Mjk1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODU3OTkxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTb21lIHBhZ2VzIGhhdmUgYSBydW5sb29wLWxpa2Ugc2NoZWR1bGluZyBzZXR1
cCB3aGVyZSB0aGUgY29udGVudCB0cmlnZ2VyaW5nIGNoYW5nZSBoYXBwZW5zIGF0IGEgbmVzdGVk
IHRpbWVyIGZpcmluZy4KKyAgICAgICAgVGhpcyBwYXRjaCBoZWxwcyBmaW5kaW5nIGNhc2VzIGxp
a2UgdGhhdCB1c2luZyBhIDMybXMgbG9uZyBmaXhlZCB3aW5kb3cuIEN1cnJlbnRseSBuZXN0ZWQg
dGltZXJzIGdldCBkcm9wcGVkIG9uIHRoZSBmbG9vciBhbmQKKyAgICAgICAgd2Ugc3RvcCBvYnNl
cnZpbmcgZm9yIGNvbnRlbnQgY2hhbmdlcyBiZWZvcmUgdGhleSBldmVuIGdldCBmaXJlZC4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92
aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMuaHRtbAorCisgICAgICAgICog
cGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6Q29udGVudENoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6c3RhcnRDb250ZW50T2JzZXJ2YXRpb25Gb3JE
dXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNvbXBs
ZXRlRHVyYXRpb25CYXNlZENvbnRlbnRPYnNlcnZhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZEluc3RhbGxET01UaW1lcik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZFJlbW92ZURPTVRpbWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZG9tVGltZXJFeGVjdXRlRGlkU3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkb21UaW1lckV4ZWN1
dGVEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpz
dHlsZVJlY2FsY0RpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNl
cnZlcjo6c3R5bGVSZWNhbGNEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENo
YW5nZU9ic2VydmVyOjpjYW5jZWxQZW5kaW5nQWN0aXZpdGllcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZFN1c3BlbmRBY3RpdmVET01PYmplY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6d2lsbERldGFjaFBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpjb250ZW50VmlzaWJpbGl0
eURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnNl
dFNob3VsZE9ic2VydmVOZXh0U3R5bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dENoYW5nZU9ic2VydmVyOjphZGp1c3RPYnNlcnZlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6U3R5bGVDaGFuZ2VTY29wZTo6U3R5bGVDaGFuZ2VTY29w
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OlN0eWxlQ2hhbmdl
U2NvcGU6On5TdHlsZUNoYW5nZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFu
Z2VPYnNlcnZlcjo6Y2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6Y2xlYXJPYnNlcnZlZERPTVRpbWVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmlzT2JzZXJ2aW5nQ29udGVu
dENoYW5nZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVy
OjpoYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorCiAyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRk
IGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24g
b24vb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdl
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2Vy
dmVyLmNwcAppbmRleCBmMGQ1ODE1ZjdmNy4uZWY5NjVkNmQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcApAQCAtMzksOSArMzks
MjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OkNvbnRl
bnRDaGFuZ2VPYnNlcnZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQorICAgICwgbV9jb250ZW50T2JzZXJ2YXRpb25UaW1lcihbdGhpc10geyBjb21wbGV0
ZUR1cmF0aW9uQmFzZWRDb250ZW50T2JzZXJ2YXRpb24oKTsgfSkKIHsKIH0KIAordm9pZCBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0YXJ0Q29udGVudE9ic2VydmF0aW9uRm9yRHVyYXRpb24oU2Vj
b25kcyBkdXJhdGlvbikKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoIWhh
c1Zpc2libGVDaGFuZ2VTdGF0ZSgpKTsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBzdGFydENvbnRl
bnRPYnNlcnZhdGlvbkZvckR1cmF0aW9uOiBzdGFydCBvYnNlcnZpbmcgdGhlIGNvbnRlbnQgZm9y
IG1zIik7CisgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudDo6U3RhcnRlZEZpeGVkT2JzZXJ2
YXRpb25UaW1lV2luZG93KTsKKyAgICBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLnN0YXJ0T25l
U2hvdChkdXJhdGlvbik7Cit9CisKK3ZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjb21wbGV0
ZUR1cmF0aW9uQmFzZWRDb250ZW50T2JzZXJ2YXRpb24oKQoreworICAgIFdURkxvZ0Fsd2F5cygi
WkFMIGNvbXBsZXRlRHVyYXRpb25CYXNlZENvbnRlbnRPYnNlcnZhdGlvbjogY29tcGxldGUgZHVy
YXRpb24gYmFzZWQgY29udGVudCBvYnNlcnZpbmcgIik7CisgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0
ZShFdmVudDo6RW5kZWRGaXhlZE9ic2VydmF0aW9uVGltZVdpbmRvdyk7Cit9CisKIHZvaWQgQ29u
dGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRp
bWVyLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsKICAgICBpZiAoIW1fZG9j
dW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCkBAIC01NCw3
ICs3MSw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIo
Y29uc3QgRE9NVGltZXImIHRpbWVyLCBTZWNvbmRzIHRpCiAgICAgICAgIHJldHVybjsKICAgICBp
ZiAoaGFzVmlzaWJsZUNoYW5nZVN0YXRlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBMT0dfV0lU
SF9TVFJFQU0oQ29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImRpZEluc3RhbGxET01UaW1l
cjogcmVnaXN0ZXIgdGhpcyB0aW1lcjogKCIgPDwgJnRpbWVyIDw8ICIpIGFuZCBvYnNlcnZlIHdo
ZW4gaXQgZmlyZXMuIik7CisgICAgV1RGTG9nQWx3YXlzKCJaQUwgZGlkSW5zdGFsbERPTVRpbWVy
OiByZWdpc3RlciB0aGlzIHRpbWVyOiBhbmQgb2JzZXJ2ZSB3aGVuIGl0IGZpcmVzLiIpOwogCiAg
ICAgcmVnaXN0ZXJET01UaW1lcih0aW1lcik7CiAgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVu
dDo6SW5zdGFsbGVkRE9NVGltZXIpOwpAQCAtNjQsNyArODEsNyBAQCB2b2lkIENvbnRlbnRDaGFu
Z2VPYnNlcnZlcjo6ZGlkUmVtb3ZlRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRpbWVyKQogewog
ICAgIGlmICghY29udGFpbnNPYnNlcnZlZERPTVRpbWVyKHRpbWVyKSkKICAgICAgICAgcmV0dXJu
OwotICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2YXRpb24sIHN0cmVhbSA8PCAicmVt
b3ZlRE9NVGltZXI6IHJlbW92ZSByZWdpc3RlcmVkIHRpbWVyICgiIDw8ICZ0aW1lciA8PCAiKSIp
OworICAgIFdURkxvZ0Fsd2F5cygiWkFMIHJlbW92ZURPTVRpbWVyOiByZW1vdmUgcmVnaXN0ZXJl
ZCB0aW1lciApIik7CiAKICAgICB1bnJlZ2lzdGVyRE9NVGltZXIodGltZXIpOwogICAgIGFkanVz
dE9ic2VydmVkU3RhdGUoRXZlbnQ6OlJlbW92ZWRET01UaW1lcik7CkBAIC03NCw3ICs5MSw3IEBA
IHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkb21UaW1lckV4ZWN1dGVEaWRTdGFydChjb25z
dCBET01UaW1lciYgdGltZXIpCiB7CiAgICAgaWYgKCFjb250YWluc09ic2VydmVkRE9NVGltZXIo
dGltZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRPYnNl
cnZhdGlvbiwgc3RyZWFtIDw8ICJzdGFydE9ic2VydmluZ0RPTVRpbWVyRXhlY3V0ZTogc3RhcnQg
b2JzZXJ2aW5nICgiIDw8ICZ0aW1lciA8PCAiKSB0aW1lciBjYWxsYmFjay4iKTsKKyAgICBXVEZM
b2dBbHdheXMoIlpBTCBzdGFydE9ic2VydmluZ0RPTVRpbWVyRXhlY3V0ZTogc3RhcnQgb2JzZXJ2
aW5nIHRpbWVyIGNhbGxiYWNrLiIpOwogCiAgICAgbV9kb21UaW1lcklzQmVpbmdFeGVjdXRlZCA9
IHRydWU7CiB9CkBAIC04Myw3ICsxMDAsNyBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6
ZG9tVGltZXJFeGVjdXRlRGlkRmluaXNoKGNvbnN0IERPTVRpbWVyJiB0aW1lcikKIHsKICAgICBp
ZiAoIWNvbnRhaW5zT2JzZXJ2ZWRET01UaW1lcih0aW1lcikpCiAgICAgICAgIHJldHVybjsKLSAg
ICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgInN0b3BPYnNl
cnZpbmdET01UaW1lckV4ZWN1dGU6IHN0b3Agb2JzZXJ2aW5nICgiIDw8ICZ0aW1lciA8PCAiKSB0
aW1lciBjYWxsYmFjay4iKTsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBzdG9wT2JzZXJ2aW5nRE9N
VGltZXJFeGVjdXRlOiBzdG9wIG9ic2VydmluZyB0aW1lciBjYWxsYmFjay4iKTsKIAogICAgIG1f
ZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgPSBmYWxzZTsKICAgICB1bnJlZ2lzdGVyRE9NVGltZXIo
dGltZXIpOwpAQCAtOTcsNyArMTE0LDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0
eWxlUmVjYWxjRGlkU3RhcnQoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGhhc1Zpc2libGVD
aGFuZ2VTdGF0ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgTE9HKENvbnRlbnRPYnNlcnZhdGlv
biwgInN0YXJ0T2JzZXJ2aW5nU3R5bGVSZWNhbGM6IHN0YXJ0IG9ic2VydmluZyBzdHlsZSByZWNh
bGMuIik7CisgICAgV1RGTG9nQWx3YXlzKCJaQUwgc3RhcnRPYnNlcnZpbmdTdHlsZVJlY2FsYzog
c3RhcnQgb2JzZXJ2aW5nIHN0eWxlIHJlY2FsYy4iKTsKIAogICAgIG1fc3R5bGVSZWNhbGNJc0Jl
aW5nRXhlY3V0ZWQgPSB0cnVlOwogfQpAQCAtMTA2LDM4ICsxMjMsMzQgQEAgdm9pZCBDb250ZW50
Q2hhbmdlT2JzZXJ2ZXI6OnN0eWxlUmVjYWxjRGlkRmluaXNoKCkKIHsKICAgICBpZiAoIWlzT2Jz
ZXJ2aW5nU3R5bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJuOwotICAgIExPRyhDb250ZW50T2Jz
ZXJ2YXRpb24sICJzdG9wT2JzZXJ2aW5nU3R5bGVSZWNhbGM6IHN0b3Agb2JzZXJ2aW5nIHN0eWxl
IHJlY2FsYyIpOworICAgIFdURkxvZ0Fsd2F5cygiWkFMIHN0b3BPYnNlcnZpbmdTdHlsZVJlY2Fs
Yzogc3RvcCBvYnNlcnZpbmcgc3R5bGUgcmVjYWxjIik7CiAKICAgICBtX3N0eWxlUmVjYWxjSXNC
ZWluZ0V4ZWN1dGVkID0gZmFsc2U7CiAgICAgc2V0U2hvdWxkT2JzZXJ2ZU5leHRTdHlsZVJlY2Fs
YyhmYWxzZSk7CiAgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudDo6U3R5bGVSZWNhbGNGaW5p
c2hlZCk7CiB9CiAKLXZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjbGVhclRpbWVyc0FuZFJl
cG9ydENvbnRlbnRDaGFuZ2UoKQordm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNhbmNlbFBl
bmRpbmdBY3Rpdml0aWVzKCkKIHsKLSAgICBpZiAoIWhhc09ic2VydmVkRE9NVGltZXIoKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2YXRpb24sIHN0
cmVhbSA8PCAiY2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlOiByZW1vdmUgcmVnaXN0
ZXJlZCB0aW1lcnMgYW5kIHJlcG9ydCBjb250ZW50IGNoYW5nZS4iIDw8IG9ic2VydmVkQ29udGVu
dENoYW5nZSgpKTsKLQogICAgIGNsZWFyT2JzZXJ2ZWRET01UaW1lcnMoKTsKLSAgICBBU1NFUlQo
bV9kb2N1bWVudC5wYWdlKCkpOwotICAgIEFTU0VSVChtX2RvY3VtZW50LmZyYW1lKCkpOwotICAg
IG1fZG9jdW1lbnQucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFu
Z2UoKm1fZG9jdW1lbnQuZnJhbWUoKSk7CisgICAgbV9jb250ZW50T2JzZXJ2YXRpb25UaW1lci5z
dG9wKCk7CiB9CiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRTdXNwZW5kQWN0aXZl
RE9NT2JqZWN0cygpCiB7Ci0gICAgY2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlKCk7
CisgICAgV1RGTG9nQWx3YXlzKCJaQUwgZGlkU3VzcGVuZEFjdGl2ZURPTU9iamVjdHMiKTsKKyAg
ICBjYW5jZWxQZW5kaW5nQWN0aXZpdGllcygpOwogfQogCiB2b2lkIENvbnRlbnRDaGFuZ2VPYnNl
cnZlcjo6d2lsbERldGFjaFBhZ2UoKQogewotICAgIGNsZWFyVGltZXJzQW5kUmVwb3J0Q29udGVu
dENoYW5nZSgpOworICAgIFdURkxvZ0Fsd2F5cygiWkFMIHdpbGxEZXRhY2hQYWdlIik7CisgICAg
Y2FuY2VsUGVuZGluZ0FjdGl2aXRpZXMoKTsKIH0KIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2
ZXI6OmNvbnRlbnRWaXNpYmlsaXR5RGlkQ2hhbmdlKCkKIHsKLSAgICBMT0coQ29udGVudE9ic2Vy
dmF0aW9uLCAiY29udGVudFZpc2liaWxpdHlEaWRDaGFuZ2U6IHZpc2libGUgY29udGVudCBjaGFu
Z2UgZGlkIGhhcHBlbi4iKTsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBjb250ZW50VmlzaWJpbGl0
eURpZENoYW5nZTogdmlzaWJsZSBjb250ZW50IGNoYW5nZSBkaWQgaGFwcGVuLiIpOwogICAgIGFk
anVzdE9ic2VydmVkU3RhdGUoRXZlbnQ6OkNvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlZCk7CiB9CiAK
QEAgLTE2OCw3ICsxODEsNyBAQCBXS0NvbnRlbnRDaGFuZ2UgQ29udGVudENoYW5nZU9ic2VydmVy
OjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBjb25zdAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2
ZXI6OnNldFNob3VsZE9ic2VydmVOZXh0U3R5bGVSZWNhbGMoYm9vbCBzaG91bGRPYnNlcnZlKQog
ewogICAgIGlmIChzaG91bGRPYnNlcnZlKQotICAgICAgICBMT0coQ29udGVudE9ic2VydmF0aW9u
LCAiV2FpdCB1bnRpbCBuZXh0IHN0eWxlIHJlY2FsYyBmaXJlcy4iKTsKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCJaQUwgV2FpdCB1bnRpbCBuZXh0IHN0eWxlIHJlY2FsYyBmaXJlcy4iKTsKICAgICBt
X2lzT2JzZXJ2aW5nU3R5bGVSZWNhbGMgPSBzaG91bGRPYnNlcnZlOwogfQogCkBAIC0xOTAsMTAg
KzIwMywxMCBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6YWRqdXN0T2JzZXJ2ZWRTdGF0
ZShFdmVudCBldmVudCkKIHsKICAgICBhdXRvIG5vdGlmeUNvbnRlbnRDaGFuZ2VJZk5lZWRlZCA9
IFsmXSB7CiAgICAgICAgIGlmICghaGFzRGV0ZXJtaW5hdGVTdGF0ZSgpKSB7Ci0gICAgICAgICAg
ICBMT0coQ29udGVudE9ic2VydmF0aW9uLCAibm90aWZ5Q29udGVudENoYW5nZUlmTmVlZGVkOiBu
b3QgaW4gYSBkZXRlcm1pbmVkIHN0YXRlIHlldC4iKTsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiWkFMIG5vdGlmeUNvbnRlbnRDaGFuZ2VJZk5lZWRlZDogbm90IGluIGEgZGV0ZXJtaW5lZCBz
dGF0ZSB5ZXQuIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJub3RpZnlDb250ZW50
Q2hhbmdlSWZOZWVkZWQ6IHNlbmRpbmcgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlIC0+IiA8PCBvYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiWkFMIG5vdGlmeUNv
bnRlbnRDaGFuZ2VJZk5lZWRlZDogc2VuZGluZyBvYnNlcnZlZENvbnRlbnRDaGFuZ2UgLT4gJWQi
LCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSk7CiAgICAgICAgIEFTU0VSVChpc05vdGlmeUNvbnRl
bnRDaGFuZ2VBbGxvd2VkKCkpOwogICAgICAgICBBU1NFUlQobV9kb2N1bWVudC5wYWdlKCkpOwog
ICAgICAgICBBU1NFUlQobV9kb2N1bWVudC5mcmFtZSgpKTsKQEAgLTIwNSw2ICsyMTgsNyBAQCB2
b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6YWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudCBldmVu
dCkKICAgICAgICAgc2V0SGFzTm9DaGFuZ2VTdGF0ZSgpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEV2ZW50OjpJbnN0YWxsZWRET01UaW1lcjoKKyAgICBjYXNlIEV2ZW50OjpTdGFydGVkRml4
ZWRPYnNlcnZhdGlvblRpbWVXaW5kb3c6CiAgICAgICAgIC8vIEV4cGVjdGluZyBhIHRpbWVyIGZp
cmUuIFByb21vdGUgdG8gYW4gaW5kZXRlcm1pbmF0ZSBzdGF0ZS4KICAgICAgICAgQVNTRVJUKCFo
YXNWaXNpYmxlQ2hhbmdlU3RhdGUoKSk7CiAgICAgICAgIHNldEhhc0luZGV0ZXJtaW5hdGVTdGF0
ZSgpOwpAQCAtMjEyLDYgKzIyNiw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjphZGp1
c3RPYnNlcnZlZFN0YXRlKEV2ZW50IGV2ZW50KQogICAgIGNhc2UgRXZlbnQ6OlJlbW92ZWRET01U
aW1lcjoKICAgICBjYXNlIEV2ZW50OjpTdHlsZVJlY2FsY0ZpbmlzaGVkOgogICAgIGNhc2UgRXZl
bnQ6OkVuZGVkRE9NVGltZXJFeGVjdXRpb246CisgICAgY2FzZSBFdmVudDo6RW5kZWRGaXhlZE9i
c2VydmF0aW9uVGltZVdpbmRvdzoKICAgICAgICAgLy8gRGVtb3RlIHRvICJubyBjaGFuZ2UiIHdo
ZW4gdGhlcmUncyBubyBwZW5kaW5nIGFjdGl2aXR5IGFueW1vcmUuCiAgICAgICAgIGlmIChvYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnRJbmRldGVybWluYXRlQ2hhbmdlICYmICFo
YXNQZW5kaW5nQWN0aXZpdHkoKSkKICAgICAgICAgICAgIHNldEhhc05vQ2hhbmdlU3RhdGUoKTsK
QEAgLTI1MSwxMCArMjY2LDEyIEBAIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6U3R5bGVDaGFuZ2VT
Y29wZTo6U3R5bGVDaGFuZ2VTY29wZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvCiAgICAgLCBtX2Vs
ZW1lbnQoZWxlbWVudCkKICAgICAsIG1fbmVlZHNPYnNlcnZpbmcobV9jb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpICYmICFtX2NvbnRlbnRDaGFuZ2VPYnNl
cnZlci5oYXNWaXNpYmxlQ2hhbmdlU3RhdGUoKSkKIHsKKyAgICBXVEZMb2dBbHdheXMoIlpBTCBT
dHlsZUNoYW5nZVNjb3BlOjpTdHlsZUNoYW5nZVNjb3BlICVkIiwgbV9jb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpKTsKICAgICBpZiAobV9uZWVkc09ic2Vy
dmluZykgewogICAgICAgICBtX3ByZXZpb3VzRGlzcGxheSA9IGVsZW1lbnQucmVuZGVyU3R5bGUo
KSA/IGVsZW1lbnQucmVuZGVyU3R5bGUoKS0+ZGlzcGxheSgpIDogRGlzcGxheVR5cGU6Ok5vbmU7
CiAgICAgICAgIG1fcHJldmlvdXNWaXNpYmlsaXR5ID0gZWxlbWVudC5yZW5kZXJTdHlsZSgpID8g
ZWxlbWVudC5yZW5kZXJTdHlsZSgpLT52aXNpYmlsaXR5KCkgOiBWaXNpYmlsaXR5OjpIaWRkZW47
CiAgICAgICAgIG1fcHJldmlvdXNJbXBsaWNpdFZpc2liaWxpdHkgPSBlbGVtZW50SW1wbGljaXRW
aXNpYmlsaXR5KGVsZW1lbnQpOworICAgICAgICBXVEZMb2dBbHdheXMoIlpBTCBTdHlsZUNoYW5n
ZVNjb3BlOjpTdHlsZUNoYW5nZVNjb3BlIG1fbmVlZHNPYnNlcnZpbmcgJWQgbV9wcmV2aW91c1Zp
c2liaWxpdHk6JWhodSIsIG1fbmVlZHNPYnNlcnZpbmcsIG1fcHJldmlvdXNWaXNpYmlsaXR5KTsK
ICAgICB9CiB9CiAKQEAgLTI3Nyw2ICsyOTQsNyBAQCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OlN0
eWxlQ2hhbmdlU2NvcGU6On5TdHlsZUNoYW5nZVNjb3BlKCkKICAgICBpZiAoIXF1YWxpZmllc0Zv
clZpc2liaWxpdHlDaGVjaygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBXVEZMb2dBbHdheXMo
IlpBTCBTdHlsZUNoYW5nZVNjb3BlOjp+U3R5bGVDaGFuZ2VTY29wZSB2aXNpYmlsaXR5OiVoaHUi
LCBzdHlsZS0+dmlzaWJpbGl0eSgpKTsKICAgICBpZiAoKG1fcHJldmlvdXNEaXNwbGF5ID09IERp
c3BsYXlUeXBlOjpOb25lICYmIHN0eWxlLT5kaXNwbGF5KCkgIT0gRGlzcGxheVR5cGU6Ok5vbmUp
CiAgICAgICAgIHx8IChtX3ByZXZpb3VzVmlzaWJpbGl0eSA9PSBWaXNpYmlsaXR5OjpIaWRkZW4g
JiYgc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpIaWRkZW4pCiAgICAgICAgIHx8
IChtX3ByZXZpb3VzSW1wbGljaXRWaXNpYmlsaXR5ID09IFZpc2liaWxpdHk6OkhpZGRlbiAmJiBl
bGVtZW50SW1wbGljaXRWaXNpYmlsaXR5KG1fZWxlbWVudCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJs
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5o
CmluZGV4IDEwMmFjYTRmYmUzLi41NTNlNzlhMTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldL
Q29udGVudE9ic2VydmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDExICsz
OSwxMSBAQCBjbGFzcyBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIENvbnRl
bnRDaGFuZ2VPYnNlcnZlcihEb2N1bWVudCYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
dGFydENvbnRlbnRPYnNlcnZhdGlvbkZvckR1cmF0aW9uKFNlY29uZHMgZHVyYXRpb24pOwogICAg
IFdFQkNPUkVfRVhQT1JUIFdLQ29udGVudENoYW5nZSBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBj
b25zdDsKIAogICAgIHZvaWQgZGlkSW5zdGFsbERPTVRpbWVyKGNvbnN0IERPTVRpbWVyJiwgU2Vj
b25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwogICAgIHZvaWQgZGlkUmVtb3ZlRE9NVGlt
ZXIoY29uc3QgRE9NVGltZXImKTsKLSAgICB2b2lkIGNvbnRlbnRWaXNpYmlsaXR5RGlkQ2hhbmdl
KCk7CiAgICAgdm9pZCBkaWRTdXNwZW5kQWN0aXZlRE9NT2JqZWN0cygpOwogICAgIHZvaWQgd2ls
bERldGFjaFBhZ2UoKTsKIApAQCAtODksMTIgKzkwLDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBt
b3VzZU1vdmVkRGlkU3RhcnQoKTsKICAgICB2b2lkIG1vdXNlTW92ZWREaWRGaW5pc2goKTsKIAor
ICAgIHZvaWQgY29udGVudFZpc2liaWxpdHlEaWRDaGFuZ2UoKTsKKwogICAgIHZvaWQgc2V0U2hv
dWxkT2JzZXJ2ZURPTVRpbWVyU2NoZWR1bGluZyhib29sIG9ic2VydmUpIHsgbV9pc09ic2Vydmlu
Z0RPTVRpbWVyU2NoZWR1bGluZyA9IG9ic2VydmU7IH0KICAgICBib29sIGlzT2JzZXJ2aW5nRE9N
VGltZXJTY2hlZHVsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc09ic2VydmluZ0RPTVRpbWVyU2No
ZWR1bGluZzsgfQogICAgIHZvaWQgZG9tVGltZXJFeGVjdXRlRGlkU3RhcnQoY29uc3QgRE9NVGlt
ZXImKTsKICAgICB2b2lkIGRvbVRpbWVyRXhlY3V0ZURpZEZpbmlzaChjb25zdCBET01UaW1lciYp
OwogICAgIHZvaWQgcmVnaXN0ZXJET01UaW1lcihjb25zdCBET01UaW1lciYgdGltZXIpIHsgbV9E
T01UaW1lckxpc3QuYWRkKCZ0aW1lcik7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJET01UaW1lcihj
b25zdCBET01UaW1lciYgdGltZXIpIHsgbV9ET01UaW1lckxpc3QucmVtb3ZlKCZ0aW1lcik7IH0K
KyAgICB2b2lkIGNsZWFyT2JzZXJ2ZWRET01UaW1lcnMoKSB7IG1fRE9NVGltZXJMaXN0LmNsZWFy
KCk7IH0KICAgICBib29sIGNvbnRhaW5zT2JzZXJ2ZWRET01UaW1lcihjb25zdCBET01UaW1lciYg
dGltZXIpIGNvbnN0IHsgcmV0dXJuIG1fRE9NVGltZXJMaXN0LmNvbnRhaW5zKCZ0aW1lcik7IH0K
IAogICAgIHZvaWQgc3R5bGVSZWNhbGNEaWRTdGFydCgpOwpAQCAtMTAyLDEwICsxMDYsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZU5leHRTdHlsZVJlY2FsYyhib29sKTsK
ICAgICBib29sIGlzT2JzZXJ2aW5nU3R5bGVSZWNhbGMoKSBjb25zdCB7IHJldHVybiBtX2lzT2Jz
ZXJ2aW5nU3R5bGVSZWNhbGM7IH0KIAotICAgIGJvb2wgaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgfHwgbV9zdHlsZVJl
Y2FsY0lzQmVpbmdFeGVjdXRlZDsgfQorICAgIGJvb2wgaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgfHwgbV9zdHlsZVJl
Y2FsY0lzQmVpbmdFeGVjdXRlZCB8fCBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLmlzQWN0aXZl
KCk7IH0KIAotICAgIHZvaWQgY2xlYXJPYnNlcnZlZERPTVRpbWVycygpIHsgbV9ET01UaW1lckxp
c3QuY2xlYXIoKTsgfQotICAgIHZvaWQgY2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdl
KCk7CisgICAgdm9pZCBjYW5jZWxQZW5kaW5nQWN0aXZpdGllcygpOwogCiAgICAgdm9pZCBzZXRI
YXNJbmRldGVybWluYXRlU3RhdGUoKTsKICAgICB2b2lkIHNldEhhc1Zpc2libGVDaGFuZ2VTdGF0
ZSgpOwpAQCAtMTE1LDIyICsxMTgsMjcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc09ic2VydmVk
RE9NVGltZXIoKSBjb25zdCB7IHJldHVybiAhbV9ET01UaW1lckxpc3QuaXNFbXB0eSgpOyB9CiAg
ICAgYm9vbCBoYXNEZXRlcm1pbmF0ZVN0YXRlKCkgY29uc3Q7CiAKLSAgICBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIGhhc09ic2VydmVkRE9NVGltZXIoKSB8fCBtX2Rv
Y3VtZW50Lmhhc1BlbmRpbmdTdHlsZVJlY2FsYygpOyB9CisgICAgYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdCB7IHJldHVybiBoYXNPYnNlcnZlZERPTVRpbWVyKCkgfHwgbV9kb2N1bWVu
dC5oYXNQZW5kaW5nU3R5bGVSZWNhbGMoKSB8fCBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLmlz
QWN0aXZlKCk7IH0KICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgYm9vbCBpc05vdGlmeUNvbnRl
bnRDaGFuZ2VBbGxvd2VkKCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIHZvaWQgY29tcGxldGVEdXJh
dGlvbkJhc2VkQ29udGVudE9ic2VydmF0aW9uKCk7CisKICAgICBlbnVtIGNsYXNzIEV2ZW50IHsK
ICAgICAgICAgU3RhcnRlZE1vdXNlTW92ZWRFdmVudERpc3BhdGNoaW5nLAogICAgICAgICBJbnN0
YWxsZWRET01UaW1lciwKICAgICAgICAgUmVtb3ZlZERPTVRpbWVyLAogICAgICAgICBFbmRlZERP
TVRpbWVyRXhlY3V0aW9uLAogICAgICAgICBTdHlsZVJlY2FsY0ZpbmlzaGVkLAotICAgICAgICBD
b250ZW50VmlzaWJpbGl0eUNoYW5nZWQKKyAgICAgICAgQ29udGVudFZpc2liaWxpdHlDaGFuZ2Vk
LAorICAgICAgICBTdGFydGVkRml4ZWRPYnNlcnZhdGlvblRpbWVXaW5kb3csCisgICAgICAgIEVu
ZGVkRml4ZWRPYnNlcnZhdGlvblRpbWVXaW5kb3cKICAgICB9OwogICAgIHZvaWQgYWRqdXN0T2Jz
ZXJ2ZWRTdGF0ZShFdmVudCk7CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBUaW1l
ciBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyOwogICAgIEhhc2hTZXQ8Y29uc3QgRE9NVGltZXIq
PiBtX0RPTVRpbWVyTGlzdDsKICAgICBib29sIG1faXNPYnNlcnZpbmdTdHlsZVJlY2FsYyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3N0eWxlUmVjYWxjSXNCZWluZ0V4ZWN1dGVkIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTkzNjMxNTFmNzUuLjQzNmI2YTY1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gSW50cm9kdWNlIGZpeGVkIGR1cmF0aW9uIGNv
bnRlbnQgb2JzZXJ2YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTI5NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg1Nzk5MTM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhh
bmRsZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcGxldGVQ
ZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIpOgorCiAyMDE5LTAz
LTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRD
aGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBj
aGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDk5ODRjNGU1MzQ2Li4zNmJkNzQ4Mzhm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTU0NSw1MyArNTQ1LDUwIEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhl
dGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAg
ICAgYm9vbCBhbHRLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpB
bHRLZXkpOwogICAgIGJvb2wgbWV0YUtleSA9IG1vZGlmaWVycy5jb250YWlucyhXZWJFdmVudDo6
TW9kaWZpZXI6Ok1ldGFLZXkpOwogICAgIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRl
bnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJoYW5kbGVTeW50aGV0aWNDbGljazogbm9kZSgiIDw8
ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2sgPDwgIikgIiA8PCBsb2NhdGlvbik7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiWkFMIGhhbmRsZVN5bnRoZXRpY0NsaWNrOiBub2RlIik7CiAgICAgICAgIENv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6TW91c2VNb3ZlZFNjb3BlIG9ic2VydmluZ1Njb3BlKHJlc3Bv
bmRpbmdEb2N1bWVudCk7CiAgICAgICAgIGF1dG8mIG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZy
YW1lKCk7CiAgICAgICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRm
b3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQs
IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtl
eSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgV2ViQ29yZTo6Tm9UYXApKTsKICAgICAgICAgbWFpbmZyYW1lLmRvY3VtZW50KCktPnVwZGF0
ZVN0eWxlSWZOZWVkZWQoKTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05v
ZGUgPSBudWxscHRyOwotICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBGbG9h
dFBvaW50KCk7Ci0gICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSB7IH07Ci0K
ICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3dpdGNoIChyZXNw
b25kaW5nRG9jdW1lbnQuY29udGVudENoYW5nZU9ic2VydmVyKCkub2JzZXJ2ZWRDb250ZW50Q2hh
bmdlKCkpIHsKLSAgICBjYXNlIFdLQ29udGVudFZpc2liaWxpdHlDaGFuZ2U6CisgICAgYXV0byYg
Y29udGVudENoYW5nZU9ic2VydmVyID0gcmVzcG9uZGluZ0RvY3VtZW50LmNvbnRlbnRDaGFuZ2VP
YnNlcnZlcigpOworICAgIGF1dG8gb2JzZXJ2ZWRDb250ZW50Q2hhbmdlID0gY29udGVudENoYW5n
ZU9ic2VydmVyLm9ic2VydmVkQ29udGVudENoYW5nZSgpOworICAgIGlmIChvYnNlcnZlZENvbnRl
bnRDaGFuZ2UgPT0gV0tDb250ZW50VmlzaWJpbGl0eUNoYW5nZSkgewogICAgICAgICAvLyBUaGUg
bW92ZSBldmVudCBjYXVzZWQgbmV3IGNvbnRlbnRzIHRvIGFwcGVhci4gRG9uJ3Qgc2VuZCB0aGUg
Y2xpY2sgZXZlbnQuCi0gICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5kbGVTeW50
aGV0aWNDbGljazogT2JzZXJ2ZWQgbWVhbmluZ2Z1bCB2aXNpYmxlIGNoYW5nZSAtPiBob3Zlci4i
KTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJaQUwgaGFuZGxlU3ludGhldGljQ2xpY2s6IE9ic2Vy
dmVkIG1lYW5pbmdmdWwgdmlzaWJsZSBjaGFuZ2UgLT4gaG92ZXIuIik7CiAgICAgICAgIHJldHVy
bjsKLSAgICBjYXNlIFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2U6IHsKLSAgICAgICAgLy8g
V2FpdCBmb3IgY2FsbGJhY2sgdG8gY29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250
ZW50Q2hhbmdlT2JzZXJ2ZXIoKSB0byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZSBjbGljayBl
dmVudC4KLSAgICAgICAgQVNTRVJUKHJlc3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRl
bnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSk7Ci0gICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0Ns
aWNrTm9kZSA9ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2s7Ci0gICAgICAgIG1fcGVuZGluZ1N5bnRo
ZXRpY0NsaWNrTG9jYXRpb24gPSBsb2NhdGlvbjsKLSAgICAgICAgbV9wZW5kaW5nU3ludGhldGlj
Q2xpY2tNb2RpZmllcnMgPSBtb2RpZmllcnM7Ci0gICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRp
b24sICJoYW5kbGVTeW50aGV0aWNDbGljazogT2JzZXJ2ZWQgc29tZSBjaGFuZ2UsIGJ1dCBjYW4n
dCBkZWNpZGUgaXQgeWV0IC0+IHdhaXQuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9IGNhc2Ug
V0tDb250ZW50Tm9DaGFuZ2U6Ci0gICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5k
bGVTeW50aGV0aWNDbGljazogTm8gY2hhbmdlIHdhcyBvYnNlcnZlZCAtPiBjbGljay4iKTsKKyAg
ICB9CisgICAgY29uc3QgU2Vjb25kcyBvYnNlcnZhdGlvbkR1cmF0aW9uID0gMzJfbXM7CisgICAg
Y29udGVudENoYW5nZU9ic2VydmVyLnN0YXJ0Q29udGVudE9ic2VydmF0aW9uRm9yRHVyYXRpb24o
b2JzZXJ2YXRpb25EdXJhdGlvbik7CisgICAgaWYgKGNvbnRlbnRDaGFuZ2VPYnNlcnZlci5vYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnROb0NoYW5nZSkgeworICAgICAgICBBU1NF
UlQoIXJlc3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVu
YWJsZWQoKSk7CiAgICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdU
b0NsaWNrLCBsb2NhdGlvbiwgbW9kaWZpZXJzLCBXZWJDb3JlOjpPbmVGaW5nZXJUYXApOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgV1RG
TG9nQWx3YXlzKCJaQUwgaGFuZGxlU3ludGhldGljQ2xpY2s6IENhbid0IGRlY2lkZSBpdCB5ZXQg
LT4gd2FpdC4iKTsKKyAgICAvLyBXYWl0IGZvciBjYWxsYmFjayB0byBjb21wbGV0ZVBlbmRpbmdT
eW50aGV0aWNDbGlja0ZvckNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpIHRvIGRlY2lkZSB3aGV0aGVy
IHRvIHNlbmQgdGhlIGNsaWNrIGV2ZW50LgorICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9k
ZSA9ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2s7CisgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tM
b2NhdGlvbiA9IGxvY2F0aW9uOworICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTW9kaWZpZXJz
ID0gbW9kaWZpZXJzOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlUGVuZGluZ1N5bnRoZXRp
Y0NsaWNrRm9yQ29udGVudENoYW5nZU9ic2VydmVyKCkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0o
Q29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImNvbXBsZXRlUGVuZGluZ1N5bnRoZXRpY0Ns
aWNrRm9yQ29udGVudENoYW5nZU9ic2VydmVyOiBwZW5kaW5nIHRhcmdldCBub2RlKCIgPDwgbV9w
ZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlIDw8ICIpIik7CisgICAgV1RGTG9nQWx3YXlzKCJaQUwg
Y29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6IHBl
bmRpbmcgdGFyZ2V0IG5vZGUiKTsKICAgICBpZiAoIW1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9k
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIGF1dG8gb2JzZXJ2ZWRDb250ZW50Q2hhbmdlID0gbV9w
ZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlLT5kb2N1bWVudCgpLmNvbnRlbnRDaGFuZ2VPYnNlcnZl
cigpLm9ic2VydmVkQ29udGVudENoYW5nZSgpOwogICAgIC8vIE9ubHkgZGlzcGF0Y2ggdGhlIGNs
aWNrIGlmIHRoZSBkb2N1bWVudCBkaWRuJ3QgZ2V0IGNoYW5nZWQgYnkgYW55IHRpbWVycyBzdGFy
dGVkIGJ5IHRoZSBtb3ZlIGV2ZW50LgogICAgIGlmIChvYnNlcnZlZENvbnRlbnRDaGFuZ2UgPT0g
V0tDb250ZW50Tm9DaGFuZ2UpIHsKLSAgICAgICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgIk5v
IGNoYWdlIHdhcyBvYnNlcnZlZCAtPiBjbGljay4iKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJa
QUwgTm8gY2hhZ2Ugd2FzIG9ic2VydmVkIC0+IGNsaWNrLiIpOwogICAgICAgICBjb21wbGV0ZVN5
bnRoZXRpY0NsaWNrKCptX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUsIG1fcGVuZGluZ1N5bnRo
ZXRpY0NsaWNrTG9jYXRpb24sIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTW9kaWZpZXJzLCBXZWJD
b3JlOjpPbmVGaW5nZXJUYXApOwogICAgIH0gZWxzZQotICAgICAgICBMT0coQ29udGVudE9ic2Vy
dmF0aW9uLCAiT2JzZXJ2ZWQgbWVhbmluZ2Z1bCB2aXNpYmxlIGNoYW5nZSAtPiBob3Zlci4iKTsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJaQUwgT2JzZXJ2ZWQgbWVhbmluZ2Z1bCB2aXNpYmxlIGNo
YW5nZSAtPiBob3Zlci4iKTsKIAogICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9IG51
bGxwdHI7CiAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbiA9IEZsb2F0UG9pbnQo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363734</attachid>
            <date>2019-03-05 22:14:08 -0800</date>
            <delta_ts>2019-03-07 09:20:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>16546</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjE2NTI3ZWVmMC4uYmYyOGZiZjExYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wMy0wNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEludHJvZHVjZSBmaXhlZCBkdXJhdGlvbiBjb250ZW50IG9i
c2VydmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTUyOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NTc5OTEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1l
ci1ob3BzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1l
ci1ob3BzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGlu
ZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNl
cnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRp
b24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjZkYjRjOTQwOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1v
YnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hv
d24gYmVsb3cuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9jb250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtb24tdGltZXIt
aG9wcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlNWIwMDRlYTllCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1vbi10aW1lci1ob3BzLmh0bWwKQEAg
LTAsMCArMSw2OCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoZSBjYXNl
IHdoZW4gbmVzdGVkIHRpbWVycyB0cmlnZ2VyIHZpc2libGUgY29udGVudCBjaGFuZ2U8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAg
IGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9CisKKyNiZWNv
bWVzVmlzaWJsZSB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIHdpZHRoOiAxMDBweDsK
KyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9z
dHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7CisKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGxldCBy
ZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBsZXQgeCA9IHJlY3Qu
bGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdo
dCAvIDI7CisKKyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiAnY2xp
Y2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPWJlY29tZXNWaXNp
YmxlPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAgLy8gMS4g
SW5zdGFsbCBhIHNob3J0IHRpbWVyIG9uIGhvdmVyCisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21lIG5vbi12aXNpYmlsaXR5IHN0eWxlIGNoYW5n
ZSB3aXRoIGZvcmNpbmcgb2Zmc2V0SGVpZ2h0LgorICAgICAgICBiZWNvbWVzVmlzaWJsZS5zdHls
ZS5tYXJnaW5MZWZ0ID0gIjVweCI7CisgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0
OworCisgICAgICAgIC8vIDMuIEluc3RhbGwgYSBuZXN0ZWQgdGltZXIgd2l0aCB2aXNpYmlsaXR5
IGNoYW5nZS4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJl
Y29tZXNWaXNpYmxlLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
LCAwKTsKKyAgICAgICAgfSwgMTApOworICAgIH0sIDApOworfSwgZmFsc2UpOworCitiZWNvbWVz
VmlzaWJsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAK
KyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQgaGlkZGVuIjsKK30sIGZhbHNlKTsKKwor
dGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAK
KyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOworfSwgZmFsc2UpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNlOTNkZGZkNmUuLjIyY2ZlYWY0MDk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDMtMDUgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudENoYW5nZU9ic2VydmVyXSBJbnRy
b2R1Y2UgZml4ZWQgZHVyYXRpb24gY29udGVudCBvYnNlcnZhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1Mjk1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODU3OTkxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTb21lIHBhZ2VzIGhhdmUgYSBydW5sb29wLWxpa2Ugc2NoZWR1bGluZyBzZXR1
cCB3aGVyZSB0aGUgY29udGVudCB0cmlnZ2VyaW5nIGNoYW5nZSBoYXBwZW5zIGF0IGEgbmVzdGVk
IHRpbWVyIGZpcmluZy4KKyAgICAgICAgVGhpcyBwYXRjaCBoZWxwcyBmaW5kaW5nIGNhc2VzIGxp
a2UgdGhhdCB1c2luZyBhIDMybXMgbG9uZyBmaXhlZCB3aW5kb3cuIEN1cnJlbnRseSBuZXN0ZWQg
dGltZXJzIGdldCBkcm9wcGVkIG9uIHRoZSBmbG9vciBhbmQKKyAgICAgICAgd2Ugc3RvcCBvYnNl
cnZpbmcgZm9yIGNvbnRlbnQgY2hhbmdlcyBiZWZvcmUgdGhleSBldmVuIGdldCBmaXJlZC4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92
aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLW9uLXRpbWVyLWhvcHMuaHRtbAorCisgICAgICAgICog
cGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRDaGFuZ2VPYnNlcnZlcjo6Q29udGVudENoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6c3RhcnRDb250ZW50T2JzZXJ2YXRpb25Gb3JE
dXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNvbXBs
ZXRlRHVyYXRpb25CYXNlZENvbnRlbnRPYnNlcnZhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZEluc3RhbGxET01UaW1lcik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZFJlbW92ZURPTVRpbWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZG9tVGltZXJFeGVjdXRlRGlkU3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkb21UaW1lckV4ZWN1
dGVEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpz
dHlsZVJlY2FsY0RpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNl
cnZlcjo6c3R5bGVSZWNhbGNEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENo
YW5nZU9ic2VydmVyOjpjYW5jZWxQZW5kaW5nQWN0aXZpdGllcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZFN1c3BlbmRBY3RpdmVET01PYmplY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6d2lsbERldGFjaFBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpjb250ZW50VmlzaWJpbGl0
eURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnNl
dFNob3VsZE9ic2VydmVOZXh0U3R5bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dENoYW5nZU9ic2VydmVyOjphZGp1c3RPYnNlcnZlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6U3R5bGVDaGFuZ2VTY29wZTo6U3R5bGVDaGFuZ2VTY29w
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OlN0eWxlQ2hhbmdl
U2NvcGU6On5TdHlsZUNoYW5nZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFu
Z2VPYnNlcnZlcjo6Y2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6Y2xlYXJPYnNlcnZlZERPTVRpbWVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmlzT2JzZXJ2aW5nQ29udGVu
dENoYW5nZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVy
OjpoYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorCiAyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRk
IGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24g
b24vb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdl
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2Vy
dmVyLmNwcAppbmRleCBmMGQ1ODE1ZjdmNy4uMmMwNzA2ZmRhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcApAQCAtMzksOSArMzks
MjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OkNvbnRl
bnRDaGFuZ2VPYnNlcnZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQorICAgICwgbV9jb250ZW50T2JzZXJ2YXRpb25UaW1lcihbdGhpc10geyBjb21wbGV0
ZUR1cmF0aW9uQmFzZWRDb250ZW50T2JzZXJ2YXRpb24oKTsgfSkKIHsKIH0KIAordm9pZCBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0YXJ0Q29udGVudE9ic2VydmF0aW9uRm9yRHVyYXRpb24oU2Vj
b25kcyBkdXJhdGlvbikKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoIWhh
c1Zpc2libGVDaGFuZ2VTdGF0ZSgpKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2Vy
dmF0aW9uLCBzdHJlYW0gPDwgInN0YXJ0Q29udGVudE9ic2VydmF0aW9uRm9yRHVyYXRpb246IHN0
YXJ0IG9ic2VydmluZyB0aGUgY29udGVudCBmb3IgIiA8PCBkdXJhdGlvbi5taWxsaXNlY29uZHMo
KSA8PCAibXMiKTsKKyAgICBhZGp1c3RPYnNlcnZlZFN0YXRlKEV2ZW50OjpTdGFydGVkRml4ZWRP
YnNlcnZhdGlvblRpbWVXaW5kb3cpOworICAgIG1fY29udGVudE9ic2VydmF0aW9uVGltZXIuc3Rh
cnRPbmVTaG90KGR1cmF0aW9uKTsKK30KKwordm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNv
bXBsZXRlRHVyYXRpb25CYXNlZENvbnRlbnRPYnNlcnZhdGlvbigpCit7CisgICAgTE9HX1dJVEhf
U1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJjb21wbGV0ZUR1cmF0aW9uQmFz
ZWRDb250ZW50T2JzZXJ2YXRpb246IGNvbXBsZXRlIGR1cmF0aW9uIGJhc2VkIGNvbnRlbnQgb2Jz
ZXJ2aW5nICIpOworICAgIGFkanVzdE9ic2VydmVkU3RhdGUoRXZlbnQ6OkVuZGVkRml4ZWRPYnNl
cnZhdGlvblRpbWVXaW5kb3cpOworfQorCiB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlk
SW5zdGFsbERPTVRpbWVyKGNvbnN0IERPTVRpbWVyJiB0aW1lciwgU2Vjb25kcyB0aW1lb3V0LCBi
b29sIHNpbmdsZVNob3QpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVu
dENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKQpAQCAtMTEzLDI2ICsxMzAsMjIgQEAgdm9pZCBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0eWxlUmVjYWxjRGlkRmluaXNoKCkKICAgICBhZGp1c3RPYnNl
cnZlZFN0YXRlKEV2ZW50OjpTdHlsZVJlY2FsY0ZpbmlzaGVkKTsKIH0KIAotdm9pZCBDb250ZW50
Q2hhbmdlT2JzZXJ2ZXI6OmNsZWFyVGltZXJzQW5kUmVwb3J0Q29udGVudENoYW5nZSgpCit2b2lk
IENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6Y2FuY2VsUGVuZGluZ0FjdGl2aXRpZXMoKQogewotICAg
IGlmICghaGFzT2JzZXJ2ZWRET01UaW1lcigpKQotICAgICAgICByZXR1cm47Ci0gICAgTE9HX1dJ
VEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJjbGVhclRpbWVyc0FuZFJl
cG9ydENvbnRlbnRDaGFuZ2U6IHJlbW92ZSByZWdpc3RlcmVkIHRpbWVycyBhbmQgcmVwb3J0IGNv
bnRlbnQgY2hhbmdlLiIgPDwgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkpOwotCiAgICAgY2xlYXJP
YnNlcnZlZERPTVRpbWVycygpOwotICAgIEFTU0VSVChtX2RvY3VtZW50LnBhZ2UoKSk7Ci0gICAg
QVNTRVJUKG1fZG9jdW1lbnQuZnJhbWUoKSk7Ci0gICAgbV9kb2N1bWVudC5wYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZSgqbV9kb2N1bWVudC5mcmFtZSgpKTsK
KyAgICBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLnN0b3AoKTsKIH0KIAogdm9pZCBDb250ZW50
Q2hhbmdlT2JzZXJ2ZXI6OmRpZFN1c3BlbmRBY3RpdmVET01PYmplY3RzKCkKIHsKLSAgICBjbGVh
clRpbWVyc0FuZFJlcG9ydENvbnRlbnRDaGFuZ2UoKTsKKyAgICBMT0coQ29udGVudE9ic2VydmF0
aW9uLCAiZGlkU3VzcGVuZEFjdGl2ZURPTU9iamVjdHMiKTsKKyAgICBjYW5jZWxQZW5kaW5nQWN0
aXZpdGllcygpOwogfQogCiB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6d2lsbERldGFjaFBh
Z2UoKQogewotICAgIGNsZWFyVGltZXJzQW5kUmVwb3J0Q29udGVudENoYW5nZSgpOworICAgIExP
RyhDb250ZW50T2JzZXJ2YXRpb24sICJ3aWxsRGV0YWNoUGFnZSIpOworICAgIGNhbmNlbFBlbmRp
bmdBY3Rpdml0aWVzKCk7CiB9CiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjb250ZW50
VmlzaWJpbGl0eURpZENoYW5nZSgpCkBAIC0yMDUsNiArMjE4LDcgQEAgdm9pZCBDb250ZW50Q2hh
bmdlT2JzZXJ2ZXI6OmFkanVzdE9ic2VydmVkU3RhdGUoRXZlbnQgZXZlbnQpCiAgICAgICAgIHNl
dEhhc05vQ2hhbmdlU3RhdGUoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdmVudDo6SW5z
dGFsbGVkRE9NVGltZXI6CisgICAgY2FzZSBFdmVudDo6U3RhcnRlZEZpeGVkT2JzZXJ2YXRpb25U
aW1lV2luZG93OgogICAgICAgICAvLyBFeHBlY3RpbmcgYSB0aW1lciBmaXJlLiBQcm9tb3RlIHRv
IGFuIGluZGV0ZXJtaW5hdGUgc3RhdGUuCiAgICAgICAgIEFTU0VSVCghaGFzVmlzaWJsZUNoYW5n
ZVN0YXRlKCkpOwogICAgICAgICBzZXRIYXNJbmRldGVybWluYXRlU3RhdGUoKTsKQEAgLTIxMiw2
ICsyMjYsNyBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6YWRqdXN0T2JzZXJ2ZWRTdGF0
ZShFdmVudCBldmVudCkKICAgICBjYXNlIEV2ZW50OjpSZW1vdmVkRE9NVGltZXI6CiAgICAgY2Fz
ZSBFdmVudDo6U3R5bGVSZWNhbGNGaW5pc2hlZDoKICAgICBjYXNlIEV2ZW50OjpFbmRlZERPTVRp
bWVyRXhlY3V0aW9uOgorICAgIGNhc2UgRXZlbnQ6OkVuZGVkRml4ZWRPYnNlcnZhdGlvblRpbWVX
aW5kb3c6CiAgICAgICAgIC8vIERlbW90ZSB0byAibm8gY2hhbmdlIiB3aGVuIHRoZXJlJ3Mgbm8g
cGVuZGluZyBhY3Rpdml0eSBhbnltb3JlLgogICAgICAgICBpZiAob2JzZXJ2ZWRDb250ZW50Q2hh
bmdlKCkgPT0gV0tDb250ZW50SW5kZXRlcm1pbmF0ZUNoYW5nZSAmJiAhaGFzUGVuZGluZ0FjdGl2
aXR5KCkpCiAgICAgICAgICAgICBzZXRIYXNOb0NoYW5nZVN0YXRlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5oCmluZGV4IDEwMmFjYTRmYmUz
Li41NTNlNzlhMTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVu
dENoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENo
YW5nZU9ic2VydmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldLQ29udGVudE9ic2VydmF0aW9u
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDExICszOSwxMSBAQCBjbGFzcyBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIENvbnRlbnRDaGFuZ2VPYnNlcnZlcihE
b2N1bWVudCYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydENvbnRlbnRPYnNlcnZh
dGlvbkZvckR1cmF0aW9uKFNlY29uZHMgZHVyYXRpb24pOwogICAgIFdFQkNPUkVfRVhQT1JUIFdL
Q29udGVudENoYW5nZSBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBjb25zdDsKIAogICAgIHZvaWQg
ZGlkSW5zdGFsbERPTVRpbWVyKGNvbnN0IERPTVRpbWVyJiwgU2Vjb25kcyB0aW1lb3V0LCBib29s
IHNpbmdsZVNob3QpOwogICAgIHZvaWQgZGlkUmVtb3ZlRE9NVGltZXIoY29uc3QgRE9NVGltZXIm
KTsKLSAgICB2b2lkIGNvbnRlbnRWaXNpYmlsaXR5RGlkQ2hhbmdlKCk7CiAgICAgdm9pZCBkaWRT
dXNwZW5kQWN0aXZlRE9NT2JqZWN0cygpOwogICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKTsKIApA
QCAtODksMTIgKzkwLDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtb3VzZU1vdmVkRGlkU3RhcnQo
KTsKICAgICB2b2lkIG1vdXNlTW92ZWREaWRGaW5pc2goKTsKIAorICAgIHZvaWQgY29udGVudFZp
c2liaWxpdHlEaWRDaGFuZ2UoKTsKKwogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZURPTVRpbWVy
U2NoZWR1bGluZyhib29sIG9ic2VydmUpIHsgbV9pc09ic2VydmluZ0RPTVRpbWVyU2NoZWR1bGlu
ZyA9IG9ic2VydmU7IH0KICAgICBib29sIGlzT2JzZXJ2aW5nRE9NVGltZXJTY2hlZHVsaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9pc09ic2VydmluZ0RPTVRpbWVyU2NoZWR1bGluZzsgfQogICAgIHZv
aWQgZG9tVGltZXJFeGVjdXRlRGlkU3RhcnQoY29uc3QgRE9NVGltZXImKTsKICAgICB2b2lkIGRv
bVRpbWVyRXhlY3V0ZURpZEZpbmlzaChjb25zdCBET01UaW1lciYpOwogICAgIHZvaWQgcmVnaXN0
ZXJET01UaW1lcihjb25zdCBET01UaW1lciYgdGltZXIpIHsgbV9ET01UaW1lckxpc3QuYWRkKCZ0
aW1lcik7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJET01UaW1lcihjb25zdCBET01UaW1lciYgdGlt
ZXIpIHsgbV9ET01UaW1lckxpc3QucmVtb3ZlKCZ0aW1lcik7IH0KKyAgICB2b2lkIGNsZWFyT2Jz
ZXJ2ZWRET01UaW1lcnMoKSB7IG1fRE9NVGltZXJMaXN0LmNsZWFyKCk7IH0KICAgICBib29sIGNv
bnRhaW5zT2JzZXJ2ZWRET01UaW1lcihjb25zdCBET01UaW1lciYgdGltZXIpIGNvbnN0IHsgcmV0
dXJuIG1fRE9NVGltZXJMaXN0LmNvbnRhaW5zKCZ0aW1lcik7IH0KIAogICAgIHZvaWQgc3R5bGVS
ZWNhbGNEaWRTdGFydCgpOwpAQCAtMTAyLDEwICsxMDYsOSBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0U2hvdWxkT2JzZXJ2ZU5leHRTdHlsZVJlY2FsYyhib29sKTsKICAgICBib29sIGlzT2JzZXJ2
aW5nU3R5bGVSZWNhbGMoKSBjb25zdCB7IHJldHVybiBtX2lzT2JzZXJ2aW5nU3R5bGVSZWNhbGM7
IH0KIAotICAgIGJvb2wgaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpIGNvbnN0IHsgcmV0dXJu
IG1fZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgfHwgbV9zdHlsZVJlY2FsY0lzQmVpbmdFeGVjdXRl
ZDsgfQorICAgIGJvb2wgaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpIGNvbnN0IHsgcmV0dXJu
IG1fZG9tVGltZXJJc0JlaW5nRXhlY3V0ZWQgfHwgbV9zdHlsZVJlY2FsY0lzQmVpbmdFeGVjdXRl
ZCB8fCBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLmlzQWN0aXZlKCk7IH0KIAotICAgIHZvaWQg
Y2xlYXJPYnNlcnZlZERPTVRpbWVycygpIHsgbV9ET01UaW1lckxpc3QuY2xlYXIoKTsgfQotICAg
IHZvaWQgY2xlYXJUaW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlKCk7CisgICAgdm9pZCBjYW5j
ZWxQZW5kaW5nQWN0aXZpdGllcygpOwogCiAgICAgdm9pZCBzZXRIYXNJbmRldGVybWluYXRlU3Rh
dGUoKTsKICAgICB2b2lkIHNldEhhc1Zpc2libGVDaGFuZ2VTdGF0ZSgpOwpAQCAtMTE1LDIyICsx
MTgsMjcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc09ic2VydmVkRE9NVGltZXIoKSBjb25zdCB7
IHJldHVybiAhbV9ET01UaW1lckxpc3QuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBoYXNEZXRlcm1p
bmF0ZVN0YXRlKCkgY29uc3Q7CiAKLSAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
IHsgcmV0dXJuIGhhc09ic2VydmVkRE9NVGltZXIoKSB8fCBtX2RvY3VtZW50Lmhhc1BlbmRpbmdT
dHlsZVJlY2FsYygpOyB9CisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJl
dHVybiBoYXNPYnNlcnZlZERPTVRpbWVyKCkgfHwgbV9kb2N1bWVudC5oYXNQZW5kaW5nU3R5bGVS
ZWNhbGMoKSB8fCBtX2NvbnRlbnRPYnNlcnZhdGlvblRpbWVyLmlzQWN0aXZlKCk7IH0KICNpZiAh
QVNTRVJUX0RJU0FCTEVECiAgICAgYm9vbCBpc05vdGlmeUNvbnRlbnRDaGFuZ2VBbGxvd2VkKCkg
Y29uc3Q7CiAjZW5kaWYKIAorICAgIHZvaWQgY29tcGxldGVEdXJhdGlvbkJhc2VkQ29udGVudE9i
c2VydmF0aW9uKCk7CisKICAgICBlbnVtIGNsYXNzIEV2ZW50IHsKICAgICAgICAgU3RhcnRlZE1v
dXNlTW92ZWRFdmVudERpc3BhdGNoaW5nLAogICAgICAgICBJbnN0YWxsZWRET01UaW1lciwKICAg
ICAgICAgUmVtb3ZlZERPTVRpbWVyLAogICAgICAgICBFbmRlZERPTVRpbWVyRXhlY3V0aW9uLAog
ICAgICAgICBTdHlsZVJlY2FsY0ZpbmlzaGVkLAotICAgICAgICBDb250ZW50VmlzaWJpbGl0eUNo
YW5nZWQKKyAgICAgICAgQ29udGVudFZpc2liaWxpdHlDaGFuZ2VkLAorICAgICAgICBTdGFydGVk
Rml4ZWRPYnNlcnZhdGlvblRpbWVXaW5kb3csCisgICAgICAgIEVuZGVkRml4ZWRPYnNlcnZhdGlv
blRpbWVXaW5kb3cKICAgICB9OwogICAgIHZvaWQgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudCk7
CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBUaW1lciBtX2NvbnRlbnRPYnNlcnZh
dGlvblRpbWVyOwogICAgIEhhc2hTZXQ8Y29uc3QgRE9NVGltZXIqPiBtX0RPTVRpbWVyTGlzdDsK
ICAgICBib29sIG1faXNPYnNlcnZpbmdTdHlsZVJlY2FsYyB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3N0eWxlUmVjYWxjSXNCZWluZ0V4ZWN1dGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTkzNjMx
NTFmNzUuLjQzNmI2YTY1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTA1
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFu
Z2VPYnNlcnZlcl0gSW50cm9kdWNlIGZpeGVkIGR1cmF0aW9uIGNvbnRlbnQgb2JzZXJ2YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTI5NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg1Nzk5MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xp
Y2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIpOgorCiAyMDE5LTAzLTA1ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRk
IGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24g
b24vb2ZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCmluZGV4IDk5ODRjNGU1MzQ2Li5lZTMzZThmNWZkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTU1Miwz
MiArNTUyLDI5IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSYgbm9k
ZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIG1haW5mcmFtZS5k
b2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgfQogCi0gICAgbV9wZW5kaW5n
U3ludGhldGljQ2xpY2tOb2RlID0gbnVsbHB0cjsKLSAgICBtX3BlbmRpbmdTeW50aGV0aWNDbGlj
a0xvY2F0aW9uID0gRmxvYXRQb2ludCgpOwotICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTW9k
aWZpZXJzID0geyB9OwotCiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHN3aXRjaCAocmVzcG9uZGluZ0RvY3VtZW50LmNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpLm9i
c2VydmVkQ29udGVudENoYW5nZSgpKSB7Ci0gICAgY2FzZSBXS0NvbnRlbnRWaXNpYmlsaXR5Q2hh
bmdlOgorICAgIGF1dG8mIGNvbnRlbnRDaGFuZ2VPYnNlcnZlciA9IHJlc3BvbmRpbmdEb2N1bWVu
dC5jb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKTsKKyAgICBhdXRvIG9ic2VydmVkQ29udGVudENoYW5n
ZSA9IGNvbnRlbnRDaGFuZ2VPYnNlcnZlci5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKTsKKyAgICBp
ZiAob2JzZXJ2ZWRDb250ZW50Q2hhbmdlID09IFdLQ29udGVudFZpc2liaWxpdHlDaGFuZ2UpIHsK
ICAgICAgICAgLy8gVGhlIG1vdmUgZXZlbnQgY2F1c2VkIG5ldyBjb250ZW50cyB0byBhcHBlYXIu
IERvbid0IHNlbmQgdGhlIGNsaWNrIGV2ZW50LgogICAgICAgICBMT0coQ29udGVudE9ic2VydmF0
aW9uLCAiaGFuZGxlU3ludGhldGljQ2xpY2s6IE9ic2VydmVkIG1lYW5pbmdmdWwgdmlzaWJsZSBj
aGFuZ2UgLT4gaG92ZXIuIik7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFdLQ29udGVudElu
ZGV0ZXJtaW5hdGVDaGFuZ2U6IHsKLSAgICAgICAgLy8gV2FpdCBmb3IgY2FsbGJhY2sgdG8gY29t
cGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSB0byBk
ZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZSBjbGljayBldmVudC4KLSAgICAgICAgQVNTRVJUKHJl
c3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQo
KSk7Ci0gICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9ICZub2RlUmVzcG9uZGlu
Z1RvQ2xpY2s7Ci0gICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBsb2Nh
dGlvbjsKLSAgICAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSBtb2RpZmll
cnM7Ci0gICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5kbGVTeW50aGV0aWNDbGlj
azogT2JzZXJ2ZWQgc29tZSBjaGFuZ2UsIGJ1dCBjYW4ndCBkZWNpZGUgaXQgeWV0IC0+IHdhaXQu
Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9IGNhc2UgV0tDb250ZW50Tm9DaGFuZ2U6Ci0gICAg
ICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5kbGVTeW50aGV0aWNDbGljazogTm8gY2hh
bmdlIHdhcyBvYnNlcnZlZCAtPiBjbGljay4iKTsKKyAgICB9CisgICAgY29uc3QgU2Vjb25kcyBv
YnNlcnZhdGlvbkR1cmF0aW9uID0gMzJfbXM7CisgICAgY29udGVudENoYW5nZU9ic2VydmVyLnN0
YXJ0Q29udGVudE9ic2VydmF0aW9uRm9yRHVyYXRpb24ob2JzZXJ2YXRpb25EdXJhdGlvbik7Cisg
ICAgaWYgKGNvbnRlbnRDaGFuZ2VPYnNlcnZlci5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBX
S0NvbnRlbnROb0NoYW5nZSkgeworICAgICAgICBBU1NFUlQoIXJlc3BvbmRpbmdEb2N1bWVudC5z
ZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSk7CiAgICAgICAgIGNvbXBs
ZXRlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBsb2NhdGlvbiwgbW9kaWZp
ZXJzLCBXZWJDb3JlOjpPbmVGaW5nZXJUYXApOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgImhh
bmRsZVN5bnRoZXRpY0NsaWNrOiBDYW4ndCBkZWNpZGUgaXQgeWV0IC0+IHdhaXQuIik7CisgICAg
Ly8gV2FpdCBmb3IgY2FsbGJhY2sgdG8gY29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JD
b250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSB0byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZSBjbGlj
ayBldmVudC4KKyAgICBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUgPSAmbm9kZVJlc3BvbmRp
bmdUb0NsaWNrOworICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBsb2NhdGlv
bjsKKyAgICBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlmaWVycyA9IG1vZGlmaWVyczsKIH0K
IAogdm9pZCBXZWJQYWdlOjpjb21wbGV0ZVBlbmRpbmdTeW50aGV0aWNDbGlja0ZvckNvbnRlbnRD
aGFuZ2VPYnNlcnZlcigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363883</attachid>
            <date>2019-03-07 09:20:39 -0800</date>
            <delta_ts>2019-03-07 14:21:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195353-20190307092038.patch</filename>
            <type>text/plain</type>
            <size>44622</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFlZTY1NTQzZjM2M2M5
NWU3YWU4Y2I3ZDllNDYyM2JjM2ViMDA1Yy4uMTE3ZDk2MGFkOTRlMjkzODBlNjVjOTc2ZTQyYTdj
MDViMDI3ZGVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTAzLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNl
cnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2Jz
ZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgY29udGVudCBv
YnNlcnZhdGlvbiB0ZXN0cyB0byBhIGRlZGljYXRlZCBkaXJlY3RvcnkuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3Rl
YWQtb2YtaG92ZXItc2ltcGxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5j
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2Vy
dmF0aW9uL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVkdWxl
LWFuZC1mb3JjZS1yZWxhbGMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUt
c2Vjb25kLXRpbWVyLmh0bWwKKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAg
ICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjppc05vdGlmeUNvbnRlbnRDaGFuZ2VBbGxv
d2VkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6aXNOb3RpZnlDb250ZW50
Q2hhbmdlQWxsb3dlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOgorCiAyMDE5LTAzLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBFeGNlcHRpb24gaXMgYSBKU0NlbGwsIG5vdCBhIEpTT2JqZWN0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBjMWRmMjEyZGZkOTUyMWUyZjc1MTE4MDc0YzJmMmFhN2EzMjk3MWIyLi5h
N2NjNmNmN2JmYmE1ZjE4OTkzZWMzNGQ5NTJkZWJjNDc0OTAwNzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDE5LTAzLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxl
IHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1Nl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfY29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRo
ZXRpY0NsaWNrKToKKwogMjAxOS0wMy0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjQyMzY0KTogW1dQRV0gRG8gbm90
IHN0b3AgdGhlIGNvbXBvc2l0aW5nIHJ1biBsb29wIHVwZGF0ZSB0aW1lciBvbiBzdXNwZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTRhZjFlMGU3MGVjMDc3YTBkZWVhNGM5ZDgz
OTIzMmMyODkwYWYwYS4uOTFlNDY3NWY4M2E4NTIwMGUwOTU5NDUzOWU1YWM5OTdhOTllYTI0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTAzLTA3
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFu
Z2VPYnNlcnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFu
Z2Ugb2JzZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NjI2Mzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIGNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWRdKToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZDpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFu
Z2VkOl0pOgorCiAyMDE5LTAzLTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgV2ViS2l0TGVnYWN5IGRvZXMgbm90IG5lZWQgdG8gZ2VuZXJhdGUgYW4gZXhwb3J0IGZp
bGUgZm9yIGkzODYgYW55bW9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDMwM2Q3
ZjgyZDRiMzdmZGJhMWI3ZjJkZDRhOGRhMjU3ZThhYjk3N2MuLmQwNTBiMWQwNDUxZjY3YzQ1ZThl
Mjc2ODc4Mjc5ZDdhYzFkZDc0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTQ0
Niw2ICs0NDYsOSBAQCBzaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZDoKICAgaW5p
dGlhbDogZmFsc2UKICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwog
Citjb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisKIHN1YnBp
eGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwCmluZGV4
IDI3MTkwYzhlZTc1MTBlNTEyNmQ1ZTA2NjI1YTI5MDQ0NDc2YzU3NjUuLmYwZDU4MTVmN2Y3ODBh
NDQ2YWEwMjUwY2FiODVjNDU4MjQxZWM2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Myw2ICs0NCw4IEBAIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6Q29udGVudENoYW5nZU9ic2Vy
dmVyKERvY3VtZW50JiBkb2N1bWVudCkKIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRp
ZEluc3RhbGxET01UaW1lcihjb25zdCBET01UaW1lciYgdGltZXIsIFNlY29uZHMgdGltZW91dCwg
Ym9vbCBzaW5nbGVTaG90KQogeworICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRl
bnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX2Rv
Y3VtZW50LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICh0aW1lb3V0ID4gMjUwX21zIHx8ICFzaW5nbGVTaG90KQpAQCAtMTc2LDYgKzE3OSwx
MyBAQCBib29sIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6aGFzRGV0ZXJtaW5hdGVTdGF0ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG9ic2VydmVkQ29udGVudENoYW5nZSgpID09IFdLQ29udGVudE5vQ2hh
bmdlICYmICFoYXNQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAorI2lmICFBU1NFUlRfRElTQUJMRUQK
K2Jvb2wgQ29udGVudENoYW5nZU9ic2VydmVyOjppc05vdGlmeUNvbnRlbnRDaGFuZ2VBbGxvd2Vk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFu
Z2VPYnNlcnZlckVuYWJsZWQoKSAmJiAhbV9tb3VzZU1vdmVkSXNCZWluZ0Rpc3BhdGNoZWQ7Cit9
CisjZW5kaWYKKwogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmFkanVzdE9ic2VydmVkU3Rh
dGUoRXZlbnQgZXZlbnQpCiB7CiAgICAgYXV0byBub3RpZnlDb250ZW50Q2hhbmdlSWZOZWVkZWQg
PSBbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5n
ZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2
ZXIuaAppbmRleCBlMzFjZDAyYTViYjZhNjM4OTI2MDEyNWVjOWI3ZjlmOThjOGI2YzRjLi4xMDJh
Y2E0ZmJlMzYzZjY4M2QzYzVjMWJkMTg5MzUxNTcyNTYzODI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaApAQCAtMTE3LDcgKzExNyw3IEBA
IHByaXZhdGU6CiAKICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJu
IGhhc09ic2VydmVkRE9NVGltZXIoKSB8fCBtX2RvY3VtZW50Lmhhc1BlbmRpbmdTdHlsZVJlY2Fs
YygpOyB9CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgIGJvb2wgaXNOb3RpZnlDb250ZW50Q2hh
bmdlQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuICFtX21vdXNlTW92ZWRJc0JlaW5nRGlzcGF0Y2hl
ZDsgfQorICAgIGJvb2wgaXNOb3RpZnlDb250ZW50Q2hhbmdlQWxsb3dlZCgpIGNvbnN0OwogI2Vu
ZGlmCiAKICAgICBlbnVtIGNsYXNzIEV2ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDVkZmIwNjUwNTZkNDdhYjE3ODIzNGMwNmUzNTlmZmY0
NDk5YjMyYTMuLjFmN2ZmMDU1ZjkxNDQ2MjhhZTRiNzhiYTcxNDA1YzZlYjE5NTVhOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMzAwLDYgKzMw
MCw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCiAg
ICAgbV9iYWNrdXAgPSBCYWNrdXAgeyBzZXR0aW5ncygpIH07CiAKICAgICBJbnRlcm5hbFNldHRp
bmdzR2VuZXJhdGVkOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisgICAgc2V0dGluZ3MoKS5z
ZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKGZhbHNlKTsKIH0KIAogU2V0dGluZ3MmIElu
dGVybmFsU2V0dGluZ3M6OnNldHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCmluZGV4IDgwNGEwYWU5MTAzOTEzMzMwMzIwMzdhMTIyMGQ0NWIwMDNk
ZTgyMzguLmIyYjQxZmFiYWNiNTQzOTAzMTQ2NDQ5NjVkMDI0MTE0YWFkYzVmMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtNDg0LDYgKzQ4NCwxMCBAQCBT
aW1wbGVMaW5lTGF5b3V0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRy
dWUKIAorQ29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZh
dWx0VmFsdWU6IHRydWUKKwogU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDoKICAg
dHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IGNmZDdlZDY3ODYyMmIwNDhiOTJj
NDdjN2Y4NzE1YzUwYjY0MDhjMDIuLjJkZjNhOTc3NTI3MmMzZmM3ODdlZGQ1ZGQ1NTVjM2U2MjQ2
NzI0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCkBAIC0xMzUwLDYgKzEzNTAsMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2ltcGxl
TGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXIKICAg
ICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2ltcGxlTGluZUxheW91dERlYnVnQm9y
ZGVyc0VuYWJsZWQoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcp
Cit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0Q29udGVudENoYW5nZU9ic2VydmVy
RW5hYmxlZChmbGFnKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVk
KCk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldE5ld0Jsb2NrSW5zaWRlSW5saW5lTW9kZWxF
bmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7CiAgICAgLy8gRklYTUU6IFJlbW92ZSBT
YWZhcmkgY2FsbCB0byB0aGlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggM2E2MWJkOTNmZjc1ZmYwNzM2
MmQ2ZjQzZWYxYzM0NjhiOTBkYmEwYi4uMWJkMjFjODY4ZDU4OTcxYmE0MzhhOGFjNzQyM2NmZDVk
YWRmZDQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC0zMzQsNiArMzM0LDkgQEAgV0tfRVhQT1JUIGJv
b2wgV0tQcmVmZXJlbmNlc0dldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNpbXBsZUxpbmVMYXlvdXREZWJ1
Z0JvcmRlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOwogV0tfRVhQT1JUIGJvb2wg
V0tQcmVmZXJlbmNlc0dldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VYUE9SVCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYpOworCiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXROZXdCbG9ja0luc2lkZUlubGluZU1vZGVsRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmLCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXROZXdCbG9ja0luc2lk
ZUlubGluZU1vZGVsRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggYjNhZjIyMzI2
OGM5ZWMwYTZkZmZhYjkwN2QxOTQ3YzhkZmE0M2JiYS4uMDUwMDA4NDEyYjQxMWQ1NTg4ZjMyNWJj
MjBlNzYzMzM5OTdiNDY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTMzNSw2ICszMzUsMTYgQEAgLSAodm9pZClfc2V0
U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KEJPT0wpc2ltcGxlTGluZUxheW91
dERlYnVnQm9yZGUKICAgICBfcHJlZmVyZW5jZXMtPnNldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0Jv
cmRlcnNFbmFibGVkKHNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKTsKIH0KIAor
LSAoQk9PTClfY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZAoreworICAgIHJldHVybiBfcHJl
ZmVyZW5jZXMtPmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKTsKK30KKworLSAodm9pZClf
c2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZDooQk9PTCljb250ZW50Q2hhbmdlT2JzZXJ2
ZXJFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJF
bmFibGVkKGNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQpOworfQorCiAtIChCT09MKV9hY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0MzVkMWUxNGE1OGQ2
ODY4YWRiNzJmYjVmOGM1NTgwYWQ1Nzg4ZGFjLi5lZTY2MzljZGNkNjM5ZTllMWZkMjJlOTQ1NGZk
MDMxMjk3YzQ4OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNzIsNiArNzIsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6KSBfV0tE
ZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkOikgQk9PTCBfc2ltcGxlTGluZUxheW91
dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVy
c0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6KSBCT09MIF9jb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDopIEJPT0wg
X2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
LCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFn
ZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCAwN2EyMWUwMDYxYzEzYmFkNWU3YzM5NzY2ZTNlMzMxZjY1NzU5OWM2Li43YTJhMTY2NWM5MzE0
Y2VhMzZlMzJjNzk1NzAyYThiMzBkNjE1MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTczLDYgKzU3Myw3IEBAIHZv
aWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0Ns
aWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdLQ29udGVu
dEluZGV0ZXJtaW5hdGVDaGFuZ2U6IHsKICAgICAgICAgLy8gV2FpdCBmb3IgY2FsbGJhY2sgdG8g
Y29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSB0
byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZSBjbGljayBldmVudC4KKyAgICAgICAgQVNTRVJU
KHJlc3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJs
ZWQoKSk7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9ICZub2RlUmVzcG9u
ZGluZ1RvQ2xpY2s7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBs
b2NhdGlvbjsKICAgICAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSBtb2Rp
ZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAwNTlmNWUxZWRmZDIzODY0NjE4ODQxMmE2
NGU2YWE4MTFkMjI1MTdjLi4xZWZmM2I4MDY1NmNlNGYxMTEwZDgwMWE5MjAwZThhNTk0MzI0ZDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTExMSw2ICsxMTEsNyBAQAogI2RlZmluZSBXZWJL
aXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJL
aXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U2lt
cGxlTGluZUxheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U2ltcGxlTGluZUxheW91
dEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkIgorI2RlZmluZSBXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93UmVwYWludENvdW50
ZXIiCiAjZGVmaW5lIFdlYktpdFdlYkF1ZGlvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRX
ZWJBdWRpb0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFdlYkdMRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRXZWJHTEVuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBhYjQyMTdkODdjNDMzMjBjNTZhMGEyNDM2ODVj
MmU1ZWRkZDFkYmFlLi5jNjZhOTA1NzVlYjgzZTg4MmU5YzUyNjI1YzBhYzkxZjI2YTQyMGFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KQEAgLTUwOSw2ICs1MDksNyBAQCArICh2b2lkKWluaXRpYWxpemUKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRTaG93RGVidWdCb3JkZXJzUHJlZmVyZW5j
ZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRTaW1w
bGVMaW5lTGF5b3V0RW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1i
ZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJs
ZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwg
IFdlYktpdENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAg
ICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNob3dSZXBhaW50Q291bnRl
clByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAg
V2ViS2l0V2ViR0xFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgIFdlYktpdEZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZ1ByZWZlcmVu
Y2VLZXksCkBAIC0yMDg1LDYgKzIwODYsMTYgQEAgLSAodm9pZClzZXRTaW1wbGVMaW5lTGF5b3V0
RGVidWdCb3JkZXJzRW5hYmxlZDooQk9PTCllbmFibGVkCiAgICAgW3NlbGYgX3NldEJvb2xWYWx1
ZTplbmFibGVkIGZvcktleTpXZWJLaXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxl
ZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKWNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJs
ZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0Q29udGVu
dENoYW5nZU9ic2VydmVyRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgW3NlbGYgX3NldEJv
b2xWYWx1ZTplbmFibGVkIGZvcktleTpXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVk
UHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpc2hvd1JlcGFpbnRDb3VudGVyCiB7CiAgICAg
cmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U2hvd1JlcGFpbnRDb3VudGVyUHJl
ZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBiZjA4ZmM3Njc1MmI0MzI5NmQyMjAzNWE2
MjU5ODdlYjdmM2EzZTNiLi4xZWYwZDE3NTRhMzRiMjUzZTc1MzNhZDMzNTYzNWFlMmU1Y2ExNGVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI1MSw2ICsyNTEsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldl
YlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRf
REVQUgogLSAoQk9PTClzaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZDsKIC0gKHZv
aWQpc2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZDsK
IAorLSAoQk9PTCljb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOworLSAodm9pZClzZXRDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOihCT09MKWVuYWJsZWQ7CisKIC0gKEJPT0wpc2hvd1Jl
cGFpbnRDb3VudGVyOwogLSAodm9pZClzZXRTaG93UmVwYWludENvdW50ZXI6KEJPT0wpc2hvdzsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDM4ZmNi
OGE1MzI3ODE4NDIyMjg3YjQxZmU5MWE0YmQ1ZDcxYzc4MzQuLjk1ZGU5NWQzYjBjODAwYTkwZDRh
NWM4NDZmNmQzOWQzMjBlNDA0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KQEAgLTI5MTcsNiArMjkxNyw3IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hh
bmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdzLnNldFNob3dE
ZWJ1Z0JvcmRlcnMoW3ByZWZlcmVuY2VzIHNob3dEZWJ1Z0JvcmRlcnNdKTsKICAgICBzZXR0aW5n
cy5zZXRTaW1wbGVMaW5lTGF5b3V0RW5hYmxlZChbcHJlZmVyZW5jZXMgc2ltcGxlTGluZUxheW91
dEVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJz
RW5hYmxlZChbcHJlZmVyZW5jZXMgc2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWRd
KTsKKyAgICBzZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKFtwcmVmZXJl
bmNlcyBjb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U2hv
d1JlcGFpbnRDb3VudGVyKFtwcmVmZXJlbmNlcyBzaG93UmVwYWludENvdW50ZXJdKTsKICAgICBz
ZXR0aW5ncy5zZXRXZWJHTEVuYWJsZWQoW3ByZWZlcmVuY2VzIHdlYkdMRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQoW3ByZWZlcmVu
Y2VzIHN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWRdKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4YTk0OGQxZGVjYTJkNmE4ZTBl
ZDQzZTJiMzlkNjZiZWI1MDkyNDAwLi4xNGY0NzIxMmE4Nzg2ZGExZjExOTFlNTkzNmFmYzI4ZWYx
NGM3NmM3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDMtMDcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ29udGVudENoYW5nZU9ic2VydmVyXSBBZGQgYSBzZXR0aW5nIHRv
IGJlIGFibGUgdG8gdHVybiBjb250ZW50IGNoYW5nZSBvYnNlcnZhdGlvbiBvbi9vZmYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM1MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDg2MjYzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxl
cklPUy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMTktMDMtMDcgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyNDIzNTQuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0
Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9s
bGVySU9TLm1tCmluZGV4IGIwMTFiY2I4YmM0ZDI1ZmVmZjYwNDc2MjRiZTg5MGFhY2RmZTZhODIu
LmU1NzI0ZjE2YTRjZGM5NDZlZjFkM2Y2ZTE0YWJhNGQ4YzczMDg1ODcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCkBAIC0xMjgsNiArMTI4
LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKCkKIHsKICAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gcGxh
dGZvcm1QcmVmZXJlbmNlcygpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ0Vu
YWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogfQogCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTQzOTA0YmUzZWE5MzE2Y2FmMDhkNzA5NmJkN2U4
OGYxZjBhOTgwOS4uZWViYTlmODhkNTE4OTllMTAxZGYxNjMzZDcwMmVhYzQ3Zjc1OGEzNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTAzLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGluZyB0
byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzNTMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQt
b2YtaG92ZXItc2ltcGxlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNr
LWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLmh0bWwuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5
bmMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13
aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLmh0
bWwuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24v
c3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRp
b24vc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1yZWNh
bGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFu
ZC1mb3JjZS1yZWxhbGMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2Ut
cmVsYWxjLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3Mvc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNo
YW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zpc2liaWxpdHktY2hhbmdlLWhh
cHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFw
cGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vj
b25kLXRpbWVyLmh0bWwuCisKIDIwMTktMDMtMDcgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXUFQgdGVzdHMgZm9yIGVtYmVkZGVkIGNvbnRlbnQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1pbnN0
ZWFkLW9mLWhvdmVyLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmEzMmRiYmI5OTU4N2Y5ZWIzYzA4M2FkZmI5
MjkzNDkyZmU4YTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1pbnN0ZWFkLW9mLWhv
dmVyLXNpbXBsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVBB
U1MgaWYgY2xpY2tlZC4KLWNsaWNrZWQKLXRvb2x0aXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQtb2YtaG92
ZXItc2ltcGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNDIzOGU0MGZm
MjkzZjFmNTlmNTBlODMyNjg3NmRkNmFhOWY4YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Ns
aWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdnZXIg
Y2xpY2sgd2hlbiBob3ZlciB3b3VsZCBub3QgZGlzcGxheSBub24tY2xpY2thYmxlIGNvbnRlbnQu
PC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVy
ZXMuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotI3RhcHRoaXMgewotICAgIHdpZHRoOiA0MDBweDsK
LSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwotfQotPC9z
dHlsZT4KLTxzY3JpcHQ+Ci1hc3luYyBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwotCi0gICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7Ci0gICAgbGV0IHkgPSBy
ZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKLQotCWF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7Ci0K
LSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgY2xpY2tlZC48L2Rp
dj4KLTxwcmUgaWQ9cmVzdWx0PjwvcHJlPgotPHNjcmlwdD4KLXRhcHRoaXMuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAotCWxldCBuZXdDb250ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0JbmV3Q29udGVudC5pbm5lckhUTUwg
PSAidG9vbHRpcCI7Ci0JZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuZXdDb250ZW50KTsJCQot
fSwgZmFsc2UpOwotCi10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24o
IGV2ZW50ICkgeyAgIAotCXJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Ci19LCBmYWxzZSk7
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2Yt
aG92ZXItc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmEzMmRiYmI5OTU4N2Y5ZWIzYzA4M2FkZmI5MjkzNDky
ZmU4YTRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorUEFTUyBpZiBjbGlja2VkLgorY2xpY2tlZAordG9v
bHRpcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRl
bnQtb2JzZXJ2YXRpb24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWlu
c3RlYWQtb2YtaG92ZXItc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRjY2Y5YjRhMWU3YTk3NTVi
YTEyNjU2NTlkYTNmYjQxYWNlYjQ4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2Yt
aG92ZXItc2ltcGxlLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRs
ZT5UaGlzIHRlc3QgdGhhdCB3ZSB0cmlnZ2VyIGNsaWNrIHdoZW4gaG92ZXIgd291bGQgbm90IGRp
c3BsYXkgbm9uLWNsaWNrYWJsZSBjb250ZW50LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyN0YXB0aGlzIHsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorYXN5bmMgZnVu
Y3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1cm47CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFi
bGVkKHRydWUpOworCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CisgICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKKyAg
ICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOworCisJYXdhaXQgdGFwQXRQb2lu
dCh4LCB5KTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiBj
bGlja2VkLjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisJbGV0
IG5ld0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKwluZXdDb250ZW50
LmlubmVySFRNTCA9ICJ0b29sdGlwIjsKKwlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5ld0Nv
bnRlbnQpOwkJCit9LCBmYWxzZSk7CisKK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisJcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsK
K30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92ZXIt
d2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92ZXItd2hlbi1zdHlsZS1j
aGFuZ2UtaXMtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTY4NTM2MGZlYjk3NWJl
NDBkNzBiY2M3Njg2ZWExMDYwOWRlOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0eWxl
LWNoYW5nZS1pcy1hc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlmIG5v
ICdjbGlja2VkJyB0ZXh0IGlzIHNob3duIGJlbG93LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0
eWxlLWNoYW5nZS1pcy1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYzYzZjcyNjc5NGJmMWUwMGRhZDdkNjhhMzUxMjMwNmYyMmQzNWFj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Nv
bnRlbnQtb2JzZXJ2YXRpb24vaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbApA
QCAtMCwwICsxLDY1IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdl
IHRyaWdnZXIgaG92ZXIgd2hlbiB0aGUgY29udGVudCBjaGFuZ2UgaXMgYXN5bmMuPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcHRoaXMgeworICAgIHdpZHRoOiA0MDBweDsKKyAgICBo
ZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworfQorCisjaGlkZGVu
Rmlyc3QgeworICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKKyAgICB3aWR0aDogMTAwcHg7CisgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0
UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1cm47CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKHRydWUpOworCisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBsZXQgcmVjdCA9
IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgbGV0IHggPSByZWN0LmxlZnQg
KyByZWN0LndpZHRoIC8gMjsKKyAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAy
OworCisgICAgYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgbm8gJ2NsaWNr
ZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPWhpZGRlbkZpcnN0PjwvZGl2
PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhpcy5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAgLy8gMS4gSW5zdGFsbCBh
IHRpbWVyIG9uIGhvdmVyCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgLy8g
Mi4gVHJpZ2dlciBhIG5vbi1mb3JjaW5nIHN0eWxlIGNoYW5nZQorICAgICAgICBoaWRkZW5GaXJz
dC5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOworICAgICAgICAvLyAzLiBJbnN0YWxsIGEg
dGltZXIgZm9yIHN0eWxlIHJlY2FsYworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgIH0sIDEwKTsKKyAgICB9LCAwKTsKK30sIGZhbHNlKTsKKworaGlkZGVuRmly
c3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAg
cmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsKK30sIGZhbHNlKTsKKwordGFwdGhpcy5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQu
aW5uZXJIVE1MID0gImNsaWNrZWQiOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29u
dGVudC1vYnNlcnZhdGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0dWNr
LXdpdGgtaG92ZXItc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZmFlNTMxZmJiYTJk
N2NiMTk5ZjhlYjk5Nzg0N2ExMDgxZDk1OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHVjay13aXRoLWhv
dmVyLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgY2xpY2tlZC4K
K2NsaWNrZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9j
b250ZW50LW9ic2VydmF0aW9uL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0dWNrLXdpdGgt
aG92ZXItc3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzU5ZjMxYmVhNWY5MDYzNDllZDQwYzdlNDZi
NTU0NDkyYmM2ODBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1s
CkBAIC0wLDAgKzEsNDUgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0IHRoYXQg
d2UgdHJpZ2dlciBjbGljayB3aGVuIGhvdmVyIHdvdWxkIG5vdCBkaXNwbGF5IG5vbi1jbGlja2Fi
bGUgY29udGVudC48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAg
d2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQg
Z3JlZW47Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCh0cnVlKTsKKworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworCisgICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAg
IGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7CisgICAgbGV0IHkgPSByZWN0LnRv
cCArIHJlY3QuaGVpZ2h0IC8gMjsKKworCWF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7CisKKyAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgY2xpY2tlZC48L2Rpdj4KKzxw
cmUgaWQ9cmVzdWx0PjwvcHJlPgorPHNjcmlwdD4KK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgeworCWNsZWFyVGltZW91dChzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyB0YXB0aGlzLmlubmVySFRNTCA9ICJzaG91bGQgbm90IHNlZSB0aGlzIjsg
fSwgNTApKTsKK30sIGZhbHNlKTsKKwordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKCBldmVudCApIHsgICAKKwlyZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOwor
fSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1y
ZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1yZWNhbGMt
c2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc3ZTNh
MzFlNGQyNzU5M2FhOTRkYmQ2MzdhNDUzYWY4Y2VkZGQ3OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0eWxl
LXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIgQEAKK1BBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuCitjbGlja2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNl
cnZhdGlvbi9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUt
cmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjEwNjkz
NjA4MzcxZGFiMTg2MDU0MjViNzUwNmY4MGM0ZDY5YjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUt
cmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbApAQCAtMCwwICsxLDY4IEBACis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdnZXIgaG92ZXIgd2hl
biB0aGUgY29udGVudCBjaGFuZ2Ugc3RhcnRzIGFzIGFzeW5jIGJ1dCBpdCB0dXJucyBpbnRvIGEg
c3luYyBzdHlsZSByZWNhbGMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcHRoaXMg
eworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjogMXB4
IHNvbGlkIGdyZWVuOworfQorCisjc3RheXNIaWRkZW4geworICAgIHZpc2liaWxpdHk6IGhpZGRl
bjsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gdGVz
dCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KQorICAgICAgICByZXR1cm47CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKHRydWUp
OworCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisKKyAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKKyAgICBsZXQgeSA9
IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOworCisgICAgYXdhaXQgdGFwQXRQb2ludCh4LCB5
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBp
ZD10YXB0aGlzPlBBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuPC9kaXY+Cis8
ZGl2IGlkPXN0YXlzSGlkZGVuPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0
PgordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQg
KSB7CisgICAgLy8gMS4gSW5zdGFsbCBhIHRpbWVyIG9uIGhvdmVyCisgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21lIG5vbi1mb3JjaW5nIChub24t
dmlzaWJpbGl0eSkgc3R5bGUgY2hhbmdlIHdpdGggZm9yY2luZyBvZmZzZXRIZWlnaHQuCisgICAg
ICAgIHN0YXlzSGlkZGVuLnN0eWxlLm1hcmdpbkxlZnQgPSAiNXB4IjsKKworICAgICAgICBkb2N1
bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICB9LCAwKTsKKyAgICAvLyAzLiBJbnN0YWxsIGEg
bG9uZ2VyLCBlbXB0eSB0aW1lci4KKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIH0s
IDUpOworfSwgZmFsc2UpOworCitzdGF5c0hpZGRlbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQg
aGlkZGVuIjsKK30sIGZhbHNlKTsKKwordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQi
OworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwor
fSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmls
aXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJp
bGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NmRiNGM5NDA4YTZjMDMxMmRkMGUyZDQ4NWMwMWI4MzVlN2NmOTNkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgbm90
IHNob3duIGJlbG93LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRo
ZS1zZWNvbmQtdGltZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9j
b250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29u
ZC10aW1lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NDBhMTg4NTZkOTJlZTI1NGM2YjM4ZWU1ZGE3MDE5
MGEyMGM3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRo
ZS1zZWNvbmQtdGltZXIuaHRtbApAQCAtMCwwICsxLDY3IEBACis8aHRtbD4KKzxoZWFkPgorPHRp
dGxlPlRoaXMgdGVzdHMgdGhlIGNhc2Ugd2hlbiB0aGUgc2Vjb25kIHRpbWVyIHRyaWdnZXJzIHZp
c2libGUgY29udGVudCBjaGFuZ2U8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhp
cyB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAx
cHggc29saWQgZ3JlZW47Cit9CisKKyNiZWNvbWVzVmlzaWJsZSB7CisgICAgdmlzaWJpbGl0eTog
aGlkZGVuOworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlv
biB0ZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCisgICAgICAgIHJldHVybjsKKwlpZiAod2luZG93LmludGVybmFscykKKwkJaW50
ZXJuYWxzLnNldHRpbmdzLnNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7CisK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKworICAgIGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
KyAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVj
dC50b3AgKyByZWN0LmhlaWdodCAvIDI7CisKKyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRh
cHRoaXM+UEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuPC9kaXY+Cis8
ZGl2IGlkPWJlY29tZXNWaXNpYmxlPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2Ny
aXB0PgordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZl
bnQgKSB7CisgICAgLy8gMS4gSW5zdGFsbCAyIHRpbWVycyBvbiBob3ZlcgorICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIDIuIFRyaWdnZXIgc29tZSBub24tdmlzaWJpbGl0
eSBzdHlsZSBjaGFuZ2Ugd2l0aCBmb3JjaW5nIG9mZnNldEhlaWdodC4KKyAgICAgICAgYmVjb21l
c1Zpc2libGUuc3R5bGUubWFyZ2luTGVmdCA9ICI1cHgiOworICAgICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldEhlaWdodDsKKyAgICB9LCAwKTsKKyAgICAvLyAzLiBJbnN0YWxsIGEgbG9uZ2VyIHRp
bWVyIHdpdGggdmlzaWJpbGl0eSBjaGFuZ2UuCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICAgICAgYmVjb21lc1Zpc2libGUuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgIHNldFRpbWVvdXQodGVzdFJ1bm5lci5ub3RpZnlEb25lKCks
IDApOworICAgIH0sIDIwKTsKK30sIGZhbHNlKTsKKworYmVjb21lc1Zpc2libGUuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVy
SFRNTCA9ICJjbGlja2VkIGhpZGRlbiI7Cit9LCBmYWxzZSk7CisKK3RhcHRoaXMuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVy
SFRNTCA9ICJjbGlja2VkIjsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdo
ZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjZTY4NTM2MGZlYjk3NWJlNDBk
NzBiY2M3Njg2ZWExMDYwOWRlOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4t
c3R5bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIg
KzAsMCBAQAotUEFTUyBpZiBubyAnY2xpY2tlZCcgdGV4dCBpcyBzaG93biBiZWxvdy4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5
bGUtY2hhbmdlLWlzLWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNWQwNjg2MWY2OTk0YzgzY2QwMjlmZDI4NDY5MDUyMjEzNDAzZWMzNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dlciBob3ZlciB3aGVuIHRoZSBjb250ZW50IGNoYW5n
ZSBpcyBhc3luYy48L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9i
YXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0jdGFwdGhpcyB7Ci0gICAgd2lk
dGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgZ3Jl
ZW47Ci19Ci0KLSNoaWRkZW5GaXJzdCB7Ci0gICAgdmlzaWJpbGl0eTogaGlkZGVuOwotICAgIHdp
ZHRoOiAxMDBweDsKLSAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOwotfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1hc3luYyBmdW5jdGlvbiB0ZXN0KCkgewotICAg
IGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotCi0gICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOwotICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7Ci0g
ICAgbGV0IHkgPSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKLQotICAgIGF3YWl0IHRhcEF0
UG9pbnQoeCwgeSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KLTxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlmIG5vICdjbGlja2VkJyB0ZXh0IGlzIHNob3duIGJl
bG93LjwvZGl2PgotPGRpdiBpZD1oaWRkZW5GaXJzdD48L2Rpdj4KLTxwcmUgaWQ9cmVzdWx0Pjwv
cHJlPgotPHNjcmlwdD4KLXRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgZnVu
Y3Rpb24oIGV2ZW50ICkgewotICAgIC8vIDEuIEluc3RhbGwgYSB0aW1lciBvbiBob3ZlcgotICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIDIuIFRyaWdnZXIgYSBub24tZm9y
Y2luZyBzdHlsZSBjaGFuZ2UKLSAgICAgICAgaGlkZGVuRmlyc3Quc3R5bGUudmlzaWJpbGl0eSA9
ICJ2aXNpYmxlIjsKLSAgICAgICAgLy8gMy4gSW5zdGFsbCBhIHRpbWVyIGZvciBzdHlsZSByZWNh
bGMKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0SGVpZ2h0OwotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9LCAxMCk7
Ci0gICAgfSwgMCk7Ci19LCBmYWxzZSk7Ci0KLWhpZGRlbkZpcnN0LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAi
Y2xpY2tlZCI7Ci19LCBmYWxzZSk7Ci0KLXRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCi0gICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2Vk
IjsKLX0sIGZhbHNlKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdp
dGgtaG92ZXItc3RhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NWZhZTUzMWZiYmEyZDdjYjE5OWY4ZWI5OTc4NDdhMTA4MWQ5NThkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotUEFTUyBpZiBjbGlja2VkLgotY2xpY2tlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3Rh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHVjay13aXRoLWhv
dmVyLXN0YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZDBkOGQ5NzJi
ZjQ0ODg3MTMwMDJmMzU1MTM0YmZkN2E2MDZkNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0
dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dlciBjbGljayB3
aGVuIGhvdmVyIHdvdWxkIG5vdCBkaXNwbGF5IG5vbi1jbGlja2FibGUgY29udGVudC48L3RpdGxl
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+
PC9zY3JpcHQ+Ci08c3R5bGU+Ci0jdGFwdGhpcyB7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhl
aWdodDogNDAwcHg7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Ci19Ci08L3N0eWxlPgot
PHNjcmlwdD4KLWFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0KLSAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAg
bGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKLSAgICBsZXQgeSA9IHJlY3QudG9w
ICsgcmVjdC5oZWlnaHQgLyAyOwotCi0JYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKLQotICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InRlc3QoKSI+Ci08ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiBjbGlja2VkLjwvZGl2PgotPHBy
ZSBpZD1yZXN1bHQ+PC9wcmU+Ci08c2NyaXB0PgotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7Ci0JY2xlYXJUaW1lb3V0KHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7IHRhcHRoaXMuaW5uZXJIVE1MID0gInNob3VsZCBub3Qgc2VlIHRoaXMiOyB9
LCA1MCkpOwotfSwgZmFsc2UpOwotCi10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
ZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAotCXJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Ci19
LCBmYWxzZSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZv
cmNlLXJlbGFsYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3Mvc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzdlM2EzMWU0ZDI3NTkzYWE5NGRiZDYzN2E0
NTNhZjhjZWRkZDc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1
bGUtYW5kLWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVBBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuCi1jbGlja2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVjYWxj
LXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDUzYzZlZjBmNWNjZWY4MDRjNDEwNDlkNGJi
ZGIyMjEwMDQ3OGQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1
bGUtYW5kLWZvcmNlLXJlbGFsYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5UaGlzIHRlc3QgdGhhdCB3ZSB0cmlnZ2VyIGhvdmVyIHdo
ZW4gdGhlIGNvbnRlbnQgY2hhbmdlIHN0YXJ0cyBhcyBhc3luYyBidXQgaXQgdHVybnMgaW50byBh
IHN5bmMgc3R5bGUgcmVjYWxjLjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSN0YXB0aGlzIHsK
LSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBib3JkZXI6IDFweCBz
b2xpZCBncmVlbjsKLX0KLQotI3N0YXlzSGlkZGVuIHsKLSAgICB2aXNpYmlsaXR5OiBoaWRkZW47
Ci0gICAgd2lkdGg6IDEwMHB4OwotICAgIGhlaWdodDogMTAwcHg7Ci0gICAgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWFzeW5jIGZ1bmN0aW9uIHRlc3Qo
KSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlw
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRo
IC8gMjsKLSAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOwotCi0gICAgYXdh
aXQgdGFwQXRQb2ludCh4LCB5KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJ0ZXN0KCkiPgotPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgc2hv
d24gYmVsb3cuPC9kaXY+Ci08ZGl2IGlkPXN0YXlzSGlkZGVuPjwvZGl2PgotPHByZSBpZD1yZXN1
bHQ+PC9wcmU+Ci08c2NyaXB0PgotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIi
LCBmdW5jdGlvbiggZXZlbnQgKSB7Ci0gICAgLy8gMS4gSW5zdGFsbCBhIHRpbWVyIG9uIGhvdmVy
Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21l
IG5vbi1mb3JjaW5nIChub24tdmlzaWJpbGl0eSkgc3R5bGUgY2hhbmdlIHdpdGggZm9yY2luZyBv
ZmZzZXRIZWlnaHQuCi0gICAgICAgIHN0YXlzSGlkZGVuLnN0eWxlLm1hcmdpbkxlZnQgPSAiNXB4
IjsKLQotICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKLSAgICB9LCAwKTsKLSAg
ICAvLyAzLiBJbnN0YWxsIGEgbG9uZ2VyLCBlbXB0eSB0aW1lci4KLSAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewotICAgIH0sIDUpOwotfSwgZmFsc2UpOwotCi1zdGF5c0hpZGRlbi5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICByZXN1bHQuaW5u
ZXJIVE1MID0gImNsaWNrZWQgaGlkZGVuIjsKLX0sIGZhbHNlKTsKLQotdGFwdGhpcy5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICByZXN1bHQuaW5u
ZXJIVE1MID0gImNsaWNrZWQiOwotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwotICAgIH0sIDApOwotfSwgZmFsc2UpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0
eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0
LXRoZS1zZWNvbmQtdGltZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2NmRiNGM5NDA4YTZjMDMxMmRkMGUyZDQ4NWMwMWI4MzVlN2NmOTNkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGlt
ZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1QQVNTIGlmICdj
bGlja2VkJyB0ZXh0IGlzIG5vdCBzaG93biBiZWxvdy4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhl
LXNlY29uZC10aW1lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zp
c2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzE1Yjc4MGU4OWQyMjY3NTkwZjI3YmU5MTdlNDhlNDI1
YzM4NGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5z
LWF0LXRoZS1zZWNvbmQtdGltZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+VGhpcyB0ZXN0cyB0aGUgY2FzZSB3aGVuIHRoZSBzZWNv
bmQgdGltZXIgdHJpZ2dlcnMgdmlzaWJsZSBjb250ZW50IGNoYW5nZTwvdGl0bGU+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4K
LTxzdHlsZT4KLSN0YXB0aGlzIHsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBw
eDsKLSAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKLX0KLQotI2JlY29tZXNWaXNpYmxlIHsK
LSAgICB2aXNpYmlsaXR5OiBoaWRkZW47Ci0gICAgd2lkdGg6IDEwMHB4OwotICAgIGhlaWdodDog
MTAwcHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlw
dD4KLWFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8
fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAg
ICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgbGV0IHgg
PSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKLSAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVj
dC5oZWlnaHQgLyAyOwotCi0gICAgYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGRpdiBpZD10YXB0aGlzPlBBU1Mg
aWYgJ2NsaWNrZWQnIHRleHQgaXMgbm90IHNob3duIGJlbG93LjwvZGl2PgotPGRpdiBpZD1iZWNv
bWVzVmlzaWJsZT48L2Rpdj4KLTxwcmUgaWQ9cmVzdWx0PjwvcHJlPgotPHNjcmlwdD4KLXRhcHRo
aXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgewotICAg
IC8vIDEuIEluc3RhbGwgMiB0aW1lcnMgb24gaG92ZXIKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewotICAgICAgICAvLyAyLiBUcmlnZ2VyIHNvbWUgbm9uLXZpc2liaWxpdHkgc3R5bGUgY2hh
bmdlIHdpdGggZm9yY2luZyBvZmZzZXRIZWlnaHQuCi0gICAgICAgIGJlY29tZXNWaXNpYmxlLnN0
eWxlLm1hcmdpbkxlZnQgPSAiNXB4IjsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWln
aHQ7Ci0gICAgfSwgMCk7Ci0gICAgLy8gMy4gSW5zdGFsbCBhIGxvbmdlciB0aW1lciB3aXRoIHZp
c2liaWxpdHkgY2hhbmdlLgotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJl
Y29tZXNWaXNpYmxlLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7Ci0gICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0SGVpZ2h0OwotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpLCAwKTsKLSAgICB9
LCAyMCk7Ci19LCBmYWxzZSk7Ci0KLWJlY29tZXNWaXNpYmxlLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xp
Y2tlZCBoaWRkZW4iOwotfSwgZmFsc2UpOwotCi10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xp
Y2tlZCI7Ci19LCBmYWxzZSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363927</attachid>
            <date>2019-03-07 14:21:49 -0800</date>
            <delta_ts>2019-03-07 15:13:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195353-20190307142148.patch</filename>
            <type>text/plain</type>
            <size>44021</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA4ZDE0MTI5NmI4MzYy
ZTM0Y2I4YTdiMzE5OGYzN2ZhMGU5MmNmMS4uNTJhMjExNzZiZDBhYjA3MDNlMGQ4ODNkNTc5NjE1
YTU0MmM4YzI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTAzLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNl
cnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2Jz
ZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgY29udGVudCBv
YnNlcnZhdGlvbiB0ZXN0cyB0byBhIGRlZGljYXRlZCBkaXJlY3RvcnkuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3Rl
YWQtb2YtaG92ZXItc2ltcGxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5j
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2Vy
dmF0aW9uL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVkdWxl
LWFuZC1mb3JjZS1yZWxhbGMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUt
c2Vjb25kLXRpbWVyLmh0bWwKKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAg
ICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjppc05vdGlmeUNvbnRlbnRDaGFuZ2VBbGxv
d2VkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6aXNOb3RpZnlDb250ZW50
Q2hhbmdlQWxsb3dlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOgorCiAyMDE5LTAzLTA3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5k
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogTWFrZSBp
dCBwb3NzaWJsZSB0byBwdXJnZSBvbmx5IHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNDQ3ZjA2NDMyN2ZmZTIwYTRlNmZhZGM5NjZhNTEwN2Q5MzdjYzVmZi4uOWJiZTk3Y2Y4
YzA2NWZkODhlNDhhYTk5MjZhNGNlNzIzZGQ3NzAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxOS0wMy0wNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEFkZCBhIHNldHRpbmcgdG8gYmUgYWJsZSB0byB0dXJu
IGNvbnRlbnQgY2hhbmdlIG9ic2VydmF0aW9uIG9uL29mZgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS80ODYyNjM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2NvbnRlbnRDaGFuZ2VPYnNl
cnZlckVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0Q29udGVudENoYW5n
ZU9ic2VydmVyRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVTeW50aGV0aWNDbGlj
ayk6CisKIDIwMTktMDMtMDcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1
cmdlIG9ubHkgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IGU0YWYxZTBlNzBlYzA3N2EwZGVlYTRjOWQ4MzkyMzJjMjg5MGFmMGEuLjkxZTQ2
NzVmODNhODUyMDBlMDk1OTQ1MzllNWFjOTk3YTk5ZWEyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOS0wMy0wNyAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEFkZCBhIHNl
dHRpbmcgdG8gYmUgYWJsZSB0byB0dXJuIGNvbnRlbnQgY2hhbmdlIG9ic2VydmF0aW9uIG9uL29m
ZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzUz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODYyNjM5ND4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAg
KCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNl
cyBjb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVu
Y2VzIHNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0wMy0w
NiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYktpdExlZ2FjeSBk
b2VzIG5vdCBuZWVkIHRvIGdlbmVyYXRlIGFuIGV4cG9ydCBmaWxlIGZvciBpMzg2IGFueW1vcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAzMDNkN2Y4MmQ0YjM3ZmRiYTFiN2YyZGQ0
YThkYTI1N2U4YWI5NzdjLi5kMDUwYjFkMDQ1MWY2N2M0NWU4ZTI3Njg3ODI3OWQ3YWMxZGQ3NDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC00NDYsNiArNDQ2LDkgQEAgc2ltcGxl
TGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAgIG9uQ2hh
bmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKIAorY29udGVudENoYW5nZU9ic2Vy
dmVyRW5hYmxlZDoKKyAgaW5pdGlhbDogdHJ1ZQorCiBzdWJwaXhlbENTU09NRWxlbWVudE1ldHJp
Y3NFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcAppbmRleCAyNzE5MGM4ZWU3NTEwZTUxMjZk
NWUwNjYyNWEyOTA0NDQ3NmM1NzY1Li5mMGQ1ODE1ZjdmNzgwYTQ0NmFhMDI1MGNhYjg1YzQ1ODI0
MWVjNjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdl
T2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VP
YnNlcnZlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNiArNDQsOCBAQCBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXI6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcihEb2N1bWVudCYgZG9jdW1l
bnQpCiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIoY29u
c3QgRE9NVGltZXImIHRpbWVyLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsK
KyAgICBpZiAoIW1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFi
bGVkKCkpCisgICAgICAgIHJldHVybjsKICAgICBpZiAobV9kb2N1bWVudC5hY3RpdmVET01PYmpl
Y3RzQXJlU3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodGltZW91dCA+IDI1
MF9tcyB8fCAhc2luZ2xlU2hvdCkKQEAgLTE3Niw2ICsxNzksMTMgQEAgYm9vbCBDb250ZW50Q2hh
bmdlT2JzZXJ2ZXI6Omhhc0RldGVybWluYXRlU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBvYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnROb0NoYW5nZSAmJiAhaGFzUGVuZGluZ0Fj
dGl2aXR5KCk7CiB9CiAKKyNpZiAhQVNTRVJUX0RJU0FCTEVECitib29sIENvbnRlbnRDaGFuZ2VP
YnNlcnZlcjo6aXNOb3RpZnlDb250ZW50Q2hhbmdlQWxsb3dlZCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkg
JiYgIW1fbW91c2VNb3ZlZElzQmVpbmdEaXNwYXRjaGVkOworfQorI2VuZGlmCisKIHZvaWQgQ29u
dGVudENoYW5nZU9ic2VydmVyOjphZGp1c3RPYnNlcnZlZFN0YXRlKEV2ZW50IGV2ZW50KQogewog
ICAgIGF1dG8gbm90aWZ5Q29udGVudENoYW5nZUlmTmVlZGVkID0gWyZdIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKaW5kZXggZTMxY2QwMmE1
YmI2YTYzODkyNjAxMjVlYzliN2Y5Zjk4YzhiNmM0Yy4uMTAyYWNhNGZiZTM2M2Y2ODNkM2M1YzFi
ZDE4OTM1MTU3MjU2MzgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29u
dGVudENoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVu
dENoYW5nZU9ic2VydmVyLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBoYXNPYnNlcnZlZERPTVRpbWVy
KCkgfHwgbV9kb2N1bWVudC5oYXNQZW5kaW5nU3R5bGVSZWNhbGMoKTsgfQogI2lmICFBU1NFUlRf
RElTQUJMRUQKLSAgICBib29sIGlzTm90aWZ5Q29udGVudENoYW5nZUFsbG93ZWQoKSBjb25zdCB7
IHJldHVybiAhbV9tb3VzZU1vdmVkSXNCZWluZ0Rpc3BhdGNoZWQ7IH0KKyAgICBib29sIGlzTm90
aWZ5Q29udGVudENoYW5nZUFsbG93ZWQoKSBjb25zdDsKICNlbmRpZgogCiAgICAgZW51bSBjbGFz
cyBFdmVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA4
MDRhMGFlOTEwMzkxMzMzMDMyMDM3YTEyMjBkNDViMDAzZGU4MjM4Li5iMmQ4NDE0NTUwZWY2NWI2
NTQ1ZmI1YzM4YWU0MTFjZDZkZDkwOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKQEAgLTQ4NCw2ICs0ODQsMTEgQEAgU2ltcGxlTGluZUxheW91dEVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCiAKK0NvbnRlbnRDaGFuZ2VPYnNl
cnZlckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiB0cnVlCisgIGNvbmRp
dGlvbjogUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwogU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNz
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IGNmZDdlZDY3
ODYyMmIwNDhiOTJjNDdjN2Y4NzE1YzUwYjY0MDhjMDIuLjJkZjNhOTc3NTI3MmMzZmM3ODdlZGQ1
ZGQ1NTVjM2U2MjQ2NzI0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xMzUwLDYgKzEzNTAsMTYgQEAgYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXIKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2ltcGxlTGluZUxh
eW91dERlYnVnQm9yZGVyc0VuYWJsZWQoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29u
dGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
LCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0Q29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZChmbGFnKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q29u
dGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
KQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5jb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJFbmFibGVkKCk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldE5ld0Jsb2NrSW5zaWRl
SW5saW5lTW9kZWxFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7CiAgICAgLy8gRklY
TUU6IFJlbW92ZSBTYWZhcmkgY2FsbCB0byB0aGlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggM2E2MWJk
OTNmZjc1ZmYwNzM2MmQ2ZjQzZWYxYzM0NjhiOTBkYmEwYi4uMWJkMjFjODY4ZDU4OTcxYmE0Mzhh
OGFjNzQyM2NmZDVkYWRmZDQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC0zMzQsNiArMzM0LDkgQEAg
V0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNpbXBsZUxp
bmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOwogV0tf
RVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNF
bmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsK
K1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYpOworCiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNTZXROZXdCbG9ja0luc2lkZUlubGluZU1vZGVsRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmLCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRO
ZXdCbG9ja0luc2lkZUlubGluZU1vZGVsRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5k
ZXggYjNhZjIyMzI2OGM5ZWMwYTZkZmZhYjkwN2QxOTQ3YzhkZmE0M2JiYS4uMDUwMDA4NDEyYjQx
MWQ1NTg4ZjMyNWJjMjBlNzYzMzM5OTdiNDY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTMzNSw2ICszMzUsMTYgQEAg
LSAodm9pZClfc2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KEJPT0wpc2lt
cGxlTGluZUxheW91dERlYnVnQm9yZGUKICAgICBfcHJlZmVyZW5jZXMtPnNldFNpbXBsZUxpbmVM
YXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKHNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkKTsKIH0KIAorLSAoQk9PTClfY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZAoreworICAg
IHJldHVybiBfcHJlZmVyZW5jZXMtPmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKTsKK30K
KworLSAodm9pZClfc2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZDooQk9PTCljb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJFbmFibGVkKGNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQpOworfQorCiAt
IChCT09MKV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJl
bmNlcy0+YWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0
MzVkMWUxNGE1OGQ2ODY4YWRiNzJmYjVmOGM1NTgwYWQ1Nzg4ZGFjLi5lZTY2MzljZGNkNjM5ZTll
MWZkMjJlOTQ1NGZkMDMxMjk3YzQ4OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNzIsNiArNzIs
NyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikg
ewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURlYnVnT3ZlcmxheVJl
Z2lvbnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdPdmVybGF5UmVnaW9u
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkOikgQk9PTCBfc2lt
cGxlTGluZUxheW91dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxlTGluZUxheW91
dERlYnVnQm9yZGVyc0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJz
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6
KSBCT09MIF9jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2VsZXJhdGVk
RHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5h
YmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5j
RGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAu
MykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCAwN2EyMWUwMDYxYzEzYmFkNWU3YzM5NzY2ZTNlMzMxZjY1NzU5OWM2Li43
YTJhMTY2NWM5MzE0Y2VhMzZlMzJjNzk1NzAyYThiMzBkNjE1MGJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTczLDYg
KzU3Myw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJl
c3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIHJldHVybjsKICAgICBj
YXNlIFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2U6IHsKICAgICAgICAgLy8gV2FpdCBmb3Ig
Y2FsbGJhY2sgdG8gY29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdl
T2JzZXJ2ZXIoKSB0byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZSBjbGljayBldmVudC4KKyAg
ICAgICAgQVNTRVJUKHJlc3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VP
YnNlcnZlckVuYWJsZWQoKSk7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9
ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2s7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNr
TG9jYXRpb24gPSBsb2NhdGlvbjsKICAgICAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2Rp
ZmllcnMgPSBtb2RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAwNTlmNWUxZWRmZDIz
ODY0NjE4ODQxMmE2NGU2YWE4MTFkMjI1MTdjLi4xZWZmM2I4MDY1NmNlNGYxMTEwZDgwMWE5MjAw
ZThhNTk0MzI0ZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTExMSw2ICsxMTEsNyBAQAog
I2RlZmluZSBXZWJLaXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0U2ltcGxlTGluZUxheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U2lt
cGxlTGluZUxheW91dEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1
Z0JvcmRlcnNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1
Z0JvcmRlcnNFbmFibGVkIgorI2RlZmluZSBXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93
UmVwYWludENvdW50ZXIiCiAjZGVmaW5lIFdlYktpdFdlYkF1ZGlvRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRXZWJBdWRpb0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFdlYkdMRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRXZWJHTEVuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBhYjQyMTdkODdjNDMzMjBj
NTZhMGEyNDM2ODVjMmU1ZWRkZDFkYmFlLi4wNjE2M2M4YzFiMGFkOTgyYjIzMTg5YjI4NmU2M2Y0
YzE5MzM3MmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KQEAgLTU4Miw2ICs1ODIsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRQbHVnSW5TbmFwc2hv
dHRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0Q29udGVudENoYW5n
ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoQm9vbDpOT10sICAgV2ViS2l0VGVsZXBob25lUGFyc2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDotMV0sICAgICAgV2ViS2l0TGF5b3V0
SW50ZXJ2YWxQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0
Oi0xLjBmXSwgV2ViS2l0TWF4UGFyc2VEdXJhdGlvblByZWZlcmVuY2VLZXksCkBAIC0xNTk3LDYg
KzE1OTgsMTYgQEAgLSAoQk9PTClfdGVsZXBob25lTnVtYmVyUGFyc2luZ0VuYWJsZWQKIHsKICAg
ICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRUZWxlcGhvbmVQYXJzaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXldOwogfQorCistIChCT09MKWNvbnRlbnRDaGFuZ2VPYnNlcnZlckVu
YWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0Q29u
dGVudENoYW5nZU9ic2VydmVyRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgW3NlbGYgX3Nl
dEJvb2xWYWx1ZTplbmFibGVkIGZvcktleTpXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFi
bGVkUHJlZmVyZW5jZUtleV07Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaAppbmRleCBiZjA4ZmM3Njc1MmI0MzI5NmQyMjAzNWE2MjU5ODdlYjdm
M2EzZTNiLi44YjA5MTViOTAwZWI4ZDk2ZTBlZDRlNzE4NjE3Zjk4YTI1ZDlmMWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmgKQEAgLTM1NCw2ICszNTQsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVu
Y2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiAt
ICh2b2lkKXNldE1lZGlhUGxheWJhY2tBbGxvd3NBaXJQbGF5OihCT09MKWZsYWc7CiAtIChCT09M
KW1lZGlhUGxheWJhY2tBbGxvd3NBaXJQbGF5OworCistIChCT09MKWNvbnRlbnRDaGFuZ2VPYnNl
cnZlckVuYWJsZWQ7CistICh2b2lkKXNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6KEJP
T0wpZW5hYmxlZDsKICNlbmRpZgogCiAtICh2b2lkKV9zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQ6
KEJPT0wpZW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCAzOGZjYjhhNTMyNzgxODQyMjI4N2I0MWZlOTFhNGJkNWQ3MWM3ODM0Li5mMDZmNTE4
NTI0MDg3YmMxNjE0OWU2N2M5ZDM4MGVkYzExNzM1NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMDEyLDYgKzMwMTIsNyBAQCAtICh2b2lkKV9w
cmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKICAgICBzZXR0
aW5ncy5zZXRMYXlvdXRJbnRlcnZhbChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKFtwcmVmZXJl
bmNlcyBfbGF5b3V0SW50ZXJ2YWxdKSk7CiAgICAgc2V0dGluZ3Muc2V0TWF4UGFyc2VEdXJhdGlv
bihbcHJlZmVyZW5jZXMgX21heFBhcnNlRHVyYXRpb25dKTsKICAgICBzZXR0aW5ncy5zZXRBbHdh
eXNVc2VBY2NlbGVyYXRlZE92ZXJmbG93U2Nyb2xsKFtwcmVmZXJlbmNlcyBfYWx3YXlzVXNlQWNj
ZWxlcmF0ZWRPdmVyZmxvd1Njcm9sbF0pOworICAgIHNldHRpbmdzLnNldENvbnRlbnRDaGFuZ2VP
YnNlcnZlckVuYWJsZWQoW3ByZWZlcmVuY2VzIGNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWRd
KTsKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
T3ZlcnJpZGUoW3ByZWZlcmVuY2VzIGF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGVdKTsKICAg
ICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0Vu
YWJsZWQoW3ByZWZlcmVuY2VzIG5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWRdKTsKICAg
ICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldE5ldHdvcmtJbnRlcmZhY2VOYW1lKFtwcmVm
ZXJlbmNlcyBuZXR3b3JrSW50ZXJmYWNlTmFtZV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBhYTM4ODExNDIxYzc2NjNlMWYxOTU4NTc0MGJj
MWU5YTExOWY4ZmUuLjI4MmRjMzNlOTEzYmE2MTk4MmEwYTU0OWY0NWFjMTYxZGMwM2E1YTEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOS0wMy0wNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEFkZCBhIHNldHRpbmcgdG8gYmUgYWJsZSB0
byB0dXJuIGNvbnRlbnQgY2hhbmdlIG9ic2VydmF0aW9uIG9uL29mZgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzUzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODYyNjM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9D
b25zaXN0ZW50VmFsdWVzKToKKwogMjAxOS0wMy0wNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IE1ha2UgaXQg
cG9zc2libGUgdG8gcHVyZ2Ugb25seSBzY3JpcHQtYWNjZXNzaWJsZSBjb29raWVzCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCmluZGV4IGIwMTFi
Y2I4YmM0ZDI1ZmVmZjYwNDc2MjRiZTg5MGFhY2RmZTZhODIuLmU1NzI0ZjE2YTRjZGM5NDZlZjFk
M2Y2ZTE0YWJhNGQ4YzczMDg1ODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9z
L1Rlc3RDb250cm9sbGVySU9TLm1tCkBAIC0xMjgsNiArMTI4LDcgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKIHsKICAg
ICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gcGxhdGZvcm1QcmVmZXJlbmNlcygpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZh
bHNlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZChw
cmVmZXJlbmNlcywgZmFsc2UpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYzQ3Mjg0ODgxMmU4MjcwODYyNDMyZjk0MjY2OWNlOTI5ZmY0YzZjNS4uN2M5NTdkY2Iz
MTM0MjczNDg5Y2Y5YWE2YTVjMDgzODI3ZjMwNzZkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDE5LTAzLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0Nv
bnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29u
dGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4
NjI2Mzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vY2xpY2staW5zdGVh
ZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZh
dGlvbi9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2lt
cGxlLmh0bWwuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2
YXRpb24vaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5
bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1h
c3luYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLmh0bWwuCisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1ob3Zlci1zdGF0
ZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1ob3Zlci1z
dGF0ZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNl
LXJlbGFsYy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3Mvc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0
aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVjYWxjLXNjaGVk
dWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1z
ZWNvbmQtdGltZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10
aW1lci1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRl
bnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRp
bWVyLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
dmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLmh0bWwuCisKIDIw
MTktMDMtMDcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1cmdlIG9ubHkg
c2NyaXB0LWFjY2Vzc2libGUgY29va2llcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1pbnN0ZWFkLW9mLWhv
dmVyLXNpbXBsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2
YTMyZGJiYjk5NTg3ZjllYjNjMDgzYWRmYjkyOTM0OTJmZThhNGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotUEFTUyBpZiBjbGlja2VkLgotY2xpY2tlZAotdG9vbHRp
cApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWlu
c3RlYWQtb2YtaG92ZXItc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmI0MjM4ZTQwZmYyOTNmMWY1OWY1MGU4MzI2ODc2ZGQ2YWE5ZjhiYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+
VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dlciBjbGljayB3aGVuIGhvdmVyIHdvdWxkIG5vdCBkaXNw
bGF5IG5vbi1jbGlja2FibGUgY29udGVudC48L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0jdGFw
dGhpcyB7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci0gICAgYm9yZGVy
OiAxcHggc29saWQgZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWFzeW5jIGZ1bmN0aW9u
IHRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICBsZXQgcmVjdCA9IHRhcHRo
aXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0
LndpZHRoIC8gMjsKLSAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOwotCi0J
YXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKLQotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08ZGl2IGlkPXRh
cHRoaXM+UEFTUyBpZiBjbGlja2VkLjwvZGl2PgotPHByZSBpZD1yZXN1bHQ+PC9wcmU+Ci08c2Ny
aXB0PgotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZl
bnQgKSB7ICAgCi0JbGV0IG5ld0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLQluZXdDb250ZW50LmlubmVySFRNTCA9ICJ0b29sdGlwIjsKLQlkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKG5ld0NvbnRlbnQpOwkJCi19LCBmYWxzZSk7Ci0KLXRhcHRoaXMuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCi0JcmVzdWx0LmlubmVySFRN
TCA9ICJjbGlja2VkIjsKLX0sIGZhbHNlKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vY2xpY2st
aW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTMyZGJi
Yjk5NTg3ZjllYjNjMDgzYWRmYjkyOTM0OTJmZThhNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1p
bnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitQQVNT
IGlmIGNsaWNrZWQuCitjbGlja2VkCit0b29sdGlwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1pbnN0ZWFkLW9m
LWhvdmVyLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Nv
bnRlbnQtb2JzZXJ2YXRpb24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNGNjZjliNGExZTdhOTc1NWJhMTI2NTY1OWRhM2ZiNDFhY2ViNDhhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2Jz
ZXJ2YXRpb24vY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDQ3
IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdnZXIgY2xp
Y2sgd2hlbiBob3ZlciB3b3VsZCBub3QgZGlzcGxheSBub24tY2xpY2thYmxlIGNvbnRlbnQuPC90
aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVy
ZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcHRoaXMgeworICAgIHdpZHRoOiA0MDBweDsK
KyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworfQorPC9z
dHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7CisKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGxldCBy
ZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBsZXQgeCA9IHJlY3Qu
bGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdo
dCAvIDI7CisKKwlhd2FpdCB0YXBBdFBvaW50KHgsIHkpOworCisgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4K
KzxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlmIGNsaWNrZWQuPC9kaXY+Cis8cHJlIGlkPXJlc3VsdD48
L3ByZT4KKzxzY3JpcHQ+Cit0YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIGZ1
bmN0aW9uKCBldmVudCApIHsgICAKKwlsZXQgbmV3Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworCW5ld0NvbnRlbnQuaW5uZXJIVE1MID0gInRvb2x0aXAiOworCWRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQobmV3Q29udGVudCk7CQkKK30sIGZhbHNlKTsKKwordGFwdGhp
cy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKKwlyZXN1
bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
Y29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNl
cnZhdGlvbi9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNlNjg1MzYwZmViOTc1YmU0MGQ3MGJjYzc2ODZlYTEwNjA5ZGU5YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9i
c2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIgQEAKK1BBU1MgaWYgbm8gJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50
LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13
aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNjNmNzI2Nzk0YmYx
ZTAwZGFkN2Q2OGEzNTEyMzA2ZjIyZDM1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0
eWxlLWNoYW5nZS1pcy1hc3luYy5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dlciBob3ZlciB3aGVuIHRoZSBjb250ZW50
IGNoYW5nZSBpcyBhc3luYy48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7
CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHgg
c29saWQgZ3JlZW47Cit9CisKKyNoaWRkZW5GaXJzdCB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVu
OworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0
KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7
CisKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgIGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKKyAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0g
cmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7CisKKyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlk
PXRhcHRoaXM+UEFTUyBpZiBubyAnY2xpY2tlZCcgdGV4dCBpcyBzaG93biBiZWxvdy48L2Rpdj4K
KzxkaXYgaWQ9aGlkZGVuRmlyc3Q+PC9kaXY+Cis8cHJlIGlkPXJlc3VsdD48L3ByZT4KKzxzY3Jp
cHQ+Cit0YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVu
dCApIHsKKyAgICAvLyAxLiBJbnN0YWxsIGEgdGltZXIgb24gaG92ZXIKKyAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICAvLyAyLiBUcmlnZ2VyIGEgbm9uLWZvcmNpbmcgc3R5bGUg
Y2hhbmdlCisgICAgICAgIGhpZGRlbkZpcnN0LnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7
CisgICAgICAgIC8vIDMuIEluc3RhbGwgYSB0aW1lciBmb3Igc3R5bGUgcmVjYWxjCisgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dEhlaWdodDsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMTApOworICAgIH0sIDAp
OworfSwgZmFsc2UpOworCitoaWRkZW5GaXJzdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1
bmN0aW9uKCBldmVudCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOwor
fSwgZmFsc2UpOworCit0YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24o
IGV2ZW50ICkgeyAgIAorICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Cit9LCBmYWxz
ZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0dWNrLXdpdGgtaG92
ZXItc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjVmYWU1MzFmYmJhMmQ3Y2IxOTlmOGViOTk3ODQ3YTEwODFkOTU4ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50
LW9ic2VydmF0aW9uL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMiBAQAorUEFTUyBpZiBjbGlja2VkLgorY2xpY2tlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1o
b3Zlci1zdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRl
bnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdj
NTlmMzFiZWE1ZjkwNjM0OWVkNDBjN2U0NmI1NTQ0OTJiYzY4MGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9z
dHVjay13aXRoLWhvdmVyLXN0YXRlLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzx0aXRsZT5UaGlzIHRlc3QgdGhhdCB3ZSB0cmlnZ2VyIGNsaWNrIHdoZW4gaG92ZXIgd291
bGQgbm90IGRpc3BsYXkgbm9uLWNsaWNrYWJsZSBjb250ZW50LjwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4K
KzxzdHlsZT4KKyN0YXB0aGlzIHsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBw
eDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
YXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1cm47CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJFbmFibGVkKHRydWUpOworCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRo
IC8gMjsKKyAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOworCisJYXdhaXQg
dGFwQXRQb2ludCh4LCB5KTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+
UEFTUyBpZiBjbGlja2VkLjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0Pgor
dGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7
CisJY2xlYXJUaW1lb3V0KHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRhcHRoaXMuaW5uZXJIVE1M
ID0gInNob3VsZCBub3Qgc2VlIHRoaXMiOyB9LCA1MCkpOworfSwgZmFsc2UpOworCit0YXB0aGlz
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorCXJlc3Vs
dC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9j
b250ZW50LW9ic2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50
LW9ic2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NzdlM2EzMWU0ZDI3NTkzYWE5NGRiZDYzN2E0NTNhZjhjZWRk
ZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxh
bGMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBp
cyBzaG93biBiZWxvdy4KK2NsaWNrZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1h
bmQtZm9yY2UtcmVsYWxjLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
Y29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFs
Yy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMyMTA2OTM2MDgzNzFkYWIxODYwNTQyNWI3NTA2ZjgwYzRkNjli
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
Y29udGVudC1vYnNlcnZhdGlvbi9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFs
Yy5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0
IHRoYXQgd2UgdHJpZ2dlciBob3ZlciB3aGVuIHRoZSBjb250ZW50IGNoYW5nZSBzdGFydHMgYXMg
YXN5bmMgYnV0IGl0IHR1cm5zIGludG8gYSBzeW5jIHN0eWxlIHJlY2FsYy48L3RpdGxlPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdo
dDogNDAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9CisKKyNzdGF5c0hpZGRl
biB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWln
aHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzxz
Y3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5u
ZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldENvbnRlbnRD
aGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1ZSk7CisKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGxldCByZWN0ID0gdGFw
dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJl
Y3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7CisK
KyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiAnY2xpY2tlZCcgdGV4
dCBpcyBzaG93biBiZWxvdy48L2Rpdj4KKzxkaXYgaWQ9c3RheXNIaWRkZW4+PC9kaXY+Cis8cHJl
IGlkPXJlc3VsdD48L3ByZT4KKzxzY3JpcHQ+Cit0YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1v
dXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVudCApIHsKKyAgICAvLyAxLiBJbnN0YWxsIGEgdGltZXIg
b24gaG92ZXIKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAvLyAyLiBUcmln
Z2VyIHNvbWUgbm9uLWZvcmNpbmcgKG5vbi12aXNpYmlsaXR5KSBzdHlsZSBjaGFuZ2Ugd2l0aCBm
b3JjaW5nIG9mZnNldEhlaWdodC4KKyAgICAgICAgc3RheXNIaWRkZW4uc3R5bGUubWFyZ2luTGVm
dCA9ICI1cHgiOworCisgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgIH0s
IDApOworICAgIC8vIDMuIEluc3RhbGwgYSBsb25nZXIsIGVtcHR5IHRpbWVyLgorICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgfSwgNSk7Cit9LCBmYWxzZSk7CisKK3N0YXlzSGlkZGVu
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorICAgIHJl
c3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCBoaWRkZW4iOworfSwgZmFsc2UpOworCit0YXB0aGlz
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorICAgIHJl
c3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9j
b250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29u
ZC10aW1lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
Y29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNv
bmQtdGltZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ZGI0Yzk0MDhhNmMwMzEyZGQwZTJk
NDg1YzAxYjgzNWU3Y2Y5M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBw
ZW5zLWF0LXRoZS1zZWNvbmQtdGltZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFT
UyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3Zpc2li
aWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1j
aGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY0MGEx
ODg1NmQ5MmVlMjU0YzZiMzhlZTVkYTcwMTkwYTIwYzc0NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3Zpc2li
aWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1sCkBAIC0wLDAgKzEs
NjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGUgY2FzZSB3aGVuIHRo
ZSBzZWNvbmQgdGltZXIgdHJpZ2dlcnMgdmlzaWJsZSBjb250ZW50IGNoYW5nZTwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXB0aGlzIHsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVp
Z2h0OiA0MDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30KKworI2JlY29tZXNW
aXNpYmxlIHsKKyAgICB2aXNpYmlsaXR5OiBoaWRkZW47CisgICAgd2lkdGg6IDEwMHB4OworICAg
IGhlaWdodDogMTAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxl
PgorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgcmV0dXJuOworCWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q29udGVudENoYW5n
ZU9ic2VydmVyRW5hYmxlZCh0cnVlKTsKKworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgbGV0IHJlY3QgPSB0YXB0aGlz
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53
aWR0aCAvIDI7CisgICAgbGV0IHkgPSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKKworICAg
IGF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0idGVzdCgpIj4KKzxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlmICdjbGlja2VkJyB0ZXh0IGlz
IG5vdCBzaG93biBiZWxvdy48L2Rpdj4KKzxkaXYgaWQ9YmVjb21lc1Zpc2libGU+PC9kaXY+Cis8
cHJlIGlkPXJlc3VsdD48L3ByZT4KKzxzY3JpcHQ+Cit0YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVudCApIHsKKyAgICAvLyAxLiBJbnN0YWxsIDIgdGlt
ZXJzIG9uIGhvdmVyCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gMi4g
VHJpZ2dlciBzb21lIG5vbi12aXNpYmlsaXR5IHN0eWxlIGNoYW5nZSB3aXRoIGZvcmNpbmcgb2Zm
c2V0SGVpZ2h0LgorICAgICAgICBiZWNvbWVzVmlzaWJsZS5zdHlsZS5tYXJnaW5MZWZ0ID0gIjVw
eCI7CisgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgIH0sIDApOworICAg
IC8vIDMuIEluc3RhbGwgYSBsb25nZXIgdGltZXIgd2l0aCB2aXNpYmlsaXR5IGNoYW5nZS4KKyAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBiZWNvbWVzVmlzaWJsZS5zdHlsZS52
aXNpYmlsaXR5ID0gInZpc2libGUiOworICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdo
dDsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgc2V0VGltZW91
dCh0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSwgMCk7CisgICAgfSwgMjApOworfSwgZmFsc2UpOwor
CitiZWNvbWVzVmlzaWJsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVu
dCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQgaGlkZGVuIjsKK30sIGZh
bHNlKTsKKwordGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVu
dCApIHsgICAKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOworfSwgZmFsc2UpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5
bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmNlNjg1MzYwZmViOTc1YmU0MGQ3MGJjYzc2ODZlYTEwNjA5ZGU5YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1QQVNTIGlmIG5vICdjbGlja2VkJyB0
ZXh0IGlzIHNob3duIGJlbG93LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1h
c3luYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDA2ODYxZjY5OTRjODNj
ZDAyOWZkMjg0NjkwNTIyMTM0MDNlYzM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9ob3Zlci13
aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5UaGlzIHRlc3QgdGhhdCB3ZSB0cmlnZ2VyIGhv
dmVyIHdoZW4gdGhlIGNvbnRlbnQgY2hhbmdlIGlzIGFzeW5jLjwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KLTxz
dHlsZT4KLSN0YXB0aGlzIHsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsK
LSAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKLX0KLQotI2hpZGRlbkZpcnN0IHsKLSAgICB2
aXNpYmlsaXR5OiBoaWRkZW47Ci0gICAgd2lkdGg6IDEwMHB4OwotICAgIGhlaWdodDogMTAwcHg7
Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWFz
eW5jIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICBsZXQg
cmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgbGV0IHggPSByZWN0
LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKLSAgICBsZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWln
aHQgLyAyOwotCi0gICAgYXdhaXQgdGFwQXRQb2ludCh4LCB5KTsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgbm8g
J2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVsb3cuPC9kaXY+Ci08ZGl2IGlkPWhpZGRlbkZpcnN0
PjwvZGl2PgotPHByZSBpZD1yZXN1bHQ+PC9wcmU+Ci08c2NyaXB0PgotdGFwdGhpcy5hZGRFdmVu
dExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7Ci0gICAgLy8gMS4gSW5z
dGFsbCBhIHRpbWVyIG9uIGhvdmVyCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAg
ICAgLy8gMi4gVHJpZ2dlciBhIG5vbi1mb3JjaW5nIHN0eWxlIGNoYW5nZQotICAgICAgICBoaWRk
ZW5GaXJzdC5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwotICAgICAgICAvLyAzLiBJbnN0
YWxsIGEgdGltZXIgZm9yIHN0eWxlIHJlY2FsYwotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7Ci0gICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Ci0gICAgICAgIH0sIDEwKTsKLSAgICB9LCAwKTsKLX0sIGZhbHNlKTsKLQotaGlk
ZGVuRmlyc3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAg
Ci0gICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsKLX0sIGZhbHNlKTsKLQotdGFwdGhp
cy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICBy
ZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOwotfSwgZmFsc2UpOwotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1ZmFlNTMxZmJiYTJkN2NiMTk5ZjhlYjk5Nzg0
N2ExMDgxZDk1OGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3Rh
dGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1QQVNTIGlmIGNs
aWNrZWQuCi1jbGlja2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3N0dWNrLXdpdGgtaG92ZXItc3RhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDdkMGQ4ZDk3MmJmNDQ4ODcxMzAwMmYzNTUxMzRiZmQ3YTYwNmQ1MC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5UaGlzIHRl
c3QgdGhhdCB3ZSB0cmlnZ2VyIGNsaWNrIHdoZW4gaG92ZXIgd291bGQgbm90IGRpc3BsYXkgbm9u
LWNsaWNrYWJsZSBjb250ZW50LjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSN0YXB0aGlzIHsK
LSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBib3JkZXI6IDFweCBz
b2xpZCBncmVlbjsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotYXN5bmMgZnVuY3Rpb24gdGVzdCgp
IHsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQotICAgICAgICByZXR1cm47Ci0KLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgIGxldCByZWN0ID0gdGFwdGhpcy5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGgg
LyAyOwotICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7Ci0KLQlhd2FpdCB0
YXBBdFBvaW50KHgsIHkpOwotCi0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxkaXYgaWQ9dGFwdGhpcz5Q
QVNTIGlmIGNsaWNrZWQuPC9kaXY+Ci08cHJlIGlkPXJlc3VsdD48L3ByZT4KLTxzY3JpcHQ+Ci10
YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVudCApIHsK
LQljbGVhclRpbWVvdXQoc2V0VGltZW91dChmdW5jdGlvbigpIHsgdGFwdGhpcy5pbm5lckhUTUwg
PSAic2hvdWxkIG5vdCBzZWUgdGhpcyI7IH0sIDUwKSk7Ci19LCBmYWxzZSk7Ci0KLXRhcHRoaXMu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCi0JcmVzdWx0
LmlubmVySFRNTCA9ICJjbGlja2VkIjsKLX0sIGZhbHNlKTsKLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0
eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZv
cmNlLXJlbGFsYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3
N2UzYTMxZTRkMjc1OTNhYTk0ZGJkNjM3YTQ1M2FmOGNlZGRkNzguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotUEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBp
cyBzaG93biBiZWxvdy4KLWNsaWNrZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0eWxlLXJlY2FsYy1zY2hlZHVs
ZS1hbmQtZm9yY2UtcmVsYWxjLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhk
NTNjNmVmMGY1Y2NlZjgwNGM0MTA0OWQ0YmJkYjIyMTAwNDc4ZDUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlRoaXMgdGVz
dCB0aGF0IHdlIHRyaWdnZXIgaG92ZXIgd2hlbiB0aGUgY29udGVudCBjaGFuZ2Ugc3RhcnRzIGFz
IGFzeW5jIGJ1dCBpdCB0dXJucyBpbnRvIGEgc3luYyBzdHlsZSByZWNhbGMuPC90aXRsZT4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2Ny
aXB0PgotPHN0eWxlPgotI3RhcHRoaXMgewotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6
IDQwMHB4OwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwotfQotCi0jc3RheXNIaWRkZW4g
ewotICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKLSAgICB3aWR0aDogMTAwcHg7Ci0gICAgaGVpZ2h0
OiAxMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLX0KLTwvc3R5bGU+Ci08c2Ny
aXB0PgotYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
IHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQotICAgICAgICByZXR1cm47Ci0KLSAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQot
ICAgIGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBsZXQg
eCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOwotICAgIGxldCB5ID0gcmVjdC50b3AgKyBy
ZWN0LmhlaWdodCAvIDI7Ci0KLSAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08ZGl2IGlkPXRhcHRoaXM+UEFT
UyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBzaG93biBiZWxvdy48L2Rpdj4KLTxkaXYgaWQ9c3RheXNI
aWRkZW4+PC9kaXY+Ci08cHJlIGlkPXJlc3VsdD48L3ByZT4KLTxzY3JpcHQ+Ci10YXB0aGlzLmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVudCApIHsKLSAgICAvLyAx
LiBJbnN0YWxsIGEgdGltZXIgb24gaG92ZXIKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewot
ICAgICAgICAvLyAyLiBUcmlnZ2VyIHNvbWUgbm9uLWZvcmNpbmcgKG5vbi12aXNpYmlsaXR5KSBz
dHlsZSBjaGFuZ2Ugd2l0aCBmb3JjaW5nIG9mZnNldEhlaWdodC4KLSAgICAgICAgc3RheXNIaWRk
ZW4uc3R5bGUubWFyZ2luTGVmdCA9ICI1cHgiOwotCi0gICAgICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0SGVpZ2h0OwotICAgIH0sIDApOwotICAgIC8vIDMuIEluc3RhbGwgYSBsb25nZXIsIGVtcHR5
IHRpbWVyLgotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgfSwgNSk7Ci19LCBmYWxz
ZSk7Ci0KLXN0YXlzSGlkZGVuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2
ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCBoaWRkZW4iOwotfSwg
ZmFsc2UpOwotCi10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2
ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Ci0gICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSwgMCk7Ci19LCBmYWxzZSk7Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQt
dGltZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zp
c2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2ZGI0Yzk0MDhhNmMwMzEyZGQwZTJkNDg1
YzAxYjgzNWU3Y2Y5M2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zpc2liaWxpdHktY2hhbmdl
LWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVBBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgbm90IHNob3duIGJlbG93
LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJp
bGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUt
c2Vjb25kLXRpbWVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjMTViNzgw
ZTg5ZDIyNjc1OTBmMjdiZTkxN2U0OGU0MjVjMzg0ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5UaGlzIHRl
c3RzIHRoZSBjYXNlIHdoZW4gdGhlIHNlY29uZCB0aW1lciB0cmlnZ2VycyB2aXNpYmxlIGNvbnRl
bnQgY2hhbmdlPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFz
aWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotI3RhcHRoaXMgewotICAgIHdpZHRo
OiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVu
OwotfQotCi0jYmVjb21lc1Zpc2libGUgewotICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKLSAgICB3
aWR0aDogMTAwcHg7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKLSAg
ICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKLSAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOwot
ICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7Ci0KLSAgICBhd2FpdCB0YXBB
dFBvaW50KHgsIHkpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hvd24g
YmVsb3cuPC9kaXY+Ci08ZGl2IGlkPWJlY29tZXNWaXNpYmxlPjwvZGl2PgotPHByZSBpZD1yZXN1
bHQ+PC9wcmU+Ci08c2NyaXB0PgotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIi
LCBmdW5jdGlvbiggZXZlbnQgKSB7Ci0gICAgLy8gMS4gSW5zdGFsbCAyIHRpbWVycyBvbiBob3Zl
cgotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIDIuIFRyaWdnZXIgc29t
ZSBub24tdmlzaWJpbGl0eSBzdHlsZSBjaGFuZ2Ugd2l0aCBmb3JjaW5nIG9mZnNldEhlaWdodC4K
LSAgICAgICAgYmVjb21lc1Zpc2libGUuc3R5bGUubWFyZ2luTGVmdCA9ICI1cHgiOwotICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKLSAgICB9LCAwKTsKLSAgICAvLyAzLiBJbnN0
YWxsIGEgbG9uZ2VyIHRpbWVyIHdpdGggdmlzaWJpbGl0eSBjaGFuZ2UuCi0gICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICAgICAgYmVjb21lc1Zpc2libGUuc3R5bGUudmlzaWJpbGl0eSA9
ICJ2aXNpYmxlIjsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7Ci0gICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHNldFRpbWVvdXQodGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCksIDApOwotICAgIH0sIDIwKTsKLX0sIGZhbHNlKTsKLQotYmVjb21lc1Zp
c2libGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCi0g
ICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIGhpZGRlbiI7Ci19LCBmYWxzZSk7Ci0KLXRh
cHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCi0g
ICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsKLX0sIGZhbHNlKTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363939</attachid>
            <date>2019-03-07 15:13:17 -0800</date>
            <delta_ts>2019-03-07 16:36:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195353-20190307151316.patch</filename>
            <type>text/plain</type>
            <size>45316</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA4ZDE0MTI5NmI4MzYy
ZTM0Y2I4YTdiMzE5OGYzN2ZhMGU5MmNmMS4uNjBhZGE0YjIwZGQwM2ZmZWJlN2VjOWFmNmJjOWQw
N2MwZDdlODk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTAzLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNl
cnZlcl0gQWRkIGEgc2V0dGluZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2Jz
ZXJ2YXRpb24gb24vb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUzNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBNb3ZlIGNvbnRlbnQgb2Jz
ZXJ2YXRpb24gdGVzdHMgdG8gYSBkZWRpY2F0ZWQgZGlyZWN0b3J5LgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1pbnN0ZWFk
LW9mLWhvdmVyLXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZh
dGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZl
bnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1h
bmQtZm9yY2UtcmVsYWxjLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy9jb250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNl
Y29uZC10aW1lci5odG1sCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAg
ICogcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkSW5zdGFsbERPTVRpbWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6aXNOb3RpZnlDb250ZW50Q2hhbmdlQWxsb3dl
ZCBjb25zdCk6CisgICAgICAgICogcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmlzTm90aWZ5Q29udGVudENo
YW5nZUFsbG93ZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpyZXNldFRv
Q29uc2lzdGVudFN0YXRlKToKKwogMjAxOS0wMy0wNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IE1ha2UgaXQg
cG9zc2libGUgdG8gcHVyZ2Ugb25seSBzY3JpcHQtYWNjZXNzaWJsZSBjb29raWVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDQ0N2YwNjQzMjdmZmUyMGE0ZTZmYWRjOTY2YTUxMDdkOTM3Y2M1ZmYuLjZiZTk1ZTM0NmI1
Yjk1ZGM0MDFiMGFjNjM2MGNjYmFiZmUzZDk0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTktMDMtMDcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29udGVudENoYW5nZU9ic2VydmVyXSBBZGQgYSBzZXR0aW5nIHRvIGJlIGFibGUgdG8gdHVybiBj
b250ZW50IGNoYW5nZSBvYnNlcnZhdGlvbiBvbi9vZmYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NDg2MjYzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAg
ICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldENvbnRlbnRDaGFu
Z2VPYnNlcnZlckVuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldENvbnRlbnRDaGFu
Z2VPYnNlcnZlckVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfY29udGVudENoYW5nZU9ic2VydmVy
RW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKToK
KwogMjAxOS0wMy0wNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IE1ha2UgaXQgcG9zc2libGUgdG8gcHVyZ2Ug
b25seSBzY3JpcHQtYWNjZXNzaWJsZSBjb29raWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggZTRhZjFlMGU3MGVjMDc3YTBkZWVhNGM5ZDgzOTIzMmMyODkwYWYwYS4uMjc5ODM5Njg1
Y2VmOThkNDg3ZDRlNjVkYzFkYzQxNDAxYzdlNWE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTAzLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQWRkIGEgc2V0dGlu
ZyB0byBiZSBhYmxlIHRvIHR1cm4gY29udGVudCBjaGFuZ2Ugb2JzZXJ2YXRpb24gb24vb2ZmCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzNTMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4NjI2Mzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEZyYXNlci4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
Lmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2Vi
UHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBjb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNl
dENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0wMy0wNiAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYktpdExlZ2FjeSBkb2VzIG5v
dCBuZWVkIHRvIGdlbmVyYXRlIGFuIGV4cG9ydCBmaWxlIGZvciBpMzg2IGFueW1vcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAzMDNkN2Y4MmQ0YjM3ZmRiYTFiN2YyZGQ0YThkYTI1
N2U4YWI5NzdjLi41OGQ5M2M5NWFiZGQ4ZDdkNGZiZGEyM2NhMzRkOGE0ZDk1YWE0YzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC00NDYsNiArNDQ2LDkgQEAgc2ltcGxlTGluZUxh
eW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAgIG9uQ2hhbmdlOiBz
ZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKIAorY29udGVudENoYW5nZU9ic2VydmVyRW5h
YmxlZDoKKyAgaW5pdGlhbDogZGVmYXVsdENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKQor
CiBzdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKaW5kZXggMmY2ZTRkY2FkMzJhNjU5NTMz
ZjFiMmQ5YmU4MjIzYjYwMDcwMThkMy4uM2Q1OWQzMDE5NWEyZDJkOTFiOWRhYTQ2MTJjZGU2YWUw
NWUyOTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcApAQCAtMTA3LDYgKzEw
NywxNSBAQCBib29sIFNldHRpbmdzQmFzZTo6ZGVmYXVsdERvd25sb2FkYWJsZUJpbmFyeUZvbnRz
RW5hYmxlZCgpCiAjZW5kaWYKIH0KIAorYm9vbCBTZXR0aW5nc0Jhc2U6OmRlZmF1bHRDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI2lm
ICFQTEFURk9STShDT0NPQSkKIGNvbnN0IFN0cmluZyYgU2V0dGluZ3NCYXNlOjpkZWZhdWx0TWVk
aWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3NCYXNlLmgKaW5kZXggNTc1MzFhMWYwMDEwMzE0MWRhNDQ3ZGQ0YTgwZmU2YjJmZTky
ZDdjZS4uMzUzM2I4ZjlhZDYzNzFmYzE3MWRmNWQ1OGI5N2I1M2Y0ODVkMzA2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzQmFzZS5oCkBAIC0xMTUsNiArMTE1LDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGRlZmF1bHRUZXh0QXV0b3NpemluZ0VuYWJsZWQoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgZmxvYXQgZGVmYXVsdE1pbmltdW1ab29tRm9udFNp
emUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBkZWZhdWx0RG93bmxvYWRhYmxl
QmluYXJ5Rm9udHNFbmFibGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZGVm
YXVsdENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKTsKIAogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcGxhdGZvcm1EZWZhdWx0TWVk
aWFTb3VyY2VFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9D
b250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVu
dENoYW5nZU9ic2VydmVyLmNwcAppbmRleCAyNzE5MGM4ZWU3NTEwZTUxMjZkNWUwNjYyNWEyOTA0
NDQ3NmM1NzY1Li5mMGQ1ODE1ZjdmNzgwYTQ0NmFhMDI1MGNhYjg1YzQ1ODI0MWVjNjRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTm9kZVJl
bmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNiArNDQsOCBAQCBDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXI6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAKIHZvaWQg
Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIoY29uc3QgRE9NVGltZXIm
IHRpbWVyLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsKKyAgICBpZiAoIW1f
ZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKICAgICBpZiAobV9kb2N1bWVudC5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVu
ZGVkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodGltZW91dCA+IDI1MF9tcyB8fCAhc2lu
Z2xlU2hvdCkKQEAgLTE3Niw2ICsxNzksMTMgQEAgYm9vbCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6
Omhhc0RldGVybWluYXRlU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBvYnNlcnZlZENvbnRlbnRD
aGFuZ2UoKSA9PSBXS0NvbnRlbnROb0NoYW5nZSAmJiAhaGFzUGVuZGluZ0FjdGl2aXR5KCk7CiB9
CiAKKyNpZiAhQVNTRVJUX0RJU0FCTEVECitib29sIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6aXNO
b3RpZnlDb250ZW50Q2hhbmdlQWxsb3dlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZG9jdW1l
bnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkgJiYgIW1fbW91c2VN
b3ZlZElzQmVpbmdEaXNwYXRjaGVkOworfQorI2VuZGlmCisKIHZvaWQgQ29udGVudENoYW5nZU9i
c2VydmVyOjphZGp1c3RPYnNlcnZlZFN0YXRlKEV2ZW50IGV2ZW50KQogewogICAgIGF1dG8gbm90
aWZ5Q29udGVudENoYW5nZUlmTmVlZGVkID0gWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKaW5kZXggZTMxY2QwMmE1YmI2YTYzODkyNjAx
MjVlYzliN2Y5Zjk4YzhiNmM0Yy4uMTAyYWNhNGZiZTM2M2Y2ODNkM2M1YzFiZDE4OTM1MTU3MjU2
MzgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9i
c2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2Vy
dmVyLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBoYXNPYnNlcnZlZERPTVRpbWVyKCkgfHwgbV9kb2N1
bWVudC5oYXNQZW5kaW5nU3R5bGVSZWNhbGMoKTsgfQogI2lmICFBU1NFUlRfRElTQUJMRUQKLSAg
ICBib29sIGlzTm90aWZ5Q29udGVudENoYW5nZUFsbG93ZWQoKSBjb25zdCB7IHJldHVybiAhbV9t
b3VzZU1vdmVkSXNCZWluZ0Rpc3BhdGNoZWQ7IH0KKyAgICBib29sIGlzTm90aWZ5Q29udGVudENo
YW5nZUFsbG93ZWQoKSBjb25zdDsKICNlbmRpZgogCiAgICAgZW51bSBjbGFzcyBFdmVudCB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA4MDRhMGFlOTEwMzkx
MzMzMDMyMDM3YTEyMjBkNDViMDAzZGU4MjM4Li5iMmQ4NDE0NTUwZWY2NWI2NTQ1ZmI1YzM4YWU0
MTFjZDZkZDkwOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
QEAgLTQ4NCw2ICs0ODQsMTEgQEAgU2ltcGxlTGluZUxheW91dEVuYWJsZWQ6CiAgIHR5cGU6IGJv
b2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCiAKK0NvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiB0cnVlCisgIGNvbmRpdGlvbjogUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKwogU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDoKICAg
dHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IGNmZDdlZDY3ODYyMmIwNDhiOTJj
NDdjN2Y4NzE1YzUwYjY0MDhjMDIuLjJkZjNhOTc3NTI3MmMzZmM3ODdlZGQ1ZGQ1NTVjM2U2MjQ2
NzI0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCkBAIC0xMzUwLDYgKzEzNTAsMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2ltcGxl
TGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXIKICAg
ICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2ltcGxlTGluZUxheW91dERlYnVnQm9y
ZGVyc0VuYWJsZWQoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcp
Cit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0Q29udGVudENoYW5nZU9ic2VydmVy
RW5hYmxlZChmbGFnKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVk
KCk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldE5ld0Jsb2NrSW5zaWRlSW5saW5lTW9kZWxF
bmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7CiAgICAgLy8gRklYTUU6IFJlbW92ZSBT
YWZhcmkgY2FsbCB0byB0aGlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggM2E2MWJkOTNmZjc1ZmYwNzM2
MmQ2ZjQzZWYxYzM0NjhiOTBkYmEwYi4uMWJkMjFjODY4ZDU4OTcxYmE0MzhhOGFjNzQyM2NmZDVk
YWRmZDQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC0zMzQsNiArMzM0LDkgQEAgV0tfRVhQT1JUIGJv
b2wgV0tQcmVmZXJlbmNlc0dldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNpbXBsZUxpbmVMYXlvdXREZWJ1
Z0JvcmRlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOwogV0tfRVhQT1JUIGJvb2wg
V0tQcmVmZXJlbmNlc0dldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Q29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VYUE9SVCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYpOworCiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXROZXdCbG9ja0luc2lkZUlubGluZU1vZGVsRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmLCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXROZXdCbG9ja0luc2lk
ZUlubGluZU1vZGVsRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggYjNhZjIyMzI2
OGM5ZWMwYTZkZmZhYjkwN2QxOTQ3YzhkZmE0M2JiYS4uMDUwMDA4NDEyYjQxMWQ1NTg4ZjMyNWJj
MjBlNzYzMzM5OTdiNDY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTMzNSw2ICszMzUsMTYgQEAgLSAodm9pZClfc2V0
U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KEJPT0wpc2ltcGxlTGluZUxheW91
dERlYnVnQm9yZGUKICAgICBfcHJlZmVyZW5jZXMtPnNldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0Jv
cmRlcnNFbmFibGVkKHNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKTsKIH0KIAor
LSAoQk9PTClfY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZAoreworICAgIHJldHVybiBfcHJl
ZmVyZW5jZXMtPmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKTsKK30KKworLSAodm9pZClf
c2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZDooQk9PTCljb250ZW50Q2hhbmdlT2JzZXJ2
ZXJFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJF
bmFibGVkKGNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQpOworfQorCiAtIChCT09MKV9hY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0MzVkMWUxNGE1OGQ2
ODY4YWRiNzJmYjVmOGM1NTgwYWQ1Nzg4ZGFjLi5lZTY2MzljZGNkNjM5ZTllMWZkMjJlOTQ1NGZk
MDMxMjk3YzQ4OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNzIsNiArNzIsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6KSBfV0tE
ZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkOikgQk9PTCBfc2ltcGxlTGluZUxheW91
dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVy
c0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6KSBCT09MIF9jb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDopIEJPT0wg
X2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
LCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFn
ZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCAwN2EyMWUwMDYxYzEzYmFkNWU3YzM5NzY2ZTNlMzMxZjY1NzU5OWM2Li43YTJhMTY2NWM5MzE0
Y2VhMzZlMzJjNzk1NzAyYThiMzBkNjE1MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTczLDYgKzU3Myw3IEBAIHZv
aWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0Ns
aWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdLQ29udGVu
dEluZGV0ZXJtaW5hdGVDaGFuZ2U6IHsKICAgICAgICAgLy8gV2FpdCBmb3IgY2FsbGJhY2sgdG8g
Y29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSB0
byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZSBjbGljayBldmVudC4KKyAgICAgICAgQVNTRVJU
KHJlc3BvbmRpbmdEb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJs
ZWQoKSk7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9ICZub2RlUmVzcG9u
ZGluZ1RvQ2xpY2s7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBs
b2NhdGlvbjsKICAgICAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSBtb2Rp
ZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAwNTlmNWUxZWRmZDIzODY0NjE4ODQxMmE2
NGU2YWE4MTFkMjI1MTdjLi4xZWZmM2I4MDY1NmNlNGYxMTEwZDgwMWE5MjAwZThhNTk0MzI0ZDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTExMSw2ICsxMTEsNyBAQAogI2RlZmluZSBXZWJL
aXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJL
aXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U2lt
cGxlTGluZUxheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U2ltcGxlTGluZUxheW91
dEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkIgorI2RlZmluZSBXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93UmVwYWludENvdW50
ZXIiCiAjZGVmaW5lIFdlYktpdFdlYkF1ZGlvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRX
ZWJBdWRpb0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFdlYkdMRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRXZWJHTEVuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBhYjQyMTdkODdjNDMzMjBjNTZhMGEyNDM2ODVj
MmU1ZWRkZDFkYmFlLi4wNjE2M2M4YzFiMGFkOTgyYjIzMTg5YjI4NmU2M2Y0YzE5MzM3MmE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KQEAgLTU4Miw2ICs1ODIsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRQbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVk
UHJlZmVyZW5jZUtleSwKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0Q29udGVudENoYW5nZU9ic2VydmVyRW5h
YmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10s
ICAgV2ViS2l0VGVsZXBob25lUGFyc2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEludDotMV0sICAgICAgV2ViS2l0TGF5b3V0SW50ZXJ2YWxQcmVm
ZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0Oi0xLjBmXSwgV2Vi
S2l0TWF4UGFyc2VEdXJhdGlvblByZWZlcmVuY2VLZXksCkBAIC0xNTk3LDYgKzE1OTgsMTYgQEAg
LSAoQk9PTClfdGVsZXBob25lTnVtYmVyUGFyc2luZ0VuYWJsZWQKIHsKICAgICByZXR1cm4gW3Nl
bGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRUZWxlcGhvbmVQYXJzaW5nRW5hYmxlZFByZWZlcmVu
Y2VLZXldOwogfQorCistIChCT09MKWNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQKK3sKKyAg
ICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2
ZXJFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0Q29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpl
bmFibGVkIGZvcktleTpXZWJLaXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5j
ZUtleV07Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaAppbmRleCBiZjA4ZmM3Njc1MmI0MzI5NmQyMjAzNWE2MjU5ODdlYjdmM2EzZTNiLi44YjA5
MTViOTAwZWI4ZDk2ZTBlZDRlNzE4NjE3Zjk4YTI1ZDlmMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAg
LTM1NCw2ICszNTQsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2Rl
bENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiAtICh2b2lkKXNldE1l
ZGlhUGxheWJhY2tBbGxvd3NBaXJQbGF5OihCT09MKWZsYWc7CiAtIChCT09MKW1lZGlhUGxheWJh
Y2tBbGxvd3NBaXJQbGF5OworCistIChCT09MKWNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ7
CistICh2b2lkKXNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6KEJPT0wpZW5hYmxlZDsK
ICNlbmRpZgogCiAtICh2b2lkKV9zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQ6KEJPT0wpZW5hYmxl
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAzOGZj
YjhhNTMyNzgxODQyMjI4N2I0MWZlOTFhNGJkNWQ3MWM3ODM0Li5mMDZmNTE4NTI0MDg3YmMxNjE0
OWU2N2M5ZDM4MGVkYzExNzM1NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0zMDEyLDYgKzMwMTIsNyBAQCAtICh2b2lkKV9wcmVmZXJlbmNlc0No
YW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKICAgICBzZXR0aW5ncy5zZXRMYXlv
dXRJbnRlcnZhbChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKFtwcmVmZXJlbmNlcyBfbGF5b3V0
SW50ZXJ2YWxdKSk7CiAgICAgc2V0dGluZ3Muc2V0TWF4UGFyc2VEdXJhdGlvbihbcHJlZmVyZW5j
ZXMgX21heFBhcnNlRHVyYXRpb25dKTsKICAgICBzZXR0aW5ncy5zZXRBbHdheXNVc2VBY2NlbGVy
YXRlZE92ZXJmbG93U2Nyb2xsKFtwcmVmZXJlbmNlcyBfYWx3YXlzVXNlQWNjZWxlcmF0ZWRPdmVy
Zmxvd1Njcm9sbF0pOworICAgIHNldHRpbmdzLnNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJs
ZWQoW3ByZWZlcmVuY2VzIGNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWRdKTsKICAgICBEZXBy
ZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUoW3By
ZWZlcmVuY2VzIGF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGVdKTsKICAgICBEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnNldE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWQoW3ByZWZl
cmVuY2VzIG5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWRdKTsKICAgICBEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnNldE5ldHdvcmtJbnRlcmZhY2VOYW1lKFtwcmVmZXJlbmNlcyBuZXR3
b3JrSW50ZXJmYWNlTmFtZV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDBhYTM4ODExNDIxYzc2NjNlMWYxOTU4NTc0MGJjMWU5YTExOWY4ZmUu
LjA4ZGQxODQ0YTJiY2MyN2NjMTljNmZkOGJiYjcwMzYzYTljMTBhZWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
OS0wMy0wNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJdIEFkZCBhIHNldHRpbmcgdG8gYmUgYWJsZSB0byB0dXJuIGNvbnRl
bnQgY2hhbmdlIG9ic2VydmF0aW9uIG9uL29mZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODYy
NjM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVl
cyk6CisKIDIwMTktMDMtMDcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1
cmdlIG9ubHkgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQppbmRleCBiMDExYmNiOGJjNGQyNWZlZmY2
MDQ3NjI0YmU4OTBhYWNkZmU2YTgyLi5lNTcyNGYxNmE0Y2RjOTQ2ZWYxZDNmNmUxNGFiYTRkOGM3
MzA4NTg3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJv
bGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxl
cklPUy5tbQpAQCAtMTI4LDYgKzEyOCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
UmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiB7CiAgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IHBsYXRmb3JtUHJlZmVyZW5jZXMoKTsKICAgICBXS1ByZWZlcmVu
Y2VzU2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgV0tQ
cmVmZXJlbmNlc1NldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQocHJlZmVyZW5jZXMsIGZh
bHNlKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25z
aXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0NzI4NDg4
MTJlODI3MDg2MjQzMmY5NDI2NjljZTkyOWZmNGM2YzUuLjk1NjU4M2VkY2YwMDQwZWZmM2QyYWM2
MmU1ZWU3MWIwYWFiZDFkMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0wMy0wNyAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJdIEFkZCBhIHNldHRpbmcgdG8gYmUgYWJsZSB0byB0dXJuIGNvbnRlbnQgY2hhbmdlIG9i
c2VydmF0aW9uIG9uL29mZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk1MzUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODYyNjM5ND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBs
ZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3Rl
YWQtb2YtaG92ZXItc2ltcGxlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvY2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9ob3Zlci13aGVu
LXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5
bmMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50
LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHls
ZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
Y29udGVudC1vYnNlcnZhdGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHVjay13aXRo
LWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R1Y2std2l0aC1ob3Zl
ci1zdGF0ZS5odG1sLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9i
c2VydmF0aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHls
ZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxj
LXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJl
bGFsYy5odG1sLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2Vy
dmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
dmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92
aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXIuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5n
ZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXIuaHRtbC4KKwogMjAxOS0wMy0wNyAgSm9obiBX
aWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZSBMb2FkIFN0
YXRpc3RpY3M6IE1ha2UgaXQgcG9zc2libGUgdG8gcHVyZ2Ugb25seSBzY3JpcHQtYWNjZXNzaWJs
ZSBjb29raWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
Y2xpY2staW5zdGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZhMzJkYmJiOTk1ODdmOWVi
M2MwODNhZGZiOTI5MzQ5MmZlOGE0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2staW5z
dGVhZC1vZi1ob3Zlci1zaW1wbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi1QQVNTIGlmIGNsaWNrZWQuCi1jbGlja2VkCi10b29sdGlwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2staW5zdGVhZC1vZi1ob3Zlci1z
aW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1pbnN0
ZWFkLW9mLWhvdmVyLXNpbXBsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
YjQyMzhlNDBmZjI5M2YxZjU5ZjUwZTgzMjY4NzZkZDZhYTlmOGJhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5UaGlzIHRlc3QgdGhhdCB3
ZSB0cmlnZ2VyIGNsaWNrIHdoZW4gaG92ZXIgd291bGQgbm90IGRpc3BsYXkgbm9uLWNsaWNrYWJs
ZSBjb250ZW50LjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jh
c2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLSN0YXB0aGlzIHsKLSAgICB3aWR0
aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBib3JkZXI6IDFweCBzb2xpZCBncmVl
bjsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLQotICAgIGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKLSAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOwotICAg
IGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7Ci0KLQlhd2FpdCB0YXBBdFBvaW50
KHgsIHkpOwotCi0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlmIGNs
aWNrZWQuPC9kaXY+Ci08cHJlIGlkPXJlc3VsdD48L3ByZT4KLTxzY3JpcHQ+Ci10YXB0aGlzLmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLQlsZXQg
bmV3Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotCW5ld0NvbnRlbnQu
aW5uZXJIVE1MID0gInRvb2x0aXAiOwotCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobmV3Q29u
dGVudCk7CQkKLX0sIGZhbHNlKTsKLQotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGZ1bmN0aW9uKCBldmVudCApIHsgICAKLQlyZXN1bHQuaW5uZXJIVE1MID0gImNsaWNrZWQiOwot
fSwgZmFsc2UpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1p
bnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1pbnN0ZWFkLW9mLWhvdmVy
LXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhMzJkYmJiOTk1ODdmOWViM2MwODNh
ZGZiOTI5MzQ5MmZlOGE0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92ZXIt
c2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1BBU1MgaWYgY2xpY2tlZC4KK2Ns
aWNrZWQKK3Rvb2x0aXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2NsaWNrLWluc3RlYWQtb2YtaG92ZXItc2ltcGxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlv
bi9jbGljay1pbnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0Y2NmOWI0
YTFlN2E5NzU1YmExMjY1NjU5ZGEzZmI0MWFjZWI0OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9jbGljay1p
bnN0ZWFkLW9mLWhvdmVyLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorPGhl
YWQ+Cis8dGl0bGU+VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dlciBjbGljayB3aGVuIGhvdmVyIHdv
dWxkIG5vdCBkaXNwbGF5IG5vbi1jbGlja2FibGUgY29udGVudC48L3RpdGxlPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGU+CisjdGFwdGhpcyB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAw
cHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4K
K2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAh
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZCh0cnVlKTsKKworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0
aCAvIDI7CisgICAgbGV0IHkgPSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKKworCWF3YWl0
IHRhcEF0UG9pbnQoeCwgeSk7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD10YXB0aGlz
PlBBU1MgaWYgY2xpY2tlZC48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJlPgorPHNjcmlwdD4K
K3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkg
eyAgIAorCWxldCBuZXdDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisJ
bmV3Q29udGVudC5pbm5lckhUTUwgPSAidG9vbHRpcCI7CisJZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChuZXdDb250ZW50KTsJCQorfSwgZmFsc2UpOworCit0YXB0aGlzLmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorCXJlc3VsdC5pbm5lckhUTUwgPSAi
Y2xpY2tlZCI7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0
aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2hvdmVyLXdo
ZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2U2ODUz
NjBmZWI5NzViZTQwZDcwYmNjNzY4NmVhMTA2MDlkZTlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92ZXIt
d2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAor
UEFTUyBpZiBubyAnY2xpY2tlZCcgdGV4dCBpcyBzaG93biBiZWxvdy4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vaG92
ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdl
LWlzLWFzeW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM2M2Y3MjY3OTRiZjFlMDBkYWQ3ZDY4YTM1MTIz
MDZmMjJkMzVhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFz
eW5jLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRl
c3QgdGhhdCB3ZSB0cmlnZ2VyIGhvdmVyIHdoZW4gdGhlIGNvbnRlbnQgY2hhbmdlIGlzIGFzeW5j
LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdl
c3R1cmVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXB0aGlzIHsKKyAgICB3aWR0aDogNDAw
cHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30K
KworI2hpZGRlbkZpcnN0IHsKKyAgICB2aXNpYmlsaXR5OiBoaWRkZW47CisgICAgd2lkdGg6IDEw
MHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9
Cis8L3N0eWxlPgorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKCF3
aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCh0cnVlKTsKKworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
bGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIGxldCB4ID0g
cmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7CisgICAgbGV0IHkgPSByZWN0LnRvcCArIHJlY3Qu
aGVpZ2h0IC8gMjsKKworICAgIGF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlm
IG5vICdjbGlja2VkJyB0ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2PgorPGRpdiBpZD1oaWRkZW5G
aXJzdD48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJlPgorPHNjcmlwdD4KK3RhcHRoaXMuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgeworICAgIC8vIDEu
IEluc3RhbGwgYSB0aW1lciBvbiBob3ZlcgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIC8vIDIuIFRyaWdnZXIgYSBub24tZm9yY2luZyBzdHlsZSBjaGFuZ2UKKyAgICAgICAg
aGlkZGVuRmlyc3Quc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKKyAgICAgICAgLy8gMy4g
SW5zdGFsbCBhIHRpbWVyIGZvciBzdHlsZSByZWNhbGMKKyAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9LCAxMCk7CisgICAgfSwgMCk7Cit9LCBmYWxzZSk7CisK
K2hpZGRlbkZpcnN0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkg
eyAgIAorICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Cit9LCBmYWxzZSk7CisKK3Rh
cHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisg
ICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsKK30sIGZhbHNlKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZh
dGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWZh
ZTUzMWZiYmEyZDdjYjE5OWY4ZWI5OTc4NDdhMTA4MWQ5NThkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R1
Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlm
IGNsaWNrZWQuCitjbGlja2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9zdHVjay13aXRoLWhvdmVyLXN0YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi9z
dHVjay13aXRoLWhvdmVyLXN0YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M1OWYzMWJlYTVmOTA2MzQ5
ZWQ0MGM3ZTQ2YjU1NDQ5MmJjNjgwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0aW9uL3N0dWNrLXdpdGgtaG92ZXIt
c3RhdGUuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRoaXMg
dGVzdCB0aGF0IHdlIHRyaWdnZXIgY2xpY2sgd2hlbiBob3ZlciB3b3VsZCBub3QgZGlzcGxheSBu
b24tY2xpY2thYmxlIGNvbnRlbnQuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcHRo
aXMgeworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJvcmRlcjog
MXB4IHNvbGlkIGdyZWVuOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiB0
ZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldENvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQodHJ1
ZSk7CisKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworICAgIGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKTsKKyAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5
ID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7CisKKwlhd2FpdCB0YXBBdFBvaW50KHgsIHkp
OworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlmIGNsaWNrZWQu
PC9kaXY+Cis8cHJlIGlkPXJlc3VsdD48L3ByZT4KKzxzY3JpcHQ+Cit0YXB0aGlzLmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVudCApIHsKKwljbGVhclRpbWVvdXQo
c2V0VGltZW91dChmdW5jdGlvbigpIHsgdGFwdGhpcy5pbm5lckhUTUwgPSAic2hvdWxkIG5vdCBz
ZWUgdGhpcyI7IH0sIDUwKSk7Cit9LCBmYWxzZSk7CisKK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisJcmVzdWx0LmlubmVySFRNTCA9ICJj
bGlja2VkIjsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRp
b24vc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vc3R5
bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3N2UzYTMxZTRkMjc1OTNhYTk0ZGJkNjM3YTQ1M2FmOGNlZGRkNzgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY29udGVudC1vYnNlcnZh
dGlvbi9zdHlsZS1yZWNhbGMtc2NoZWR1bGUtYW5kLWZvcmNlLXJlbGFsYy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyIEBACitQQVNTIGlmICdjbGlja2VkJyB0ZXh0IGlzIHNob3duIGJlbG93Lgor
Y2xpY2tlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Nv
bnRlbnQtb2JzZXJ2YXRpb24vc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0
aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzIxMDY5MzYwODM3MWRhYjE4NjA1NDI1Yjc1MDZmODBjNGQ2OWIwMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0
aW9uL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLmh0bWwKQEAgLTAsMCAr
MSw2OCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3QgdGhhdCB3ZSB0cmlnZ2Vy
IGhvdmVyIHdoZW4gdGhlIGNvbnRlbnQgY2hhbmdlIHN0YXJ0cyBhcyBhc3luYyBidXQgaXQgdHVy
bnMgaW50byBhIHN5bmMgc3R5bGUgcmVjYWxjLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyN0YXB0aGlzIHsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30KKworI3N0YXlzSGlkZGVuIHsKKyAgICB2aXNpYmls
aXR5OiBoaWRkZW47CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2FzeW5jIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q29udGVudENoYW5nZU9ic2VydmVyRW5h
YmxlZCh0cnVlKTsKKworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7Cisg
ICAgbGV0IHkgPSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKKworICAgIGF3YWl0IHRhcEF0
UG9pbnQoeCwgeSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KKzxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlmICdjbGlja2VkJyB0ZXh0IGlzIHNob3duIGJlbG93
LjwvZGl2PgorPGRpdiBpZD1zdGF5c0hpZGRlbj48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJl
PgorPHNjcmlwdD4KK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rp
b24oIGV2ZW50ICkgeworICAgIC8vIDEuIEluc3RhbGwgYSB0aW1lciBvbiBob3ZlcgorICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIDIuIFRyaWdnZXIgc29tZSBub24tZm9y
Y2luZyAobm9uLXZpc2liaWxpdHkpIHN0eWxlIGNoYW5nZSB3aXRoIGZvcmNpbmcgb2Zmc2V0SGVp
Z2h0LgorICAgICAgICBzdGF5c0hpZGRlbi5zdHlsZS5tYXJnaW5MZWZ0ID0gIjVweCI7CisKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgfSwgMCk7CisgICAgLy8gMy4g
SW5zdGFsbCBhIGxvbmdlciwgZW1wdHkgdGltZXIuCisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICB9LCA1KTsKK30sIGZhbHNlKTsKKworc3RheXNIaWRkZW4uYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9
ICJjbGlja2VkIGhpZGRlbiI7Cit9LCBmYWxzZSk7CisKK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9
ICJjbGlja2VkIjsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9LCAwKTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRp
b24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0
aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjZkYjRjOTQwOGE2YzAzMTJkZDBlMmQ0ODVjMDFiODM1ZTdjZjkz
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9j
b250ZW50LW9ic2VydmF0aW9uL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29u
ZC10aW1lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIGlmICdjbGlja2VkJyB0
ZXh0IGlzIG5vdCBzaG93biBiZWxvdy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFw
cGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvY29udGVudC1vYnNlcnZhdGlvbi92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0
LXRoZS1zZWNvbmQtdGltZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjQwYTE4ODU2ZDkyZWUyNTRjNmIz
OGVlNWRhNzAxOTBhMjBjNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vdmlzaWJpbGl0eS1jaGFuZ2UtaGFw
cGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPGh0bWw+Cis8
aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoZSBjYXNlIHdoZW4gdGhlIHNlY29uZCB0aW1lciB0
cmlnZ2VycyB2aXNpYmxlIGNvbnRlbnQgY2hhbmdlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorI3RhcHRoaXMgeworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAg
IGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworfQorCisjYmVjb21lc1Zpc2libGUgeworICAgIHZp
c2liaWxpdHk6IGhpZGRlbjsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorYXN5
bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1cm47CisJaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisJCWludGVybmFscy5zZXR0aW5ncy5zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVk
KHRydWUpOworCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisKKyAgICBsZXQgcmVjdCA9IHRhcHRoaXMuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CisgICAgbGV0IHggPSByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMjsKKyAgICBs
ZXQgeSA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyOworCisgICAgYXdhaXQgdGFwQXRQb2lu
dCh4LCB5KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgor
PGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgJ2NsaWNrZWQnIHRleHQgaXMgbm90IHNob3duIGJlbG93
LjwvZGl2PgorPGRpdiBpZD1iZWNvbWVzVmlzaWJsZT48L2Rpdj4KKzxwcmUgaWQ9cmVzdWx0Pjwv
cHJlPgorPHNjcmlwdD4KK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgZnVu
Y3Rpb24oIGV2ZW50ICkgeworICAgIC8vIDEuIEluc3RhbGwgMiB0aW1lcnMgb24gaG92ZXIKKyAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAvLyAyLiBUcmlnZ2VyIHNvbWUgbm9u
LXZpc2liaWxpdHkgc3R5bGUgY2hhbmdlIHdpdGggZm9yY2luZyBvZmZzZXRIZWlnaHQuCisgICAg
ICAgIGJlY29tZXNWaXNpYmxlLnN0eWxlLm1hcmdpbkxlZnQgPSAiNXB4IjsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgfSwgMCk7CisgICAgLy8gMy4gSW5zdGFsbCBh
IGxvbmdlciB0aW1lciB3aXRoIHZpc2liaWxpdHkgY2hhbmdlLgorICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIGJlY29tZXNWaXNpYmxlLnN0eWxlLnZpc2liaWxpdHkgPSAidmlz
aWJsZSI7CisgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpLCAwKTsKKyAgICB9LCAyMCk7Cit9LCBmYWxzZSk7CisKK2JlY29tZXNWaXNpYmxl
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorICAgIHJl
c3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCBoaWRkZW4iOworfSwgZmFsc2UpOworCit0YXB0aGlz
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAorICAgIHJl
c3VsdC5pbm5lckhUTUwgPSAiY2xpY2tlZCI7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9ob3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaG92ZXItd2hlbi1zdHlsZS1jaGFuZ2UtaXMtYXN5
bmMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Y2U2ODUzNjBm
ZWI5NzViZTQwZDcwYmNjNzY4NmVhMTA2MDlkZTlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9o
b3Zlci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLVBBU1MgaWYgbm8gJ2NsaWNrZWQnIHRleHQgaXMgc2hvd24gYmVs
b3cuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9ob3Zl
ci13aGVuLXN0eWxlLWNoYW5nZS1pcy1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdlLWlzLWFzeW5jLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkMDY4NjFmNjk5NGM4M2NkMDI5ZmQyODQ2OTA1MjIx
MzQwM2VjMzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2hvdmVyLXdoZW4tc3R5bGUtY2hhbmdl
LWlzLWFzeW5jLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdnZXIgaG92ZXIgd2hlbiB0aGUgY29u
dGVudCBjaGFuZ2UgaXMgYXN5bmMuPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotI3RhcHRoaXMg
ewotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJvcmRlcjogMXB4
IHNvbGlkIGdyZWVuOwotfQotCi0jaGlkZGVuRmlyc3QgewotICAgIHZpc2liaWxpdHk6IGhpZGRl
bjsKLSAgICB3aWR0aDogMTAwcHg7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotYXN5bmMgZnVuY3Rpb24gdGVz
dCgpIHsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KQotICAgICAgICByZXR1cm47Ci0KLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgIGxldCByZWN0ID0gdGFwdGhpcy5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBsZXQgeCA9IHJlY3QubGVmdCArIHJlY3Qud2lk
dGggLyAyOwotICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7Ci0KLSAgICBh
d2FpdCB0YXBBdFBvaW50KHgsIHkpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InRlc3QoKSI+Ci08ZGl2IGlkPXRhcHRoaXM+UEFTUyBpZiBubyAnY2xpY2tlZCcgdGV4dCBp
cyBzaG93biBiZWxvdy48L2Rpdj4KLTxkaXYgaWQ9aGlkZGVuRmlyc3Q+PC9kaXY+Ci08cHJlIGlk
PXJlc3VsdD48L3ByZT4KLTxzY3JpcHQ+Ci10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
b3ZlciIsIGZ1bmN0aW9uKCBldmVudCApIHsKLSAgICAvLyAxLiBJbnN0YWxsIGEgdGltZXIgb24g
aG92ZXIKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAvLyAyLiBUcmlnZ2Vy
IGEgbm9uLWZvcmNpbmcgc3R5bGUgY2hhbmdlCi0gICAgICAgIGhpZGRlbkZpcnN0LnN0eWxlLnZp
c2liaWxpdHkgPSAidmlzaWJsZSI7Ci0gICAgICAgIC8vIDMuIEluc3RhbGwgYSB0aW1lciBmb3Ig
c3R5bGUgcmVjYWxjCi0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAg
ICAgfSwgMTApOwotICAgIH0sIDApOwotfSwgZmFsc2UpOwotCi1oaWRkZW5GaXJzdC5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICByZXN1bHQuaW5u
ZXJIVE1MID0gImNsaWNrZWQiOwotfSwgZmFsc2UpOwotCi10YXB0aGlzLmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgZnVuY3Rpb24oIGV2ZW50ICkgeyAgIAotICAgIHJlc3VsdC5pbm5lckhUTUwg
PSAiY2xpY2tlZCI7Ci19LCBmYWxzZSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHVjay13aXRoLWhv
dmVyLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9zdHVjay13aXRoLWhvdmVyLXN0YXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjVmYWU1MzFmYmJhMmQ3Y2IxOTlmOGViOTk3ODQ3YTEwODFkOTU4ZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R1Y2std2l0aC1ob3Zlci1zdGF0ZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVBBU1MgaWYgY2xpY2tlZC4KLWNsaWNrZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zdHVjay13aXRo
LWhvdmVyLXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R1
Y2std2l0aC1ob3Zlci1zdGF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
N2QwZDhkOTcyYmY0NDg4NzEzMDAyZjM1NTEzNGJmZDdhNjA2ZDUwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9zdHVjay13aXRoLWhvdmVyLXN0YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0
MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlRoaXMgdGVzdCB0aGF0IHdlIHRyaWdn
ZXIgY2xpY2sgd2hlbiBob3ZlciB3b3VsZCBub3QgZGlzcGxheSBub24tY2xpY2thYmxlIGNvbnRl
bnQuPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2Vz
dHVyZXMuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotI3RhcHRoaXMgewotICAgIHdpZHRoOiA0MDBw
eDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwotfQot
PC9zdHlsZT4KLTxzY3JpcHQ+Ci1hc3luYyBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICghd2lu
ZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotCi0gICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOwotICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7Ci0gICAgbGV0IHkg
PSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKLQotCWF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7
Ci0KLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGRpdiBpZD10YXB0aGlzPlBBU1MgaWYgY2xpY2tlZC48
L2Rpdj4KLTxwcmUgaWQ9cmVzdWx0PjwvcHJlPgotPHNjcmlwdD4KLXRhcHRoaXMuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgewotCWNsZWFyVGltZW91dChz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0YXB0aGlzLmlubmVySFRNTCA9ICJzaG91bGQgbm90IHNl
ZSB0aGlzIjsgfSwgNTApKTsKLX0sIGZhbHNlKTsKLQotdGFwdGhpcy5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLQlyZXN1bHQuaW5uZXJIVE1MID0gImNs
aWNrZWQiOwotfSwgZmFsc2UpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVjYWxjLXNjaGVk
dWxlLWFuZC1mb3JjZS1yZWxhbGMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3N0eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc3ZTNhMzFlNGQyNzU5M2Fh
OTRkYmQ2MzdhNDUzYWY4Y2VkZGQ3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVj
YWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1QQVNTIGlmICdjbGlja2VkJyB0ZXh0IGlzIHNob3duIGJlbG93Lgot
Y2xpY2tlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3N0
eWxlLXJlY2FsYy1zY2hlZHVsZS1hbmQtZm9yY2UtcmVsYWxjLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVjYWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxh
bGMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ1M2M2ZWYwZjVjY2VmODA0
YzQxMDQ5ZDRiYmRiMjIxMDA0NzhkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc3R5bGUtcmVj
YWxjLXNjaGVkdWxlLWFuZC1mb3JjZS1yZWxhbGMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+VGhpcyB0ZXN0IHRoYXQgd2UgdHJpZ2dl
ciBob3ZlciB3aGVuIHRoZSBjb250ZW50IGNoYW5nZSBzdGFydHMgYXMgYXN5bmMgYnV0IGl0IHR1
cm5zIGludG8gYSBzeW5jIHN0eWxlIHJlY2FsYy48L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0j
dGFwdGhpcyB7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci0gICAgYm9y
ZGVyOiAxcHggc29saWQgZ3JlZW47Ci19Ci0KLSNzdGF5c0hpZGRlbiB7Ci0gICAgdmlzaWJpbGl0
eTogaGlkZGVuOwotICAgIHdpZHRoOiAxMDBweDsKLSAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOwotfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1hc3luYyBmdW5j
dGlvbiB0ZXN0KCkgewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgbGV0IHJlY3QgPSB0
YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsg
cmVjdC53aWR0aCAvIDI7Ci0gICAgbGV0IHkgPSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsK
LQotICAgIGF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0idGVzdCgpIj4KLTxkaXYgaWQ9dGFwdGhpcz5QQVNTIGlmICdjbGlja2VkJyB0
ZXh0IGlzIHNob3duIGJlbG93LjwvZGl2PgotPGRpdiBpZD1zdGF5c0hpZGRlbj48L2Rpdj4KLTxw
cmUgaWQ9cmVzdWx0PjwvcHJlPgotPHNjcmlwdD4KLXRhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2VvdmVyIiwgZnVuY3Rpb24oIGV2ZW50ICkgewotICAgIC8vIDEuIEluc3RhbGwgYSB0aW1l
ciBvbiBob3ZlcgotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIDIuIFRy
aWdnZXIgc29tZSBub24tZm9yY2luZyAobm9uLXZpc2liaWxpdHkpIHN0eWxlIGNoYW5nZSB3aXRo
IGZvcmNpbmcgb2Zmc2V0SGVpZ2h0LgotICAgICAgICBzdGF5c0hpZGRlbi5zdHlsZS5tYXJnaW5M
ZWZ0ID0gIjVweCI7Ci0KLSAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7Ci0gICAg
fSwgMCk7Ci0gICAgLy8gMy4gSW5zdGFsbCBhIGxvbmdlciwgZW1wdHkgdGltZXIuCi0gICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKLSAgICB9LCA1KTsKLX0sIGZhbHNlKTsKLQotc3RheXNIaWRk
ZW4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCi0gICAg
cmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIGhpZGRlbiI7Ci19LCBmYWxzZSk7Ci0KLXRhcHRo
aXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCi0gICAg
cmVzdWx0LmlubmVySFRNTCA9ICJjbGlja2VkIjsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLSAgICB9LCAwKTsKLX0sIGZhbHNlKTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFuZ2Ut
aGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjZkYjRjOTQwOGE2YzAzMTJkZDBlMmQ0ODVjMDFiODM1ZTdjZjkzZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUt
c2Vjb25kLXRpbWVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
UEFTUyBpZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBw
ZW5zLWF0LXRoZS1zZWNvbmQtdGltZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXIuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2MxNWI3ODBlODlkMjI2NzU5MGYyN2Jl
OTE3ZTQ4ZTQyNWMzODRmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFu
Z2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlRoaXMgdGVzdHMgdGhlIGNhc2Ugd2hl
biB0aGUgc2Vjb25kIHRpbWVyIHRyaWdnZXJzIHZpc2libGUgY29udGVudCBjaGFuZ2U8L3RpdGxl
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+
PC9zY3JpcHQ+Ci08c3R5bGU+Ci0jdGFwdGhpcyB7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhl
aWdodDogNDAwcHg7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Ci19Ci0KLSNiZWNvbWVz
VmlzaWJsZSB7Ci0gICAgdmlzaWJpbGl0eTogaGlkZGVuOwotICAgIHdpZHRoOiAxMDBweDsKLSAg
ICBoZWlnaHQ6IDEwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotfQotPC9zdHls
ZT4KLTxzY3JpcHQ+Ci1hc3luYyBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotCi0gICAgbGV0IHJlY3QgPSB0YXB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwot
ICAgIGxldCB4ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDI7Ci0gICAgbGV0IHkgPSByZWN0
LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjsKLQotICAgIGF3YWl0IHRhcEF0UG9pbnQoeCwgeSk7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxkaXYgaWQ9dGFw
dGhpcz5QQVNTIGlmICdjbGlja2VkJyB0ZXh0IGlzIG5vdCBzaG93biBiZWxvdy48L2Rpdj4KLTxk
aXYgaWQ9YmVjb21lc1Zpc2libGU+PC9kaXY+Ci08cHJlIGlkPXJlc3VsdD48L3ByZT4KLTxzY3Jp
cHQ+Ci10YXB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCBldmVu
dCApIHsKLSAgICAvLyAxLiBJbnN0YWxsIDIgdGltZXJzIG9uIGhvdmVyCi0gICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICAgICAgLy8gMi4gVHJpZ2dlciBzb21lIG5vbi12aXNpYmlsaXR5
IHN0eWxlIGNoYW5nZSB3aXRoIGZvcmNpbmcgb2Zmc2V0SGVpZ2h0LgotICAgICAgICBiZWNvbWVz
VmlzaWJsZS5zdHlsZS5tYXJnaW5MZWZ0ID0gIjVweCI7Ci0gICAgICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0SGVpZ2h0OwotICAgIH0sIDApOwotICAgIC8vIDMuIEluc3RhbGwgYSBsb25nZXIgdGlt
ZXIgd2l0aCB2aXNpYmlsaXR5IGNoYW5nZS4KLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewot
ICAgICAgICBiZWNvbWVzVmlzaWJsZS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwotICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSwg
MCk7Ci0gICAgfSwgMjApOwotfSwgZmFsc2UpOwotCi1iZWNvbWVzVmlzaWJsZS5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICByZXN1bHQuaW5uZXJI
VE1MID0gImNsaWNrZWQgaGlkZGVuIjsKLX0sIGZhbHNlKTsKLQotdGFwdGhpcy5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCBldmVudCApIHsgICAKLSAgICByZXN1bHQuaW5uZXJI
VE1MID0gImNsaWNrZWQiOwotfSwgZmFsc2UpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>