<?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>226706</bug_id>
          
          <creation_ts>2021-06-06 21:32:50 -0700</creation_ts>
          <short_desc>Upstream WebKit support for Live Text</short_desc>
          <delta_ts>2021-06-07 21:34:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yusufalaaothman001</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767298</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-06 21:32:50 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767299</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-06 21:33:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/78933684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767489</commentid>
    <comment_count>2</comment_count>
      <attachid>430761</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-07 10:46:42 -0700</bug_when>
    <thetext>Created attachment 430761
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767492</commentid>
    <comment_count>3</comment_count>
      <attachid>430762</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-07 11:13:44 -0700</bug_when>
    <thetext>Created attachment 430762
Fix watchOS/tvOS builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767495</commentid>
    <comment_count>4</comment_count>
      <attachid>430765</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-07 11:45:36 -0700</bug_when>
    <thetext>Created attachment 430765
Really fix watchOS/tvOS builds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767504</commentid>
    <comment_count>5</comment_count>
      <attachid>430769</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-07 11:59:51 -0700</bug_when>
    <thetext>Created attachment 430769
Revert misc. changes to localizable strings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767518</commentid>
    <comment_count>6</comment_count>
      <attachid>430774</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-07 12:50:20 -0700</bug_when>
    <thetext>Created attachment 430774
Fix test expectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767556</commentid>
    <comment_count>7</comment_count>
      <attachid>430774</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-07 14:36:12 -0700</bug_when>
    <thetext>Comment on attachment 430774
Fix test expectations

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767576</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-07 15:11:37 -0700</bug_when>
    <thetext>Committed r278575 (238571@main): &lt;https://commits.webkit.org/238571@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430774.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430761</attachid>
            <date>2021-06-07 10:46:42 -0700</date>
            <delta_ts>2021-06-07 11:28:00 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-226706-20210607104641.patch</filename>
            <type>text/plain</type>
            <size>352948</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhNDVlZjMwMWIzY2Y3NzBlNjljYWI1
OTA5MGQ0YmE5ZDM5YWJiNWUuLjg5NWZhNDVkZDgyNGM2NjIxOTU2MDU5MTBlYTAwZmE1N2ZiZjc2
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9y
IExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODkzMzY4ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmg6CisKKyAgICAgICAgTW92ZSB0aGUgZmVhdHVyZSBmbGFnIG91dCBvZiBXZWJLaXRB
ZGRpdGlvbnMgYW5kIGludG8gT3BlblNvdXJjZSBhcyBWSVNVQUxfSU5URUxMSUdFTkNFLgorCiAy
MDIxLTA2LTA3ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbV1RGXVtHU3RyZWFtZXJdIEZpeCBjbGFuZyBUU0Egd2FybmluZ3MgaW4gV1RGOjpEYXRh
TXV0ZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBjMWM3MTFlMDY3MDYyNzM5ZTcyZDlhMGQyZmVkNWFiOTFlNDIy
Y2Q3Li44OGZjZGJkYTkwZGFjNWI5NGYzNjc3YmQ2NTcxZGFlMWU4ODg1YWU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTAxIEBACisyMDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZvciBMaXZl
IFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzg5MzM2ODQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQg
Zm9yIHRoZSBmYW1pbHkgb2YgImxpdmUgdGV4dCIgYW5kIHZpc3VhbCBpbnRlbGxpZ2VuY2UgZmVh
dHVyZXMgZnJvbSBXZWJLaXRBZGRpdGlvbnMuCisgICAgICAgIFRoaXMgZW5jb21wYXNzZXMgdGhl
IGZvbGxvd2luZyBmZWF0dXJlcyBvbiBtYWNPUyAxMiBhbmQgaU9TIDE1OgorCisgICAgICAgIC0g
VGV4dCBzZWxlY3Rpb24gYW5kIGludGVyYWN0aW9uIGluIGltYWdlcy4KKyAgICAgICAgLSBEYXRh
IGRldGVjdG9ycyBpbiBpbWFnZXMuCisgICAgICAgIC0gVmlzdWFsIHNlYXJjaCAoTG9vayBVcCkg
dmlhIGNvbnRleHQgbWVudSBpbiBpbWFnZXMuCisKKyAgICAgICAgVG8gZG8gdGhpcywgd2UgcmVu
YW1lIHRoZSBJTUFHRV9FWFRSQUNUSU9OIGZlYXR1cmUgZmxhZyAoYW5kIGFueSBvdGhlciBzaW1p
bGFyIHN5bWJvbCBuYW1lcyB0aGF0IHJlZmVyZW5jZQorICAgICAgICAiaW1hZ2UgZXh0cmFjdGlv
biIgaW4gc29tZSBjYXBhY2l0eSkgdG8gdGhlaXIgcmVhbCBuYW1lcyBpbiBtYWNPUyBhbmQgaU9T
OgorCisgICAgICAgIC0gIlRleHQgcmVjb2duaXRpb24iLCBpbiBjb2RlIHRoYXQgc3VwcG9ydHMg
YXV0b21hdGljIE9DUiBhbmQgZGF0YSBkZXRlY3RvcnMgaW4gaW1hZ2VzLgorICAgICAgICAtICJM
b29rIFVwIiwgaW4gY29kZSB0aGF0IHJlZmVyZW5jZXMgdGhlIGNvbnRleHQgbWVudSBhY3Rpb24g
dG8gaW52b2tlIHZpc3VhbCBzZWFyY2guCisgICAgICAgIC0gIlZpc3VhbCBTZWFyY2giLCBpbiBj
b2RlIHRoYXQgbWFuYWdlcyBRdWlja0xvb2sgaW50ZWdyYXRpb24gZm9yIGludm9raW5nIHZpc3Vh
bCBzZWFyY2guCisgICAgICAgIC0gIkltYWdlIGFuYWx5c2lzIiwgaW4gY29kZSB0aGF0IGRpcmVj
dGx5IGludGVncmF0ZXMgd2l0aCBWS0ltYWdlQW5hbHl6ZXIgYW5kIFZLSW1hZ2VBbmFseXplclJl
cXVlc3QuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFz
aWMtaW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1p
cy1pZGVtcG90ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13
aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJs
YXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mv
cmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
aW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkt
aW5zaWRlLWxpbmsuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1h
Z2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVy
bGF5LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVy
bGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2Ut
ZHJhZy0yLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
bWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNs
aWNrLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFj
L3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3Bh
cmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbAorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvY29jb2Ev
RGF0YURldGVjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRGb3JJbWFn
ZU92ZXJsYXkpOgorICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisgICAg
ICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVu
dDo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdCk6IERlbGV0ZWQuCisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlcXVlc3RUZXh0UmVjb2duaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6cG9w
dWxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09y
RW5hYmxlSWZOZWVkZWQgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjptb3VzZU1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBk
YXRlTW91c2VFdmVudFRhcmdldE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjptX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmltYWdlRXh0cmFjdGlvblRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICogcGFnZS9RdWlya3MuY3BwOgorICAg
ICAgICAqIHBhZ2UvUXVpcmtzLmg6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDb250ZXh0TWVudUFjdGlvbik6CisgICAg
ICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL1RleHRSZWNvZ25pdGlvblJlc3Vs
dC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSW1hZ2VFeHRyYWN0aW9u
UmVzdWx0LmguCisKKyAgICAgICAgUmVuYW1lIHRoZSBmb2xsb3dpbmc6CisgICAgICAgIC0gSW1h
Z2VFeHRyYWN0aW9uUmVzdWx0ID0+IFRleHRSZWNvZ25pdGlvblJlc3VsdAorICAgICAgICAtIElt
YWdlRXh0cmFjdGlvblRleHREYXRhID0+IFRleHRSZWNvZ25pdGlvbldvcmREYXRhCisgICAgICAg
IC0gSW1hZ2VFeHRyYWN0aW9uTGluZURhdGEgPT4gVGV4dFJlY29nbml0aW9uTGluZURhdGEKKyAg
ICAgICAgLSBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvID0+IFRleHRSZWNvZ25pdGlv
bkRhdGFEZXRlY3RvcgorCisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25Xb3JkRGF0
YTo6VGV4dFJlY29nbml0aW9uV29yZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29n
bml0aW9uV29yZERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVj
b2duaXRpb25Xb3JkRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25p
dGlvbkxpbmVEYXRhOjpUZXh0UmVjb2duaXRpb25MaW5lRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25MaW5lRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkxpbmVEYXRhOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0Ojppc0VtcHR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdDo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFrZURhdGFGb3JMaW5l
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aW5zdGFsbEltYWdlT3ZlcmxheSk6CisK
IDIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBGaW5kLWluLXBhZ2Ugc2hvdWxkIG1hdGNoIHRleHQgaW5zaWRlIGltYWdl
IG92ZXJsYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmNmExZTg5M2E5OGIwYzhhMjJiZjgwN2IzZGI3OWVkMzJk
NGQ3ODkuLjc1NTMxMDI3MmIxY2QzODUyMGRkZDZiZTEzNTMxNzUzNWZlMDE3NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkxIEBACisyMDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZvciBMaXZl
IFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzg5MzM2ODQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUvQ2hhbmdlTG9nIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rp
b25VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvVGV4dFJl
Y29nbml0aW9uVXRpbGl0aWVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL0ltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oLgorICAgICAgICAqIFBsYXRmb3JtL2Nv
Y29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbTogQWRkZWQuCisKKyAgICAgICAgUmVuYW1l
IEltYWdlRXh0cmFjdGlvblV0aWxpdGllcyB0byBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuCisK
KyAgICAgICAgKFdlYktpdDo6ZmxvYXRRdWFkKToKKyAgICAgICAgKFdlYktpdDo6ZmxvYXRRdWFk
cyk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VUZXh0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAg
ICAoV2ViS2l0Ojppc0xpdmVUZXh0RW5hYmxlZCk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJL
aXQ6OnRvSW1wbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVy
c0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNv
Z25pdGlvbkRhdGFEZXRlY3Rvcj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6ZGVj
b2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJ
bWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUV4dHJhY3Rp
b25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBTaGFyZWQvVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0Lmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9JbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaC4KKyAgICAg
ICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmRlY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVj
dG9ySW5mbz46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz46OmRlY29kZSk6IERlbGV0ZWQuCisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9u
Lm1tOgorICAgICAgICAoK1tfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6
Y3VzdG9tVGl0bGU6YXNzaXN0YW50Ol0pOgorICAgICAgICAoK1tfV0tFbGVtZW50QWN0aW9uIGlt
YWdlRm9yRWxlbWVudEFjdGlvblR5cGU6XSk6CisKKyAgICAgICAgTm90ZSB0aGF0IHdlIG5lZWQg
dG8ga2VlcCB0aGUgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZSBTUEkgc3ltYm9sLCB0
byBhdm9pZCBicmVha2luZyBNb2JpbGVNYWlsLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhh
bmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorCisgICAgICAgIFJl
bmFtZSBgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZWAgdG8gYGhhbmRsZUNvbnRleHRNZW51
TG9va1VwSW1hZ2VgLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZW5zdXJlSW1hZ2VBbmFseXplcik6CisgICAgICAgIChXZWJLaXQ6
OmNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorCisgICAgICAgIFJlbmFtZSBgY29t
cHV0ZUNhblJldmVhbEltYWdlYCB0byBgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHNgLgor
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2NlcHRzUHJldmlld1BhbmVsQ29udHJv
bCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnQ6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmNvbXB1dGVDYW5SZXZlYWxJbWFnZSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlQ2FuUmV2ZWFsSW1h
Z2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVdpdGhJ
bWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBEZWxldGVkLgorCisgICAgICAgIFJlbmFtZSBgdXBkYXRl
V2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdGAgdG8gYHVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25S
ZXN1bHRgLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24pOiBEZWxldGVkLgorCisgICAgICAgIFJlbmFtZSBgcmVxdWVzdElt
YWdlRXh0cmFjdGlvbmAgdG8gYHJlcXVlc3RUZXh0UmVjb2duaXRpb25gLgorCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgorICAgICAgICAoLVtXS0FjdGlvblNo
ZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0Ol0pOgorICAgICAgICAoLVtX
S0FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDpdKToKKyAg
ICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5
cGU6ZWxlbWVudDpuZWVkc0ludGVyYWN0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJ
bnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlv
bl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVzXSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVjb2duaXplU2lt
dWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVxdWlyZUZhaWx1cmVPZkdlc3R1cmVSZWNv
Z25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNo
b3VsZEJlUmVxdWlyZWRUb0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgdGV4dEludGVyYWN0aW9uR2VzdHVyZTpzaG91bGRCZWdpbkF0UG9pbnQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6
d2l0aFNlbmRlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0YXJnZXRGb3JBY3Rpb246
d2l0aFNlbmRlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JNYWluRnJhbWVdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzaG91bGRE
ZWZlckdlc3R1cmVEdWVUb0ltYWdlQW5hbHlzaXM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkRGVmZXJPdGhlckdlc3R1cmVSZWNv
Z25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kcmFnSW50ZXJhY3Rpb246cHJl
cGFyZUZvclNlc3Npb246Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
ZW5kSW1hZ2VBbmFseXNpc0dlc3R1cmVEZWZlcnJhbDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfZG9BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNp
czpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmVzZW50VmlzdWFsU2VhcmNoUHJldmll
d0NvbnRyb2xsZXJGb3JJbWFnZTppbWFnZVVSTDp0aXRsZTppbWFnZUJvdW5kczphcHBlYXJhbmNl
QWN0aW9uczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2aWV3Q29udHJvbGxlcjpm
cmFtZUZvclByZXZpZXdJdGVtOmluU291cmNlVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwcmV2aWV3Q29udHJvbGxlcjp0cmFuc2l0aW9uSW1hZ2VGb3JQcmV2aWV3SXRlbTpjb250
ZW50UmVjdDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2aWV3Q29udHJvbGxlckRp
ZERpc21pc3M6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgbnVtYmVyT2ZQcmV2aWV3SXRl
bXNJblByZXZpZXdDb250cm9sbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZp
ZXdDb250cm9sbGVyOnByZXZpZXdJdGVtQXRJbmRleDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwcm92aWRlRGF0YUZvckl0ZW06XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZVNob3dUZXh0QWN0aW9uRm9yRWxlbWVudDpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaG93VGV4
dEZvckltYWdlOmltYWdlVVJMOnRpdGxlOmltYWdlQm91bmRzOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFj
dGlvbkZvckVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6bG9va1VwSW1hZ2U6aW1hZ2VVUkw6dGl0bGU6aW1hZ2VCb3VuZHM6XSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXplcl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGhhc1BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdF0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9zZXRVcEltYWdlQW5hbHlzaXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfdGVhckRvd25JbWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2Nh
bmNlbEltYWdlQW5hbHlzaXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjcmVhdGVJbWFn
ZUFuYWx5c2lzUmVxdWVzdDppbWFnZTppbWFnZVVSTDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDppbWFnZTpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyB2YWxpZGF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjpdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyByZXF1ZXN0VGV4dFJlY29nbml0aW9uOmltYWdlRGF0YTpj
b21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFnZUFuYWx5
c2lzR2VzdHVyZURpZEJlZ2luOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGltYWdlQW5h
bHlzaXNHZXN0dXJlRGlkRmFpbDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFnZUFu
YWx5c2lzR2VzdHVyZURpZFRpbWVPdXQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2lu
c2VydFRleHRGcm9tQ2FtZXJhRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBjYXB0dXJlVGV4dEZyb21DYW1lcmFGb3JXZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9jb250ZXh0TWVudUludGVyYWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2Nh
dGlvbjpjb21wbGV0aW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNvbnRpbnVlQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250ZXh0
TWVudUludGVyYWN0aW9uOndpbGxFbmRGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VFeHRyYWN0
aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbmRJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlRGVmZXJyYWw6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1h
Z2VFeHRyYWN0aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tJbWFn
ZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmguCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbTog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyLm1tLgorICAgICAgICAoLVtXS0ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplciBpbml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6XSk6CisgICAg
ICAgICgtW1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyIHNldFN0YXRlOl0pOgorCisg
ICAgICAgIFJlbmFtZSBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIHRvIFdLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyIChhbG9uZyB3aXRoIGFsbCBhZGphY2VudCBjbGFz
c2VzKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbXB1dGVDYW5SZXZl
YWxJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJj
aFByZXZpZXdDb250cm9sbGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbTogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdD
b250cm9sbGVyLm1tLgorICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
IGluaXRXaXRoUGFnZTppbWFnZURhdGE6dGl0bGU6aW1hZ2VVUkw6XSk6CisgICAgICAgICgtW1dL
VmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgYmVnaW5Db250cm9sOl0pOgorICAgICAgICAo
LVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGVuZENvbnRyb2w6XSk6CisgICAgICAg
ICgtW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgY2xvc2VQYW5lbElmTmVjZXNzYXJ5
XSk6CisgICAgICAgICgtW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgaXNDb250cm9s
bGluZzpdKToKKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBwcm92
aWRlRGF0YUZvckl0ZW06XSk6CisgICAgICAgICgtW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXIgbnVtYmVyT2ZQcmV2aWV3SXRlbXNJblByZXZpZXdQYW5lbDpdKToKKyAgICAgICAgKC1b
V0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBwcmV2aWV3UGFuZWw6cHJldmlld0l0ZW1B
dEluZGV4Ol0pOgorICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHBy
ZXZpZXdQYW5lbDppbml0aWFsQWN0aXZpdHlGb3JJdGVtOl0pOgorCisgICAgICAgIFJlbmFtZSBg
V0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlcmAgdG8gYFdLVmlzdWFsU2VhcmNoUHJl
dmlld0NvbnRyb2xsZXJgLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21J
dGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YmVnaW5QcmV2aWV3UGFuZWxDb250cm9sKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjplbmRQcmV2aWV3UGFuZWxDb250cm9sKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZVNoYXJlZFByZXZpZXdQYW5lbElmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93SW1hZ2VJblZpc3Vh
bFNlYXJjaFByZXZpZXdQYW5lbCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RUZXh0
UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RJ
bWFnZUV4dHJhY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3Vs
dCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0w
Ni0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIEZpbmQtaW4tcGFnZSBzaG91bGQgbWF0Y2ggdGV4dCBpbnNpZGUgaW1hZ2Ugb3Zlcmxh
eXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwYWMwNjMxNThjNjliMTYwMTYwZTgx
MjA5Y2NmMDBjNTE2MzIxY2ViLi5hZGRlMjU3ZDE0OWY5ODhjMDIwYjJjZTI4ZjA1YzQ2YmZiMzE0
NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEt
MDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
VXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9yIExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83ODkzMzY4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06IFJlcGxhY2UgSU1BR0VfRVhUUkFDVElP
TiB3aXRoIFZJU1VBTF9JTlRFTExJR0VOQ0UuCisKIDIwMjEtMDYtMDYgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVHVybiBUZXh0SXRlcmF0b3JCZWhh
dmlvckZsYWcgaW50byBhbiBlbnVtIGNsYXNzIGFuZCB3cmFwIGl0IGluIE9wdGlvblNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IDA3ZWQwMzI0ZjhiN2ZjMjJlM2Q2NTRi
MjY1NmRjMzcwOWY1ODc4MzYuLmMzZmJiMmJlZWExMzcyOGZlNWViMWFjMzY4MmJmNmQ5YzZiNGU0
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTY3OCwzICs2NzgsMTAg
QEAKICNpZiAhZGVmaW5lZChFTkFCTEVfREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NS
R0IpCiAjZGVmaW5lIEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQiAx
CiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2lmICFkZWZpbmVkKEVOQUJMRV9JTUFHRV9BTkFMWVNJUykKKyNkZWZpbmUgRU5BQkxF
X0lNQUdFX0FOQUxZU0lTIDEKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjEyZjE4MmMyZmIxMjU4MWU3
YmY5N2FhOWUwNWE2YzQ1M2ExZWMwYi4uOGJiZTcyNzdiMWIzN2QzMWMxMzZhMWNkMWVlN2QyNjll
YTIwYzY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNTM3Niw3ICs1Mzc2LDcgQEAKIAkJRjQ4MjIzMTMxRTM4NkUyNDAwNjZG
Qzc5IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFz
dGVib2FyZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0ODI0MzRCMjYwQzMzMDYwMDIyNDk3QyAvKiBJbWFnZU92ZXJsYXlDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyNDM0ODI2
MEMzMkYxMDAyMjQ5N0MgLyogSW1hZ2VPdmVybGF5Q29udHJvbGxlci5oICovOyB9OwogCQlGNDg1
NzBBNTI2NDRDNzZEMDBDMDVGNzEgLyogVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODU3MEE0MjY0NEM3
NkQwMEMwNUY3MSAvKiBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mby5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUY0OEI3RDUzMjVDMzQxRTYwMDlF
NzVERCAvKiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEI3RDUyMjVDMzQxRTYwMDlFNzVERCAvKiBJbWFnZUV4
dHJhY3Rpb25SZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlGNDhCN0Q1MzI1QzM0MUU2MDA5RTc1REQgLyogVGV4dFJlY29nbml0aW9uUmVz
dWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhC
N0Q1MjI1QzM0MUU2MDA5RTc1REQgLyogVGV4dFJlY29nbml0aW9uUmVzdWx0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBNkMyMTU2MjNC
NDAwQzY3NTJCIC8qIEZvbnRTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0OEQyQTZBMjE1NjIzQjQwMEM2NzUyQiAvKiBGb250U2hhZG93Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJB
N0UyMTU3MTgyNjAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyog
Rm9udEF0dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlGNDhEMkFBNTIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBQTMyMTU5NzQw
RDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTY4OTcsNyArMTY4OTcsNyBAQAogCQlGNDgzODk4MzFFMURE
RjJCMDA3NkI3RUEgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gRHVtcEVkaXRpbmdIaXN0b3J5LmpzOyBwYXRoID0gU2NyaXB0
cy9EdW1wRWRpdGluZ0hpc3RvcnkuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
ODM4OTg0MUUxRERGMkIwMDc2QjdFQSAvKiBFZGl0aW5nSGlzdG9yeVV0aWwuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBFZGl0aW5nSGlzdG9yeVV0aWwuanM7IHBh
dGggPSBTY3JpcHRzL0VkaXRpbmdIaXN0b3J5VXRpbC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ4NTcwQTQyNjQ0Qzc2RDAwQzA1RjcxIC8qIFRyYW5zbGF0aW9uQ29udGV4dE1l
bnVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0OEI3RDUyMjVDMzQxRTYwMDlFNzVERCAvKiBJ
bWFnZUV4dHJhY3Rpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OEI3RDUyMjVDMzQxRTYwMDlF
NzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29n
bml0aW9uUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OEQyQTZBMjE1
NjIzQjQwMEM2NzUyQiAvKiBGb250U2hhZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRTaGFkb3cu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBNzEyMTU2REMwQTAwQzY3NTJC
IC8qIEZvbnRBdHRyaWJ1dGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRBdHRyaWJ1dGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OEQyQTc1MjE1NkZFNTcwMEM2NzUyQiAvKiBG
b250QXR0cmlidXRlc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udEF0dHJpYnV0
ZXNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MDcxLDcgKzI4MDcx
LDYgQEAKIAkJCQlDRDYyRkI5NDFBRjAxOEU3MDAxMkVEN0QgLyogR2VuZXJpY1Rhc2tRdWV1ZS5o
ICovLAogCQkJCUE4NzQ4QkRGMTJDQkYyREMwMDFGQkE0MSAvKiBIYXNoVG9vbHMuaCAqLywKIAkJ
CQlCQzNCQzI5QjBFOTFBQjBGMDA4MzU1ODggLyogSG9zdFdpbmRvdy5oICovLAotCQkJCUY0OEI3
RDUyMjVDMzQxRTYwMDlFNzVERCAvKiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCAqLywKIAkJCQkx
QUUwMEQ1NzE4MkRBQzhEMDAwODdERDcgLyogS2V5ZWRDb2RpbmcuaCAqLywKIAkJCQlFMTVGRjdE
NDE4Qzk1NTM4MDBGRTRDODcgLyogS2V5cHJlc3NDb21tYW5kLmggKi8sCiAJCQkJQTNENDJBODQx
RjMzQkEzNjAwQTY0QjYyIC8qIExheW91dFVuaXQuY3BwICovLApAQCAtMjgyMTIsNiArMjgyMTEs
NyBAQAogCQkJCUUzQzA0MTMyMjU0Q0E3MTEwMDIxRDBFNiAvKiBTeXN0ZW1Tb3VuZE1hbmFnZXIu
Y3BwICovLAogCQkJCUUzQzA0MTJEMjU0Q0EyOUIwMDIxRDBFNiAvKiBTeXN0ZW1Tb3VuZE1hbmFn
ZXIuaCAqLywKIAkJCQk3Q0M1NjRCNjE4QkFCRUE2MDAxQjk2NTIgLyogVGVsZXBob25lTnVtYmVy
RGV0ZWN0b3IuaCAqLywKKwkJCQlGNDhCN0Q1MjI1QzM0MUU2MDA5RTc1REQgLyogVGV4dFJlY29n
bml0aW9uUmVzdWx0LmggKi8sCiAJCQkJQkNFNjVEMzEwRUFEMTIxMTAwN0U0NTMzIC8qIFRoZW1l
LmNwcCAqLywKIAkJCQlCQ0U2NThGRTBFQTkyNDhBMDA3RTQ1MzMgLyogVGhlbWUuaCAqLywKIAkJ
CQkwRjI4M0E4RDIzNTU4MkY4MDA0Nzk0Q0EgLyogVGhlbWVUeXBlcy5jcHAgKi8sCkBAIC0zMjQ3
MSw3ICszMjQ3MSw2IEBACiAJCQkJNDFGQUJEMkQxRjRERkU0QTAwNkE2Qzk3IC8qIERPTUNhY2hl
RW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTM4MEMyOTFGMzQzNkFDMDAxNTVGREEgLyog
RE9NQ2FjaGVTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRBM0ZGRTIxNTFCNkY1MDBG
RDY2MDQgLyogRE9NQ1NTQ3VzdG9tUHJvcGVydHlEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywK
LQkJCQlFNDQ3RjVCMzI2NkNGNjNEMDAxMzNGMDAgLyogVGV4dEJveFNlbGVjdGFibGVSYW5nZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkM5QTBGNzUxNjQwOTRDRjAwM0Q2QjhEIC8qIERPTUNTU05h
bWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEI2QjVDQkQyMTY0MEVGRjAwNjAzODE3IC8q
IERPTUNTU1BhaW50V29ya2xldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJEQTNGRkYyMTUxQjZG
NTAwRkQ2NjA0IC8qIERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuaCBpbiBIZWFkZXJzICov
LApAQCAtMzMxMDAsNyArMzMwOTksNiBAQAogCQkJCTU1NUI4N0VEMUNBQUYwQUIwMDM0OTQyNSAv
KiBJbWFnZURlY29kZXJDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ0NzY1OEUyNUNDQTc3ODAw
N0FGMzEyIC8qIEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
MjA1QUI2MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQlGNDhCN0Q1MzI1QzM0MUU2MDA5RTc1REQgLyogSW1hZ2VFeHRyYWN0aW9uUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFt
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQzIxMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdl
SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODk1ODI1NjBFODU3QTdFMDBGODJDODMg
LyogSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzU2NzYsNiArMzU2NzQsNyBAQAog
CQkJCUNFN0IyREI1MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTREQ0U2MTg4MTA1MUQwMDNFRURCQiAvKiBUZXh0QXV0
b1NpemluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMzQwRDAwNkMxRDAwRUY2RjI2IC8q
IFRleHRCb3VuZGFyaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDQ3RjVCMzI2NkNGNjNEMDAx
MzNGMDAgLyogVGV4dEJveFNlbGVjdGFibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcx
NTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVs
cGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM1NzE1LDYgKzM1NzE0LDcgQEAKIAkJCQkxQzE4REE1
OTE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBhaW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
QzkxQTBFMTgwMjM0MzEwMEExN0Y2RCAvKiBUZXh0UGFpbnRTdHlsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0UyMTIxNTgyNDBEQkVCOTAwNkVENDQzIC8qIFRleHRQbGFjZWhvbGRlckVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY0OEI3RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBUZXh0UmVj
b2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OEY2MDgyNDVFNTkwMDFF
OUFCQyAvKiBUZXh0UmVzb3VyY2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODI0QjQ2
NTBFMkVGMkVBMDA4MUE3QjcgLyogVGV4dFJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ4QjFC
N0EwRjNBMkY5QjAwNDdBOUUyIC8qIFRleHRTaXplQWRqdXN0bWVudC5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oCmluZGV4IDU0
NzNiYjAwYzQ4NjhiNTQ5MTE0M2EzYWU4ODk3MDliOGVlOGRmYmUuLjU4YTY5Y2M3ODQzMzFmMGI0
MTY4MWUwOTIzNDdkOTVmNDMxZWM2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvRGF0YURldGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xh
c3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgUXVhbGlmaWVkTmFt
ZTsKLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvOworc3RydWN0IFRleHRS
ZWNvZ25pdGlvbkRhdGFEZXRlY3RvcjsKIAogc3RydWN0IERldGVjdGVkSXRlbSB7CiAgICAgUmV0
YWluUHRyPEREQWN0aW9uQ29udGV4dD4gYWN0aW9uQ29udGV4dDsKQEAgLTY2LDggKzY2LDggQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHJlcXVpcmVzRXh0ZW5kZWRD
b250ZXh0KEVsZW1lbnQmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0gICAgc3RhdGljIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlRWxlbWVudEZvckltYWdlT3Zlcmxh
eShEb2N1bWVudCYsIGNvbnN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mKTsKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgc3RhdGljIFJlZjxIVE1MRWxlbWVudD4gY3Jl
YXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYsIGNvbnN0IFRleHRSZWNvZ25pdGlv
bkRhdGFEZXRlY3RvciYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBkYXRh
RGV0ZWN0b3JVUkxQcm90b2NvbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9E
YXRhRGV0ZWN0aW9uLm1tCmluZGV4IDI1MDQzODkyNDhkNjNmMDg2YWZkYmNhNTg1NzE2YWM0NTk1
MmNiZmIuLjJiMTk5M2U3MzJhYTdiMTJiMDU2NGY4ZDJlYTViYTFlNTY1OGI1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KQEAgLTQyLDcgKzQy
LDYgQEAKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9ydCAiSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuaCIKICNpbXBvcnQgIkhpdFRlc3RSZXN1bHQuaCIKLSNpbXBvcnQgIkltYWdlRXh0
cmFjdGlvblJlc3VsdC5oIgogI2ltcG9ydCAiTm9kZUxpc3QuaCIKICNpbXBvcnQgIk5vZGVUcmF2
ZXJzYWwuaCIKICNpbXBvcnQgIlF1YWxpZmllZE5hbWUuaCIKQEAgLTUxLDYgKzUwLDcgQEAKICNp
bXBvcnQgIlN0eWxlUHJvcGVydGllcy5oIgogI2ltcG9ydCAiVGV4dC5oIgogI2ltcG9ydCAiVGV4
dEl0ZXJhdG9yLmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25SZXN1bHQuaCIKICNpbXBvcnQg
IlZpc2libGVQb3NpdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVVuaXRzLmgiCiAjaW1wb3J0IDxw
YWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEkuaD4KQEAgLTY4Nyw5ICs2ODcsOSBAQCBib29s
IERhdGFEZXRlY3Rpb246OmlzRGF0YURldGVjdG9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQogICAgIHJldHVybiBpczxIVE1MQW5jaG9yRWxlbWVudD4oZWxlbWVudCkgJiYgZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
eF9hcHBsZV9kYXRhX2RldGVjdG9yc0F0dHIpLCAidHJ1ZSIpOwogfQogCi0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi1SZWY8SFRNTEVs
ZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvJiBpbmZv
KQorUmVmPEhUTUxFbGVtZW50PiBEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1hZ2VP
dmVybGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVj
dG9yJiBpbmZvKQogewogICAgIGF1dG8gY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAgICAgaWYgKGF1dG8gZnJhbWUgPSBtYWtlUmVmUHRyKGRvY3VtZW50LmZy
YW1lKCkpKSB7CkBAIC02OTksNyArNjk5LDcgQEAgUmVmPEhUTUxFbGVtZW50PiBEYXRhRGV0ZWN0
aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50JiBkb2N1bWVudCwKICAg
ICByZXR1cm4gY29udGFpbmVyOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmlu
ZGV4IGI3NDg1ZGE5ZWNmYzdlYWE1ZTM5OTM2NjUzY2Q1ZDgwOTkyNGQ5N2QuLjYxODkyZmUyNzQ2
NzkzZDgxZjFlMmIwNzY0MDdhOWMwMmNmOTIxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtMTYsNDUgKzE2LDEyIEBACiAvKiB2aXNpYmxlIG5h
bWUgb2YgdGhlIHBsdWctaW4gaG9zdCBwcm9jZXNzLiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhl
IHBsdWctaW4gbmFtZSBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24g
bmFtZS4gKi8KICIlQCAoJUAgSW50ZXJuZXQgcGx1Zy1pbikiID0gIiVAICglQCBJbnRlcm5ldCBw
bHVnLWluKSI7CiAKLS8qIEF1ZGlvL1RleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0
IGluY2x1ZGVzIHRoZSBsYWJlbCBhbmQgbGFuZ3VhZ2Ugb2YgdGhlIHRyYWNrLCBpbiB0aGUgZm9y
bSBvZiAnTGFuZ3VhZ2UgKExhYmVsKScuICovCi0iJUAgKCVAKSAoYXVkaW8vdGV4dCB0cmFjayki
ID0gIiVAICglQCkiOwotCi0vKiBDbG9zZWQgY2FwdGlvbnMgdGV4dCB0cmFjayBkaXNwbGF5IG5h
bWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4g
J0VuZ2xpc2ggQ0MnKS4gKi8KLSIlQCBDQyAodGV4dCB0cmFjaykiID0gIiVAIENDIjsKLQotLyog
Q2FwdGlvbnMgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhl
IGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ2FwdGlvbnMnKS4gKi8KLSIl
QCBDYXB0aW9ucyAodGV4dCB0cmFjaykiID0gIiVAIENhcHRpb25zIjsKLQotLyogQ2hhcHRlcnMg
dGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdl
IGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ2hhcHRlcnMnKS4gKi8KLSIlQCBDaGFwdGVy
cyAodGV4dCB0cmFjaykiID0gIiVAIENoYXB0ZXJzIjsKLQotLyogQ29tbWVudGFyeSBhdWRpbyB0
cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9v
ciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ29tbWVudGFyeScpLiAqLwotIiVAIENvbW1lbnRhcnkg
KGF1ZGlvIHRyYWNrKSIgPSAiJUAgQ29tbWVudGFyeSI7Ci0KLS8qIERlc2NyaXB0aW9ucyBhdWRp
byB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFu
ZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggRGVzY3JpcHRpb25zJykuICovCi0iJUAgRGVzY3Jp
cHRpb25zIChhdWRpbyB0cmFjaykiID0gIiVAIERlc2NyaXB0aW9ucyI7Ci0KLS8qIERlc2NyaXB0
aW9ucyB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFu
Z3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBEZXNjcmlwdGlvbnMnKS4gKi8KLSIl
QCBEZXNjcmlwdGlvbnMgKHRleHQgdHJhY2spIiA9ICIlQCBEZXNjcmlwdGlvbnMiOwotCi0vKiBF
YXN5IFJlYWRlciAoaS5lLiAzcmQtZ3JhZGUgbGV2ZWwpIHRleHQgdHJhY2sgZGlzcGxheSBuYW1l
IGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdF
bmdsaXNoIEVhc3kgUmVhZGVyJykuICovCi0iJUAgRWFzeSBSZWFkZXIgKHRleHQgdHJhY2spIiA9
ICIlQCBFYXN5IFJlYWRlciI7Ci0KLS8qIEZvcmNlZCB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBm
b3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5n
bGlzaCBGb3JjZWQnKS4gKi8KLSIlQCBGb3JjZWQgKHRleHQgdHJhY2spIiA9ICIlQCBGb3JjZWQi
OwotCiAvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIEdQVSBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMg
dGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgR3JhcGhpY3MgYW5kIE1lZGlhIiA9ICIlQCBH
cmFwaGljcyBhbmQgTWVkaWEiOwogCi0vKiBNZXRhZGF0YSB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFt
ZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAn
RW5nbGlzaCBNZXRhZGF0YScpLiAqLwotIiVAIE1ldGFkYXRhICh0ZXh0IHRyYWNrKSIgPSAiJUAg
TWV0YWRhdGEiOwotCiAvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIG5ldHdvcmsgcHJvY2Vzcy4gVGhl
IGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIE5ldHdvcmtpbmciID0g
IiVAIE5ldHdvcmtpbmciOwogCi0vKiBTREggKGkuZS4gZGVhZiBhbmQvb3IgaGFyZCBvZiBoZWFy
aW5nKSB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFu
Z3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBTREgnKS4gICovCi0iJUAgU0RIICh0
ZXh0IHRyYWNrKSIgPSAiJUAgU0RIIjsKLQogLyogVmlzaWJsZSBuYW1lIG9mIFNlcnZpY2UgV29y
a2VyIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIl
QCBTZXJ2aWNlIFdvcmtlciAoJUApIiA9ICIlQCBTZXJ2aWNlIFdvcmtlciAoJUApIjsKIApAQCAt
MTQ4LDkgKzExNSw2IEBACiAvKiBNZXNzYWdlIGZvciByZXF1ZXN0aW5nIGNyb3NzLXNpdGUgY29v
a2llIGFuZCB3ZWJzaXRlIGRhdGEgYWNjZXNzLiAqLwogIkFsbG93IOKAnCVA4oCdIGFuZCDigJwl
QOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA
4oCdPyIgPSAiQWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVzZSBjb29raWVzIGFuZCB3
ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IjsKIAotLyogTWVzc2FnZSBmb3Ig
Z2VvbG9jYXRpb24gcHJvbXB0ICovCi0iQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgY3VycmVu
dCBsb2NhdGlvbj8iID0gIkFsbG93IOKAnCVA4oCdIHRvIHVzZSB5b3VyIGN1cnJlbnQgbG9jYXRp
b24/IjsKLQogLyogTWVzc2FnZSBmb3Igc3BlY2hyZWNvZ25pdGlvbiBwcm9tcHQgKi8KICJBbGxv
dyDigJwlQOKAnSB0byBjYXB0dXJlIHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Igc3BlZWNoIHJl
Y29nbml0aW9uPyIgPSAiQWxsb3cg4oCcJUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1
c2UgaXQgZm9yIHNwZWVjaCByZWNvZ25pdGlvbj8iOwogCkBAIC0xNjMsNiArMTI3LDkgQEAKIC8q
IE1lc3NhZ2UgZm9yIHVzZXIgY2FtZXJhIGFjY2VzcyBwcm9tcHQgKi8KICJBbGxvdyDigJwlQOKA
nSB0byB1c2UgeW91ciBjYW1lcmE/IiA9ICJBbGxvdyDigJwlQOKAnSB0byB1c2UgeW91ciBjYW1l
cmE/IjsKIAorLyogTWVzc2FnZSBmb3IgZ2VvbG9jYXRpb24gcHJvbXB0ICovCisiQWxsb3cg4oCc
JUDigJ0gdG8gdXNlIHlvdXIgY3VycmVudCBsb2NhdGlvbj8iID0gIkFsbG93IOKAnCVA4oCdIHRv
IHVzZSB5b3VyIGN1cnJlbnQgbG9jYXRpb24/IjsKKwogLyogTWVzc2FnZSBmb3IgdXNlciBtaWNy
b3Bob25lIGFjY2VzcyBwcm9tcHQgKi8KICJBbGxvdyDigJwlQOKAnSB0byB1c2UgeW91ciBtaWNy
b3Bob25lPyIgPSAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgbWljcm9waG9uZT8iOwogCkBA
IC0yMDgsOSArMTc1LDYgQEAKIC8qIExhYmVsIGZvciB0aGUgYnV5IHdpdGggQXBwbGUgUGF5IGJ1
dHRvbi4gKi8KICJCdXkgd2l0aCBBcHBsZSBQYXkiID0gIkJ1eSB3aXRoIEFwcGxlIFBheSI7CiAK
LS8qIERpc3BsYXkgbmFtZSBmb3IgY2xvc2VkIGNhcHRpb25zIHRleHQgdHJhY2tzLiAqLwotIkND
ICh0ZXh0IHRyYWNrKSIgPSAiQ0MiOwotCiAvKiBDYW5jZWwgKi8KICJDYW5jZWwiID0gIkNhbmNl
bCI7CiAKQEAgLTIyMywxOCArMTg3LDEyIEBACiAvKiBDYXBpdGFsaXplIGNvbnRleHQgbWVudSBp
dGVtICovCiAiQ2FwaXRhbGl6ZSIgPSAiQ2FwaXRhbGl6ZSI7CiAKLS8qIERpc3BsYXkgbmFtZSBm
b3IgdGV4dCB0cmFjayBraW5kICdjYXB0aW9ucycuICovCi0iQ2FwdGlvbnMgKHRleHQgdHJhY2sp
IiA9ICJDYXB0aW9ucyI7Ci0KIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJDZW50ZXIgKFVuZG8g
YWN0aW9uIG5hbWUpIiA9ICJDZW50ZXIiOwogCiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiQ2hh
bmdlIEF0dHJpYnV0ZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJDaGFuZ2UgQXR0cmlidXRlcyI7
CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdjaGFwdGVycycuICovCi0i
Q2hhcHRlcnMgKHRleHQgdHJhY2spIiA9ICJDaGFwdGVycyI7Ci0KIC8qIENoZWNrIHNwZWxsaW5n
IGNvbnRleHQgbWVudSBpdGVtICovCiAiQ2hlY2sgRG9jdW1lbnQgTm93IiA9ICJDaGVjayBEb2N1
bWVudCBOb3ciOwogCkBAIC0yNjgsOSArMjI2LDYgQEAKIC8qIFN1YnRpdGxlIG9mIHRoZSBsYWJl
bCB0byBzaG93IG9uIGEgc25hcHNob3R0ZWQgcGx1Zy1pbiAqLwogIkNsaWNrIHRvIHJlc3RhcnQi
ID0gIkNsaWNrIHRvIHJlc3RhcnQiOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIGF1ZGlvIHRyYWNr
IGtpbmQgJ2NvbW1lbnRhcnknLiAqLwotIkNvbW1lbnRhcnkgKGF1ZGlvIHRyYWNrKSIgPSAiJUAg
Q29tbWVudGFyeSI7Ci0KIC8qIFdLRXJyb3JDb250ZW50UnVsZUxpc3RTdG9yZUNvbXBpbGVGYWls
ZWQgZGVzY3JpcHRpb24gKi8KICJDb21waWxpbmcgYSBXS0NvbnRlbnRSdWxlTGlzdCBmYWlsZWQi
ID0gIkNvbXBpbGluZyBhIFdLQ29udGVudFJ1bGVMaXN0IGZhaWxlZCI7CiAKQEAgLTMzNywxMiAr
MjkyLDYgQEAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJEZWxldGUgKFVuZG8gYWN0aW9uIG5h
bWUpIiA9ICJEZWxldGUiOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIGF1ZGlvIHRyYWNrIGtpbmQg
J2Rlc2NyaXB0aW9ucycuICovCi0iRGVzY3JpcHRpb25zIChhdWRpbyB0cmFjaykiID0gIkRlc2Ny
aXB0aW9ucyI7Ci0KLS8qIERpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdkZXNjcmlw
dGlvbnMnLiAqLwotIkRlc2NyaXB0aW9ucyAodGV4dCB0cmFjaykiID0gIkRlc2NyaXB0aW9ucyI7
Ci0KIC8qIHRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxz
dW1tYXJ5PiBjaGlsZCAqLwogIkRldGFpbHMiID0gIkRldGFpbHMiOwogCkBAIC0zODgsOSArMzM3
LDYgQEAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJEcmFnIChVbmRvIGFjdGlvbiBuYW1lKSIg
PSAiRHJhZyI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgZWFzeSByZWFkZXIgKGkuZS4gM3JkLWdy
YWRlIGxldmVsKSB0ZXh0IHRyYWNrcy4gKi8KLSJFYXN5IFJlYWRlciAodGV4dCB0cmFjaykiID0g
IkVhc3kgUmVhZGVyIjsKLQogLyogVmlkZW8gRW50ZXIgRnVsbCBTY3JlZW4gY29udGV4dCBtZW51
IGl0ZW0gKi8KICJFbnRlciBGdWxsIFNjcmVlbiIgPSAiRW50ZXIgRnVsbCBTY3JlZW4iOwogCkBA
IC00MzYsOSArMzgyLDYgQEAKIC8qIEZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtICovCiAiRm9u
dCIgPSAiRm9udCI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdmb3Jj
ZWQnLiAqLwotIkZvcmNlZCAodGV4dCB0cmFjaykiID0gIkZvcmNlZCI7Ci0KIC8qIFVuZG8gYWN0
aW9uIG5hbWUgKi8KICJGb3JtYXQgQmxvY2sgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJGb3JtYXR0
aW5nIjsKIApAQCAtNTUzLDYgKzQ5Niw5IEBACiAvKiAnV2Vic2l0ZScgbmFtZSBkaXNwbGF5ZWQg
d2hlbiBsb2NhbCBkb2N1bWVudHMgaGF2ZSBzdG9yZWQgbG9jYWwgZGF0YSAqLwogIkxvY2FsIGRv
Y3VtZW50cyBvbiB5b3VyIGNvbXB1dGVyIiA9ICJMb2NhbCBkb2N1bWVudHMgb24geW91ciBjb21w
dXRlciI7CiAKKy8qIFRpdGxlIGZvciBMb29rIFVwIGFjdGlvbiBidXR0b24gKi8KKyJMb29rIFVw
IiA9ICJMb29rIFVwIjsKKwogLyogTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBp
dGVtICovCiAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IiA9ICJMb29rIFVwIGluIERpY3Rpb25hcnki
OwogCkBAIC01OTgsOSArNTQ0LDYgQEAKIC8qIE1hbHdhcmUgY29uZmlybWF0aW9uIGRpYWxvZyAq
LwogIk1lcmVseSB2aXNpdGluZyBhIHNpdGUgaXMgc3VmZmljaWVudCBmb3IgbWFsd2FyZSB0byBp
bnN0YWxsIGl0c2VsZiBhbmQgaGFybSB5b3VyIGNvbXB1dGVyLiIgPSAiTWVyZWx5IHZpc2l0aW5n
IGEgc2l0ZSBpcyBzdWZmaWNpZW50IGZvciBtYWx3YXJlIHRvIGluc3RhbGwgaXRzZWxmIGFuZCBo
YXJtIHlvdXIgY29tcHV0ZXIuIjsKIAotLyogRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtp
bmQgJ21ldGFkYXRhJy4gKi8KLSJNZXRhZGF0YSAodGV4dCB0cmFjaykiID0gIk1ldGFkYXRhIjsK
LQogLyogTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMgbWlzc2luZyAqLwog
Ik1pc3NpbmcgUGx1Zy1pbiIgPSAiTWlzc2luZyBQbHVnLWluIjsKIApAQCAtNzUxLDkgKzY5NCw2
IEBACiAvKiBSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtICovCiAiUmlnaHQgdG8gTGVm
dCIgPSAiUmlnaHQgdG8gTGVmdCI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgU0RIIChpLmUuIGRl
YWYgYW5kL29yIGhhcmQgb2YgaGVhcmluZykgdGV4dCB0cmFja3MuICovCi0iU0RIICh0ZXh0IHRy
YWNrKSIgPSAiU0RIIjsKLQogLyogVGl0bGUgb2YgdGhlIFNlYXJjaCBidXR0b24gZm9yIHpvb21l
ZCBmb3JtIGNvbnRyb2xzLiAqLwogIlNlYXJjaCIgPSAiU2VhcmNoIjsKIApAQCAtODI5LDYgKzc2
OSw5IEBACiAvKiBtZW51IGl0ZW0gdGl0bGUgKi8KICJTaG93IFN1YnN0aXR1dGlvbnMiID0gIlNo
b3cgU3Vic3RpdHV0aW9ucyI7CiAKKy8qIFRpdGxlIGZvciBTaG93IFRleHQgYWN0aW9uIGJ1dHRv
biAqLworIlNob3cgVGV4dCIgPSAiU2hvdyBUZXh0IjsKKwogLyogVGl0bGUgb2YgdGhlIGNvbnRl
eHQgbWVudSBpdGVtIHRvIHNob3cgd2hlbiBQREZQbHVnaW4gd2FzIHVzZWQgaW5zdGVhZCBvZiBh
IGJsb2NrZWQgcGx1Z2luICovCiAiU2hvdyBpbiBibG9ja2VkIHBsdWctaW4iID0gIlNob3cgaW4g
YmxvY2tlZCBwbHVnLWluIjsKIApAQCAtMTAzOSwxMiArOTgyLDEyIEBACiAvKiBVbmRvIGFjdGlv
biBuYW1lICovCiAiVW5kZXJsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiVW5kZXJsaW5lIjsK
IAotLyogVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSAqLwotIlVu
a25vd24gKGZpbGVzaXplKSIgPSAiVW5rbm93biI7Ci0KIC8qIE1lbnUgaXRlbSBsYWJlbCBmb3Ig
YSBhdWRpby90ZXh0IHRyYWNrIHRoYXQgaGFzIG5vIG90aGVyIG5hbWUuICovCiAiVW5rbm93biAo
YXVkaW8vdGV4dCB0cmFjaykiID0gIlVua25vd24iOwogCisvKiBVbmtub3duIGZpbGVzaXplIEZU
UCBkaXJlY3RvcnkgbGlzdGluZyBpdGVtICovCisiVW5rbm93biAoZmlsZXNpemUpIiA9ICJVbmtu
b3duIjsKKwogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIlVubGluayAoVW5kbyBhY3Rpb24gbmFt
ZSkiID0gIlVubGluayI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggM2Fj
OGY5YjJmNmJjMGRkODYzMzZkNGNhZGZiYzYzZmQ3MTg3YjZlZC4uNTI5NjZjNzg4NDdjM2Q5ODcz
OWJiZTU2MDY4NjUxZGNiOGNjNzc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAK
QEAgLTgwLDggKzgwLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCi0jaW5jbHVkZSAiSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmgiCisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorI2luY2x1ZGUgIlRleHRSZWNvZ25pdGlvblJlc3VsdC5oIgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTMyOSw5ICsxMzI5LDkgQEAgYm9vbCBIVE1M
RWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KGNvbnN0IE5vZGUmIG5vZGUpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQogCi12b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJlc3VsdCkKK3ZvaWQgSFRNTEVsZW1l
bnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0
JiYgcmVzdWx0KQogewogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcHJldmlvdXNDb250YWlu
ZXI7CiAgICAgaWYgKGF1dG8gc2hhZG93Um9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsgc2hh
ZG93Um9vdCAmJiBoYXNJbWFnZU92ZXJsYXkoKSkgewpAQCAtMTUxMSw3ICsxNTExLDcgQEAgdm9p
ZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJh
Y3Rpb25SZXN1bHQmJiByZXN1bHQKICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNjaGVk
dWxlQ3Vyc29yVXBkYXRlKCk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggZjMxODNjZmEwZjczM2Vj
YTVjYjA3MmQ5NDhlZGE4OTI3NGQ2MTczMi4uMWFlMWZkNmVjMjY1NTQ1YWExMDE4OTZkMjcwNjdm
NjM1YzNhMDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtMzYsMTAgKzM2LDcg
QEAgY2xhc3MgRm9ybU5hbWVkSXRlbTsKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKIGNsYXNzIFZp
c2libGVTZWxlY3Rpb247CiBzdHJ1Y3QgU2ltcGxlUmFuZ2U7Ci0KLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ7Ci0jZW5kaWYKK3N0cnVj
dCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7CiAKIGVudW0gY2xhc3MgRW50ZXJLZXlIaW50IDogdWlu
dDhfdDsKIApAQCAtMTQxLDggKzEzOCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgYm9vbCBpc0ltYWdlT3ZlcmxheVRleHQoY29uc3QgTm9kZSYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBib29sIGlzSW1hZ2VPdmVybGF5VGV4dChjb25zdCBOb2RlKik7CiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0
ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpOworI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdp
dGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYpOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
aW5kZXggYTc1ZTM5MDI1NGM3OTM4OTQxOGQ2MGFjMzY3NmM3M2FjZmQwNWRlMy4uNmQ4NGY2OTQ0
ZGY2MTc3NDA1YzFmYWYzYmFiZGUxMGQ5YmJmNTk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCkBAIC01NzAsOCArNTcwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaGFu
Z2VVbml2ZXJzYWxBY2Nlc3Nab29tRm9jdXMoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
KSB7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oRWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBsZXRpb24gPSB7IH0pCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9u
KEVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxFbGVtZW50PiYmKT4mJiBj
b21wbGV0aW9uID0geyB9KQogICAgIHsKICAgICAgICAgaWYgKGNvbXBsZXRpb24pCiAgICAgICAg
ICAgICBjb21wbGV0aW9uKHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKaW5kZXggZWQyNmM5MzY1Njg4ZDE4ZjE3OTE0Nzg2YjNhZjUxYjc0M2Jh
ZDI5NC4uNzEwOTQ1MTQxMmFjMGM2MmI1ZWQ1OTc3Y2EwYThjN2E4MTc3MTk5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNTIxLDcgKzUy
MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmFwcGx5RGlj
dGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW1hZ2U6CiAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYXQgdGhlIGNsaWVu
dCBsYXllci4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpA
QCAtODMwLDggKzgzMCw4IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgp
CiAgICAgQ29udGV4dE1lbnVJdGVtIFNlbGVjdEFsbEl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1l
bnVJdGVtVGFnU2VsZWN0QWxsLCBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSk7CiAgICAg
Q29udGV4dE1lbnVJdGVtIEluc2VydEVtb2ppSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0
ZW1UYWdJbnNlcnRFbW9qaSwgY29udGV4dE1lbnVJdGVtVGFnSW5zZXJ0RW1vamkoKSk7CiAjZW5k
aWYKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBDb250ZXh0TWVudUl0ZW0gUmV2
ZWFsSW1hZ2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlLCBj
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgQ29udGV4dE1lbnVJdGVtIExvb2tVcEltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2Uo
KSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQpAQCAtOTA0
LDkgKzkwNCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAg
ICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUoKSB8fCBpbWFnZSkgewogICAgICAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oQ29weUltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CiAgICAgICAgICAgICAgICAgaWYgKGltYWdlICYmICFpbWFnZS0+aXNBbmltYXRlZCgpKQotICAg
ICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJldmVhbEltYWdlSXRlbSwgbV9jb250ZXh0TWVu
dS5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oTG9va1VwSW1hZ2VJdGVt
LCBtX2NvbnRleHRNZW51LmdldCgpKTsKICNlbmRpZgogICAgICAgICAgICAgfQogI2lmIFBMQVRG
T1JNKEdUSykKQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
OjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAg
ICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYUhh
c0F1ZGlvKCk7CiAgICAgICAgICAgICBzaG91bGRDaGVjayA9IHNob3VsZEVuYWJsZSAmJiAgbV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYU11dGVkKCk7CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGY2ZTE0MzQwMzlhZTQ2NDIzNTRhYmM4ZDVjYTVl
MzU5MmI2Zjg3Mi4uOTY5ODZiNTMwOTFiYzY5MGU2ZmNkNGNiMDY3YWJhMDIxYTM1NjA3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzI0LDggKzMyNCw4IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3QgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0CiBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcihGcmFtZSYgZnJh
bWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9ob3ZlclRpbWVyKCp0aGlzLCAmRXZl
bnRIYW5kbGVyOjpob3ZlclRpbWVyRmlyZWQpCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0gICAgLCBtX2ltYWdlRXh0cmFjdGlvblRpbWVyKCp0aGlzLCAmRXZlbnRIYW5kbGVyOjppbWFn
ZUV4dHJhY3Rpb25UaW1lckZpcmVkLCAyNTBfbXMpCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorICAgICwgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyKCp0aGlzLCAmRXZlbnRIYW5kbGVy
OjptX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXJGaXJlZCwgMjUwX21zKQogI2VuZGlmCiAgICAg
LCBtX2F1dG9zY3JvbGxDb250cm9sbGVyKG1ha2VVbmlxdWU8QXV0b3Njcm9sbENvbnRyb2xsZXI+
KCkpCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtMzY3LDggKzM2Nyw4IEBAIHZv
aWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAjaWYgRU5BQkxFKENVUlNPUl9WSVNJQklMSVRZKQog
ICAgIGNhbmNlbEF1dG9IaWRlQ3Vyc29yVGltZXIoKTsKICNlbmRpZgotI2lmIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQotICAgIG1faW1hZ2VFeHRyYWN0aW9uVGltZXIuc3RvcCgpOworI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3Rv
cCgpOwogI2VuZGlmCiAgICAgbV9yZXNpemVMYXllciA9IG51bGxwdHI7CiAgICAgY2xlYXJFbGVt
ZW50VW5kZXJNb3VzZSgpOwpAQCAtMTkwNSw5ICsxOTA1LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6
Om1vdXNlTW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKICAgICBoaXRUZXN0
UmVzdWx0LnNldFRvTm9uVXNlckFnZW50U2hhZG93QW5jZXN0b3IoKTsKICAgICBwYWdlLT5jaHJv
bWUoKS5tb3VzZURpZE1vdmVPdmVyRWxlbWVudChoaXRUZXN0UmVzdWx0LCBldmVudC5tb2RpZmll
ckZsYWdzKCkpOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKGV2ZW50
LnN5bnRoZXRpY0NsaWNrVHlwZSgpID09IE5vVGFwICYmIG1faW1hZ2VFeHRyYWN0aW9uVGltZXIu
aXNBY3RpdmUoKSkKLSAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5yZXN0YXJ0KCk7Cisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlmIChldmVudC5zeW50aGV0aWNDbGlja1R5
cGUoKSA9PSBOb1RhcCAmJiBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnJlc3RhcnQoKTsKICNlbmRpZgog
CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTI1MzksMTQgKzI1MzksMTQgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50
VHlwZSwgTm9kZSoKIAogICAgIG1fZWxlbWVudFVuZGVyTW91c2UgPSB0YXJnZXRFbGVtZW50Owog
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQogICAgIGlmIChwbGF0Zm9ybU1vdXNlRXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkgPT0gTm9U
YXApIHsKICAgICAgICAgaWYgKG1fZWxlbWVudFVuZGVyTW91c2UgJiYgaXM8UmVuZGVySW1hZ2U+
KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkpKQotICAgICAgICAgICAgbV9pbWFnZUV4
dHJhY3Rpb25UaW1lci5yZXN0YXJ0KCk7CisgICAgICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhv
dmVyVGltZXIucmVzdGFydCgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2ltYWdlRXh0
cmFjdGlvblRpbWVyLnN0b3AoKTsKKyAgICAgICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJU
aW1lci5zdG9wKCk7CiAgICAgfQotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKICAgICAgICAgcGFn
ZS0+aW1hZ2VPdmVybGF5Q29udHJvbGxlcigpLmVsZW1lbnRVbmRlck1vdXNlRGlkQ2hhbmdlKG1f
ZnJhbWUsIG1fZWxlbWVudFVuZGVyTW91c2UuZ2V0KCkpOwpAQCAtMjYwNyw4ICsyNjA3LDggQEAg
dm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKGNvbnN0IEF0b21T
dHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKIAogICAgICAgICAvLyBFdmVudCBoYW5kbGluZyBtYXkg
aGF2ZSBtb3ZlZCB0aGUgZWxlbWVudCB0byBhIGRpZmZlcmVudCBkb2N1bWVudC4KICAgICAgICAg
aWYgKG1fZWxlbWVudFVuZGVyTW91c2UgJiYgJm1fZWxlbWVudFVuZGVyTW91c2UtPmRvY3VtZW50
KCkgIT0gbV9mcmFtZS5kb2N1bWVudCgpKSB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0gICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIu
c3RvcCgpOwogI2VuZGlmCiAgICAgICAgICAgICBjbGVhckVsZW1lbnRVbmRlck1vdXNlKCk7CiAg
ICAgICAgIH0KQEAgLTMzOTgsMTggKzMzOTgsMTggQEAgdm9pZCBFdmVudEhhbmRsZXI6OmhvdmVy
VGltZXJGaXJlZCgpCiAgICAgfQogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIEV2ZW50SGFuZGxlcjo6aW1hZ2VFeHRy
YWN0aW9uVGltZXJGaXJlZCgpCit2b2lkIEV2ZW50SGFuZGxlcjo6bV90ZXh0UmVjb2duaXRpb25I
b3ZlclRpbWVyRmlyZWQoKQogewogICAgIGlmICghbV9lbGVtZW50VW5kZXJNb3VzZSB8fCAhaXM8
UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQotICAgICAgICBw
YWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKCptX2VsZW1lbnRV
bmRlck1vdXNlKTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdFRleHRS
ZWNvZ25pdGlvbigqbV9lbGVtZW50VW5kZXJNb3VzZSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVBY2Nlc3NLZXkoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50JiBldmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGQ0MjZhMGMy
ZWY5NGViYjRhNThkNjZmZjUyN2Q2ZWI1MmQzNjY4YTguLjlmYjUyYjJlOWZiZDg1NzMxNTM0YTZi
MjhhOTFhMzY5YzM3ODc3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMzg4
LDggKzM4OCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGhvdmVyVGltZXJGaXJlZCgpOwogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgdm9pZCBpbWFnZUV4dHJhY3Rpb25UaW1l
ckZpcmVkKCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQgbV90ZXh0UmVj
b2duaXRpb25Ib3ZlclRpbWVyRmlyZWQoKTsKICNlbmRpZgogCiAgICAgYm9vbCBsb2dpY2FsU2Ny
b2xsT3ZlcmZsb3coU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIE5v
ZGUqIHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIpOwpAQCAtNTI5LDggKzUyOSw4IEBAIHByaXZhdGU6
CiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAgUmVmUHRyPE5vZGU+IG1fbW91c2VQcmVzc05vZGU7
CiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQot
ICAgIERlZmVycmFibGVPbmVTaG90VGltZXIgbV9pbWFnZUV4dHJhY3Rpb25UaW1lcjsKKyNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgRGVmZXJyYWJsZU9uZVNob3RUaW1lciBtX3RleHRS
ZWNvZ25pdGlvbkhvdmVyVGltZXI7CiAjZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXV0b3Nj
cm9sbENvbnRyb2xsZXI+IG1fYXV0b3Njcm9sbENvbnRyb2xsZXI7CiAgICAgUmVuZGVyTGF5ZXIq
IG1fcmVzaXplTGF5ZXIgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggOTZk
MjBkMmYyZjJmMDhhMmRiMDZjMDVkMzBmYTMzODI5M2UyZmM2OC4uMTlhYzMzMjk5YzZhZmFkMmUz
MDhlZmEyYjk1NjhkMWYwN2Y3ZTcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9R
dWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtMTQ2Miw3
ICsxNDYyLDcgQEAgYm9vbCBRdWlya3M6OnNob3VsZEJ5cGFzc1VzZXJHZXN0dXJlUmVxdWlyZW1l
bnRGb3JXZWJBdXRobigpIGNvbnN0CiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogYm9vbCBRdWlya3M6Om5lZWRz
VG9Gb3JjZVVzZXJTZWxlY3RXaGVuSW5zdGFsbGluZ0ltYWdlT3ZlcmxheSgpIGNvbnN0CiB7CkBA
IC0xNDc2LDYgKzE0NzYsNiBAQCBib29sIFF1aXJrczo6bmVlZHNUb0ZvcmNlVXNlclNlbGVjdFdo
ZW5JbnN0YWxsaW5nSW1hZ2VPdmVybGF5KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCmluZGV4IDM1MmMyYWZmMjE5NjlhMzU0
OTg0NWY0NTc5M2FlOWEwZjkyNjdhMjIuLjM2NGMxNmY3NGYwOWE0ZTg0NzlkNGE0MDAyYTUwN2Nk
YjRjZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBib29sIHNob3VsZE9taXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0
eU5hbWVzKCk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAgICAgYm9vbCBuZWVkc1RvRm9yY2VVc2VyU2VsZWN0V2hlbkluc3RhbGxp
bmdJbWFnZU92ZXJsYXkoKSBjb25zdDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnVJdGVtLmNwcAppbmRleCA1NDAwZWQzZmYyMDYwYTBlN2Y2MTVhOWYzNDI4
MTg0YjhjMzAxYTZmLi5iNGFhODg5MmM0Mjg3NDI0NGIxZWI2ZDY3NDkyMjkyY2Y3YzU4YWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTI1OCw3
ICsyNTgsNyBAQCBib29sIGlzVmFsaWRDb250ZXh0TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlv
biBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlVmlkZW9GdWxsc2NyZWVuOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRl
eHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbjoKLSAgICBjYXNlIENv
bnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNl
IENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICBj
YXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAg
Y2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZzoKICAg
ICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCBkYWM1YzMzZjQ2
ZWVmYzdhOTI4NDM4OTczOTMyN2QxOWMxZTgyNjZiLi5mZTIwMzI2ZDhjYzhiNzgyMDA3ZWE2ZWM2
ODNmMGE5MzAyMDJiNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewogICAgIENv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuLAogICAgIENvbnRl
eHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVudEdyb3VwLAogICAgIENvbnRleHRNZW51
SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3R3JvdXAsCi0gICAgQ29udGV4dE1lbnVJdGVtVGFnUmV2
ZWFsSW1hZ2UsCisgICAgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UsCiAgICAgQ29udGV4
dE1lbnVJdGVtVGFnVHJhbnNsYXRlLAogICAgIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcg
PSA1MDAwLAogICAgIENvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWcgPSA1OTk5LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWY3ZmIzMzA0MGY5Yzg5M2EzN2I0NDg0YWFlODVjMzVhZGE4
N2YwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDE4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0K
LSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi1PQkpDX0NMQVNTIEREU2Nhbm5lclJlc3VsdDsK
LSNlbmRpZgotCi0jaW5jbHVkZSAiRmxvYXRRdWFkLmgiCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YSB7Ci0gICAgSW1hZ2VFeHRyYWN0
aW9uVGV4dERhdGEoY29uc3QgU3RyaW5nJiB0aGVUZXh0LCBGbG9hdFF1YWQmJiBxdWFkKQotICAg
ICAgICA6IHRleHQodGhlVGV4dCkKLSAgICAgICAgLCBub3JtYWxpemVkUXVhZChXVEZNb3ZlKHF1
YWQpKQotICAgIHsKLSAgICB9Ci0KLSAgICBTdHJpbmcgdGV4dDsKLSAgICBGbG9hdFF1YWQgbm9y
bWFsaXplZFF1YWQ7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
Ci10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIEltYWdlRXh0cmFjdGlvblRleHREYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IHRleHQ7Ci0g
ICAgZW5jb2RlciA8PCBub3JtYWxpemVkUXVhZDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RkOjpvcHRpb25hbDxJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YT4gSW1hZ2VFeHRyYWN0aW9u
VGV4dERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiB0ZXh0OwotICAgIGRlY29kZXIgPj4gdGV4dDsKLSAgICBpZiAoIXRleHQpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UXVhZD4g
bm9ybWFsaXplZFF1YWQ7Ci0gICAgZGVjb2RlciA+PiBub3JtYWxpemVkUXVhZDsKLSAgICBpZiAo
IW5vcm1hbGl6ZWRRdWFkKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgcmV0
dXJuIHt7IFdURk1vdmUoKnRleHQpLCBXVEZNb3ZlKCpub3JtYWxpemVkUXVhZCkgfX07Ci19Ci0K
LXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YSB7Ci0gICAgSW1hZ2VFeHRyYWN0aW9uTGlu
ZURhdGEoRmxvYXRRdWFkJiYgcXVhZCwgVmVjdG9yPEltYWdlRXh0cmFjdGlvblRleHREYXRhPiYm
IHRoZUNoaWxkcmVuKQotICAgICAgICA6IG5vcm1hbGl6ZWRRdWFkKFdURk1vdmUocXVhZCkpCi0g
ICAgICAgICwgY2hpbGRyZW4oV1RGTW92ZSh0aGVDaGlsZHJlbikpCi0gICAgewotICAgIH0KLQot
ICAgIEZsb2F0UXVhZCBub3JtYWxpemVkUXVhZDsKLSAgICBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9u
VGV4dERhdGE+IGNoaWxkcmVuOwotCi0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhPiBkZWNvZGUoRGVjb2RlciYp
OwotfTsKLQotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLQotc3RydWN0IEltYWdlRXh0cmFj
dGlvbkRhdGFEZXRlY3RvckluZm8gewotICAgIEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3Rvcklu
Zm8oKSA9IGRlZmF1bHQ7Ci0gICAgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyhERFNj
YW5uZXJSZXN1bHQgKnNjYW5uZXJSZXN1bHQsIFZlY3RvcjxGbG9hdFF1YWQ+JiYgcXVhZHMpCi0g
ICAgICAgIDogcmVzdWx0KHNjYW5uZXJSZXN1bHQpCi0gICAgICAgICwgbm9ybWFsaXplZFF1YWRz
KFdURk1vdmUocXVhZHMpKQotICAgIHsKLSAgICB9Ci0KLSAgICBSZXRhaW5QdHI8RERTY2FubmVy
UmVzdWx0PiByZXN1bHQ7Ci0gICAgVmVjdG9yPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1YWRzOwot
fTsKLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLQotdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBub3JtYWxpemVkUXVhZDsKLSAgICBlbmNv
ZGVyIDw8IGNoaWxkcmVuOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6Om9wdGlv
bmFsPEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhPiBJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxGbG9hdFF1YWQ+IG5v
cm1hbGl6ZWRRdWFkOwotICAgIGRlY29kZXIgPj4gbm9ybWFsaXplZFF1YWQ7Ci0gICAgaWYgKCFu
b3JtYWxpemVkUXVhZCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEltYWdlRXh0cmFjdGlvblRleHREYXRhPj4gY2hpbGRyZW47Ci0gICAg
ZGVjb2RlciA+PiBjaGlsZHJlbjsKLSAgICBpZiAoIWNoaWxkcmVuKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKm5vcm1hbGl6ZWRRdWFkKSwg
V1RGTW92ZSgqY2hpbGRyZW4pIH19OwotfQotCi1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uUmVzdWx0
IHsKLSAgICBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uTGluZURhdGE+IGxpbmVzOwotCi0jaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQotICAgIFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0
b3JJbmZvPiBkYXRhRGV0ZWN0b3JzOwotI2VuZGlmCi0KLSAgICBib29sIGlzRW1wdHkoKSBjb25z
dAotICAgIHsKLSAgICAgICAgaWYgKCFsaW5lcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgICAgIGlmICghZGF0
YURldGVjdG9ycy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYK
LQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uUmVzdWx0PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBJbWFnZUV4dHJh
Y3Rpb25SZXN1bHQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29k
ZXIgPDwgbGluZXM7Ci0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgIGVuY29kZXIgPDwg
ZGF0YURldGVjdG9yczsKLSNlbmRpZgotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6
Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvblJlc3VsdD4gSW1hZ2VFeHRyYWN0aW9uUmVzdWx0Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxJbWFn
ZUV4dHJhY3Rpb25MaW5lRGF0YT4+IGxpbmVzOwotICAgIGRlY29kZXIgPj4gbGluZXM7Ci0gICAg
aWYgKCFsaW5lcykKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotI2lmIEVOQUJMRShE
QVRBX0RFVEVDVElPTikKLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25E
YXRhRGV0ZWN0b3JJbmZvPj4gZGF0YURldGVjdG9yczsKLSAgICBkZWNvZGVyID4+IGRhdGFEZXRl
Y3RvcnM7Ci0gICAgaWYgKCFkYXRhRGV0ZWN0b3JzKQotICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotI2VuZGlmCi0KLSAgICByZXR1cm4ge3sKLSAgICAgICAgV1RGTW92ZSgqbGluZXMpLAot
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICAgICAgV1RGTW92ZSgqZGF0YURldGVjdG9y
cyksCi0jZW5kaWYKLSAgICB9fTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggNGYzOTk0MjVjNGY0NmQ0NDdiMDc0ZTNjYjFlYzE4MDVk
NjA3NmIzNS4uYjM5ODYzY2FiYzY1MTRlYWQyNTA0MDk4NThiZDM5ZjUwYWEyMzdjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMzY2LDggKzM2Niw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZ2VuZXJp
Y1RvdWNoSURQcm9tcHRUaXRsZSgpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2UoKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCk7CiAjZW5kaWYKIAogI2lmIEhB
VkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RleHRSZWNvZ25pdGlvblJlc3VsdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMGMxZWUyNDczYjE4NGZmY2Iy
YWViOGViYzg3YTAxODU3NzNjMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaApAQCAtMCwwICsxLDE4MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
K09CSkNfQ0xBU1MgRERTY2FubmVyUmVzdWx0OworI2VuZGlmCisKKyNpbmNsdWRlICJGbG9hdFF1
YWQuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFRleHRSZWNvZ25pdGlv
bldvcmREYXRhIHsKKyAgICBUZXh0UmVjb2duaXRpb25Xb3JkRGF0YShjb25zdCBTdHJpbmcmIHRo
ZVRleHQsIEZsb2F0UXVhZCYmIHF1YWQpCisgICAgICAgIDogdGV4dCh0aGVUZXh0KQorICAgICAg
ICAsIG5vcm1hbGl6ZWRRdWFkKFdURk1vdmUocXVhZCkpCisgICAgeworICAgIH0KKworICAgIFN0
cmluZyB0ZXh0OworICAgIEZsb2F0UXVhZCBub3JtYWxpemVkUXVhZDsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUZXh0UmVjb2duaXRpb25Xb3Jk
RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgVGV4dFJlY29nbml0aW9uV29yZERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgdGV4dDsKKyAgICBlbmNvZGVyIDw8IG5vcm1hbGl6ZWRRdWFk
OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25p
dGlvbldvcmREYXRhPiBUZXh0UmVjb2duaXRpb25Xb3JkRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHRleHQ7CisgICAgZGVjb2RlciA+
PiB0ZXh0OworICAgIGlmICghdGV4dCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRRdWFkPiBub3JtYWxpemVkUXVhZDsKKyAgICBkZWNvZGVy
ID4+IG5vcm1hbGl6ZWRRdWFkOworICAgIGlmICghbm9ybWFsaXplZFF1YWQpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgV1RGTW92ZSgqdGV4dCksIFdURk1v
dmUoKm5vcm1hbGl6ZWRRdWFkKSB9fTsKK30KKworc3RydWN0IFRleHRSZWNvZ25pdGlvbkxpbmVE
YXRhIHsKKyAgICBUZXh0UmVjb2duaXRpb25MaW5lRGF0YShGbG9hdFF1YWQmJiBxdWFkLCBWZWN0
b3I8VGV4dFJlY29nbml0aW9uV29yZERhdGE+JiYgdGhlQ2hpbGRyZW4pCisgICAgICAgIDogbm9y
bWFsaXplZFF1YWQoV1RGTW92ZShxdWFkKSkKKyAgICAgICAgLCBjaGlsZHJlbihXVEZNb3ZlKHRo
ZUNoaWxkcmVuKSkKKyAgICB7CisgICAgfQorCisgICAgRmxvYXRRdWFkIG5vcm1hbGl6ZWRRdWFk
OworICAgIFZlY3RvcjxUZXh0UmVjb2duaXRpb25Xb3JkRGF0YT4gY2hpbGRyZW47CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0
aW9uTGluZURhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCisjaWYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQorCitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yIHsKKyAgICBUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IoKSA9IGRlZmF1bHQ7CisgICAgVGV4dFJlY29nbml0aW9u
RGF0YURldGVjdG9yKEREU2Nhbm5lclJlc3VsdCAqc2Nhbm5lclJlc3VsdCwgVmVjdG9yPEZsb2F0
UXVhZD4mJiBxdWFkcykKKyAgICAgICAgOiByZXN1bHQoc2Nhbm5lclJlc3VsdCkKKyAgICAgICAg
LCBub3JtYWxpemVkUXVhZHMoV1RGTW92ZShxdWFkcykpCisgICAgeworICAgIH0KKworICAgIFJl
dGFpblB0cjxERFNjYW5uZXJSZXN1bHQ+IHJlc3VsdDsKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiBu
b3JtYWxpemVkUXVhZHM7Cit9OworCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQor
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG5vcm1hbGl6
ZWRRdWFkOworICAgIGVuY29kZXIgPDwgY2hpbGRyZW47Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0aW9uTGluZURhdGE+IFRleHRSZWNvZ25p
dGlvbkxpbmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlv
bmFsPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1YWQ7CisgICAgZGVjb2RlciA+PiBub3JtYWxpemVk
UXVhZDsKKyAgICBpZiAoIW5vcm1hbGl6ZWRRdWFkKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8VGV4dFJlY29nbml0aW9uV29yZERhdGE+
PiBjaGlsZHJlbjsKKyAgICBkZWNvZGVyID4+IGNoaWxkcmVuOworICAgIGlmICghY2hpbGRyZW4p
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgV1RGTW92ZSgq
bm9ybWFsaXplZFF1YWQpLCBXVEZNb3ZlKCpjaGlsZHJlbikgfX07Cit9CisKK3N0cnVjdCBUZXh0
UmVjb2duaXRpb25SZXN1bHQgeworICAgIFZlY3RvcjxUZXh0UmVjb2duaXRpb25MaW5lRGF0YT4g
bGluZXM7CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgVmVjdG9yPFRleHRSZWNv
Z25pdGlvbkRhdGFEZXRlY3Rvcj4gZGF0YURldGVjdG9yczsKKyNlbmRpZgorCisgICAgYm9vbCBp
c0VtcHR5KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbGluZXMuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAg
ICAgICBpZiAoIWRhdGFEZXRlY3RvcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvblJl
c3VsdD4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgVGV4dFJlY29nbml0aW9uUmVzdWx0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IGxpbmVzOworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAg
ICBlbmNvZGVyIDw8IGRhdGFEZXRlY3RvcnM7CisjZW5kaWYKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxUZXh0UmVjb2duaXRpb25SZXN1bHQ+IFRleHRSZWNvZ25p
dGlvblJlc3VsdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25h
bDxWZWN0b3I8VGV4dFJlY29nbml0aW9uTGluZURhdGE+PiBsaW5lczsKKyAgICBkZWNvZGVyID4+
IGxpbmVzOworICAgIGlmICghbGluZXMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yPj4gZGF0YURldGVjdG9yczsKKyAgICBkZWNvZGVyID4+
IGRhdGFEZXRlY3RvcnM7CisgICAgaWYgKCFkYXRhRGV0ZWN0b3JzKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworI2VuZGlmCisKKyAgICByZXR1cm4ge3sKKyAgICAgICAgV1RGTW92ZSgq
bGluZXMpLAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICAgICAgV1RGTW92ZSgqZGF0
YURldGVjdG9ycyksCisjZW5kaWYKKyAgICB9fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCmluZGV4IGY2
OGNlNDViM2YzZjc5ZTY5MmUyMDZjZWY5ZTg4MmFiYjdhZTk1MzQuLmU5NWZiNjUyZGZmNzEzOWQ3
MDQ1M2UxNjdiNzE0OTU3ZDQ3ZTZmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KQEAgLTMxMiwxMSArMzEyLDEz
IEBAIFN0cmluZyBleGl0RnVsbFNjcmVlbkJ1dHRvbkFjY2Vzc2liaWxpdHlUaXRsZSgpCiB9CiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi1T
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKQorI2lmIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemVkTlNTdHJpbmcoQCJSZXZlYWwgSW1hZ2UiKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiTG9vayBVcCIsICJUaXRsZSBmb3IgTG9vayBVcCBhY3Rpb24gYnV0dG9u
Iik7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggYjAwYWI0ZWE5MDkxNDc2N2E0YzYzMGZlMTViNGM1NThj
MzhhZDI2ZS4uZjExMWMyNTM3OTVkMDc1OTA2ZWI1ZDc5NDYyOGEwZjIyYWE0YTc4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzQ1LDggKzM0NSw4IEBACiAjaW5jbHVk
ZSAiTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQotI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblJlc3VsdC5oIgorI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKKyNpbmNsdWRlICJUZXh0UmVjb2duaXRpb25SZXN1bHQuaCIKICNl
bmRpZgogCiB1c2luZyBKU0M6OkNhbGxEYXRhOwpAQCAtNTYwNSw3ICs1NjA1LDcgQEAgTW9ja1Bh
eW1lbnRDb29yZGluYXRvciYgSW50ZXJuYWxzOjptb2NrUGF5bWVudENvb3JkaW5hdG9yKERvY3Vt
ZW50JiBkb2N1bWVudCkKIEludGVybmFsczo6SW1hZ2VPdmVybGF5TGluZTo6fkltYWdlT3Zlcmxh
eUxpbmUoKSA9IGRlZmF1bHQ7CiBJbnRlcm5hbHM6OkltYWdlT3ZlcmxheVRleHQ6On5JbWFnZU92
ZXJsYXlUZXh0KCkgPSBkZWZhdWx0OwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RhdGlj
IEZsb2F0UXVhZCBnZXRRdWFkKGNvbnN0IFQmIG92ZXJsYXlUZXh0T3JMaW5lKQpAQCAtNTYxOCwy
NiArNTYxOCwyNiBAQCBzdGF0aWMgRmxvYXRRdWFkIGdldFF1YWQoY29uc3QgVCYgb3ZlcmxheVRl
eHRPckxpbmUpCiAgICAgfTsKIH0KIAotc3RhdGljIEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhIG1h
a2VEYXRhRm9yTGluZShjb25zdCBJbnRlcm5hbHM6OkltYWdlT3ZlcmxheUxpbmUmIGxpbmUpCitz
dGF0aWMgVGV4dFJlY29nbml0aW9uTGluZURhdGEgbWFrZURhdGFGb3JMaW5lKGNvbnN0IEludGVy
bmFsczo6SW1hZ2VPdmVybGF5TGluZSYgbGluZSkKIHsKICAgICByZXR1cm4gewogICAgICAgICBn
ZXRRdWFkPEludGVybmFsczo6SW1hZ2VPdmVybGF5TGluZT4obGluZSksCi0gICAgICAgIGxpbmUu
Y2hpbGRyZW4ubWFwKFtdKGF1dG8mIHRleHRDaGlsZCkgLT4gSW1hZ2VFeHRyYWN0aW9uVGV4dERh
dGEgeworICAgICAgICBsaW5lLmNoaWxkcmVuLm1hcChbXShhdXRvJiB0ZXh0Q2hpbGQpIC0+IFRl
eHRSZWNvZ25pdGlvbldvcmREYXRhIHsKICAgICAgICAgICAgIHJldHVybiB7IHRleHRDaGlsZC50
ZXh0LCBnZXRRdWFkPEludGVybmFsczo6SW1hZ2VPdmVybGF5VGV4dD4odGV4dENoaWxkKSB9Owog
ICAgICAgICB9KQogICAgIH07CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIHZvaWQgSW50ZXJuYWxzOjpp
bnN0YWxsSW1hZ2VPdmVybGF5KEVsZW1lbnQmIGVsZW1lbnQsIFZlY3RvcjxJbWFnZU92ZXJsYXlM
aW5lPiYmIGxpbmVzKQogewogICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpKQogICAg
ICAgICByZXR1cm47CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBkb3duY2Fz
dDxIVE1MRWxlbWVudD4oZWxlbWVudCkudXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJ
bWFnZUV4dHJhY3Rpb25SZXN1bHQgewotICAgICAgICBsaW5lcy5tYXAoW10gKGF1dG8mIGxpbmUp
IC0+IEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhIHsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisgICAgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpLnVwZGF0ZVdpdGhUZXh0UmVjb2du
aXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICAgICAgbGluZXMubWFwKFtd
IChhdXRvJiBsaW5lKSAtPiBUZXh0UmVjb2duaXRpb25MaW5lRGF0YSB7CiAgICAgICAgICAgICBy
ZXR1cm4gbWFrZURhdGFGb3JMaW5lKGxpbmUpOwogICAgICAgICB9KQogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0
aWVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNGNiY2JmZTg2ZGU0OGQwZDRi
YmNiNjI5ZjNjZmNmNGFiNzkwYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25V
dGlsaXRpZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJL
aXRBZGRpdGlvbnMvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzQWRkaXRpb25zLmg+Ci0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9u
VXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rp
b25VdGlsaXRpZXMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZTU2ZmE1ZWM0
Y2I1MDQ0N2FiYzYzY2UzOThhNGVlMmI4YWQzZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4
dHJhY3Rpb25VdGlsaXRpZXMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJJbWFnZUV4dHJhY3Rpb25VdGls
aXRpZXMuaCIKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRB
ZGRpdGlvbnMvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzQWRkaXRpb25zLm1tPgotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0
aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25V
dGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzlmZTczNjY1Njk0ZTRkMmQ4NTlkOTdmODRiYmRkYmI0
MmZjOGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKK0BjbGFzcyBWS0lt
YWdlQW5hbHlzaXM7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBUZXh0UmVjb2duaXRp
b25SZXN1bHQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIGlzTGl2ZVRleHRFbmFi
bGVkKCk7CitXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgbWFrZVRleHRSZWNvZ25pdGlv
blJlc3VsdChWS0ltYWdlQW5hbHlzaXMgKik7CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4
dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNhNmEzM2ViNjJkYzBmNGZj
ZWI0ZDc0YzA1YTVmZTkxMmNhNDNhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tCkBAIC0wLDAgKzEsMTE0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXh0UmVjb2du
aXRpb25VdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworI2ltcG9y
dCA8VmlzaW9uS2l0Q29yZS9WS0ltYWdlQW5hbHlzaXNfV2ViS2l0Lmg+CisjaW1wb3J0IDxWaXNp
b25LaXRDb3JlL1ZLUXVhZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1
bHQuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZsYWdzU1BJLmg+CisKKy8vIE5v
dGUgdGhhdCB0aGlzIGlzIGFjdHVhbGx5IGRlY2xhcmVkIGFzIGFuIE9iamVjdGl2ZS1DIGNsYXNz
IGluIFZpc2lvbktpdCBoZWFkZXJzLgorLy8gSG93ZXZlciwgZm9yIHN0YWdpbmcgcHVycG9zZXMs
IHdlIGRlZmluZSBpdCBhcyBhIHByb3RvY29sIGluc3RlYWQgdG8gYXZvaWQgc3ltYm9sCisvLyBy
ZWRlZmluaXRpb24gZXJyb3JzIHRoYXQgd291bGQgYXJpc2Ugd2hlbiBjb21waWxpbmcgd2l0aCBh
biBTREsgdGhhdCBjb250YWlucyB0aGUKKy8vIHJlYWwgZGVmaW5pdGlvbiBvZiBWS1dLRGF0YURl
dGVjdG9ySW5mby4KKy8vIE9uY2UgdGhlIGNoYW5nZXMgaW4gcmRhcjovLzc3OTc4NzQ1IGhhdmUg
YmVlbiBpbiB0aGUgU0RLIGZvciBhIHdoaWxlLCB3ZSBjYW4gcmVtb3ZlCisvLyB0aGlzIHN0YWdp
bmcgZGVjbGFyYXRpb24gYW5kIHVzZSB0aGUgcmVhbCBPYmplY3RpdmUtQyBjbGFzcy4KK0Bwcm90
b2NvbCBWS1dLRGF0YURldGVjdG9ySW5mbworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBERFNjYW5uZXJSZXN1bHQgKnJlc3VsdDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNBcnJheTxWS1F1YWQgKj4gKmJvdW5kaW5nUXVhZHM7CitAZW5kCisKK0BpbnRlcmZhY2Ug
VktJbWFnZUFuYWx5c2lzIChTdGFnaW5nXzc3OTc4NzQ1KQorQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU0FycmF5PGlkIDxWS1dLRGF0YURldGVjdG9ySW5mbz4+ICp0ZXh0RGF0YURl
dGVjdG9yczsKK0BlbmQKKworQGludGVyZmFjZSBWS1dLVGV4dEluZm8gKFN0YWdpbmdfNzcwODYx
MDUpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8VktXS1RleHRJbmZv
ICo+ICpjaGlsZHJlbjsKK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworc3RhdGljIEZsb2F0UXVhZCBmbG9hdFF1YWQoVktRdWFkICpxdWFkKQor
eworICAgIHJldHVybiB7IHF1YWQudG9wTGVmdCwgcXVhZC50b3BSaWdodCwgcXVhZC5ib3R0b21S
aWdodCwgcXVhZC5ib3R0b21MZWZ0IH07Cit9CisKK3N0YXRpYyBWZWN0b3I8RmxvYXRRdWFkPiBm
bG9hdFF1YWRzKE5TQXJyYXk8VktRdWFkICo+ICp2a1F1YWRzKQoreworICAgIFZlY3RvcjxGbG9h
dFF1YWQ+IHF1YWRzOworICAgIHF1YWRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmtRdWFkcy5j
b3VudCk7CisgICAgZm9yIChWS1F1YWQgKnZrUXVhZCBpbiB2a1F1YWRzKQorICAgICAgICBxdWFk
cy51bmNoZWNrZWRBcHBlbmQoZmxvYXRRdWFkKHZrUXVhZCkpOworICAgIHJldHVybiBxdWFkczsK
K30KKworVGV4dFJlY29nbml0aW9uUmVzdWx0IG1ha2VUZXh0UmVjb2duaXRpb25SZXN1bHQoVktJ
bWFnZUFuYWx5c2lzICphbmFseXNpcykKK3sKKyAgICBOU0FycmF5PFZLV0tUZXh0SW5mbyAqPiAq
YWxsTGluZXMgPSBhbmFseXNpcy5hbGxMaW5lczsKKyAgICBUZXh0UmVjb2duaXRpb25SZXN1bHQg
cmVzdWx0OworICAgIHJlc3VsdC5saW5lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGFsbExpbmVz
LmNvdW50KTsKKyAgICBmb3IgKFZLV0tUZXh0SW5mbyAqbGluZSBpbiBhbGxMaW5lcykgeworICAg
ICAgICBWZWN0b3I8VGV4dFJlY29nbml0aW9uV29yZERhdGE+IGNoaWxkcmVuOworICAgICAgICBp
ZiAoW2xpbmUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihjaGlsZHJlbildKSB7CisgICAg
ICAgICAgICBOU0FycmF5PFZLV0tUZXh0SW5mbyAqPiAqdmtDaGlsZHJlbiA9IGxpbmUuY2hpbGRy
ZW47CisgICAgICAgICAgICBjaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZrQ2hpbGRy
ZW4uY291bnQpOworICAgICAgICAgICAgZm9yIChWS1dLVGV4dEluZm8gKmNoaWxkIGluIHZrQ2hp
bGRyZW4pCisgICAgICAgICAgICAgICAgY2hpbGRyZW4udW5jaGVja2VkQXBwZW5kKHsgY2hpbGQu
c3RyaW5nLCBmbG9hdFF1YWQoY2hpbGQucXVhZCkgfSk7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgY2hpbGRyZW4uYXBwZW5kKHsgbGluZS5zdHJpbmcsIGZsb2F0UXVhZChsaW5lLnF1YWQp
IH0pOworICAgICAgICByZXN1bHQubGluZXMudW5jaGVja2VkQXBwZW5kKHsgZmxvYXRRdWFkKGxp
bmUucXVhZCksIFdURk1vdmUoY2hpbGRyZW4pIH0pOworICAgIH0KKworI2lmIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKKyAgICBpZiAoW2FuYWx5c2lzIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IodGV4dERhdGFEZXRlY3RvcnMpXSkgeworICAgICAgICBhdXRvIGRhdGFEZXRlY3RvcnMgPSBy
ZXRhaW5QdHIoYW5hbHlzaXMudGV4dERhdGFEZXRlY3RvcnMpOworICAgICAgICByZXN1bHQuZGF0
YURldGVjdG9ycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KFtkYXRhRGV0ZWN0b3JzIGNvdW50XSk7
CisgICAgICAgIGZvciAoaWQgPFZLV0tEYXRhRGV0ZWN0b3JJbmZvPiBpbmZvIGluIGRhdGFEZXRl
Y3RvcnMuZ2V0KCkpCisgICAgICAgICAgICByZXN1bHQuZGF0YURldGVjdG9ycy51bmNoZWNrZWRB
cHBlbmQoeyBpbmZvLnJlc3VsdCwgZmxvYXRRdWFkcyhpbmZvLmJvdW5kaW5nUXVhZHMpIH0pOwor
ICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRB
ZGRpdGlvbnMvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzQWRkaXRpb25zLm1tPgorI2Vsc2UKKwor
Ym9vbCBpc0xpdmVUZXh0RW5hYmxlZCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKyNlbmRp
ZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJ
Q2FzdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5k
ZXggNjNhMmQ3OTg4MGRkMWM0OGMzZjgzNTBmMWRlYjY1ZTUxMjA5YmNhYS4uNWQxMDQ5Mzk5MWMz
ZWJjNDBkYmEwMmIzOWE3Zjk1ZjBhMGM0M2I5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTU0Myw3ICs1NDMsNyBAQCBpbmxpbmUgV0tDb250
ZXh0TWVudUl0ZW1UYWcgdG9BUEkoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQog
I2VuZGlmCiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU6CiAg
ICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNlIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U7CiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdUcmFu
c2xhdGU7CkBAIC03NDYsNyArNzQ2LDcgQEAgaW5saW5lIFdlYkNvcmU6OkNvbnRleHRNZW51QWN0
aW9uIHRvSW1wbChXS0NvbnRleHRNZW51SXRlbVRhZyB0YWcpCiAgICAgICAgIHJldHVybiBXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU7CiAjZW5kaWYKICAgICBjYXNlIGtXS0Nv
bnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRh
Z1RyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1Ry
YW5zbGF0ZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2lu
ZG93OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCBlNTdkZTcxODRjODE5M2EwYWQzMmUwNTBjODk0MjVm
NTdjOTcxNjg1Li4yYmIxMmMyNzhkNWFkZjIwOGYyNThiYzJlZThlNDY4N2EyZGI2MjA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnND
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDb2NvYS5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0
cmlidXRlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0
UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ29yZVRleHRTUEkuaD4K
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01MSwxMCArNTIsNiBAQAogI2luY2x1ZGUg
PFdlYktpdEFkZGl0aW9ucy9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFkZGl0aW9ucy5tbT4K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0jaW1wb3J0IDxXZWJDb3Jl
L0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50QXV0
aG9yaXphdGlvblN0YXR1cy5oPgpAQCAtNjg0LDE0ICs2ODEsMTQgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1E
YXRhKERlY28KIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVO
QUJMRShEQVRBX0RFVEVDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKIAotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlRXh0
cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYgaW5m
bykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0
b3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6
VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJiBpbmZvKQogewogICAgIGVuY29kZXIgPDwgaW5m
by5yZXN1bHQuZ2V0KCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUV4
dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRl
Y29kZXIsIFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mIHJlc3VsdCkK
K2Jvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+
OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6VGV4dFJlY29n
bml0aW9uRGF0YURldGVjdG9yJiByZXN1bHQpCiB7CiAgICAgYXV0byBzY2FubmVyUmVzdWx0ID0g
SVBDOjpkZWNvZGU8RERTY2FubmVyUmVzdWx0PihkZWNvZGVyLCBAWyBQQUw6OmdldEREU2Nhbm5l
clJlc3VsdENsYXNzKCkgXSk7CiAgICAgaWYgKCFzY2FubmVyUmVzdWx0KQpAQCAtNzAxLDYgKzY5
OCw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0
ZWN0b3JJbmZvPjo6ZGVjb2RlUGxhdGZvcm1EYXRhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc3N2I2NTVmYTljNmNmMGYxZmYwOWViY2ZiYTVmNGU5MGYxNzMxYWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLQotI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Qgewot
ICAgIE5vVGV4dCwKLSAgICBUZXh0LAotICAgIERhdGFEZXRlY3RvciwKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdD4gewotICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBk
YXRlUmVzdWx0LAotICAgICAgICBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6
Tm9UZXh0LAotICAgICAgICBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6VGV4
dCwKLSAgICAgICAgV2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRl
Y3RvcgotICAgID47Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVGV4
dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWFjZTQ3ZDZjNWM5ZTMyZjI0MjBm
ZWVhNWEyNGIzYmY4MzEwNGU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCisjaW5j
bHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xh
c3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdCB7CisgICAgTm9UZXh0LAor
ICAgIFRleHQsCisgICAgRGF0YURldGVjdG9yLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktp
dDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgV2ViS2l0OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQsCisg
ICAgICAgIFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQsCisgICAg
ICAgIFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0OjpUZXh0LAorICAgICAgICBX
ZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6RGF0YURldGVjdG9yCisgICAgPjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggMDg3ODhjODJmMmEzNjY2YmQxNTVkZmMzZTQ1NmIwYmJlNTEwMmU0YS4uOTFkMjFkOGYy
MzZiZDE4ODMyYjUwZDJjYWQzMTFjYzZmMjQ4OGNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMTYsOCArMTE2LDggQEAKICNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNlbmRpZgogCi0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQu
aD4KKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVj
b2duaXRpb25SZXN1bHQuaD4KICNlbmRpZgogCiAvLyBGSVhNRTogU2VlbXMgbGlrZSB3ZSBjb3Vs
ZCB1c2Ugc3RkOjp0dXBsZSB0byBjdXQgZG93biB0aGUgY29kZSBiZWxvdyBhIGxvdCEKQEAgLTMy
MjUsMTcgKzMyMjUsMTcgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TDo6QWN0aXZlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmEKIAogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCi12b2lk
IEFyZ3VtZW50Q29kZXI8SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvJiBp
bmZvKQordm9pZCBBcmd1bWVudENvZGVyPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3Im
IGluZm8pCiB7CiAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29kZXIsIGluZm8pOwogICAgIGVu
Y29kZXIgPDwgaW5mby5ub3JtYWxpemVkUXVhZHM7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8SW1hZ2VF
eHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz4gQXJndW1lbnRDb2RlcjxJbWFnZUV4dHJhY3Rpb25E
YXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCitzdGQ6Om9wdGlvbmFs
PFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBJbWFnZUV4
dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvIHJlc3VsdDsKKyAgICBUZXh0UmVjb2duaXRpb25EYXRh
RGV0ZWN0b3IgcmVzdWx0OwogICAgIGlmICghZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIHJl
c3VsdCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKQEAgLTMyNDgsNiArMzI0OCw2
IEBAIHN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz4gQXJndW1l
bnRDb2RlcjxJbWFnZUV4dHJhY3Rpb25EYXRhCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsK
IH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBkYWU4MGZmN2RkMjU0Mjg5MTIxYjQxMzQw
Yjc3ZDBmOWM0ZjUwNjJkLi45Mzk3YjMyOGFiMTU2YmY2YmJiMzgxMDUwN2QxMGYzZWFjOTUwNzFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAt
MTUwLDcgKzE1MCw3IEBAIHN0cnVjdCBFdmVudFRyYWNraW5nUmVnaW9uczsKIHN0cnVjdCBFeGNl
cHRpb25EZXRhaWxzOwogc3RydWN0IEZvbnRBdHRyaWJ1dGVzOwogc3RydWN0IEZpbGVDaG9vc2Vy
U2V0dGluZ3M7Ci1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbzsKK3N0cnVj
dCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I7CiBzdHJ1Y3QgUmF3RmlsZTsKIHN0cnVjdCBT
aGFyZURhdGE7CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKQEAgLTg0MiwxNiArODQy
LDE2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0w6OkFjdGl2ZUluZm8+IHsKIH07CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRy
YWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPiBk
ZWNvZGUoRGVjb2RlciYpOwotICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEoRGVj
b2RlciYsIFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mKTsKK3RlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURl
dGVjdG9yPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImKTsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9y
PiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJik7Cisg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVBsYXRmb3JtRGF0YShEZWNv
ZGVyJiwgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJik7CiB9OwogCi0jZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
KyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKIAogfSAvLyBuYW1lc3BhY2UgSVBDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmMjNk
MjFlYjgzYWQ1ZDFmNDQ4MjI4MjgwZjVmYmM2NTQwNzA5MzgxLi44Y2ZjNjA3NGQwNTYyYWE1ODJj
NWMwZDIzNDg4ZWU2MzZiMmM5YTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC03NSwxMSAr
NzUsMTEgQEAgUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCiBQbGF0Zm9ybS9jbGFzc2lmaWVyL2Nv
Y29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuY3BwCiBQbGF0Zm9ybS9j
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNwcAogCi1QbGF0Zm9y
bS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMubW0KIFBsYXRmb3JtL2NvY29hL0xheWVy
SG9zdGluZ0NvbnRleHQubW0KIFBsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJl
c2VudGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9s
bGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9TaGFyZWRNZW1vcnlDb2NvYS5jcHAKK1BsYXRmb3JtL2Nv
Y29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbQogUGxhdGZvcm0vY29jb2EvV0tDcmFzaFJl
cG9ydGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUu
bW0KIFBsYXRmb3JtL2NvY29hL1dlYktpdEFkZGl0aW9ucy5tbSBAbm8tdW5pZnkKQEAgLTQ4NSw3
ICs0ODUsNyBAQCBVSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0K
IFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCiBVSVByb2Nlc3MvaW9z
L1dLR2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1cml0eU9yaWdpbi5tbQogVUlQcm9jZXNz
L2lvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tCi1VSVByb2Nlc3Mv
aW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0KK1VJUHJvY2Vzcy9pb3Mv
V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXli
b2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tCiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNl
cnZlci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KQEAgLTUy
NCw3ICs1MjQsNiBAQCBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCiBVSVBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQogVUlQcm9jZXNzL21hYy9XaW5kb3dTZXJ2
ZXJDb25uZWN0aW9uLm1tCiBVSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW0KLVVJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5t
bQogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KIFVJUHJvY2Vz
cy9tYWMvV0tQcmludGluZ1ZpZXcubW0KIFVJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2Vu
dGVyLm1tCkBAIC01MzIsNiArNTMxLDcgQEAgVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNl
UGlja2VyRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCiBV
SVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQogVUlQcm9jZXNzL21h
Yy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQorVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyLm1tCiAKIFVJUHJvY2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0KIFVJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRp
YVVzYWdlTWFuYWdlckNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCmluZGV4IGVmY2M1MzU0Y2JkYjU5MTQ5YTMw
NDZiYjM1MzAxNWUwNGI2YmI0ZDEuLmMzN2ZjODY5ZDgyYzc0ZDEwOGY3ZDY4NzM0YWE5OTJmNjli
YjNkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
bGVtZW50QWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50QWN0aW9uLm1tCkBAIC0xNjIsMTYgKzE2MiwxNiBAQCArIChpbnN0YW5jZXR5cGUp
X2VsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBjdXN0b21U
aXRsZTooTgogICAgICAgICAvLyBUaGlzIGFjdGlvbiBtdXN0IHN0aWxsIGV4aXN0IGZvciBjb21w
YXRpYmlsaXR5LCBidXQgZG9lc24ndCBkbyBhbnl0aGluZy4KICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbjoKLSNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLSAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpsb2NhbGl6ZWROU1N0cmlu
ZyhAIkdldCBJbmZvIik7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICB0aXRs
ZSA9IFdFQl9VSV9TVFJJTkcoIlNob3cgVGV4dCIsICJUaXRsZSBmb3IgU2hvdyBUZXh0IGFjdGlv
biBidXR0b24iKTsKICAgICAgICAgaGFuZGxlciA9IF4oV0tBY3Rpb25TaGVldEFzc2lzdGFudCAq
YXNzaXN0YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgewogICAgICAg
ICAgICAgW2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6dHlwZSBlbGVtZW50
OmFjdGlvbkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNdOwogICAgICAgICB9OwogI2VuZGlmCiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZToK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKKyAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFn
ZSgpOwogICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICphc3Npc3Rh
bnQsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rpb25JbmZvKSB7CiAgICAgICAgICAgICBb
YXNzaXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTp0eXBlIGVsZW1lbnQ6YWN0aW9u
SW5mbyBuZWVkc0ludGVyYWN0aW9uOllFU107CiAgICAgICAgIH07CkBAIC0yNDQsMTQgKzI0NCwx
NCBAQCArIChVSUltYWdlICopaW1hZ2VGb3JFbGVtZW50QWN0aW9uVHlwZTooX1dLRWxlbWVudEFj
dGlvblR5cGUpYWN0aW9uVHlwZQogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblRvZ2dsZVNob3dM
aW5rUHJldmlld3M6CiAgICAgICAgIHJldHVybiBuaWw7IC8vIEludGVudGlvbmFsbHkgZW1wdHku
CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbjoKLSNpZiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgcmV0dXJuIFtfV0tFbGVtZW50QWN0aW9uIGlt
YWdlRm9yRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb25dOworI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKyAgICAgICAgcmV0dXJuIFtVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJ0
ZXh0LnZpZXdmaW5kZXIiXTsKICNlbHNlCiAgICAgICAgIHJldHVybiBuaWw7CiAjZW5kaWYKICAg
ICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6Ci0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgICAgIHJldHVybiBbX1dLRWxlbWVudEFjdGlvbiBpbWFnZUZvckVs
ZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2VdOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
KyAgICAgICAgcmV0dXJuIFtVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJpbmZvLmNpcmNsZSJd
OwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG5pbDsKICNlbmRpZgpAQCAtMzU4LDEwICszNTgsNiBA
QCAtIChVSUFjdGlvbiAqKXVpQWN0aW9uRm9yRWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudEluZm8KIH0KICNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkKIAot
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvX1dL
RWxlbWVudEFjdGlvbkFkZGl0aW9ucy5tbT4KLSNlbmRpZgotCiBAZW5kCiAKICNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCA3ZjUzOTAzNjUwMzBmYmYyYjQ1ZDIxMDY2ZmU5
OGM4YWEzOGE5ZmU3Li41MTY3YmRiOGE1MGFmM2QzM2U5OTcxZWZlMjg4ZmIyYzY4NDBlZmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2Nv
YS5tbQpAQCAtNzksMTAgKzc5LDcgQEAgU09GVF9MSU5LX0NMQVNTKFdlYkNvbnRlbnRBbmFseXNp
cywgV2ViRmlsdGVyRXZhbHVhdG9yKTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlDb2NvYUFkZGl0aW9u
c0JlZm9yZS5tbT4KLSNlbmRpZgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKy8vIEZJ
WE1FOiBUaGlzIGFkZGl0aW9ucyBmaWxlIHNob3VsZCBiZSByZW5hbWVkIHRvIFdlYlBhZ2VQcm94
eUFkZGl0aW9ucy5tbS4KICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRp
dGlvbnMuaD4KICNlbHNlCiAjZGVmaW5lIFdFQl9QQUdFX1BST1hZX0FERElUSU9OUwpAQCAtNjE1
LDE4ICs2MTIsMTggQEAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgV2ViUGFnZVByb3h5
OjpjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hFeHRlbnMKIH0KIAogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKIAotdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51UmV2
ZWFsSW1hZ2UoKQordm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1h
Z2UoKQogewogICAgIGF1dG8mIHJlc3VsdCA9IG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0
YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpOwogICAgIGlmICghcmVzdWx0LmltYWdlQml0bWFwKQog
ICAgICAgICByZXR1cm47CiAKLSAgICByZXZlYWxFeHRyYWN0ZWRJbWFnZUluUHJldmlld1BhbmVs
KCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29sVGlwVGV4dCwgVVJMIHsgVVJMIHsgfSwg
cmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSk7CisgICAgc2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQ
cmV2aWV3UGFuZWwoKnJlc3VsdC5pbWFnZUJpdG1hcCwgcmVzdWx0LnRvb2xUaXBUZXh0LCBVUkwg
eyBVUkwgeyB9LCByZXN1bHQuYWJzb2x1dGVJbWFnZVVSTCB9KTsKIH0KIAotI2VuZGlmIC8vIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
IAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDdlYjdiMjNmNDQ0MjU1NmRiODVmZDA1
NzczZTI0NmRhOGI5OWJhOGQuLmJiYzY4M2FjMDcxNTEzOGE2MDFmOGQ4NTc5NmI5MDFmZGMxNzBi
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAt
NTUsNiArNTUsNyBAQCBPQkpDX0NMQVNTIE5TTWVudTsKIE9CSkNfQ0xBU1MgTlNUZXh0SW5wdXRD
b250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIFFMUHJldmlld1BhbmVsOwor
T0JKQ19DTEFTUyBWS0ltYWdlQW5hbHl6ZXI7CiBPQkpDX0NMQVNTIFdLQWNjZXNzaWJpbGl0eVNl
dHRpbmdzT2JzZXJ2ZXI7CiBPQkpDX0NMQVNTIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjsK
IE9CSkNfQ0xBU1MgV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZTsKQEAgLTg0LDEwICs4NSw2IEBAIE9C
SkNfQ0xBU1MgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXI7CiBPQkpDX0NMQVNTIFdLUERGSFVE
VmlldzsKICNlbmRpZgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdl
YktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFkZGl0aW9uc0JlZm9yZS5oPgotI2VuZGlmCi0KIG5h
bWVzcGFjZSBBUEkgewogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIE9iamVjdDsKQEAgLTk5
LDE0ICs5NiwxMSBAQCBjbGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7CiBjbGFzcyBJbnRQb2lu
dDsKIHN0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKIHN0cnVjdCBTaGFyZURhdGFXaXRo
UGFyc2VkVVJMOworc3RydWN0IFRleHRSZWNvZ25pdGlvblJlc3VsdDsKIAogI2lmIEhBVkUoVFJB
TlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQogc3RydWN0IFRy
YW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ7Ci0jZW5kaWYKIH0KIAogQHBy
b3RvY29sIFdlYlZpZXdJbXBsRGVsZWdhdGUKQEAgLTYwMiw5ICs1OTYsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGluZygpOwogICAgIGJvb2wgc2hv
dWxkUmVxdWVzdENhbmRpZGF0ZXMoKSBjb25zdDsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNU
SU9OKQotICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdlVVJM
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJik7Ci0gICAgdm9p
ZCBjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0
bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihj
b25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VE
YXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3Vs
dCYmKT4mJik7CisgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBV
UkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgYm9vbCBhY2NlcHRzUHJldmlld1Bh
bmVsQ29udHJvbChRTFByZXZpZXdQYW5lbCAqKTsKQEAgLTc1Myw2ICs3NDcsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNlbmREcmFnRW5kVG9QYWdlKENHUG9pbnQgZW5kUG9pbnQsIE5TRHJhZ09w
ZXJhdGlvbik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBWS0lt
YWdlQW5hbHl6ZXIgKmVuc3VyZUltYWdlQW5hbHl6ZXIoKTsKKyNlbmRpZgorCiAgICAgV2Vha09i
akNQdHI8TlNWaWV3PFdlYlZpZXdJbXBsRGVsZWdhdGU+PiBtX3ZpZXc7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsKICAgICBSZWY8V2ViUGFnZVByb3h5PiBt
X3BhZ2U7CkBAIC05MDAsOCArODk4LDkgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V0tSZXZl
YWxJdGVtUHJlc2VudGVyPiBtX3JldmVhbEl0ZW1QcmVzZW50ZXI7CiAjZW5kaWYKIAotI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0lt
cGxBZGRpdGlvbnNBZnRlci5oPgorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBSZWZQ
dHI8V29ya1F1ZXVlPiBtX2ltYWdlQW5hbHl6ZXJRdWV1ZTsKKyAgICBSZXRhaW5QdHI8VktJbWFn
ZUFuYWx5emVyPiBtX2ltYWdlQW5hbHl6ZXI7CiAjZW5kaWYKIH07CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGMzZmE2Y2FlMzNjNTM4
YzExZTMwOTcxNDM4Yjc0MDk1NmUwMjcwMjYuLmUzMjIyMWMzNTI0YThjNjYyY2MwYWM4NDg0N2Ix
ODhiOWNjNDYzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW1w
b3J0ICJUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCiAj
aW1wb3J0ICJVbmRvT3JSZWRvLmgiCkBAIC02MCw3ICs2MSw2IEBACiAjaW1wb3J0ICJXS0VkaXRD
b21tYW5kLmgiCiAjaW1wb3J0ICJXS0Vycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIldLSW1hZ2VFeHRyYWN0aW9uUHJldmll
d0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIgog
I2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgogI2ltcG9ydCAiV0tQREZIVURWaWV3LmgiCkBAIC03
MCw2ICs3MCw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tTaGFyZVNoZWV0Lmg+CiAjaW1wb3J0ICJX
S1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLVmlld0xheW91dFN0cmF0
ZWd5LmgiCisjaW1wb3J0ICJXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmgiCiAjaW1w
b3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJCYWNrRm9yd2FyZExpc3QuaD4KQEAgLTk4LDcgKzk5
LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRB
dHRyaWJ1dGVDaGFuZ2VzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9LZXlwcmVzc0NvbW1hbmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5TlNQYXN0ZWJvYXJk
VHlwZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9hZGVyTlNVUkxFeHRyYXMuaD4KQEAgLTEwOCw2
ICsxMDgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRB
bHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25S
ZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmg+CkBAIC0xNDUsNiAr
MTQ2LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUu
aCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2ltcG9ydCA8VmlzaW9u
S2l0Q29yZS9WS0ltYWdlQW5hbHlzaXNfV2ViS2l0Lmg+CisjaW1wb3J0IDxWaXNpb25LaXRDb3Jl
L1ZLSW1hZ2VBbmFseXplci5oPgorI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS1F1YWQuaD4KKyNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJ
X1NFUlZJQ0VTKQogI2ltcG9ydCA8VHJhbnNsYXRpb25VSVNlcnZpY2VzL0xUVUlUcmFuc2xhdGlv
blZpZXdDb250cm9sbGVyLmg+CiAKQEAgLTE4Miw5ICsxODksODUgQEAgLSAodm9pZClzZXRDYW5T
aG93TWVkaWFTZWxlY3Rpb25CdXR0b246KEJPT0wpY2FuU2hvd01lZGlhU2VsZWN0aW9uQnV0dG9u
OwogQGVuZAogI2VuZGlmCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL1dlYlZpZXdJbXBsQWRkaXRpb25zLm1tPgotI2VuZGlmCisjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9O
QUwoVmlzaW9uS2l0Q29yZSkKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChWaXNpb25LaXRDb3Jl
LCBWS0ltYWdlQW5hbHl6ZXIpCitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoVmlzaW9uS2l0Q29y
ZSwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCkKKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ug
PHJkYXI6Ly83MjQ4MDQ1OT4gaXMgaW4gdGhlIFNESy4KK0BpbnRlcmZhY2UgVktJbWFnZUFuYWx5
emVyUmVxdWVzdCAoU3RhZ2luZ183MjQ4MDQ1OSkKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VS
TCAqaW1hZ2VVUkw7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVUkwgKnBhZ2VVUkw7CitAZW5k
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitWS0ltYWdlQW5hbHl6ZXIgKldlYlZpZXdJbXBsOjpl
bnN1cmVJbWFnZUFuYWx5emVyKCkKK3sKKyAgICBpZiAoIW1faW1hZ2VBbmFseXplcikgeworICAg
ICAgICBtX2ltYWdlQW5hbHl6ZXJRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJLaXQgaW1h
Z2UgYW5hbHl6ZXIgcXVldWUiKTsKKyAgICAgICAgbV9pbWFnZUFuYWx5emVyID0gYWRvcHROUyhb
YWxsb2NWS0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAgICAgW21faW1hZ2VB
bmFseXplciBzZXRDYWxsYmFja1F1ZXVlOm1faW1hZ2VBbmFseXplclF1ZXVlLT5kaXNwYXRjaFF1
ZXVlKCldOworICAgIH0KKyAgICByZXR1cm4gbV9pbWFnZUFuYWx5emVyLmdldCgpOworfQorCitz
dGF0aWMgUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+IGNyZWF0ZUltYWdlQW5hbHlz
aXNSZXF1ZXN0KENHSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFVS
TCYgcGFnZVVSTCwgVktBbmFseXNpc1R5cGVzIHR5cGVzKQoreworICAgIGF1dG8gcmVxdWVzdCA9
IGFkb3B0TlMoW2FsbG9jVktJbWFnZUFuYWx5emVyUmVxdWVzdEluc3RhbmNlKCkgaW5pdFdpdGhD
R0ltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VPcmllbnRhdGlvblVwIHJlcXVlc3RUeXBl
OnR5cGVzXSk7CisgICAgW3JlcXVlc3Qgc2V0SW1hZ2VVUkw6aW1hZ2VVUkxdOworICAgIFtyZXF1
ZXN0IHNldFBhZ2VVUkw6cGFnZVVSTF07CisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwg
Y29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYgY29tcGxldGlvbikK
K3sKKyAgICBpZiAoIWlzTGl2ZVRleHRFbmFibGVkKCkpIHsKKyAgICAgICAgY29tcGxldGlvbih7
IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBpbWFnZUJpdG1hcCA9IFNo
YXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlRGF0YSk7CisgICAgaWYgKCFpbWFnZUJpdG1hcCkg
eworICAgICAgICBjb21wbGV0aW9uKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvIGNnSW1hZ2UgPSBpbWFnZUJpdG1hcC0+bWFrZUNHSW1hZ2UoKTsKKyAgICBhdXRvIHJl
cXVlc3QgPSBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdChjZ0ltYWdlLmdldCgpLCBpbWFnZVVS
TCwgW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRVUkwoKV0sIFZL
QW5hbHlzaXNUeXBlVGV4dCk7CisgICAgYXV0byBzdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKKyAgICBbZW5zdXJlSW1hZ2VBbmFseXplcigpIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3Qu
Z2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIo
W2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCBzdGFydFRpbWVdIChWS0ltYWdlQW5h
bHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICopIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWlu
UnVuTG9vcChbY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHJlc3VsdCA9IG1ha2VU
ZXh0UmVjb2duaXRpb25SZXN1bHQoYW5hbHlzaXMpLCBzdGFydFRpbWVdICgpIG11dGFibGUgewor
ICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgY29tcGxldGVk
IGluICUuMGYgbXMgKGZvdW5kIHRleHQ/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0
YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksICFyZXN1bHQuaXNFbXB0eSgpKTsKKyAgICAgICAgICAg
IGNvbXBsZXRpb24oV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCld
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhj
b25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit7CisgICAgaWYgKCFpc0xpdmVU
ZXh0RW5hYmxlZCgpKSB7CisgICAgICAgIGNvbXBsZXRpb24oZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAubWFrZUNHSW1hZ2Uo
KTsKKyAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdChjZ0ltYWdl
LmdldCgpLCBpbWFnZVVSTCwgW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzptX3BhZ2UtPmN1
cnJlbnRVUkwoKV0sIFZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoKTsKKyAgICBhdXRvIHN0YXJ0
VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIFtlbnN1cmVJbWFnZUFuYWx5emVyKCkg
cHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRp
b25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiks
IHN0YXJ0VGltZV0gKFZLSW1hZ2VBbmFseXNpcyAqYW5hbHlzaXMsIE5TRXJyb3IgKikgbXV0YWJs
ZSB7CisgICAgICAgIEJPT0wgcmVzdWx0ID0gW2FuYWx5c2lzIGhhc1Jlc3VsdHNGb3JBbmFseXNp
c1R5cGVzOlZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoXTsKKyAgICAgICAgQ0ZSdW5Mb29wUGVy
Zm9ybUJsb2NrKENGUnVuTG9vcEdldE1haW4oKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKU5TRXZl
bnRUcmFja2luZ1J1bkxvb3BNb2RlLCBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3Zl
KGNvbXBsZXRpb24pLCByZXN1bHQsIHN0YXJ0VGltZV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBt
cyAoZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBzdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpLCByZXN1bHQpOworICAgICAgICAgICAgY29t
cGxldGlvbihyZXN1bHQpOworICAgICAgICB9KS5nZXQoKSk7CisgICAgICAgIENGUnVuTG9vcFdh
a2VVcChDRlJ1bkxvb3BHZXRNYWluKCkpOworICAgIH0pLmdldCgpXTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIEBpbnRl
cmZhY2UgV0tBY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNlcnZlciA6IE5TT2JqZWN0IHsKICAgICBX
ZWJLaXQ6OldlYlZpZXdJbXBsICpfaW1wbDsKQEAgLTU3MTcsOCArNTgwMCw4IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oY29uc3QgV2ViQ29yZTo6VHJh
bnNsYXRpb25Db250ZXh0CiAKIGJvb2wgV2ViVmlld0ltcGw6OmFjY2VwdHNQcmV2aWV3UGFuZWxD
b250cm9sKFFMUHJldmlld1BhbmVsICopCiB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0gICAgcmV0dXJuICEhbV9wYWdlLT5pbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlcigp
OworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICByZXR1cm4gISFtX3BhZ2UtPnZpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyKCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGU3MjJiNDAzYTc3ZDNm
YWZkODM2YzI4ZGRmY2U2YWU4YjM0YjVkNzguLjg3NzBhZDQ2MzgxNmJmZWY0YzRhOTkzNzQ2NTM5
ZTAyZDIxY2Q1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTYyLDgg
KzYyLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUV4
dHJhY3Rpb25SZXN1bHQuaD4KKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNlbmRpZgogCiBPQkpDX0NMQVNTIENB
TGF5ZXI7CkBAIC01MzgsOSArNTM4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6
RGF0YU93bmVyVHlwZSBkYXRhT3duZXJGb3JQYXN0ZWJvYXJkKFBhc3RlYm9hcmRBY2Nlc3NJbnRl
bnQpIGNvbnN0IHsgcmV0dXJuIFdlYkNvcmU6OkRhdGFPd25lclR5cGU6OlVuZGVmaW5lZDsgfQog
I2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24o
eyB9KTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJM
JiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uKSB7IGNvbXBsZXRpb24oZmFsc2UpOyB9CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1h
Z2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBs
ZXRpb24pIHsgY29tcGxldGlvbih7IH0pOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVIYXNW
aXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKGZhbHNlKTsg
fQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYg
VVNFKFVJQ09OVEVYVE1FTlUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCAwYTkxNjI3ZmNhMjJkNDFkMDJmOTVlNWRmZGVjOWZhZmU0ZjQ2M2M3Li4zNWZjOTRi
ZmQ0ZTE0YmEzM2NkNjdiYTRjNmU3ODdmMzYxNzA5YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY2LDcgKzY2LDYgQEAKICNpbmNsdWRlICJFdmVudERp
c3BhdGNoZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiRnJhbWVJbmZvRGF0YS5oIgotI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblVwZGF0ZVJl
c3VsdC5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiTG9h
ZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC05NCw2ICs5Myw3IEBACiAj
aW5jbHVkZSAiU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dENo
ZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5jbHVkZSAiVGV4dFJl
Y29nbml0aW9uVXBkYXRlUmVzdWx0LmgiCiAjaW5jbHVkZSAiVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJVbmRvT3JSZWRvLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oIgpAQCAtNjg5Niw5ICs2ODk2LDkgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEm
IGl0ZW0pCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7
CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFn
ZToKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgaGFuZGxlQ29udGV4dE1l
bnVSZXZlYWxJbWFnZSgpOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICBoYW5kbGVDb250ZXh0TWVudUxv
b2tVcEltYWdlKCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwogCkBAIC04NDg2LDI1ICs4NDg2
LDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmCiAjZW5kaWYKIAogCi0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlv
bihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1h
Z2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJl
c3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGlt
YWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKLSAgICBwYWdlQ2xpZW50KCkucmVxdWVzdEltYWdlRXh0cmFjdGlv
bihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
cGFnZUNsaWVudCgpLnJlcXVlc3RUZXh0UmVjb2duaXRpb24oaW1hZ2VVUkwsIGltYWdlRGF0YSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29t
cHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYg
aW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikK
K3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBV
UkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCiB7Ci0gICAgcGFnZUNsaWVudCgpLmNvbXB1
dGVDYW5SZXZlYWxJbWFnZShpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxldGlv
bikpOworICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFn
ZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9u
VXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFRleHRSZWNvZ25pdGlvblJlc3VsdCYmIHJl
c3VsdHMsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBs
b2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1
bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1
bHQ6Ok5vVGV4dCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFRleHRSZWNvZ25pdGlvblVw
ZGF0ZVJlc3VsdDo6Tm9UZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRlV2l0aEltYWdlRXh0cmFjdGlv
blJlc3VsdChXVEZNb3ZlKHJlc3VsdHMpLCBjb250ZXh0LCBsb2NhdGlvbiksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBh
Z2U6OlVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoV1RGTW92ZShyZXN1bHRzKSwgY29u
dGV4dCwgbG9jYXRpb24pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2NDU4Yjg4MWViMjhm
ZjU4MmVmZjM0YmI3ZDhkNmQ0Y2ZlYmJkZjY5Li42ZDA1ZDZmYzc5MDhlNGIyZGI4NWE2NDIzYzRm
Y2U2OTY2NjAwYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MjMxLDYgKzIzMSw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogT0JKQ19DTEFT
UyBOU1ZpZXc7CiBPQkpDX0NMQVNTIFFMUHJldmlld1BhbmVsOwogT0JKQ19DTEFTUyBXS1FMVGh1
bWJuYWlsTG9hZE9wZXJhdGlvbjsKK09CSkNfQ0xBU1MgV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29u
dHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tXZWJWaWV3OwogT0JKQ19DTEFTUyBfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeTsKICNlbmRpZgpAQCAtMjk3LDEzICsyOTgsMTAgQEAgc3RydWN0IFNoYXJlRGF0
YTsKIHN0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOwogc3RydWN0IFRleHRBbHRlcm5hdGl2
ZVdpdGhSYW5nZTsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CitzdHJ1Y3QgVGV4dFJlY29n
bml0aW9uUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dG
ZWF0dXJlczsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotc3RydWN0IEltYWdlRXh0
cmFjdGlvblJlc3VsdDsKLSNlbmRpZgotCiAjaWYgSEFWRShQQVNURUJPQVJEX0RBVEFfT1dORVIp
CiBlbnVtIGNsYXNzIERhdGFPd25lclR5cGUgOiB1aW50OF90OwogI2VuZGlmCkBAIC00MDcsNyAr
NDA1LDcgQEAgc3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJ
dGVtOwogc3RydWN0IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlOwogCi1lbnVtIGNsYXNzIEltYWdl
RXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE5lZ290aWF0ZWRMZWdhY3lU
TFMgOiBib29sOwogZW51bSBjbGFzcyBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IDogYm9v
bDsKIGVudW0gY2xhc3MgVW5kb09yUmVkbyA6IGJvb2w7CkBAIC0xNjY0LDEwICsxNjYyLDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIGJvb2wgbWF5
UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmKTsK
LSAgICB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoV2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1h
Z2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJik7Ci0gICAgdm9pZCBjb21wdXRlQ2FuUmV2ZWFs
SW1hZ2UoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJM
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJik7CisgICAgdm9p
ZCB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
blJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdCk+JiYpOworICAgIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKQEAgLTE5
MTEsOCArMTkwOSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzcGF0Y2hXaGVlbEV2ZW50V2l0
aG91dFNjcm9sbGluZyhjb25zdCBXZWJXaGVlbEV2ZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCi0gICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCk7Cisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICB2
b2lkIGhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UoKTsKICNlbmRpZgogCiAjaWYgVVNFKEFQ
UEtJVCkKQEAgLTE5NDQsNiArMTk0MiwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUnVubmlu
Z01vZGFsSmF2YVNjcmlwdERpYWxvZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSdW5uaW5nTW9kYWxK
YXZhU2NyaXB0RGlhbG9nOyB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIFBMQVRG
T1JNKE1BQykKKyAgICBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyICp2aXN1YWxTZWFy
Y2hQcmV2aWV3Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlzdWFsU2VhcmNoUHJldmll
d0NvbnRyb2xsZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94
eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yNDkyLDYgKzI0OTQs
MTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcnVuTW9kYWxKYXZhU2NyaXB0RGlhbG9nKFJlZlB0
cjxXZWJGcmFtZVByb3h5PiYmLCBGcmFtZUluZm9EYXRhJiYsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Kiwg
RnJhbWVJbmZvRGF0YSYmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpPiYmKTsKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQor
ICAgIHZvaWQgc2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0
bWFwJiBpbWFnZUJpdG1hcCwgY29uc3QgU3RyaW5nJiB0b29sdGlwLCBjb25zdCBVUkwmIGltYWdl
VVJMKTsKKyNlbmRpZgorCiAgICAgY29uc3QgSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2Vha1B0cjxQYWdlQ2xp
ZW50PiBtX3BhZ2VDbGllbnQ7CkBAIC0zMDQyLDYgKzMwNDgsMTAgQEAgcHJpdmF0ZToKICNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQ
cm94eUFkZGl0aW9uc0FmdGVyLmg+CiAjZW5kaWYKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykgJiYgUExBVEZPUk0oTUFDKQorICAgIFJldGFpblB0cjxXS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyPiBtX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyOworI2VuZGlmCiB9Owog
CiAjaWZkZWYgX19PQkpDX18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA3MGFhZjA3MGQzNjc3OGViMTliN2U5YmVjYjkzZWRjNWRm
ZWQ1ZmY4Li5hYjMyNDgxMWUxNjg2MmQ0ZWFiMWU4YzZlZmQwMTgzZjljNjRiOGRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
MjQsOCArMjI0LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDb21wb3NpdGlv
bldhc0NhbmNlbGVkKCkKICAgICBTZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRl
cmFjdGlvbihib29sIGhhc0hhZFVzZXJTZWxlY3Rpb25DaGFuZ2VzKQogCi0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi0gICAgUmVxdWVzdEltYWdlRXh0cmFjdGlvbihVUkwgaW1hZ2VVUkws
IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaW1hZ2VEYXRhKSAtPiAoc3RydWN0IFdl
YkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQorICAgIFJlcXVlc3RUZXh0UmVjb2duaXRpb24oVVJMIGltYWdlVVJMLCBX
ZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlRGF0YSkgLT4gKHN0cnVjdCBXZWJD
b3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogI2VuZGlmCiAKICNpZiBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXgg
MjZiNzQxMjZlZjNjODAzNmQxOTMwOGM2NzFhYmE1MDg5OWEwOWFmOS4uMDhmMjQ5NzhkMWEwMDEy
OTYzNGE4MmI3NjE3NmZhNzhhYzEyNTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEyMCw4ICsxMjAsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZG9uZURlZmVycmluZ1RvdWNoRW5kKGJvb2wgcHJldmVudE5hdGl2ZUdlc3R1cmVz
KSBvdmVycmlkZTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAg
dm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmKSBmaW5hbDsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVS
TCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYm
KSBmaW5hbDsKICNlbmRpZgogCiAgICAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBiYWRiZWZiNmNjYjU2
MzRhZmViZThhMTI2YjlhNzg5YTViMjM3YTdjLi41NmIzMjU5ODcwOGRiYWM4OTE1NjMzNmRjMTJl
ZjJkMTk0ZDU5N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCkBAIC00NjUsMTQgKzQ2NSwxNCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
Ojpkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpCiAKICNl
bmRpZiAvLyBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAotdm9pZCBQYWdlQ2xpZW50SW1w
bDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKQordm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBj
b25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKQog
ewotICAgIFttX2NvbnRlbnRWaWV3IHJlcXVlc3RJbWFnZUV4dHJhY3Rpb246aW1hZ2VVUkwgaW1h
Z2VEYXRhOmltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb24pXTsK
KyAgICBbbV9jb250ZW50VmlldyByZXF1ZXN0VGV4dFJlY29nbml0aW9uOmltYWdlVVJMIGltYWdl
RGF0YTppbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uKV07CiB9
CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKICNpZiBIQVZFKFBBU1RFQk9BUkRfREFUQV9PV05FUikKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
LmgKaW5kZXggNDNhNDczNDU5MDM4ZjcyMGQ5OGFmMzAxMWM0MDFlOTIxMzFmOTkyNy4uNmU4ZWUz
ZGEzMDkyZWFhMmE3NDQ3NmU1NmNlMzUxMzY2OTc5NGY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCkBAIC03OSwxMSAr
NzksMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWxlbWVudEFjdGlvblR5cGUp
OwogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZERpc21pc3NDb250ZXh0TWVudTooV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKICNlbmRpZgogLSAodm9pZClhY3Rpb25T
aGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaGFyZUVs
ZW1lbnRXaXRoSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSByZWN0OihDR1JlY3QpYm91bmRpbmdSZWN0
OwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotLSAoQk9PTClhY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG91bGRJbmNsdWRlSW1h
Z2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKill
bGVtZW50OwotLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lz
dGFudCAqKWFzc2lzdGFudCBoYW5kbGVJbWFnZUV4dHJhY3Rpb246KFVJSW1hZ2UgKilpbWFnZSBp
bWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJv
dW5kczooQ0dSZWN0KWltYWdlQm91bmRzOwotLSAoQk9PTClhY3Rpb25TaGVldEFzc2lzdGFudDoo
V0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG91bGRJbmNsdWRlUmV2ZWFsSW1h
Z2VBY3Rpb25Gb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQ7Ci0t
ICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNz
aXN0YW50IGhhbmRsZVJldmVhbEltYWdlOihVSUltYWdlICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJM
ICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClp
bWFnZUJvdW5kczsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCistIChCT09MKWFjdGlvblNo
ZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZElu
Y2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICop
ZWxlbWVudDsKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQgc2hvd1RleHRGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdl
VVJMOihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlQm91bmRz
OihDR1JlY3QpaW1hZ2VCb3VuZHM7CistIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFj
dGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKKy0gKHZv
aWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3Rh
bnQgbG9va1VwSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVS
TCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRz
OwogI2VuZGlmCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KaW5kZXggZDE4ZDM1YTAzOGFmMzg3ZDFmNDUwZGJm
YTk0MDIzZTQ1ZWY4MDdkYi4uZTA3ZThjM2NlYjhhNzkwY2RiZTEwM2M1ODAwZDViMmE0OTM3ODA0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hl
ZXRBc3Npc3RhbnQubW0KQEAgLTU2OCwxMSArNTY4LDExIEBAIC0gKFJldGFpblB0cjxOU0FycmF5
PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OihfV0tBY3Rp
dmF0CiAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24g
X2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlIGFzc2lzdGFu
dDpzZWxmXV07CiAgICAgfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQogICAgIGlmIChlbGVtZW50SW5mby50eXBlID09IF9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlSW1hZ2UgfHwgW2VsZW1lbnRJbmZvIGltYWdlXSkgewotICAgICAgICBp
ZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNz
aXN0YW50OnNob3VsZEluY2x1ZGVJbWFnZUV4dHJhY3Rpb25BY3Rpb25Gb3JFbGVtZW50OildICYm
IFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlSW1hZ2VF
eHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCisgICAgICAgIGlmIChbX2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6
c2hvdWxkSW5jbHVkZVNob3dUZXh0QWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFj
dGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVkZVNob3dUZXh0QWN0aW9uRm9yRWxl
bWVudDplbGVtZW50SW5mb10pCiAgICAgICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0
OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlv
blR5cGVJbWFnZUV4dHJhY3Rpb24gYXNzaXN0YW50OnNlbGZdXTsKLSAgICAgICAgaWYgKFtfZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpz
aG91bGRJbmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUg
YWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25G
b3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKKyAgICAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlTG9v
a1VwSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OmVsZW1l
bnRJbmZvXSkKICAgICAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1l
bnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVh
bEltYWdlIGFzc2lzdGFudDpzZWxmXV07CiAgICAgfQogI2VuZGlmCkBAIC02MDAsMTAgKzYwMCwx
MCBAQCAtIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PilkZWZhdWx0QWN0
aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2YQogCiAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9i
amVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRB
Y3Rpb25UeXBlQ29weSBhc3Npc3RhbnQ6c2VsZl1dOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihh
Y3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlSW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9y
RWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxk
SW5jbHVkZUltYWdlRXh0cmFjdGlvbkFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQorI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVTaG93VGV4
dEFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpz
ZWxmIHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQog
ICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVt
ZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb24gYXNz
aXN0YW50OnNlbGZdXTsKLSAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlv
bkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNo
b3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQorICAg
IGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6c2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVudDopXSAmJiBb
X2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVkZUxvb2tVcElt
YWdlQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCiAgICAgICAgIFtkZWZhdWx0QWN0aW9u
cyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tF
bGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlIGFzc2lzdGFudDpzZWxmXV07CiAjZW5kaWYKIApA
QCAtMTAyMywxMyArMTAyMywxMyBAQCAtICh2b2lkKWhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlw
ZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVtZW50OihfV0tBY3RpdgogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJh
Y3Rpb246Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIFtkZWxlZ2F0ZSBh
Y3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGhhbmRsZUltYWdlRXh0cmFjdGlvbjplbGVtZW50Lmlt
YWdlIGltYWdlVVJMOmVsZW1lbnQuaW1hZ2VVUkwgdGl0bGU6ZWxlbWVudC50aXRsZSBpbWFnZUJv
dW5kczplbGVtZW50LmJvdW5kaW5nUmVjdF07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
ICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG93VGV4dEZvcklt
YWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVudC5pbWFnZVVSTCB0aXRsZTplbGVtZW50
LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKICNlbmRpZgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6Ci0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFz
c2lzdGFudDpzZWxmIGhhbmRsZVJldmVhbEltYWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxl
bWVudC5pbWFnZVVSTCB0aXRsZTplbGVtZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91
bmRpbmdSZWN0XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgICAgIFtkZWxlZ2F0
ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGxvb2tVcEltYWdlOmVsZW1lbnQuaW1hZ2UgaW1h
Z2VVUkw6ZWxlbWVudC5pbWFnZVVSTCB0aXRsZTplbGVtZW50LnRpdGxlIGltYWdlQm91bmRzOmVs
ZW1lbnQuYm91bmRpbmdSZWN0XTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCmluZGV4IGFlYjQ0NDI5MGRiNjc2NTI4ODNkYTAwZTU1M2ZmYTFjNmU0Nzli
NDIuLmNjYWI3NGE3ZWU4NGVhM2YyZGZjOGEzNDM1ZTQ1N2I3NWUwZDUwNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKQEAgLTg3LDYgKzg3LDcgQEAgc3RydWN0IENvbnRhY3RJbmZvOwogc3RydWN0IENvbnRhY3Rz
UmVxdWVzdERhdGE7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsKIHN0cnVjdCBTaGFy
ZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRSZWNvZ25pdGlvblJlc3VsdDsKIGVudW0g
Y2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE1vdXNl
RXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1
aW50OF90OwpAQCAtOTUsMTAgKzk2LDYgQEAgZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlz
c2FsQW5pbWF0aW9uIDogdWludDhfdDsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogc3RydWN0
IERyYWdJdGVtOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLXN0cnVj
dCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ7Ci0jZW5kaWYKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC0xMzksOSArMTM2LDEyIEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKICNlbmRpZgogI2VuZGlm
CiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0JlZm9yZS5oPgotI2VuZGlmCisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorQGNsYXNzIFFMUHJldmlld0NvbnRyb2xsZXI7CitAY2xh
c3MgVktJbWFnZUFuYWx5emVyOworQGNsYXNzIFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyOworCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB0eXBlZGVmIHZvaWQg
KF5VSVdLQXV0b2NvcnJlY3Rpb25Db21wbGV0aW9uSGFuZGxlcikoVUlXS0F1dG9jb3JyZWN0aW9u
UmVjdHMgKnJlY3RzRm9ySW5wdXQpOwogdHlwZWRlZiB2b2lkICheVUlXS0F1dG9jb3JyZWN0aW9u
Q29udGV4dEhhbmRsZXIpKFVJV0tBdXRvY29ycmVjdGlvbkNvbnRleHQgKmF1dG9jb3JyZWN0aW9u
Q29udGV4dCk7CkBAIC0xNTIsMTIgKzE1Miw3IEBAIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rp
b25XaXRoRGlyZWN0aW9uQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc2VsZWN0aW9uRW5kSXNNCiB0
eXBlZGVmIEJsb2NrUHRyPHZvaWQoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbik+IEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjazsKIHR5cGVkZWYgc3RkOjpwYWly
PFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3Jt
YXRpb25DYWxsYmFjaz4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjazsK
IAotI2lmICFkZWZpbmVkKEZPUl9FQUNIX0FERElUSU9OQUxfV0tDT05URU5UVklFV19BQ1RJT04p
Ci0jZGVmaW5lIEZPUl9FQUNIX0FERElUSU9OQUxfV0tDT05URU5UVklFV19BQ1RJT04oTSkKLSNl
bmRpZgotCiAjZGVmaW5lIEZPUl9FQUNIX1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pIFwKLSAgICBG
T1JfRUFDSF9BRERJVElPTkFMX1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pIFwKICAgICBNKF9hZGRT
aG9ydGN1dCkgXAogICAgIE0oX2RlZmluZSkgXAogICAgIE0oX2xvb2t1cCkgXApAQCAtMTgyLDcg
KzE3Nyw5IEBAIHR5cGVkZWYgc3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DCiAgICAgTShwYXN0ZUFuZE1hdGNoU3R5
bGUpIFwKICAgICBNKG1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpIFwKICAgICBNKG1h
a2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0KSBcCi0gICAgTShtYWtlVGV4dFdyaXRp
bmdEaXJlY3Rpb25SaWdodFRvTGVmdCkKKyAgICBNKG1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJp
Z2h0VG9MZWZ0KSBcCisgICAgTShfaW5zZXJ0VGV4dEZyb21DYW1lcmEpIFwKKyAgICBNKGNhcHR1
cmVUZXh0RnJvbUNhbWVyYSkgXAogCiAjZGVmaW5lIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5U
VklFV19BQ1RJT04oTSkgXAogICAgIE0oX2FsaWduQ2VudGVyKSBcCkBAIC0yMjgsMTMgKzIyNSwx
MyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIENHUmVjdCB0ZXh0TGFzdFJl
Y3Q7CiB9OwogCi1lbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7
CitlbnVtIGNsYXNzIFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgOiBib29sIHsKICAg
ICBObywKICAgICBZZXMKIH07CiAKLWVudW0gSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdElkZW50aWZp
ZXJUeXBlIHsgfTsKLXVzaW5nIEltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyID0gT2Jq
ZWN0SWRlbnRpZmllcjxJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworZW51
bSBJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEltYWdlQW5h
bHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1Jl
cXVlc3RJZGVudGlmaWVyVHlwZT47CiAKIH0KIApAQCAtMjU2LDggKzI1Myw4IEBAIHVzaW5nIElt
YWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUV4
dHJhY3Rpb25SZXF1ZXN0CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNl
dHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFi
bGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4g
X3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJl
czsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBSZXRhaW5QdHI8V0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcj4gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBSZXRhaW5QdHI8V0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcjsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4gX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlcjsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVy
PiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwpAQCAtNDgzLDIyICs0ODAsMjggQEAgdXNp
bmcgSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPElt
YWdlRXh0cmFjdGlvblJlcXVlc3QKIAogICAgIFZlY3RvcjxCbG9ja1B0cjx2b2lkKCk+PiBfYWN0
aW9uc1RvUGVyZm9ybUFmdGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXI7CiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBSZXRhaW5QdHI8V0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplcj4gX2ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
OwotICAgIFJldGFpblB0cjxVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VFeHRy
YWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllcj4gX3BlbmRpbmdJbWFnZUV4dHJhY3Rp
b25SZXF1ZXN0SWRlbnRpZmllcjsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0PiBfZWxlbWVudFBlbmRpbmdJbWFnZUV4dHJhY3Rpb247Ci0gICAgVmVjdG9yPEJsb2Nr
UHRyPHZvaWQoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbik+PiBfYWN0aW9uc1Rv
UGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjsKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisgICAgUmV0YWluUHRyPFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyPiBf
aW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyOworICAgIFJldGFpblB0cjxVSUxvbmdQcmVz
c0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXpl
cjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlm
aWVyPiBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5
c2lzOworICAgIFZlY3RvcjxCbG9ja1B0cjx2b2lkKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2Vs
ZWN0aW9uSW5JbWFnZSk+PiBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlz
aXM7CiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCi0gICAgUmV0YWluUHRyPFVJTWVudT4gX2ltYWdl
RXh0cmFjdGlvbkNvbnRleHRNZW51OwotICAgIEJPT0wgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVk
QnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0OworICAgIFJldGFpblB0cjxVSU1lbnU+IF9jb250ZXh0
TWVudUZvck1hY2hpbmVSZWFkYWJsZUNvZGU7CisgICAgQk9PTCBfY29udGV4dE1lbnVXYXNUcmln
Z2VyZWRCeUltYWdlQW5hbHlzaXNUaW1lb3V0OwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5V
KQotICAgIEJPT0wgX2lzUHJvY2VlZGluZ1dpdGhJbWFnZUV4dHJhY3Rpb247Ci0jZW5kaWYgLy8g
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQot
I2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9u
c0FmdGVyLmg+Ci0jZW5kaWYKKyAgICBCT09MIF9pc1Byb2NlZWRpbmdXaXRoVGV4dFNlbGVjdGlv
bkluSW1hZ2U7CisgICAgUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplcj4gX2ltYWdlQW5hbHl6ZXI7
CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgUmV0YWluUHRyPFFMUHJldmlld0NvbnRyb2xsZXI+
IF92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8VUlJbWFnZT4g
X3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IF92aXN1YWxT
ZWFyY2hQcmV2aWV3SW1hZ2VVUkw7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfdmlzdWFsU2Vh
cmNoUHJldmlld1RpdGxlOworICAgIENHUmVjdCBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlQm91
bmRzOworICAgIEJPT0wgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZTsKKyAgICBCT09MIF9oYXNW
aXN1YWxTZWFyY2hSZXN1bHRzOworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQorI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIH0KIAogQGVuZApAQCAtNzI5LDkgKzczMiw5IEBAIEZP
Ul9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVX
X0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKXNldFVwQXBwSGlnaGxpZ2h0TWVudXNJZk5l
ZWRlZDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0tICh2b2lkKV9l
bmRJbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6U2hvdWxkUHJldmVudEdl
c3R1cmVzKXNob3VsZFByZXZlbnRHZXN0dXJlczsKLS0gKHZvaWQpcmVxdWVzdEltYWdlRXh0cmFj
dGlvbjooTlNVUkwgKilpbWFnZVVSTCBpbWFnZURhdGE6KGNvbnN0IFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmKWltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpY29tcGxldGlv
bjsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCistICh2b2lkKV9lbmRJbWFnZUFuYWx5c2lz
R2VzdHVyZURlZmVycmFsOihXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0dXJlcylzaG91bGRQcmV2
ZW50R2VzdHVyZXM7CistICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRpb246KE5TVVJMICopaW1h
Z2VVUkwgaW1hZ2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJilp
bWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKWNvbXBsZXRpb247CiAjZW5kaWYKIAogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KaW5kZXggZTAwYTZlMDExNGFhNDk5OTE1NDM1OTQyYzA2N2I4NDAxOTBi
Njk1Ni4uN2E4NDgxMGVhYWU4MjlkZTI0NTcxNjZkOTQ3OTg2Nzg2NTNlNTM0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCkBAIC00Miw2ICs0Miw4IEBACiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250
cm9sbGVyLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dElucHV0U1BJ
LmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaCIKKyNpbXBvcnQgIlRl
eHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQg
IlVzZXJJbnRlcmZhY2VJZGlvbS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5o
IgpAQCAtNTQsNiArNTYsNyBAQAogI2ltcG9ydCAiV0tGb3JtU2VsZWN0Q29udHJvbC5oIgogI2lt
cG9ydCAiV0tGcmFtZUluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tIaWdobGlnaHRMb25nUHJl
c3NHZXN0dXJlUmVjb2duaXplci5oIgorI2ltcG9ydCAiV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJl
Y29nbml6ZXIuaCIKICNpbXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIldLSW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0
ICJXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCIKQEAgLTkyLDYgKzk1LDcgQEAKICNpbXBvcnQg
PENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5o
PgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CisjaW1wb3J0IDxV
bmlmb3JtVHlwZUlkZW50aWZpZXJzL1VUQ29yZVR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Fw
cEhpZ2hsaWdodC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Db2xvcklPUy5oPgpAQCAtMTE3LDYgKzEyMSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RleHRB
bHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvVGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RvdWNoQWN0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9W
ZXJzaW9uQ2hlY2tzLmg+CkBAIC0xNDIsMTAgKzE0Nyw2IEBACiAjaW1wb3J0IDx3dGYvY29jb2Ev
VmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAotI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQmVmb3JlLm1tPgotI2VuZGlmCi0KICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9EcmFnSXRlbS5oPgpAQCAtMTczLDcgKzE3NCwyNSBAQAogI2ltcG9ydCAiUGVwcGVyVUlD
b3JlU1BJLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGJlIHB1bGxlZCBvdXQgaW50byBhIHNlcGFyYXRlIHNvZnRsaW5raW5n
IGhlYWRlciAoZWl0aGVyIGluIFBBTCBvciBXZWJLaXQyKS4KKyNpbXBvcnQgPFZpc2lvbktpdENv
cmUvVktJbWFnZUFuYWx5c2lzX1dlYktpdC5oPgorI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0lt
YWdlQW5hbHl6ZXIuaD4KK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChWaXNp
b25LaXRDb3JlKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFZpc2lvbktpdENvcmUsIFZLSW1h
Z2VBbmFseXplcikKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChWaXNpb25LaXRDb3JlLCBWS0lt
YWdlQW5hbHl6ZXJSZXF1ZXN0KQorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSA8cmRhcjov
LzcyNDgwNDU5PiBpcyBpbiB0aGUgU0RLLgorQGludGVyZmFjZSBWS0ltYWdlQW5hbHl6ZXJSZXF1
ZXN0IChTdGFnaW5nXzcyNDgwNDU5KQorQHByb3BlcnR5IChub25hdG9taWMpIE5TVVJMICppbWFn
ZVVSTDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VSTCAqcGFnZVVSTDsKK0BlbmQKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwogI2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2Vk
Q29uZmlndXJhdGlvblNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvaW9zL1F1aWNrTG9va1NvZnRM
aW5rLmg+CiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiBz
dGF0aWMgTlNTdHJpbmcgKiBjb25zdCB3ZWJraXRTaG93TGlua1ByZXZpZXdzUHJlZmVyZW5jZUtl
eSA9IEAiV2ViS2l0U2hvd0xpbmtQcmV2aWV3cyI7CkBAIC0yMDQsNiArMjIzLDIwIEBAIEBlbmQK
IAogc3RhdGljIHZvaWQgKldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0ID0gJldLQ29u
dGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0OwogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorCitAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKEltYWdlQW5hbHlzaXMpIDxXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPgorQGVuZAorCisjaWYgVVNFKFFVSUNLX0xP
T0spCisKK0BpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoSW1hZ2VBbmFseXNpc1ByZXZpZXcpIDxR
TFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFFMUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNl
LCBRTFByZXZpZXdJdGVtRGF0YVByb3ZpZGVyPgorQGVuZAorCisjZW5kaWYgLy8gVVNFKFFVSUNL
X0xPT0spCisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwpAQCAtMjkxLDYgKzMyNCwzOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHN0cmVhbSwgY29uc3QgV0tTZWxlY3Rpb25EcmF3aW5nSW5mbyYgaW5mbykKICAgICByZXR1cm4g
c3RyZWFtOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitjbGFzcyBJbWFnZUFu
YWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFn
ZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
UHRyPEltYWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbj4gY3JlYXRlKFdLQ29udGVudFZp
ZXcgKnZpZXcpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZUFuYWx5
c2lzR2VzdHVyZURlZmVycmFsVG9rZW4odmlldykpOworICAgIH0KKworICAgIH5JbWFnZUFuYWx5
c2lzR2VzdHVyZURlZmVycmFsVG9rZW4oKQorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gdmlldyA9
IG1fdmlldy5nZXQoKSkKKyAgICAgICAgICAgIFt2aWV3IF9lbmRJbWFnZUFuYWx5c2lzR2VzdHVy
ZURlZmVycmFsOm1fc2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24gPyBXZWJLaXQ6OlNob3VsZFBy
ZXZlbnRHZXN0dXJlczo6WWVzIDogV2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVyZXM6Ok5vXTsK
KyAgICB9CisKKyAgICB2b2lkIHNldFNob3VsZFByZXZlbnRUZXh0U2VsZWN0aW9uKCkKKyAgICB7
CisgICAgICAgIG1fc2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24gPSB0cnVlOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4oV0tDb250ZW50
VmlldyAqdmlldykKKyAgICAgICAgOiBtX3ZpZXcodmlldykKKyAgICB7CisgICAgfQorCisgICAg
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gbV92aWV3OworICAgIGJvb2wgbV9zaG91bGRQcmV2
ZW50VGV4dFNlbGVjdGlvbiB7IGZhbHNlIH07Cit9OworCisjZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogY29uc3RleHByIGZsb2F0IGhp
Z2hsaWdodERlbGF5ID0gMC4xMjsKQEAgLTgxMiwxMSArODc3LDExIEBAIC0gKHZvaWQpc2V0VXBJ
bnRlcmFjdGlvbgogICAgIF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3lu
dGhldGljVGFwR2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOwogICAgIFtf
dG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVz
IHNldE5hbWU6QCJEZWZlcnJlciBmb3IgdG91Y2ggZW5kIChzeW50aGV0aWMgdGFwKSJdOwogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgX2ltYWdlRXh0cmFjdGlvbkRlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgYWxsb2NdIGluaXRXaXRoRGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlOnNlbGZdKTsKLSAgICBb
X2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldE5hbWU6QCJEZWZl
cnJlciBmb3IgaW1hZ2UgZXh0cmFjdGlvbiJdOwotICAgIFtfaW1hZ2VFeHRyYWN0aW9uRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0SW1tZWRpYXRlbHlGYWlsc0FmdGVyVG91Y2hFbmQ6WUVT
XTsKLSAgICBbX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldEVu
YWJsZWQ6c2VsZi5faW1hZ2VFeHRyYWN0aW9uRW5hYmxlZF07CisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQorICAgIF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPSBh
ZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZl
cnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyIHNldE5hbWU6QCJEZWZlcnJlciBmb3IgaW1hZ2UgYW5hbHlzaXMi
XTsKKyAgICBbX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzZXRJbW1l
ZGlhdGVseUZhaWxzQWZ0ZXJUb3VjaEVuZDpZRVNdOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6V2ViS2l0Ojppc0xpdmVUZXh0RW5hYmxl
ZCgpXTsKICNlbmRpZgogCiAgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpn
ZXN0dXJlIGluIHNlbGYuZGVmZXJyaW5nR2VzdHVyZXMpIHsKQEAgLTkyOSw4ICs5OTQsOCBAQCAt
ICh2b2lkKXNldFVwSW50ZXJhY3Rpb24KICAgICBfaXNDaGFuZ2luZ0ZvY3VzID0gTk87CiAgICAg
X2lzQmx1cnJpbmdGb2N1c2VkRWxlbWVudCA9IE5POwogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUp
ICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9jb250ZXh0TWVudVdhc1RyaWdnZXJl
ZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dCA9IE5POworI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAm
JiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJ
bWFnZUFuYWx5c2lzVGltZW91dCA9IE5POwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUxJU1Rf
RUxFTUVOVCkKQEAgLTk0NSw4ICsxMDEwLDggQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAg
ICAgX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgX3BhZ2Ut
PnNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChbW1tzZWxmIHdpbmRvd10gc2NyZWVuXSBpc0NhcHR1
cmVkXSk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfc2V0VXBJ
bWFnZUV4dHJhY3Rpb25dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbc2VsZiBf
c2V0VXBJbWFnZUFuYWx5c2lzXTsKICNlbmRpZgogCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25z
ID0gWUVTOwpAQCAtOTg5LDggKzEwNTQsOCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgog
CiAgICAgX3RyZWF0QXNDb250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0b3JTdGF0ZVVwZGF0ZSA9
IE5POwogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQotICAgIF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dCA9
IE5POworI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisg
ICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCA9IE5POwog
I2VuZGlmCiAKICAgICBpZiAoX2ludGVyYWN0aW9uVmlld3NDb250YWluZXJWaWV3KSB7CkBAIC0x
MTExLDggKzExNzYsOCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9kYXRhTGlz
dFRleHRTdWdnZXN0aW9ucyA9IG5pbDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi0gICAgW3NlbGYgX3RlYXJEb3duSW1hZ2VFeHRyYWN0aW9uXTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX3RlYXJEb3duSW1hZ2VBbmFseXNpc107CiAjZW5k
aWYKIAogICAgIFtzZWxmIF9yZW1vdmVDb250YWluZXJGb3JDb250ZXh0TWVudUhpbnRQcmV2aWV3
c107CkBAIC0xODI0LDggKzE4ODksOCBAQCAtIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIgKj4gKilkZWZlcnJpbmdHZXN0dXJlcwogICAgIGF1dG8gZ2VzdHVyZXMgPSBbTlNN
dXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6N107CiAgICAgW2dlc3R1cmVzIGFkZE9iamVj
dHNGcm9tQXJyYXk6c2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzXTsKICAgICBbZ2Vz
dHVyZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVz
XTsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbZ2VzdHVyZXMgYWRkT2JqZWN0
Ol9pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFtnZXN0dXJlcyBhZGRPYmplY3Q6X2ltYWdlQW5h
bHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAjZW5kaWYKICAgICByZXR1
cm4gZ2VzdHVyZXM7CiB9CkBAIC0yMjg5LDEyICsyMzU0LDEyIEBAIC0gKEJPT0wpZ2VzdHVyZVJl
Y29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRS
ZWNvZ25pCiAgICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdICYmIFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlz
S2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCiAgICAgICAg
IHJldHVybiBZRVM7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoZ2Vz
dHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyKQotICAgICAgICByZXR1cm4gIVtzZWxmIHNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VF
eHRyYWN0aW9uOm90aGVyR2VzdHVyZVJlY29nbml6ZXJdOworI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcikKKyAgICAgICAgcmV0dXJuICFbc2VsZiBzaG91bGREZWZlckdl
c3R1cmVEdWVUb0ltYWdlQW5hbHlzaXM6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CiAKLSAgICBp
ZiAob3RoZXJHZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIpCi0gICAgICAgIHJldHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJl
RHVlVG9JbWFnZUV4dHJhY3Rpb246Z2VzdHVyZVJlY29nbml6ZXJdOworICAgIGlmIChvdGhlckdl
c3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIpCisgICAgICAgIHJldHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUFu
YWx5c2lzOmdlc3R1cmVSZWNvZ25pemVyXTsKICNlbmRpZgogCiAgICAgaWYgKGlzU2FtZVBhaXIo
Z2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9oaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVy
LmdldCgpKSkKQEAgLTIzNTAsOCArMjQxNSw4IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6
KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAg
ICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6
ZXIsIF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2RvdWJsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyRm9yRG91YmxlQ2xpY2suZ2V0KCkpKQogICAgICAgICByZXR1cm4gWUVTOwogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09
IF9pbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB8fCBnZXN0dXJlUmVjb2duaXplciA9
PSBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyKQorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlz
aXNHZXN0dXJlUmVjb2duaXplciB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VBbmFseXNp
c1RpbWVvdXRHZXN0dXJlUmVjb2duaXplcikKICAgICAgICAgcmV0dXJuIFlFUzsKICNlbmRpZgog
CkBAIC0yMzY2LDggKzI0MzEsOCBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1
cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZQogICAgIGlmIChb
b3RoZXJHZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIuY2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25p
emVyOmdlc3R1cmVSZWNvZ25pemVyXTsKIAotI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdl
RXh0cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNvZ25p
emVyID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1
cmVSZWxhdGlvbnNoaXBzXSkKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VBbmFseXNpc1Rp
bWVvdXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IFtfY29u
dGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1cmVSZWxhdGlvbnNo
aXBzXSkKICAgICAgICAgcmV0dXJuIFlFUzsKICNlbmRpZgogCkBAIC0yMzc5LDggKzI0NDQsOCBA
QCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVy
ZVJlY29nbml6ZXIgc2hvdWxkQmVSZXF1aQogICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNL
aW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKICAgICAgICAg
cmV0dXJuIFsoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVy
IHNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CiAK
LSNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAg
aWYgKGdlc3R1cmVSZWNvZ25pemVyID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJl
UmVjb2duaXplckZvckZhaWx1cmVSZWxhdGlvbnNoaXBzXSAmJiBvdGhlckdlc3R1cmVSZWNvZ25p
emVyID09IF9pbWFnZUV4dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIpCisjaWYgVVNF
KFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZ2VzdHVy
ZVJlY29nbml6ZXIgPT0gW19jb250ZXh0TWVudUludGVyYWN0aW9uIGdlc3R1cmVSZWNvZ25pemVy
Rm9yRmFpbHVyZVJlbGF0aW9uc2hpcHNdICYmIG90aGVyR2VzdHVyZVJlY29nbml6ZXIgPT0gX2lt
YWdlQW5hbHlzaXNUaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIpCiAgICAgICAgIHJldHVybiBZRVM7
CiAjZW5kaWYKIApAQCAtMjc1NCw4ICsyODE5LDggQEAgLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9z
aXRpb25BdFBvaW50OihDR1BvaW50KXBvaW50CiAgICAgaWYgKCFbc2VsZiBlbnN1cmVQb3NpdGlv
bkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuIE5POwogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdl
RXh0cmFjdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09
IF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgJiYgX3Bvc2l0aW9uSW5m
b3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5
c2lzKQogICAgICAgICByZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTI4MzIsOCArMjg5Nyw4IEBA
IC0gKEJPT0wpdGV4dEludGVyYWN0aW9uR2VzdHVyZTooVUlXS0dlc3R1cmVUeXBlKWdlc3R1cmUg
c2hvdWxkQmVnaW5BdFBvaW50OihDR1BvCiAgICAgICAgIHJldHVybiBOTzsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdl
RXh0cmFjdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09
IF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgJiYgX3Bvc2l0aW9uSW5m
b3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5
c2lzKQogICAgICAgICByZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTM3ODQsOCArMzg0OSw4IEBA
IC0gKEJPT0wpY2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRl
cjooaWQpc2VuZGVyCiAgICAgICAgIHJldHVybiBiYXNlV3JpdGluZ0RpcmVjdGlvbiAhPSBXZWJD
b3JlOjpXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdDsKICAgICB9CiAKLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoV2ViS2l0Ojppc0ltYWdlRXh0cmFjdGlvbkFjdGlv
bihhY3Rpb24pICYmICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKChhY3Rpb24gPT0gQHNlbGVjdG9yKGNhcHR1cmVUZXh0
RnJvbUNhbWVyYTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2luc2VydFRleHRGcm9tQ2FtZXJh
OikpICYmICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuIE5P
OwogI2VuZGlmCiAKQEAgLTM3OTksNyArMzg2NCw2IEBAIC0gKGlkKXRhcmdldEZvckFjdGlvbjoo
U0VMKWFjdGlvbiB3aXRoU2VuZGVyOihpZClzZW5kZXIKICAgICAgICAgcmV0dXJuIHNlbGYuc2hv
dWxkQWxsb3dBcHBIaWdobGlnaHRDcmVhdGlvbiAmJiBfcGFnZS0+YXBwSGlnaGxpZ2h0c1Zpc2li
aWxpdHkoKSA/IHNlbGYgOiBuaWw7CiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY3JlYXRl
SGlnaGxpZ2h0SW5OZXdHcm91cFdpdGhSYW5nZTopKQogICAgICAgICByZXR1cm4gc2VsZi5zaG91
bGRBbGxvd0FwcEhpZ2hsaWdodENyZWF0aW9uICYmICFfcGFnZS0+YXBwSGlnaGxpZ2h0c1Zpc2li
aWxpdHkoKSA/IHNlbGYgOiBuaWw7Ci0gICAgCiAjZW5kaWYKICAgICByZXR1cm4gW193ZWJWaWV3
IHRhcmdldEZvckFjdGlvbjphY3Rpb24gd2l0aFNlbmRlcjpzZW5kZXJdOwogfQpAQCAtNDU3Niw4
ICs0NjQwLDggQEAgLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUK
ICAgICAvLyBpbiB0aGUgc2FtZSBsb2NhdGlvbiB0byB0cmlnZ2VyIGRvdWJsZS10YXAgcmVjb2du
aXRpb24uCiAgICAgW3NlbGYgX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDpOT107CiAgICAg
W190d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBfd2tfY2FuY2VsXTsKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfY2FuY2VsSW1hZ2VFeHRyYWN0aW9u
XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2NhbmNlbEltYWdlQW5h
bHlzaXNdOwogI2VuZGlmCiB9CiAKQEAgLTc2MTIsMTQgKzc2NzYsMTQgQEAgLSAoQk9PTClfc2hv
dWxkVXNlTGVnYWN5U2VsZWN0UG9wb3ZlckRpc21pc3NhbEJlaGF2aW9yCiAgICAgcmV0dXJuIFdl
YkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0RhdGFBY3RpdmF0aW9uKCk7CiB9CiAKLSNpZiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLS0gKEJP
T0wpc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246KFVJR2VzdHVyZVJlY29n
bml6ZXIgKilnZXN0dXJlCistIChCT09MKXNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VBbmFs
eXNpczooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmUKIHsKICAgICByZXR1cm4gZ2VzdHVy
ZSA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBsb3VwZUdlc3R1cmVdIHx8IGdlc3R1cmUu
X3drX2lzVGFwQW5kQUhhbGYgfHwgZ2VzdHVyZSA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFu
dCBmb3JjZVByZXNzR2VzdHVyZV07CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBIQVZFKFBBU1RF
Qk9BUkRfREFUQV9PV05FUikKIApAQCAtNzgyOCw5ICs3ODkyLDkgQEAgLSAoQk9PTClkZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVy
cmluZ0dlc3QKICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoRXZlbnRHZXN0dXJl
UmVjb2duaXplcikKICAgICAgICAgcmV0dXJuIE5POwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi0gICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJh
Y3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcikKLSAgICAgICAgcmV0dXJuIFtzZWxmIHNo
b3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VFeHRyYWN0aW9uOmdlc3R1cmVSZWNvZ25pemVyXTsK
KyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyID09IF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCisgICAg
ICAgIHJldHVybiBbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlQW5hbHlzaXM6Z2Vz
dHVyZVJlY29nbml6ZXJdOwogI2VuZGlmCiAKICAgICBhdXRvIG1heURlbGF5UmVzZXRPZkNvbnRh
aW5pbmdTdWJncmFwaCA9IFsmXShVSUdlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlKSAtPiBCT09M
IHsKQEAgLTg3MjQsOSArODc4OCw5IEBAIC0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFn
SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lvbjooaWQKIAogICAgIFtz
ZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKIAotICAgIGF1dG8gcHJlcGFyZUZv
clNlc3Npb24gPSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwg
c2Vzc2lvbiA9IHJldGFpblB0cihzZXNzaW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihj
b21wbGV0aW9uKV0gKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gcHJvY2VlZFdp
dGhJbWFnZUV4dHJhY3Rpb24pIHsKKyAgICBhdXRvIHByZXBhcmVGb3JTZXNzaW9uID0gW3dlYWtT
ZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIHNlc3Npb24gPSByZXRhaW5Q
dHIoc2Vzc2lvbiksIGNvbXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbildIChXZWJL
aXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgUHJvY2VlZFdpdGhUZXh0U2VsZWN0
aW9uSW5JbWFnZSkgewogICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsK
LSAgICAgICAgaWYgKCFzdHJvbmdTZWxmIHx8IHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uID09
IFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246OlllcykKKyAgICAgICAgaWYgKCFz
dHJvbmdTZWxmIHx8IFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPT0gV2ViS2l0OjpQ
cm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpZZXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgYXV0byBkcmFnT3JpZ2luID0gW3Nlc3Npb24gbG9jYXRpb25JblZpZXc6c3Ry
b25nU2VsZi5nZXQoKV07CkBAIC04NzM1LDEwICs4Nzk5LDEwIEBAIC0gKHZvaWQpX2RyYWdJbnRl
cmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lv
bjooaWQKICAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb24gcmVx
dWVzdGVkOiAlcCBhdCBvcmlnaW46IHslLjBmLCAlLjBmfSIsIHNlc3Npb24uZ2V0KCksIGRyYWdP
cmlnaW4ueCwgZHJhZ09yaWdpbi55KTsKICAgICB9OwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi0gICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOnByZXBhcmVG
b3JTZXNzaW9uXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2RvQWZ0
ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpwcmVwYXJlRm9yU2Vzc2lvbl07CiAjZWxzZQotICAgIHBy
ZXBhcmVGb3JTZXNzaW9uKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246Ok5vKTsK
KyAgICBwcmVwYXJlRm9yU2Vzc2lvbihXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbklu
SW1hZ2U6Ok5vKTsKICNlbmRpZgogfQogCkBAIC05NjQ0LDMwICs5NzA4LDMwIEBAIC0gKHZvaWQp
X3dyaXRlUHJvbWlzZWRBdHRhY2htZW50VG9QYXN0ZWJvYXJkOihXZWJDb3JlOjpQcm9taXNlZEF0
dGFjaG1lbnRJbmZvJiYpCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQogCi0tICh2b2lkKV9lbmRJbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6
U2hvdWxkUHJldmVudEdlc3R1cmVzKXNob3VsZFByZXZlbnRHZXN0dXJlcworLSAodm9pZClfZW5k
SW1hZ2VBbmFseXNpc0dlc3R1cmVEZWZlcnJhbDooV2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVy
ZXMpc2hvdWxkUHJldmVudEdlc3R1cmVzCiB7Ci0gICAgW19pbWFnZUV4dHJhY3Rpb25EZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciBlbmREZWZlcnJhbDpzaG91bGRQcmV2ZW50R2VzdHVyZXNdOwor
ICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGVuZERlZmVycmFs
OnNob3VsZFByZXZlbnRHZXN0dXJlc107CiB9CiAKLS0gKHZvaWQpX2RvQWZ0ZXJQZW5kaW5nSW1h
Z2VFeHRyYWN0aW9uOih2b2lkKF4pKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24g
cHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24pKWJsb2NrCistICh2b2lkKV9kb0FmdGVyUGVuZGlu
Z0ltYWdlQW5hbHlzaXM6KHZvaWQoXikoV2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25J
bkltYWdlIFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UpKWJsb2NrCiB7Ci0gICAgaWYg
KHNlbGYuaGFzUGVuZGluZ0ltYWdlRXh0cmFjdGlvblJlcXVlc3QpCi0gICAgICAgIF9hY3Rpb25z
VG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLmFwcGVuZChtYWtlQmxvY2tQdHIo
YmxvY2spKTsKKyAgICBpZiAoc2VsZi5oYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3QpCisg
ICAgICAgIF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpcy5hcHBlbmQo
bWFrZUJsb2NrUHRyKGJsb2NrKSk7CiAgICAgZWxzZQotICAgICAgICBibG9jayhXZWJLaXQ6OlBy
b2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uOjpObyk7CisgICAgICAgIGJsb2NrKFdlYktpdDo6UHJv
Y2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm8pOwogfQogCi0tICh2b2lkKV9pbnZva2VB
bGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOihXZWJLaXQ6OlBy
b2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKXByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uCistICh2
b2lkKV9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczoo
V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlKVByb2NlZWRXaXRoVGV4dFNl
bGVjdGlvbkluSW1hZ2UKIHsKLSAgICBfcGVuZGluZ0ltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVu
dGlmaWVyID0gc3RkOjpudWxsb3B0OwotICAgIF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlv
biA9IHN0ZDo6bnVsbG9wdDsKLSAgICBmb3IgKGF1dG8gYmxvY2sgOiBzdGQ6OmV4Y2hhbmdlKF9h
Y3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLCB7IH0pKQotICAgICAg
ICBibG9jayhwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbik7CisgICAgX3BlbmRpbmdJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBzdGQ6Om51bGxvcHQ7CisgICAgX2VsZW1lbnRQZW5k
aW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBmb3IgKGF1dG8gYmxvY2sgOiBz
dGQ6OmV4Y2hhbmdlKF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpcywg
eyB9KSkKKyAgICAgICAgYmxvY2soUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSk7CiB9
CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKIC0gKHZvaWQpc2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29y
ZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRvcgogewpAQCAtOTczMCw2ICs5Nzk0LDQ0NyBA
QCAtICh2b2lkKXN0YXJ0RmFkZU91dAogICAgIH1dOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKKy0gKHZvaWQpcHJlc2VudFZpc3VhbFNl
YXJjaFByZXZpZXdDb250cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDoo
TlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dS
ZWN0KWltYWdlQm91bmRzIGFwcGVhcmFuY2VBY3Rpb25zOihRTFByZXZpZXdDb250cm9sbGVyRmly
c3RUaW1lQXBwZWFyYW5jZUFjdGlvbnMpYXBwZWFyYW5jZUFjdGlvbnMKK3sKKyAgICBBU1NFUlQo
X2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSB8fCBfaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk7CisK
KyAgICBBU1NFUlQoIV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgX3Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbUEFMOjphbGxvY1FMUHJldmlld0Nv
bnRyb2xsZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtfdmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXIgc2V0RGF0YVNvdXJjZTpzZWxmXTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyIHNldEFwcGVhcmFuY2VBY3Rpb25zOmFwcGVhcmFuY2VBY3Rpb25zXTsKKyAgICBbX3Zp
c3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHNldE1vZGFsUHJlc2VudGF0aW9uU3R5bGU6VUlN
b2RhbFByZXNlbnRhdGlvbk92ZXJGdWxsU2NyZWVuXTsKKworICAgIEFTU0VSVCghX3Zpc3VhbFNl
YXJjaFByZXZpZXdJbWFnZSk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZSA9IGltYWdl
OworCisgICAgQVNTRVJUKCFfdmlzdWFsU2VhcmNoUHJldmlld1RpdGxlKTsKKyAgICBfdmlzdWFs
U2VhcmNoUHJldmlld1RpdGxlID0gdGl0bGU7CisKKyAgICBBU1NFUlQoIV92aXN1YWxTZWFyY2hQ
cmV2aWV3SW1hZ2VVUkwpOworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwgPSBpbWFn
ZVVSTDsKKworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VCb3VuZHMgPSBpbWFnZUJvdW5k
czsKKworICAgIFVJVmlld0NvbnRyb2xsZXIgKmN1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXIgPSBbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2Vu
dGF0aW9uRnJvbVZpZXc6c2VsZl07CisgICAgW2N1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOl92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5n
ZXQoKSBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpuaWxdOworfQorCisjcHJhZ21hIG1hcmsgLSBR
TFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUKKworLSAoQ0dSZWN0KXByZXZpZXdDb250cm9sbGVy
OihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBmcmFtZUZvclByZXZpZXdJdGVtOihp
ZCA8UUxQcmV2aWV3SXRlbT4paXRlbSBpblNvdXJjZVZpZXc6KFVJVmlldyAqKilvdXRWaWV3Cit7
CisgICAgKm91dFZpZXcgPSBzZWxmOworICAgIHJldHVybiBfdmlzdWFsU2VhcmNoUHJldmlld0lt
YWdlQm91bmRzOworfQorCistIChVSUltYWdlICopcHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmll
d0NvbnRyb2xsZXIgKiljb250cm9sbGVyIHRyYW5zaXRpb25JbWFnZUZvclByZXZpZXdJdGVtOihp
ZCA8UUxQcmV2aWV3SXRlbT4paXRlbSBjb250ZW50UmVjdDooQ0dSZWN0ICopb3V0Q29udGVudFJl
Y3QKK3sKKyAgICAqb3V0Q29udGVudFJlY3QgPSBDR1JlY3QgeyBDR1BvaW50WmVybywgX3Zpc3Vh
bFNlYXJjaFByZXZpZXdJbWFnZUJvdW5kcy5zaXplIH07CisgICAgcmV0dXJuIF92aXN1YWxTZWFy
Y2hQcmV2aWV3SW1hZ2UuZ2V0KCk7Cit9CisKKy0gKHZvaWQpcHJldmlld0NvbnRyb2xsZXJEaWRE
aXNtaXNzOihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlcgoreworICAgIEFTU0VSVChj
b250cm9sbGVyID09IF92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgX3Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmNsZWFyKCk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZp
ZXdJbWFnZS5jbGVhcigpOworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUuY2xlYXIoKTsK
KyAgICBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlVVJMLmNsZWFyKCk7Cit9CisKKyNwcmFnbWEg
bWFyayAtIFFMUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlCisKKy0gKE5TSW50ZWdlciludW1i
ZXJPZlByZXZpZXdJdGVtc0luUHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIg
Kiljb250cm9sbGVyCit7CisgICAgQVNTRVJUKGNvbnRyb2xsZXIgPT0gX3Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyKTsKKyAgICByZXR1cm4gMTsKK30KKworLSAoaWQgPFFMUHJldmlld0l0
ZW0+KXByZXZpZXdDb250cm9sbGVyOihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBw
cmV2aWV3SXRlbUF0SW5kZXg6KE5TSW50ZWdlcilpbmRleAoreworICAgIEFTU0VSVChjb250cm9s
bGVyID09IF92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgQVNTRVJUKCFpbmRl
eCk7CisgICAgYXV0byBpdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1FMSXRlbUluc3RhbmNlKCkg
aW5pdFdpdGhEYXRhUHJvdmlkZXI6c2VsZiBjb250ZW50VHlwZTpVVFR5cGVUSUZGLmlkZW50aWZp
ZXIgcHJldmlld1RpdGxlOl92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUuZ2V0KCldKTsKKyAgICBp
ZiAoW2l0ZW0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRQcmV2aWV3T3B0aW9uczop
XSkgeworICAgICAgICBhdXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml0pOworICAgICAgICBpZiAoX3Zpc3Vh
bFNlYXJjaFByZXZpZXdJbWFnZVVSTCkKKyAgICAgICAgICAgIFtwcmV2aWV3T3B0aW9ucyBzZXRP
YmplY3Q6X3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZVVSTC5nZXQoKSBmb3JLZXk6QCJpbWFnZVVS
TCJdOworICAgICAgICBpZiAoYXV0byBwYWdlVVJMID0gVVJMIHsgVVJMIHsgfSwgX3BhZ2UtPmN1
cnJlbnRVUkwoKSB9OyAhcGFnZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICBbcHJldmlld09w
dGlvbnMgc2V0T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVSTCJdOworICAgICAgICBpZiAo
W3ByZXZpZXdPcHRpb25zIGNvdW50XSkKKyAgICAgICAgICAgIFtpdGVtIHNldFByZXZpZXdPcHRp
b25zOnByZXZpZXdPcHRpb25zLmdldCgpXTsKKyAgICB9CisgICAgcmV0dXJuIGl0ZW0uYXV0b3Jl
bGVhc2UoKTsKK30KKworI3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRlbURhdGFQcm92aWRlcgor
CistIChOU0RhdGEgKilwcm92aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAqKWl0ZW0KK3sKKyAgICBB
U1NFUlQoX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZSk7CisKKyAgICBhdXRvIGRhdGEgPSBhZG9w
dENGKENGRGF0YUNyZWF0ZU11dGFibGUoTlVMTCwgMCkpOworICAgIGF1dG8gZGVzdGluYXRpb24g
PSBhZG9wdENGKENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKGRhdGEuZ2V0KCksIChf
X2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIsIDEsIE5VTEwpKTsKKyAg
ICBDR0ltYWdlRGVzdGluYXRpb25BZGRJbWFnZShkZXN0aW5hdGlvbi5nZXQoKSwgW192aXN1YWxT
ZWFyY2hQcmV2aWV3SW1hZ2UgQ0dJbWFnZV0sIG5pbCk7CisgICAgaWYgKCFDR0ltYWdlRGVzdGlu
YXRpb25GaW5hbGl6ZShkZXN0aW5hdGlvbi5nZXQoKSkpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICByZXR1cm4gZGF0YS5icmlkZ2luZ0F1dG9yZWxlYXNlKCk7Cit9CisKKyNwcmFnbWEgbWFy
ayAtIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZQorCistIChib29sKWFjdGlvblNoZWV0
QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1
ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxl
bWVudAoreworICAgIHJldHVybiBXZWJLaXQ6OmlzTGl2ZVRleHRFbmFibGVkKCkgJiYgX2hhc1Nl
bGVjdGFibGVUZXh0SW5JbWFnZTsKK30KKworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDoo
V0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG93VGV4dEZvckltYWdlOihVSUlt
YWdlICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICop
dGl0bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kcworeworICAgIFtzZWxmIHByZXNl
bnRWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlckZvckltYWdlOmltYWdlIGltYWdlVVJMOmlt
YWdlVVJMIHRpdGxlOnRpdGxlIGltYWdlQm91bmRzOmltYWdlQm91bmRzIGFwcGVhcmFuY2VBY3Rp
b25zOlFMUHJldmlld0NvbnRyb2xsZXJGaXJzdFRpbWVBcHBlYXJhbmNlQWN0aW9uRW5hYmxlVmlz
dWFsU2VhcmNoRGF0YURldGVjdGlvbl07Cit9CisKKy0gKGJvb2wpYWN0aW9uU2hlZXRBc3Npc3Rh
bnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZUxvb2tV
cEltYWdlQWN0aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50
Cit7CisgICAgcmV0dXJuIFdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSAmJiBfaGFzVmlzdWFs
U2VhcmNoUmVzdWx0czsKK30KKworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rp
b25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBsb29rVXBJbWFnZTooVUlJbWFnZSAqKWltYWdl
IGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdl
Qm91bmRzOihDR1JlY3QpaW1hZ2VCb3VuZHMKK3sKKyAgICBbc2VsZiBwcmVzZW50VmlzdWFsU2Vh
cmNoUHJldmlld0NvbnRyb2xsZXJGb3JJbWFnZTppbWFnZSBpbWFnZVVSTDppbWFnZVVSTCB0aXRs
ZTp0aXRsZSBpbWFnZUJvdW5kczppbWFnZUJvdW5kcyBhcHBlYXJhbmNlQWN0aW9uczpRTFByZXZp
ZXdDb250cm9sbGVyRmlyc3RUaW1lQXBwZWFyYW5jZUFjdGlvbkVuYWJsZVZpc3VhbFNlYXJjaE1v
ZGVdOworfQorCisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisKKyNwcmFnbWEgbWFyayAtIElt
YWdlIEV4dHJhY3Rpb24KKworLSAoVktJbWFnZUFuYWx5emVyICopaW1hZ2VBbmFseXplcgorewor
ICAgIGlmICghX2ltYWdlQW5hbHl6ZXIpCisgICAgICAgIF9pbWFnZUFuYWx5emVyID0gYWRvcHRO
UyhbYWxsb2NWS0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICByZXR1cm4gX2lt
YWdlQW5hbHl6ZXIuZ2V0KCk7Cit9CisKKy0gKEJPT0wpaGFzUGVuZGluZ0ltYWdlQW5hbHlzaXNS
ZXF1ZXN0Cit7CisgICAgcmV0dXJuICEhX3BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50
aWZpZXI7Cit9CisKKy0gKHZvaWQpX3NldFVwSW1hZ2VBbmFseXNpcworeworICAgIGlmICghV2Vi
S2l0Ojppc0xpdmVUZXh0RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBfcGVuZGlu
Z0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQ
cm9jZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5k
aW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVy
IGFsbG9jXSBpbml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOworICAg
IFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXIuZ2V0KCldOworICAgIF9pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyID0g
YWRvcHROUyhbW1VJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFy
Z2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihpbWFnZUFuYWx5c2lzR2VzdHVyZURpZFRpbWVPdXQ6
KV0pOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXRNaW5p
bXVtUHJlc3NEdXJhdGlvbjoyLjBdOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJl
UmVjb2duaXplciBzZXROYW1lOkAiSW1hZ2UgYW5hbHlzaXMgdGltZW91dCJdOworICAgIFtfaW1h
Z2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAg
ICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJl
UmVjb2duaXplci5nZXQoKV07CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgX2hhc1NlbGVjdGFi
bGVUZXh0SW5JbWFnZSA9IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gTk87Cisj
ZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2Nv
bnRleHRNZW51Rm9yTWFjaGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOworI2VuZGlmIC8vIFVTRShV
SUNPTlRFWFRNRU5VKQorfQorCistICh2b2lkKV90ZWFyRG93bkltYWdlQW5hbHlzaXMKK3sKKyAg
ICBpZiAoIVdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgW19pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAg
ICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKKyAgICBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyID0gbmls
OworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0
ZTpuaWxdOworICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lz
VGltZW91dEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBfaW1hZ2VBbmFseXNpc1RpbWVv
dXRHZXN0dXJlUmVjb2duaXplciA9IG5pbDsKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1
ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRleHRT
ZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9
IHN0ZDo6bnVsbG9wdDsKKyAgICBbc3RkOjpleGNoYW5nZShfaW1hZ2VBbmFseXplciwgbmlsKSBj
YW5jZWxBbGxSZXF1ZXN0c107CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgX2hhc1NlbGVjdGFi
bGVUZXh0SW5JbWFnZSA9IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gTk87Cisj
ZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2Nv
bnRleHRNZW51Rm9yTWFjaGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOworI2VuZGlmIC8vIFVTRShV
SUNPTlRFWFRNRU5VKQorICAgIFtzZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQ
ZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1h
Z2U6Ok5vXTsKK30KKworLSAodm9pZClfY2FuY2VsSW1hZ2VBbmFseXNpcworeworICAgIFtfaW1h
Z2VBbmFseXplciBjYW5jZWxBbGxSZXF1ZXN0c107CisgICAgUkVMRUFTRV9MT0dfSUYoc2VsZi5o
YXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3QsIEltYWdlcywgIkltYWdlIGFuYWx5c2lzIHJl
cXVlc3QgJSIgUFJJdTY0ICIgY2FuY2VsbGVkLiIsIF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVl
c3RJZGVudGlmaWVyLT50b1VJbnQ2NCgpKTsKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1
ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRleHRT
ZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9
IHN0ZDo6bnVsbG9wdDsKK30KKworLSAoUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+
KWNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBl
cyBpbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCit7Cisg
ICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbYWxsb2NWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0SW5z
dGFuY2UoKSBpbml0V2l0aEltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VPcmllbnRhdGlv
blVwIHJlcXVlc3RUeXBlOmFuYWx5c2lzVHlwZXNdKTsKKyAgICBbcmVxdWVzdCBzZXRJbWFnZVVS
TDppbWFnZVVSTF07CisgICAgW3JlcXVlc3Qgc2V0UGFnZVVSTDpbTlNVUkwgX3dlYl9VUkxXaXRo
V1RGU3RyaW5nOl9wYWdlLT5jdXJyZW50VVJMKCldXTsKKyAgICByZXR1cm4gcmVxdWVzdDsKK30K
KworLSAoUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNyZWF0ZUltYWdlQW5hbHlz
aXNSZXF1ZXN0OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBpbWFnZTooVUlJbWFnZSAq
KWltYWdlCit7CisgICAgcmV0dXJuIFtzZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OmFu
YWx5c2lzVHlwZXMgaW1hZ2U6aW1hZ2UgaW1hZ2VVUkw6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1h
Z2VVUkxdOworfQorCistIChCT09MKXZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlm
aWVyOihXZWJLaXQ6OkltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcilpZGVudGlmaWVyCit7
CisgICAgaWYgKF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID09IGlkZW50
aWZpZXIpCisgICAgICAgIHJldHVybiBZRVM7CisKKyAgICBpZiAoIXNlbGYuaGFzUGVuZGluZ0lt
YWdlQW5hbHlzaXNSZXF1ZXN0KSB7CisgICAgICAgIC8vIE9ubHkgaW52b2tlIGRlZmVycmVkIGlt
YWdlIGFuYWx5c2lzIGJsb2NrcyBpZiB0aGVyZSBpcyBubyBvbmdvaW5nIHJlcXVlc3Q7IG90aGVy
d2lzZSwgdGhpcyB3b3VsZAorICAgICAgICAvLyBjYXVzZSB0aGVzZSBibG9ja3MgdG8gYmUgaW52
b2tlZCB0b28gZWFybHkgKGkuZS4gaW4gdGhlIG1pZGRsZSBvZiB0aGUgbmV3IGltYWdlIGFuYWx5
c2lzIHJlcXVlc3QpLgorICAgICAgICBbc2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFm
dGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25J
bkltYWdlOjpOb107CisgICAgfQorCisgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5h
bHlzaXMgcmVxdWVzdCAlIiBQUkl1NjQgIiBpbnZhbGlkYXRlZC4iLCBpZGVudGlmaWVyLnRvVUlu
dDY0KCkpOworICAgIHJldHVybiBOTzsKK30KKworI3ByYWdtYSBtYXJrIC0gV0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQorCistICh2b2lkKXJlcXVlc3RUZXh0UmVjb2du
aXRpb246KE5TVVJMICopaW1hZ2VVUkwgaW1hZ2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlJilpbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKWNvbXBsZXRp
b24KK3sKKyAgICBhdXRvIGltYWdlQml0bWFwID0gV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNy
ZWF0ZShpbWFnZURhdGEpOworICAgIGlmICghaW1hZ2VCaXRtYXApIHsKKyAgICAgICAgY29tcGxl
dGlvbih7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjZ0ltYWdlID0g
aW1hZ2VCaXRtYXAtPm1ha2VDR0ltYWdlKCk7CisgICAgaWYgKCFjZ0ltYWdlKSB7CisgICAgICAg
IGNvbXBsZXRpb24oeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gaW1h
Z2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2UuZ2V0
KCldKTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAgIGNvbXBsZXRpb24oeyB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVxdWVzdCA9IFtzZWxmIGNyZWF0ZUltYWdl
QW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlzaXNUeXBlVGV4dCBpbWFnZTppbWFnZS5nZXQoKV07Cisg
ICAgW1tzZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJv
Z3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRp
b24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJy
b3IgKikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb24oV2ViS2l0OjptYWtlVGV4dFJlY29n
bml0aW9uUmVzdWx0KHJlc3VsdCkpOworICAgIH0pLmdldCgpXTsKK30KKworLSAodm9pZClpbWFn
ZUFuYWx5c2lzR2VzdHVyZURpZEJlZ2luOihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXpl
ciAqKWdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgQVNTRVJUKFdlYktpdDo6aXNMaXZlVGV4dEVu
YWJsZWQoKSk7CisKKyAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gV2ViS2l0OjpJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisKKyAgICBbX2ltYWdlQW5hbHl6
ZXIgY2FuY2VsQWxsUmVxdWVzdHNdOworICAgIF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJ
ZGVudGlmaWVyID0gcmVxdWVzdElkZW50aWZpZXI7CisgICAgX2lzUHJvY2VlZGluZ1dpdGhUZXh0
U2VsZWN0aW9uSW5JbWFnZSA9IE5POworICAgIF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMg
PSBzdGQ6Om51bGxvcHQ7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBfaGFzU2VsZWN0YWJs
ZVRleHRJbkltYWdlID0gTk87CisgICAgX2hhc1Zpc3VhbFNlYXJjaFJlc3VsdHMgPSBOTzsKKyNl
bmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKKworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIF9j
b250ZXh0TWVudUZvck1hY2hpbmVSZWFkYWJsZUNvZGUuY2xlYXIoKTsKKyNlbmRpZiAvLyBVU0Uo
VUlDT05URVhUTUVOVSkKKworICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVl
c3QgcmVxdWVzdCB7IFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChbZ2VzdHVyZVJlY29nbml6ZXIg
bG9jYXRpb25JblZpZXc6c2VsZl0pIH07CisgICAgcmVxdWVzdC5pbmNsdWRlSW1hZ2VEYXRhID0g
dHJ1ZTsKKyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbcmVxdWVz
dElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlcXVlc3RJZGVudGlmaWVyKSwgd2Vha1NlbGYgPSBXZWFr
T2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgZ2VzdHVyZURlZmVycmFsVG9rZW4gPSBXZWJL
aXQ6OkltYWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbjo6Y3JlYXRlKHNlbGYpXSAoV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgbXV0YWJs
ZSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBp
ZiAoIVtzdHJvbmdTZWxmIHZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyOnJl
cXVlc3RJZGVudGlmaWVyXSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBib29sIHNo
b3VsZEFuYWx5emVJbWFnZUF0TG9jYXRpb24gPSBpbmZvcm1hdGlvbi5pc0ltYWdlICYmIGluZm9y
bWF0aW9uLmltYWdlICYmIGluZm9ybWF0aW9uLmltYWdlRWxlbWVudENvbnRleHQgJiYgIWluZm9y
bWF0aW9uLmlzQW5pbWF0ZWRJbWFnZTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmLT5fcGVuZGlu
Z0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciB8fCAhc2hvdWxkQW5hbHl6ZUltYWdlQXRM
b2NhdGlvbikgeworICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1Bl
cmZvcm1BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2Vs
ZWN0aW9uSW5JbWFnZTo6Tm9dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byBjZ0ltYWdlID0gaW5mb3JtYXRpb24uaW1hZ2UtPm1ha2VDR0ltYWdlQ29weSgp
OworICAgICAgICBpZiAoIWNnSW1hZ2UpIHsKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZv
a2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlBy
b2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vXTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxv
Y10gaW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgaWYgKCFpbWFnZSkg
eworICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRl
clBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5J
bWFnZTo6Tm9dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUkVM
RUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgcHJlZmxpZ2h0IGdlc3R1cmUgaW5pdGlh
dGVkIChyZXF1ZXN0ICUiIFBSSXU2NCAiKS4iLCByZXF1ZXN0SWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKKworICAgICAgICBzdHJvbmdTZWxmLT5fZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzID0g
aW5mb3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dDsKKworICAgICAgICBhdXRvIHJlcXVlc3RM
b2NhdGlvbiA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgICAgIFdlYkNvcmU6OkVs
ZW1lbnRDb250ZXh0IGVsZW1lbnRDb250ZXh0ID0gKmluZm9ybWF0aW9uLmltYWdlRWxlbWVudENv
bnRleHQ7CisKKyAgICAgICAgYXV0byByZXF1ZXN0Rm9yVGV4dFNlbGVjdGlvbiA9IFtzdHJvbmdT
ZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlzaXNUeXBlVGV4dCBpbWFnZTpp
bWFnZS5nZXQoKV07CisgICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0gW3N0cm9u
Z1NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFy
Y2ggfCBWS0FuYWx5c2lzVHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgaW1hZ2U6aW1hZ2UuZ2V0KCld
OworCisgICAgICAgIGF1dG8gdGV4dEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CisgICAgICAgIFtbc3Ryb25nU2VsZiBpbWFnZUFuYWx5emVyXSBwcm9jZXNzUmVxdWVz
dDpyZXF1ZXN0Rm9yVGV4dFNlbGVjdGlvbi5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBs
ZXRpb25IYW5kbGVyOltyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUocmVxdWVzdElkZW50aWZp
ZXIpLCB3ZWFrU2VsZiwgZWxlbWVudENvbnRleHQsIHJlcXVlc3RMb2NhdGlvbiwgcmVxdWVzdEZv
ckNvbnRleHRNZW51LCBnZXN0dXJlRGVmZXJyYWxUb2tlbiwgdGV4dEFuYWx5c2lzU3RhcnRUaW1l
XSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAg
aWYgKCFbc3Ryb25nU2VsZiB2YWxpZGF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjpy
ZXF1ZXN0SWRlbnRpZmllcl0pCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICBCT09MIGhhc1RleHRSZXN1bHRzID0gW3Jlc3VsdCBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBl
czpWS0FuYWx5c2lzVHlwZVRleHRdOworICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAi
SW1hZ2UgYW5hbHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKHJlcXVlc3QgJSIgUFJJdTY0ICI7
IGZvdW5kIHRleHQ/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHRleHRBbmFseXNpc1N0
YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIHJlcXVlc3RJZGVudGlmaWVyLnRvVUludDY0KCksIGhh
c1RleHRSZXN1bHRzKTsKKworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X3BhZ2UtPnVwZGF0ZVdp
dGhUZXh0UmVjb2duaXRpb25SZXN1bHQoV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0
KHJlc3VsdCksIGVsZW1lbnRDb250ZXh0LCByZXF1ZXN0TG9jYXRpb24sIFtyZXF1ZXN0SWRlbnRp
ZmllciA9IFdURk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwgaGFzVGV4dFJlc3Vs
dHMsIHJlcXVlc3RGb3JDb250ZXh0TWVudSwgZ2VzdHVyZURlZmVycmFsVG9rZW5dIChXZWJLaXQ6
OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCB1cGRhdGVSZXN1bHQpIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAg
ICAgICAgIGlmICghW3N0cm9uZ1NlbGYgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50
aWZpZXI6cmVxdWVzdElkZW50aWZpZXJdKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgICAgICBpZiAodXBkYXRlUmVzdWx0ID09IFdlYktpdDo6VGV4dFJlY29nbml0
aW9uVXBkYXRlUmVzdWx0OjpUZXh0KSB7CisgICAgICAgICAgICAgICAgICAgIHN0cm9uZ1NlbGYt
Pl9pc1Byb2NlZWRpbmdXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPSBZRVM7CisgICAgICAgICAg
ICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5k
aW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6
Olllc107CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBnZXN0dXJlRGVmZXJyYWxUb2tlbi0+c2V0U2hvdWxkUHJldmVudFRl
eHRTZWxlY3Rpb24oKTsKKworICAgICAgICAgICAgICAgIGlmICh1cGRhdGVSZXN1bHQgPT0gV2Vi
S2l0OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcikgeworICAgICAg
ICAgICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVy
UGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25Jbklt
YWdlOjpOb107CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBhdXRvIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAgICAgICAgICAgW1tzdHJvbmdTZWxmIGltYWdl
QW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3RGb3JDb250ZXh0TWVudS5nZXQoKSBwcm9n
cmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOltyZXF1ZXN0SWRlbnRpZmllciA9IFdU
Rk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwgaGFzVGV4dFJlc3VsdHMsIHZpc3Vh
bFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxm
ID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghW3N0cm9uZ1NlbGYg
dmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6cmVxdWVzdElkZW50aWZpZXJd
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisjaWYgVVNFKFFVSUNLX0xPT0sp
CisgICAgICAgICAgICAgICAgICAgIEJPT0wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyA9IFtyZXN1
bHQgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2hd
OworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNp
cyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAocmVxdWVzdCAlIiBQUkl1NjQgIjsgZm91bmQgdmlzdWFs
IHNlYXJjaCByZXN1bHRzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSB2aXN1YWxTZWFy
Y2hBbmFseXNpc1N0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIHJlcXVlc3RJZGVudGlmaWVyLnRv
VUludDY0KCksIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOworI2Vsc2UKKyAgICAgICAgICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lKTsKKyNlbmRp
ZgorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCB8fCBlcnJvcikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRl
clBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5J
bWFnZTo6Tm9dOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgICAgICB9CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICAgICAgICAgICAgICAgICAgc3Ry
b25nU2VsZi0+X2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9IGhhc1RleHRSZXN1bHRzOworICAg
ICAgICAgICAgICAgICAgICBzdHJvbmdTZWxmLT5faGFzVmlzdWFsU2VhcmNoUmVzdWx0cyA9IGhh
c1Zpc3VhbFNlYXJjaFJlc3VsdHM7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICBVTlVTRURf
UEFSQU0oaGFzVGV4dFJlc3VsdHMpOworI2VuZGlmCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisg
ICAgICAgICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudUZvck1hY2hpbmVSZWFk
YWJsZUNvZGUgPSBbcmVzdWx0IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNU
eXBlTWFjaGluZVJlYWRhYmxlQ29kZV0gPyByZXN1bHQubXJjTWVudSA6IG5pbDsKKyNlbmRpZgor
ICAgICAgICAgICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9y
bUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rp
b25JbkltYWdlOjpOb107CisgICAgICAgICAgICAgICAgfV07CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfV07CisgICAgfSBmb3JSZXF1ZXN0OnJlcXVlc3RdOworfQorCistICh2b2lkKWltYWdl
QW5hbHlzaXNHZXN0dXJlRGlkRmFpbDooV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIg
KilnZXN0dXJlUmVjb2duaXplcgoreworICAgIFtzZWxmIF9lbmRJbWFnZUFuYWx5c2lzR2VzdHVy
ZURlZmVycmFsOldlYktpdDo6U2hvdWxkUHJldmVudEdlc3R1cmVzOjpOb107Cit9CisKKy0gKHZv
aWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRUaW1lT3V0OihXS0ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgaWYgKCFzZWxmLl9zaG91bGRV
c2VDb250ZXh0TWVudXMpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzZWxmLmhhc1BlbmRp
bmdJbWFnZUFuYWx5c2lzUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdlc3R1
cmVSZWNvZ25pemVyLnN0YXRlICE9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUJlZ2FuKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIGxvY2F0aW9uID0gV2ViQ29yZTo6cm91bmRlZEludFBv
aW50KFtnZXN0dXJlUmVjb2duaXplciBsb2NhdGlvbkluVmlldzpzZWxmXSk7CisgICAgV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgbG9jYXRpb24gfTsKKyAg
ICByZXF1ZXN0LmluY2x1ZGVJbWFnZURhdGEgPSB0cnVlOworICAgIFtzZWxmIGRvQWZ0ZXJQb3Np
dGlvbkluZm9ybWF0aW9uVXBkYXRlOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZp
ZXc+KHNlbGYpLCBsb2NhdGlvbl0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gaW5mbykgeworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsK
KyAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmICghaW5mby5pbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoKCFp
bmZvLmlzSW1hZ2VPdmVybGF5VGV4dCB8fCAhaW5mby5pc1NlbGVjdGVkKSAmJiAhc3Ryb25nU2Vs
Zi0+X2lzUHJvY2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBhdXRvIGNnSW1hZ2UgPSBpbmZvLmltYWdlLT5tYWtlQ0dJbWFnZUNv
cHkoKTsKKyAgICAgICAgaWYgKCFjZ0ltYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdl
OmNnSW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyB0aW1lb3V0
IGdlc3R1cmUgaW5pdGlhdGVkLiIpOworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBpbXBs
ZW1lbnQgc29tZSB3YXkgdG8gY2FjaGUgaW1hZ2UgYW5hbHlzaXMgcmVzdWx0cyBwZXIgZWxlbWVu
dCwgc28gdGhhdCB3ZSBkb24ndCBlbmQgdXAKKyAgICAgICAgLy8gbWFraW5nIHJlZHVuZGFudCBp
bWFnZSBhbmFseXNpcyByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgaW1hZ2UgZGF0YS4KKworICAgICAg
ICBhdXRvIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CisgICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0gW3N0cm9uZ1NlbGYgY3Jl
YXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggfCBWS0Fu
YWx5c2lzVHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgaW1hZ2U6aW1hZ2UuZ2V0KCldOworICAgICAg
ICBbW3N0cm9uZ1NlbGYgaW1hZ2VBbmFseXplcl0gcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdEZvckNv
bnRleHRNZW51LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3dl
YWtTZWxmLCBsb2NhdGlvbiwgdmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWVdIChWS0ltYWdl
QW5hbHlzaXMgKnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgIGF1dG8gc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworI2lmIFVTRShRVUlDS19MT09LKQorICAgICAgICAg
ICAgQk9PTCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gW3Jlc3VsdCBoYXNSZXN1bHRzRm9yQW5h
bHlzaXNUeXBlczpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaF07CisgICAgICAgICAgICBSRUxF
QVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAoZm91
bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSB2
aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIGhhc1Zpc3VhbFNl
YXJjaFJlc3VsdHMpOworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2hhc1NlbGVjdGFibGVUZXh0
SW5JbWFnZSA9IFlFUzsKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9oYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzID0gaGFzVmlzdWFsU2VhcmNoUmVzdWx0czsKKyNlbHNlCisgICAgICAgICAgICBVTlVT
RURfUEFSQU0odmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWUpOworI2VuZGlmCisKKyNpZiBV
U0UoVUlDT05URVhUTUVOVSkKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudUZv
ck1hY2hpbmVSZWFkYWJsZUNvZGUgPSBbcmVzdWx0IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVz
OlZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZV0gPyByZXN1bHQubXJjTWVudSA6IG5p
bDsKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1h
Z2VBbmFseXNpc1RpbWVvdXQgPSBZRVM7CisgICAgICAgICAgICBbc3Ryb25nU2VsZi0+X2NvbnRl
eHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpsb2NhdGlvbl07CisjZWxz
ZQorICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGxvY2F0aW9uKTsKKyNlbmRpZgorICAgICAgICB9
XTsKKyAgICB9IGZvclJlcXVlc3Q6cmVxdWVzdF07Cit9CisKKy0gKHZvaWQpX2luc2VydFRleHRG
cm9tQ2FtZXJhRm9yV2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgW3N1cGVyIF9pbnNlcnRUZXh0
RnJvbUNhbWVyYTpzZW5kZXJdOworfQorCistICh2b2lkKWNhcHR1cmVUZXh0RnJvbUNhbWVyYUZv
cldlYlZpZXc6KGlkKXNlbmRlcgoreworICAgIFtzdXBlciBjYXB0dXJlVGV4dEZyb21DYW1lcmE6
c2VuZGVyXTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwogI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQWZ0ZXIubW0+CiAjZW5kaWYKQEAgLTEwMjM2LDEwICsx
MDc0MSwxMCBAQCAtIChVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50
ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbgogCiAtICh2b2lkKV9jb250ZXh0TWVu
dUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25m
aWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gY29tcGxldGlvbjoo
dm9pZCheKShVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKSljb21wbGV0aW9uCiB7Ci0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFj
dGlvblRpbWVvdXQgPSBzdGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1h
Z2VFeHRyYWN0aW9uVGltZW91dCwgTk8pOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICBCT09MIHRyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBzdGQ6OmV4Y2hhbmdlKF9j
b250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQsIE5PKTsKICNlbHNl
Ci0gICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQgPSBOTzsKKyAgICBC
T09MIHRyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBOTzsKICNlbmRpZgogCiAgICAg
aWYgKCFfd2ViVmlldykKQEAgLTEwMjQ4LDkgKzEwNzUzLDkgQEAgLSAodm9pZClfY29udGV4dE1l
bnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29u
ZmlndXIKICAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl9sb25nUHJlc3NBY3Rp
b25zRW5hYmxlZCkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24obmlsKTsKIAotICAgIGF1dG8g
Z2V0Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tD
b250ZW50Vmlldz4oc2VsZiksIGludGVyYWN0aW9uID0gcmV0YWluUHRyKGludGVyYWN0aW9uKSwg
Y29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgdHJpZ2dlcmVkQnlJbWFnZUV4
dHJhY3Rpb25UaW1lb3V0XSAoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiBwcm9j
ZWVkV2l0aEltYWdlRXh0cmFjdGlvbikgeworICAgIGF1dG8gZ2V0Q29uZmlndXJhdGlvbkFuZENv
bnRpbnVlID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIGlu
dGVyYWN0aW9uID0gcmV0YWluUHRyKGludGVyYWN0aW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uKSwgdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dF0gKFdlYktp
dDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSBQcm9jZWVkV2l0aFRleHRTZWxlY3Rp
b25JbkltYWdlKSB7CiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwot
ICAgICAgICBpZiAoIXN0cm9uZ1NlbGYgfHwgcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gPT0g
V2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbjo6WWVzKSB7CisgICAgICAgIGlmICgh
c3Ryb25nU2VsZiB8fCBQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID09IFdlYktpdDo6
UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6WWVzKSB7CiAgICAgICAgICAgICBjb21w
bGV0aW9uKG5pbCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwMjY0LDcg
KzEwNzY5LDcgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVu
dUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAgICAgV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBv
aW50KFtpbnRlcmFjdGlvbiBsb2NhdGlvbkluVmlldzpzdHJvbmdTZWxmLmdldCgpXSkgfTsKICAg
ICAgICAgcmVxdWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOwogICAgICAgICByZXF1ZXN0Lmlu
Y2x1ZGVMaW5rSW5kaWNhdG9yID0gdHJ1ZTsKLSAgICAgICAgcmVxdWVzdC5kaXNhbGxvd1VzZXJB
Z2VudFNoYWRvd0NvbnRlbnQgPSB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQ7Cisg
ICAgICAgIHJlcXVlc3QuZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50ID0gdHJpZ2dlcmVk
QnlJbWFnZUFuYWx5c2lzVGltZW91dDsKICAgICAgICAgcmVxdWVzdC5saW5rSW5kaWNhdG9yU2hv
dWxkSGF2ZUxlZ2FjeU1hcmdpbnMgPSAhW3N0cm9uZ1NlbGYgX3Nob3VsZFVzZUNvbnRleHRNZW51
c107CiAKICAgICAgICAgW3N0cm9uZ1NlbGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRh
dGU6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc3Ryb25nU2VsZi5nZXQo
KSksIGNvbXBsZXRpb25dIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
KSB7CkBAIC0xMDI3NSwxMCArMTA3ODAsMTAgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFj
dGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAg
ICAgICAgfSBmb3JSZXF1ZXN0OnJlcXVlc3RdOwogICAgIH07CiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLSAgICBbc2VsZiBfZG9BZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb246Z2V0
Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisg
ICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpnZXRDb25maWd1cmF0aW9uQW5k
Q29udGludWVdOwogI2Vsc2UKLSAgICBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUoV2ViS2l0
OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbjo6Tm8pOworICAgIGdldENvbmZpZ3VyYXRpb25B
bmRDb250aW51ZShXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vKTsK
ICNlbmRpZgogfQogCkBAIC0xMDQwMCwxMCArMTA5MDUsMTAgQEAgLSAodm9pZCljb250aW51ZUNv
bnRleHRNZW51SW50ZXJhY3Rpb246KHZvaWQoXikoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24g
KikpY28KIAogICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rp
b24gKj4+IGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCA9IFtzdHJvbmdTZWxmLT5fYWN0aW9u
U2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdl
dCgpXTsKICAgICAgICAgICAgICAgICBhdXRvIGFjdGlvbnMgPSBtZW51RWxlbWVudHNGcm9tRGVm
YXVsdEFjdGlvbnMoZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7Ci0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAgICAgICAgaWYgKFVJTWVudSAq
aW1hZ2VFeHRyYWN0aW9uQ29udGV4dE1lbnUgPSBzdHJvbmdTZWxmLT5faW1hZ2VFeHRyYWN0aW9u
Q29udGV4dE1lbnUuZ2V0KCkpCi0gICAgICAgICAgICAgICAgICAgIFthY3Rpb25zIGFkZE9iamVj
dDppbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVudV07Ci0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICAgICAgICAgIGlm
IChVSU1lbnUgKm1lbnUgPSBzdHJvbmdTZWxmLT5fY29udGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFi
bGVDb2RlLmdldCgpKQorICAgICAgICAgICAgICAgICAgICBbYWN0aW9ucyBhZGRPYmplY3Q6bWVu
dV07CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgICAgICAgICAgICAgIHJl
dHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6c3Ryb25nU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRp
b24udGl0bGUgY2hpbGRyZW46YWN0aW9uc107CiAgICAgICAgICAgICB9OwogCkBAIC0xMDY2Nyw5
ICsxMTE3Miw5IEBAIC0gKHZvaWQpY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVu
dUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gd2lsbEVuZEZvCiAgICAgX2NvbnRleHRNZW51SGFz
UmVxdWVzdGVkTGVnYWN5RGF0YSA9IE5POwogICAgIF9jb250ZXh0TWVudUVsZW1lbnRJbmZvID0g
bnVsbHB0cjsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9pbWFnZUV4dHJh
Y3Rpb25Db250ZXh0TWVudS5jbGVhcigpOwotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNU
SU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBfY29udGV4dE1lbnVGb3JNYWNo
aW5lUmVhZGFibGVDb2RlLmNsZWFyKCk7CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQogCiAgICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8
V0tDb250ZW50Vmlldz4oc2VsZildICgpIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vh
a1NlbGYuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJ
bWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZTY5
NTBlNGNkMWQyM2YwNjZjZTY1YmY3ZTU2OTY0Y2IwMDcxNTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpbmNsdWRl
IDxVSUtpdC9VSUtpdC5oPgorCitAY2xhc3MgV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXI7CisKK0Bwcm90b2NvbCBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRl
IDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+CistICh2b2lkKWltYWdlQW5hbHlzaXNHZXN0
dXJlRGlkQmVnaW46KFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZTsK
Ky0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRGYWlsOihXS0ltYWdlQW5hbHlzaXNHZXN0
dXJlUmVjb2duaXplciAqKWdlc3R1cmU7CitAZW5kCisKK0BpbnRlcmZhY2UgV0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIgOiBVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyCisKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6KFVJVmll
dyA8V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZTsK
KworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1YjZm
NTllMzJhYjgyNDEyZTYzNzI0NzBmNzZkMmU0YzUyZDgwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXIubW0KQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oIgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitAaW1wbGVtZW50
YXRpb24gV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgeworICAgIF9fd2VhayBVSVZp
ZXcgPFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+ICpfaW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8V0tJbWFnZUFuYWx5c2lz
R2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZQoreworICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2ltYWdlQW5hbHlz
aXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgc2VsZi5kZWxlZ2F0
ZSA9IGRlbGVnYXRlOworICAgIHNlbGYubWluaW11bVByZXNzRHVyYXRpb24gPSAwLjE7CisgICAg
c2VsZi5hbGxvd2FibGVNb3ZlbWVudCA9IDA7CisgICAgc2VsZi5uYW1lID0gQCJJbWFnZSBhbmFs
eXNpcyI7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0U3RhdGU6KFVJR2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSlzdGF0ZQoreworICAgIGF1dG8gcHJldmlvdXNTdGF0ZSA9IHNlbGYu
c3RhdGU7CisgICAgc3VwZXIuc3RhdGUgPSBzdGF0ZTsKKworICAgIGF1dG8gbmV3U3RhdGUgPSBz
ZWxmLnN0YXRlOworICAgIGlmIChwcmV2aW91c1N0YXRlID09IG5ld1N0YXRlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobmV3U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlQmVn
YW4pCisgICAgICAgIFtfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUgaW1h
Z2VBbmFseXNpc0dlc3R1cmVEaWRCZWdpbjpzZWxmXTsKKyAgICBlbHNlIGlmIChuZXdTdGF0ZSA9
PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQpCisgICAgICAgIFtfaW1hZ2VBbmFseXNp
c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUgaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRGYWlsOnNl
bGZdOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjlkYTBhMGUzMGM2ZTZiOWRmMzlmYmMzMDlhY2YwZGM5
N2U5MWJkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2du
aXplci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi0KLSNpbmNsdWRlIDxVSUtpdC9VSUtpdC5oPgotCi1AY2xhc3MgV0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplcjsKLQotQHByb3RvY29sIFdLSW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPgotLSAo
dm9pZClpbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkQmVnaW46KFdLSW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlOwotLSAodm9pZClpbWFnZUV4dHJhY3Rpb25HZXN0dXJl
RGlkRmFpbDooV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmU7Ci1A
ZW5kCi0KLUBpbnRlcmZhY2UgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciA6IFVJ
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW1h
Z2VFeHRyYWN0aW9uR2VzdHVyZURlbGVnYXRlOihVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZTsKLQotQGVuZAotCi0jZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJl
UmVjb2duaXplci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
MGU4MzQzMjBjZjkxZjAyZDU0YTk5NGU3NzUxNTMxNGJiNDlhN2I3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tCisrKyAvZGV2L251bGwKQEAg
LTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmgiCi0KLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotQGltcGxlbWVudGF0aW9u
IFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgewotICAgIF9fd2VhayBVSVZpZXcg
PFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKl9pbWFnZUV4dHJh
Y3Rpb25EZWxlZ2F0ZTsKLX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW1hZ2VFeHRyYWN0
aW9uR2VzdHVyZURlbGVnYXRlOihVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZQotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5p
dF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2ltYWdlRXh0cmFjdGlvbkRlbGVnYXRl
ID0gZGVsZWdhdGU7Ci0gICAgc2VsZi5kZWxlZ2F0ZSA9IGRlbGVnYXRlOwotICAgIHNlbGYubWlu
aW11bVByZXNzRHVyYXRpb24gPSAwLjE7Ci0gICAgc2VsZi5hbGxvd2FibGVNb3ZlbWVudCA9IDA7
Ci0gICAgc2VsZi5uYW1lID0gQCJJbWFnZSBleHRyYWN0aW9uIjsKLSAgICByZXR1cm4gc2VsZjsK
LX0KLQotLSAodm9pZClzZXRTdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0YXRlKXN0YXRlCi17
Ci0gICAgYXV0byBwcmV2aW91c1N0YXRlID0gc2VsZi5zdGF0ZTsKLSAgICBzdXBlci5zdGF0ZSA9
IHN0YXRlOwotCi0gICAgYXV0byBuZXdTdGF0ZSA9IHNlbGYuc3RhdGU7Ci0gICAgaWYgKHByZXZp
b3VzU3RhdGUgPT0gbmV3U3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChuZXdTdGF0
ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVCZWdhbikKLSAgICAgICAgW19pbWFnZUV4dHJh
Y3Rpb25EZWxlZ2F0ZSBpbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkQmVnaW46c2VsZl07Ci0gICAg
ZWxzZSBpZiAobmV3U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkKQotICAg
ICAgICBbX2ltYWdlRXh0cmFjdGlvbkRlbGVnYXRlIGltYWdlRXh0cmFjdGlvbkdlc3R1cmVEaWRG
YWlsOnNlbGZdOwotfQotCi1AZW5kCi0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggODk0NDJjZDkyMzMyNjRkMDliZTBlMzgwY2M2
NjAxM2YzZGQ5MjBhZi4uZGQ3YjQ5N2FhNjRiZjdhMjNlZWYxODQ4NmViY2I0NDNhMzU4NzFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgK
QEAgLTEzMCw5ICsxMzAsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkb25lV2l0aEtleUV2ZW50
KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgb3Zl
cnJpZGU7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVlc3RJ
bWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFn
ZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcHV0ZUNhblJl
dmVhbEltYWdlKGNvbnN0IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0
bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CiAjZW5kaWYK
IAogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggYzRjMDU0ZmQ1ZGIzZjdhYzg3OGY5OGQzMWVkOTky
ZjQ1OGEwMTI4My4uYzJkZThkNmVhN2MwYmNhZmEwOTE0YzFmNTJhZTRkNjQ1ZGY4NjlkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpA
QCAtNDc4LDE2ICs0NzgsMTYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVu
dChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiBldmVudCwgYm9vbAogICAgIG1faW1wbC0+
ZG9uZVdpdGhLZXlFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudFdhc0hhbmRsZWQpOwog
fQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0
IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBs
ZXRpb24pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0
IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBs
ZXRpb24pCiB7Ci0gICAgbV9pbXBsLT5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGltYWdlVVJMLCBp
bWFnZURhdGEsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+cmVxdWVzdFRleHRS
ZWNvZ25pdGlvbihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0K
IAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNvbXB1dGVI
YXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1h
cCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bikKIHsKLSAgICBtX2ltcGwtPmNvbXB1dGVDYW5SZXZlYWxJbWFnZShpbWFnZVVSTCwgaW1hZ2VC
aXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3Vh
bFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24p
KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTM1ODAyZGI4MmM2MGM0NzE4MTk5YzQ4NmQ0NTg3ZmNhOGE3
ODI4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxl
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQot
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Y2xhc3MgV2ViUGFnZVByb3h5OwotfQotCi1AY2xhc3MgUUxQcmV2aWV3UGFuZWw7Ci0KLUBpbnRl
cmZhY2UgV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlciA6IE5TT2JqZWN0Ci0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSBpbWFn
ZURhdGE6KE5TRGF0YSAqKWRhdGEgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VVUkw6KE5T
VVJMICopaW1hZ2VVUkw7Ci0tICh2b2lkKWJlZ2luQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilw
YW5lbDsKLS0gKEJPT0wpaXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0g
KHZvaWQpZW5kQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0gKHZvaWQpY2xvc2VQ
YW5lbElmTmVjZXNzYXJ5OwotQGVuZAotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4NGMzZGUwZmYyYWM5OGFkYWU5NGFlZmM4MGEy
ZmQwZjQwMzViZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0Nv
bnRyb2xsZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29u
dHJvbGxlci5oIgotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIFBMQVRGT1JNKE1B
QykKLQotI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9v
a1VJU29mdExpbmsuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLQotQGludGVyZmFjZSBX
S0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyICgpIDxRTFByZXZpZXdQYW5lbERlbGVn
YXRlLCBRTFByZXZpZXdQYW5lbERhdGFTb3VyY2U+Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBX
S0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyIHsKLSAgICBSZXRhaW5QdHI8UUxJdGVt
PiBfaXRlbTsKLSAgICBSZXRhaW5QdHI8TlNEYXRhPiBfaW1hZ2VEYXRhOwotfQotCi0tIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSBpbWFnZURh
dGE6KE5TRGF0YSAqKWltYWdlRGF0YSB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZVVSTDoo
TlNVUkwgKilpbWFnZVVSTAotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAg
ICAgICByZXR1cm4gbmlsOwotCi0gICAgX2ltYWdlRGF0YSA9IGltYWdlRGF0YTsKLSAgICBfaXRl
bSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NRTEl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoRGF0YVByb3Zp
ZGVyOihpZClzZWxmIGNvbnRlbnRUeXBlOlVUVHlwZVBORyBwcmV2aWV3VGl0bGU6dGl0bGVdKTsK
LSAgICBpZiAoW19pdGVtIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0UHJldmlld09w
dGlvbnM6KV0pIHsKLSAgICAgICAgYXV0byBwcmV2aWV3T3B0aW9ucyA9IGFkb3B0TlMoW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdKTsKLSAgICAgICAgaWYg
KGltYWdlVVJMKQotICAgICAgICAgICAgW3ByZXZpZXdPcHRpb25zIHNldE9iamVjdDppbWFnZVVS
TCBmb3JLZXk6QCJpbWFnZVVSTCJdOwotICAgICAgICBpZiAoTlNVUkwgKnBhZ2VVUkwgPSBVUkwg
eyBVUkwgeyB9LCBwYWdlLmN1cnJlbnRVUkwoKSB9KQotICAgICAgICAgICAgW3ByZXZpZXdPcHRp
b25zIHNldE9iamVjdDpwYWdlVVJMIGZvcktleTpAInBhZ2VVUkwiXTsKLSAgICAgICAgW19pdGVt
IHNldFByZXZpZXdPcHRpb25zOnByZXZpZXdPcHRpb25zLmdldCgpXTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZCliZWdpbkNvbnRyb2w6KFFMUHJldmlld1BhbmVsICop
cGFuZWwKLXsKLSAgICBwYW5lbC5kYXRhU291cmNlID0gc2VsZjsKLSAgICBwYW5lbC5kZWxlZ2F0
ZSA9IHNlbGY7Ci19Ci0KLS0gKHZvaWQpZW5kQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5l
bAotewotICAgIGlmIChwYW5lbC5kYXRhU291cmNlID09IHNlbGYpCi0gICAgICAgIHBhbmVsLmRh
dGFTb3VyY2UgPSBuaWw7Ci0KLSAgICBpZiAocGFuZWwuZGVsZWdhdGUgPT0gc2VsZikKLSAgICAg
ICAgcGFuZWwuZGVsZWdhdGUgPSBuaWw7Ci19Ci0KLS0gKHZvaWQpY2xvc2VQYW5lbElmTmVjZXNz
YXJ5Ci17Ci0gICAgaWYgKCFQQUw6OmlzUXVpY2tMb29rVUlGcmFtZXdvcmtBdmFpbGFibGUoKSB8
fCAhW1BBTDo6Z2V0UUxQcmV2aWV3UGFuZWxDbGFzcygpIHNoYXJlZFByZXZpZXdQYW5lbEV4aXN0
c10pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChhdXRvIHBhbmVsID0gW1BBTDo6Z2V0UUxQ
cmV2aWV3UGFuZWxDbGFzcygpIHNoYXJlZFByZXZpZXdQYW5lbF07IFtzZWxmIGlzQ29udHJvbGxp
bmc6cGFuZWxdKQotICAgICAgICBbcGFuZWwgY2xvc2VdOwotfQotCi0tIChCT09MKWlzQ29udHJv
bGxpbmc6KFFMUHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICByZXR1cm4gcGFuZWwuZGF0YVNv
dXJjZSA9PSBzZWxmICYmIHBhbmVsLmRlbGVnYXRlID09IHNlbGY7Ci19Ci0KLSNwcmFnbWEgbWFy
ayAtIFFMUHJldmlld0l0ZW1EYXRhUHJvdmlkZXIKLQotLSAoTlNEYXRhICopcHJvdmlkZURhdGFG
b3JJdGVtOihRTEl0ZW0gKilpdGVtCi17Ci0gICAgQVNTRVJUKGl0ZW0gPT0gX2l0ZW0pOwotICAg
IHJldHVybiBfaW1hZ2VEYXRhLmdldCgpOwotfQotCi0jcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdQ
YW5lbERhdGFTb3VyY2UKLQotLSAoTlNJbnRlZ2VyKW51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2
aWV3UGFuZWw6KFFMUHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICByZXR1cm4gMTsKLX0KLQot
LSAoaWQgPFFMUHJldmlld0l0ZW0+KXByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwYW5l
bCBwcmV2aWV3SXRlbUF0SW5kZXg6KE5TSW50ZWdlcilpbmRleAotewotICAgIEFTU0VSVCghaW5k
ZXgpOwotICAgIHJldHVybiBfaXRlbS5nZXQoKTsKLX0KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3
Q29udHJvbGxlckFkZGl0aW9ucy5tbT4KLSNlbmRpZgotCi1AZW5kCi0KLSNlbmRpZiAvLyBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9s
bGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzdlOTdiM2E3YTc4ODJhMDc0ZmQ0NGI0ZTdhYWU4NzU1OGRhODk2
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KKworQGNsYXNzIFFMUHJldmlld1BhbmVsOwor
CitAaW50ZXJmYWNlIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgOiBOU09iamVjdAor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2Ug
aW1hZ2VEYXRhOihOU0RhdGEgKilkYXRhIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlVVJM
OihOU1VSTCAqKWltYWdlVVJMOworLSAodm9pZCliZWdpbkNvbnRyb2w6KFFMUHJldmlld1BhbmVs
ICopcGFuZWw7CistIChCT09MKWlzQ29udHJvbGxpbmc6KFFMUHJldmlld1BhbmVsICopcGFuZWw7
CistICh2b2lkKWVuZENvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWw7CistICh2b2lkKWNs
b3NlUGFuZWxJZk5lY2Vzc2FyeTsKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NWI5ZjJkNDc1YTUwN2E1OGUwMzljNDg2YTQxMzU3ODM5OTljYjM2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmll
d0NvbnRyb2xsZXIubW0KQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCIKKwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJX
ZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHBhbC9t
YWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgorCitAaW50ZXJmYWNlIFdLVmlzdWFsU2VhcmNoUHJl
dmlld0NvbnRyb2xsZXIgKCkgPFFMUHJldmlld1BhbmVsRGVsZWdhdGUsIFFMUHJldmlld1BhbmVs
RGF0YVNvdXJjZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLVmlzdWFsU2VhcmNoUHJldmll
d0NvbnRyb2xsZXIgeworICAgIFJldGFpblB0cjxRTEl0ZW0+IF9pdGVtOworICAgIFJldGFpblB0
cjxOU0RhdGE+IF9pbWFnZURhdGE7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6
KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIGltYWdlRGF0YTooTlNEYXRhICopaW1hZ2VEYXRh
IHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCit7Cisg
ICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAg
ICBfaW1hZ2VEYXRhID0gaW1hZ2VEYXRhOworICAgIF9pdGVtID0gYWRvcHROUyhbUEFMOjphbGxv
Y1FMSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhEYXRhUHJvdmlkZXI6KGlkKXNlbGYgY29udGVudFR5
cGU6VVRUeXBlUE5HIHByZXZpZXdUaXRsZTp0aXRsZV0pOworICAgIGlmIChbX2l0ZW0gcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRQcmV2aWV3T3B0aW9uczopXSkgeworICAgICAgICBh
dXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6Ml0pOworICAgICAgICBpZiAoaW1hZ2VVUkwpCisgICAgICAgICAg
ICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OmltYWdlVVJMIGZvcktleTpAImltYWdlVVJMIl07
CisgICAgICAgIGlmIChOU1VSTCAqcGFnZVVSTCA9IFVSTCB7IFVSTCB7IH0sIHBhZ2UuY3VycmVu
dFVSTCgpIH0pCisgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OnBhZ2VVUkwg
Zm9yS2V5OkAicGFnZVVSTCJdOworICAgICAgICBbX2l0ZW0gc2V0UHJldmlld09wdGlvbnM6cHJl
dmlld09wdGlvbnMuZ2V0KCldOworICAgIH0KKworICAgIHJldHVybiBzZWxmOworfQorCistICh2
b2lkKWJlZ2luQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAoreworICAgIHBhbmVsLmRh
dGFTb3VyY2UgPSBzZWxmOworICAgIHBhbmVsLmRlbGVnYXRlID0gc2VsZjsKK30KKworLSAodm9p
ZCllbmRDb250cm9sOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsCit7CisgICAgaWYgKHBhbmVsLmRh
dGFTb3VyY2UgPT0gc2VsZikKKyAgICAgICAgcGFuZWwuZGF0YVNvdXJjZSA9IG5pbDsKKworICAg
IGlmIChwYW5lbC5kZWxlZ2F0ZSA9PSBzZWxmKQorICAgICAgICBwYW5lbC5kZWxlZ2F0ZSA9IG5p
bDsKK30KKworLSAodm9pZCljbG9zZVBhbmVsSWZOZWNlc3NhcnkKK3sKKyAgICBpZiAoIVBBTDo6
aXNRdWlja0xvb2tVSUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFbUEFMOjpnZXRRTFByZXZpZXdQ
YW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1BhbmVsRXhpc3RzXSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8gcGFuZWwgPSBbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hh
cmVkUHJldmlld1BhbmVsXTsgW3NlbGYgaXNDb250cm9sbGluZzpwYW5lbF0pCisgICAgICAgIFtw
YW5lbCBjbG9zZV07Cit9CisKKy0gKEJPT0wpaXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwg
KilwYW5lbAoreworICAgIHJldHVybiBwYW5lbC5kYXRhU291cmNlID09IHNlbGYgJiYgcGFuZWwu
ZGVsZWdhdGUgPT0gc2VsZjsKK30KKworI3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRlbURhdGFQ
cm92aWRlcgorCistIChOU0RhdGEgKilwcm92aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAqKWl0ZW0K
K3sKKyAgICBBU1NFUlQoaXRlbSA9PSBfaXRlbSk7CisgICAgcmV0dXJuIF9pbWFnZURhdGEuZ2V0
KCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFFMUHJldmlld1BhbmVsRGF0YVNvdXJjZQorCistIChO
U0ludGVnZXIpbnVtYmVyT2ZQcmV2aWV3SXRlbXNJblByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFu
ZWwgKilwYW5lbAoreworICAgIHJldHVybiAxOworfQorCistIChpZCA8UUxQcmV2aWV3SXRlbT4p
cHJldmlld1BhbmVsOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsIHByZXZpZXdJdGVtQXRJbmRleDoo
TlNJbnRlZ2VyKWluZGV4Cit7CisgICAgQVNTRVJUKCFpbmRleCk7CisgICAgcmV0dXJuIF9pdGVt
LmdldCgpOworfQorCisjcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdQYW5lbERlbGVnYXRlCisKKy0g
KFFMUHJldmlld0FjdGl2aXR5KXByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwcmV2aWV3
UGFuZWwgaW5pdGlhbEFjdGl2aXR5Rm9ySXRlbTooaWQgPFFMUHJldmlld0l0ZW0+KWl0ZW0KK3sK
KyAgICByZXR1cm4gUUxQcmV2aWV3QWN0aXZpdHlWaXN1YWxTZWFyY2g7Cit9CisKK0BlbmQKKwor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5t
bQppbmRleCAzMjNiZDM1OTdmNDk0NmViNzFlMDQ2MmQxOTcyMmVhZTViYWIwNzY3Li5mODA5MGFk
MTZkZDNkNjk2ZDBkYWYzYmFhNDE2MDRjODY4ZDA4Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDM2LDcg
KzQzNiw3IEBAIHN0YXRpYyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1JlbG9hZDoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZDsKIAot
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRp
ZmllclJldmVhbEltYWdlOwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWI6
CkBAIC01MDcsMTQgKzUwNywxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENv
bnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAgICB9
KTsKICAgICB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IHJl
dmVhbEltYWdlSXRlbTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+
IGxvb2tVcEltYWdlSXRlbTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKICAgICBmaWx0ZXJlZEl0ZW1zLnJlbW92ZUZpcnN0TWF0Y2hp
bmcoWyZdIChhdXRvJiBpdGVtKSB7Ci0gICAgICAgIGlmIChpdGVtLmFjdGlvbigpICE9IFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKQorICAgICAgICBpZiAoaXRlbS5hY3Rp
b24oKSAhPSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICByZXZlYWxJbWFnZUl0ZW0gPSB7IGl0ZW0gfTsK
KyAgICAgICAgbG9va1VwSW1hZ2VJdGVtID0geyBpdGVtIH07CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0pOwogI2VuZGlmCkBAIC01MzEsNyArNTMxLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVu
dVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbnUKICAgICBhdXRvIGltYWdlQml0bWFwID0gbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHRE
YXRhKCkuaW1hZ2VCaXRtYXA7CiAKICAgICBhdXRvIHNwYXJzZU1lbnVJdGVtcyA9IHJldGFpblB0
cihbTlNQb2ludGVyQXJyYXkgc3Ryb25nT2JqZWN0c1BvaW50ZXJBcnJheV0pOwotICAgIGF1dG8g
aW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUo
aW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCByZXZlYWxJbWFn
ZUl0ZW0gPSBXVEZNb3ZlKHJldmVhbEltYWdlSXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5z
aXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0g
Kml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVudUl0
ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1Bh
Z2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBp
bWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBsb29rVXBJbWFnZUl0ZW0gPSBXVEZN
b3ZlKGxvb2tVcEltYWdlSXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUg
PSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUlu
dGVnZXIgaW5kZXgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaW5kZXggPCBbc3BhcnNlTWVu
dUl0ZW1zIGNvdW50XSk7CiAgICAgICAgIEFTU0VSVCghW3NwYXJzZU1lbnVJdGVtcyBwb2ludGVy
QXRJbmRleDppbmRleF0pOwogICAgICAgICBbc3BhcnNlTWVudUl0ZW1zIHJlcGxhY2VQb2ludGVy
QXRJbmRleDppbmRleCB3aXRoUG9pbnRlcjppdGVtXTsKQEAgLTU0MSwxMSArNTQxLDExIEBAIHZv
aWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3Qg
VmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgICAgIFttZW51IHNldEl0ZW1BcnJheTpbc3BhcnNl
TWVudUl0ZW1zIGFsbE9iamVjdHNdXTsKIAogICAgICAgICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRy
KHdlYWtQYWdlLmdldCgpKTsKLSAgICAgICAgaWYgKHJldmVhbEltYWdlSXRlbSAmJiBwYWdlICYm
IGltYWdlQml0bWFwKSB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAg
ICBwYWdlLT5jb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoaW1hZ2VVUkwsICppbWFnZUJpdG1hcCwgW3By
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCByZXZlYWxJbWFnZUl0ZW0gPSBX
VEZNb3ZlKCpyZXZlYWxJbWFnZUl0ZW0pXSAoYm9vbCBjYW5SZXZlYWxJbWFnZSkgbXV0YWJsZSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGNhblJldmVhbEltYWdlKQotICAgICAgICAgICAgICAgICAg
ICBbcHJvdGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVudUFjdGlvbkl0ZW0ocmV2
ZWFsSW1hZ2VJdGVtKS5nZXQoKV07CisgICAgICAgIGlmIChsb29rVXBJbWFnZUl0ZW0gJiYgcGFn
ZSAmJiBpbWFnZUJpdG1hcCkgeworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAg
ICAgIHBhZ2UtPmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGltYWdlVVJMLCAqaW1hZ2VC
aXRtYXAsIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgbG9va1VwSW1h
Z2VJdGVtID0gV1RGTW92ZSgqbG9va1VwSW1hZ2VJdGVtKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNo
UmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMpCisgICAgICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRl
bTpjcmVhdGVNZW51QWN0aW9uSXRlbShsb29rVXBJbWFnZUl0ZW0pLmdldCgpXTsKICAgICAgICAg
ICAgIH0pOwogI2Vsc2UKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShpbWFnZVVSTCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCAwODM5
NGVkOTcyNGMxYjVhYzI2NzVmYjhmZmNiYWUwNzAxZTYzNTBjLi40MzM3NzM5ZTc0YTA2MjQ4YTU0
MzYxNzc2YjcxZmQyOTMyMjcyZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTQ1LDggKzQ1LDggQEAKICNpbXBvcnQgIlN0cmluZ1V0
aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCi0jaW1wb3J0ICJXS0ltYWdlRXh0cmFjdGlvblBy
ZXZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdh
dGUuaCIKKyNpbXBvcnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCIKICNpbXBv
cnQgIldlYkNvbnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5o
IgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCkBAIC0xMTAsNiArMTEwLDggQEAgLSAo
dm9pZCljb250ZXh0TWVudUFjdGlvbjooTlNNZW51SXRlbSAqKXNlbmRlcgogQGVuZCAvLyBpbXBs
ZW1lbnRhdGlvbiBXS1BERk1lbnVUYXJnZXQKICNlbmRpZgogCisjaW1wb3J0IDxwYWwvbWFjL1F1
aWNrTG9va1VJU29mdExpbmsuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKICAgICAKQEAgLTcyMiwyNiArNzI0LDY2IEBAIENvbG9yIFdlYlBhZ2VQcm94
eTo6cGxhdGZvcm1VbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6YmVnaW5QcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICpwYW5lbCkK
IHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbbV9pbWFnZUV4dHJhY3Rpb25Q
cmV2aWV3Q29udHJvbGxlciBiZWdpbkNvbnRyb2w6cGFuZWxdOworI2lmIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKKyAgICBbbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBiZWdpbkNvbnRy
b2w6cGFuZWxdOwogI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjplbmRQcmV2aWV3UGFu
ZWxDb250cm9sKFFMUHJldmlld1BhbmVsICpwYW5lbCkKIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKLSAgICBpZiAoYXV0byBjb250cm9sbGVyID0gc3RkOjpleGNoYW5nZShtX2ltYWdl
RXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLCBuaWwpKQorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICBpZiAoYXV0byBjb250cm9sbGVyID0gc3RkOjpleGNoYW5nZShtX3Zpc3VhbFNl
YXJjaFByZXZpZXdDb250cm9sbGVyLCBuaWwpKQogICAgICAgICBbY29udHJvbGxlciBlbmRDb250
cm9sOnBhbmVsXTsKICNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2VTaGFyZWRQ
cmV2aWV3UGFuZWxJZk5lY2Vzc2FyeSgpCiB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0gICAgW21faW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIgY2xvc2VQYW5lbElmTmVj
ZXNzYXJ5XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW21fdmlzdWFsU2VhcmNo
UHJldmlld0NvbnRyb2xsZXIgY2xvc2VQYW5lbElmTmVjZXNzYXJ5XTsKICNlbmRpZgogfQogCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0ltYWdl
SW5WaXN1YWxTZWFyY2hQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwg
Y29uc3QgU3RyaW5nJiB0b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJMKQoreworICAgIGlmICgh
UEFMOjppc1F1aWNrTG9va1VJRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Z2V0UUxQcmV2
aWV3UGFuZWxDbGFzcygpIHx8ICFbUEFMOjpnZXRRTEl0ZW1DbGFzcygpIGluc3RhbmNlc1Jlc3Bv
bmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aERhdGFQcm92aWRlcjpjb250ZW50VHlwZTpw
cmV2aWV3VGl0bGU6KV0pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW1hZ2UgPSBpbWFn
ZUJpdG1hcC5tYWtlQ0dJbWFnZSgpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gaW1hZ2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVNdXRhYmxlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIDApKTsKKyAgICBhdXRvIGRlc3RpbmF0aW9uID0gYWRvcHRDRihDR0lt
YWdlRGVzdGluYXRpb25DcmVhdGVXaXRoRGF0YShpbWFnZURhdGEuZ2V0KCksIChfX2JyaWRnZSBD
RlN0cmluZ1JlZilVVFR5cGVQTkcuaWRlbnRpZmllciwgMSwgbnVsbHB0cikpOworICAgIGlmICgh
ZGVzdGluYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFk
ZEltYWdlKGRlc3RpbmF0aW9uLmdldCgpLCBpbWFnZS5nZXQoKSwgbmlsKTsKKyAgICBpZiAoIUNH
SW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tX
S1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFBhZ2U6KnRoaXMg
aW1hZ2VEYXRhOihfX2JyaWRnZSBOU0RhdGEgKilpbWFnZURhdGEuZ2V0KCkgdGl0bGU6dG9vbHRp
cCBpbWFnZVVSTDppbWFnZVVSTF0pOworCisgICAgLy8gV2hlbiBwcmVzZW50aW5nIHRoZSBzaGFy
ZWQgUUxQcmV2aWV3UGFuZWwsIFF1aWNrTG9vayB3aWxsIHNlYXJjaCB0aGUgcmVzcG9uZGVyIGNo
YWluIGZvciBhIHN1aXRhYmxlIHBhbmVsIGNvbnRyb2xsZXIuCisgICAgLy8gTWFrZSBzdXJlIHRo
YXQgd2UgKGJ5IGRlZmF1bHQpIHN0YXJ0IHRoZSBzZWFyY2ggYXQgdGhlIHdlYiB2aWV3LCB3aGlj
aCBrbm93cyBob3cgdG8gdmVuZCB0aGUgVmlzdWFsIFNlYXJjaCBwcmV2aWV3CisgICAgLy8gY29u
dHJvbGxlciBhcyBhIGRlbGVnYXRlIGFuZCBkYXRhIHNvdXJjZSBmb3IgdGhlIHByZXZpZXcgcGFu
ZWwuCisgICAgcGFnZUNsaWVudCgpLm1ha2VGaXJzdFJlc3BvbmRlcigpOworCisgICAgYXV0byBw
cmV2aWV3UGFuZWwgPSBbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmll
d1BhbmVsXTsKKyAgICBbcHJldmlld1BhbmVsIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CisK
KyAgICBpZiAoIVttX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGlzQ29udHJvbGxpbmc6
cHJldmlld1BhbmVsXSkgeworICAgICAgICAvLyBUaGUgV2ViS2l0IGNsaWVudCBtYXkgaGF2ZSBv
dmVycmlkZGVuIFFMUHJldmlld1BhbmVsQ29udHJvbGxlciBtZXRob2RzIG9uIHRoZSB2aWV3IHdp
dGhvdXQgY2FsbGluZyBpbnRvIHRoZSBzdXBlcmNsYXNzLgorICAgICAgICAvLyBJbiB0aGlzIGNh
c2UsIGhhbmQgb3ZlciBjb250cm9sIHRvIHRoZSBjbGllbnQgYW5kIGNsZWFyIG91dCBvdXIgc3Rh
dGUgZWFnZXJseSwgc2luY2Ugd2UgZG9uJ3QgZXhwZWN0IGFueSBmdXJ0aGVyIGRlbGVnYXRlCisg
ICAgICAgIC8vIGNhbGxzIG9uY2UgdGhlIHByZXZpZXcgcGFuZWwgaXMgZGlzbWlzc2VkLgorICAg
ICAgICBtX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmNsZWFyKCk7CisgICAgfQorfQor
CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1ZmUyZWQxNTU3ZWMyNDBmNDVhYmRiMTY1
YjZlMDYwMzhmMjExY2QuLjdlMzE2YTViM2FmOTU5MTllNjYzMzQyYzM4Y2UzOGE5YzU0N2VjN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjAxNiw3ICsyMDE2LDcgQEAKIAkJRjQyRDYzNDEyMkEwRUZERjAwRDJGQjNBIC8qIFdlYkF1
dG9jb3JyZWN0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQyRDYzM0YyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0
YS5oICovOyB9OwogCQlGNDMwRTk0MjIyNDczMzVGMDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3
cG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQzMEU5NDEyMjQ3MzJBOTAwNUZFMDUzIC8qIFdlYnNpdGVNZXRhVmlld3BvcnRQb2xpY3ku
aCAqLzsgfTsKIAkJRjQzMEU5NDQyMjQ3M0RGRjAwNUZFMDUzIC8qIFdlYkNvbnRlbnRNb2RlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMwRTk0MzIy
NDczREI4MDA1RkUwNTMgLyogV2ViQ29udGVudE1vZGUuaCAqLzsgfTsKLQkJRjQzNTFCOUUyNUVF
Qzg0QzAwRDYzODkyIC8qIEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzNTFCOUQyNUVFQzg0QzAwRDYzODky
IC8qIEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oICovOyB9OworCQlGNDM1MUI5RTI1RUVDODRD
MDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyog
VGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmggKi87IH07CiAJCUY0MzhDRDFDMjI0MTQyMTQwMERF
NkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMUIyMjQxNDBBNjAwREU2RERBIC8qIFdLV2VicGFn
ZVByZWZlcmVuY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQlGNDM4Q0QxRjIyNDE0RDQwMDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQzOENEMUUyMjQxNEQ0MDAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwu
aCAqLzsgfTsKIAkJRjQzOENEMjEyMjQxRjY5NTAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVu
Y2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQzOENEMjAyMjQxRjY5NTAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
MDMwLDkgKzIwMzAsOSBAQAogCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE4
NDIxNTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggKi87IH07CiAJCUY0OTZBNDMxMUY1OEEy
NzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTZBNDJGMUY1OEEyNzIwMDRDMTc1NyAv
KiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCAqLzsgfTsKIAkJRjQ5NzRFNzYyNjVFQ0JCQzAw
QjQ5QjhDIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2
ZWFsSXRlbVByZXNlbnRlci5oICovOyB9OwotCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyog
V0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdL
SW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKKwkJRjQ5NzVDRjIyNjI0
QjgwQTAwM0M2MjZFIC8qIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTc1Q0YxMjYyNEI4MEEw
MDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUY0
QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBNkQ2QkIyNTRDQTNF
OTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi87IH07Ci0JCUY0QkEzM0Yy
MjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEJBMzNGMDI1
NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICov
OyB9OworCQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVy
ZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVj
b2duaXplci5oICovOyB9OwogCQlGNENCMDlFNTIyNUQ1QTA5MDA4OTE0ODcgLyogV2Vic2l0ZU1l
ZGlhU291cmNlUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNENCMDlFNDIyNUQ1QTAzMDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9s
aWN5LmggKi87IH07CiAJCUY0Q0YxRTlEMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0Q0YxRTlCMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2du
aXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCAqLzsgfTsKIAkJRjRENUY1MUQyMDYwODdBMTAwMzhC
QkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ1RjUxOTIwNjA4N0EwMDAzOEJCQTggLyog
V0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKQEAgLTU5NjQsOCArNTk2NCw4
IEBACiAJCUY0MkQ2MzQwMjJBMEVGRDMwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJBdXRvY29ycmVj
dGlvbkRhdGEubW07IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDMwRTk0MTIyNDczMkE5MDA1RkUwNTMgLyogV2Vic2l0
ZU1ldGFWaWV3cG9ydFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTWV0YVZpZXdwb3J0
UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzBFOTQzMjI0NzNEQjgw
MDVGRTA1MyAvKiBXZWJDb250ZW50TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZW50TW9k
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4
OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRXh0
cmFjdGlvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDM1MUI5
RjI1RUVDODc4MDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0
aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDM1MUI5RjI1RUVDODc4MDBENjM4OTIg
LyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4
dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDM4Q0QxQjIyNDE0MEE2MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tXZWJwYWdlUHJlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQzOENEMUQyMjQxNEFENjAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJwYWdlUHJlZmVyZW5jZXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzhDRDFFMjI0MTRENDAwMERFNkREQSAvKiBXS1dlYnBh
Z2VQcmVmZXJlbmNlc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2VicGFnZVByZWZlcmVu
Y2VzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5ODYsMTQgKzU5
ODYsMTQgQEAKIAkJRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBcHBLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5
NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgcGF0aCA9IGlvcy9EcmFnRHJv
cEludGVyYWN0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5NkE0
MzAxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbTsgcGF0aCA9IGlvcy9E
cmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ5NzVDRjMyNjI0QjkxODAwM0M2
MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNDk3NUNGMTI2MjRCODBBMDAzQzYyNkUgLyogV0tWaXN1
YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Zpc3VhbFNlYXJj
aFByZXZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OTc1
Q0YzMjYyNEI5MTgwMDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFB
IC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERpc3Bs
YXlMaXN0SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QTdDRTg0MjY2
N0VCNEUwMDIyODY4NSAvKiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0QTdDRTg0MjY2N0VCNEUwMDIyODY4NSAvKiBUZXh0UmVjb2duaXRpb25VcGRh
dGVSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QUM2NTVFMjJBMzE0MEUwMEEwNTYwNyAv
KiBXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW07IHBh
dGggPSBpb3MvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzSU9TLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNEIzNzhEMDIxRERCQkFCMDA5NUEzNzggLyogV2ViVW5kb1N0ZXBJ
RC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVbmRvU3RlcElELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QkEzM0YxMjU3NTdFODkwMDBB
M0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9
IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbWFnZUFuYWx5c2lzR2Vz
dHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2du
aXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEJBMzNGMTI1NzU3RTg5MDAw
QTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlv
cy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRDQjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdlYnNpdGVNZWRpYVNvdXJj
ZVBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdl
c3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgcGF0
aCA9IGlvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDRjFFOUMyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVS
ZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTsg
cGF0aCA9IGlvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NzI0LDcgKzY3MjQsNiBAQAogCQkJCTQ2QUM1MzI0
MjVERUQ4MUUwMDNCNTdFQyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCAqLywK
IAkJCQlGNDBCQkI0MDI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VB
cmd1bWVudHMuaCAqLywKIAkJCQkxQUM3NUExQTFCMzM2ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVj
dGlvbkRpc2FibGVyLmggKi8sCi0JCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIEltYWdl
RXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMz
NSAvKiBJbWFnZU9wdGlvbnMuaCAqLywKIAkJCQk5OTlCN0VEODI1NTBFNEE4MDBGNDUwQTQgLyog
SW5zcGVjdG9yRXh0ZW5zaW9uVHlwZXMuY3BwICovLAogCQkJCTk5QkUzQjE2MjU0MzNCOTQwMEM2
NTUxQyAvKiBJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oICovLApAQCAtNjc3Nyw2ICs2Nzc2LDcg
QEAKIAkJCQk4M0Y5NjQ0QjFGQTBGNzYyMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxl
UmVhZE9ubHkuY3BwICovLAogCQkJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRT
dHJpbmdIYXNoVGFibGVSZWFkT25seS5oICovLAogCQkJCTFBNUU0REEzMTJEM0JEM0QwMDk5QTJC
QiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggKi8sCisJCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1
IC8qIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oICovLAogCQkJCTJGRDQzQjkyMUZBMDA2
QTMwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmNwcCAqLywKIAkJCQkyRkQ0M0I5MTFGQTAw
NkExMDA4M0Y1MUMgLyogVG91Y2hCYXJNZW51RGF0YS5oICovLAogCQkJCTJGODA5REQ1MUZCRDFC
QzkwMDVGRTYzQSAvKiBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgKi8sCkBAIC03NzY4LDggKzc3
NjgsOCBAQAogCQkJCTBGQ0I0RTQxMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0dlb2xvY2F0aW9uUHJv
dmlkZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0gKi8sCiAJCQkJRjREQjU0RTQyMzE5RTczMzAw
OUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJ
CQlGNERCNTRFNTIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplci5tbSAqLywKLQkJCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovLAotCQkJCUY0QkEzM0YxMjU3NTdFODkw
MDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovLAorCQkJ
CUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2du
aXplci5oICovLAorCQkJCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlz
aXNHZXN0dXJlUmVjb2duaXplci5tbSAqLywKIAkJCQk5MzNERjgyRDFCM0JDMDkwMDBBRUE5RTMg
LyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oICovLAogCQkJCTkzM0RGODJGMUIzQkMw
QjQwMEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJE
RDVFMTI3MjEwQURDN0EwMERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAq
LywKQEAgLTg1MTEsOCArODUxMSw2IEBACiAJCQkJRjRGRTBBM0EyNDYzMkIxMDAwMjYzMUUxIC8q
IENvY29hQ29sb3IuaCAqLywKIAkJCQlGNEZFMEEzQzI0NjM1NjY3MDAyNjMxRTEgLyogQ29jb2FG
b250LmggKi8sCiAJCQkJNDQ4MjczNDYyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCAq
LywKLQkJCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0
aWVzLmggKi8sCi0JCQkJRjQzNTFCOUYyNUVFQzg3ODAwRDYzODkyIC8qIEltYWdlRXh0cmFjdGlv
blV0aWxpdGllcy5tbSAqLywKIAkJCQlCQ0UwOTM3NjE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJI
b3N0aW5nQ29udGV4dC5oICovLAogCQkJCUJDRTA5Mzc1MTRGQjEyOEIwMDExMzhEOSAvKiBMYXll
ckhvc3RpbmdDb250ZXh0Lm1tICovLAogCQkJCUExNzk4QjNEMjIyRDk3QTIwMDA3NjRCRCAvKiBQ
YXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oICovLApAQCAtODUyMCw2ICs4NTE4LDggQEAK
IAkJCQlBMTc5OEIzRjIyMkQ5OEI2MDAwNzY0QkQgLyogUGF5bWVudEF1dGhvcml6YXRpb25WaWV3
Q29udHJvbGxlci5oICovLAogCQkJCUExNzk4QjQwMjIyRDk4QjYwMDA3NjRCRCAvKiBQYXltZW50
QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTQ0NTBBRUJGMURDM0ZBRTUw
MDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8sCisJCQkJRjQzNTFCOUQyNUVFQzg0
QzAwRDYzODkyIC8qIFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oICovLAorCQkJCUY0MzUxQjlG
MjVFRUM4NzgwMEQ2Mzg5MiAvKiBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0gKi8sCiAJCQkJ
QTE4MUE3OTcyMUFDQUM2MTAwNTlBMzE2IC8qIFdlYktpdEFkZGl0aW9ucy5tbSAqLywKIAkJCQlB
MUZCNjgyMjFGNkU1MTgyMDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVyLmggKi8sCiAJCQkJQTFG
QjY4MjMxRjZFNTE4MjAwQzQzRjlGIC8qIFdLQ3Jhc2hSZXBvcnRlci5tbSAqLywKQEAgLTEwODU3
LDggKzEwODU3LDYgQEAKIAkJCQk4NjgxNjBDRjE4NzY0NTM3MDAyMUU3OUQgLyogV2luZG93U2Vy
dmVyQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovLAogCQkJCUNEQ0E4NUM2MTMyQUJBNEUwMEU5
NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovLAotCQkJCUY0OTc1Q0Yx
MjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmgg
Ki8sCi0JCQkJRjQ5NzVDRjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJl
dmlld0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oICovLAogCQkJCTkzMjFENTg3MUEzOEVFNzQwMDgw
NTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8sCiAJCQkJMEZDQjRFNUMx
OEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3LmggKi8sCkBAIC0xMDg3Myw2ICsxMDg3
MSw4IEBACiAJCQkJMEZDQjRFNUYxOEJCRTNEOTAwMEZDRkM5IC8qIFdLVGV4dElucHV0V2luZG93
Q29udHJvbGxlci5tbSAqLywKIAkJCQkyRDI4QTQ5NTFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3
TGF5b3V0U3RyYXRlZ3kuaCAqLywKIAkJCQkyRDI4QTQ5NjFBRjk2NUExMDBGMTkwQzkgLyogV0tW
aWV3TGF5b3V0U3RyYXRlZ3kubW0gKi8sCisJCQkJRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8q
IFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCAqLywKKwkJCQlGNDk3NUNGMzI2MjRC
OTE4MDAzQzYyNkUgLyogV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbSAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExOTc0
LDcgKzExOTc0LDYgQEAKIAkJCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZv
cm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzBDOTc0
MURERDc2MDAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlGNDM1MUI5RTI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyog
SW1hZ2VPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTFFQzY5RTE4NzIwOTIxMDBCOTUx
RjAgLyogSW1wb3J0YW5jZUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMDRFRTMx
MUM4M0U5ODAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmggaW4gSGVhZGVycyAqLywKQEAgLTEy
MzM0LDYgKzEyMzMzLDcgQEAKIAkJCQk1M0NGQkJDODIyMjREMUI1MDAyNjY1NDYgLyogVGV4dENo
ZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVFNERBNDEyRDNCRDNEMDA5
OUEyQkIgLyogVGV4dENoZWNrZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxQTBCRDcx
QTQ4RTZDNjAwNTRFRjc0IC8qIFRleHRJbnB1dFNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQz
NTFCOUUyNUVFQzg0QzAwRDYzODkyIC8qIFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFBRjI2MzkxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUYwNUQ4NzE0Njg4MzQ4MDA4
QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjQ4NTcwQTMyNjQ0QkVDNTAwQzA1RjcxIC8qIFRpbWVvdXQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTI3OTIsOSArMTI3OTIsOCBAQAogCQkJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3
QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyM0NGMUMxMzNEMjYw
QTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0Y2
QUMzMTJDOTFGMzQwMDhGOUMzNSAvKiBXS0ltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEJB
MzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0Y2QUNBMTJDOTFGNTkwMDhGOUMzNSAvKiBXS0ltYWdl
Q0cuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDk3
NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzREY4MkUxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1h
Z2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMjFENTg2MUEz
OEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzMjFENThBMUEzOEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5
cGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEyOTg2LDYgKzEyOTg1LDcgQEAKIAkJCQlCQzg2OTlC
NzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY0OTc1Q0YyMjYyNEI4MEEwMDNDNjI2RSAvKiBXS1Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTM2RTUxNjIz
NkE2MjExMDA3NEZENUQgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTM2
RTUxNDIzNkE2MERDMDA3NEZENUQgLyogV0tXZWJBcmNoaXZlUmVmLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNUUxQUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlUmVzb3VyY2UuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBkY2ZkN2M3NTY5N2Y5MDE3
ZGU4ZmY5MWJjN2RhYWI1MWZhMWQyYjZmLi43ZDYyZTVlOWEzOWQxNWNhYTM3NWExMWM5OTY3NDU2
NzY0ZGY4OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ2OSwxMSArMTQ2OSwxMSBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hhbmdlVW5pdmVyc2FsQWNjZXNzWm9vbUZvY3VzKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiBlbGVtZW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uKQog
ewotICAgIG1fcGFnZS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGVsZW1lbnQsIFdURk1vdmUoY29t
cGxldGlvbikpOworICAgIG1fcGFnZS5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGVsZW1lbnQsIFdU
Rk1vdmUoY29tcGxldGlvbikpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3
MWQ4OWE3YTY3ZGQzOWMyYmU5Y2FlMmY2YmFkNjI0MzgwZTcxN2ZlLi42Mjg2MjAyODQyNGZiYmJl
ZDEzMjgxNjM1NzRiNzA1ZDNiYzE4MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00MjMsOCAr
NDIzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoYW5nZVVuaXZlcnNhbEFjY2Vzc1pvb21Gb2N1
cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFs
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmID0geyB9KSBmaW5hbDsKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNv
cmU6OkVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVt
ZW50PiYmKT4mJiA9IHsgfSkgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgbmVlZHNJbWFnZU92
ZXJsYXlDb250cm9sbGVyRm9yU2VsZWN0aW9uUGFpbnRpbmcoKSBjb25zdCBmaW5hbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmMDAxYTZjY2Zh
ZDJkZThmNGRiMDViODE1ZTFlMTdiNTM4OTNmNjJiLi4xZjJhYzM5YzZmMTZiMjU3NTQ1MjNiMmJi
MGY4N2Q2ZTcwNTk0NmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlTm9kZURhdGEuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgotI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblVw
ZGF0ZVJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZC5oIgpAQCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJUZXh0UmVjb2duaXRpb25VcGRhdGVS
ZXN1bHQuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiVmlz
aXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaCIKQEAgLTM2MCw4ICszNjAsOCBAQAogI2VuZGlmCiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUv
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0Lmg+CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpAQCAtNjI4MSwxMyArNjI4MSwxMyBAQCB2
b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIEFTU0VSVCgh
ZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdGF0ZU1hY2hpbmUoKS5jcmVhdGluZ0luaXRp
YWxFbXB0eURvY3VtZW50KCkpOwogICAgIHVuZnJlZXplTGF5ZXJUcmVlKExheWVyVHJlZUZyZWV6
ZVJlYXNvbjo6UHJvY2Vzc1N3YXApOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0g
ICAgZm9yIChhdXRvJiBbZWxlbWVudCwgY29tcGxldGlvbkhhbmRsZXJzXSA6IG1fZWxlbWVudHNQ
ZW5kaW5nSW1hZ2VFeHRyYWN0aW9uKSB7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAg
IGZvciAoYXV0byYgW2VsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyc10gOiBtX2VsZW1lbnRzUGVu
ZGluZ1RleHRSZWNvZ25pdGlvbikgewogICAgICAgICBmb3IgKGF1dG8mIGNvbXBsZXRpb25IYW5k
bGVyIDogY29tcGxldGlvbkhhbmRsZXJzKQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
eyB9KTsKICAgICB9Ci0gICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24uY2xlYXIo
KTsKLSAgICBtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jbGVhcigpOworICAgIG1fZWxl
bWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLmNsZWFyKCk7CisgICAgbV9lbGVtZW50c1dpdGhU
ZXh0UmVjb2duaXRpb25SZXN1bHRzLmNsZWFyKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCkBAIC03MzgzLDkgKzczODMsOSBAQCB2b2lkIFdlYlBhZ2U6
OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1VTQUdFKQogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFdl
YlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYgY29t
cGxldGlvbikKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpF
bGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpF
bGVtZW50PiYmKT4mJiBjb21wbGV0aW9uKQogewogICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KGVs
ZW1lbnQpKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQpAQCAtNzM5Myw3ICs3MzkzLDcgQEAg
dm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVs
ZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jb250YWlucyhlbGVtZW50KSkgeworICAg
IGlmIChtX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMoZWxlbWVu
dCkpIHsKICAgICAgICAgaWYgKGNvbXBsZXRpb24pIHsKICAgICAgICAgICAgIEFTU0VSVChpczxI
VE1MRWxlbWVudD4oZWxlbWVudCkpOwogICAgICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdl
T3ZlcmxheUhvc3Q7CkBAIC03NDA0LDEzICs3NDA0LDEzIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVz
dEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFu
ZGxlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIG1hdGNoSW5kZXggPSBtX2Vs
ZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5maW5kTWF0Y2hpbmcoWyZdIChhdXRvJiBlbGVt
ZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzKSB7CisgICAgYXV0byBtYXRjaEluZGV4ID0gbV9lbGVt
ZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uZmluZE1hdGNoaW5nKFsmXSAoYXV0byYgZWxlbWVu
dEFuZENvbXBsZXRpb25IYW5kbGVycykgewogICAgICAgICByZXR1cm4gZWxlbWVudEFuZENvbXBs
ZXRpb25IYW5kbGVycy5maXJzdCA9PSAmZWxlbWVudDsKICAgICB9KTsKIAogICAgIGlmIChtYXRj
aEluZGV4ICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQotICAgICAgICAg
ICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb25bbWF0Y2hJbmRleF0uc2Vjb25kLmFw
cGVuZChXVEZNb3ZlKGNvbXBsZXRpb24pKTsKKyAgICAgICAgICAgIG1fZWxlbWVudHNQZW5kaW5n
VGV4dFJlY29nbml0aW9uW21hdGNoSW5kZXhdLnNlY29uZC5hcHBlbmQoV1RGTW92ZShjb21wbGV0
aW9uKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc0NDAsMTUgKzc0NDAsMTUgQEAg
dm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVs
ZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZWZQdHI8RWxlbWVudD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNvbXBs
ZXRpb24pCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21wbGV0
aW9uKSk7Ci0gICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24uYXBwZW5kKHsgbWFr
ZVdlYWtQdHIoZWxlbWVudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAgICBt
X2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBtYWtlV2Vha1B0cihlbGVt
ZW50KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcnMpIH0pOwogCiAgICAgYXV0byBpbWFnZVVS
TCA9IGVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChyZW5kZXJJbWFnZS5jYWNoZWRJbWFn
ZSgpLT51cmwoKS5zdHJpbmcoKSk7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV1RGTW92ZShpbWFnZVVSTCksIFdU
Rk1vdmUoYml0bWFwSGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFr
RWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29n
bml0aW9uKFdURk1vdmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFn
ZSA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgd2Vha0VsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50
KV0gKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRQYWdlID0gbWFrZVJl
ZlB0cih3ZWJQYWdlLmdldCgpKTsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRQYWdlKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5n
SW1hZ2VFeHRyYWN0aW9uLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYgZWxlbWVudEFuZENv
bXBsZXRpb25IYW5kbGVycykgeworICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVu
ZGluZ1RleHRSZWNvZ25pdGlvbi5yZW1vdmVBbGxNYXRjaGluZyhbJl0gKGF1dG8mIGVsZW1lbnRB
bmRDb21wbGV0aW9uSGFuZGxlcnMpIHsKICAgICAgICAgICAgIGF1dG8mIFtlbGVtZW50LCBjb21w
bGV0aW9uSGFuZGxlcnNdID0gZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVyczsKICAgICAgICAg
ICAgIGlmIChlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc0NjMs
MTAgKzc0NjMsMTAgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNv
cmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBhdXRvJiBodG1sRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pigq
cHJvdGVjdGVkRWxlbWVudCk7Ci0gICAgICAgIGh0bWxFbGVtZW50LnVwZGF0ZVdpdGhJbWFnZUV4
dHJhY3Rpb25SZXN1bHQoV1RGTW92ZShyZXN1bHQpKTsKLSAgICAgICAgcHJvdGVjdGVkUGFnZS0+
bV9lbGVtZW50c1dpdGhFeHRyYWN0ZWRJbWFnZXMuYWRkKGh0bWxFbGVtZW50KTsKKyAgICAgICAg
aHRtbEVsZW1lbnQudXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXVEZNb3ZlKHJlc3Vs
dCkpOworICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlv
blJlc3VsdHMuYWRkKGh0bWxFbGVtZW50KTsKIAotICAgICAgICBhdXRvIG1hdGNoSW5kZXggPSBw
cm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5maW5kTWF0Y2hp
bmcoWyZdIChhdXRvJiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzKSB7CisgICAgICAgIGF1
dG8gbWF0Y2hJbmRleCA9IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29n
bml0aW9uLmZpbmRNYXRjaGluZyhbJl0gKGF1dG8mIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFuZGxl
cnMpIHsKICAgICAgICAgICAgIHJldHVybiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzLmZp
cnN0ID09ICZodG1sRWxlbWVudDsKICAgICAgICAgfSk7CiAKQEAgLTc0NzQsMjIgKzc0NzQsMjIg
QEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBhdXRvIGltYWdlT3ZlcmxheUhvc3QgPSBodG1sRWxlbWVudC5oYXNJbWFnZU92ZXJsYXkoKSA/
IG1ha2VSZWZQdHIoaHRtbEVsZW1lbnQpIDogbnVsbHB0cjsKLSAgICAgICAgZm9yIChhdXRvJiBj
b21wbGV0aW9uSGFuZGxlciA6IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nSW1hZ2VF
eHRyYWN0aW9uW21hdGNoSW5kZXhdLnNlY29uZCkKKyAgICAgICAgZm9yIChhdXRvJiBjb21wbGV0
aW9uSGFuZGxlciA6IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0
aW9uW21hdGNoSW5kZXhdLnNlY29uZCkKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGlt
YWdlT3ZlcmxheUhvc3QuY29weVJlZigpKTsKIAotICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2Vs
ZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5yZW1vdmUobWF0Y2hJbmRleCk7CisgICAgICAg
IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLnJlbW92ZSht
YXRjaEluZGV4KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlOjp1cGRhdGVXaXRoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJlc3VsdCwgY29uc3QgRWxl
bWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQo
VGV4dFJlY29nbml0aW9uUmVzdWx0JiYgcmVzdWx0LCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBhdXRvIGVsZW1lbnRUb1VwZGF0ZSA9IGVsZW1lbnRGb3JDb250ZXh0KGNvbnRleHQpOwogICAg
IGlmICghaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnRUb1VwZGF0ZSkpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmVs
ZW1lbnRUb1VwZGF0ZSkudXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXVEZNb3ZlKHJl
c3VsdCkpOworICAgIGRvd25jYXN0PEhUTUxFbGVtZW50PigqZWxlbWVudFRvVXBkYXRlKS51cGRh
dGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUocmVzdWx0KSk7CiAgICAgYXV0byBo
aXRUZXN0UmVzdWx0ID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0
VGVzdFJlc3VsdEF0UG9pbnQocm91bmRlZEludFBvaW50KGxvY2F0aW9uKSwgewogICAgICAgICBI
aXRUZXN0UmVxdWVzdDo6VHlwZTo6UmVhZE9ubHksCiAgICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpU
eXBlOjpBY3RpdmUsCkBAIC03NDk5LDIzICs3NDk5LDIzIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRl
V2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQs
IGNvCiAgICAgYXV0byBub2RlQXRMb2NhdGlvbiA9IG1ha2VSZWZQdHIoaGl0VGVzdFJlc3VsdC5p
bm5lck5vblNoYXJlZE5vZGUoKSk7CiAgICAgYXV0byB1cGRhdGVSZXN1bHQgPSAoWyZdIHsKICAg
ICAgICAgaWYgKCFub2RlQXRMb2NhdGlvbiB8fCBub2RlQXRMb2NhdGlvbi0+c2hhZG93SG9zdCgp
ICE9IGVsZW1lbnRUb1VwZGF0ZSB8fCAhSFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5
KCpub2RlQXRMb2NhdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBk
YXRlUmVzdWx0OjpOb1RleHQ7CisgICAgICAgICAgICByZXR1cm4gVGV4dFJlY29nbml0aW9uVXBk
YXRlUmVzdWx0OjpOb1RleHQ7CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgICAg
IGlmIChmaW5kRGF0YURldGVjdGlvblJlc3VsdEVsZW1lbnRJbkltYWdlT3ZlcmxheShsb2NhdGlv
biwgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCplbGVtZW50VG9VcGRhdGUpKSkKLSAgICAgICAgICAg
IHJldHVybiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcjsKKyAgICAg
ICAgICAgIHJldHVybiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcjsK
ICNlbmRpZgogCiAgICAgICAgIGlmIChIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCpu
b2RlQXRMb2NhdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRl
UmVzdWx0OjpUZXh0OworICAgICAgICAgICAgcmV0dXJuIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJl
c3VsdDo6VGV4dDsKIAotICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0
OjpOb1RleHQ7CisgICAgICAgIHJldHVybiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6Ok5v
VGV4dDsKICAgICB9KSgpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIodXBkYXRlUmVzdWx0KTsK
IH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIHZvaWQgV2ViUGFnZTo6c2hvd01lZGlhQ29udHJv
bHNDb250ZXh0TWVudShGbG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9yPE1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQ0ZDMzZTM3Nzc5Nzg0
NjQyYzRjYzdmZWZhZjJkMzIzM2NjOGY4ZmEuLjBlMzQxYjYwY2M4Mjk1MTQ1ZGJmYTViNTNlNDA4
ODliNWQzZDk4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTMxMCw3ICszMTAsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsK
IAogZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OwogZW51bSBjbGFzcyBEcmFnQ29u
dHJvbGxlckFjdGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVwZGF0
ZVJlc3VsdCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3Vs
dCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CkBAIC0xNDAzLDkgKzE0
MDMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxl
bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYp
PiYmKTsKLSAgICB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoV2ViQ29yZTo6
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJik7CisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYp
OworICAgIHZvaWQgdXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXZWJDb3JlOjpUZXh0
UmVjb2duaXRpb25SZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChU
ZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQpPiYmKTsKICNlbmRpZgogCiAjaWYgSEFWRShUUkFO
U0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMzQ3LDkg
KzIzNDcsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk+IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFdlYWtQdHI8
V2ViQ29yZTo6SFRNTEVsZW1lbnQ+LCBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8V2ViQ29yZTo6RWxlbWVudD4mJik+Pj4+IG1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0
aW9uOwotICAgIFdlYWtIYXNoU2V0PFdlYkNvcmU6OkhUTUxFbGVtZW50PiBtX2VsZW1lbnRzV2l0
aEV4dHJhY3RlZEltYWdlczsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgVmVjdG9y
PHN0ZDo6cGFpcjxXZWFrUHRyPFdlYkNvcmU6OkhUTUxFbGVtZW50PiwgVmVjdG9yPENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPj4+PiBtX2VsZW1lbnRz
UGVuZGluZ1RleHRSZWNvZ25pdGlvbjsKKyAgICBXZWFrSGFzaFNldDxXZWJDb3JlOjpIVE1MRWxl
bWVudD4gbV9lbGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRzOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoV0VCWFIpICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggODNmZTU1YjBj
NDA0YTA5ZWI2ZjQ3NzgzOGY4NmYxODA1NmNlYjhlYi4uNTYxOGEzNDNkZTRhNTc0NmI1OWNiYjBm
MTcxNGFmOGM3NTJmYzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02NDIsNyArNjQyLDcgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKICAgICBJbnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQog
I2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBVcGRhdGVXaXRoSW1h
Z2VFeHRyYWN0aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQg
cmVzdWx0LCBzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudCwgV2ViQ29yZTo6
RmxvYXRQb2ludCBsb2NhdGlvbikgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkltYWdlRXh0cmFj
dGlvblVwZGF0ZVJlc3VsdCByZXN1bHQpIEFzeW5jCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorICAgIFVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OlRl
eHRSZWNvZ25pdGlvblJlc3VsdCByZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4
dCBlbGVtZW50LCBXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoZW51bTp1aW50OF90
IFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IHJlc3VsdCkgQXN5bmMKICNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0K
aW5kZXggMzg4OWQyNjcwOWM2N2RhNDA0Mjc1MjVhY2NmZjQ3MjJjMjBiMzc0Ni4uZTNjNzFhZmMz
MzFmYWU3NWMxY2JhZTM3MGE5NDRlMzFiNjhiOGQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MTYsNyArNjE2LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8TlNJbnRlZ2VyPiB0b1RhZyhXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
biBhY3Rpb24pCiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5j
ZWRGdWxsc2NyZWVuOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAg
ICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdUcmFuc2xhdGU7Ci0gICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcElt
YWdlOgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1CYXNlQ3VzdG9tVGFnIC4uLiBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY3MDhhMzkz
ZDEwNWE1NThjYjBlNjQ0NmRiMGQyNTFlZTY3MzQwNTkuLjcwZmE1ZTJmMDA3YzNjZWFlNzA5MDgz
NmE3ZTllZmIxZTY3MGRiYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9y
dCBmb3IgTGl2ZSBUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjY3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgSU1BR0Vf
RVhUUkFDVElPTiB3aXRoIFZJU1VBTF9JTlRFTExJR0VOQ0UuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3QubW06CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudFZpZXdFZGl0
aW5nQWN0aW9ucy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlh
dGVBY3Rpb25UZXN0cy5tbToKKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEZpbmQtaW4tcGFnZSBzaG91bGQgbWF0
Y2ggdGV4dCBpbnNpZGUgaW1hZ2Ugb3ZlcmxheXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5tbQppbmRleCA2Y2Jm
Yzg1N2ZjZWY0MzQ1ZjJlNWU3ZDg3NDZmMjU1Y2RhMmE1ZjE4Li43YjI1MDI2ZTlmYmUyZDEzOGVh
YTM1YmFhZTRlMTUwYWRjYzEwY2M1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0Lm1tCkBAIC03Nyw3ICs3Nyw3
IEBAIFRFU1QoSW5qZWN0ZWRCdW5kbGVIaXRUZXN0LCBUZXh0UGFyYWdyYXBoKQogICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyBoYXNTZWxlY3RhYmxlVGV4dEF0OkNHUG9pbnRNYWtlKDMwMCwgMzAw
KV0pOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQogCiBURVNUKEluamVjdGVkQnVuZGxlSGl0VGVzdCwgSW1hZ2VPdmVybGF5KQog
ewpAQCAtODksNiArODksNiBAQCBURVNUKEluamVjdGVkQnVuZGxlSGl0VGVzdCwgSW1hZ2VPdmVy
bGF5KQogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBoYXNTZWxlY3RhYmxlVGV4dEF0OkNHUG9p
bnRNYWtlKDQwMCwgMzAwKV0pOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0KaW5kZXggZTkzOWNkZDY5ZTk4YzM2MmE4ZGE4
N2Y1YjUzYjBmNTg0NjRhNTJiNi4uODFhNWVkYzA0ZGQ0ZjdmZGY1MWFhOTNkOTgxMDFiNjcwN2M2
NDUxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
cmFnQW5kRHJvcFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbQpAQCAtMzg1LDcgKzM4NSw3IEBAIFRFU1QoRHJhZ0Fu
ZERyb3BUZXN0cywgQ29sb3JJbnB1dEV2ZW50cykKIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIERyYWdFbGVtZW50V2l0aElt
YWdlT3ZlcmxheSkKIHsKQEAgLTQzMiw2ICs0MzIsNiBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMs
IERyYWdTZWxlY3RlZFRleHRJbkltYWdlT3ZlcmxheSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoZHJh
Z2dlZFRleHQuZ2V0KCksICJmb29iYXIiKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2VuZGlmIC8v
IEVOQUJMRShEUkFHX1NVUFBPUlQpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbQppbmRl
eCAyOGY5OGI5MTdkZjE1NjU0YjBmNzE1NTcxZDhjMjBiZWEyODU1ZTZlLi5mYzViMjRmYzJiY2Ux
MjZlNThlNDAyMThiMmE5ZTUwOTc5Njg4MmNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdlLm1tCkBAIC0yOTYsNyArMjk2LDcgQEAg
VEVTVChXZWJLaXQsIEZpbmRBbmRSZXBsYWNlKQogICAgIEVYUEVDVF9XS19TVFJFUSgiaGkgaGki
LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS50
ZXh0Q29udGVudCJdKTsKIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKIAogVEVTVChXZWJLaXQsIEZpbmRUZXh0SW5JbWFnZU92ZXJs
YXkpCiB7CkBAIC0zMTgsNiArMzE4LDYgQEAgVEVTVChXZWJLaXQsIEZpbmRUZXh0SW5JbWFnZU92
ZXJsYXkpCiAgICAgfQogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElP
U19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCmluZGV4IGJi
NTczZTM5ZGVjZDQyMzc5MWRhNGI3YzU2MzJiYzYwOWFmM2M1NGIuLjM0OTgyMTMyMjhiMjQ4ZjU1
YTkyZmU2NTZkNGExOTdlNWQ1NzhlNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdB
Y3Rpb25zLm1tCkBAIC03Myw3ICs3Myw3IEBAIFRFU1QoV2ViS2l0LCBJbnZva2VTaGFyZVdpdGhv
dXRTZWxlY3Rpb24pCiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVd
OwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKIAogVEVTVChXZWJLaXQsIEFwcEhpZ2hsaWdodHNJbkltYWdlT3ZlcmxheXMpCiB7CkBAIC05
OSw2ICs5OSw2IEBAIFRFU1QoV2ViS2l0LCBBcHBIaWdobGlnaHRzSW5JbWFnZU92ZXJsYXlzKQog
ICAgIEVYUEVDVF9FUShbY29udGVudFZpZXcgdGFyZ2V0Rm9yQWN0aW9uOmNyZWF0ZUhpZ2hsaWdo
dEluTmV3R3JvdXBXaXRoUmFuZ2VTZWxlY3RvciB3aXRoU2VuZGVyOm5pbF0sIGNvbnRlbnRWaWV3
KTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoQVBQ
X0hJR0hMSUdIVFMpCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRpYXRlQWN0aW9uVGVzdHMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5t
bQppbmRleCA5ZDQ2MmEwMTBhODNmZGQ4OWFlMDQyOWY2ODgyOGEzOGE4NzJkOTA2Li42ZDlkZmRi
NmE3MTAzZDZiNmI1Y2EwYTA2ZjFiYWFlYzY5ZTA4YjBkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbQpAQCAtMTI1LDcg
KzEyNSw3IEBAIFRFU1QoSW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJC
b2R5KQogICAgIEVYUEVDVF9FUShbaGl0VGVzdFJlc3VsdCBsb29rdXBUZXh0XS5sZW5ndGgsIDBV
KTsKIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKIAogVEVTVChJbW1lZGlhdGVBY3Rpb25UZXN0cywgSW1tZWRpYXRlQWN0aW9uT3Zl
ckltYWdlT3ZlcmxheSkKIHsKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUKEltbWVkaWF0ZUFjdGlv
blRlc3RzLCBJbW1lZGlhdGVBY3Rpb25PdmVySW1hZ2VPdmVybGF5KQogICAgIEVYUEVDVF9XS19T
VFJFUShbaGl0VGVzdFJlc3VsdCBsb29rdXBUZXh0XSwgImZvb2JhciIpOwogfQogCi0jZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YzdiODM3OTBj
ZjNiZmFjNTc5MTA1YzZjOTgzM2E3OGYxYTZhMzQwLi42MzA2OGU2NDNlOGU4NTU3NTFkM2NiZTQx
MTdhMzE5NWNhZDE2ZTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDYtMDcgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gV2Vi
S2l0IHN1cHBvcnQgZm9yIExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODkzMzY4
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWUgYGZhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb25gIHRvIGBmYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uYC4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFz
aWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5
LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbC4K
KyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1p
bWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXktZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2st
bGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXku
aHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJs
YXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRp
b24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1h
Z2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwuCisgICAgICAgICogZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1m
b250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRo
LXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICogZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1m
b250LXNpemUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0
bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5
LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2Vs
ZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Ut
b3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9z
L2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAg
ICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFn
ZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mv
cmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWlt
YWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13
b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRl
LWxpbmstZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUt
bGluay1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2Vs
ZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJs
YXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBm
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mv
c2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1p
bi1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHkt
aW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92
ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGln
aGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2Fi
bGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVz
LWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2Fi
bGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1t
b3VzZS1kcmFnLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0
aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJh
Zy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRt
bC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1h
Z2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdl
LW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWctMi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTIu
aHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qt
aW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmly
ZS1jbGljay1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZp
cmUtY2xpY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2Vz
LW5vdC1maXJlLWNsaWNrLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1p
c21hdGNoLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0
ZWQtbWlzbWF0Y2guaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1p
bWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92
ZXJsYXktZXhwZWN0ZWQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92
ZXJsYXktZXhwZWN0ZWQuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9z
ZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxl
LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRy
YWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxl
LWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVy
bGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1t
aXNtYXRjaC5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFj
L3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13
b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbC4KKwogMjAyMS0wNi0wNyAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVW5leHBl
Y3RlZCBzY3JvbGxpbmcgd2hlbiBzd2l0Y2hpbmcgZm9jdXMgZnJvbSBhIHRleHQgaW5wdXQgdG8g
YSBzZWxlY3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92
ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzYzOTNhOWQyYmZlYzJmYjBhZmE1OGMwNzI4MWRlYjIzNjFhNzY4OS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxib2R5PgotPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9p
bWc+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFn
ZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTlhMGNlNjE4MDZlOGVhM2EzYjM4NGVlYzVmODY5MDY4MzhjNmM0Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxpbWcgc3Jj
PSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1h
Z2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC41LCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbewotICAgICAgICAgICAgICAgIHRleHQg
OiAiSGVsbG8iLAotICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICB9XSwKLSAgICAgICAgfQotICAgIF0pOwot
ICAgIGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5nZXRFbGVtZW50QnlJZCgiaW1hZ2Utb3Zl
cmxheSIpLnN0eWxlLmNvbG9yID0gImJsYWNrIjsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ4N2JhNGRmMzVhNWE2ZWViMDYxMDg2OTQ5NzJhMTYwZWNm
ZTk3NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFn
ZS1vdmVybGF5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotUEFT
UyBjbGlja0NvdW50IGJlY2FtZSAyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Ut
b3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTBlODZlZjg3Y2Qx
NjczMzJjMGVhNjM2ZDVmMTdhOGI5MzA5NjM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDY5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVz
ZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgot
PHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAg
IGxlZnQ6IDA7Ci19Ci0KLWEgewotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0KLTwvc3R5
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgot
ICAgIDxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9h
PgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGFzeW5jICgpID0+IHsKLSAgICBjbGlja0NvdW50ID0gMDsKLQotICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImEiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChldmVudCkgPT4gewot
ICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBjbGlja0NvdW50Kys7Ci0g
ICAgfSk7Ci0KLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJpbWciKSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwLjI1KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjI1KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAg
ICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUp
LAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MCwgMC4yNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQot
ICAgIF0pOwotCi0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiaW1nIiksIFsKLSAgICAgICAgewotICAgICAgICAgICAgdGV4dCA6ICJoZWxs
byIsCi0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0g
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKLSAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKLSAgICAg
ICAgfQotICAgIF0pOwotCi0gICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxMDAsIDUwKTsK
LSAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yRG91YmxlVGFwRGVsYXkoKTsKLSAgICBhd2FpdCBV
SUhlbHBlci5hY3RpdmF0ZUF0KDMwMCwgMzAwKTsKLQotICAgIHNob3VsZEJlY29tZUVxdWFsKCJj
bGlja0NvdW50IiwgIjIiLCBmaW5pc2hKU1Rlc3QpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24t
aXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNWU2NzMwNWExMDA5Njc3NzJl
Zjk3MmI1Y2YyNmNkOGRhMTBkNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFn
ZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNSArMCwwIEBACi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5jaGls
ZEVsZW1lbnRDb3VudCBpcyAyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVh
dGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2
Y2NkZmI2MzNlOWIyNGU0M2YwNGMzZjk4ZmYzMDJmNTNmZGI5MjguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPGJv
ZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxz
Y3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGltYWdlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsg
KytpKSB7Ci0gICAgICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkhlbGxvIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgfQotICAgICAgICBdKTsKLSAg
ICB9Ci0gICAgc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5jaGlsZEVsZW1l
bnRDb3VudCIsICIyIik7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1z
aXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS1l
eHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YWNh
MWIzMmRiY2M1NzU4ZGJhNmYxODMwOWVlOTNhZTUyZDNmMGZkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4
cGVjdGVkLW1pc21hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIGZvbnQtc2l6
ZTogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJj
ZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXpl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92
ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMTRiMDU2NDk5NjgxNGRmMzg1ZDBiOGVlMjIyYTk5ODlkYjU1MDE3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRo
LXplcm8tZm9udC1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIGZvbnQtc2l6
ZTogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJj
ZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
aW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAg
ICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41
KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
LSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0g
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogIkhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0gICAgaW50ZXJuYWxz
LnNoYWRvd1Jvb3QoaW1hZ2UpLmdldEVsZW1lbnRCeUlkKCJpbWFnZS1vdmVybGF5Iikuc3R5bGUu
Y29sb3IgPSAiYmxhY2siOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lt
YWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNTI0NTYwOTk2NGFiYzk0ZDc4NmU4MDhhNTU4OGFlZTRi
Zjc4NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgt
c2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci0KLTo6
c2VsZWN0aW9uIHsKLSAgICBjb2xvcjogcmVkOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5
PgotPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2Ny
aXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBjb25zdCBpbWFnZSA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1h
Z2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAg
ICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAg
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0g
ICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
LjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBd
KTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFk
b3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOwotfSk7
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lt
YWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5
bGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1OTUyYjVjYjM2ZjIwYWEz
NWViZTBhNGNjZmE1MTdhNzQ2NWExMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9p
bWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgot
aW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7
Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dy
ZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgKCkgPT4gewotICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1n
Iik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAg
ewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAg
ICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRl
eHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2Vs
ZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3Io
Ii5pbWFnZS1vdmVybGF5LXRleHQiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1p
bi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVy
bGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzExZTRjNzMy
NzhjNzVlNTYwN2E5MWQ0MTdkZjA4MmY4ZmQxYzQ5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBBU1Mgc2VsZWN0aW9uUmVj
dHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGggaXMgMQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1p
bWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDU2MmI2MjBiM2Q3NTc2NTRhNDZmYjVjMjY5
MjAwOGEyYWRmMjc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2Nl
LXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw1MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1i
b2R5LCBodG1sIHsKLSAgICBtYXJnaW46IDA7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+
Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiksIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4zKSwKLSAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjEpLAotICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuMiksCi0gICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjQpLAotICAgICAgICAgICAgY2hp
bGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
QUIiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC4xLCAwLjMpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuMiwgMC4yKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjMsIDAuMyksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuNCksCi0gICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiQ0QiLAotICAg
ICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjIp
LAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
MywgMC4xKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjQsIDAuMiksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjMsIDAuMyksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NB
dFBvaW50KDgwLCAxMjApOwotICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0Fw
cGVhcigpOwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKLSAgICBhd2Fp
dCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKLSAgICBzZWxlY3Rpb25SZWN0
c0FmdGVyU2VsZWN0aW5nQWxsID0gYXdhaXQgVUlIZWxwZXIuZ2V0VUlTZWxlY3Rpb25WaWV3UmVj
dHMoKTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5n
dGgiLCAiMSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRlMWE3MmIyMzczYmE2Y2NhZTBlZGZl
YzI1NjM5MzhjMTY5OThmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi1QQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCi1QQVNTIERpc21p
c3NlZCBzZWxlY3Rpb24KLVBBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODUwMmNmNDU1NmY4NjI2NTNmZmVhZjZhNzdiZmEyZTAw
MTc0MDQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQt
aW4taW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci1hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGlt
YWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImZvbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0gICAgYXdhaXQg
VUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDEwMCk7Ci0gICAgc2VsZWN0aW9uUmVjdHMg
PSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKLSAgICBzaG91bGRC
ZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKLQotICAgIGF3YWl0IFVJSGVscGVyLmFj
dGl2YXRlQXQoMjAwLCAzMDApOwotICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25U
b0Rpc2FwcGVhcigpOwotICAgIHRlc3RQYXNzZWQoIkRpc21pc3NlZCBzZWxlY3Rpb24iKTsKLQot
ICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCAxMDApOwotICAgIHNlbGVj
dGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Ci0g
ICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7Ci0KLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29y
ZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzQxYWE0MmY2ZTY5MjQzYWI3NDEyYzA4YzM2Nzk2YzI2MTU2ZTNiNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotUEFTUyBzZWxlY3Rpb25S
ZWN0cy5sZW5ndGggaXMgMQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmstZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mv
c2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MWFhNDJmNmU2OTI0M2FiNzQxMmMwOGMzNjc5
NmMyNjE1NmUzYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdv
cmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLVBBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29y
ZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWlu
c2lkZS1saW5rLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZjQ2YzlkNTk0
Mjg2NWZlNjA4OGM1ZDU3NzllZjQyM2IxNmRmMDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRv
cDogMDsKLSAgICBsZWZ0OiAwOwotfQotCi1hIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08YSBocmVmPSJodHRwOi8vbG9jYWxob3N0
OjU0MzIxIiBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpIj4KLSAgICA8aW1nIHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYT4KLTxzY3JpcHQ+
Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAo
KSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0g
ICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCi0gICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCi0gICAgICAgICAgICBj
aGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6
ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjI1KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBdKTsKLSAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJl
c3NBdFBvaW50KDIwMCwgNTApOwotICAgIHNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIu
d2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3Rz
Lmxlbmd0aCIsICIxIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWlu
LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzE2MjM3Y2M4NWQxMjRlZDYxMTYyY2E3OTM4NDk5YjUzNTRjOWNm
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFn
ZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48
L2ltZz4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
LSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
LSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
LSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAot
ICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAid29ybGQiLAot
ICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgfQotICAgIF0pOwotCi0gICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgy
MDAsIDMwMCk7Ci0gICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2Vs
ZWN0aW9uVG9BcHBlYXIoKTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwg
IjEiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdl
LW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzJkNjRjMWZlMDU1Njg4MTc0YjU2ZDZj
MDk2MTRmMWI4YWMxMmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVj
dGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDYgKzAsMCBAQAotUEFTUyBpbml0aWFsU2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKLVBB
U1Mgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGggaXMgNAotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0
cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDdiNTM0ZmYwZDNkZmI1OTNmYjBlMDlkNzI1Mjg0
ZTAyZTJkNDJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1y
ZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0
eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQw
MHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zl
cmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC4xLCAwLjI1KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4zNSwgMC4yKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMzUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAib25lIiwKLSAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4yNSks
Ci0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4y
NSwgMC4xKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjM1LCAwLjIpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjM1KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjQ1KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41NSwgMC40KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuNTUpLAotICAgICAgICAgICAgY2hpbGRyZW46
IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAidHdvIiwK
LSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywg
MC40NSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC40NSwgMC4zKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjU1LCAwLjQpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjU1KSwKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBdLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42NSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43NSwgMC42KSwKLSAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUpLAotICAgICAgICAgICAgY2hp
bGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
dGhyZWUiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC41LCAwLjY1KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjY1LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNzUsIDAuNiksCi0gICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUpLAotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjcsIDAuODUpLAotICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjg1LCAwLjcpLAotICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAwLjgpLAotICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuOCwgMC45NSksCi0gICAgICAg
ICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
dGV4dCA6ICJmb3VyIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNywgMC44NSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC44NSwgMC43KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAwLjgpLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44LCAwLjk1KSwKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBh
d2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDkwLCA5MCk7Ci0gICAgaW5pdGlhbFNlbGVj
dGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Ci0g
ICAgc2hvdWxkQmUoImluaXRpYWxTZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOwotCi0gICAg
dGVzdFJ1bm5lci5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Ci0gICAgYXdhaXQgVUlIZWxwZXIu
ZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7Ci0gICAgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVj
dGluZ0FsbCA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1JlY3RzKCk7Ci0gICAg
c2hvdWxkQmUoInNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIiwgIjQiKTsK
LQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRo
LWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVu
dS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwMjM0ZWMxYWE0
NzA5MzAyN2FkNWViYjY2MDA3NmJmNmQ5MTg4NzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1QQVNTIGVkaXRvci50ZXh0Q29u
dGVudCBpcyAiZm9vYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWlt
YWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0YjFmZDgxZTIzYTFlMjNjZGYzMTAyZWUzODc5OGMxMzIzZjM0OGQyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0
LXdpdGgtY29udGV4dC1tZW51Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci0KLWRpdltjb250
ZW50ZWRpdGFibGVdIHsKLSAgICBib3JkZXI6IDFweCBzb2xpZCB0b21hdG87Ci19Ci08L3N0eWxl
PgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0
MDAucG5nIj48L2ltZz4KLTxkaXYgY29udGVudGVkaXRhYmxlPjwvZGl2PgotPHNjcmlwdD4KLWFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXko
aW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgIHRleHQgOiAiZm9vYmFyIiwKLSAgICAgICAgICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDE1MCk7Ci0KLSAgICBmb3IgKGxldCBpdGVtIG9m
IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpKSB7Ci0gICAgICAgIGlmIChpdGVtLnRpdGxlID09
PSAiQ29weSIpCi0gICAgICAgICAgICBpdGVtLmNsaWNrKCk7Ci0gICAgfQotCi0gICAgZWRpdG9y
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2W2NvbnRlbnRlZGl0YWJsZV0iKTsKLSAgICBl
ZGl0b3IuZm9jdXMoKTsKLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKLQotICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgImZvb2JhciIpOwot
ICAgIGVkaXRvci5yZW1vdmUoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFw
cC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBw
LWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzhjMGU3YjM3MWRiYzFhZWY4Mjc4NTM2ZTZkMjBlZWUzZWU3YjI1OS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMt
YXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotUEFTUyBmb3VuZFRpdGxlMSBpcyB0cnVlCi1QQVNTIGZvdW5kVGl0bGUyIGlz
IHRydWUKLVBBU1MgU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheQotUEFTUyBmb3VuZFRpdGxlMSBpcyBm
YWxzZQotUEFTUyBmb3VuZFRpdGxlMiBpcyBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1h
cHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxp
Z2h0LW1lbnUtaXRlbXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJiYWI1
OTg0ZjM4ODI0NTI3OTFkMDhiOTJiZDdhOTY1Yjk0NDQ3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1t
ZW51LWl0ZW1zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBhcHBIaWdobGlnaHRzRW5hYmxlZD10cnVl
IF0gLS0+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWJvZHksIGh0bWwgewotICAgIG1hcmdp
bjogMDsKLX0KLQotcCB7Ci0gICAgZm9udC1zaXplOiAzMnB4OwotICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHA+SGVsbG8gd29ybGQgdGhpcyBp
cyBhIHRlc3QuPC9wPgotPC9ib2R5PgotPHNjcmlwdD4KLXZhciBmb3VuZFRpdGxlMTsKLXZhciBm
b3VuZFRpdGxlMjsKLQotZnVuY3Rpb24gY2hlY2tGb3JBcHBIaWdobGlnaHRDb250ZXh0TWVudUl0
ZW1zKCkgewotICAgIGZvdW5kVGl0bGUxID0gZmFsc2U7Ci0gICAgZm91bmRUaXRsZTIgPSBmYWxz
ZTsKLQotICAgIGxldCBbdGl0bGUxLCB0aXRsZTJdID0gaW50ZXJuYWxzLmFwcEhpZ2hsaWdodENv
bnRleHRNZW51SXRlbVRpdGxlczsKLSAgICBmb3IgKGxldCBpdGVtIG9mIGV2ZW50U2VuZGVyLmNv
bnRleHRDbGljaygpKSB7Ci0gICAgICAgIGlmIChpdGVtLnRpdGxlID09PSB0aXRsZTEpCi0gICAg
ICAgICAgICBmb3VuZFRpdGxlMSA9IHRydWU7Ci0KLSAgICAgICAgaWYgKGl0ZW0udGl0bGUgPT09
IHRpdGxlMikKLSAgICAgICAgICAgIGZvdW5kVGl0bGUyID0gdHJ1ZTsKLSAgICB9Ci19Ci0KLWFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IHRleHQgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJwIik7Ci0gICAgbGV0IHRleHRSZWN0ID0gdGV4dC5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKLQotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAg
Y2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQg
OiAiZm9vYmFyIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxD
aGlsZHJlbih0ZXh0KTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0ZXh0UmVjdC5sZWZ0
ICsgdGV4dFJlY3Qud2lkdGggLyAyLCB0ZXh0UmVjdC50b3AgKyB0ZXh0UmVjdC5oZWlnaHQgLyAy
KTsKLSAgICBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRlbXMoKTsKLSAgICBzaG91
bGRCZVRydWUoImZvdW5kVGl0bGUxIik7Ci0gICAgc2hvdWxkQmVUcnVlKCJmb3VuZFRpdGxlMiIp
OwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRv
d1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoImRpdiNpbWFnZS1vdmVybGF5IikpOwotICAgIHRl
c3RQYXNzZWQoIlNlbGVjdGVkIGltYWdlIG92ZXJsYXkiKQotICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDIwMCwgMjAwKTsKLSAgICBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRl
bXMoKTsKLSAgICBzaG91bGRCZUZhbHNlKCJmb3VuZFRpdGxlMSIpOwotICAgIHNob3VsZEJlRmFs
c2UoImZvdW5kVGl0bGUyIik7Ci0KLSAgICB0ZXh0LnJlbW92ZSgpOwotfSk7Ci08L3NjcmlwdD4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3Zlcmxh
eS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5r
LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQzZTVlZWVkYmYxYjQzNWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRo
LW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0
LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWlu
LWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDlhNGVkYzg5MDRhYTE3Yjg4Nzg1YjI3ODdjNDRhNzM5MTcxNzM2NzYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1v
dXNlLWRyYWcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgotICAgIDxpbWcgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9hPgotPHNjcmlwdD4K
LWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJs
YXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAg
ICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAg
ICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKLSAgICAgICAgdGVz
dEZhaWxlZCgiT2JzZXJ2ZWQgY2xpY2suIik7Ci0gICAgfSk7Ci0KLSAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyg1MCwgMzAwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWVmN2YzNjNkMjk2NDhhZTg4MDE2NjFkYTU5MTA5MDM3
NWM1YWY2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgot
aW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7
Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlt
ZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogImhlbGxvd29ybGQxIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJo
ZWxsb3dvcmxkMiIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDMi
LAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hp
bGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoImRpdiNpbWFn
ZS1vdmVybGF5IikpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTZmZWNlMzQ2MjQyMWU5NGRjZWRhZTgyZmY5NjkxYTI3OGIxMjY5NS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13
aXRoLW1vdXNlLWRyYWctMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlv
bjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9o
ZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5n
Ij48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAg
IGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlt
ZyIpLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQxIiwKLSAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAg
ICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMiIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAg
Y2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQg
OiAiaGVsbG93b3JsZDMiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oNTAsIDUwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDM1MCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3Qt
ZmlyZS1jbGljay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1u
b3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQzZTVlZWVkYmYxYjQzNWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFn
LWRvZXMtbm90LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9t
YWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xp
Y2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3Nl
bGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODczYzk4MTkyMzIzYzMxMTAzMjBj
YmQzZWViZThmMGYzMmJhMjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0
b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4K
LWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJs
YXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAg
ICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAg
ICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKLSAgICAgICAgdGVz
dEZhaWxlZCgiT2JzZXJ2ZWQgY2xpY2suIik7Ci0gICAgfSk7Ci0KLSAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyg1MCwgMzAwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
bWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRj
aC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2Y0Yzc3NDUwMjgzNmMxZDNi
Nzc2MWI0YzcxNjI2MzVkOWE2NmI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAg
dG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1n
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3Zlcmxh
eS13aXRoLW1vdXNlLWRyYWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTRjMzYwNmFkNDljYWI0NjU0Zjg4YWU5ZWYx
NGE4M2EyYTllZmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1p
bWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsK
LSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08
L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVu
LTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
KCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwot
ICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKLSAgICAgICAgICAgIGNo
aWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDog
ImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
NTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oMzUwLCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0pOwot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMv
c2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0
ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZTg5ODhiYjgwOTU2ZGQ2MjQ1MzhkOTY4OGEzZGNmNDJlNDhkMTU5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWJvZHks
IGh0bWwgewotICAgIG1hcmdpbjogMDsKLX0KLQotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhl
aWdodDogNDAwcHg7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYm9keT4KLTwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1p
bWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiNjc3ZDIwMmNmYzFkOGJkZTZiYWVkMTZjMTdm
OTEyOTgxOTEyZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJv
dGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLmJh
Y2sgewotICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKLSAgICBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nKTsKLX0KLQotLmZyb250IHsK
LSAgICBvcGFjaXR5OiAwOwotfQotCi1ib2R5LCBodG1sIHsKLSAgICBtYXJnaW46IDA7Ci19Ci0K
LS5mcm9udCwgLmJhY2sgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0g
ICAgbGVmdDogMDsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLX0KLTwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgY2xhc3M9ImJhY2siPjwvZGl2PgotPGltZyBj
bGFzcz0iZnJvbnQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2lt
Zz4KLTxkaXYgY2xhc3M9ImJhciI+PC9kaXY+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJp
bWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAg
ICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxLjUp
LAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLjUsIDAuNSks
Ci0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDIsIDEpLAot
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDIpLAotICAg
ICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC41LCAxLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEuNSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgyLCAxKSwKLSAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDIpLAotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0
aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5
U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRy
YWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2Fi
bGUtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzN2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0YzcxNjI2MzVkOWE2NmI2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJs
ZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1p
bWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsK
LX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
Z3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qt
d29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3ZTNhMDExZDM4YzQxNWYxYzI3YzU3ZmIzNzQ0MTFkNTc4MWI2ZDRlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1p
bWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxpbWcgZHJhZ2dhYmxlPSJ0cnVlIiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVl
bi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
ICgpID0+IHsKLSAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIp
OwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAg
IGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0
IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0
QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5p
bWFnZS1vdmVybGF5LXRleHQiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdl
LW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmJjZGFiOTBjZGEwNmNiNGI1YWEwNDQxYmIyYjkzNDhjNjhmNDYwNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFn
ZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1ib2R5LCBo
dG1sIHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLWRpdiB7Ci0gICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWln
aHQ6IDQwMHB4OwotICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKLSAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nKTsKLX0KLTwvc3R5
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXY+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Ut
b3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9t
YWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjEwZDJkOTdjZjBiNzg5YWE0NzZhZTQ0MzJmMDM4NDlh
YTMxN2NkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWlu
LXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS5iYWNrIHsK
LSAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJs
KC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Ci19Ci0KLS5mcm9udCB7Ci0gICAg
b3BhY2l0eTogMDsKLX0KLQotYm9keSwgaHRtbCB7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0uZnJv
bnQsIC5iYWNrIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxl
ZnQ6IDA7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci19Ci08L3N0eWxl
PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGNsYXNzPSJiYWNrIj48L2Rpdj4KLTxpbWcgY2xhc3M9
ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08
c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2Ug
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbElt
YWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAot
ICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBd
KTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFk
b3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOwotfSk7
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jh
c2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1t
aXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2MzkzYTlkMmJmZWMyZmIwYWZhNThjMDcyODFkZWIy
MzYxYTc2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApA
QCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbWcgc3Jj
PSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTlhMGNlNjE4MDZlOGVhM2EzYjM4NGVlYzVmODY5MDY4MzhjNmM0
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAw
eDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9
PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAg
aW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAg
ICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgIGNo
aWxkcmVuOiBbeworICAgICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAorICAgICAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAg
ICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAg
ICAgICAgICB9XSwKKyAgICAgICAgfQorICAgIF0pOworICAgIGludGVybmFscy5zaGFkb3dSb290
KGltYWdlKS5nZXRFbGVtZW50QnlJZCgiaW1hZ2Utb3ZlcmxheSIpLnN0eWxlLmNvbG9yID0gImJs
YWNrIjsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFn
ZS1vdmVybGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDg3YmE0ZGYzNWE1YTZlZWIwNjEw
ODY5NDk3MmExNjBlY2ZlOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIGNsaWNrQ291bnQgYmVjYW1lIDIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0
aC1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEw
ZTg2ZWY4N2NkMTY3MzMyYzBlYTYzNmQ1ZjE3YThiOTMwOTYzNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2stbGluay13aXRo
LWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxo
dG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xIj4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorCithIHsKKyAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8YSBocmVmPSJo
dHRwOi8vbG9jYWxob3N0OjU0MzIxIj4KKyAgICA8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVu
LTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYT4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgY2xpY2tDb3Vu
dCA9IDA7CisKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJhIikuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCAoZXZlbnQpID0+IHsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgY2xpY2tDb3VudCsrOworICAgIH0pOworCisgICAgaW50ZXJuYWxzLmluc3RhbGxJ
bWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiksIFsKKyAgICAgICAgewor
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCisgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCisgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4
dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGludGVybmFscy5pbnN0YWxs
SW1hZ2VPdmVybGF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBbCisgICAgICAgIHsK
KyAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC4yNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC4yNSksCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGF3YWl0IFVJSGVs
cGVyLmFjdGl2YXRlQXQoMTAwLCA1MCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckRvdWJs
ZVRhcERlbGF5KCk7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgzMDAsIDMwMCk7CisK
KyAgICBzaG91bGRCZWNvbWVFcXVhbCgiY2xpY2tDb3VudCIsICIyIiwgZmluaXNoSlNUZXN0KTsK
K30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0
aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjNWU2NzMwNWExMDA5
Njc3NzJlZjk3MmI1Y2YyNmNkOGRhMTBkNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMt
aWRlbXBvdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIGludGVybmFscy5z
aGFkb3dSb290KGltYWdlKS5jaGlsZEVsZW1lbnRDb3VudCBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlz
LWlkZW1wb3RlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjZjY2RmYjYzM2U5YjI0ZTQzZjA0YzNmOThmZjMwMmY1M2ZkYjkyOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3Zlcmxh
eS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQw
MC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7
CisgICAgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92
ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgICAgIGNo
aWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRleHQgOiAiSGVsbG8iLAorICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAg
ICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9
CisgICAgICAgIF0pOworICAgIH0KKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
aW1hZ2UpLmNoaWxkRWxlbWVudENvdW50IiwgIjIiKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdl
LXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRo
LXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFjYTFi
MzJkYmNjNTc1OGRiYTZmMTgzMDllZTkzYWU1MmQzZjBmZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1pbi1p
bWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsK
KyAgICBmb250LXNpemU6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNy
Yz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16
ZXJvLWZvbnQtc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTRiMDU2NDk5NjgxNGRmMzg1ZDBiOGVlMjIyYTk5ODlkYjU1MDE3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFn
ZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbApAQCAtMCwwICsxLDM2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAg
IGZvbnQtc2l6ZTogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIu
Li9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2Us
IFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogIkhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAg
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisgICAg
aW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmdldEVsZW1lbnRCeUlkKCJpbWFnZS1vdmVybGF5
Iikuc3R5bGUuY29sb3IgPSAiYmxhY2siOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24t
c3R5bGVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWE1MjQ1NjA5OTY0YWJjOTRkNzg2ZTgwOGE1NTg4YWVlNGJmNzg1YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30K
KworOjpzZWxlY3Rpb24geworICAgIGNvbG9yOiByZWQ7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4K
KzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGNvbnN0IGlt
YWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3Rh
bGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAg
ICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAsIDAuNSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfQor
ICAgIF0pOworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxz
LnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlv
bi1zdHlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTk1MmI1Y2IzNmYyMGFhMzVlYmUwYTRjY2ZhNTE3
YTc0NjVhMTIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sCkBA
IC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
K2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAw
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsICgpID0+IHsKKyAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlt
ZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAg
IHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNl
bGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9y
KCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMt
aW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzExZTRjNzMyNzhjNzVlNTYwN2E5MWQ0MTdk
ZjA4MmY4ZmQxYzQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc2VsZWN0aW9uUmVjdHNB
ZnRlclNlbGVjdGluZ0FsbC5sZW5ndGggaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFn
ZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY0NTYyYjYyMGIzZDc1NzY1NGE0NmZiNWMyNjkyMDA4YTJhZGYyNzgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9j
b2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEs
NTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHksIGh0
bWwgeworICAgIG1hcmdpbjogMDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3Jp
cHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFz
eW5jICgpID0+IHsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJpbWciKSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjMpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAuMSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC4yKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuNCksCisgICAgICAgICAgICBjaGlsZHJlbjog
WworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJBQiIsCisg
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjEsIDAu
MyksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC4yLCAwLjIpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuMywgMC4zKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC40KSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJDRCIsCisgICAgICAgICAg
ICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMiksCisgICAg
ICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjEp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNCwgMC4yKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuMywgMC4zKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0KKyAgICBdKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQo
ODAsIDEyMCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7
CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOworICAgIGF3YWl0IFVJSGVs
cGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgIHNlbGVjdGlvblJlY3RzQWZ0ZXJT
ZWxlY3RpbmdBbGwgPSBhd2FpdCBVSUhlbHBlci5nZXRVSVNlbGVjdGlvblZpZXdSZWN0cygpOwor
ICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsLmxlbmd0aCIsICIx
Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkZTFhNzJiMjM3M2JhNmNjYWUwZWRmZWMyNTYzOTM4YzE2OTk4ZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9y
ZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBA
QAorUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQorUEFTUyBEaXNtaXNzZWQgc2VsZWN0
aW9uCitQQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1v
dmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lv
cy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODUwMmNm
NDU1NmY4NjI2NTNmZmVhZjZhNzdiZmEyZTAwMTc0MDQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1p
bi1pbWFnZS1vdmVybGF5Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8
c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
YXN5bmMgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlt
ZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAg
IHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogImZvbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisgICAgYXdhaXQgVUlIZWxwZXIubG9uZ1By
ZXNzQXRQb2ludCgyMDAsIDEwMCk7CisgICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBl
ci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKKyAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVj
dHMubGVuZ3RoIiwgIjEiKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMjAwLCAz
MDApOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0Rpc2FwcGVhcigpOwor
ICAgIHRlc3RQYXNzZWQoIkRpc21pc3NlZCBzZWxlY3Rpb24iKTsKKworICAgIGF3YWl0IFVJSGVs
cGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCAxMDApOworICAgIHNlbGVjdGlvblJlY3RzID0gYXdh
aXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgc2hvdWxkQmUoInNl
bGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mv
c2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVy
bGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFhYTQyZjZlNjkyNDNhYjc0MTJjMDhjMzY3
OTZjMjYxNTZlM2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0
LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFn
ZS1vdmVybGF5LWluc2lkZS1saW5rLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFhYTQyZjZl
NjkyNDNhYjc0MTJjMDhjMzY3OTZjMjYxNTZlM2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1h
Z2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNT
IHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNp
ZGUtbGluay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9p
b3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY4ZjQ2YzlkNTk0Mjg2NWZlNjA4OGM1ZDU3NzllZjQyM2IxNmRmMDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxl
Y3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorCith
IHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjU0MzIxIiBvbmNsaWNrPSJldmVudC5wcmV2
ZW50RGVmYXVsdCgpIj4KKyAgICA8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0
MDAucG5nIj48L2ltZz4KKzwvYT4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Fk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92
ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMC4yNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMC4yNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKKyAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
MjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBd
KTsKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwgNTApOworICAgIHNl
bGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7
CisgICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWlt
YWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTYyMzdjYzg1ZDEyNGVkNjExNjJjYTc5Mzg0
OTliNTM1NGM5Y2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCkBA
IC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVm
dDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBsZXQg
aW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5z
dGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAg
ICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAg
ICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAg
ICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MCwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSks
CisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGV4dCA6ICJ3b3JsZCIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisKKyAgICBhd2FpdCBV
SUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwgMzAwKTsKKyAgICBzZWxlY3Rpb25SZWN0cyA9
IGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOworICAgIHNob3VsZEJl
KCJzZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lv
cy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4t
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcyZDY0YzFmZTA1NTY4ODE3
NGI1NmQ2YzA5NjE0ZjFiOGFjMTJiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgaW5pdGlhbFNlbGVjdGlv
blJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIHNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwu
bGVuZ3RoIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWlt
YWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDdiNTM0ZmYwZDNkZmI1OTNmYjBlMDlkNzI1
Mjg0ZTAyZTJkNDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRt
bApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAg
IGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAg
ICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5h
bHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjI1KSwKKyAgICAgICAgICAgIHRv
cFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKKyAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zNSwgMC4yKSwKKyAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMzUpLAorICAgICAgICAg
ICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRl
eHQgOiAib25lIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuMSwgMC4yNSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjM1LCAwLjIpLAorICAgICAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjM1KSwKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjQ1KSwKKyAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwKKyAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41NSwgMC40KSwKKyAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuNTUpLAorICAg
ICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgIHRleHQgOiAidHdvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuMywgMC40NSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjU1LCAwLjQpLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjU1KSwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwKKyAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42NSwgMC41KSwKKyAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43NSwgMC42KSwK
KyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUp
LAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgIHRleHQgOiAidGhyZWUiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwKKyAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjY1LCAwLjUpLAorICAgICAgICAgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNzUsIDAuNiksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAu
NzUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjcsIDAu
ODUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjg1LCAw
LjcpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1
LCAwLjgpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
OCwgMC45NSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb3VyIiwKKyAgICAgICAgICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNywgMC44NSksCisgICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44NSwgMC43KSwKKyAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAwLjgp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC44LCAwLjk1KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9
CisgICAgXSk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDkwLCA5MCk7
CisgICAgaW5pdGlhbFNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVj
dGlvblRvQXBwZWFyKCk7CisgICAgc2hvdWxkQmUoImluaXRpYWxTZWxlY3Rpb25SZWN0cy5sZW5n
dGgiLCAiMSIpOworCisgICAgdGVzdFJ1bm5lci5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Cisg
ICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgc2VsZWN0
aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbCA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9u
Vmlld1JlY3RzKCk7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdB
bGwubGVuZ3RoIiwgIjQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9jb3B5LWltYWdl
LW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4
dC13aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAyMzRlYzFhYTQ3
MDkzMDI3YWQ1ZWJiNjYwMDc2YmY2ZDkxODg3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10
ZXh0LXdpdGgtY29udGV4dC1tZW51LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mg
ZWRpdG9yLnRleHRDb250ZW50IGlzICJmb29iYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1j
b250ZXh0LW1lbnUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGIxZmQ4MWUyM2ExZTIzY2RmMzEwMmVlMzg3OThjMTMyM2YzNDhkMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFj
L2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwKQEAgLTAsMCAr
MSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQor
CitkaXZbY29udGVudGVkaXRhYmxlXSB7CisgICAgYm9yZGVyOiAxcHggc29saWQgdG9tYXRvOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KKzxz
Y3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1h
Z2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImZvb2JhciIsCisgICAgICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAor
ICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBd
KTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAxNTApOworCisgICAgZm9yIChs
ZXQgaXRlbSBvZiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKSkgeworICAgICAgICBpZiAoaXRl
bS50aXRsZSA9PT0gIkNvcHkiKQorICAgICAgICAgICAgaXRlbS5jbGljaygpOworICAgIH0KKwor
ICAgIGVkaXRvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdltjb250ZW50ZWRpdGFibGVd
Iik7CisgICAgZWRpdG9yLmZvY3VzKCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3Rl
Iik7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0Q29udGVudCIsICJm
b29iYXIiKTsKKyAgICBlZGl0b3IucmVtb3ZlKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1k
aXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRp
c2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzhjMGU3YjM3MWRiYzFhZWY4Mjc4NTM2ZTZkMjBlZWUzZWU3YjI1OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92
ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBmb3VuZFRpdGxlMSBpcyB0cnVlCitQQVNTIGZvdW5kVGl0
bGUyIGlzIHRydWUKK1BBU1MgU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheQorUEFTUyBmb3VuZFRpdGxl
MSBpcyBmYWxzZQorUEFTUyBmb3VuZFRpdGxlMiBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNh
Ymxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAt
aGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmJhYjU5ODRmMzg4MjQ1Mjc5
MWQwOGI5MmJkN2E5NjViOTQ0NDcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVz
LWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQ
RSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGFwcEhpZ2hsaWdodHNFbmFibGVkPXRy
dWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgbWFy
Z2luOiAwOworfQorCitwIHsKKyAgICBmb250LXNpemU6IDMycHg7CisgICAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8cD5IZWxsbyB3b3JsZCB0aGlz
IGlzIGEgdGVzdC48L3A+Cis8L2JvZHk+Cis8c2NyaXB0PgordmFyIGZvdW5kVGl0bGUxOwordmFy
IGZvdW5kVGl0bGUyOworCitmdW5jdGlvbiBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51
SXRlbXMoKSB7CisgICAgZm91bmRUaXRsZTEgPSBmYWxzZTsKKyAgICBmb3VuZFRpdGxlMiA9IGZh
bHNlOworCisgICAgbGV0IFt0aXRsZTEsIHRpdGxlMl0gPSBpbnRlcm5hbHMuYXBwSGlnaGxpZ2h0
Q29udGV4dE1lbnVJdGVtVGl0bGVzOworICAgIGZvciAobGV0IGl0ZW0gb2YgZXZlbnRTZW5kZXIu
Y29udGV4dENsaWNrKCkpIHsKKyAgICAgICAgaWYgKGl0ZW0udGl0bGUgPT09IHRpdGxlMSkKKyAg
ICAgICAgICAgIGZvdW5kVGl0bGUxID0gdHJ1ZTsKKworICAgICAgICBpZiAoaXRlbS50aXRsZSA9
PT0gdGl0bGUyKQorICAgICAgICAgICAgZm91bmRUaXRsZTIgPSB0cnVlOworICAgIH0KK30KKwor
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgdGV4dCA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoInAiKTsKKyAgICBsZXQgdGV4dFJlY3QgPSB0ZXh0LmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlt
ZyIpOworCisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAg
ICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAor
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4
dCA6ICJmb29iYXIiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFs
bENoaWxkcmVuKHRleHQpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRleHRSZWN0Lmxl
ZnQgKyB0ZXh0UmVjdC53aWR0aCAvIDIsIHRleHRSZWN0LnRvcCArIHRleHRSZWN0LmhlaWdodCAv
IDIpOworICAgIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtcygpOworICAgIHNo
b3VsZEJlVHJ1ZSgiZm91bmRUaXRsZTEiKTsKKyAgICBzaG91bGRCZVRydWUoImZvdW5kVGl0bGUy
Iik7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hh
ZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiZGl2I2ltYWdlLW92ZXJsYXkiKSk7CisgICAg
dGVzdFBhc3NlZCgiU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheSIpCisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oMjAwLCAyMDApOworICAgIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJ
dGVtcygpOworICAgIHNob3VsZEJlRmFsc2UoImZvdW5kVGl0bGUxIik7CisgICAgc2hvdWxkQmVG
YWxzZSgiZm91bmRUaXRsZTIiKTsKKworICAgIHRleHQucmVtb3ZlKCk7Cit9KTsKKzwvc2NyaXB0
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVy
bGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxp
bmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2U1ZWVlZGJmMWI0
MzVmOTZjM2EyMGJmODE0MDFhZWU0MzMxOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXkt
aW4tbGluay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1p
bWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1s
aW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNGVkYzg5MDRhYTE3Yjg4Nzg1
YjI3ODdjNDRhNzM5MTcxNzM2NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5r
LXdpdGgtbW91c2UtZHJhZy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgorICAgIDxpbWcgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9hPgorPHNjcmlwdD4KK2FkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1h
Z2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDEpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBpbWFn
ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiT2JzZXJ2ZWQgY2xpY2suIik7CisgICAgfSk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyg1MCwgMzAwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWlt
YWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZWY3ZjM2M2QyOTY0OGFlODgwMTY2MWRhNTkxMDkwMzc1YzVhZjZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWlt
YWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDYx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAw
eDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9
PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAg
aW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAg
ICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRy
ZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVs
bG93b3JsZDEiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQy
IiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
NSwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMyIsCisgICAgICAg
ICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisg
ICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRl
cm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiZGl2I2ltYWdlLW92ZXJsYXki
KSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZmVjZTM0NjI0MjFl
OTRkY2VkYWU4MmZmOTY5MWEyNzhiMTI2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13
aXRoLW1vdXNlLWRyYWctMi5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2Ny
aXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBpbnRlcm5hbHMuaW5z
dGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWworICAgICAg
ICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAg
ICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
dGV4dCA6ICJoZWxsb3dvcmxkMSIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
aGVsbG93b3JsZDIiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQz
IiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
NSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUw
LCA1MCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oMzUwLCAzNTApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2stZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMv
c2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2st
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzZTVlZWVkYmYxYjQzNWY5NmMzYTIwYmY4MTQwMWFl
ZTQzMzE5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9l
cy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92
ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5
LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE4
NzNjOTgxOTIzMjNjMzExMDMyMGNiZDNlZWJlOGYwZjMyYmEyMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwKQEAgLTAs
MCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2lt
ZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7
CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4
dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGltYWdlLmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgZXZlbnQgPT4geworICAgICAgICB0ZXN0RmFpbGVkKCJPYnNlcnZlZCBjbGlj
ay4iKTsKKyAgICB9KTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAzMDApOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDM1MCwgMzAwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9KTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJs
YXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdm
NGM3NzQ1MDI4MzZjMWQzYjc3NjFiNGM3MTYyNjM1ZDlhNjZiNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAg
KzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVl
bi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTRjMzYwNmFkNDljYWI0
NjU0Zjg4YWU5ZWYxNGE4M2EyYTllZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0
aC1tb3VzZS1kcmFnLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
dG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1n
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+
CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVy
bGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAg
ICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDMwMCk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzMDApOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1h
Z2Utb3ZlcmxheS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlODk4OGJiODA5NTZkZDYyNDUzOGQ5Njg4YTNkY2Y0
MmU0OGQxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCitpbWcg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAg
ICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwv
aW1nPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50
LWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjY3N2QyMDJjZmMxZDhiZGU2YmFlZDE2
YzE3ZjkxMjk4MTkxMmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Ut
b3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KKy5iYWNrIHsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47Cisg
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBu
Zyk7Cit9CisKKy5mcm9udCB7CisgICAgb3BhY2l0eTogMDsKK30KKworYm9keSwgaHRtbCB7Cisg
ICAgbWFyZ2luOiAwOworfQorCisuZnJvbnQsIC5iYWNrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJi
YWNrIj48L2Rpdj4KKzxpbWcgY2xhc3M9ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVl
bi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8ZGl2IGNsYXNzPSJiYXIiPjwvZGl2PgorPHNjcmlwdD4K
K2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJs
YXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMS41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMS41LCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgyLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAyKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAg
ICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMS41KSwKKyAgICAgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLjUsIDAuNSksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMiwgMSks
CisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAyKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBd
KTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFk
b3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOworfSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21h
Yy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRj
aC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zN2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0YzcxNjI2MzVkOWE2NmI2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlz
bWF0Y2guaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7
CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1p
bWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdlM2EwMTFkMzhjNDE1ZjFjMjdjNTdmYjM3NDQxMWQ1NzgxYjZkNGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBkcmFnZ2FibGU9InRydWUiIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgKCkgPT4geworICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
KyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
KyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
KyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAor
ICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rp
b24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlT
ZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJh
bnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNw
YXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZi
Y2RhYjkwY2RhMDZjYjRiNWFhMDQ0MWJiMmI5MzQ4YzY4ZjQ2MDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29y
ZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKQEAg
LTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
Ym9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCitkaXYgeworICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICB3aWR0aDogNDAwcHg7Cisg
ICAgaGVpZ2h0OiA0MDBweDsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47CisgICAgYmFj
a2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Cit9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50
LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMjEwZDJkOTdjZjBiNzg5YWE0NzZhZTQ0MzJmMDM4NDlhYTMxN2NkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAg
KzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5iYWNr
IHsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47CisgICAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Cit9CisKKy5mcm9udCB7Cisg
ICAgb3BhY2l0eTogMDsKK30KKworYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCisu
ZnJvbnQsIC5iYWNrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAg
IGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJiYWNrIj48L2Rpdj4KKzxpbWcgY2xh
c3M9ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+
Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1h
Z2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFs
bEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAg
ICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAg
ICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAg
ICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5z
aGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOwor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>
<flag name="commit-queue"
          id="452340"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430762</attachid>
            <date>2021-06-07 11:13:44 -0700</date>
            <delta_ts>2021-06-07 11:53:45 -0700</delta_ts>
            <desc>Fix watchOS/tvOS builds</desc>
            <filename>bug-226706-20210607111343.patch</filename>
            <type>text/plain</type>
            <size>352792</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhNDVlZjMwMWIzY2Y3NzBlNjljYWI1
OTA5MGQ0YmE5ZDM5YWJiNWUuLjY1NDE1N2IyZDFhMDhlY2E4MjUwMGM3NTk2YjU4MmJiZjFlN2Ew
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9y
IExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODkzMzY4ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmg6CisKKyAgICAgICAgTW92ZSB0aGUgZmVhdHVyZSBmbGFnIG91dCBvZiBXZWJLaXRB
ZGRpdGlvbnMgYW5kIGludG8gT3BlblNvdXJjZSBhcyBJTUFHRV9BTkFMWVNJUy4KKwogMjAyMS0w
Ni0wNyAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1dURl1bR1N0cmVhbWVyXSBGaXggY2xhbmcgVFNBIHdhcm5pbmdzIGluIFdURjo6RGF0YU11dGV4
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzFjNzExZTA2NzA2MjczOWU3MmQ5YTBkMmZlZDVhYjkxZTQyMmNkNy4u
ODhmY2RiZGE5MGRhYzViOTRmMzY3N2JkNjU3MWRhZTFlODg4NWFlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEwMSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZvciB0
aGUgZmFtaWx5IG9mICJsaXZlIHRleHQiIGFuZCB2aXN1YWwgaW50ZWxsaWdlbmNlIGZlYXR1cmVz
IGZyb20gV2ViS2l0QWRkaXRpb25zLgorICAgICAgICBUaGlzIGVuY29tcGFzc2VzIHRoZSBmb2xs
b3dpbmcgZmVhdHVyZXMgb24gbWFjT1MgMTIgYW5kIGlPUyAxNToKKworICAgICAgICAtIFRleHQg
c2VsZWN0aW9uIGFuZCBpbnRlcmFjdGlvbiBpbiBpbWFnZXMuCisgICAgICAgIC0gRGF0YSBkZXRl
Y3RvcnMgaW4gaW1hZ2VzLgorICAgICAgICAtIFZpc3VhbCBzZWFyY2ggKExvb2sgVXApIHZpYSBj
b250ZXh0IG1lbnUgaW4gaW1hZ2VzLgorCisgICAgICAgIFRvIGRvIHRoaXMsIHdlIHJlbmFtZSB0
aGUgSU1BR0VfRVhUUkFDVElPTiBmZWF0dXJlIGZsYWcgKGFuZCBhbnkgb3RoZXIgc2ltaWxhciBz
eW1ib2wgbmFtZXMgdGhhdCByZWZlcmVuY2UKKyAgICAgICAgImltYWdlIGV4dHJhY3Rpb24iIGlu
IHNvbWUgY2FwYWNpdHkpIHRvIHRoZWlyIHJlYWwgbmFtZXMgaW4gbWFjT1MgYW5kIGlPUzoKKwor
ICAgICAgICAtICJUZXh0IHJlY29nbml0aW9uIiwgaW4gY29kZSB0aGF0IHN1cHBvcnRzIGF1dG9t
YXRpYyBPQ1IgYW5kIGRhdGEgZGV0ZWN0b3JzIGluIGltYWdlcy4KKyAgICAgICAgLSAiTG9vayBV
cCIsIGluIGNvZGUgdGhhdCByZWZlcmVuY2VzIHRoZSBjb250ZXh0IG1lbnUgYWN0aW9uIHRvIGlu
dm9rZSB2aXN1YWwgc2VhcmNoLgorICAgICAgICAtICJWaXN1YWwgU2VhcmNoIiwgaW4gY29kZSB0
aGF0IG1hbmFnZXMgUXVpY2tMb29rIGludGVncmF0aW9uIGZvciBpbnZva2luZyB2aXN1YWwgc2Vh
cmNoLgorICAgICAgICAtICJJbWFnZSBhbmFseXNpcyIsIGluIGNvZGUgdGhhdCBkaXJlY3RseSBp
bnRlZ3JhdGVzIHdpdGggVktJbWFnZUFuYWx5emVyIGFuZCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWlt
YWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRl
bXBvdGVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1z
ZWxlY3Rpb24tc3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2Vs
ZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lk
ZS1saW5rLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92
ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10
ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1p
bi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29y
ZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVy
bGF5KToKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVw
ZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJs
ZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1v
dXNlRXZlbnRUYXJnZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bV90
ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAg
KiBwYWdlL1F1aXJrcy5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAq
IHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ltYWdlRXh0cmFjdGlvblJlc3Vs
dC5oLgorCisgICAgICAgIFJlbmFtZSB0aGUgZm9sbG93aW5nOgorICAgICAgICAtIEltYWdlRXh0
cmFjdGlvblJlc3VsdCA9PiBUZXh0UmVjb2duaXRpb25SZXN1bHQKKyAgICAgICAgLSBJbWFnZUV4
dHJhY3Rpb25UZXh0RGF0YSA9PiBUZXh0UmVjb2duaXRpb25Xb3JkRGF0YQorICAgICAgICAtIElt
YWdlRXh0cmFjdGlvbkxpbmVEYXRhID0+IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhCisgICAgICAg
IC0gSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyA9PiBUZXh0UmVjb2duaXRpb25EYXRh
RGV0ZWN0b3IKKworICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uV29yZERhdGE6OlRl
eHRSZWNvZ25pdGlvbldvcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
bldvcmREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0
aW9uV29yZERhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25M
aW5lRGF0YTo6VGV4dFJlY29nbml0aW9uTGluZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uTGluZURhdGE6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25MaW5lRGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmRlY29kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VEYXRhRm9yTGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omluc3RhbGxJbWFnZU92ZXJsYXkpOgorCiAyMDIx
LTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBvdmVy
bGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBmZjZhMWU4OTNhOThiMGM4YTIyYmY4MDdiM2RiNzllZDMyZDRkNzg5
Li43NTUzMTAyNzJiMWNkMzg1MjBkZGQ2YmUxMzUzMTc1MzVmZTAxNzcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5MSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRp
bGl0aWVzLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaC4KKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW06IEFkZGVkLgorCisgICAgICAgIFJlbmFtZSBJbWFn
ZUV4dHJhY3Rpb25VdGlsaXRpZXMgdG8gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLgorCisgICAg
ICAgIChXZWJLaXQ6OmZsb2F0UXVhZCk6CisgICAgICAgIChXZWJLaXQ6OmZsb2F0UXVhZHMpOgor
ICAgICAgICAoV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKFdl
YktpdDo6aXNMaXZlVGV4dEVuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAgICAgICAoV2ViS2l0Ojp0
b0ltcGwpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmRlY29kZVBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz46OmVuY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0
YURldGVjdG9ySW5mbz46OmRlY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
U2hhcmVkL1RleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmguCisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3Rvcklu
Zm8+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdl
RXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbToK
KyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOmN1c3Rv
bVRpdGxlOmFzc2lzdGFudDpdKToKKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBpbWFnZUZv
ckVsZW1lbnRBY3Rpb25UeXBlOl0pOgorCisgICAgICAgIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGtl
ZXAgdGhlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgU1BJIHN5bWJvbCwgdG8gYXZv
aWQgYnJlYWtpbmcgTW9iaWxlTWFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVD
b250ZXh0TWVudUxvb2tVcEltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpo
YW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUg
YGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2VgIHRvIGBoYW5kbGVDb250ZXh0TWVudUxvb2tV
cEltYWdlYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmVuc3VyZUltYWdlQW5hbHl6ZXIpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVJbWFnZUFuYWx5c2lzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNv
bXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKToKKworICAgICAgICBSZW5hbWUgYGNvbXB1dGVD
YW5SZXZlYWxJbWFnZWAgdG8gYGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzYC4KKworICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXB0c1ByZXZpZXdQYW5lbENvbnRyb2wpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnQ6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUNhblJldmVhbEltYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0KTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHVwZGF0ZVdpdGhJ
bWFnZUV4dHJhY3Rpb25SZXN1bHRgIHRvIGB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
YC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFRleHRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHJlcXVlc3RJbWFnZUV4
dHJhY3Rpb25gIHRvIGByZXF1ZXN0VGV4dFJlY29nbml0aW9uYC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFz
c2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDpdKToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6XSk6CisgICAgICAg
ICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOmVs
ZW1lbnQ6bmVlZHNJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlc10pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlY29nbml6ZVNpbXVsdGFu
ZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRC
ZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBoYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5BdFBvaW50Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNhblBlcmZvcm1BY3Rpb25Gb3JXZWJWaWV3OndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGFyZ2V0Rm9yQWN0aW9uOndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2hvdWxkRGVmZXJH
ZXN0dXJlRHVlVG9JbWFnZUFuYWx5c2lzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZHJhZ0ludGVyYWN0aW9uOnByZXBhcmVG
b3JTZXNzaW9uOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VuZElt
YWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlc2VudFZpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyRm9ySW1hZ2U6aW1hZ2VVUkw6dGl0bGU6aW1hZ2VCb3VuZHM6YXBwZWFyYW5jZUFjdGlv
bnM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXI6ZnJhbWVG
b3JQcmV2aWV3SXRlbTppblNvdXJjZVZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJldmlld0NvbnRyb2xsZXI6dHJhbnNpdGlvbkltYWdlRm9yUHJldmlld0l0ZW06Y29udGVudFJl
Y3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXJEaWREaXNt
aXNzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG51bWJlck9mUHJldmlld0l0ZW1zSW5Q
cmV2aWV3Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2aWV3Q29u
dHJvbGxlcjpwcmV2aWV3SXRlbUF0SW5kZXg6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJvdmlkZURhdGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNo
ZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd1RleHRGb3JJ
bWFnZTppbWFnZVVSTDp0aXRsZTppbWFnZUJvdW5kczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25G
b3JFbGVtZW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0
YW50Omxvb2tVcEltYWdlOmltYWdlVVJMOnRpdGxlOmltYWdlQm91bmRzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGltYWdlQW5hbHl6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBoYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2V0VXBJbWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Rl
YXJEb3duSW1hZ2VBbmFseXNpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jYW5jZWxJ
bWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3JlYXRlSW1hZ2VBbmFs
eXNpc1JlcXVlc3Q6aW1hZ2U6aW1hZ2VVUkw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
Y3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6aW1hZ2U6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcmVxdWVzdFRleHRSZWNvZ25pdGlvbjppbWFnZURhdGE6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc0dl
c3R1cmVEaWRCZWdpbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFnZUFuYWx5c2lz
R2VzdHVyZURpZEZhaWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNp
c0dlc3R1cmVEaWRUaW1lT3V0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnNlcnRU
ZXh0RnJvbUNhbWVyYUZvcldlYlZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2Fw
dHVyZVRleHRGcm9tQ2FtZXJhRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfY29udGV4dE1lbnVJbnRlcmFjdGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246
Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250aW51ZUNvbnRleHRN
ZW51SW50ZXJhY3Rpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjp3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjphbmltYXRvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFjdGlvbjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZW5kSW1hZ2VFeHRyYWN0aW9u
R2VzdHVyZURlZmVycmFsOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9k
b0FmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0
cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplci5tbS4KKyAgICAgICAgKC1bV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIgaW5pdFdpdGhJbWFnZUFuYWx5c2lzR2VzdHVyZURlbGVnYXRlOl0pOgorICAgICAgICAo
LVtXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciBzZXRTdGF0ZTpdKToKKworICAgICAg
ICBSZW5hbWUgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB0byBXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplciAoYWxvbmcgd2l0aCBhbGwgYWRqYWNlbnQgY2xhc3Nlcyku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb21wdXRlQ2FuUmV2ZWFsSW1h
Z2UpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2
aWV3Q29udHJvbGxlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW06IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJv
bGxlci5tbS4KKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBpbml0
V2l0aFBhZ2U6aW1hZ2VEYXRhOnRpdGxlOmltYWdlVVJMOl0pOgorICAgICAgICAoLVtXS1Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGJlZ2luQ29udHJvbDpdKToKKyAgICAgICAgKC1bV0tW
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBlbmRDb250cm9sOl0pOgorICAgICAgICAoLVtX
S1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGNsb3NlUGFuZWxJZk5lY2Vzc2FyeV0pOgor
ICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGlzQ29udHJvbGxpbmc6
XSk6CisgICAgICAgICgtW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJvdmlkZURh
dGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
IG51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2aWV3UGFuZWw6XSk6CisgICAgICAgICgtW1dLVmlz
dWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJldmlld1BhbmVsOnByZXZpZXdJdGVtQXRJbmRl
eDpdKToKKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBwcmV2aWV3
UGFuZWw6aW5pdGlhbEFjdGl2aXR5Rm9ySXRlbTpdKToKKworICAgICAgICBSZW5hbWUgYFdLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXJgIHRvIGBXS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6bWVudUl0ZW1JZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmJlZ2luUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW5kUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5WaXN1YWxTZWFy
Y2hQcmV2aWV3UGFuZWwpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29n
bml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VF
eHRyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEtMDYtMDcg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBGaW5kLWluLXBhZ2Ugc2hvdWxkIG1hdGNoIHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMGFjMDYzMTU4YzY5YjE2MDE2MGU4MTIwOWNj
ZjAwYzUxNjMyMWNlYi4uYWRkZTI1N2QxNDlmOTg4YzAyMGIyY2UyOGYwNWM0NmJmYjMxNDYzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTA3
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3Ry
ZWFtIFdlYktpdCBzdXBwb3J0IGZvciBMaXZlIFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Nzg5MzM2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOiBSZXBsYWNlIElNQUdFX0VYVFJBQ1RJT04gd2l0
aCBWSVNVQUxfSU5URUxMSUdFTkNFLgorCiAyMDIxLTA2LTA2ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gVGV4dEl0ZXJhdG9yQmVoYXZpb3JG
bGFnIGludG8gYW4gZW51bSBjbGFzcyBhbmQgd3JhcCBpdCBpbiBPcHRpb25TZXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAwN2VkMDMyNGY4YjdmYzIyZTNkNjU0YjI2NTZk
YzM3MDlmNTg3ODM2Li5jM2ZiYjJiZWVhMTM3MjhmZTVlYjFhYzM2ODJiZjZkOWM2YjRlNDk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC02NzgsMyArNjc4LDEwIEBACiAj
aWYgIWRlZmluZWQoRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQog
I2RlZmluZSBFTkFCTEVfREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IgMQogI2Vu
ZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEyMDAwMCkgXAorICAgIHx8ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUND
QVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMCkK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU1BR0VfQU5BTFlTSVMpCisjZGVmaW5lIEVOQUJMRV9JTUFH
RV9BTkFMWVNJUyAxCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIxMmYxODJjMmZiMTI1ODFlN2JmOTdh
YTllMDVhNmM0NTNhMWVjMGIuLjhiYmU3Mjc3YjFiMzdkMzFjMTM2YTFjZDFlZTdkMjY5ZWEyMGM2
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTUzNzYsNyArNTM3Niw3IEBACiAJCUY0ODIyMzEzMUUzODZFMjQwMDY2RkM3OSAv
KiBBYnN0cmFjdFBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0ODIyMzEyMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9h
cmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
NDgyNDM0QjI2MEMzMzA2MDAyMjQ5N0MgLyogSW1hZ2VPdmVybGF5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4MjQzNDgyNjBDMzJG
MTAwMjI0OTdDIC8qIEltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJRjQ4NTcwQTUy
NjQ0Qzc2RDAwQzA1RjcxIC8qIFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg1NzBBNDI2NDRDNzZEMDBD
MDVGNzEgLyogVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNDhCN0Q1MzI1QzM0MUU2MDA5RTc1REQg
LyogSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDhCN0Q1MjI1QzM0MUU2MDA5RTc1REQgLyogSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIFRleHRSZWNvZ25pdGlvblJlc3VsdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4QjdENTIy
NUMzNDFFNjAwOUU3NUREIC8qIFRleHRSZWNvZ25pdGlvblJlc3VsdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0OEQyQTZDMjE1NjIzQjQwMEM2
NzUyQiAvKiBGb250U2hhZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDhEMkE2QTIxNTYyM0I0MDBDNjc1MkIgLyogRm9udFNoYWRvdy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0OEQyQTdFMjE1
NzE4MjYwMEM2NzUyQiAvKiBGb250QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBNzEyMTU2REMwQTAwQzY3NTJCIC8qIEZvbnRB
dHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQUEzMjE1OTc0MEQwMEM2
NzUyQiAvKiBDb2xvckNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTE2ODk3LDcgKzE2ODk3LDcgQEAKIAkJRjQ4Mzg5ODMxRTFEREYyQjAw
NzZCN0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IER1bXBFZGl0aW5nSGlzdG9yeS5qczsgcGF0aCA9IFNjcmlwdHMvRHVt
cEVkaXRpbmdIaXN0b3J5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDgzODk4
NDFFMURERjJCMDA3NkI3RUEgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRWRpdGluZ0hpc3RvcnlVdGlsLmpzOyBwYXRoID0g
U2NyaXB0cy9FZGl0aW5nSGlzdG9yeVV0aWwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0ODU3MEE0MjY0NEM3NkQwMEMwNUY3MSAvKiBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGNDhCN0Q1MjI1QzM0MUU2MDA5RTc1REQgLyogSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRXh0cmFjdGlvblJlc3VsdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDhCN0Q1MjI1QzM0MUU2MDA5RTc1REQg
LyogVGV4dFJlY29nbml0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRSZWNvZ25pdGlv
blJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhEMkE2QTIxNTYyM0I0
MDBDNjc1MkIgLyogRm9udFNoYWRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250U2hhZG93Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OEQyQTcxMjE1NkRDMEEwMEM2NzUyQiAvKiBG
b250QXR0cmlidXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QXR0cmlidXRlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhEMkE3NTIxNTZGRTU3MDBDNjc1MkIgLyogRm9udEF0
dHJpYnV0ZXNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRBdHRyaWJ1dGVzQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODA3MSw3ICsyODA3MSw2IEBA
CiAJCQkJQ0Q2MkZCOTQxQUYwMThFNzAwMTJFRDdEIC8qIEdlbmVyaWNUYXNrUXVldWUuaCAqLywK
IAkJCQlBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi8sCiAJCQkJQkMz
QkMyOUIwRTkxQUIwRjAwODM1NTg4IC8qIEhvc3RXaW5kb3cuaCAqLywKLQkJCQlGNDhCN0Q1MjI1
QzM0MUU2MDA5RTc1REQgLyogSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmggKi8sCiAJCQkJMUFFMDBE
NTcxODJEQUM4RDAwMDg3REQ3IC8qIEtleWVkQ29kaW5nLmggKi8sCiAJCQkJRTE1RkY3RDQxOEM5
NTUzODAwRkU0Qzg3IC8qIEtleXByZXNzQ29tbWFuZC5oICovLAogCQkJCUEzRDQyQTg0MUYzM0JB
MzYwMEE2NEI2MiAvKiBMYXlvdXRVbml0LmNwcCAqLywKQEAgLTI4MjEyLDYgKzI4MjExLDcgQEAK
IAkJCQlFM0MwNDEzMjI1NENBNzExMDAyMUQwRTYgLyogU3lzdGVtU291bmRNYW5hZ2VyLmNwcCAq
LywKIAkJCQlFM0MwNDEyRDI1NENBMjlCMDAyMUQwRTYgLyogU3lzdGVtU291bmRNYW5hZ2VyLmgg
Ki8sCiAJCQkJN0NDNTY0QjYxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVj
dG9yLmggKi8sCisJCQkJRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIFRleHRSZWNvZ25pdGlv
blJlc3VsdC5oICovLAogCQkJCUJDRTY1RDMxMEVBRDEyMTEwMDdFNDUzMyAvKiBUaGVtZS5jcHAg
Ki8sCiAJCQkJQkNFNjU4RkUwRUE5MjQ4QTAwN0U0NTMzIC8qIFRoZW1lLmggKi8sCiAJCQkJMEYy
ODNBOEQyMzU1ODJGODAwNDc5NENBIC8qIFRoZW1lVHlwZXMuY3BwICovLApAQCAtMzI0NzEsNyAr
MzI0NzEsNiBAQAogCQkJCTQxRkFCRDJEMUY0REZFNEEwMDZBNkM5NyAvKiBET01DYWNoZUVuZ2lu
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzODBDMjkxRjM0MzZBQzAwMTU1RkRBIC8qIERPTUNh
Y2hlU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJEQTNGRkUyMTUxQjZGNTAwRkQ2NjA0
IC8qIERPTUNTU0N1c3RvbVByb3BlcnR5RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTQ0N0Y1QjMyNjZDRjYzRDAwMTMzRjAwIC8qIFRleHRCb3hTZWxlY3RhYmxlUmFuZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZDOUEwRjc1MTY0MDk0Q0YwMDNENkI4RCAvKiBET01DU1NOYW1lc3Bh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCNkI1Q0JEMjE2NDBFRkYwMDYwMzgxNyAvKiBET01D
U1NQYWludFdvcmtsZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREEzRkZGMjE1MUI2RjUwMEZE
NjYwNCAvKiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKQEAg
LTMzMTAwLDcgKzMzMDk5LDYgQEAKIAkJCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1h
Z2VEZWNvZGVyQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTFENDc2NThFMjVDQ0E3NzgwMDdBRjMx
MiAvKiBJbWFnZURlY29kZXJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFC
NjEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTU3NkE1NjUxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUY1NUIzREMyMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0
VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIElt
YWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM1Njc2LDYgKzM1Njc0LDcgQEAKIAkJCQlD
RTdCMkRCNTE1ODZBQkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjU0RENFNjE4ODEwNTFEMDAzRUVEQkIgLyogVGV4dEF1dG9TaXpp
bmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTM0MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0
Qm91bmRhcmllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ0N0Y1QjMyNjZDRjYzRDAwMTMzRjAw
IC8qIFRleHRCb3hTZWxlY3RhYmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MTUxQkQ4
MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTc3RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdEQkY4REUxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNTcxNSw2ICszNTcxNCw3IEBACiAJCQkJMUMxOERBNTkxODFB
RjZBNTAwQzRFRjIyIC8qIFRleHRQYWludGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEM5MUEw
RTE4MDIzNDMxMDBBMTdGNkQgLyogVGV4dFBhaW50U3R5bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNFMjEyMTU4MjQwREJFQjkwMDZFRDQ0MyAvKiBUZXh0UGxhY2Vob2xkZXJFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNDhCN0Q1MzI1QzM0MUU2MDA5RTc1REQgLyogVGV4dFJlY29nbml0
aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOThGNjA4MjQ1RTU5MDAxRTlBQkMg
LyogVGV4dFJlc291cmNlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyNEI0NjUwRTJF
RjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OEIxQjdBMEYz
QTJGOUIwMDQ3QTlFMiAvKiBUZXh0U2l6ZUFkanVzdG1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaAppbmRleCA1NDczYmIw
MGM0ODY4YjU0OTExNDNhM2FlODg5NzA5YjhlZThkZmJlLi41OGE2OWNjNzg0MzMxZjBiNDE2ODFl
MDkyMzQ3ZDk1ZjQzMWVjNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Rh
dGFEZXRlY3Rpb24uaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhU
TUxFbGVtZW50OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIFF1YWxpZmllZE5hbWU7Ci1z
dHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbzsKK3N0cnVjdCBUZXh0UmVjb2du
aXRpb25EYXRhRGV0ZWN0b3I7CiAKIHN0cnVjdCBEZXRlY3RlZEl0ZW0gewogICAgIFJldGFpblB0
cjxEREFjdGlvbkNvbnRleHQ+IGFjdGlvbkNvbnRleHQ7CkBAIC02Niw4ICs2Niw4IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCByZXF1aXJlc0V4dGVuZGVkQ29udGV4
dChFbGVtZW50Jik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
IHN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9j
dW1lbnQmLCBjb25zdCBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvJik7CisjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmLCBjb25zdCBUZXh0UmVjb2duaXRpb25EYXRh
RGV0ZWN0b3ImKTsKICNlbmRpZgogCiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgZGF0YURldGVj
dG9yVVJMUHJvdG9jb2woKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURl
dGVjdGlvbi5tbQppbmRleCAyNTA0Mzg5MjQ4ZDYzZjA4NmFmZGJjYTU4NTcxNmFjNDU5NTJjYmZi
Li4yYjE5OTNlNzMyYWE3YjEyYjA1NjRmOGQyZWE1YmExZTU2NThiNTQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCkBAIC00Miw3ICs0Miw2IEBA
CiAjaW1wb3J0ICJIVE1MTmFtZXMuaCIKICNpbXBvcnQgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmgiCiAjaW1wb3J0ICJIaXRUZXN0UmVzdWx0LmgiCi0jaW1wb3J0ICJJbWFnZUV4dHJhY3Rp
b25SZXN1bHQuaCIKICNpbXBvcnQgIk5vZGVMaXN0LmgiCiAjaW1wb3J0ICJOb2RlVHJhdmVyc2Fs
LmgiCiAjaW1wb3J0ICJRdWFsaWZpZWROYW1lLmgiCkBAIC01MSw2ICs1MCw3IEBACiAjaW1wb3J0
ICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbXBvcnQgIlRleHQuaCIKICNpbXBvcnQgIlRleHRJdGVy
YXRvci5oIgorI2ltcG9ydCAiVGV4dFJlY29nbml0aW9uUmVzdWx0LmgiCiAjaW1wb3J0ICJWaXNp
YmxlUG9zaXRpb24uaCIKICNpbXBvcnQgIlZpc2libGVVbml0cy5oIgogI2ltcG9ydCA8cGFsL3Nw
aS9pb3MvRGF0YURldGVjdG9yc1VJU1BJLmg+CkBAIC02ODcsOSArNjg3LDkgQEAgYm9vbCBEYXRh
RGV0ZWN0aW9uOjppc0RhdGFEZXRlY3RvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkK
ICAgICByZXR1cm4gaXM8SFRNTEFuY2hvckVsZW1lbnQ+KGVsZW1lbnQpICYmIGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UoZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHhfYXBw
bGVfZGF0YV9kZXRlY3RvcnNBdHRyKSwgInRydWUiKTsKIH0KIAotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAotUmVmPEhUTUxFbGVtZW50
PiBEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYgaW5mbykKK1Jl
ZjxIVE1MRWxlbWVudD4gRGF0YURldGVjdGlvbjo6Y3JlYXRlRWxlbWVudEZvckltYWdlT3Zlcmxh
eShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYg
aW5mbykKIHsKICAgICBhdXRvIGNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIGlmIChhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihkb2N1bWVudC5mcmFtZSgp
KSkgewpAQCAtNjk5LDcgKzY5OSw3IEBAIFJlZjxIVE1MRWxlbWVudD4gRGF0YURldGVjdGlvbjo6
Y3JlYXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYgZG9jdW1lbnQsCiAgICAgcmV0
dXJuIGNvbnRhaW5lcjsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJp
bmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCBi
NzQ4NWRhOWVjZmM3ZWFhNWUzOTkzNjY1M2NkNWQ4MDk5MjRkOTdkLi42MTg5MmZlMjc0Njc5M2Q4
MWYxZTJiMDc2NDA3YTljMDJjZjkyMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MKQEAgLTE2LDQ1ICsxNiwxMiBAQAogLyogdmlzaWJsZSBuYW1lIG9m
IHRoZSBwbHVnLWluIGhvc3QgcHJvY2Vzcy4gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBwbHVn
LWluIG5hbWUgYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUu
ICovCiAiJUAgKCVAIEludGVybmV0IHBsdWctaW4pIiA9ICIlQCAoJUAgSW50ZXJuZXQgcGx1Zy1p
bikiOwogCi0vKiBBdWRpby9UZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNs
dWRlcyB0aGUgbGFiZWwgYW5kIGxhbmd1YWdlIG9mIHRoZSB0cmFjaywgaW4gdGhlIGZvcm0gb2Yg
J0xhbmd1YWdlIChMYWJlbCknLiAqLwotIiVAICglQCkgKGF1ZGlvL3RleHQgdHJhY2spIiA9ICIl
QCAoJUApIjsKLQotLyogQ2xvc2VkIGNhcHRpb25zIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZv
cm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmds
aXNoIENDJykuICovCi0iJUAgQ0MgKHRleHQgdHJhY2spIiA9ICIlQCBDQyI7Ci0KLS8qIENhcHRp
b25zIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5n
dWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIENhcHRpb25zJykuICovCi0iJUAgQ2Fw
dGlvbnMgKHRleHQgdHJhY2spIiA9ICIlQCBDYXB0aW9ucyI7Ci0KLS8qIENoYXB0ZXJzIHRleHQg
dHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQv
b3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIENoYXB0ZXJzJykuICovCi0iJUAgQ2hhcHRlcnMgKHRl
eHQgdHJhY2spIiA9ICIlQCBDaGFwdGVycyI7Ci0KLS8qIENvbW1lbnRhcnkgYXVkaW8gdHJhY2sg
ZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9j
YWxlIChlLmcuICdFbmdsaXNoIENvbW1lbnRhcnknKS4gKi8KLSIlQCBDb21tZW50YXJ5IChhdWRp
byB0cmFjaykiID0gIiVAIENvbW1lbnRhcnkiOwotCi0vKiBEZXNjcmlwdGlvbnMgYXVkaW8gdHJh
Y2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3Ig
bG9jYWxlIChlLmcuICdFbmdsaXNoIERlc2NyaXB0aW9ucycpLiAqLwotIiVAIERlc2NyaXB0aW9u
cyAoYXVkaW8gdHJhY2spIiA9ICIlQCBEZXNjcmlwdGlvbnMiOwotCi0vKiBEZXNjcmlwdGlvbnMg
dGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdl
IGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggRGVzY3JpcHRpb25zJykuICovCi0iJUAgRGVz
Y3JpcHRpb25zICh0ZXh0IHRyYWNrKSIgPSAiJUAgRGVzY3JpcHRpb25zIjsKLQotLyogRWFzeSBS
ZWFkZXIgKGkuZS4gM3JkLWdyYWRlIGxldmVsKSB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3Jt
YXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlz
aCBFYXN5IFJlYWRlcicpLiAqLwotIiVAIEVhc3kgUmVhZGVyICh0ZXh0IHRyYWNrKSIgPSAiJUAg
RWFzeSBSZWFkZXIiOwotCi0vKiBGb3JjZWQgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0
IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2gg
Rm9yY2VkJykuICovCi0iJUAgRm9yY2VkICh0ZXh0IHRyYWNrKSIgPSAiJUAgRm9yY2VkIjsKLQog
LyogdmlzaWJsZSBuYW1lIG9mIHRoZSBHUFUgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBh
cHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIEdyYXBoaWNzIGFuZCBNZWRpYSIgPSAiJUAgR3JhcGhp
Y3MgYW5kIE1lZGlhIjsKIAotLyogTWV0YWRhdGEgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9y
bWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xp
c2ggTWV0YWRhdGEnKS4gKi8KLSIlQCBNZXRhZGF0YSAodGV4dCB0cmFjaykiID0gIiVAIE1ldGFk
YXRhIjsKLQogLyogdmlzaWJsZSBuYW1lIG9mIHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSBhcmd1
bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBOZXR3b3JraW5nIiA9ICIlQCBO
ZXR3b3JraW5nIjsKIAotLyogU0RIIChpLmUuIGRlYWYgYW5kL29yIGhhcmQgb2YgaGVhcmluZykg
dGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdl
IGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggU0RIJykuICAqLwotIiVAIFNESCAodGV4dCB0
cmFjaykiID0gIiVAIFNESCI7Ci0KIC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBw
cm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgU2Vy
dmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSI7CiAKQEAgLTE0OCw5
ICsxMTUsNiBAQAogLyogTWVzc2FnZSBmb3IgcmVxdWVzdGluZyBjcm9zcy1zaXRlIGNvb2tpZSBh
bmQgd2Vic2l0ZSBkYXRhIGFjY2Vzcy4gKi8KICJBbGxvdyDigJwlQOKAnSBhbmQg4oCcJUDigJ0g
dG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0YSB3aGlsZSBicm93c2luZyDigJwlQOKAnT8i
ID0gIkFsbG93IOKAnCVA4oCdIGFuZCDigJwlQOKAnSB0byB1c2UgY29va2llcyBhbmQgd2Vic2l0
ZSBkYXRhIHdoaWxlIGJyb3dzaW5nIOKAnCVA4oCdPyI7CiAKLS8qIE1lc3NhZ2UgZm9yIGdlb2xv
Y2F0aW9uIHByb21wdCAqLwotIkFsbG93IOKAnCVA4oCdIHRvIHVzZSB5b3VyIGN1cnJlbnQgbG9j
YXRpb24/IiA9ICJBbGxvdyDigJwlQOKAnSB0byB1c2UgeW91ciBjdXJyZW50IGxvY2F0aW9uPyI7
Ci0KIC8qIE1lc3NhZ2UgZm9yIHNwZWNocmVjb2duaXRpb24gcHJvbXB0ICovCiAiQWxsb3cg4oCc
JUDigJ0gdG8gY2FwdHVyZSB5b3VyIGF1ZGlvIGFuZCB1c2UgaXQgZm9yIHNwZWVjaCByZWNvZ25p
dGlvbj8iID0gIkFsbG93IOKAnCVA4oCdIHRvIGNhcHR1cmUgeW91ciBhdWRpbyBhbmQgdXNlIGl0
IGZvciBzcGVlY2ggcmVjb2duaXRpb24/IjsKIApAQCAtMTYzLDYgKzEyNyw5IEBACiAvKiBNZXNz
YWdlIGZvciB1c2VyIGNhbWVyYSBhY2Nlc3MgcHJvbXB0ICovCiAiQWxsb3cg4oCcJUDigJ0gdG8g
dXNlIHlvdXIgY2FtZXJhPyIgPSAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgY2FtZXJhPyI7
CiAKKy8qIE1lc3NhZ2UgZm9yIGdlb2xvY2F0aW9uIHByb21wdCAqLworIkFsbG93IOKAnCVA4oCd
IHRvIHVzZSB5b3VyIGN1cnJlbnQgbG9jYXRpb24/IiA9ICJBbGxvdyDigJwlQOKAnSB0byB1c2Ug
eW91ciBjdXJyZW50IGxvY2F0aW9uPyI7CisKIC8qIE1lc3NhZ2UgZm9yIHVzZXIgbWljcm9waG9u
ZSBhY2Nlc3MgcHJvbXB0ICovCiAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgbWljcm9waG9u
ZT8iID0gIkFsbG93IOKAnCVA4oCdIHRvIHVzZSB5b3VyIG1pY3JvcGhvbmU/IjsKIApAQCAtMjA4
LDkgKzE3NSw2IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJ1eSB3aXRoIEFwcGxlIFBheSBidXR0b24u
ICovCiAiQnV5IHdpdGggQXBwbGUgUGF5IiA9ICJCdXkgd2l0aCBBcHBsZSBQYXkiOwogCi0vKiBE
aXNwbGF5IG5hbWUgZm9yIGNsb3NlZCBjYXB0aW9ucyB0ZXh0IHRyYWNrcy4gKi8KLSJDQyAodGV4
dCB0cmFjaykiID0gIkNDIjsKLQogLyogQ2FuY2VsICovCiAiQ2FuY2VsIiA9ICJDYW5jZWwiOwog
CkBAIC0yMjMsMTggKzE4NywxMiBAQAogLyogQ2FwaXRhbGl6ZSBjb250ZXh0IG1lbnUgaXRlbSAq
LwogIkNhcGl0YWxpemUiID0gIkNhcGl0YWxpemUiOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIHRl
eHQgdHJhY2sga2luZCAnY2FwdGlvbnMnLiAqLwotIkNhcHRpb25zICh0ZXh0IHRyYWNrKSIgPSAi
Q2FwdGlvbnMiOwotCiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiQ2VudGVyIChVbmRvIGFjdGlv
biBuYW1lKSIgPSAiQ2VudGVyIjsKIAogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIkNoYW5nZSBB
dHRyaWJ1dGVzIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiQ2hhbmdlIEF0dHJpYnV0ZXMiOwogCi0v
KiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnY2hhcHRlcnMnLiAqLwotIkNoYXB0
ZXJzICh0ZXh0IHRyYWNrKSIgPSAiQ2hhcHRlcnMiOwotCiAvKiBDaGVjayBzcGVsbGluZyBjb250
ZXh0IG1lbnUgaXRlbSAqLwogIkNoZWNrIERvY3VtZW50IE5vdyIgPSAiQ2hlY2sgRG9jdW1lbnQg
Tm93IjsKIApAQCAtMjY4LDkgKzIyNiw2IEBACiAvKiBTdWJ0aXRsZSBvZiB0aGUgbGFiZWwgdG8g
c2hvdyBvbiBhIHNuYXBzaG90dGVkIHBsdWctaW4gKi8KICJDbGljayB0byByZXN0YXJ0IiA9ICJD
bGljayB0byByZXN0YXJ0IjsKIAotLyogRGlzcGxheSBuYW1lIGZvciBhdWRpbyB0cmFjayBraW5k
ICdjb21tZW50YXJ5Jy4gKi8KLSJDb21tZW50YXJ5IChhdWRpbyB0cmFjaykiID0gIiVAIENvbW1l
bnRhcnkiOwotCiAvKiBXS0Vycm9yQ29udGVudFJ1bGVMaXN0U3RvcmVDb21waWxlRmFpbGVkIGRl
c2NyaXB0aW9uICovCiAiQ29tcGlsaW5nIGEgV0tDb250ZW50UnVsZUxpc3QgZmFpbGVkIiA9ICJD
b21waWxpbmcgYSBXS0NvbnRlbnRSdWxlTGlzdCBmYWlsZWQiOwogCkBAIC0zMzcsMTIgKzI5Miw2
IEBACiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiRGVsZXRlIChVbmRvIGFjdGlvbiBuYW1lKSIg
PSAiRGVsZXRlIjsKIAotLyogRGlzcGxheSBuYW1lIGZvciBhdWRpbyB0cmFjayBraW5kICdkZXNj
cmlwdGlvbnMnLiAqLwotIkRlc2NyaXB0aW9ucyAoYXVkaW8gdHJhY2spIiA9ICJEZXNjcmlwdGlv
bnMiOwotCi0vKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnZGVzY3JpcHRpb25z
Jy4gKi8KLSJEZXNjcmlwdGlvbnMgKHRleHQgdHJhY2spIiA9ICJEZXNjcmlwdGlvbnMiOwotCiAv
KiB0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFy
eT4gY2hpbGQgKi8KICJEZXRhaWxzIiA9ICJEZXRhaWxzIjsKIApAQCAtMzg4LDkgKzMzNyw2IEBA
CiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiRHJhZyAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkRy
YWciOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIGVhc3kgcmVhZGVyIChpLmUuIDNyZC1ncmFkZSBs
ZXZlbCkgdGV4dCB0cmFja3MuICovCi0iRWFzeSBSZWFkZXIgKHRleHQgdHJhY2spIiA9ICJFYXN5
IFJlYWRlciI7Ci0KIC8qIFZpZGVvIEVudGVyIEZ1bGwgU2NyZWVuIGNvbnRleHQgbWVudSBpdGVt
ICovCiAiRW50ZXIgRnVsbCBTY3JlZW4iID0gIkVudGVyIEZ1bGwgU2NyZWVuIjsKIApAQCAtNDM2
LDkgKzM4Miw2IEBACiAvKiBGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIkZvbnQiID0g
IkZvbnQiOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnZm9yY2VkJy4g
Ki8KLSJGb3JjZWQgKHRleHQgdHJhY2spIiA9ICJGb3JjZWQiOwotCiAvKiBVbmRvIGFjdGlvbiBu
YW1lICovCiAiRm9ybWF0IEJsb2NrIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiRm9ybWF0dGluZyI7
CiAKQEAgLTU1Myw2ICs0OTYsOSBAQAogLyogJ1dlYnNpdGUnIG5hbWUgZGlzcGxheWVkIHdoZW4g
bG9jYWwgZG9jdW1lbnRzIGhhdmUgc3RvcmVkIGxvY2FsIGRhdGEgKi8KICJMb2NhbCBkb2N1bWVu
dHMgb24geW91ciBjb21wdXRlciIgPSAiTG9jYWwgZG9jdW1lbnRzIG9uIHlvdXIgY29tcHV0ZXIi
OwogCisvKiBUaXRsZSBmb3IgTG9vayBVcCBhY3Rpb24gYnV0dG9uICovCisiTG9vayBVcCIgPSAi
TG9vayBVcCI7CisKIC8qIExvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250ZXh0IG1lbnUgaXRlbSAq
LwogIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIgPSAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IjsKIApA
QCAtNTk4LDkgKzU0NCw2IEBACiAvKiBNYWx3YXJlIGNvbmZpcm1hdGlvbiBkaWFsb2cgKi8KICJN
ZXJlbHkgdmlzaXRpbmcgYSBzaXRlIGlzIHN1ZmZpY2llbnQgZm9yIG1hbHdhcmUgdG8gaW5zdGFs
bCBpdHNlbGYgYW5kIGhhcm0geW91ciBjb21wdXRlci4iID0gIk1lcmVseSB2aXNpdGluZyBhIHNp
dGUgaXMgc3VmZmljaWVudCBmb3IgbWFsd2FyZSB0byBpbnN0YWxsIGl0c2VsZiBhbmQgaGFybSB5
b3VyIGNvbXB1dGVyLiI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdt
ZXRhZGF0YScuICovCi0iTWV0YWRhdGEgKHRleHQgdHJhY2spIiA9ICJNZXRhZGF0YSI7Ci0KIC8q
IExhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmcgKi8KICJNaXNz
aW5nIFBsdWctaW4iID0gIk1pc3NpbmcgUGx1Zy1pbiI7CiAKQEAgLTc1MSw5ICs2OTQsNiBAQAog
LyogUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSAqLwogIlJpZ2h0IHRvIExlZnQiID0g
IlJpZ2h0IHRvIExlZnQiOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIFNESCAoaS5lLiBkZWFmIGFu
ZC9vciBoYXJkIG9mIGhlYXJpbmcpIHRleHQgdHJhY2tzLiAqLwotIlNESCAodGV4dCB0cmFjayki
ID0gIlNESCI7Ci0KIC8qIFRpdGxlIG9mIHRoZSBTZWFyY2ggYnV0dG9uIGZvciB6b29tZWQgZm9y
bSBjb250cm9scy4gKi8KICJTZWFyY2giID0gIlNlYXJjaCI7CiAKQEAgLTgyOSw2ICs3NjksOSBA
QAogLyogbWVudSBpdGVtIHRpdGxlICovCiAiU2hvdyBTdWJzdGl0dXRpb25zIiA9ICJTaG93IFN1
YnN0aXR1dGlvbnMiOwogCisvKiBUaXRsZSBmb3IgU2hvdyBUZXh0IGFjdGlvbiBidXR0b24gKi8K
KyJTaG93IFRleHQiID0gIlNob3cgVGV4dCI7CisKIC8qIFRpdGxlIG9mIHRoZSBjb250ZXh0IG1l
bnUgaXRlbSB0byBzaG93IHdoZW4gUERGUGx1Z2luIHdhcyB1c2VkIGluc3RlYWQgb2YgYSBibG9j
a2VkIHBsdWdpbiAqLwogIlNob3cgaW4gYmxvY2tlZCBwbHVnLWluIiA9ICJTaG93IGluIGJsb2Nr
ZWQgcGx1Zy1pbiI7CiAKQEAgLTEwMzksMTIgKzk4MiwxMiBAQAogLyogVW5kbyBhY3Rpb24gbmFt
ZSAqLwogIlVuZGVybGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIlVuZGVybGluZSI7CiAKLS8q
IFVua25vd24gZmlsZXNpemUgRlRQIGRpcmVjdG9yeSBsaXN0aW5nIGl0ZW0gKi8KLSJVbmtub3du
IChmaWxlc2l6ZSkiID0gIlVua25vd24iOwotCiAvKiBNZW51IGl0ZW0gbGFiZWwgZm9yIGEgYXVk
aW8vdGV4dCB0cmFjayB0aGF0IGhhcyBubyBvdGhlciBuYW1lLiAqLwogIlVua25vd24gKGF1ZGlv
L3RleHQgdHJhY2spIiA9ICJVbmtub3duIjsKIAorLyogVW5rbm93biBmaWxlc2l6ZSBGVFAgZGly
ZWN0b3J5IGxpc3RpbmcgaXRlbSAqLworIlVua25vd24gKGZpbGVzaXplKSIgPSAiVW5rbm93biI7
CisKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJVbmxpbmsgKFVuZG8gYWN0aW9uIG5hbWUpIiA9
ICJVbmxpbmsiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDNhYzhmOWIy
ZjZiYzBkZDg2MzM2ZDRjYWRmYmM2M2ZkNzE4N2I2ZWQuLjUyOTY2Yzc4ODQ3YzNkOTg3MzliYmU1
NjA2ODY1MWRjYjhjYzc3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC04
MCw4ICs4MCw4IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQot
I2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblJlc3VsdC5oIgorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyNpbmNsdWRlICJUZXh0UmVjb2duaXRpb25SZXN1bHQuaCIKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEzMjksOSArMTMyOSw5IEBAIGJvb2wgSFRNTEVsZW1l
bnQ6OmlzSW1hZ2VPdmVybGF5VGV4dChjb25zdCBOb2RlJiBub2RlKQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKIAotdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJl
c3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQpCit2b2lkIEhUTUxFbGVtZW50Ojp1
cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFRleHRSZWNvZ25pdGlvblJlc3VsdCYmIHJl
c3VsdCkKIHsKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHByZXZpb3VzQ29udGFpbmVyOwog
ICAgIGlmIChhdXRvIHNoYWRvd1Jvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7IHNoYWRvd1Jv
b3QgJiYgaGFzSW1hZ2VPdmVybGF5KCkpIHsKQEAgLTE1MTEsNyArMTUxMSw3IEBAIHZvaWQgSFRN
TEVsZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9u
UmVzdWx0JiYgcmVzdWx0CiAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zY2hlZHVsZUN1
cnNvclVwZGF0ZSgpOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IGYzMTgzY2ZhMGY3MzNlY2E1Y2Iw
NzJkOTQ4ZWRhODkyNzRkNjE3MzIuLjFhZTFmZDZlYzI2NTU0NWFhMTAxODk2ZDI3MDY3ZjYzNWMz
YTAwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKQEAgLTM2LDEwICszNiw3IEBAIGNs
YXNzIEZvcm1OYW1lZEl0ZW07CiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBWaXNpYmxl
U2VsZWN0aW9uOwogc3RydWN0IFNpbXBsZVJhbmdlOwotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uUmVzdWx0OwotI2VuZGlmCitzdHJ1Y3QgVGV4
dFJlY29nbml0aW9uUmVzdWx0OwogCiBlbnVtIGNsYXNzIEVudGVyS2V5SGludCA6IHVpbnQ4X3Q7
CiAKQEAgLTE0MSw4ICsxMzgsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgaXNJbWFnZU92ZXJsYXlUZXh0KGNvbnN0IE5vZGUmKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgYm9vbCBpc0ltYWdlT3ZlcmxheVRleHQoY29uc3QgTm9kZSopOwogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVXaXRo
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmKTsKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVXaXRoVGV4
dFJlY29nbml0aW9uUmVzdWx0KFRleHRSZWNvZ25pdGlvblJlc3VsdCYmKTsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4
IGE3NWUzOTAyNTRjNzkzODk0MThkNjBhYzM2NzZjNzNhY2ZkMDVkZTMuLjZkODRmNjk0NGRmNjE3
NzQwNWMxZmFmM2JhYmRlMTBkOWJiZjU5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aApAQCAtNTcwLDggKzU3MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlVW5p
dmVyc2FsQWNjZXNzWm9vbUZvY3VzKGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgeyB9
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uID0geyB9KQorI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVt
ZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVudD4mJik+JiYgY29tcGxl
dGlvbiA9IHsgfSkKICAgICB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQogICAgICAgICAgICAg
Y29tcGxldGlvbih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwCmluZGV4IGVkMjZjOTM2NTY4OGQxOGYxNzkxNDc4NmIzYWY1MWI3NDNiYWQyOTQu
LjcxMDk0NTE0MTJhYzBjNjJiNWVkNTk3N2NhMGE4YzdhODE3NzE5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTUyMSw3ICs1MjEsNyBA
QCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29u
dGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRGlj
dGF0aW9uQWx0ZXJuYXRpdmU6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5hcHBseURpY3RhdGlv
bkFsdGVybmF0aXZlKHRpdGxlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcElt
YWdlOgogICAgICAgICAvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkIGF0IHRoZSBjbGllbnQgbGF5
ZXIuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKQEAgLTgz
MCw4ICs4MzAsOCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAg
IENvbnRleHRNZW51SXRlbSBTZWxlY3RBbGxJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRl
bVRhZ1NlbGVjdEFsbCwgY29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCkpOwogICAgIENvbnRl
eHRNZW51SXRlbSBJbnNlcnRFbW9qaUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFn
SW5zZXJ0RW1vamksIGNvbnRleHRNZW51SXRlbVRhZ0luc2VydEVtb2ppKCkpOwogI2VuZGlmCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgQ29udGV4dE1lbnVJdGVtIFJldmVhbElt
YWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSwgY29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKSk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
ICAgIENvbnRleHRNZW51SXRlbSBMb29rVXBJbWFnZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1l
bnVJdGVtVGFnTG9va1VwSW1hZ2UsIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCkpOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKQEAgLTkwNCw5ICs5
MDQsOSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICAg
ICAgaWYgKGltYWdlVVJMLmlzTG9jYWxGaWxlKCkgfHwgaW1hZ2UpIHsKICAgICAgICAgICAgICAg
ICBhcHBlbmRJdGVtKENvcHlJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogCi0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAg
ICAgICAgICAgICAgIGlmIChpbWFnZSAmJiAhaW1hZ2UtPmlzQW5pbWF0ZWQoKSkKLSAgICAgICAg
ICAgICAgICAgICAgYXBwZW5kSXRlbShSZXZlYWxJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0
KCkpOworICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKExvb2tVcEltYWdlSXRlbSwgbV9j
b250ZXh0TWVudS5nZXQoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIH0KICNpZiBQTEFURk9STShH
VEspCkBAIC0xNDk1LDcgKzE0OTUsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hl
Y2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QKICAgICAgICAg
ICAgIHNob3VsZEVuYWJsZSA9IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkubWVkaWFIYXNBdWRp
bygpOwogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBzaG91bGRFbmFibGUgJiYgIG1fY29udGV4
dC5oaXRUZXN0UmVzdWx0KCkubWVkaWFNdXRlZCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnVHJhbnNsYXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCmluZGV4IDhmNmUxNDM0MDM5YWU0NjQyMzU0YWJjOGQ1Y2E1ZTM1OTJi
NmY4NzIuLjk2OTg2YjUzMDkxYmM2OTBlNmZjZDRjYjA2N2FiYTAyMWEzNTYwNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMyNCw4ICszMjQsOCBAQCBib29sIEV2ZW50
SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdAogRXZlbnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUmIGZyYW1lKQog
ICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1faG92ZXJUaW1lcigqdGhpcywgJkV2ZW50SGFu
ZGxlcjo6aG92ZXJUaW1lckZpcmVkKQotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
ICwgbV9pbWFnZUV4dHJhY3Rpb25UaW1lcigqdGhpcywgJkV2ZW50SGFuZGxlcjo6aW1hZ2VFeHRy
YWN0aW9uVGltZXJGaXJlZCwgMjUwX21zKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICAsIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lcigqdGhpcywgJkV2ZW50SGFuZGxlcjo6bV90
ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQsIDI1MF9tcykKICNlbmRpZgogICAgICwgbV9h
dXRvc2Nyb2xsQ29udHJvbGxlcihtYWtlVW5pcXVlPEF1dG9zY3JvbGxDb250cm9sbGVyPigpKQog
I2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTM2Nyw4ICszNjcsOCBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6Y2xlYXIoKQogI2lmIEVOQUJMRShDVVJTT1JfVklTSUJJTElUWSkKICAgICBj
YW5jZWxBdXRvSGlkZUN1cnNvclRpbWVyKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKLSAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnN0b3AoKTsK
ICNlbmRpZgogICAgIG1fcmVzaXplTGF5ZXIgPSBudWxscHRyOwogICAgIGNsZWFyRWxlbWVudFVu
ZGVyTW91c2UoKTsKQEAgLTE5MDUsOSArMTkwNSw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjptb3Vz
ZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiAgICAgaGl0VGVzdFJlc3Vs
dC5zZXRUb05vblVzZXJBZ2VudFNoYWRvd0FuY2VzdG9yKCk7CiAgICAgcGFnZS0+Y2hyb21lKCku
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoaGl0VGVzdFJlc3VsdCwgZXZlbnQubW9kaWZpZXJGbGFn
cygpKTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIGlmIChldmVudC5zeW50
aGV0aWNDbGlja1R5cGUoKSA9PSBOb1RhcCAmJiBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLmlzQWN0
aXZlKCkpCi0gICAgICAgIG1faW1hZ2VFeHRyYWN0aW9uVGltZXIucmVzdGFydCgpOworI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkg
PT0gTm9UYXAgJiYgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5yZXN0YXJ0KCk7CiAjZW5kaWYKIAogICAg
IHJldHVybiByZXN1bHQ7CkBAIC0yNTM5LDE0ICsyNTM5LDE0IEBAIHZvaWQgRXZlbnRIYW5kbGVy
Ojp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZShjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IE5vZGUqCiAKICAgICBtX2VsZW1lbnRVbmRlck1vdXNlID0gdGFyZ2V0RWxlbWVudDsKIAotI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAg
ICBpZiAocGxhdGZvcm1Nb3VzZUV2ZW50LnN5bnRoZXRpY0NsaWNrVHlwZSgpID09IE5vVGFwKSB7
CiAgICAgICAgIGlmIChtX2VsZW1lbnRVbmRlck1vdXNlICYmIGlzPFJlbmRlckltYWdlPihtX2Vs
ZW1lbnRVbmRlck1vdXNlLT5yZW5kZXJlcigpKSkKLSAgICAgICAgICAgIG1faW1hZ2VFeHRyYWN0
aW9uVGltZXIucmVzdGFydCgpOworICAgICAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRp
bWVyLnJlc3RhcnQoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9pbWFnZUV4dHJhY3Rp
b25UaW1lci5zdG9wKCk7CisgICAgICAgICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIu
c3RvcCgpOwogICAgIH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
IAogICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPmlt
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5lbGVtZW50VW5kZXJNb3VzZURpZENoYW5nZShtX2ZyYW1l
LCBtX2VsZW1lbnRVbmRlck1vdXNlLmdldCgpKTsKQEAgLTI2MDcsOCArMjYwNyw4IEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZShjb25zdCBBdG9tU3RyaW5n
JiBldmVudFR5cGUsIE5vZGUqCiAKICAgICAgICAgLy8gRXZlbnQgaGFuZGxpbmcgbWF5IGhhdmUg
bW92ZWQgdGhlIGVsZW1lbnQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQuCiAgICAgICAgIGlmICht
X2VsZW1lbnRVbmRlck1vdXNlICYmICZtX2VsZW1lbnRVbmRlck1vdXNlLT5kb2N1bWVudCgpICE9
IG1fZnJhbWUuZG9jdW1lbnQoKSkgewotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
ICAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5zdG9wKCk7CisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorICAgICAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnN0b3Ao
KTsKICNlbmRpZgogICAgICAgICAgICAgY2xlYXJFbGVtZW50VW5kZXJNb3VzZSgpOwogICAgICAg
ICB9CkBAIC0zMzk4LDE4ICszMzk4LDE4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpob3ZlclRpbWVy
RmlyZWQoKQogICAgIH0KIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKIAotdm9pZCBFdmVudEhhbmRsZXI6OmltYWdlRXh0cmFjdGlv
blRpbWVyRmlyZWQoKQordm9pZCBFdmVudEhhbmRsZXI6Om1fdGV4dFJlY29nbml0aW9uSG92ZXJU
aW1lckZpcmVkKCkKIHsKICAgICBpZiAoIW1fZWxlbWVudFVuZGVyTW91c2UgfHwgIWlzPFJlbmRl
ckltYWdlPihtX2VsZW1lbnRVbmRlck1vdXNlLT5yZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdEltYWdlRXh0cmFjdGlvbigqbV9lbGVtZW50VW5kZXJN
b3VzZSk7CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RUZXh0UmVjb2du
aXRpb24oKm1fZWxlbWVudFVuZGVyTW91c2UpOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlQWNjZXNzS2V5KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBkNDI2YTBjMmVmOTRl
YmI0YTU4ZDY2ZmY1MjdkNmViNTJkMzY2OGE4Li45ZmI1MmIyZTlmYmQ4NTczMTUzNGE2YjI4YTkx
YTM2OWMzNzg3N2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTM4OCw4ICsz
ODgsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBob3ZlclRpbWVyRmlyZWQoKTsKIAotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZvaWQgaW1hZ2VFeHRyYWN0aW9uVGltZXJGaXJl
ZCgpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICB2b2lkIG1fdGV4dFJlY29nbml0
aW9uSG92ZXJUaW1lckZpcmVkKCk7CiAjZW5kaWYKIAogICAgIGJvb2wgbG9naWNhbFNjcm9sbE92
ZXJmbG93KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBz
dGFydGluZ05vZGUgPSBudWxscHRyKTsKQEAgLTUyOSw4ICs1MjksOCBAQCBwcml2YXRlOgogICAg
IEZyYW1lJiBtX2ZyYW1lOwogICAgIFJlZlB0cjxOb2RlPiBtX21vdXNlUHJlc3NOb2RlOwogICAg
IFRpbWVyIG1faG92ZXJUaW1lcjsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBE
ZWZlcnJhYmxlT25lU2hvdFRpbWVyIG1faW1hZ2VFeHRyYWN0aW9uVGltZXI7CisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorICAgIERlZmVycmFibGVPbmVTaG90VGltZXIgbV90ZXh0UmVjb2du
aXRpb25Ib3ZlclRpbWVyOwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1dG9zY3JvbGxD
b250cm9sbGVyPiBtX2F1dG9zY3JvbGxDb250cm9sbGVyOwogICAgIFJlbmRlckxheWVyKiBtX3Jl
c2l6ZUxheWVyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9R
dWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IDk2ZDIwZDJm
MmYyZjA4YTJkYjA2YzA1ZDMwZmEzMzgyOTNlMmZjNjguLjE5YWMzMzI5OWM2YWZhZDJlMzA4ZWZh
MmI5NTY4ZDFmMDdmN2U3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTE0NjIsNyArMTQ2
Miw3IEBAIGJvb2wgUXVpcmtzOjpzaG91bGRCeXBhc3NVc2VyR2VzdHVyZVJlcXVpcmVtZW50Rm9y
V2ViQXV0aG4oKSBjb25zdAogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIGJvb2wgUXVpcmtzOjpuZWVkc1RvRm9y
Y2VVc2VyU2VsZWN0V2hlbkluc3RhbGxpbmdJbWFnZU92ZXJsYXkoKSBjb25zdAogewpAQCAtMTQ3
Niw2ICsxNDc2LDYgQEAgYm9vbCBRdWlya3M6Om5lZWRzVG9Gb3JjZVVzZXJTZWxlY3RXaGVuSW5z
dGFsbGluZ0ltYWdlT3ZlcmxheSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAppbmRleCAzNTJjMmFmZjIxOTY5YTM1NDk4NDVm
NDU3OTNhZTlhMGY5MjY3YTIyLi4zNjRjMTZmNzRmMDlhNGU4NDc5ZDRhNDAwMmE1MDdjZGI0Y2Q2
YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1l
cygpOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogICAgIGJvb2wgbmVlZHNUb0ZvcmNlVXNlclNlbGVjdFdoZW5JbnN0YWxsaW5nSW1h
Z2VPdmVybGF5KCkgY29uc3Q7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5jcHAKaW5kZXggNTQwMGVkM2ZmMjA2MGEwZTdmNjE1YTlmMzQyODE4NGI4
YzMwMWE2Zi4uYjRhYTg4OTJjNDI4NzQyNDRiMWViNmQ2NzQ5MjI5MmNmN2M1OGFlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCkBAIC0yNTgsNyArMjU4
LDcgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24oQ29udGV4dE1lbnVBY3Rpb24gYWN0
aW9uKQogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZVZpZGVvRnVsbHNjcmVlbjoKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVu
dUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW46Ci0gICAgY2FzZSBDb250ZXh0
TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgY2FzZSBDb250
ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgY2FzZSBD
b250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgIGNhc2Ug
Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWc6CiAgICAgY2Fz
ZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggZGFjNWMzM2Y0NmVlZmM3
YTkyODQzODk3MzkzMjdkMTljMWU4MjY2Yi4uZmUyMDMyNmQ4Y2M4Yjc4MjAwN2VhNmVjNjgzZjBh
OTMwMjAyYjU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgK
QEAgLTE0Nyw3ICsxNDcsNyBAQCBlbnVtIENvbnRleHRNZW51QWN0aW9uIHsKICAgICBDb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbiwKICAgICBDb250ZXh0TWVu
dUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cCwKICAgICBDb250ZXh0TWVudUl0ZW1U
YWdBZGRIaWdobGlnaHRUb05ld0dyb3VwLAotICAgIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbElt
YWdlLAorICAgIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlLAogICAgIENvbnRleHRNZW51
SXRlbVRhZ1RyYW5zbGF0ZSwKICAgICBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnID0gNTAw
MCwKICAgICBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnID0gNTk5OSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFmN2ZiMzMwNDBmOWM4OTNhMzdiNDQ4NGFhZTg1YzM1YWRhODdmMGYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmgKKysrIC9kZXYvbnVsbApAQCAt
MSwxODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotCi0jaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQotT0JKQ19DTEFTUyBERFNjYW5uZXJSZXN1bHQ7Ci0jZW5k
aWYKLQotI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGEgewotICAgIEltYWdlRXh0cmFjdGlvblRl
eHREYXRhKGNvbnN0IFN0cmluZyYgdGhlVGV4dCwgRmxvYXRRdWFkJiYgcXVhZCkKLSAgICAgICAg
OiB0ZXh0KHRoZVRleHQpCi0gICAgICAgICwgbm9ybWFsaXplZFF1YWQoV1RGTW92ZShxdWFkKSkK
LSAgICB7Ci0gICAgfQotCi0gICAgU3RyaW5nIHRleHQ7Ci0gICAgRmxvYXRRdWFkIG5vcm1hbGl6
ZWRRdWFkOwotCi0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEltYWdlRXh0cmFjdGlvblRleHREYXRhPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCB0ZXh0OwotICAgIGVu
Y29kZXIgPDwgbm9ybWFsaXplZFF1YWQ7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+IEltYWdlRXh0cmFjdGlvblRleHRE
YXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gdGV4dDsKLSAgICBkZWNvZGVyID4+IHRleHQ7Ci0gICAgaWYgKCF0ZXh0KQotICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxGbG9hdFF1YWQ+IG5vcm1h
bGl6ZWRRdWFkOwotICAgIGRlY29kZXIgPj4gbm9ybWFsaXplZFF1YWQ7Ci0gICAgaWYgKCFub3Jt
YWxpemVkUXVhZCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7
eyBXVEZNb3ZlKCp0ZXh0KSwgV1RGTW92ZSgqbm9ybWFsaXplZFF1YWQpIH19OwotfQotCi1zdHJ1
Y3QgSW1hZ2VFeHRyYWN0aW9uTGluZURhdGEgewotICAgIEltYWdlRXh0cmFjdGlvbkxpbmVEYXRh
KEZsb2F0UXVhZCYmIHF1YWQsIFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YT4mJiB0aGVD
aGlsZHJlbikKLSAgICAgICAgOiBub3JtYWxpemVkUXVhZChXVEZNb3ZlKHF1YWQpKQotICAgICAg
ICAsIGNoaWxkcmVuKFdURk1vdmUodGhlQ2hpbGRyZW4pKQotICAgIHsKLSAgICB9Ci0KLSAgICBG
bG9hdFF1YWQgbm9ybWFsaXplZFF1YWQ7Ci0gICAgVmVjdG9yPEltYWdlRXh0cmFjdGlvblRleHRE
YXRhPiBjaGlsZHJlbjsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YT4gZGVjb2RlKERlY29kZXImKTsKLX07
Ci0KLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0KLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25E
YXRhRGV0ZWN0b3JJbmZvIHsKLSAgICBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvKCkg
PSBkZWZhdWx0OwotICAgIEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8oRERTY2FubmVy
UmVzdWx0ICpzY2FubmVyUmVzdWx0LCBWZWN0b3I8RmxvYXRRdWFkPiYmIHF1YWRzKQotICAgICAg
ICA6IHJlc3VsdChzY2FubmVyUmVzdWx0KQotICAgICAgICAsIG5vcm1hbGl6ZWRRdWFkcyhXVEZN
b3ZlKHF1YWRzKSkKLSAgICB7Ci0gICAgfQotCi0gICAgUmV0YWluUHRyPEREU2Nhbm5lclJlc3Vs
dD4gcmVzdWx0OwotICAgIFZlY3RvcjxGbG9hdFF1YWQ+IG5vcm1hbGl6ZWRRdWFkczsKLX07Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0KLXRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgSW1hZ2VFeHRyYWN0aW9uTGluZURhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbm9ybWFsaXplZFF1YWQ7Ci0gICAgZW5jb2RlciA8
PCBjaGlsZHJlbjsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxJ
bWFnZUV4dHJhY3Rpb25MaW5lRGF0YT4gSW1hZ2VFeHRyYWN0aW9uTGluZURhdGE6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRRdWFkPiBub3JtYWxp
emVkUXVhZDsKLSAgICBkZWNvZGVyID4+IG5vcm1hbGl6ZWRRdWFkOwotICAgIGlmICghbm9ybWFs
aXplZFF1YWQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YT4+IGNoaWxkcmVuOwotICAgIGRlY29k
ZXIgPj4gY2hpbGRyZW47Ci0gICAgaWYgKCFjaGlsZHJlbikKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpub3JtYWxpemVkUXVhZCksIFdURk1v
dmUoKmNoaWxkcmVuKSB9fTsKLX0KLQotc3RydWN0IEltYWdlRXh0cmFjdGlvblJlc3VsdCB7Ci0g
ICAgVmVjdG9yPEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhPiBsaW5lczsKLQotI2lmIEVOQUJMRShE
QVRBX0RFVEVDVElPTikKLSAgICBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5m
bz4gZGF0YURldGVjdG9yczsKLSNlbmRpZgotCi0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIGlmICghbGluZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgICAgICBpZiAoIWRhdGFEZXRl
Y3RvcnMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvblJlc3VsdD4gZGVjb2RlKERlY29k
ZXImKTsKLX07Ci0KLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgSW1hZ2VFeHRyYWN0aW9u
UmVzdWx0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8
IGxpbmVzOwotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICBlbmNvZGVyIDw8IGRhdGFE
ZXRlY3RvcnM7Ci0jZW5kaWYKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRp
b25hbDxJbWFnZUV4dHJhY3Rpb25SZXN1bHQ+IEltYWdlRXh0cmFjdGlvblJlc3VsdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW1hZ2VFeHRy
YWN0aW9uTGluZURhdGE+PiBsaW5lczsKLSAgICBkZWNvZGVyID4+IGxpbmVzOwotICAgIGlmICgh
bGluZXMpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCi0gICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uRGF0YURl
dGVjdG9ySW5mbz4+IGRhdGFEZXRlY3RvcnM7Ci0gICAgZGVjb2RlciA+PiBkYXRhRGV0ZWN0b3Jz
OwotICAgIGlmICghZGF0YURldGVjdG9ycykKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LSNlbmRpZgotCi0gICAgcmV0dXJuIHt7Ci0gICAgICAgIFdURk1vdmUoKmxpbmVzKSwKLSNpZiBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgICAgIFdURk1vdmUoKmRhdGFEZXRlY3RvcnMpLAot
I2VuZGlmCi0gICAgfX07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCmluZGV4IDRmMzk5NDI1YzRmNDZkNDQ3YjA3NGUzY2IxZWMxODA1ZDYwNzZi
MzUuLmIzOTg2M2NhYmM2NTE0ZWFkMjUwNDA5ODU4YmQzOWY1MGFhMjM3YzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM2Niw4ICszNjYsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGdlbmVyaWNUb3Vj
aElEUHJvbXB0VGl0bGUoKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdl
KCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpOwogI2VuZGlmCiAKICNpZiBIQVZFKFRS
QU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGV4dFJlY29nbml0aW9uUmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0
UmVjb2duaXRpb25SZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzBjMWVlMjQ3M2IxODRmZmNiMmFlYjhl
YmM4N2EwMTg1NzczYzE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGV4dFJlY29nbml0aW9uUmVzdWx0LmgKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCitPQkpD
X0NMQVNTIEREU2Nhbm5lclJlc3VsdDsKKyNlbmRpZgorCisjaW5jbHVkZSAiRmxvYXRRdWFkLmgi
CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25Xb3Jk
RGF0YSB7CisgICAgVGV4dFJlY29nbml0aW9uV29yZERhdGEoY29uc3QgU3RyaW5nJiB0aGVUZXh0
LCBGbG9hdFF1YWQmJiBxdWFkKQorICAgICAgICA6IHRleHQodGhlVGV4dCkKKyAgICAgICAgLCBu
b3JtYWxpemVkUXVhZChXVEZNb3ZlKHF1YWQpKQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcg
dGV4dDsKKyAgICBGbG9hdFF1YWQgbm9ybWFsaXplZFF1YWQ7CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0aW9uV29yZERhdGE+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFRl
eHRSZWNvZ25pdGlvbldvcmREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IHRleHQ7CisgICAgZW5jb2RlciA8PCBub3JtYWxpemVkUXVhZDsKK30K
KwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxUZXh0UmVjb2duaXRpb25X
b3JkRGF0YT4gVGV4dFJlY29nbml0aW9uV29yZERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB0ZXh0OworICAgIGRlY29kZXIgPj4gdGV4
dDsKKyAgICBpZiAoIXRleHQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBz
dGQ6Om9wdGlvbmFsPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1YWQ7CisgICAgZGVjb2RlciA+PiBu
b3JtYWxpemVkUXVhZDsKKyAgICBpZiAoIW5vcm1hbGl6ZWRRdWFkKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKnRleHQpLCBXVEZNb3ZlKCpu
b3JtYWxpemVkUXVhZCkgfX07Cit9CisKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25MaW5lRGF0YSB7
CisgICAgVGV4dFJlY29nbml0aW9uTGluZURhdGEoRmxvYXRRdWFkJiYgcXVhZCwgVmVjdG9yPFRl
eHRSZWNvZ25pdGlvbldvcmREYXRhPiYmIHRoZUNoaWxkcmVuKQorICAgICAgICA6IG5vcm1hbGl6
ZWRRdWFkKFdURk1vdmUocXVhZCkpCisgICAgICAgICwgY2hpbGRyZW4oV1RGTW92ZSh0aGVDaGls
ZHJlbikpCisgICAgeworICAgIH0KKworICAgIEZsb2F0UXVhZCBub3JtYWxpemVkUXVhZDsKKyAg
ICBWZWN0b3I8VGV4dFJlY29nbml0aW9uV29yZERhdGE+IGNoaWxkcmVuOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkxp
bmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKKworc3RydWN0IFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciB7CisgICAgVGV4dFJlY29n
bml0aW9uRGF0YURldGVjdG9yKCkgPSBkZWZhdWx0OworICAgIFRleHRSZWNvZ25pdGlvbkRhdGFE
ZXRlY3RvcihERFNjYW5uZXJSZXN1bHQgKnNjYW5uZXJSZXN1bHQsIFZlY3RvcjxGbG9hdFF1YWQ+
JiYgcXVhZHMpCisgICAgICAgIDogcmVzdWx0KHNjYW5uZXJSZXN1bHQpCisgICAgICAgICwgbm9y
bWFsaXplZFF1YWRzKFdURk1vdmUocXVhZHMpKQorICAgIHsKKyAgICB9CisKKyAgICBSZXRhaW5Q
dHI8RERTY2FubmVyUmVzdWx0PiByZXN1bHQ7CisgICAgVmVjdG9yPEZsb2F0UXVhZD4gbm9ybWFs
aXplZFF1YWRzOworfTsKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBUZXh0UmVjb2duaXRpb25MaW5lRGF0YTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBub3JtYWxpemVkUXVh
ZDsKKyAgICBlbmNvZGVyIDw8IGNoaWxkcmVuOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhPiBUZXh0UmVjb2duaXRpb25M
aW5lRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxG
bG9hdFF1YWQ+IG5vcm1hbGl6ZWRRdWFkOworICAgIGRlY29kZXIgPj4gbm9ybWFsaXplZFF1YWQ7
CisgICAgaWYgKCFub3JtYWxpemVkUXVhZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFRleHRSZWNvZ25pdGlvbldvcmREYXRhPj4gY2hp
bGRyZW47CisgICAgZGVjb2RlciA+PiBjaGlsZHJlbjsKKyAgICBpZiAoIWNoaWxkcmVuKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKm5vcm1h
bGl6ZWRRdWFkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OworfQorCitzdHJ1Y3QgVGV4dFJlY29n
bml0aW9uUmVzdWx0IHsKKyAgICBWZWN0b3I8VGV4dFJlY29nbml0aW9uTGluZURhdGE+IGxpbmVz
OworCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIFZlY3RvcjxUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+IGRhdGFEZXRlY3RvcnM7CisjZW5kaWYKKworICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIWxpbmVzLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICAgICAg
aWYgKCFkYXRhRGV0ZWN0b3JzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyNlbmRpZgorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUZXh0UmVjb2duaXRpb25SZXN1bHQ+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFRl
eHRSZWNvZ25pdGlvblJlc3VsdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBsaW5lczsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgZW5j
b2RlciA8PCBkYXRhRGV0ZWN0b3JzOworI2VuZGlmCit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0aW9uUmVzdWx0PiBUZXh0UmVjb2duaXRpb25S
ZXN1bHQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhPj4gbGluZXM7CisgICAgZGVjb2RlciA+PiBsaW5l
czsKKyAgICBpZiAoIWxpbmVzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFRleHRSZWNv
Z25pdGlvbkRhdGFEZXRlY3Rvcj4+IGRhdGFEZXRlY3RvcnM7CisgICAgZGVjb2RlciA+PiBkYXRh
RGV0ZWN0b3JzOworICAgIGlmICghZGF0YURldGVjdG9ycykKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyNlbmRpZgorCisgICAgcmV0dXJuIHt7CisgICAgICAgIFdURk1vdmUoKmxpbmVz
KSwKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgICAgIFdURk1vdmUoKmRhdGFEZXRl
Y3RvcnMpLAorI2VuZGlmCisgICAgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQppbmRleCBmNjhjZTQ1
YjNmM2Y3OWU2OTJlMjA2Y2VmOWU4ODJhYmI3YWU5NTM0Li5lOTVmYjY1MmRmZjcxMzlkNzA0NTNl
MTY3YjcxNDk1N2Q0N2U2ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCkBAIC0zMTIsMTEgKzMxMiwxMyBAQCBT
dHJpbmcgZXhpdEZ1bGxTY3JlZW5CdXR0b25BY2Nlc3NpYmlsaXR5VGl0bGUoKQogfQogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCkKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXplZE5TU3RyaW5nKEAiUmV2ZWFsIEltYWdlIik7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkxvb2sgVXAiLCAiVGl0bGUgZm9yIExvb2sgVXAgYWN0aW9uIGJ1dHRvbiIpOwog
fQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGIwMGFiNGVhOTA5MTQ3NjdhNGM2MzBmZTE1YjRjNTU4YzM4YWQy
NmUuLmYxMTFjMjUzNzk1ZDA3NTkwNmViNWQ3OTQ2MjhhMGYyMmFhNGE3ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM0NSw4ICszNDUsOCBAQAogI2luY2x1ZGUgIk5h
dmlnYXRvck1lZGlhU2Vzc2lvbi5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSNpbmNsdWRlICJJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCIKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisjaW5jbHVkZSAiVGV4dFJlY29nbml0aW9uUmVzdWx0LmgiCiAjZW5kaWYK
IAogdXNpbmcgSlNDOjpDYWxsRGF0YTsKQEAgLTU2MDUsNyArNTYwNSw3IEBAIE1vY2tQYXltZW50
Q29vcmRpbmF0b3ImIEludGVybmFsczo6bW9ja1BheW1lbnRDb29yZGluYXRvcihEb2N1bWVudCYg
ZG9jdW1lbnQpCiBJbnRlcm5hbHM6OkltYWdlT3ZlcmxheUxpbmU6On5JbWFnZU92ZXJsYXlMaW5l
KCkgPSBkZWZhdWx0OwogSW50ZXJuYWxzOjpJbWFnZU92ZXJsYXlUZXh0Ojp+SW1hZ2VPdmVybGF5
VGV4dCgpID0gZGVmYXVsdDsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0YXRpYyBGbG9h
dFF1YWQgZ2V0UXVhZChjb25zdCBUJiBvdmVybGF5VGV4dE9yTGluZSkKQEAgLTU2MTgsMjYgKzU2
MTgsMjYgQEAgc3RhdGljIEZsb2F0UXVhZCBnZXRRdWFkKGNvbnN0IFQmIG92ZXJsYXlUZXh0T3JM
aW5lKQogICAgIH07CiB9CiAKLXN0YXRpYyBJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YSBtYWtlRGF0
YUZvckxpbmUoY29uc3QgSW50ZXJuYWxzOjpJbWFnZU92ZXJsYXlMaW5lJiBsaW5lKQorc3RhdGlj
IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhIG1ha2VEYXRhRm9yTGluZShjb25zdCBJbnRlcm5hbHM6
OkltYWdlT3ZlcmxheUxpbmUmIGxpbmUpCiB7CiAgICAgcmV0dXJuIHsKICAgICAgICAgZ2V0UXVh
ZDxJbnRlcm5hbHM6OkltYWdlT3ZlcmxheUxpbmU+KGxpbmUpLAotICAgICAgICBsaW5lLmNoaWxk
cmVuLm1hcChbXShhdXRvJiB0ZXh0Q2hpbGQpIC0+IEltYWdlRXh0cmFjdGlvblRleHREYXRhIHsK
KyAgICAgICAgbGluZS5jaGlsZHJlbi5tYXAoW10oYXV0byYgdGV4dENoaWxkKSAtPiBUZXh0UmVj
b2duaXRpb25Xb3JkRGF0YSB7CiAgICAgICAgICAgICByZXR1cm4geyB0ZXh0Q2hpbGQudGV4dCwg
Z2V0UXVhZDxJbnRlcm5hbHM6OkltYWdlT3ZlcmxheVRleHQ+KHRleHRDaGlsZCkgfTsKICAgICAg
ICAgfSkKICAgICB9OwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB2b2lkIEludGVybmFsczo6aW5zdGFs
bEltYWdlT3ZlcmxheShFbGVtZW50JiBlbGVtZW50LCBWZWN0b3I8SW1hZ2VPdmVybGF5TGluZT4m
JiBsaW5lcykKIHsKICAgICBpZiAoIWlzPEhUTUxFbGVtZW50PihlbGVtZW50KSkKICAgICAgICAg
cmV0dXJuOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgZG93bmNhc3Q8SFRN
TEVsZW1lbnQ+KGVsZW1lbnQpLnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0IHsKLSAgICAgICAgbGluZXMubWFwKFtdIChhdXRvJiBsaW5lKSAtPiBJ
bWFnZUV4dHJhY3Rpb25MaW5lRGF0YSB7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAg
IGRvd25jYXN0PEhUTUxFbGVtZW50PihlbGVtZW50KS51cGRhdGVXaXRoVGV4dFJlY29nbml0aW9u
UmVzdWx0KFRleHRSZWNvZ25pdGlvblJlc3VsdCB7CisgICAgICAgIGxpbmVzLm1hcChbXSAoYXV0
byYgbGluZSkgLT4gVGV4dFJlY29nbml0aW9uTGluZURhdGEgewogICAgICAgICAgICAgcmV0dXJu
IG1ha2VEYXRhRm9yTGluZShsaW5lKTsKICAgICAgICAgfSkKICAgICB9KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDRjYmNiZmU4NmRlNDhkMGQ0YmJjYjYy
OWYzY2ZjZjRhYjc5MGI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0
aWVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRk
aXRpb25zL0ltYWdlRXh0cmFjdGlvblV0aWxpdGllc0FkZGl0aW9ucy5oPgotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlRXh0cmFjdGlvblV0aWxp
dGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRp
bGl0aWVzLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGU1NmZhNWVjNGNiNTA0
NDdhYmM2M2NlMzk4YTRlZTJiOGFkM2QyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0
aW9uVXRpbGl0aWVzLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVz
LmgiCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRp
b25zL0ltYWdlRXh0cmFjdGlvblV0aWxpdGllc0FkZGl0aW9ucy5tbT4KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0
aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWM5ZmU3MzY2NTY5NGU0ZDJkODU5ZDk3Zjg0YmJkZGJiNDJmYzhi
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJl
Y29nbml0aW9uVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitAY2xhc3MgVktJbWFnZUFu
YWx5c2lzOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uUmVz
dWx0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBpc0xpdmVUZXh0RW5hYmxlZCgp
OworV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0IG1ha2VUZXh0UmVjb2duaXRpb25SZXN1
bHQoVktJbWFnZUFuYWx5c2lzICopOworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNv
Z25pdGlvblV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJl
Y29nbml0aW9uVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzYTZhMzNlYjYyZGMwZjRmY2ViNGQ3
NGMwNWE1ZmU5MTJjYTQzYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDExNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVGV4dFJlY29nbml0aW9u
VXRpbGl0aWVzLmgiCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpbXBvcnQgPFZp
c2lvbktpdENvcmUvVktJbWFnZUFuYWx5c2lzX1dlYktpdC5oPgorI2ltcG9ydCA8VmlzaW9uS2l0
Q29yZS9WS1F1YWQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+
CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0ZlYXR1cmVGbGFnc1NQSS5oPgorCisvLyBOb3RlIHRo
YXQgdGhpcyBpcyBhY3R1YWxseSBkZWNsYXJlZCBhcyBhbiBPYmplY3RpdmUtQyBjbGFzcyBpbiBW
aXNpb25LaXQgaGVhZGVycy4KKy8vIEhvd2V2ZXIsIGZvciBzdGFnaW5nIHB1cnBvc2VzLCB3ZSBk
ZWZpbmUgaXQgYXMgYSBwcm90b2NvbCBpbnN0ZWFkIHRvIGF2b2lkIHN5bWJvbAorLy8gcmVkZWZp
bml0aW9uIGVycm9ycyB0aGF0IHdvdWxkIGFyaXNlIHdoZW4gY29tcGlsaW5nIHdpdGggYW4gU0RL
IHRoYXQgY29udGFpbnMgdGhlCisvLyByZWFsIGRlZmluaXRpb24gb2YgVktXS0RhdGFEZXRlY3Rv
ckluZm8uCisvLyBPbmNlIHRoZSBjaGFuZ2VzIGluIHJkYXI6Ly83Nzk3ODc0NSBoYXZlIGJlZW4g
aW4gdGhlIFNESyBmb3IgYSB3aGlsZSwgd2UgY2FuIHJlbW92ZQorLy8gdGhpcyBzdGFnaW5nIGRl
Y2xhcmF0aW9uIGFuZCB1c2UgdGhlIHJlYWwgT2JqZWN0aXZlLUMgY2xhc3MuCitAcHJvdG9jb2wg
VktXS0RhdGFEZXRlY3RvckluZm8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgRERT
Y2FubmVyUmVzdWx0ICpyZXN1bHQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
QXJyYXk8VktRdWFkICo+ICpib3VuZGluZ1F1YWRzOworQGVuZAorCitAaW50ZXJmYWNlIFZLSW1h
Z2VBbmFseXNpcyAoU3RhZ2luZ183Nzk3ODc0NSkKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNBcnJheTxpZCA8VktXS0RhdGFEZXRlY3RvckluZm8+PiAqdGV4dERhdGFEZXRlY3Rv
cnM7CitAZW5kCisKK0BpbnRlcmZhY2UgVktXS1RleHRJbmZvIChTdGFnaW5nXzc3MDg2MTA1KQor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PFZLV0tUZXh0SW5mbyAqPiAq
Y2hpbGRyZW47CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK3N0YXRpYyBGbG9hdFF1YWQgZmxvYXRRdWFkKFZLUXVhZCAqcXVhZCkKK3sKKyAg
ICByZXR1cm4geyBxdWFkLnRvcExlZnQsIHF1YWQudG9wUmlnaHQsIHF1YWQuYm90dG9tUmlnaHQs
IHF1YWQuYm90dG9tTGVmdCB9OworfQorCitzdGF0aWMgVmVjdG9yPEZsb2F0UXVhZD4gZmxvYXRR
dWFkcyhOU0FycmF5PFZLUXVhZCAqPiAqdmtRdWFkcykKK3sKKyAgICBWZWN0b3I8RmxvYXRRdWFk
PiBxdWFkczsKKyAgICBxdWFkcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZrUXVhZHMuY291bnQp
OworICAgIGZvciAoVktRdWFkICp2a1F1YWQgaW4gdmtRdWFkcykKKyAgICAgICAgcXVhZHMudW5j
aGVja2VkQXBwZW5kKGZsb2F0UXVhZCh2a1F1YWQpKTsKKyAgICByZXR1cm4gcXVhZHM7Cit9CisK
K1RleHRSZWNvZ25pdGlvblJlc3VsdCBtYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KFZLSW1hZ2VB
bmFseXNpcyAqYW5hbHlzaXMpCit7CisgICAgTlNBcnJheTxWS1dLVGV4dEluZm8gKj4gKmFsbExp
bmVzID0gYW5hbHlzaXMuYWxsTGluZXM7CisgICAgVGV4dFJlY29nbml0aW9uUmVzdWx0IHJlc3Vs
dDsKKyAgICByZXN1bHQubGluZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShhbGxMaW5lcy5jb3Vu
dCk7CisgICAgZm9yIChWS1dLVGV4dEluZm8gKmxpbmUgaW4gYWxsTGluZXMpIHsKKyAgICAgICAg
VmVjdG9yPFRleHRSZWNvZ25pdGlvbldvcmREYXRhPiBjaGlsZHJlbjsKKyAgICAgICAgaWYgKFts
aW5lIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY2hpbGRyZW4pXSkgeworICAgICAgICAg
ICAgTlNBcnJheTxWS1dLVGV4dEluZm8gKj4gKnZrQ2hpbGRyZW4gPSBsaW5lLmNoaWxkcmVuOwor
ICAgICAgICAgICAgY2hpbGRyZW4ucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2a0NoaWxkcmVuLmNv
dW50KTsKKyAgICAgICAgICAgIGZvciAoVktXS1RleHRJbmZvICpjaGlsZCBpbiB2a0NoaWxkcmVu
KQorICAgICAgICAgICAgICAgIGNoaWxkcmVuLnVuY2hlY2tlZEFwcGVuZCh7IGNoaWxkLnN0cmlu
ZywgZmxvYXRRdWFkKGNoaWxkLnF1YWQpIH0pOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IGNoaWxkcmVuLmFwcGVuZCh7IGxpbmUuc3RyaW5nLCBmbG9hdFF1YWQobGluZS5xdWFkKSB9KTsK
KyAgICAgICAgcmVzdWx0LmxpbmVzLnVuY2hlY2tlZEFwcGVuZCh7IGZsb2F0UXVhZChsaW5lLnF1
YWQpLCBXVEZNb3ZlKGNoaWxkcmVuKSB9KTsKKyAgICB9CisKKyNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCisgICAgaWYgKFthbmFseXNpcyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHRl
eHREYXRhRGV0ZWN0b3JzKV0pIHsKKyAgICAgICAgYXV0byBkYXRhRGV0ZWN0b3JzID0gcmV0YWlu
UHRyKGFuYWx5c2lzLnRleHREYXRhRGV0ZWN0b3JzKTsKKyAgICAgICAgcmVzdWx0LmRhdGFEZXRl
Y3RvcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShbZGF0YURldGVjdG9ycyBjb3VudF0pOworICAg
ICAgICBmb3IgKGlkIDxWS1dLRGF0YURldGVjdG9ySW5mbz4gaW5mbyBpbiBkYXRhRGV0ZWN0b3Jz
LmdldCgpKQorICAgICAgICAgICAgcmVzdWx0LmRhdGFEZXRlY3RvcnMudW5jaGVja2VkQXBwZW5k
KHsgaW5mby5yZXN1bHQsIGZsb2F0UXVhZHMoaW5mby5ib3VuZGluZ1F1YWRzKSB9KTsKKyAgICB9
CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL1RleHRSZWNvZ25pdGlvblV0aWxpdGllc0FkZGl0aW9ucy5tbT4KKyNlbHNlCisKK2Jvb2wg
aXNMaXZlVGV4dEVuYWJsZWQoKQoreworICAgIHJldHVybiB0cnVlOworfQorCisjZW5kaWYKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDYz
YTJkNzk4ODBkZDFjNDhjM2Y4MzUwZjFkZWI2NWU1MTIwOWJjYWEuLjVkMTA0OTM5OTFjM2ViYzQw
ZGJhMDJiMzlhN2Y5NWYwYTBjNDNiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9j
L1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC01NDMsNyArNTQzLDcgQEAgaW5saW5lIFdLQ29udGV4dE1l
bnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICNlbmRp
ZgogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAg
ICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwotICAgIGNhc2UgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgY2FzZSBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlOwogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFn
VHJhbnNsYXRlOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRl
OwpAQCAtNzQ2LDcgKzc0Niw3IEBAIGlubGluZSBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiB0
b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1UYWcgdGFnKQogICAgICAgICByZXR1cm4gV2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwogI2VuZGlmCiAgICAgY2FzZSBrV0tDb250ZXh0
TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRN
ZW51SXRlbVRhZ1JldmVhbEltYWdlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtVGFnTG9va1VwSW1hZ2U7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdUcmFu
c2xhdGU6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xh
dGU7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luVGhpc1dpbmRvdzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENv
ZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ29jb2EubW0KaW5kZXggZTU3ZGU3MTg0YzgxOTNhMGFkMzJlMDUwYzg5NDI1ZjU3Yzk3
MTY4NS4uMmJiMTJjMjc4ZDVhZGYyMDhmMjU4YmMyZWU4ZTQ2ODdhMmRiNjIwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q29jb2EubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0
ZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlY29n
bml0aW9uUmVzdWx0Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmg+CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTEsMTAgKzUyLDYgQEAKICNpbmNsdWRlIDxXZWJL
aXRBZGRpdGlvbnMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2FBZGRpdGlvbnMubW0+CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2ltcG9ydCA8V2ViQ29yZS9JbWFn
ZUV4dHJhY3Rpb25SZXN1bHQuaD4KLSNlbmRpZgotCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICNp
bXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMuaD4KQEAgLTY4NCwxNCArNjgxLDE0IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUV4dHJhY3Rp
b25EYXRhRGV0ZWN0b3JJbmZvPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mIGluZm8pCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6
ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlRleHRS
ZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYgaW5mbykKIHsKICAgICBlbmNvZGVyIDw8IGluZm8ucmVz
dWx0LmdldCgpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbz46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVy
LCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvJiByZXN1bHQpCitib29s
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6ZGVj
b2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
bkRhdGFEZXRlY3RvciYgcmVzdWx0KQogewogICAgIGF1dG8gc2Nhbm5lclJlc3VsdCA9IElQQzo6
ZGVjb2RlPEREU2Nhbm5lclJlc3VsdD4oZGVjb2RlciwgQFsgUEFMOjpnZXRERFNjYW5uZXJSZXN1
bHRDbGFzcygpIF0pOwogICAgIGlmICghc2Nhbm5lclJlc3VsdCkKQEAgLTcwMSw2ICs2OTgsNiBA
QCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9y
SW5mbz46OmRlY29kZVBsYXRmb3JtRGF0YQogICAgIHJldHVybiB0cnVlOwogfQogCi0jZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
IAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9J
bWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ltYWdl
RXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
NzdiNjU1ZmE5YzZjZjBmMWZmMDllYmNmYmE1ZjRlOTBmMTczMWFlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ltYWdl
RXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0KLSNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
ZW51bSBjbGFzcyBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQgOiB1aW50OF90IHsKLSAgICBO
b1RleHQsCi0gICAgVGV4dCwKLSAgICBEYXRhRGV0ZWN0b3IsCi19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ+IHsKLSAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJl
c3VsdCwKLSAgICAgICAgV2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4
dCwKLSAgICAgICAgV2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OlRleHQsCi0g
ICAgICAgIFdlYktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpEYXRhRGV0ZWN0b3IK
LSAgICA+OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RleHRSZWNv
Z25pdGlvblVwZGF0ZVJlc3VsdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVGV4dFJlY29nbml0
aW9uVXBkYXRlUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFhY2U0N2Q2YzVjOWUzMmYyNDIwZmVlYTVh
MjRiM2JmODMxMDRlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Rl
eHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIFRl
eHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3QgeworICAgIE5vVGV4dCwKKyAgICBU
ZXh0LAorICAgIERhdGFEZXRlY3RvciwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OlRl
eHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LAorICAgICAg
ICBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6Tm9UZXh0LAorICAgICAgICBX
ZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6VGV4dCwKKyAgICAgICAgV2ViS2l0
OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcgorICAgID47Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDA4Nzg4YzgyZjJhMzY2NmJkMTU1ZGZjM2U0NTZiMGJiZTUxMDJlNGEuLjkxZDIxZDhmMjM2YmQx
ODgzMmI1MGQyY2FkMzExY2M2ZjI0ODhjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTE2LDggKzExNiw4IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VFeHRyYWN0aW9uUmVzdWx0Lmg+Cisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFJlY29nbml0
aW9uUmVzdWx0Lmg+CiAjZW5kaWYKIAogLy8gRklYTUU6IFNlZW1zIGxpa2Ugd2UgY291bGQgdXNl
IHN0ZDo6dHVwbGUgdG8gY3V0IGRvd24gdGhlIGNvZGUgYmVsb3cgYSBsb3QhCkBAIC0zMjI1LDE3
ICszMjI1LDE3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OkFj
dGl2ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhCiAKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAotdm9pZCBBcmd1
bWVudENvZGVyPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYgaW5mbykK
K3ZvaWQgQXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJiBpbmZv
KQogewogICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVyLCBpbmZvKTsKICAgICBlbmNvZGVy
IDw8IGluZm8ubm9ybWFsaXplZFF1YWRzOwogfQogCi1zdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFj
dGlvbkRhdGFEZXRlY3RvckluZm8+IEFyZ3VtZW50Q29kZXI8SW1hZ2VFeHRyYWN0aW9uRGF0YURl
dGVjdG9ySW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorc3RkOjpvcHRpb25hbDxUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+IEFyZ3VtZW50Q29kZXI8VGV4dFJlY29nbml0aW9uRGF0
YURldGVjdG9yPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgSW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbyByZXN1bHQ7CisgICAgVGV4dFJlY29nbml0aW9uRGF0YURldGVj
dG9yIHJlc3VsdDsKICAgICBpZiAoIWRlY29kZVBsYXRmb3JtRGF0YShkZWNvZGVyLCByZXN1bHQp
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCkBAIC0zMjQ4LDYgKzMyNDgsNiBAQCBz
dGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+IEFyZ3VtZW50Q29k
ZXI8SW1hZ2VFeHRyYWN0aW9uRGF0YQogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAK
LSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZGFlODBmZjdkZDI1NDI4OTEyMWI0MTM0MGI3N2Qw
ZjljNGY1MDYyZC4uOTM5N2IzMjhhYjE1NmJmNmJiYjM4MTA1MDdkMTBmM2VhYzk1MDcxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTE1MCw3
ICsxNTAsNyBAQCBzdHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnM7CiBzdHJ1Y3QgRXhjZXB0aW9u
RGV0YWlsczsKIHN0cnVjdCBGb250QXR0cmlidXRlczsKIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRp
bmdzOwotc3RydWN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm87CitzdHJ1Y3QgVGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yOwogc3RydWN0IFJhd0ZpbGU7CiBzdHJ1Y3QgU2hhcmVE
YXRhOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CkBAIC04NDIsMTYgKzg0MiwxNiBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMOjpBY3RpdmVJbmZvPiB7CiB9OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlv
bkRhdGFEZXRlY3RvckluZm8mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz4gZGVjb2Rl
KERlY29kZXImKTsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
LCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvJik7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rv
cj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yJik7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gZGVj
b2RlKERlY29kZXImKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYpOworICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYs
IFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYpOwogfTsKIAotI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAK
IH0gLy8gbmFtZXNwYWNlIElQQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZjIzZDIxZWI4
M2FkNWQxZjQ0ODIyODI4MGY1ZmJjNjU0MDcwOTM4MS4uOGNmYzYwNzRkMDU2MmFhNTgyYzVjMGQy
MzQ4OGVlNjM2YjJjOWE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNzUsMTEgKzc1LDEx
IEBAIFBsYXRmb3JtL2NmL01vZHVsZUNGLmNwcAogUGxhdGZvcm0vY2xhc3NpZmllci9jb2NvYS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllckNvY29hLmNwcAogUGxhdGZvcm0vY2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKIAotUGxhdGZvcm0vY29j
b2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tCiBQbGF0Zm9ybS9jb2NvYS9MYXllckhvc3Rp
bmdDb250ZXh0Lm1tCiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
ci5tbQogUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlci5t
bQogUGxhdGZvcm0vY29jb2EvU2hhcmVkTWVtb3J5Q29jb2EuY3BwCitQbGF0Zm9ybS9jb2NvYS9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KIFBsYXRmb3JtL2NvY29hL1dLQ3Jhc2hSZXBvcnRl
ci5tbQogUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCiBQ
bGF0Zm9ybS9jb2NvYS9XZWJLaXRBZGRpdGlvbnMubW0gQG5vLXVuaWZ5CkBAIC00ODUsNyArNDg1
LDcgQEAgVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9XS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0KIFVJUHJvY2Vzcy9pb3Mv
V0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5tbQotVUlQcm9jZXNzL2lvcy9X
S0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tCitVSVByb2Nlc3MvaW9zL1dLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLS2V5Ym9hcmRT
Y3JvbGxpbmdBbmltYXRvci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIu
bW0KIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tCkBAIC01MjQsNyAr
NTI0LDYgQEAgVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQogVUlQcm9jZXNz
L21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2luZG93U2VydmVyQ29u
bmVjdGlvbi5tbQogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1t
Ci1VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0KIFVJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCiBVSVByb2Nlc3MvbWFj
L1dLUHJpbnRpbmdWaWV3Lm1tCiBVSVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5t
bQpAQCAtNTMyLDYgKzUzMSw3IEBAIFVJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tl
ckRlbGVnYXRlLm1tCiBVSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQogVUlQcm9j
ZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tW
aWV3TGF5b3V0U3RyYXRlZ3kubW0KK1VJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2aWV3
Q29udHJvbGxlci5tbQogCiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eUNvY29hLm1tCiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQppbmRleCBlZmNjNTM1NGNiZGI1OTE0OWEzMDQ2YmIz
NTMwMTVlMDRiNmJiNGQxLi5jMzdmYzg2OWQ4MmM3NGQxMDhmN2Q2ODczNGFhOTkyZjY5YmIzZGFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVu
dEFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxl
bWVudEFjdGlvbi5tbQpAQCAtMTYyLDE2ICsxNjIsMTYgQEAgKyAoaW5zdGFuY2V0eXBlKV9lbGVt
ZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgY3VzdG9tVGl0bGU6
KE4KICAgICAgICAgLy8gVGhpcyBhY3Rpb24gbXVzdCBzdGlsbCBleGlzdCBmb3IgY29tcGF0aWJp
bGl0eSwgYnV0IGRvZXNuJ3QgZG8gYW55dGhpbmcuCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
X1dLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb246Ci0jaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCi0gICAgICAgIHRpdGxlID0gV2ViQ29yZTo6bG9jYWxpemVkTlNTdHJpbmcoQCJH
ZXQgSW5mbyIpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgdGl0bGUgPSBX
RUJfVUlfU1RSSU5HKCJTaG93IFRleHQiLCAiVGl0bGUgZm9yIFNob3cgVGV4dCBhY3Rpb24gYnV0
dG9uIik7CiAgICAgICAgIGhhbmRsZXIgPSBeKFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKmFzc2lz
dGFudCwgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKICAgICAgICAgICAg
IFthc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOnR5cGUgZWxlbWVudDphY3Rp
b25JbmZvIG5lZWRzSW50ZXJhY3Rpb246WUVTXTsKICAgICAgICAgfTsKICNlbmRpZgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6Ci0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHRpdGxlID0gV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisg
ICAgICAgIHRpdGxlID0gV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKTsK
ICAgICAgICAgaGFuZGxlciA9IF4oV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqYXNzaXN0YW50LCBf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgewogICAgICAgICAgICAgW2Fzc2lz
dGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6dHlwZSBlbGVtZW50OmFjdGlvbkluZm8g
bmVlZHNJbnRlcmFjdGlvbjpZRVNdOwogICAgICAgICB9OwpAQCAtMjQ0LDE0ICsyNDQsMTQgQEAg
KyAoVUlJbWFnZSAqKWltYWdlRm9yRWxlbWVudEFjdGlvblR5cGU6KF9XS0VsZW1lbnRBY3Rpb25U
eXBlKWFjdGlvblR5cGUKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25Ub2dnbGVTaG93TGlua1By
ZXZpZXdzOgogICAgICAgICByZXR1cm4gbmlsOyAvLyBJbnRlbnRpb25hbGx5IGVtcHR5LgogICAg
IGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb246Ci0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHJldHVybiBbX1dLRWxlbWVudEFjdGlvbiBpbWFnZUZv
ckVsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisgICAgICAgIHJldHVybiBbVUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOkAidGV4dC52
aWV3ZmluZGVyIl07CiAjZWxzZQogICAgICAgICByZXR1cm4gbmlsOwogI2VuZGlmCiAgICAgY2Fz
ZSBfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlOgotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQotICAgICAgICByZXR1cm4gW19XS0VsZW1lbnRBY3Rpb24gaW1hZ2VGb3JFbGVtZW50
QWN0aW9uVHlwZVJldmVhbEltYWdlXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAg
ICAgIHJldHVybiBbVUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOkAiaW5mby5jaXJjbGUiXTsKICNl
bHNlCiAgICAgICAgIHJldHVybiBuaWw7CiAjZW5kaWYKQEAgLTM1OCwxMCArMzU4LDYgQEAgLSAo
VUlBY3Rpb24gKil1aUFjdGlvbkZvckVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWVsZW1lbnRJbmZvCiB9CiAjZW5kaWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUpCiAKLSNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL19XS0VsZW1l
bnRBY3Rpb25BZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KaW5kZXggN2Y1MzkwMzY1MDMwZmJmMmI0NWQyMTA2NmZlOThjOGFh
MzhhOWZlNy4uNTE2N2JkYjhhNTBhZjNkMzNlOTk3MWVmZTI4OGZiMmM2ODQwZWZmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0K
QEAgLTc5LDEwICs3OSw3IEBAIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdl
YkZpbHRlckV2YWx1YXRvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5Q29jb2FBZGRpdGlvbnNCZWZv
cmUubW0+Ci0jZW5kaWYKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisvLyBGSVhNRTog
VGhpcyBhZGRpdGlvbnMgZmlsZSBzaG91bGQgYmUgcmVuYW1lZCB0byBXZWJQYWdlUHJveHlBZGRp
dGlvbnMubW0uCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5QWRkaXRpb25z
Lmg+CiAjZWxzZQogI2RlZmluZSBXRUJfUEFHRV9QUk9YWV9BRERJVElPTlMKQEAgLTYxNSwxOCAr
NjEyLDE4IEBAIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFdlYlBhZ2VQcm94eTo6Y3Jl
YXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVJldmVhbElt
YWdlKCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCkK
IHsKICAgICBhdXRvJiByZXN1bHQgPSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2Vi
SGl0VGVzdFJlc3VsdERhdGEoKTsKICAgICBpZiAoIXJlc3VsdC5pbWFnZUJpdG1hcCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgcmV2ZWFsRXh0cmFjdGVkSW1hZ2VJblByZXZpZXdQYW5lbCgqcmVz
dWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IFVSTCB7IH0sIHJlc3Vs
dC5hYnNvbHV0ZUltYWdlVVJMIH0pOworICAgIHNob3dJbWFnZUluVmlzdWFsU2VhcmNoUHJldmll
d1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29sVGlwVGV4dCwgVVJMIHsgVVJM
IHsgfSwgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNp
ZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCA3ZWI3YjIzZjQ0NDI1NTZkYjg1ZmQwNTc3M2Uy
NDZkYThiOTliYThkLi5iYmM2ODNhYzA3MTUxMzhhNjAxZjhkODU3OTZiOTAxZmRjMTcwYjJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU1LDYg
KzU1LDcgQEAgT0JKQ19DTEFTUyBOU01lbnU7CiBPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4
dDsKIE9CSkNfQ0xBU1MgTlNWaWV3OwogT0JKQ19DTEFTUyBRTFByZXZpZXdQYW5lbDsKK09CSkNf
Q0xBU1MgVktJbWFnZUFuYWx5emVyOwogT0JKQ19DTEFTUyBXS0FjY2Vzc2liaWxpdHlTZXR0aW5n
c09ic2VydmVyOwogT0JKQ19DTEFTUyBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7CiBPQkpD
X0NMQVNTIFdLRE9NUGFzdGVNZW51RGVsZWdhdGU7CkBAIC04NCwxMCArODUsNiBAQCBPQkpDX0NM
QVNTIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyOwogT0JKQ19DTEFTUyBXS1BERkhVRFZpZXc7
CiAjZW5kaWYKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRB
ZGRpdGlvbnMvV2ViVmlld0ltcGxBZGRpdGlvbnNCZWZvcmUuaD4KLSNlbmRpZgotCiBuYW1lc3Bh
Y2UgQVBJIHsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBPYmplY3Q7CkBAIC05OSwxNCAr
OTYsMTEgQEAgY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlOwogY2xhc3MgSW50UG9pbnQ7CiBz
dHJ1Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTDsKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7CiAKICNpZiBIQVZFKFRSQU5TTEFU
SU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIHN0cnVjdCBUcmFuc2xh
dGlvbkNvbnRleHRNZW51SW5mbzsKICNlbmRpZgotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCi1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uUmVzdWx0OwotI2VuZGlmCiB9CiAKIEBwcm90b2Nv
bCBXZWJWaWV3SW1wbERlbGVnYXRlCkBAIC02MDIsOSArNTk2LDkgQEAgcHVibGljOgogICAgIHZv
aWQgZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcoKTsKICAgICBib29sIHNob3VsZFJl
cXVlc3RDYW5kaWRhdGVzKCkgY29uc3Q7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
LSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpOwotICAgIHZvaWQgY29t
cHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYg
aW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKKyAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3Qg
VVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+
JiYpOworICAgIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBp
bWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAogICAgIGJvb2wgYWNjZXB0c1ByZXZpZXdQYW5lbENv
bnRyb2woUUxQcmV2aWV3UGFuZWwgKik7CkBAIC03NTMsNiArNzQ3LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZW5kRHJhZ0VuZFRvUGFnZShDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRp
b24pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgVktJbWFnZUFu
YWx5emVyICplbnN1cmVJbWFnZUFuYWx5emVyKCk7CisjZW5kaWYKKwogICAgIFdlYWtPYmpDUHRy
PE5TVmlldzxXZWJWaWV3SW1wbERlbGVnYXRlPj4gbV92aWV3OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7CiAgICAgUmVmPFdlYlBhZ2VQcm94eT4gbV9wYWdl
OwpAQCAtOTAwLDggKzg5OCw5IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdLUmV2ZWFsSXRl
bVByZXNlbnRlcj4gbV9yZXZlYWxJdGVtUHJlc2VudGVyOwogI2VuZGlmCiAKLSNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlZpZXdJbXBsQWRk
aXRpb25zQWZ0ZXIuaD4KKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgUmVmUHRyPFdv
cmtRdWV1ZT4gbV9pbWFnZUFuYWx5emVyUXVldWU7CisgICAgUmV0YWluUHRyPFZLSW1hZ2VBbmFs
eXplcj4gbV9pbWFnZUFuYWx5emVyOwogI2VuZGlmCiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBjM2ZhNmNhZTMzYzUzOGMxMWUz
MDk3MTQzOGI3NDA5NTZlMDI3MDI2Li5lMzIyMjFjMzUyNGE4YzY2MmNjMGFjODQ4NDdiMTg4Yjlj
YzQ2M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXJTdGF0ZS5oIgorI2ltcG9ydCAi
VGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJVSUdhbWVwYWRQcm92aWRlci5oIgogI2ltcG9y
dCAiVW5kb09yUmVkby5oIgpAQCAtNjAsNyArNjEsNiBAQAogI2ltcG9ydCAiV0tFZGl0Q29tbWFu
ZC5oIgogI2ltcG9ydCAiV0tFcnJvckludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLmgiCi0jaW1wb3J0ICJXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250
cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBv
cnQgIldLTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldLUERGSFVEVmlldy5oIgpAQCAtNzAsNiAr
NzAsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLU2hhcmVTaGVldC5oPgogI2ltcG9ydCAiV0tUZXh0
SW5wdXRXaW5kb3dDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1ZpZXdMYXlvdXRTdHJhdGVneS5o
IgorI2ltcG9ydCAiV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAi
V0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV2ViQmFja0ZvcndhcmRMaXN0Lmg+CkBAIC05OCw3ICs5OSw2IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmli
dXRlQ2hhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgotI2ltcG9y
dCA8V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5
cHJlc3NDb21tYW5kLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvYWRlck5TVVJMRXh0cmFzLmg+CkBAIC0xMDgsNiArMTA4
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNv
cmUvUHJvbWlzZWRBdHRhY2htZW50SW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJu
YXRpdmVXaXRoUmFuZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlY29nbml0aW9uUmVzdWx0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oPgpAQCAtMTQ1LDYgKzE0Niwx
MiBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyNpbXBvcnQgPFZpc2lvbktpdENv
cmUvVktJbWFnZUFuYWx5c2lzX1dlYktpdC5oPgorI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0lt
YWdlQW5hbHl6ZXIuaD4KKyNpbXBvcnQgPFZpc2lvbktpdENvcmUvVktRdWFkLmg+CisjZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJW
SUNFUykKICNpbXBvcnQgPFRyYW5zbGF0aW9uVUlTZXJ2aWNlcy9MVFVJVHJhbnNsYXRpb25WaWV3
Q29udHJvbGxlci5oPgogCkBAIC0xODIsOSArMTg5LDg1IEBAIC0gKHZvaWQpc2V0Q2FuU2hvd01l
ZGlhU2VsZWN0aW9uQnV0dG9uOihCT09MKWNhblNob3dNZWRpYVNlbGVjdGlvbkJ1dHRvbjsKIEBl
bmQKICNlbmRpZgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktp
dEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFkZGl0aW9ucy5tbT4KLSNlbmRpZgorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKFZp
c2lvbktpdENvcmUpCitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoVmlzaW9uS2l0Q29yZSwgVktJ
bWFnZUFuYWx5emVyKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFZpc2lvbktpdENvcmUsIFZL
SW1hZ2VBbmFseXplclJlcXVlc3QpCisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIDxyZGFy
Oi8vNzI0ODA0NTk+IGlzIGluIHRoZSBTREsuCitAaW50ZXJmYWNlIFZLSW1hZ2VBbmFseXplclJl
cXVlc3QgKFN0YWdpbmdfNzI0ODA0NTkpCitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVUkwgKmlt
YWdlVVJMOworQHByb3BlcnR5IChub25hdG9taWMpIE5TVVJMICpwYWdlVVJMOworQGVuZAorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworVktJbWFnZUFuYWx5emVyICpXZWJWaWV3SW1wbDo6ZW5zdXJl
SW1hZ2VBbmFseXplcigpCit7CisgICAgaWYgKCFtX2ltYWdlQW5hbHl6ZXIpIHsKKyAgICAgICAg
bV9pbWFnZUFuYWx5emVyUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiV2ViS2l0IGltYWdlIGFu
YWx5emVyIHF1ZXVlIik7CisgICAgICAgIG1faW1hZ2VBbmFseXplciA9IGFkb3B0TlMoW2FsbG9j
VktJbWFnZUFuYWx5emVySW5zdGFuY2UoKSBpbml0XSk7CisgICAgICAgIFttX2ltYWdlQW5hbHl6
ZXIgc2V0Q2FsbGJhY2tRdWV1ZTptX2ltYWdlQW5hbHl6ZXJRdWV1ZS0+ZGlzcGF0Y2hRdWV1ZSgp
XTsKKyAgICB9CisgICAgcmV0dXJuIG1faW1hZ2VBbmFseXplci5nZXQoKTsKK30KKworc3RhdGlj
IFJldGFpblB0cjxWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0PiBjcmVhdGVJbWFnZUFuYWx5c2lzUmVx
dWVzdChDR0ltYWdlUmVmIGltYWdlLCBjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBVUkwmIHBh
Z2VVUkwsIFZLQW5hbHlzaXNUeXBlcyB0eXBlcykKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9w
dE5TKFthbGxvY1ZLSW1hZ2VBbmFseXplclJlcXVlc3RJbnN0YW5jZSgpIGluaXRXaXRoQ0dJbWFn
ZTppbWFnZSBvcmllbnRhdGlvbjpWS0ltYWdlT3JpZW50YXRpb25VcCByZXF1ZXN0VHlwZTp0eXBl
c10pOworICAgIFtyZXF1ZXN0IHNldEltYWdlVVJMOmltYWdlVVJMXTsKKyAgICBbcmVxdWVzdCBz
ZXRQYWdlVVJMOnBhZ2VVUkxdOworICAgIHJldHVybiByZXF1ZXN0OworfQorCit2b2lkIFdlYlZp
ZXdJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0
IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCit7Cisg
ICAgaWYgKCFpc0xpdmVUZXh0RW5hYmxlZCgpKSB7CisgICAgICAgIGNvbXBsZXRpb24oeyB9KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBTaGFyZWFi
bGVCaXRtYXA6OmNyZWF0ZShpbWFnZURhdGEpOworICAgIGlmICghaW1hZ2VCaXRtYXApIHsKKyAg
ICAgICAgY29tcGxldGlvbih7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAtPm1ha2VDR0ltYWdlKCk7CisgICAgYXV0byByZXF1ZXN0
ID0gY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3QoY2dJbWFnZS5nZXQoKSwgaW1hZ2VVUkwsIFtO
U1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6bV9wYWdlLT5jdXJyZW50VVJMKCldLCBWS0FuYWx5
c2lzVHlwZVRleHQpOworICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7
CisgICAgW2Vuc3VyZUltYWdlQW5hbHl6ZXIoKSBwcm9jZXNzUmVxdWVzdDpyZXF1ZXN0LmdldCgp
IHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21w
bGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgc3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5c2lz
ICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxv
b3AoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQgPSBtYWtlVGV4dFJl
Y29nbml0aW9uUmVzdWx0KGFuYWx5c2lzKSwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIFJFTEVBU0VfTE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAl
LjBmIG1zIChmb3VuZCB0ZXh0PyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRp
bWUpLm1pbGxpc2Vjb25kcygpLCAhcmVzdWx0LmlzRW1wdHkoKSk7CisgICAgICAgICAgICBjb21w
bGV0aW9uKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgIH0pOworICAgIH0pLmdldCgpXTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3Qg
VVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQoreworICAgIGlmICghaXNMaXZlVGV4dEVu
YWJsZWQoKSkgeworICAgICAgICBjb21wbGV0aW9uKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gY2dJbWFnZSA9IGltYWdlQml0bWFwLm1ha2VDR0ltYWdlKCk7Cisg
ICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3QoY2dJbWFnZS5nZXQo
KSwgaW1hZ2VVUkwsIFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6bV9wYWdlLT5jdXJyZW50
VVJMKCldLCBWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaCk7CisgICAgYXV0byBzdGFydFRpbWUg
PSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBbZW5zdXJlSW1hZ2VBbmFseXplcigpIHByb2Nl
c3NSZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFu
ZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCBzdGFy
dFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICopIG11dGFibGUgewor
ICAgICAgICBCT09MIHJlc3VsdCA9IFthbmFseXNpcyBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBl
czpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaF07CisgICAgICAgIENGUnVuTG9vcFBlcmZvcm1C
bG9jayhDRlJ1bkxvb3BHZXRNYWluKCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZilOU0V2ZW50VHJh
Y2tpbmdSdW5Mb29wTW9kZSwgbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21w
bGV0aW9uKSwgcmVzdWx0LCBzdGFydFRpbWVdICgpIG11dGFibGUgeworICAgICAgICAgICAgUkVM
RUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKGZv
dW5kIHZpc3VhbCBzZWFyY2ggcmVzdWx0cz8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0g
c3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIGNvbXBsZXRp
b24ocmVzdWx0KTsKKyAgICAgICAgfSkuZ2V0KCkpOworICAgICAgICBDRlJ1bkxvb3BXYWtlVXAo
Q0ZSdW5Mb29wR2V0TWFpbigpKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBAaW50ZXJmYWNl
IFdLQWNjZXNzaWJpbGl0eVNldHRpbmdzT2JzZXJ2ZXIgOiBOU09iamVjdCB7CiAgICAgV2ViS2l0
OjpXZWJWaWV3SW1wbCAqX2ltcGw7CkBAIC01NzE3LDggKzU4MDAsOCBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFdlYkNvcmU6OlRyYW5zbGF0
aW9uQ29udGV4dAogCiBib29sIFdlYlZpZXdJbXBsOjphY2NlcHRzUHJldmlld1BhbmVsQ29udHJv
bChRTFByZXZpZXdQYW5lbCAqKQogewotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
IHJldHVybiAhIW1fcGFnZS0+aW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIoKTsKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgcmV0dXJuICEhbV9wYWdlLT52aXN1YWxTZWFy
Y2hQcmV2aWV3Q29udHJvbGxlcigpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlNzIyYjQwM2E3N2QzZmFmZDgz
NmMyOGRkZmNlNmFlOGIzNGI1ZDc4Li44NzcwYWQ0NjM4MTZiZmVmNGM0YTk5Mzc0NjUzOWUwMmQy
MWNkNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC02Miw4ICs2Miw4
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0Lmg+CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+CiAjZW5kaWYKIAogT0JKQ19DTEFTUyBDQUxheWVy
OwpAQCAtNTM4LDkgKzUzOCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkRhdGFP
d25lclR5cGUgZGF0YU93bmVyRm9yUGFzdGVib2FyZChQYXN0ZWJvYXJkQWNjZXNzSW50ZW50KSBj
b25zdCB7IHJldHVybiBXZWJDb3JlOjpEYXRhT3duZXJUeXBlOjpVbmRlZmluZWQ7IH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJ
bWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKHsgfSk7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYsIFNo
YXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bikgeyBjb21wbGV0aW9uKGZhbHNlKTsgfQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJM
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9u
KSB7IGNvbXBsZXRpb24oeyB9KTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSGFzVmlzdWFs
U2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFyZWFibGVCaXRtYXAmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pIHsgY29tcGxldGlvbihmYWxzZSk7IH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShV
SUNPTlRFWFRNRU5VKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggMGE5MTYyN2ZjYTIyZDQxZDAyZjk1ZTVkZmRlYzlmYWZlNGY0NjNjNy4uMzVmYzk0YmZkNGUx
NGJhMzNjZDY3YmE0YzZlNzg3ZjM2MTcwOWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC02Niw3ICs2Niw2IEBACiAjaW5jbHVkZSAiRXZlbnREaXNwYXRj
aGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkZyYW1lSW5mb0RhdGEuaCIKLSNpbmNsdWRlICJJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQu
aCIKICNpbmNsdWRlICJMZWdhY3lHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkxvYWRQYXJh
bWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtOTQsNiArOTMsNyBAQAogI2luY2x1
ZGUgIlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2Vy
LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdC5oIgogI2luY2x1ZGUgIlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiVW5kb09yUmVkby5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCIKQEAgLTY4OTYsOSArNjg5Niw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVt
KQogICAgICAgICArK21fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50OwogICAg
ICAgICBicmVhazsKIAotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6Ci0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIGhhbmRsZUNvbnRleHRNZW51UmV2
ZWFsSW1hZ2UoKTsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgorI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgaGFuZGxlQ29udGV4dE1lbnVMb29rVXBJ
bWFnZSgpOwogI2VuZGlmCiAgICAgICAgIHJldHVybjsKIApAQCAtODQ4NiwyNSArODQ4NiwyNSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZgogI2VuZGlmCiAKIAotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29u
c3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0
YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQm
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQordm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVS
TCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgcGFnZUNsaWVudCgpLnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oaW1h
Z2VVUkwsIGltYWdlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBhZ2VD
bGllbnQoKS5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGltYWdlVVJMLCBpbWFnZURhdGEsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbXB1dGVD
YW5SZXZlYWxJbWFnZShjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdl
Qml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCit2b2lk
IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBp
bWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlQ2Fu
UmV2ZWFsSW1hZ2UoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsK
KyAgICBwYWdlQ2xpZW50KCkuY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkws
IGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0
JiYgcmVzdWx0cywgY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9p
bnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0cmFjdGlvblVwZGF0
ZVJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRl
V2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChUZXh0UmVjb2duaXRpb25SZXN1bHQmJiByZXN1bHRz
LCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRp
b24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpO
b1RleHQpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihUZXh0UmVjb2duaXRpb25VcGRhdGVS
ZXN1bHQ6Ok5vVGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1
bHQoV1RGTW92ZShyZXN1bHRzKSwgY29udGV4dCwgbG9jYXRpb24pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpV
cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUocmVzdWx0cyksIGNvbnRleHQs
IGxvY2F0aW9uKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjQ1OGI4ODFlYjI4ZmY1ODJl
ZmYzNGJiN2Q4ZDZkNGNmZWJiZGY2OS4uNmQwNWQ2ZmM3OTA4ZTRiMmRiODVhNjQyM2M0ZmNlNjk2
NjYwMGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIzMSw2
ICsyMzEsNyBAQCBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZlczsKIE9CSkNfQ0xBU1MgTlNW
aWV3OwogT0JKQ19DTEFTUyBRTFByZXZpZXdQYW5lbDsKIE9CSkNfQ0xBU1MgV0tRTFRodW1ibmFp
bExvYWRPcGVyYXRpb247CitPQkpDX0NMQVNTIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xs
ZXI7CiBPQkpDX0NMQVNTIFdLV2ViVmlldzsKIE9CSkNfQ0xBU1MgX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnk7CiAjZW5kaWYKQEAgLTI5NywxMyArMjk4LDEwIEBAIHN0cnVjdCBTaGFyZURhdGE7CiBz
dHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsKIHN0cnVjdCBUZXh0QWx0ZXJuYXRpdmVXaXRo
UmFuZ2U7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Oworc3RydWN0IFRleHRSZWNvZ25pdGlv
blJlc3VsdDsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVy
ZXM7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rp
b25SZXN1bHQ7Ci0jZW5kaWYKLQogI2lmIEhBVkUoUEFTVEVCT0FSRF9EQVRBX09XTkVSKQogZW51
bSBjbGFzcyBEYXRhT3duZXJUeXBlIDogdWludDhfdDsKICNlbmRpZgpAQCAtNDA3LDcgKzQwNSw3
IEBAIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBvcHVwSXRlbTsK
IHN0cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsKIAotZW51bSBjbGFzcyBJbWFnZUV4dHJh
Y3Rpb25VcGRhdGVSZXN1bHQgOiB1aW50OF90OworZW51bSBjbGFzcyBUZXh0UmVjb2duaXRpb25V
cGRhdGVSZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBOZWdvdGlhdGVkTGVnYWN5VExTIDog
Ym9vbDsKIGVudW0gY2xhc3MgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCA6IGJvb2w7CiBl
bnVtIGNsYXNzIFVuZG9PclJlZG8gOiBib29sOwpAQCAtMTY2NCwxMCArMTY2MiwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBib29sIG1heVByb21w
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQotICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdl
VVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJik7Ci0gICAg
dm9pZCB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6OkltYWdlRXh0cmFj
dGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0
cmFjdGlvblVwZGF0ZVJlc3VsdCk+JiYpOwotICAgIHZvaWQgY29tcHV0ZUNhblJldmVhbEltYWdl
KGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
KyAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpOworICAgIHZvaWQgdXBk
YXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1
bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25V
cGRhdGVSZXN1bHQpPiYmKTsKKyAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRz
KGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCkBAIC0xOTExLDgg
KzE5MDksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc3BhdGNoV2hlZWxFdmVudFdpdGhvdXRT
Y3JvbGxpbmcoY29uc3QgV2ViV2hlZWxFdmVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShDT05URVhU
X01FTlVTKQotICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgpOworI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgdm9pZCBo
YW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCk7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQp
CkBAIC0xOTQ0LDYgKzE5NDIsMTAgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1J1bm5pbmdNb2Rh
bEphdmFTY3JpcHREaWFsb2coKSBjb25zdCB7IHJldHVybiBtX2lzUnVubmluZ01vZGFsSmF2YVNj
cmlwdERpYWxvZzsgfQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBQTEFURk9STShN
QUMpCisgICAgV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciAqdmlzdWFsU2VhcmNoUHJl
dmlld0NvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyLmdldCgpOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFn
ZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYm
KTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMjQ5Miw2ICsyNDk0LDEwIEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHJ1bk1vZGFsSmF2YVNjcmlwdERpYWxvZyhSZWZQdHI8V2Vi
RnJhbWVQcm94eT4mJiwgRnJhbWVJbmZvRGF0YSYmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSosIEZyYW1l
SW5mb0RhdGEmJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKT4m
Jik7CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIFBMQVRGT1JNKE1BQykKKyAgICB2
b2lkIHNob3dJbWFnZUluVmlzdWFsU2VhcmNoUHJldmlld1BhbmVsKFNoYXJlYWJsZUJpdG1hcCYg
aW1hZ2VCaXRtYXAsIGNvbnN0IFN0cmluZyYgdG9vbHRpcCwgY29uc3QgVVJMJiBpbWFnZVVSTCk7
CisjZW5kaWYKKwogICAgIGNvbnN0IElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIG1fd2ViUGFnZUlEOwogICAgIFdlYWtQdHI8UGFnZUNsaWVudD4g
bV9wYWdlQ2xpZW50OwpAQCAtMzA0Miw2ICszMDQ4LDEwIEBAIHByaXZhdGU6CiAjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlB
ZGRpdGlvbnNBZnRlci5oPgogI2VuZGlmCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYm
IFBMQVRGT1JNKE1BQykKKyAgICBSZXRhaW5QdHI8V0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJv
bGxlcj4gbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcjsKKyNlbmRpZgogfTsKIAogI2lm
ZGVmIF9fT0JKQ19fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggNzBhYWYwNzBkMzY3NzhlYjE5YjdlOWJlY2I5M2VkYzVkZmVkNWZm
OC4uYWIzMjQ4MTFlMTY4NjJkNGVhYjFlOGM2ZWZkMDE4M2Y5YzY0YjhkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjI0LDgg
KzIyNCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ29tcG9zaXRpb25XYXND
YW5jZWxlZCgpCiAgICAgU2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rp
b24oYm9vbCBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdlcykKIAotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQotICAgIFJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oVVJMIGltYWdlVVJMLCBXZWJL
aXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlRGF0YSkgLT4gKHN0cnVjdCBXZWJDb3Jl
OjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYworI2lmIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKKyAgICBSZXF1ZXN0VGV4dFJlY29nbml0aW9uKFVSTCBpbWFnZVVSTCwgV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZURhdGEpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6
VGV4dFJlY29nbml0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICNlbmRpZgogCiAjaWYgSEFWRShU
UkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDI2Yjc0
MTI2ZWYzYzgwMzZkMTkzMDhjNjcxYWJhNTA4OTlhMDlhZjkuLjA4ZjI0OTc4ZDFhMDAxMjk2MzRh
ODJiNzYxNzZmYTc4YWMxMjU0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMjAsOCArMTIwLDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRvbmVEZWZlcnJpbmdUb3VjaEVuZChib29sIHByZXZlbnROYXRpdmVHZXN0dXJlcykgb3Zl
cnJpZGU7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZvaWQg
cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJikgZmluYWw7CisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGlt
YWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJikgZmlu
YWw7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBN
ZW51UHJveHkoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggYmFkYmVmYjZjY2I1NjM0YWZl
YmU4YTEyNmI5YTc4OWE1YjIzN2E3Yy4uNTZiMzI1OTg3MDhkYmFjODkxNTYzMzZkYzEyZWYyZDE5
NGQ1OTdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQpAQCAtNDY1LDE0ICs0NjUsMTQgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9u
ZURlZmVycmluZ1RvdWNoRW5kKGJvb2wgcHJldmVudE5hdGl2ZUdlc3R1cmVzKQogCiAjZW5kaWYg
Ly8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJl
cXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYgY29tcGxldGlvbikKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYgY29tcGxldGlvbikKIHsKLSAg
ICBbbV9jb250ZW50VmlldyByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uOmltYWdlVVJMIGltYWdlRGF0
YTppbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uKV07CisgICAg
W21fY29udGVudFZpZXcgcmVxdWVzdFRleHRSZWNvZ25pdGlvbjppbWFnZVVSTCBpbWFnZURhdGE6
aW1hZ2VEYXRhIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbildOwogfQogCi0j
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQogCiAjaWYgSEFWRShQQVNURUJPQVJEX0RBVEFfT1dORVIpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmlu
ZGV4IDQzYTQ3MzQ1OTAzOGY3MjBkOThhZjMwMTFjNDAxZTkyMTMxZjk5MjcuLjZlOGVlM2RhMzA5
MmVhYTJhNzQ0NzZlNTZjZTM1MTM2Njk3OTRmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtNzksMTEgKzc5LDEx
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBlKTsKIC0g
KHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnREaWREaXNtaXNzQ29udGV4dE1lbnU6KFdLQWN0aW9u
U2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CiAjZW5kaWYKIC0gKHZvaWQpYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hhcmVFbGVtZW50
V2l0aEltYWdlOihVSUltYWdlICopaW1hZ2UgcmVjdDooQ0dSZWN0KWJvdW5kaW5nUmVjdDsKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLS0gKEJPT0wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6
KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZUltYWdlRXh0
cmFjdGlvbkFjdGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVu
dDsKLS0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
Kilhc3Npc3RhbnQgaGFuZGxlSW1hZ2VFeHRyYWN0aW9uOihVSUltYWdlICopaW1hZ2UgaW1hZ2VV
Ukw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VCb3VuZHM6
KENHUmVjdClpbWFnZUJvdW5kczsKLS0gKEJPT0wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZVJldmVhbEltYWdlQWN0
aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50OwotLSAodm9p
ZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dCBoYW5kbGVSZXZlYWxJbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWlt
YWdlVVJMIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlQm91bmRzOihDR1JlY3QpaW1hZ2VC
b3VuZHM7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorLSAoQk9PTClhY3Rpb25TaGVldEFz
c2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG91bGRJbmNsdWRl
U2hvd1RleHRBY3Rpb25Gb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnQ7CistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50
ICopYXNzaXN0YW50IHNob3dUZXh0Rm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDoo
TlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dS
ZWN0KWltYWdlQm91bmRzOworLSAoQk9PTClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25T
aGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25G
b3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQ7CistICh2b2lkKWFj
dGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGxv
b2tVcEltYWdlOihVSUltYWdlICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0
bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kczsKICNl
bmRpZgogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tB
Y3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Fj
dGlvblNoZWV0QXNzaXN0YW50Lm1tCmluZGV4IGQxOGQzNWEwMzhhZjM4N2QxZjQ1MGRiZmE5NDAy
M2U0NWVmODA3ZGIuLmUwN2U4YzNjZWI4YTc5MGNkYmUxMDNjNTgwMGQ1YjJhNDkzNzgwNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0
YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNz
aXN0YW50Lm1tCkBAIC01NjgsMTEgKzU2OCwxMSBAQCAtIChSZXRhaW5QdHI8TlNBcnJheTxfV0tF
bGVtZW50QWN0aW9uICo+PilkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdAog
ICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVt
ZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVTaGFyZSBhc3Npc3RhbnQ6c2Vs
Zl1dOwogICAgIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKICAgICBpZiAoZWxlbWVudEluZm8udHlwZSA9PSBfV0tBY3RpdmF0ZWRF
bGVtZW50VHlwZUltYWdlIHx8IFtlbGVtZW50SW5mbyBpbWFnZV0pIHsKLSAgICAgICAgaWYgKFtf
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFu
dDpzaG91bGRJbmNsdWRlSW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2Rl
bGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVkZUltYWdlRXh0cmFj
dGlvbkFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQorICAgICAgICBpZiAoW19kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3Vs
ZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25T
aGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6
ZWxlbWVudEluZm9dKQogICAgICAgICAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dL
RWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBl
SW1hZ2VFeHRyYWN0aW9uIGFzc2lzdGFudDpzZWxmXV07Ci0gICAgICAgIGlmIChbX2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxk
SW5jbHVkZVJldmVhbEltYWdlQWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlv
blNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVkZVJldmVhbEltYWdlQWN0aW9uRm9yRWxl
bWVudDplbGVtZW50SW5mb10pCisgICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZUxvb2tVcElt
YWdlQWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50
OnNlbGYgc2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5m
b10pCiAgICAgICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0
aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFn
ZSBhc3Npc3RhbnQ6c2VsZl1dOwogICAgIH0KICNlbmRpZgpAQCAtNjAwLDEwICs2MDAsMTAgQEAg
LSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNG
b3JJbWFnZVNoZWV0OihfV0tBY3RpdmEKIAogICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6
W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9u
VHlwZUNvcHkgYXNzaXN0YW50OnNlbGZdXTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQotICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9u
U2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZUltYWdlRXh0cmFjdGlvbkFjdGlvbkZvckVsZW1l
bnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1
ZGVJbWFnZUV4dHJhY3Rpb25BY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlU2hvd1RleHRBY3Rp
b25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBz
aG91bGRJbmNsdWRlU2hvd1RleHRBY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKICAgICAg
ICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFj
dGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uIGFzc2lzdGFu
dDpzZWxmXV07Ci0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JF
bGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJ
bmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKKyAgICBpZiAo
W19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0
YW50OnNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxl
Z2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFj
dGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQogICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRk
T2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVu
dEFjdGlvblR5cGVSZXZlYWxJbWFnZSBhc3Npc3RhbnQ6c2VsZl1dOwogI2VuZGlmCiAKQEAgLTEw
MjMsMTMgKzEwMjMsMTMgQEAgLSAodm9pZCloYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9X
S0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgZWxlbWVudDooX1dLQWN0aXYKICAgICAgICAgfQogICAg
ICAgICBicmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9u
OgotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgICAgICBbZGVsZWdhdGUgYWN0aW9u
U2hlZXRBc3Npc3RhbnQ6c2VsZiBoYW5kbGVJbWFnZUV4dHJhY3Rpb246ZWxlbWVudC5pbWFnZSBp
bWFnZVVSTDplbGVtZW50LmltYWdlVVJMIHRpdGxlOmVsZW1lbnQudGl0bGUgaW1hZ2VCb3VuZHM6
ZWxlbWVudC5ib3VuZGluZ1JlY3RdOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAg
ICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvd1RleHRGb3JJbWFnZTpl
bGVtZW50LmltYWdlIGltYWdlVVJMOmVsZW1lbnQuaW1hZ2VVUkwgdGl0bGU6ZWxlbWVudC50aXRs
ZSBpbWFnZUJvdW5kczplbGVtZW50LmJvdW5kaW5nUmVjdF07CiAjZW5kaWYKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlOgotI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQotICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3Rh
bnQ6c2VsZiBoYW5kbGVSZXZlYWxJbWFnZTplbGVtZW50LmltYWdlIGltYWdlVVJMOmVsZW1lbnQu
aW1hZ2VVUkwgdGl0bGU6ZWxlbWVudC50aXRsZSBpbWFnZUJvdW5kczplbGVtZW50LmJvdW5kaW5n
UmVjdF07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICBbZGVsZWdhdGUgYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBsb29rVXBJbWFnZTplbGVtZW50LmltYWdlIGltYWdlVVJM
OmVsZW1lbnQuaW1hZ2VVUkwgdGl0bGU6ZWxlbWVudC50aXRsZSBpbWFnZUJvdW5kczplbGVtZW50
LmJvdW5kaW5nUmVjdF07CiAjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaAppbmRleCBhZWI0NDQyOTBkYjY3NjUyODgzZGEwMGU1NTNmZmExYzZlNDc5YjQyLi40
MTNjYTRlZTFkNjhlODJmNjljNmM5YjE1OGUwNDI5NjEwMDlmYzBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBA
IC04Nyw2ICs4Nyw3IEBAIHN0cnVjdCBDb250YWN0SW5mbzsKIHN0cnVjdCBDb250YWN0c1JlcXVl
c3REYXRhOwogc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiBzdHJ1Y3QgU2hhcmVEYXRh
V2l0aFBhcnNlZFVSTDsKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7CiBlbnVtIGNsYXNz
IERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb3VzZUV2ZW50
UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhf
dDsKQEAgLTk1LDEwICs5Niw2IEBAIGVudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFu
aW1hdGlvbiA6IHVpbnQ4X3Q7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0cnVjdCBEcmFn
SXRlbTsKICNlbmRpZgotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi1zdHJ1Y3QgSW1h
Z2VFeHRyYWN0aW9uUmVzdWx0OwotI2VuZGlmCiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
MTM5LDkgKzEzNiwxMiBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAjZW5kaWYKICNlbmRpZgogCi0j
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNCZWZvcmUuaD4KLSNlbmRpZgorI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKK0BjbGFzcyBRTFByZXZpZXdDb250cm9sbGVyOworQGNsYXNzIFZL
SW1hZ2VBbmFseXplcjsKK0BjbGFzcyBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplcjsK
KworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogdHlwZWRlZiB2b2lkICheVUlX
S0F1dG9jb3JyZWN0aW9uQ29tcGxldGlvbkhhbmRsZXIpKFVJV0tBdXRvY29ycmVjdGlvblJlY3Rz
ICpyZWN0c0ZvcklucHV0KTsKIHR5cGVkZWYgdm9pZCAoXlVJV0tBdXRvY29ycmVjdGlvbkNvbnRl
eHRIYW5kbGVyKShVSVdLQXV0b2NvcnJlY3Rpb25Db250ZXh0ICphdXRvY29ycmVjdGlvbkNvbnRl
eHQpOwpAQCAtMTUyLDEyICsxNTIsMTYgQEAgdHlwZWRlZiB2b2lkICheVUlXS1NlbGVjdGlvbldp
dGhEaXJlY3Rpb25Db21wbGV0aW9uSGFuZGxlcikoQk9PTCBzZWxlY3Rpb25FbmRJc00KIHR5cGVk
ZWYgQmxvY2tQdHI8dm9pZChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
KT4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkNhbGxiYWNrOwogdHlwZWRlZiBzdGQ6OnBhaXI8V2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCwgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkNhbGxiYWNrPiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdEFuZENhbGxiYWNrOwogCi0j
aWYgIWRlZmluZWQoRk9SX0VBQ0hfQURESVRJT05BTF9XS0NPTlRFTlRWSUVXX0FDVElPTikKLSNk
ZWZpbmUgRk9SX0VBQ0hfQURESVRJT05BTF9XS0NPTlRFTlRWSUVXX0FDVElPTihNKQorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyNkZWZpbmUgRk9SX0VBQ0hfSU5TRVJUX1RFWFRfRlJPTV9D
QU1FUkFfV0tDT05URU5UVklFV19BQ1RJT04oTSkgXAorICAgIE0oX2luc2VydFRleHRGcm9tQ2Ft
ZXJhKSBcCisgICAgTShjYXB0dXJlVGV4dEZyb21DYW1lcmEpIFwKKyNlbHNlCisjZGVmaW5lIEZP
Ul9FQUNIX0lOU0VSVF9URVhUX0ZST01fQ0FNRVJBX1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pCiAj
ZW5kaWYKIAogI2RlZmluZSBGT1JfRUFDSF9XS0NPTlRFTlRWSUVXX0FDVElPTihNKSBcCi0gICAg
Rk9SX0VBQ0hfQURESVRJT05BTF9XS0NPTlRFTlRWSUVXX0FDVElPTihNKSBcCisgICAgRk9SX0VB
Q0hfSU5TRVJUX1RFWFRfRlJPTV9DQU1FUkFfV0tDT05URU5UVklFV19BQ1RJT04oTSkgXAogICAg
IE0oX2FkZFNob3J0Y3V0KSBcCiAgICAgTShfZGVmaW5lKSBcCiAgICAgTShfbG9va3VwKSBcCkBA
IC0yMjgsMTMgKzIzMiwxMyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIENH
UmVjdCB0ZXh0TGFzdFJlY3Q7CiB9OwogCi1lbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRy
YWN0aW9uIDogYm9vbCB7CitlbnVtIGNsYXNzIFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1h
Z2UgOiBib29sIHsKICAgICBObywKICAgICBZZXMKIH07CiAKLWVudW0gSW1hZ2VFeHRyYWN0aW9u
UmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsKLXVzaW5nIEltYWdlRXh0cmFjdGlvblJlcXVlc3RJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRp
ZmllclR5cGU+OworZW51bSBJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsK
K3VzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8
SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyVHlwZT47CiAKIH0KIApAQCAtMjU2LDggKzI2
MCw4IEBAIHVzaW5nIEltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9y
SW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9y
RGVsYXllZFJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50
aGV0aWNUYXBHZXN0dXJlczsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBSZXRh
aW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX2ltYWdlRXh0cmFjdGlvbkRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBS
ZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX2ltYWdlQW5hbHlzaXNEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcjsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJL
aXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcj4gX2dlc3R1cmVSZWNvZ25p
emVyQ29uc2lzdGVuY3lFbmZvcmNlcjsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dl
c3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwpAQCAtNDgzLDIy
ICs0ODcsMjggQEAgdXNpbmcgSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdElkZW50aWZpZXIgPSBPYmpl
Y3RJZGVudGlmaWVyPEltYWdlRXh0cmFjdGlvblJlcXVlc3QKIAogICAgIFZlY3RvcjxCbG9ja1B0
cjx2b2lkKCk+PiBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVy
ZVJlY29nbml6ZXI7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBSZXRhaW5Q
dHI8V0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplcj4gX2ltYWdlRXh0cmFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyOwotICAgIFJldGFpblB0cjxVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25p
emVyPiBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyOwotICAgIHN0ZDo6
b3B0aW9uYWw8V2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllcj4gX3BlbmRp
bmdJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllcjsKLSAgICBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkVsZW1lbnRDb250ZXh0PiBfZWxlbWVudFBlbmRpbmdJbWFnZUV4dHJhY3Rpb247Ci0g
ICAgVmVjdG9yPEJsb2NrUHRyPHZvaWQoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlv
bik+PiBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjsKKyNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgUmV0YWluUHRyPFdLSW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyPiBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyOworICAgIFJldGFp
blB0cjxVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VBbmFseXNpc1RpbWVvdXRH
ZXN0dXJlUmVjb2duaXplcjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6SW1hZ2VBbmFseXNp
c1JlcXVlc3RJZGVudGlmaWVyPiBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmll
cjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBfZWxlbWVudFBl
bmRpbmdJbWFnZUFuYWx5c2lzOworICAgIFZlY3RvcjxCbG9ja1B0cjx2b2lkKFdlYktpdDo6UHJv
Y2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSk+PiBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVu
ZGluZ0ltYWdlQW5hbHlzaXM7CiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCi0gICAgUmV0YWluUHRy
PFVJTWVudT4gX2ltYWdlRXh0cmFjdGlvbkNvbnRleHRNZW51OwotICAgIEJPT0wgX2NvbnRleHRN
ZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0OworICAgIFJldGFpblB0cjxV
SU1lbnU+IF9jb250ZXh0TWVudUZvck1hY2hpbmVSZWFkYWJsZUNvZGU7CisgICAgQk9PTCBfY29u
dGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdlQW5hbHlzaXNUaW1lb3V0OwogI2VuZGlmIC8vIFVT
RShVSUNPTlRFWFRNRU5VKQotICAgIEJPT0wgX2lzUHJvY2VlZGluZ1dpdGhJbWFnZUV4dHJhY3Rp
b247Ci0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0KLSNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbkFkZGl0aW9uc0FmdGVyLmg+Ci0jZW5kaWYKKyAgICBCT09MIF9pc1Byb2NlZWRpbmdX
aXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U7CisgICAgUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplcj4g
X2ltYWdlQW5hbHl6ZXI7CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgUmV0YWluUHRyPFFMUHJl
dmlld0NvbnRyb2xsZXI+IF92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcjsKKyAgICBSZXRh
aW5QdHI8VUlJbWFnZT4gX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZTsKKyAgICBSZXRhaW5QdHI8
TlNVUkw+IF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkw7CisgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBfdmlzdWFsU2VhcmNoUHJldmlld1RpdGxlOworICAgIENHUmVjdCBfdmlzdWFsU2VhcmNo
UHJldmlld0ltYWdlQm91bmRzOworICAgIEJPT0wgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZTsK
KyAgICBCT09MIF9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzOworI2VuZGlmIC8vIFVTRShRVUlDS19M
T09LKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIH0KIAogQGVuZApAQCAtNzI5
LDkgKzczOSw5IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFS
RV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKXNldFVwQXBwSGln
aGxpZ2h0TWVudXNJZk5lZWRlZDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCi0tICh2b2lkKV9lbmRJbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6
U2hvdWxkUHJldmVudEdlc3R1cmVzKXNob3VsZFByZXZlbnRHZXN0dXJlczsKLS0gKHZvaWQpcmVx
dWVzdEltYWdlRXh0cmFjdGlvbjooTlNVUkwgKilpbWFnZVVSTCBpbWFnZURhdGE6KGNvbnN0IFdl
YktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKWltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxl
cjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQm
Jik+JiYpY29tcGxldGlvbjsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCistICh2b2lkKV9l
bmRJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsOihXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0
dXJlcylzaG91bGRQcmV2ZW50R2VzdHVyZXM7CistICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRp
b246KE5TVVJMICopaW1hZ2VVUkwgaW1hZ2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJp
dG1hcDo6SGFuZGxlJilpbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKWNvbXBsZXRpb247
CiAjZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZTAwYTZlMDExNGFhNDk5OTE1NDM1
OTQyYzA2N2I4NDAxOTBiNjk1Ni4uN2E4NDgxMGVhYWU4MjlkZTI0NTcxNjZkOTQ3OTg2Nzg2NTNl
NTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00Miw2ICs0Miw4IEBACiAjaW1wb3J0ICJTbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9y
dCAiVGV4dElucHV0U1BJLmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQu
aCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIgogI2ltcG9ydCAiVUlLaXRT
UEkuaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgogI2ltcG9ydCAiV0tBY3Rpb25T
aGVldEFzc2lzdGFudC5oIgpAQCAtNTQsNiArNTYsNyBAQAogI2ltcG9ydCAiV0tGb3JtU2VsZWN0
Q29udHJvbC5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tI
aWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oIgorI2ltcG9ydCAiV0tJbWFnZUFu
YWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0Nv
bnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25p
emVyLmgiCiAjaW1wb3J0ICJXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCIKQEAgLTkyLDYgKzk1
LDcgQEAKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RG
b250RGVzY3JpcHRvci5oPgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVz
Lmg+CisjaW1wb3J0IDxVbmlmb3JtVHlwZUlkZW50aWZpZXJzL1VUQ29yZVR5cGVzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Db2xvcklPUy5oPgpAQCAtMTE3LDYgKzEyMSw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1RvdWNoQWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CkBAIC0xNDIsMTAgKzE0Nyw2IEBACiAjaW1w
b3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJl
YW0uaD4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQmVmb3JlLm1tPgotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnSXRlbS5oPgpAQCAtMTczLDcgKzE3NCwyNSBAQAogI2lt
cG9ydCAiUGVwcGVyVUlDb3JlU1BJLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKworLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHB1bGxlZCBvdXQgaW50byBhIHNlcGFy
YXRlIHNvZnRsaW5raW5nIGhlYWRlciAoZWl0aGVyIGluIFBBTCBvciBXZWJLaXQyKS4KKyNpbXBv
cnQgPFZpc2lvbktpdENvcmUvVktJbWFnZUFuYWx5c2lzX1dlYktpdC5oPgorI2ltcG9ydCA8Vmlz
aW9uS2l0Q29yZS9WS0ltYWdlQW5hbHl6ZXIuaD4KK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09S
S19PUFRJT05BTChWaXNpb25LaXRDb3JlKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFZpc2lv
bktpdENvcmUsIFZLSW1hZ2VBbmFseXplcikKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChWaXNp
b25LaXRDb3JlLCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0KQorCisvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgb25jZSA8cmRhcjovLzcyNDgwNDU5PiBpcyBpbiB0aGUgU0RLLgorQGludGVyZmFjZSBWS0lt
YWdlQW5hbHl6ZXJSZXF1ZXN0IChTdGFnaW5nXzcyNDgwNDU5KQorQHByb3BlcnR5IChub25hdG9t
aWMpIE5TVVJMICppbWFnZVVSTDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VSTCAqcGFnZVVS
TDsKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwogI2ltcG9ydCA8
cGFsL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvaW9z
L1F1aWNrTG9va1NvZnRMaW5rLmg+CiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCB3ZWJraXRTaG93TGlua1ByZXZp
ZXdzUHJlZmVyZW5jZUtleSA9IEAiV2ViS2l0U2hvd0xpbmtQcmV2aWV3cyI7CkBAIC0yMDQsNiAr
MjIzLDIwIEBAIEBlbmQKIAogc3RhdGljIHZvaWQgKldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1D
b250ZXh0ID0gJldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0OwogCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorCitAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKEltYWdlQW5hbHlz
aXMpIDxXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPgorQGVuZAorCisj
aWYgVVNFKFFVSUNLX0xPT0spCisKK0BpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoSW1hZ2VBbmFs
eXNpc1ByZXZpZXcpIDxRTFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFFMUHJldmlld0NvbnRy
b2xsZXJEYXRhU291cmNlLCBRTFByZXZpZXdJdGVtRGF0YVByb3ZpZGVyPgorQGVuZAorCisjZW5k
aWYgLy8gVVNFKFFVSUNLX0xPT0spCisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwpAQCAtMjkxLDYgKzMyNCwzOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgV0tTZWxlY3Rpb25EcmF3aW5nSW5mbyYgaW5m
bykKICAgICByZXR1cm4gc3RyZWFtOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
CitjbGFzcyBJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4gZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmUHRyPEltYWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbj4gY3Jl
YXRlKFdLQ29udGVudFZpZXcgKnZpZXcpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4odmlldykpOworICAgIH0KKwor
ICAgIH5JbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4oKQorICAgIHsKKyAgICAgICAg
aWYgKGF1dG8gdmlldyA9IG1fdmlldy5nZXQoKSkKKyAgICAgICAgICAgIFt2aWV3IF9lbmRJbWFn
ZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsOm1fc2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24gPyBX
ZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0dXJlczo6WWVzIDogV2ViS2l0OjpTaG91bGRQcmV2ZW50
R2VzdHVyZXM6Ok5vXTsKKyAgICB9CisKKyAgICB2b2lkIHNldFNob3VsZFByZXZlbnRUZXh0U2Vs
ZWN0aW9uKCkKKyAgICB7CisgICAgICAgIG1fc2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24gPSB0
cnVlOworICAgIH0KKworcHJpdmF0ZToKKyAgICBJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFs
VG9rZW4oV0tDb250ZW50VmlldyAqdmlldykKKyAgICAgICAgOiBtX3ZpZXcodmlldykKKyAgICB7
CisgICAgfQorCisgICAgV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gbV92aWV3OworICAgIGJv
b2wgbV9zaG91bGRQcmV2ZW50VGV4dFNlbGVjdGlvbiB7IGZhbHNlIH07Cit9OworCisjZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogY29u
c3RleHByIGZsb2F0IGhpZ2hsaWdodERlbGF5ID0gMC4xMjsKQEAgLTgxMiwxMSArODc3LDExIEBA
IC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6
c2VsZl0pOwogICAgIFtfdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRo
ZXRpY1RhcEdlc3R1cmVzIHNldE5hbWU6QCJEZWZlcnJlciBmb3IgdG91Y2ggZW5kIChzeW50aGV0
aWMgdGFwKSJdOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgX2ltYWdlRXh0
cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1dLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoRGVmZXJyaW5nR2VzdHVyZURlbGVnYXRl
OnNlbGZdKTsKLSAgICBbX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
IHNldE5hbWU6QCJEZWZlcnJlciBmb3IgaW1hZ2UgZXh0cmFjdGlvbiJdOwotICAgIFtfaW1hZ2VF
eHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0SW1tZWRpYXRlbHlGYWlsc0Fm
dGVyVG91Y2hFbmQ6WUVTXTsKLSAgICBbX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyIHNldEVuYWJsZWQ6c2VsZi5faW1hZ2VFeHRyYWN0aW9uRW5hYmxlZF07CisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxv
Y10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOworICAgIFtfaW1hZ2VB
bmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldE5hbWU6QCJEZWZlcnJlciBmb3Ig
aW1hZ2UgYW5hbHlzaXMiXTsKKyAgICBbX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciBzZXRJbW1lZGlhdGVseUZhaWxzQWZ0ZXJUb3VjaEVuZDpZRVNdOworICAgIFtfaW1h
Z2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6V2ViS2l0Ojpp
c0xpdmVUZXh0RW5hYmxlZCgpXTsKICNlbmRpZgogCiAgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuZGVmZXJyaW5nR2VzdHVyZXMpIHsKQEAgLTky
OSw4ICs5OTQsOCBAQCAtICh2b2lkKXNldFVwSW50ZXJhY3Rpb24KICAgICBfaXNDaGFuZ2luZ0Zv
Y3VzID0gTk87CiAgICAgX2lzQmx1cnJpbmdGb2N1c2VkRWxlbWVudCA9IE5POwogCi0jaWYgVVNF
KFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9jb250ZXh0
TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dCA9IE5POworI2lmIFVTRShV
SUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgX2NvbnRleHRNZW51
V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCA9IE5POwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKQEAgLTk0NSw4ICsxMDEwLDggQEAgLSAodm9pZClzZXRV
cEludGVyYWN0aW9uCiAgICAgX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRl
KCk7CiAgICAgX3BhZ2UtPnNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChbW1tzZWxmIHdpbmRvd10g
c2NyZWVuXSBpc0NhcHR1cmVkXSk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICBbc2VsZiBfc2V0VXBJbWFnZUV4dHJhY3Rpb25dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKKyAgICBbc2VsZiBfc2V0VXBJbWFnZUFuYWx5c2lzXTsKICNlbmRpZgogCiAgICAgX2hhc1Nl
dFVwSW50ZXJhY3Rpb25zID0gWUVTOwpAQCAtOTg5LDggKzEwNTQsOCBAQCAtICh2b2lkKWNsZWFu
VXBJbnRlcmFjdGlvbgogCiAgICAgX3RyZWF0QXNDb250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0
b3JTdGF0ZVVwZGF0ZSA9IE5POwogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQotICAgIF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRy
YWN0aW9uVGltZW91dCA9IE5POworI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisgICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lz
VGltZW91dCA9IE5POwogI2VuZGlmCiAKICAgICBpZiAoX2ludGVyYWN0aW9uVmlld3NDb250YWlu
ZXJWaWV3KSB7CkBAIC0xMTExLDggKzExNzYsOCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlv
bgogICAgIF9kYXRhTGlzdFRleHRTdWdnZXN0aW9ucyA9IG5pbDsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgW3NlbGYgX3RlYXJEb3duSW1hZ2VFeHRyYWN0aW9u
XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX3RlYXJEb3duSW1hZ2VB
bmFseXNpc107CiAjZW5kaWYKIAogICAgIFtzZWxmIF9yZW1vdmVDb250YWluZXJGb3JDb250ZXh0
TWVudUhpbnRQcmV2aWV3c107CkBAIC0xODI0LDggKzE4ODksOCBAQCAtIChOU0FycmF5PFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gKilkZWZlcnJpbmdHZXN0dXJlcwogICAgIGF1dG8g
Z2VzdHVyZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6N107CiAgICAgW2dl
c3R1cmVzIGFkZE9iamVjdHNGcm9tQXJyYXk6c2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1
cmVzXTsKICAgICBbZ2VzdHVyZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaEVuZERl
ZmVycmluZ0dlc3R1cmVzXTsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbZ2Vz
dHVyZXMgYWRkT2JqZWN0Ol9pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ci5nZXQoKV07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFtnZXN0dXJlcyBhZGRP
YmplY3Q6X2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAj
ZW5kaWYKICAgICByZXR1cm4gZ2VzdHVyZXM7CiB9CkBAIC0yMjg5LDEyICsyMzU0LDEyIEBAIC0g
KEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVj
b2duaXplciBzaG91bGRSZWNvZ25pCiAgICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRP
ZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdICYmIFtvdGhlckdlc3R1
cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5j
bGFzc10pCiAgICAgICAgIHJldHVybiBZRVM7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKLSAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyKQotICAgICAgICByZXR1cm4gIVtzZWxmIHNob3VsZERlZmVyR2Vz
dHVyZUR1ZVRvSW1hZ2VFeHRyYWN0aW9uOm90aGVyR2VzdHVyZVJlY29nbml6ZXJdOworI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdl
QW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcikKKyAgICAgICAgcmV0dXJuICFbc2Vs
ZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlQW5hbHlzaXM6b3RoZXJHZXN0dXJlUmVjb2du
aXplcl07CiAKLSAgICBpZiAob3RoZXJHZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0
aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCi0gICAgICAgIHJldHVybiAhW3NlbGYgc2hv
dWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246Z2VzdHVyZVJlY29nbml6ZXJdOwor
ICAgIGlmIChvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0
dXJlRHVlVG9JbWFnZUFuYWx5c2lzOmdlc3R1cmVSZWNvZ25pemVyXTsKICNlbmRpZgogCiAgICAg
aWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIs
IF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2xvbmdQcmVzc0dl
c3R1cmVSZWNvZ25pemVyLmdldCgpKSkKQEAgLTIzNTAsOCArMjQxNSw4IEBAIC0gKEJPT0wpZ2Vz
dHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBz
aG91bGRSZWNvZ25pCiAgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVy
R2VzdHVyZVJlY29nbml6ZXIsIF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2Rv
dWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91YmxlQ2xpY2suZ2V0KCkpKQogICAgICAgICBy
ZXR1cm4gWUVTOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKGdlc3R1
cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB8fCBnZXN0
dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVy
KQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIg
PT0gX2ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciB8fCBnZXN0dXJlUmVjb2duaXplciA9
PSBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplcikKICAgICAgICAgcmV0dXJu
IFlFUzsKICNlbmRpZgogCkBAIC0yMzY2LDggKzI0MzEsOCBAQCAtIChCT09MKWdlc3R1cmVSZWNv
Z25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVx
dWlyZQogICAgIGlmIChbb3RoZXJHZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZl
ckdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVSZWNvZ25pemVyXTsKIAotI2lmIFVTRShVSUNPTlRF
WFRNRU5VKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoZ2VzdHVyZVJlY29n
bml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhl
ckdlc3R1cmVSZWNvZ25pemVyID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVj
b2duaXplckZvckZhaWx1cmVSZWxhdGlvbnNoaXBzXSkKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkg
JiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBf
aW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNv
Z25pemVyID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZh
aWx1cmVSZWxhdGlvbnNoaXBzXSkKICAgICAgICAgcmV0dXJuIFlFUzsKICNlbmRpZgogCkBAIC0y
Mzc5LDggKzI0NDQsOCBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNv
Z25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkQmVSZXF1aQogICAgIGlmIChbZ2VzdHVy
ZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNs
YXNzXSkKICAgICAgICAgcmV0dXJuIFsoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWdl
c3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJl
UmVjb2duaXplcl07CiAKLSNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCi0gICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IFtfY29udGV4dE1lbnVJbnRl
cmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1cmVSZWxhdGlvbnNoaXBzXSAmJiBvdGhl
ckdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJlY29n
bml6ZXIpCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
KyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gW19jb250ZXh0TWVudUludGVyYWN0aW9uIGdl
c3R1cmVSZWNvZ25pemVyRm9yRmFpbHVyZVJlbGF0aW9uc2hpcHNdICYmIG90aGVyR2VzdHVyZVJl
Y29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNUaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIpCiAgICAg
ICAgIHJldHVybiBZRVM7CiAjZW5kaWYKIApAQCAtMjc1NCw4ICsyODE5LDggQEAgLSAoQk9PTClo
YXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50OihDR1BvaW50KXBvaW50CiAgICAgaWYgKCFbc2Vs
ZiBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpyZXF1ZXN0XSkKICAgICAgICAg
cmV0dXJuIE5POwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVt
ZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVs
ZW1lbnRDb250ZXh0ID09IF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMg
JiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBl
bmRpbmdJbWFnZUFuYWx5c2lzKQogICAgICAgICByZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTI4
MzIsOCArMjg5Nyw4IEBAIC0gKEJPT0wpdGV4dEludGVyYWN0aW9uR2VzdHVyZTooVUlXS0dlc3R1
cmVUeXBlKWdlc3R1cmUgc2hvdWxkQmVnaW5BdFBvaW50OihDR1BvCiAgICAgICAgIHJldHVybiBO
TzsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVt
ZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVs
ZW1lbnRDb250ZXh0ID09IF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMg
JiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBl
bmRpbmdJbWFnZUFuYWx5c2lzKQogICAgICAgICByZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTM3
ODQsOCArMzg0OSw4IEBAIC0gKEJPT0wpY2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6KFNFTClh
Y3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAgICAgICAgIHJldHVybiBiYXNlV3JpdGluZ0Rp
cmVjdGlvbiAhPSBXZWJDb3JlOjpXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdDsKICAgICB9
CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoV2ViS2l0Ojppc0ltYWdl
RXh0cmFjdGlvbkFjdGlvbihhY3Rpb24pICYmICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJs
ZSkKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKChhY3Rpb24gPT0gQHNlbGVj
dG9yKGNhcHR1cmVUZXh0RnJvbUNhbWVyYTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2luc2Vy
dFRleHRGcm9tQ2FtZXJhOikpICYmICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKICAg
ICAgICAgcmV0dXJuIE5POwogI2VuZGlmCiAKQEAgLTM3OTksNyArMzg2NCw2IEBAIC0gKGlkKXRh
cmdldEZvckFjdGlvbjooU0VMKWFjdGlvbiB3aXRoU2VuZGVyOihpZClzZW5kZXIKICAgICAgICAg
cmV0dXJuIHNlbGYuc2hvdWxkQWxsb3dBcHBIaWdobGlnaHRDcmVhdGlvbiAmJiBfcGFnZS0+YXBw
SGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/IHNlbGYgOiBuaWw7CiAgICAgaWYgKGFjdGlvbiA9PSBA
c2VsZWN0b3IoY3JlYXRlSGlnaGxpZ2h0SW5OZXdHcm91cFdpdGhSYW5nZTopKQogICAgICAgICBy
ZXR1cm4gc2VsZi5zaG91bGRBbGxvd0FwcEhpZ2hsaWdodENyZWF0aW9uICYmICFfcGFnZS0+YXBw
SGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/IHNlbGYgOiBuaWw7Ci0gICAgCiAjZW5kaWYKICAgICBy
ZXR1cm4gW193ZWJWaWV3IHRhcmdldEZvckFjdGlvbjphY3Rpb24gd2l0aFNlbmRlcjpzZW5kZXJd
OwogfQpAQCAtNDU3Niw4ICs0NjQwLDggQEAgLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JNYWluRnJhbWUKICAgICAvLyBpbiB0aGUgc2FtZSBsb2NhdGlvbiB0byB0cmlnZ2VyIGRv
dWJsZS10YXAgcmVjb2duaXRpb24uCiAgICAgW3NlbGYgX3NldERvdWJsZVRhcEdlc3R1cmVzRW5h
YmxlZDpOT107CiAgICAgW190d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBfd2tf
Y2FuY2VsXTsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfY2FuY2Vs
SW1hZ2VFeHRyYWN0aW9uXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYg
X2NhbmNlbEltYWdlQW5hbHlzaXNdOwogI2VuZGlmCiB9CiAKQEAgLTc2MTIsMTQgKzc2NzYsMTQg
QEAgLSAoQk9PTClfc2hvdWxkVXNlTGVnYWN5U2VsZWN0UG9wb3ZlckRpc21pc3NhbEJlaGF2aW9y
CiAgICAgcmV0dXJuIFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0RhdGFBY3RpdmF0aW9uKCk7
CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCiAKLS0gKEJPT0wpc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246
KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlCistIChCT09MKXNob3VsZERlZmVyR2VzdHVy
ZUR1ZVRvSW1hZ2VBbmFseXNpczooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmUKIHsKICAg
ICByZXR1cm4gZ2VzdHVyZSA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBsb3VwZUdlc3R1
cmVdIHx8IGdlc3R1cmUuX3drX2lzVGFwQW5kQUhhbGYgfHwgZ2VzdHVyZSA9PSBbX3RleHRJbnRl
cmFjdGlvbkFzc2lzdGFudCBmb3JjZVByZXNzR2VzdHVyZV07CiB9CiAKLSNlbmRpZiAvLyBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAK
ICNpZiBIQVZFKFBBU1RFQk9BUkRfREFUQV9PV05FUikKIApAQCAtNzgyOCw5ICs3ODkyLDkgQEAg
LSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqKWRlZmVycmluZ0dlc3QKICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3Rv
dWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcikKICAgICAgICAgcmV0dXJuIE5POwogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
ID09IF9pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcikKLSAgICAgICAg
cmV0dXJuIFtzZWxmIHNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VFeHRyYWN0aW9uOmdlc3R1
cmVSZWNvZ25pemVyXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKGRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIpCisgICAgICAgIHJldHVybiBbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0lt
YWdlQW5hbHlzaXM6Z2VzdHVyZVJlY29nbml6ZXJdOwogI2VuZGlmCiAKICAgICBhdXRvIG1heURl
bGF5UmVzZXRPZkNvbnRhaW5pbmdTdWJncmFwaCA9IFsmXShVSUdlc3R1cmVSZWNvZ25pemVyICpn
ZXN0dXJlKSAtPiBCT09MIHsKQEAgLTg3MjQsOSArODc4OCw5IEBAIC0gKHZvaWQpX2RyYWdJbnRl
cmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lv
bjooaWQKIAogICAgIFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKIAotICAg
IGF1dG8gcHJlcGFyZUZvclNlc3Npb24gPSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRl
bnRWaWV3PihzZWxmKSwgc2Vzc2lvbiA9IHJldGFpblB0cihzZXNzaW9uKSwgY29tcGxldGlvbiA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKV0gKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJh
Y3Rpb24gcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24pIHsKKyAgICBhdXRvIHByZXBhcmVGb3JT
ZXNzaW9uID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIHNl
c3Npb24gPSByZXRhaW5QdHIoc2Vzc2lvbiksIGNvbXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbildIChXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgUHJvY2Vl
ZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSkgewogICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3
ZWFrU2VsZi5nZXQoKTsKLSAgICAgICAgaWYgKCFzdHJvbmdTZWxmIHx8IHByb2NlZWRXaXRoSW1h
Z2VFeHRyYWN0aW9uID09IFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246OlllcykK
KyAgICAgICAgaWYgKCFzdHJvbmdTZWxmIHx8IFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1h
Z2UgPT0gV2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpZZXMpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0byBkcmFnT3JpZ2luID0gW3Nlc3Npb24gbG9j
YXRpb25JblZpZXc6c3Ryb25nU2VsZi5nZXQoKV07CkBAIC04NzM1LDEwICs4Nzk5LDEwIEBAIC0g
KHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBw
cmVwYXJlRm9yU2Vzc2lvbjooaWQKICAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJE
cmFnIHNlc3Npb24gcmVxdWVzdGVkOiAlcCBhdCBvcmlnaW46IHslLjBmLCAlLjBmfSIsIHNlc3Np
b24uZ2V0KCksIGRyYWdPcmlnaW4ueCwgZHJhZ09yaWdpbi55KTsKICAgICB9OwogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRy
YWN0aW9uOnByZXBhcmVGb3JTZXNzaW9uXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisg
ICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpwcmVwYXJlRm9yU2Vzc2lvbl07
CiAjZWxzZQotICAgIHByZXBhcmVGb3JTZXNzaW9uKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4
dHJhY3Rpb246Ok5vKTsKKyAgICBwcmVwYXJlRm9yU2Vzc2lvbihXZWJLaXQ6OlByb2NlZWRXaXRo
VGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vKTsKICNlbmRpZgogfQogCkBAIC05NjQ0LDMwICs5NzA4
LDMwIEBAIC0gKHZvaWQpX3dyaXRlUHJvbWlzZWRBdHRhY2htZW50VG9QYXN0ZWJvYXJkOihXZWJD
b3JlOjpQcm9taXNlZEF0dGFjaG1lbnRJbmZvJiYpCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQogCi0tICh2b2lkKV9lbmRJbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGVm
ZXJyYWw6KFdlYktpdDo6U2hvdWxkUHJldmVudEdlc3R1cmVzKXNob3VsZFByZXZlbnRHZXN0dXJl
cworLSAodm9pZClfZW5kSW1hZ2VBbmFseXNpc0dlc3R1cmVEZWZlcnJhbDooV2ViS2l0OjpTaG91
bGRQcmV2ZW50R2VzdHVyZXMpc2hvdWxkUHJldmVudEdlc3R1cmVzCiB7Ci0gICAgW19pbWFnZUV4
dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBlbmREZWZlcnJhbDpzaG91bGRQcmV2
ZW50R2VzdHVyZXNdOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyIGVuZERlZmVycmFsOnNob3VsZFByZXZlbnRHZXN0dXJlc107CiB9CiAKLS0gKHZvaWQpX2Rv
QWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOih2b2lkKF4pKFdlYktpdDo6UHJvY2VlZFdpdGhJ
bWFnZUV4dHJhY3Rpb24gcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24pKWJsb2NrCistICh2b2lk
KV9kb0FmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6KHZvaWQoXikoV2ViS2l0OjpQcm9jZWVkV2l0
aFRleHRTZWxlY3Rpb25JbkltYWdlIFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UpKWJs
b2NrCiB7Ci0gICAgaWYgKHNlbGYuaGFzUGVuZGluZ0ltYWdlRXh0cmFjdGlvblJlcXVlc3QpCi0g
ICAgICAgIF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLmFwcGVu
ZChtYWtlQmxvY2tQdHIoYmxvY2spKTsKKyAgICBpZiAoc2VsZi5oYXNQZW5kaW5nSW1hZ2VBbmFs
eXNpc1JlcXVlc3QpCisgICAgICAgIF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VB
bmFseXNpcy5hcHBlbmQobWFrZUJsb2NrUHRyKGJsb2NrKSk7CiAgICAgZWxzZQotICAgICAgICBi
bG9jayhXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uOjpObyk7CisgICAgICAgIGJs
b2NrKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm8pOwogfQogCi0t
ICh2b2lkKV9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0
aW9uOihXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKXByb2NlZWRXaXRoSW1hZ2VF
eHRyYWN0aW9uCistICh2b2lkKV9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5n
SW1hZ2VBbmFseXNpczooV2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlKVBy
b2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UKIHsKLSAgICBfcGVuZGluZ0ltYWdlRXh0cmFj
dGlvblJlcXVlc3RJZGVudGlmaWVyID0gc3RkOjpudWxsb3B0OwotICAgIF9lbGVtZW50UGVuZGlu
Z0ltYWdlRXh0cmFjdGlvbiA9IHN0ZDo6bnVsbG9wdDsKLSAgICBmb3IgKGF1dG8gYmxvY2sgOiBz
dGQ6OmV4Y2hhbmdlKF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9u
LCB7IH0pKQotICAgICAgICBibG9jayhwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbik7CisgICAg
X3BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBzdGQ6Om51bGxvcHQ7Cisg
ICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBmb3Ig
KGF1dG8gYmxvY2sgOiBzdGQ6OmV4Y2hhbmdlKF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5n
SW1hZ2VBbmFseXNpcywgeyB9KSkKKyAgICAgICAgYmxvY2soUHJvY2VlZFdpdGhUZXh0U2VsZWN0
aW9uSW5JbWFnZSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIC0gKHZvaWQpc2V0VXBUZXh0SW5kaWNh
dG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRvcgogewpAQCAtOTcz
MCw2ICs5Nzk0LDQ0NyBAQCAtICh2b2lkKXN0YXJ0RmFkZU91dAogICAgIH1dOwogfQogCisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKKy0gKHZvaWQp
cHJlc2VudFZpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilp
bWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBp
bWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRzIGFwcGVhcmFuY2VBY3Rpb25zOihRTFByZXZp
ZXdDb250cm9sbGVyRmlyc3RUaW1lQXBwZWFyYW5jZUFjdGlvbnMpYXBwZWFyYW5jZUFjdGlvbnMK
K3sKKyAgICBBU1NFUlQoX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSB8fCBfaGFzVmlzdWFsU2Vh
cmNoUmVzdWx0cyk7CisKKyAgICBBU1NFUlQoIV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxl
cik7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbUEFMOjph
bGxvY1FMUHJldmlld0NvbnRyb2xsZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBbX3Zpc3VhbFNl
YXJjaFByZXZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtfdmlzdWFsU2Vh
cmNoUHJldmlld0NvbnRyb2xsZXIgc2V0RGF0YVNvdXJjZTpzZWxmXTsKKyAgICBbX3Zpc3VhbFNl
YXJjaFByZXZpZXdDb250cm9sbGVyIHNldEFwcGVhcmFuY2VBY3Rpb25zOmFwcGVhcmFuY2VBY3Rp
b25zXTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHNldE1vZGFsUHJlc2Vu
dGF0aW9uU3R5bGU6VUlNb2RhbFByZXNlbnRhdGlvbk92ZXJGdWxsU2NyZWVuXTsKKworICAgIEFT
U0VSVCghX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZSk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZp
ZXdJbWFnZSA9IGltYWdlOworCisgICAgQVNTRVJUKCFfdmlzdWFsU2VhcmNoUHJldmlld1RpdGxl
KTsKKyAgICBfdmlzdWFsU2VhcmNoUHJldmlld1RpdGxlID0gdGl0bGU7CisKKyAgICBBU1NFUlQo
IV92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwpOworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3
SW1hZ2VVUkwgPSBpbWFnZVVSTDsKKworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VCb3Vu
ZHMgPSBpbWFnZUJvdW5kczsKKworICAgIFVJVmlld0NvbnRyb2xsZXIgKmN1cnJlbnRQcmVzZW50
aW5nVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JG
dWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6c2VsZl07CisgICAgW2N1cnJlbnRQcmVzZW50
aW5nVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOl92aXN1YWxTZWFyY2hQcmV2
aWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpuaWxdOworfQorCisj
cHJhZ21hIG1hcmsgLSBRTFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUKKworLSAoQ0dSZWN0KXBy
ZXZpZXdDb250cm9sbGVyOihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBmcmFtZUZv
clByZXZpZXdJdGVtOihpZCA8UUxQcmV2aWV3SXRlbT4paXRlbSBpblNvdXJjZVZpZXc6KFVJVmll
dyAqKilvdXRWaWV3Cit7CisgICAgKm91dFZpZXcgPSBzZWxmOworICAgIHJldHVybiBfdmlzdWFs
U2VhcmNoUHJldmlld0ltYWdlQm91bmRzOworfQorCistIChVSUltYWdlICopcHJldmlld0NvbnRy
b2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyIHRyYW5zaXRpb25JbWFnZUZv
clByZXZpZXdJdGVtOihpZCA8UUxQcmV2aWV3SXRlbT4paXRlbSBjb250ZW50UmVjdDooQ0dSZWN0
ICopb3V0Q29udGVudFJlY3QKK3sKKyAgICAqb3V0Q29udGVudFJlY3QgPSBDR1JlY3QgeyBDR1Bv
aW50WmVybywgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZUJvdW5kcy5zaXplIH07CisgICAgcmV0
dXJuIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2UuZ2V0KCk7Cit9CisKKy0gKHZvaWQpcHJldmll
d0NvbnRyb2xsZXJEaWREaXNtaXNzOihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlcgor
eworICAgIEFTU0VSVChjb250cm9sbGVyID09IF92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxl
cik7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmNsZWFyKCk7CisgICAgX3Zp
c3VhbFNlYXJjaFByZXZpZXdJbWFnZS5jbGVhcigpOworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3
VGl0bGUuY2xlYXIoKTsKKyAgICBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlVVJMLmNsZWFyKCk7
Cit9CisKKyNwcmFnbWEgbWFyayAtIFFMUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlCisKKy0g
KE5TSW50ZWdlciludW1iZXJPZlByZXZpZXdJdGVtc0luUHJldmlld0NvbnRyb2xsZXI6KFFMUHJl
dmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyCit7CisgICAgQVNTRVJUKGNvbnRyb2xsZXIgPT0g
X3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyKTsKKyAgICByZXR1cm4gMTsKK30KKworLSAo
aWQgPFFMUHJldmlld0l0ZW0+KXByZXZpZXdDb250cm9sbGVyOihRTFByZXZpZXdDb250cm9sbGVy
ICopY29udHJvbGxlciBwcmV2aWV3SXRlbUF0SW5kZXg6KE5TSW50ZWdlcilpbmRleAoreworICAg
IEFTU0VSVChjb250cm9sbGVyID09IF92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7Cisg
ICAgQVNTRVJUKCFpbmRleCk7CisgICAgYXV0byBpdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1FM
SXRlbUluc3RhbmNlKCkgaW5pdFdpdGhEYXRhUHJvdmlkZXI6c2VsZiBjb250ZW50VHlwZTpVVFR5
cGVUSUZGLmlkZW50aWZpZXIgcHJldmlld1RpdGxlOl92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUu
Z2V0KCldKTsKKyAgICBpZiAoW2l0ZW0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRQ
cmV2aWV3T3B0aW9uczopXSkgeworICAgICAgICBhdXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHRO
UyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml0pOworICAg
ICAgICBpZiAoX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZVVSTCkKKyAgICAgICAgICAgIFtwcmV2
aWV3T3B0aW9ucyBzZXRPYmplY3Q6X3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZVVSTC5nZXQoKSBm
b3JLZXk6QCJpbWFnZVVSTCJdOworICAgICAgICBpZiAoYXV0byBwYWdlVVJMID0gVVJMIHsgVVJM
IHsgfSwgX3BhZ2UtPmN1cnJlbnRVUkwoKSB9OyAhcGFnZVVSTC5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVSTCJd
OworICAgICAgICBpZiAoW3ByZXZpZXdPcHRpb25zIGNvdW50XSkKKyAgICAgICAgICAgIFtpdGVt
IHNldFByZXZpZXdPcHRpb25zOnByZXZpZXdPcHRpb25zLmdldCgpXTsKKyAgICB9CisgICAgcmV0
dXJuIGl0ZW0uYXV0b3JlbGVhc2UoKTsKK30KKworI3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRl
bURhdGFQcm92aWRlcgorCistIChOU0RhdGEgKilwcm92aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAq
KWl0ZW0KK3sKKyAgICBBU1NFUlQoX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZSk7CisKKyAgICBh
dXRvIGRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZU11dGFibGUoTlVMTCwgMCkpOworICAgIGF1
dG8gZGVzdGluYXRpb24gPSBhZG9wdENGKENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRh
KGRhdGEuZ2V0KCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIs
IDEsIE5VTEwpKTsKKyAgICBDR0ltYWdlRGVzdGluYXRpb25BZGRJbWFnZShkZXN0aW5hdGlvbi5n
ZXQoKSwgW192aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2UgQ0dJbWFnZV0sIG5pbCk7CisgICAgaWYg
KCFDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShkZXN0aW5hdGlvbi5nZXQoKSkpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICByZXR1cm4gZGF0YS5icmlkZ2luZ0F1dG9yZWxlYXNlKCk7Cit9
CisKKyNwcmFnbWEgbWFyayAtIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZQorCistIChi
b29sKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0
YW50IHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICopZWxlbWVudAoreworICAgIHJldHVybiBXZWJLaXQ6OmlzTGl2ZVRleHRFbmFi
bGVkKCkgJiYgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZTsKK30KKworLSAodm9pZClhY3Rpb25T
aGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG93VGV4
dEZvckltYWdlOihVSUltYWdlICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0
bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kcworewor
ICAgIFtzZWxmIHByZXNlbnRWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlckZvckltYWdlOmlt
YWdlIGltYWdlVVJMOmltYWdlVVJMIHRpdGxlOnRpdGxlIGltYWdlQm91bmRzOmltYWdlQm91bmRz
IGFwcGVhcmFuY2VBY3Rpb25zOlFMUHJldmlld0NvbnRyb2xsZXJGaXJzdFRpbWVBcHBlYXJhbmNl
QWN0aW9uRW5hYmxlVmlzdWFsU2VhcmNoRGF0YURldGVjdGlvbl07Cit9CisKKy0gKGJvb2wpYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hv
dWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gKillbGVtZW50Cit7CisgICAgcmV0dXJuIFdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQo
KSAmJiBfaGFzVmlzdWFsU2VhcmNoUmVzdWx0czsKK30KKworLSAodm9pZClhY3Rpb25TaGVldEFz
c2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBsb29rVXBJbWFnZToo
VUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0cmlu
ZyAqKXRpdGxlIGltYWdlQm91bmRzOihDR1JlY3QpaW1hZ2VCb3VuZHMKK3sKKyAgICBbc2VsZiBw
cmVzZW50VmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXJGb3JJbWFnZTppbWFnZSBpbWFnZVVS
TDppbWFnZVVSTCB0aXRsZTp0aXRsZSBpbWFnZUJvdW5kczppbWFnZUJvdW5kcyBhcHBlYXJhbmNl
QWN0aW9uczpRTFByZXZpZXdDb250cm9sbGVyRmlyc3RUaW1lQXBwZWFyYW5jZUFjdGlvbkVuYWJs
ZVZpc3VhbFNlYXJjaE1vZGVdOworfQorCisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisKKyNw
cmFnbWEgbWFyayAtIEltYWdlIEV4dHJhY3Rpb24KKworLSAoVktJbWFnZUFuYWx5emVyICopaW1h
Z2VBbmFseXplcgoreworICAgIGlmICghX2ltYWdlQW5hbHl6ZXIpCisgICAgICAgIF9pbWFnZUFu
YWx5emVyID0gYWRvcHROUyhbYWxsb2NWS0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGluaXRdKTsK
KyAgICByZXR1cm4gX2ltYWdlQW5hbHl6ZXIuZ2V0KCk7Cit9CisKKy0gKEJPT0wpaGFzUGVuZGlu
Z0ltYWdlQW5hbHlzaXNSZXF1ZXN0Cit7CisgICAgcmV0dXJuICEhX3BlbmRpbmdJbWFnZUFuYWx5
c2lzUmVxdWVzdElkZW50aWZpZXI7Cit9CisKKy0gKHZvaWQpX3NldFVwSW1hZ2VBbmFseXNpcwor
eworICAgIGlmICghV2ViS2l0Ojppc0xpdmVUZXh0RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVs
bG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID0gTk87Cisg
ICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1dLSW1hZ2VBbmFseXNpc0dl
c3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdh
dGU6c2VsZl0pOworICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lz
R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworICAgIF9pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1
cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1VJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgYWxs
b2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihpbWFnZUFuYWx5c2lzR2Vz
dHVyZURpZFRpbWVPdXQ6KV0pOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVj
b2duaXplciBzZXRNaW5pbXVtUHJlc3NEdXJhdGlvbjoyLjBdOworICAgIFtfaW1hZ2VBbmFseXNp
c1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXROYW1lOkAiSW1hZ2UgYW5hbHlzaXMgdGltZW91
dCJdOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXREZWxl
Z2F0ZTpzZWxmXTsKKyAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFseXNp
c1RpbWVvdXRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjaWYgVVNFKFFVSUNLX0xPT0spCisg
ICAgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzID0gTk87CisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpCisgICAgX2NvbnRleHRNZW51Rm9yTWFjaGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOwor
I2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQorfQorCistICh2b2lkKV90ZWFyRG93bkltYWdl
QW5hbHlzaXMKK3sKKyAgICBpZiAoIVdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgW19pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVs
ZWdhdGU6bmlsXTsKKyAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBfaW1hZ2VBbmFseXNpc0dlc3R1cmVS
ZWNvZ25pemVyID0gbmlsOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2du
aXplciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVy
Ol9pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBfaW1h
Z2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciA9IG5pbDsKKyAgICBfcGVuZGluZ0lt
YWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9j
ZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5n
SW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBbc3RkOjpleGNoYW5nZShfaW1hZ2VB
bmFseXplciwgbmlsKSBjYW5jZWxBbGxSZXF1ZXN0c107CisjaWYgVVNFKFFVSUNLX0xPT0spCisg
ICAgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzID0gTk87CisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpCisgICAgX2NvbnRleHRNZW51Rm9yTWFjaGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOwor
I2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIFtzZWxmIF9pbnZva2VBbGxBY3Rpb25z
VG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4
dFNlbGVjdGlvbkluSW1hZ2U6Ok5vXTsKK30KKworLSAodm9pZClfY2FuY2VsSW1hZ2VBbmFseXNp
cworeworICAgIFtfaW1hZ2VBbmFseXplciBjYW5jZWxBbGxSZXF1ZXN0c107CisgICAgUkVMRUFT
RV9MT0dfSUYoc2VsZi5oYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3QsIEltYWdlcywgIklt
YWdlIGFuYWx5c2lzIHJlcXVlc3QgJSIgUFJJdTY0ICIgY2FuY2VsbGVkLiIsIF9wZW5kaW5nSW1h
Z2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyLT50b1VJbnQ2NCgpKTsKKyAgICBfcGVuZGluZ0lt
YWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9j
ZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5n
SW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKK30KKworLSAoUmV0YWluUHRyPFZLSW1hZ2VB
bmFseXplclJlcXVlc3Q+KWNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OihWS0FuYWx5c2lzVHlw
ZXMpYW5hbHlzaXNUeXBlcyBpbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAq
KWltYWdlVVJMCit7CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbYWxsb2NWS0ltYWdlQW5h
bHl6ZXJSZXF1ZXN0SW5zdGFuY2UoKSBpbml0V2l0aEltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZL
SW1hZ2VPcmllbnRhdGlvblVwIHJlcXVlc3RUeXBlOmFuYWx5c2lzVHlwZXNdKTsKKyAgICBbcmVx
dWVzdCBzZXRJbWFnZVVSTDppbWFnZVVSTF07CisgICAgW3JlcXVlc3Qgc2V0UGFnZVVSTDpbTlNV
UkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOl9wYWdlLT5jdXJyZW50VVJMKCldXTsKKyAgICByZXR1
cm4gcmVxdWVzdDsKK30KKworLSAoUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNy
ZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBp
bWFnZTooVUlJbWFnZSAqKWltYWdlCit7CisgICAgcmV0dXJuIFtzZWxmIGNyZWF0ZUltYWdlQW5h
bHlzaXNSZXF1ZXN0OmFuYWx5c2lzVHlwZXMgaW1hZ2U6aW1hZ2UgaW1hZ2VVUkw6X3Bvc2l0aW9u
SW5mb3JtYXRpb24uaW1hZ2VVUkxdOworfQorCistIChCT09MKXZhbGlkYXRlSW1hZ2VBbmFseXNp
c1JlcXVlc3RJZGVudGlmaWVyOihXZWJLaXQ6OkltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmll
cilpZGVudGlmaWVyCit7CisgICAgaWYgKF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVu
dGlmaWVyID09IGlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBZRVM7CisKKyAgICBpZiAoIXNl
bGYuaGFzUGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0KSB7CisgICAgICAgIC8vIE9ubHkgaW52
b2tlIGRlZmVycmVkIGltYWdlIGFuYWx5c2lzIGJsb2NrcyBpZiB0aGVyZSBpcyBubyBvbmdvaW5n
IHJlcXVlc3Q7IG90aGVyd2lzZSwgdGhpcyB3b3VsZAorICAgICAgICAvLyBjYXVzZSB0aGVzZSBi
bG9ja3MgdG8gYmUgaW52b2tlZCB0b28gZWFybHkgKGkuZS4gaW4gdGhlIG1pZGRsZSBvZiB0aGUg
bmV3IGltYWdlIGFuYWx5c2lzIHJlcXVlc3QpLgorICAgICAgICBbc2VsZiBfaW52b2tlQWxsQWN0
aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0
aFRleHRTZWxlY3Rpb25JbkltYWdlOjpOb107CisgICAgfQorCisgICAgUkVMRUFTRV9MT0coSW1h
Z2VzLCAiSW1hZ2UgYW5hbHlzaXMgcmVxdWVzdCAlIiBQUkl1NjQgIiBpbnZhbGlkYXRlZC4iLCBp
ZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIHJldHVybiBOTzsKK30KKworI3ByYWdtYSBtYXJr
IC0gV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQorCistICh2b2lkKXJl
cXVlc3RUZXh0UmVjb2duaXRpb246KE5TVVJMICopaW1hZ2VVUkwgaW1hZ2VEYXRhOihjb25zdCBX
ZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJilpbWFnZURhdGEgY29tcGxldGlvbkhhbmRs
ZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0
JiYpPiYmKWNvbXBsZXRpb24KK3sKKyAgICBhdXRvIGltYWdlQml0bWFwID0gV2ViS2l0OjpTaGFy
ZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZURhdGEpOworICAgIGlmICghaW1hZ2VCaXRtYXApIHsK
KyAgICAgICAgY29tcGxldGlvbih7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAtPm1ha2VDR0ltYWdlKCk7CisgICAgaWYgKCFjZ0lt
YWdlKSB7CisgICAgICAgIGNvbXBsZXRpb24oeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0lt
YWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAgIGNvbXBsZXRp
b24oeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVxdWVzdCA9IFtz
ZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlzaXNUeXBlVGV4dCBpbWFnZTpp
bWFnZS5nZXQoKV07CisgICAgW1tzZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJl
cXVlc3QuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxv
Y2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pXSAoVktJbWFnZUFuYWx5c2lz
ICpyZXN1bHQsIE5TRXJyb3IgKikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb24oV2ViS2l0
OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCkpOworICAgIH0pLmdldCgpXTsKK30K
KworLSAodm9pZClpbWFnZUFuYWx5c2lzR2VzdHVyZURpZEJlZ2luOihXS0ltYWdlQW5hbHlzaXNH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgQVNTRVJUKFdlYktp
dDo6aXNMaXZlVGV4dEVuYWJsZWQoKSk7CisKKyAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0g
V2ViS2l0OjpJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisKKyAg
ICBbX2ltYWdlQW5hbHl6ZXIgY2FuY2VsQWxsUmVxdWVzdHNdOworICAgIF9wZW5kaW5nSW1hZ2VB
bmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID0gcmVxdWVzdElkZW50aWZpZXI7CisgICAgX2lzUHJv
Y2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSA9IE5POworICAgIF9lbGVtZW50UGVuZGlu
Z0ltYWdlQW5hbHlzaXMgPSBzdGQ6Om51bGxvcHQ7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAg
ICBfaGFzU2VsZWN0YWJsZVRleHRJbkltYWdlID0gTk87CisgICAgX2hhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMgPSBOTzsKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKKworI2lmIFVTRShVSUNPTlRF
WFRNRU5VKQorICAgIF9jb250ZXh0TWVudUZvck1hY2hpbmVSZWFkYWJsZUNvZGUuY2xlYXIoKTsK
KyNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkKKworICAgIFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdCB7IFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChbZ2Vz
dHVyZVJlY29nbml6ZXIgbG9jYXRpb25JblZpZXc6c2VsZl0pIH07CisgICAgcmVxdWVzdC5pbmNs
dWRlSW1hZ2VEYXRhID0gdHJ1ZTsKKyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlv
blVwZGF0ZTpbcmVxdWVzdElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlcXVlc3RJZGVudGlmaWVyKSwg
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgZ2VzdHVyZURlZmVy
cmFsVG9rZW4gPSBXZWJLaXQ6OkltYWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbjo6Y3Jl
YXRlKHNlbGYpXSAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZv
cm1hdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdl
dCgpOworICAgICAgICBpZiAoIVtzdHJvbmdTZWxmIHZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVl
c3RJZGVudGlmaWVyOnJlcXVlc3RJZGVudGlmaWVyXSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBib29sIHNob3VsZEFuYWx5emVJbWFnZUF0TG9jYXRpb24gPSBpbmZvcm1hdGlvbi5p
c0ltYWdlICYmIGluZm9ybWF0aW9uLmltYWdlICYmIGluZm9ybWF0aW9uLmltYWdlRWxlbWVudENv
bnRleHQgJiYgIWluZm9ybWF0aW9uLmlzQW5pbWF0ZWRJbWFnZTsKKyAgICAgICAgaWYgKCFzdHJv
bmdTZWxmLT5fcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciB8fCAhc2hvdWxk
QW5hbHl6ZUltYWdlQXRMb2NhdGlvbikgeworICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9r
ZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJv
Y2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9dOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgYXV0byBjZ0ltYWdlID0gaW5mb3JtYXRpb24uaW1hZ2UtPm1h
a2VDR0ltYWdlQ29weSgpOworICAgICAgICBpZiAoIWNnSW1hZ2UpIHsKKyAgICAgICAgICAgIFtz
dHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFs
eXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vXTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5T
KFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAgICAg
ICAgaWYgKCFpbWFnZSkgeworICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlv
bnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhU
ZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgcHJlZmxpZ2h0
IGdlc3R1cmUgaW5pdGlhdGVkIChyZXF1ZXN0ICUiIFBSSXU2NCAiKS4iLCByZXF1ZXN0SWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKKworICAgICAgICBzdHJvbmdTZWxmLT5fZWxlbWVudFBlbmRpbmdJ
bWFnZUFuYWx5c2lzID0gaW5mb3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dDsKKworICAgICAg
ICBhdXRvIHJlcXVlc3RMb2NhdGlvbiA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAg
ICAgIFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGVsZW1lbnRDb250ZXh0ID0gKmluZm9ybWF0aW9u
LmltYWdlRWxlbWVudENvbnRleHQ7CisKKyAgICAgICAgYXV0byByZXF1ZXN0Rm9yVGV4dFNlbGVj
dGlvbiA9IFtzdHJvbmdTZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlzaXNU
eXBlVGV4dCBpbWFnZTppbWFnZS5nZXQoKV07CisgICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRl
eHRNZW51ID0gW3N0cm9uZ1NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNp
c1R5cGVWaXN1YWxTZWFyY2ggfCBWS0FuYWx5c2lzVHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgaW1h
Z2U6aW1hZ2UuZ2V0KCldOworCisgICAgICAgIGF1dG8gdGV4dEFuYWx5c2lzU3RhcnRUaW1lID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAgIFtbc3Ryb25nU2VsZiBpbWFnZUFuYWx5emVy
XSBwcm9jZXNzUmVxdWVzdDpyZXF1ZXN0Rm9yVGV4dFNlbGVjdGlvbi5nZXQoKSBwcm9ncmVzc0hh
bmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOltyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUo
cmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwgZWxlbWVudENvbnRleHQsIHJlcXVlc3RMb2Nh
dGlvbiwgcmVxdWVzdEZvckNvbnRleHRNZW51LCBnZXN0dXJlRGVmZXJyYWxUb2tlbiwgdGV4dEFu
YWx5c2lzU3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9y
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgp
OworICAgICAgICAgICAgaWYgKCFbc3Ryb25nU2VsZiB2YWxpZGF0ZUltYWdlQW5hbHlzaXNSZXF1
ZXN0SWRlbnRpZmllcjpyZXF1ZXN0SWRlbnRpZmllcl0pCisgICAgICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgICAgICBCT09MIGhhc1RleHRSZXN1bHRzID0gW3Jlc3VsdCBoYXNSZXN1bHRz
Rm9yQW5hbHlzaXNUeXBlczpWS0FuYWx5c2lzVHlwZVRleHRdOworICAgICAgICAgICAgUkVMRUFT
RV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKHJlcXVl
c3QgJSIgUFJJdTY0ICI7IGZvdW5kIHRleHQ/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAt
IHRleHRBbmFseXNpc1N0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIHJlcXVlc3RJZGVudGlmaWVy
LnRvVUludDY0KCksIGhhc1RleHRSZXN1bHRzKTsKKworICAgICAgICAgICAgc3Ryb25nU2VsZi0+
X3BhZ2UtPnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoV2ViS2l0OjptYWtlVGV4dFJl
Y29nbml0aW9uUmVzdWx0KHJlc3VsdCksIGVsZW1lbnRDb250ZXh0LCByZXF1ZXN0TG9jYXRpb24s
IFtyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2Vs
ZiwgaGFzVGV4dFJlc3VsdHMsIHJlcXVlc3RGb3JDb250ZXh0TWVudSwgZ2VzdHVyZURlZmVycmFs
VG9rZW5dIChXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCB1cGRhdGVSZXN1bHQp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdl
dCgpOworICAgICAgICAgICAgICAgIGlmICghW3N0cm9uZ1NlbGYgdmFsaWRhdGVJbWFnZUFuYWx5
c2lzUmVxdWVzdElkZW50aWZpZXI6cmVxdWVzdElkZW50aWZpZXJdKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBpZiAodXBkYXRlUmVzdWx0ID09IFdlYktp
dDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0OjpUZXh0KSB7CisgICAgICAgICAgICAgICAg
ICAgIHN0cm9uZ1NlbGYtPl9pc1Byb2NlZWRpbmdXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPSBZ
RVM7CisgICAgICAgICAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9Q
ZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNl
bGVjdGlvbkluSW1hZ2U6Olllc107CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBnZXN0dXJlRGVmZXJyYWxUb2tlbi0+c2V0
U2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24oKTsKKworICAgICAgICAgICAgICAgIGlmICh1cGRh
dGVSZXN1bHQgPT0gV2ViS2l0OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRl
Y3RvcikgeworICAgICAgICAgICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9u
c1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRl
eHRTZWxlY3Rpb25JbkltYWdlOjpOb107CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBhdXRvIHZpc3VhbFNlYXJjaEFuYWx5
c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAgICAgICAgICAgW1tz
dHJvbmdTZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3RGb3JDb250ZXh0
TWVudS5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOltyZXF1ZXN0
SWRlbnRpZmllciA9IFdURk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwgaGFzVGV4
dFJlc3VsdHMsIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5c2lz
ICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAg
YXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghW3N0cm9uZ1NlbGYgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6cmVx
dWVzdElkZW50aWZpZXJdKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisjaWYg
VVNFKFFVSUNLX0xPT0spCisgICAgICAgICAgICAgICAgICAgIEJPT0wgaGFzVmlzdWFsU2VhcmNo
UmVzdWx0cyA9IFtyZXN1bHQgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6VktBbmFseXNpc1R5
cGVWaXN1YWxTZWFyY2hdOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMs
ICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAocmVxdWVzdCAlIiBQUkl1NjQg
IjsgZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSB2aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIHJlcXVl
c3RJZGVudGlmaWVyLnRvVUludDY0KCksIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOworI2Vsc2UK
KyAgICAgICAgICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHZpc3VhbFNlYXJjaEFuYWx5c2lzU3Rh
cnRUaW1lKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCB8fCBlcnJv
cikgeworICAgICAgICAgICAgICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlv
bnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhU
ZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9dOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgICAgICB9CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICAgICAg
ICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9IGhhc1Rl
eHRSZXN1bHRzOworICAgICAgICAgICAgICAgICAgICBzdHJvbmdTZWxmLT5faGFzVmlzdWFsU2Vh
cmNoUmVzdWx0cyA9IGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHM7CisjZWxzZQorICAgICAgICAgICAg
ICAgICAgICBVTlVTRURfUEFSQU0oaGFzVGV4dFJlc3VsdHMpOworI2VuZGlmCisjaWYgVVNFKFVJ
Q09OVEVYVE1FTlUpCisgICAgICAgICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVu
dUZvck1hY2hpbmVSZWFkYWJsZUNvZGUgPSBbcmVzdWx0IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5
cGVzOlZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZV0gPyByZXN1bHQubXJjTWVudSA6
IG5pbDsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxs
QWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVk
V2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpOb107CisgICAgICAgICAgICAgICAgfV07CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfV07CisgICAgfSBmb3JSZXF1ZXN0OnJlcXVlc3RdOworfQor
CistICh2b2lkKWltYWdlQW5hbHlzaXNHZXN0dXJlRGlkRmFpbDooV0tJbWFnZUFuYWx5c2lzR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgoreworICAgIFtzZWxmIF9lbmRJbWFn
ZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsOldlYktpdDo6U2hvdWxkUHJldmVudEdlc3R1cmVzOjpO
b107Cit9CisKKy0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRUaW1lT3V0OihXS0ltYWdl
QW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgaWYg
KCFzZWxmLl9zaG91bGRVc2VDb250ZXh0TWVudXMpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChzZWxmLmhhc1BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyLnN0YXRlICE9IFVJR2VzdHVyZVJlY29nbml6ZXJT
dGF0ZUJlZ2FuKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGxvY2F0aW9uID0gV2ViQ29y
ZTo6cm91bmRlZEludFBvaW50KFtnZXN0dXJlUmVjb2duaXplciBsb2NhdGlvbkluVmlldzpzZWxm
XSk7CisgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsg
bG9jYXRpb24gfTsKKyAgICByZXF1ZXN0LmluY2x1ZGVJbWFnZURhdGEgPSB0cnVlOworICAgIFtz
ZWxmIGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOlt3ZWFrU2VsZiA9IFdlYWtPYmpD
UHRyPFdLQ29udGVudFZpZXc+KHNlbGYpLCBsb2NhdGlvbl0gKFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mbykgeworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3
ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmICghaW5mby5pbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoKCFpbmZvLmlzSW1hZ2VPdmVybGF5VGV4dCB8fCAhaW5mby5pc1NlbGVjdGVk
KSAmJiAhc3Ryb25nU2VsZi0+X2lzUHJvY2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGNnSW1hZ2UgPSBpbmZvLmltYWdl
LT5tYWtlQ0dJbWFnZUNvcHkoKTsKKyAgICAgICAgaWYgKCFjZ0ltYWdlKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10g
aW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgaWYgKCFpbWFnZSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBh
bmFseXNpcyB0aW1lb3V0IGdlc3R1cmUgaW5pdGlhdGVkLiIpOworICAgICAgICAvLyBGSVhNRTog
V2UgbmVlZCB0byBpbXBsZW1lbnQgc29tZSB3YXkgdG8gY2FjaGUgaW1hZ2UgYW5hbHlzaXMgcmVz
dWx0cyBwZXIgZWxlbWVudCwgc28gdGhhdCB3ZSBkb24ndCBlbmQgdXAKKyAgICAgICAgLy8gbWFr
aW5nIHJlZHVuZGFudCBpbWFnZSBhbmFseXNpcyByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgaW1hZ2Ug
ZGF0YS4KKworICAgICAgICBhdXRvIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lID0gTW9u
b3RvbmljVGltZTo6bm93KCk7CisgICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0g
W3N0cm9uZ1NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1
YWxTZWFyY2ggfCBWS0FuYWx5c2lzVHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgaW1hZ2U6aW1hZ2Uu
Z2V0KCldOworICAgICAgICBbW3N0cm9uZ1NlbGYgaW1hZ2VBbmFseXplcl0gcHJvY2Vzc1JlcXVl
c3Q6cmVxdWVzdEZvckNvbnRleHRNZW51LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxl
dGlvbkhhbmRsZXI6W3dlYWtTZWxmLCBsb2NhdGlvbiwgdmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFy
dFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgaWYg
KCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworI2lmIFVTRShRVUlDS19M
T09LKQorICAgICAgICAgICAgQk9PTCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gW3Jlc3VsdCBo
YXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBlczpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaF07Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQg
aW4gJS4wZiBtcyAoZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAlZCkiLCAoTW9ub3Rvbmlj
VGltZTo6bm93KCkgLSB2aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0VGltZSkubWlsbGlzZWNvbmRz
KCksIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2hh
c1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9IFlFUzsKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9o
YXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gaGFzVmlzdWFsU2VhcmNoUmVzdWx0czsKKyNlbHNlCisg
ICAgICAgICAgICBVTlVTRURfUEFSQU0odmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWUpOwor
I2VuZGlmCisKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYt
Pl9jb250ZXh0TWVudUZvck1hY2hpbmVSZWFkYWJsZUNvZGUgPSBbcmVzdWx0IGhhc1Jlc3VsdHNG
b3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZV0gPyByZXN1
bHQubXJjTWVudSA6IG5pbDsKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudVdh
c1RyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBZRVM7CisgICAgICAgICAgICBbc3Ry
b25nU2VsZi0+X2NvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjps
b2NhdGlvbl07CisjZWxzZQorICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGxvY2F0aW9uKTsKKyNl
bmRpZgorICAgICAgICB9XTsKKyAgICB9IGZvclJlcXVlc3Q6cmVxdWVzdF07Cit9CisKKy0gKHZv
aWQpX2luc2VydFRleHRGcm9tQ2FtZXJhRm9yV2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgW3N1
cGVyIF9pbnNlcnRUZXh0RnJvbUNhbWVyYTpzZW5kZXJdOworfQorCistICh2b2lkKWNhcHR1cmVU
ZXh0RnJvbUNhbWVyYUZvcldlYlZpZXc6KGlkKXNlbmRlcgoreworICAgIFtzdXBlciBjYXB0dXJl
VGV4dEZyb21DYW1lcmE6c2VuZGVyXTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQWZ0ZXIubW0+CiAjZW5kaWYK
QEAgLTEwMjM2LDEwICsxMDc0MSwxMCBAQCAtIChVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAq
KWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbgogCiAtICh2
b2lkKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilp
bnRlcmFjdGlvbiBjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRp
b24gY29tcGxldGlvbjoodm9pZCheKShVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKSljb21w
bGV0aW9uCiB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgQk9PTCB0cmlnZ2Vy
ZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQgPSBzdGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdh
c1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dCwgTk8pOworI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKyAgICBCT09MIHRyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBz
dGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVv
dXQsIE5PKTsKICNlbHNlCi0gICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVv
dXQgPSBOTzsKKyAgICBCT09MIHRyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBOTzsK
ICNlbmRpZgogCiAgICAgaWYgKCFfd2ViVmlldykKQEAgLTEwMjQ4LDkgKzEwNzUzLDkgQEAgLSAo
dm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICop
aW50ZXJhY3Rpb24gY29uZmlndXIKICAgICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9u
Ll9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24obmls
KTsKIAotICAgIGF1dG8gZ2V0Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlID0gW3dlYWtTZWxmID0g
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIGludGVyYWN0aW9uID0gcmV0YWluUHRy
KGludGVyYWN0aW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgdHJp
Z2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0XSAoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdl
RXh0cmFjdGlvbiBwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbikgeworICAgIGF1dG8gZ2V0Q29u
ZmlndXJhdGlvbkFuZENvbnRpbnVlID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50
Vmlldz4oc2VsZiksIGludGVyYWN0aW9uID0gcmV0YWluUHRyKGludGVyYWN0aW9uKSwgY29tcGxl
dGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lz
VGltZW91dF0gKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSBQcm9jZWVk
V2l0aFRleHRTZWxlY3Rpb25JbkltYWdlKSB7CiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdl
YWtTZWxmLmdldCgpOwotICAgICAgICBpZiAoIXN0cm9uZ1NlbGYgfHwgcHJvY2VlZFdpdGhJbWFn
ZUV4dHJhY3Rpb24gPT0gV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbjo6WWVzKSB7
CisgICAgICAgIGlmICghc3Ryb25nU2VsZiB8fCBQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25Jbklt
YWdlID09IFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6WWVzKSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uKG5pbCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTEwMjY0LDcgKzEwNzY5LDcgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlv
bjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAg
ICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgV2ViQ29y
ZTo6cm91bmRlZEludFBvaW50KFtpbnRlcmFjdGlvbiBsb2NhdGlvbkluVmlldzpzdHJvbmdTZWxm
LmdldCgpXSkgfTsKICAgICAgICAgcmVxdWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOwogICAg
ICAgICByZXF1ZXN0LmluY2x1ZGVMaW5rSW5kaWNhdG9yID0gdHJ1ZTsKLSAgICAgICAgcmVxdWVz
dC5kaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgPSB0cmlnZ2VyZWRCeUltYWdlRXh0cmFj
dGlvblRpbWVvdXQ7CisgICAgICAgIHJlcXVlc3QuZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250
ZW50ID0gdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dDsKICAgICAgICAgcmVxdWVzdC5s
aW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1hcmdpbnMgPSAhW3N0cm9uZ1NlbGYgX3Nob3Vs
ZFVzZUNvbnRleHRNZW51c107CiAKICAgICAgICAgW3N0cm9uZ1NlbGYgZG9BZnRlclBvc2l0aW9u
SW5mb3JtYXRpb25VcGRhdGU6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4o
c3Ryb25nU2VsZi5nZXQoKSksIGNvbXBsZXRpb25dIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uKSB7CkBAIC0xMDI3NSwxMCArMTA3ODAsMTAgQEAgLSAodm9pZClfY29u
dGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rp
b24gY29uZmlndXIKICAgICAgICAgfSBmb3JSZXF1ZXN0OnJlcXVlc3RdOwogICAgIH07CiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfZG9BZnRlclBlbmRpbmdJbWFn
ZUV4dHJhY3Rpb246Z2V0Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlXTsKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpnZXRD
b25maWd1cmF0aW9uQW5kQ29udGludWVdOwogI2Vsc2UKLSAgICBnZXRDb25maWd1cmF0aW9uQW5k
Q29udGludWUoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbjo6Tm8pOworICAgIGdl
dENvbmZpZ3VyYXRpb25BbmRDb250aW51ZShXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlv
bkluSW1hZ2U6Ok5vKTsKICNlbmRpZgogfQogCkBAIC0xMDQwMCwxMCArMTA5MDUsMTAgQEAgLSAo
dm9pZCljb250aW51ZUNvbnRleHRNZW51SW50ZXJhY3Rpb246KHZvaWQoXikoVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb24gKikpY28KIAogICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5
PF9XS0VsZW1lbnRBY3Rpb24gKj4+IGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCA9IFtzdHJv
bmdTZWxmLT5fYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0
OmVsZW1lbnRJbmZvLmdldCgpXTsKICAgICAgICAgICAgICAgICBhdXRvIGFjdGlvbnMgPSBtZW51
RWxlbWVudHNGcm9tRGVmYXVsdEFjdGlvbnMoZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBl
bGVtZW50SW5mbyk7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAgICAg
ICAgaWYgKFVJTWVudSAqaW1hZ2VFeHRyYWN0aW9uQ29udGV4dE1lbnUgPSBzdHJvbmdTZWxmLT5f
aW1hZ2VFeHRyYWN0aW9uQ29udGV4dE1lbnUuZ2V0KCkpCi0gICAgICAgICAgICAgICAgICAgIFth
Y3Rpb25zIGFkZE9iamVjdDppbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVudV07Ci0jZW5kaWYgLy8g
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAg
ICAgICAgICAgICAgIGlmIChVSU1lbnUgKm1lbnUgPSBzdHJvbmdTZWxmLT5fY29udGV4dE1lbnVG
b3JNYWNoaW5lUmVhZGFibGVDb2RlLmdldCgpKQorICAgICAgICAgICAgICAgICAgICBbYWN0aW9u
cyBhZGRPYmplY3Q6bWVudV07CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAg
ICAgICAgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6c3Ryb25nU2VsZi0+X3Bv
c2l0aW9uSW5mb3JtYXRpb24udGl0bGUgY2hpbGRyZW46YWN0aW9uc107CiAgICAgICAgICAgICB9
OwogCkBAIC0xMDY2Nyw5ICsxMTE3Miw5IEBAIC0gKHZvaWQpY29udGV4dE1lbnVJbnRlcmFjdGlv
bjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gd2lsbEVuZEZvCiAgICAg
X2NvbnRleHRNZW51SGFzUmVxdWVzdGVkTGVnYWN5RGF0YSA9IE5POwogICAgIF9jb250ZXh0TWVu
dUVsZW1lbnRJbmZvID0gbnVsbHB0cjsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQot
ICAgIF9pbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVudS5jbGVhcigpOwotI2VuZGlmIC8vIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBfY29u
dGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFibGVDb2RlLmNsZWFyKCk7CisjZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQogCiAgICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxm
ID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildICgpIHsKICAgICAgICAgYXV0byBz
dHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY1ZTY5NTBlNGNkMWQyM2YwNjZjZTY1YmY3ZTU2OTY0Y2IwMDcxNTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lz
R2VzdHVyZVJlY29nbml6ZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisKKyNpbmNsdWRlIDxVSUtpdC9VSUtpdC5oPgorCitAY2xhc3MgV0tJbWFnZUFuYWx5c2lz
R2VzdHVyZVJlY29nbml6ZXI7CisKK0Bwcm90b2NvbCBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVj
b2duaXplckRlbGVnYXRlIDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+CistICh2b2lkKWlt
YWdlQW5hbHlzaXNHZXN0dXJlRGlkQmVnaW46KFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZTsKKy0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRGYWlsOihXS0lt
YWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmU7CitAZW5kCisKK0BpbnRlcmZh
Y2UgV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgOiBVSUxvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJl
RGVsZWdhdGU6KFVJVmlldyA8V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0
ZT4gKilkZWxlZ2F0ZTsKKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ1YjZmNTllMzJhYjgyNDEyZTYzNzI0NzBmNzZkMmU0YzUyZDgwMjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lz
R2VzdHVyZVJlY29nbml6ZXIubW0KQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXpl
ci5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorCitAaW1wbGVtZW50YXRpb24gV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgewor
ICAgIF9fd2VhayBVSVZpZXcgPFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdh
dGU+ICpfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU7Cit9CisKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8
V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZQorewor
ICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgX2ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlID0gZGVsZWdhdGU7Cisg
ICAgc2VsZi5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgIHNlbGYubWluaW11bVByZXNzRHVyYXRp
b24gPSAwLjE7CisgICAgc2VsZi5hbGxvd2FibGVNb3ZlbWVudCA9IDA7CisgICAgc2VsZi5uYW1l
ID0gQCJJbWFnZSBhbmFseXNpcyI7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0
U3RhdGU6KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSlzdGF0ZQoreworICAgIGF1dG8gcHJldmlv
dXNTdGF0ZSA9IHNlbGYuc3RhdGU7CisgICAgc3VwZXIuc3RhdGUgPSBzdGF0ZTsKKworICAgIGF1
dG8gbmV3U3RhdGUgPSBzZWxmLnN0YXRlOworICAgIGlmIChwcmV2aW91c1N0YXRlID09IG5ld1N0
YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobmV3U3RhdGUgPT0gVUlHZXN0dXJlUmVj
b2duaXplclN0YXRlQmVnYW4pCisgICAgICAgIFtfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyRGVsZWdhdGUgaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRCZWdpbjpzZWxmXTsKKyAgICBlbHNl
IGlmIChuZXdTdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQpCisgICAgICAg
IFtfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUgaW1hZ2VBbmFseXNpc0dl
c3R1cmVEaWRGYWlsOnNlbGZdOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjlkYTBhMGUzMGM2ZTZiOWRm
MzlmYmMzMDlhY2YwZGM5N2U5MWJkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rp
b25HZXN0dXJlUmVjb2duaXplci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0KLSNpbmNsdWRlIDxVSUtpdC9VSUtpdC5oPgotCi1AY2xh
c3MgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKLQotQHByb3RvY29sIFdLSW1h
Z2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSA8VUlHZXN0dXJlUmVjb2duaXpl
ckRlbGVnYXRlPgotLSAodm9pZClpbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkQmVnaW46KFdLSW1h
Z2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlOwotLSAodm9pZClpbWFnZUV4
dHJhY3Rpb25HZXN0dXJlRGlkRmFpbDooV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciAqKWdlc3R1cmU7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJl
UmVjb2duaXplciA6IFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIKLQotLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZURlbGVnYXRlOihVSVZpZXcgPFdLSW1h
Z2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZTsKLQotQGVu
ZAotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4
dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxMGU4MzQzMjBjZjkxZjAyZDU0YTk5NGU3NzUxNTMxNGJiNDlhN2I3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tCisr
KyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmgiCi0K
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQot
QGltcGxlbWVudGF0aW9uIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgewotICAg
IF9fd2VhayBVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0
ZT4gKl9pbWFnZUV4dHJhY3Rpb25EZWxlZ2F0ZTsKLX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZURlbGVnYXRlOihVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0
aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZQotewotICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2ltYWdlRXh0
cmFjdGlvbkRlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAgc2VsZi5kZWxlZ2F0ZSA9IGRlbGVnYXRl
OwotICAgIHNlbGYubWluaW11bVByZXNzRHVyYXRpb24gPSAwLjE7Ci0gICAgc2VsZi5hbGxvd2Fi
bGVNb3ZlbWVudCA9IDA7Ci0gICAgc2VsZi5uYW1lID0gQCJJbWFnZSBleHRyYWN0aW9uIjsKLSAg
ICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZClzZXRTdGF0ZTooVUlHZXN0dXJlUmVjb2duaXpl
clN0YXRlKXN0YXRlCi17Ci0gICAgYXV0byBwcmV2aW91c1N0YXRlID0gc2VsZi5zdGF0ZTsKLSAg
ICBzdXBlci5zdGF0ZSA9IHN0YXRlOwotCi0gICAgYXV0byBuZXdTdGF0ZSA9IHNlbGYuc3RhdGU7
Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgPT0gbmV3U3RhdGUpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChuZXdTdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVCZWdhbikKLSAgICAg
ICAgW19pbWFnZUV4dHJhY3Rpb25EZWxlZ2F0ZSBpbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkQmVn
aW46c2VsZl07Ci0gICAgZWxzZSBpZiAobmV3U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0
YXRlRmFpbGVkKQotICAgICAgICBbX2ltYWdlRXh0cmFjdGlvbkRlbGVnYXRlIGltYWdlRXh0cmFj
dGlvbkdlc3R1cmVEaWRGYWlsOnNlbGZdOwotfQotCi1AZW5kCi0KLSNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggODk0NDJjZDkyMzMy
NjRkMDliZTBlMzgwY2M2NjAxM2YzZGQ5MjBhZi4uZGQ3YjQ5N2FhNjRiZjdhMjNlZWYxODQ4NmVi
Y2I0NDNhMzU4NzFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmgKQEAgLTEzMCw5ICsxMzAsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBk
b25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIHdhc0V2
ZW50SGFuZGxlZCkgb3ZlcnJpZGU7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgY29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKyAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBp
bWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpIG92
ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJM
JiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3Zl
cnJpZGU7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9w
dXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggYzRjMDU0ZmQ1ZGIzZjdh
Yzg3OGY5OGQzMWVkOTkyZjQ1OGEwMTI4My4uYzJkZThkNmVhN2MwYmNhZmEwOTE0YzFmNTJhZTRk
NjQ1ZGY4NjlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbQpAQCAtNDc4LDE2ICs0NzgsMTYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiBldmVudCwgYm9v
bAogICAgIG1faW1wbC0+ZG9uZVdpdGhLZXlFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVu
dFdhc0hhbmRsZWQpOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VF
eHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0JiYpPiYmIGNvbXBsZXRpb24pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0VGV4dFJl
Y29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9uUmVz
dWx0JiYpPiYmIGNvbXBsZXRpb24pCiB7Ci0gICAgbV9pbXBsLT5yZXF1ZXN0SW1hZ2VFeHRyYWN0
aW9uKGltYWdlVVJMLCBpbWFnZURhdGEsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1w
bC0+cmVxdWVzdFRleHRSZWNvZ25pdGlvbihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNv
bXBsZXRpb24pKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUNhblJldmVhbElt
YWdlKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkws
IFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBtX2ltcGwtPmNvbXB1dGVDYW5SZXZlYWxJbWFnZShp
bWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+
Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZN
b3ZlKGNvbXBsZXRpb24pKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xs
ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM1ODAyZGI4MmM2MGM0NzE4MTk5
YzQ4NmQ0NTg3ZmNhOGE3ODI4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25Q
cmV2aWV3Q29udHJvbGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLQotI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotY2xhc3MgV2ViUGFnZVByb3h5OwotfQotCi1AY2xhc3MgUUxQcmV2aWV3
UGFuZWw7Ci0KLUBpbnRlcmZhY2UgV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlciA6
IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYpcGFnZSBpbWFnZURhdGE6KE5TRGF0YSAqKWRhdGEgdGl0bGU6KE5TU3RyaW5nICopdGl0
bGUgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkw7Ci0tICh2b2lkKWJlZ2luQ29udHJvbDooUUxQ
cmV2aWV3UGFuZWwgKilwYW5lbDsKLS0gKEJPT0wpaXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFu
ZWwgKilwYW5lbDsKLS0gKHZvaWQpZW5kQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsK
LS0gKHZvaWQpY2xvc2VQYW5lbElmTmVjZXNzYXJ5OwotQGVuZAotCi0jZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0Nv
bnRyb2xsZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4NGMzZGUwZmYyYWM5
OGFkYWU5NGFlZmM4MGEyZmQwZjQwMzViZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRy
YWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV0tJbWFnZUV4dHJh
Y3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIgotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
ICYmIFBMQVRGT1JNKE1BQykKLQotI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0IDxw
YWwvbWFjL1F1aWNrTG9va1VJU29mdExpbmsuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
LQotQGludGVyZmFjZSBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyICgpIDxRTFBy
ZXZpZXdQYW5lbERlbGVnYXRlLCBRTFByZXZpZXdQYW5lbERhdGFTb3VyY2U+Ci1AZW5kCi0KLUBp
bXBsZW1lbnRhdGlvbiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyIHsKLSAgICBS
ZXRhaW5QdHI8UUxJdGVtPiBfaXRlbTsKLSAgICBSZXRhaW5QdHI8TlNEYXRhPiBfaW1hZ2VEYXRh
OwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpcGFnZSBpbWFnZURhdGE6KE5TRGF0YSAqKWltYWdlRGF0YSB0aXRsZTooTlNTdHJpbmcgKil0
aXRsZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTAotewotICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2ltYWdlRGF0YSA9IGltYWdl
RGF0YTsKLSAgICBfaXRlbSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NRTEl0ZW1JbnN0YW5jZSgpIGlu
aXRXaXRoRGF0YVByb3ZpZGVyOihpZClzZWxmIGNvbnRlbnRUeXBlOlVUVHlwZVBORyBwcmV2aWV3
VGl0bGU6dGl0bGVdKTsKLSAgICBpZiAoW19pdGVtIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc2V0UHJldmlld09wdGlvbnM6KV0pIHsKLSAgICAgICAgYXV0byBwcmV2aWV3T3B0aW9ucyA9
IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJd
KTsKLSAgICAgICAgaWYgKGltYWdlVVJMKQotICAgICAgICAgICAgW3ByZXZpZXdPcHRpb25zIHNl
dE9iamVjdDppbWFnZVVSTCBmb3JLZXk6QCJpbWFnZVVSTCJdOwotICAgICAgICBpZiAoTlNVUkwg
KnBhZ2VVUkwgPSBVUkwgeyBVUkwgeyB9LCBwYWdlLmN1cnJlbnRVUkwoKSB9KQotICAgICAgICAg
ICAgW3ByZXZpZXdPcHRpb25zIHNldE9iamVjdDpwYWdlVVJMIGZvcktleTpAInBhZ2VVUkwiXTsK
LSAgICAgICAgW19pdGVtIHNldFByZXZpZXdPcHRpb25zOnByZXZpZXdPcHRpb25zLmdldCgpXTsK
LSAgICB9Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZCliZWdpbkNvbnRyb2w6KFFM
UHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICBwYW5lbC5kYXRhU291cmNlID0gc2VsZjsKLSAg
ICBwYW5lbC5kZWxlZ2F0ZSA9IHNlbGY7Ci19Ci0KLS0gKHZvaWQpZW5kQ29udHJvbDooUUxQcmV2
aWV3UGFuZWwgKilwYW5lbAotewotICAgIGlmIChwYW5lbC5kYXRhU291cmNlID09IHNlbGYpCi0g
ICAgICAgIHBhbmVsLmRhdGFTb3VyY2UgPSBuaWw7Ci0KLSAgICBpZiAocGFuZWwuZGVsZWdhdGUg
PT0gc2VsZikKLSAgICAgICAgcGFuZWwuZGVsZWdhdGUgPSBuaWw7Ci19Ci0KLS0gKHZvaWQpY2xv
c2VQYW5lbElmTmVjZXNzYXJ5Ci17Ci0gICAgaWYgKCFQQUw6OmlzUXVpY2tMb29rVUlGcmFtZXdv
cmtBdmFpbGFibGUoKSB8fCAhW1BBTDo6Z2V0UUxQcmV2aWV3UGFuZWxDbGFzcygpIHNoYXJlZFBy
ZXZpZXdQYW5lbEV4aXN0c10pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChhdXRvIHBhbmVs
ID0gW1BBTDo6Z2V0UUxQcmV2aWV3UGFuZWxDbGFzcygpIHNoYXJlZFByZXZpZXdQYW5lbF07IFtz
ZWxmIGlzQ29udHJvbGxpbmc6cGFuZWxdKQotICAgICAgICBbcGFuZWwgY2xvc2VdOwotfQotCi0t
IChCT09MKWlzQ29udHJvbGxpbmc6KFFMUHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICByZXR1
cm4gcGFuZWwuZGF0YVNvdXJjZSA9PSBzZWxmICYmIHBhbmVsLmRlbGVnYXRlID09IHNlbGY7Ci19
Ci0KLSNwcmFnbWEgbWFyayAtIFFMUHJldmlld0l0ZW1EYXRhUHJvdmlkZXIKLQotLSAoTlNEYXRh
ICopcHJvdmlkZURhdGFGb3JJdGVtOihRTEl0ZW0gKilpdGVtCi17Ci0gICAgQVNTRVJUKGl0ZW0g
PT0gX2l0ZW0pOwotICAgIHJldHVybiBfaW1hZ2VEYXRhLmdldCgpOwotfQotCi0jcHJhZ21hIG1h
cmsgLSBRTFByZXZpZXdQYW5lbERhdGFTb3VyY2UKLQotLSAoTlNJbnRlZ2VyKW51bWJlck9mUHJl
dmlld0l0ZW1zSW5QcmV2aWV3UGFuZWw6KFFMUHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICBy
ZXR1cm4gMTsKLX0KLQotLSAoaWQgPFFMUHJldmlld0l0ZW0+KXByZXZpZXdQYW5lbDooUUxQcmV2
aWV3UGFuZWwgKilwYW5lbCBwcmV2aWV3SXRlbUF0SW5kZXg6KE5TSW50ZWdlcilpbmRleAotewot
ICAgIEFTU0VSVCghaW5kZXgpOwotICAgIHJldHVybiBfaXRlbS5nZXQoKTsKLX0KLQotI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tJbWFnZUV4
dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlckFkZGl0aW9ucy5tbT4KLSNlbmRpZgotCi1AZW5kCi0K
LSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmll
d0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJj
aFByZXZpZXdDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdlOTdiM2E3YTc4ODJhMDc0ZmQ0NGI0
ZTdhYWU4NzU1OGRhODk2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmgKQEAgLTAsMCArMSw0NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KKworQGNsYXNzIFFM
UHJldmlld1BhbmVsOworCitAaW50ZXJmYWNlIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xs
ZXIgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQ
YWdlUHJveHkmKXBhZ2UgaW1hZ2VEYXRhOihOU0RhdGEgKilkYXRhIHRpdGxlOihOU1N0cmluZyAq
KXRpdGxlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMOworLSAodm9pZCliZWdpbkNvbnRyb2w6
KFFMUHJldmlld1BhbmVsICopcGFuZWw7CistIChCT09MKWlzQ29udHJvbGxpbmc6KFFMUHJldmll
d1BhbmVsICopcGFuZWw7CistICh2b2lkKWVuZENvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFu
ZWw7CistICh2b2lkKWNsb3NlUGFuZWxJZk5lY2Vzc2FyeTsKK0BlbmQKKworI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJv
bGxlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NWI5ZjJkNDc1YTUwN2E1OGUwMzljNDg2YTQxMzU3ODM5OTlj
YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlz
dWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW0KQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0Nv
bnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFD
KQorCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgorCitAaW50ZXJmYWNlIFdL
VmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgKCkgPFFMUHJldmlld1BhbmVsRGVsZWdhdGUs
IFFMUHJldmlld1BhbmVsRGF0YVNvdXJjZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLVmlz
dWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgeworICAgIFJldGFpblB0cjxRTEl0ZW0+IF9pdGVt
OworICAgIFJldGFpblB0cjxOU0RhdGE+IF9pbWFnZURhdGE7Cit9CisKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIGltYWdlRGF0YTooTlNE
YXRhICopaW1hZ2VEYXRhIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlVVJMOihOU1VSTCAq
KWltYWdlVVJMCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBfaW1hZ2VEYXRhID0gaW1hZ2VEYXRhOworICAgIF9pdGVtID0gYWRv
cHROUyhbUEFMOjphbGxvY1FMSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhEYXRhUHJvdmlkZXI6KGlk
KXNlbGYgY29udGVudFR5cGU6VVRUeXBlUE5HIHByZXZpZXdUaXRsZTp0aXRsZV0pOworICAgIGlm
IChbX2l0ZW0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRQcmV2aWV3T3B0aW9uczop
XSkgeworICAgICAgICBhdXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml0pOworICAgICAgICBpZiAoaW1hZ2VV
UkwpCisgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OmltYWdlVVJMIGZvcktl
eTpAImltYWdlVVJMIl07CisgICAgICAgIGlmIChOU1VSTCAqcGFnZVVSTCA9IFVSTCB7IFVSTCB7
IH0sIHBhZ2UuY3VycmVudFVSTCgpIH0pCisgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0
T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVSTCJdOworICAgICAgICBbX2l0ZW0gc2V0UHJl
dmlld09wdGlvbnM6cHJldmlld09wdGlvbnMuZ2V0KCldOworICAgIH0KKworICAgIHJldHVybiBz
ZWxmOworfQorCistICh2b2lkKWJlZ2luQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAor
eworICAgIHBhbmVsLmRhdGFTb3VyY2UgPSBzZWxmOworICAgIHBhbmVsLmRlbGVnYXRlID0gc2Vs
ZjsKK30KKworLSAodm9pZCllbmRDb250cm9sOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsCit7Cisg
ICAgaWYgKHBhbmVsLmRhdGFTb3VyY2UgPT0gc2VsZikKKyAgICAgICAgcGFuZWwuZGF0YVNvdXJj
ZSA9IG5pbDsKKworICAgIGlmIChwYW5lbC5kZWxlZ2F0ZSA9PSBzZWxmKQorICAgICAgICBwYW5l
bC5kZWxlZ2F0ZSA9IG5pbDsKK30KKworLSAodm9pZCljbG9zZVBhbmVsSWZOZWNlc3NhcnkKK3sK
KyAgICBpZiAoIVBBTDo6aXNRdWlja0xvb2tVSUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFbUEFM
OjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1BhbmVsRXhpc3RzXSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8gcGFuZWwgPSBbUEFMOjpnZXRRTFByZXZpZXdQ
YW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1BhbmVsXTsgW3NlbGYgaXNDb250cm9sbGluZzpwYW5l
bF0pCisgICAgICAgIFtwYW5lbCBjbG9zZV07Cit9CisKKy0gKEJPT0wpaXNDb250cm9sbGluZzoo
UUxQcmV2aWV3UGFuZWwgKilwYW5lbAoreworICAgIHJldHVybiBwYW5lbC5kYXRhU291cmNlID09
IHNlbGYgJiYgcGFuZWwuZGVsZWdhdGUgPT0gc2VsZjsKK30KKworI3ByYWdtYSBtYXJrIC0gUUxQ
cmV2aWV3SXRlbURhdGFQcm92aWRlcgorCistIChOU0RhdGEgKilwcm92aWRlRGF0YUZvckl0ZW06
KFFMSXRlbSAqKWl0ZW0KK3sKKyAgICBBU1NFUlQoaXRlbSA9PSBfaXRlbSk7CisgICAgcmV0dXJu
IF9pbWFnZURhdGEuZ2V0KCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFFMUHJldmlld1BhbmVsRGF0
YVNvdXJjZQorCistIChOU0ludGVnZXIpbnVtYmVyT2ZQcmV2aWV3SXRlbXNJblByZXZpZXdQYW5l
bDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAoreworICAgIHJldHVybiAxOworfQorCistIChpZCA8
UUxQcmV2aWV3SXRlbT4pcHJldmlld1BhbmVsOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsIHByZXZp
ZXdJdGVtQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4Cit7CisgICAgQVNTRVJUKCFpbmRleCk7Cisg
ICAgcmV0dXJuIF9pdGVtLmdldCgpOworfQorCisjcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdQYW5l
bERlbGVnYXRlCisKKy0gKFFMUHJldmlld0FjdGl2aXR5KXByZXZpZXdQYW5lbDooUUxQcmV2aWV3
UGFuZWwgKilwcmV2aWV3UGFuZWwgaW5pdGlhbEFjdGl2aXR5Rm9ySXRlbTooaWQgPFFMUHJldmll
d0l0ZW0+KWl0ZW0KK3sKKyAgICByZXR1cm4gUUxQcmV2aWV3QWN0aXZpdHlWaXN1YWxTZWFyY2g7
Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRl
eHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5tbQppbmRleCAzMjNiZDM1OTdmNDk0NmViNzFlMDQ2MmQxOTcyMmVhZTVi
YWIwNzY3Li5mODA5MGFkMTZkZDNkNjk2ZDBkYWYzYmFhNDE2MDRjODY4ZDA4Njg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1h
Yy5tbQpAQCAtNDM2LDcgKzQzNiw3IEBAIHN0YXRpYyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlm
aWVyKGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1JlbG9hZDoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRp
ZmllclJlbG9hZDsKIAotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6Cisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKICAgICAgICAgcmV0dXJuIF9X
S01lbnVJdGVtSWRlbnRpZmllclJldmVhbEltYWdlOwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWI6CkBAIC01MDcsMTQgKzUwNywxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51
UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0
TWVudQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRN
ZW51SXRlbURhdGE+IHJldmVhbEltYWdlSXRlbTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRl
eHRNZW51SXRlbURhdGE+IGxvb2tVcEltYWdlSXRlbTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICBmaWx0ZXJlZEl0ZW1zLnJl
bW92ZUZpcnN0TWF0Y2hpbmcoWyZdIChhdXRvJiBpdGVtKSB7Ci0gICAgICAgIGlmIChpdGVtLmFj
dGlvbigpICE9IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKQorICAgICAg
ICBpZiAoaXRlbS5hY3Rpb24oKSAhPSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJ
bWFnZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICByZXZlYWxJbWFnZUl0
ZW0gPSB7IGl0ZW0gfTsKKyAgICAgICAgbG9va1VwSW1hZ2VJdGVtID0geyBpdGVtIH07CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0pOwogI2VuZGlmCkBAIC01MzEsNyArNTMxLDcgQEAgdm9p
ZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBW
ZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICBhdXRvIGltYWdlQml0bWFwID0gbV9jb250ZXh0Lndl
YkhpdFRlc3RSZXN1bHREYXRhKCkuaW1hZ2VCaXRtYXA7CiAKICAgICBhdXRvIHNwYXJzZU1lbnVJ
dGVtcyA9IHJldGFpblB0cihbTlNQb2ludGVyQXJyYXkgc3Ryb25nT2JqZWN0c1BvaW50ZXJBcnJh
eV0pOwotICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFn
ZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRt
YXApLCByZXZlYWxJbWFnZUl0ZW0gPSBXVEZNb3ZlKHJldmVhbEltYWdlSXRlbSksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0g
ZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRl
bXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1
dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1v
dmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBsb29rVXBJ
bWFnZUl0ZW0gPSBXVEZNb3ZlKGxvb2tVcEltYWdlSXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVt
cy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0
ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaW5k
ZXggPCBbc3BhcnNlTWVudUl0ZW1zIGNvdW50XSk7CiAgICAgICAgIEFTU0VSVCghW3NwYXJzZU1l
bnVJdGVtcyBwb2ludGVyQXRJbmRleDppbmRleF0pOwogICAgICAgICBbc3BhcnNlTWVudUl0ZW1z
IHJlcGxhY2VQb2ludGVyQXRJbmRleDppbmRleCB3aXRoUG9pbnRlcjppdGVtXTsKQEAgLTU0MSwx
MSArNTQxLDExIEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVG
cm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgICAgIFttZW51IHNldEl0
ZW1BcnJheTpbc3BhcnNlTWVudUl0ZW1zIGFsbE9iamVjdHNdXTsKIAogICAgICAgICBhdXRvIHBh
Z2UgPSBtYWtlUmVmUHRyKHdlYWtQYWdlLmdldCgpKTsKLSAgICAgICAgaWYgKHJldmVhbEltYWdl
SXRlbSAmJiBwYWdlICYmIGltYWdlQml0bWFwKSB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCi0gICAgICAgICAgICBwYWdlLT5jb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoaW1hZ2VVUkwsICpp
bWFnZUJpdG1hcCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCByZXZl
YWxJbWFnZUl0ZW0gPSBXVEZNb3ZlKCpyZXZlYWxJbWFnZUl0ZW0pXSAoYm9vbCBjYW5SZXZlYWxJ
bWFnZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNhblJldmVhbEltYWdlKQotICAg
ICAgICAgICAgICAgICAgICBbcHJvdGVjdGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVu
dUFjdGlvbkl0ZW0ocmV2ZWFsSW1hZ2VJdGVtKS5nZXQoKV07CisgICAgICAgIGlmIChsb29rVXBJ
bWFnZUl0ZW0gJiYgcGFnZSAmJiBpbWFnZUJpdG1hcCkgeworI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICAgICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGlt
YWdlVVJMLCAqaW1hZ2VCaXRtYXAsIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgbG9va1VwSW1hZ2VJdGVtID0gV1RGTW92ZSgqbG9va1VwSW1hZ2VJdGVtKV0gKGJvb2wg
aGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGhh
c1Zpc3VhbFNlYXJjaFJlc3VsdHMpCisgICAgICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlz
LT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51QWN0aW9uSXRlbShsb29rVXBJbWFnZUl0ZW0pLmdl
dCgpXTsKICAgICAgICAgICAgIH0pOwogI2Vsc2UKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShp
bWFnZVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbQppbmRleCAwODM5NGVkOTcyNGMxYjVhYzI2NzVmYjhmZmNiYWUwNzAxZTYzNTBjLi40MzM3
NzM5ZTc0YTA2MjQ4YTU0MzYxNzc2YjcxZmQyOTMyMjcyZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTQ1LDggKzQ1LDggQEAKICNp
bXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXIuaCIKICNpbXBv
cnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCi0jaW1wb3J0ICJXS0lt
YWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1NoYXJpbmdTZXJ2
aWNlUGlja2VyRGVsZWdhdGUuaCIKKyNpbXBvcnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXIuaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQgIldl
YlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCkBAIC0xMTAs
NiArMTEwLDggQEAgLSAodm9pZCljb250ZXh0TWVudUFjdGlvbjooTlNNZW51SXRlbSAqKXNlbmRl
cgogQGVuZCAvLyBpbXBsZW1lbnRhdGlvbiBXS1BERk1lbnVUYXJnZXQKICNlbmRpZgogCisjaW1w
b3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJU29mdExpbmsuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAKQEAgLTcyMiwyNiArNzI0LDY2IEBAIENv
bG9yIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1VbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5QcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmll
d1BhbmVsICpwYW5lbCkKIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbbV9p
bWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlciBiZWdpbkNvbnRyb2w6cGFuZWxdOworI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJv
bGxlciBiZWdpbkNvbnRyb2w6cGFuZWxdOwogI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjplbmRQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICpwYW5lbCkKIHsKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoYXV0byBjb250cm9sbGVyID0gc3RkOjpl
eGNoYW5nZShtX2ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLCBuaWwpKQorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoYXV0byBjb250cm9sbGVyID0gc3RkOjpleGNo
YW5nZShtX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLCBuaWwpKQogICAgICAgICBbY29u
dHJvbGxlciBlbmRDb250cm9sOnBhbmVsXTsKICNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5lY2Vzc2FyeSgpCiB7Ci0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi0gICAgW21faW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIg
Y2xvc2VQYW5lbElmTmVjZXNzYXJ5XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAg
W21fdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgY2xvc2VQYW5lbElmTmVjZXNzYXJ5XTsK
ICNlbmRpZgogfQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFw
JiBpbWFnZUJpdG1hcCwgY29uc3QgU3RyaW5nJiB0b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJM
KQoreworICAgIGlmICghUEFMOjppc1F1aWNrTG9va1VJRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwg
IVBBTDo6Z2V0UUxQcmV2aWV3UGFuZWxDbGFzcygpIHx8ICFbUEFMOjpnZXRRTEl0ZW1DbGFzcygp
IGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aERhdGFQcm92aWRl
cjpjb250ZW50VHlwZTpwcmV2aWV3VGl0bGU6KV0pCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gaW1hZ2UgPSBpbWFnZUJpdG1hcC5tYWtlQ0dJbWFnZSgpOworICAgIGlmICghaW1hZ2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW1hZ2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVh
dGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDApKTsKKyAgICBhdXRvIGRlc3RpbmF0aW9u
ID0gYWRvcHRDRihDR0ltYWdlRGVzdGluYXRpb25DcmVhdGVXaXRoRGF0YShpbWFnZURhdGEuZ2V0
KCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVQTkcuaWRlbnRpZmllciwgMSwgbnVsbHB0
cikpOworICAgIGlmICghZGVzdGluYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIENHSW1h
Z2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9uLmdldCgpLCBpbWFnZS5nZXQoKSwgbmls
KTsKKyAgICBpZiAoIUNHSW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgp
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxl
ciA9IGFkb3B0TlMoW1tXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aFBhZ2U6KnRoaXMgaW1hZ2VEYXRhOihfX2JyaWRnZSBOU0RhdGEgKilpbWFnZURhdGEuZ2V0
KCkgdGl0bGU6dG9vbHRpcCBpbWFnZVVSTDppbWFnZVVSTF0pOworCisgICAgLy8gV2hlbiBwcmVz
ZW50aW5nIHRoZSBzaGFyZWQgUUxQcmV2aWV3UGFuZWwsIFF1aWNrTG9vayB3aWxsIHNlYXJjaCB0
aGUgcmVzcG9uZGVyIGNoYWluIGZvciBhIHN1aXRhYmxlIHBhbmVsIGNvbnRyb2xsZXIuCisgICAg
Ly8gTWFrZSBzdXJlIHRoYXQgd2UgKGJ5IGRlZmF1bHQpIHN0YXJ0IHRoZSBzZWFyY2ggYXQgdGhl
IHdlYiB2aWV3LCB3aGljaCBrbm93cyBob3cgdG8gdmVuZCB0aGUgVmlzdWFsIFNlYXJjaCBwcmV2
aWV3CisgICAgLy8gY29udHJvbGxlciBhcyBhIGRlbGVnYXRlIGFuZCBkYXRhIHNvdXJjZSBmb3Ig
dGhlIHByZXZpZXcgcGFuZWwuCisgICAgcGFnZUNsaWVudCgpLm1ha2VGaXJzdFJlc3BvbmRlcigp
OworCisgICAgYXV0byBwcmV2aWV3UGFuZWwgPSBbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNz
KCkgc2hhcmVkUHJldmlld1BhbmVsXTsKKyAgICBbcHJldmlld1BhbmVsIG1ha2VLZXlBbmRPcmRl
ckZyb250Om5pbF07CisKKyAgICBpZiAoIVttX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
IGlzQ29udHJvbGxpbmc6cHJldmlld1BhbmVsXSkgeworICAgICAgICAvLyBUaGUgV2ViS2l0IGNs
aWVudCBtYXkgaGF2ZSBvdmVycmlkZGVuIFFMUHJldmlld1BhbmVsQ29udHJvbGxlciBtZXRob2Rz
IG9uIHRoZSB2aWV3IHdpdGhvdXQgY2FsbGluZyBpbnRvIHRoZSBzdXBlcmNsYXNzLgorICAgICAg
ICAvLyBJbiB0aGlzIGNhc2UsIGhhbmQgb3ZlciBjb250cm9sIHRvIHRoZSBjbGllbnQgYW5kIGNs
ZWFyIG91dCBvdXIgc3RhdGUgZWFnZXJseSwgc2luY2Ugd2UgZG9uJ3QgZXhwZWN0IGFueSBmdXJ0
aGVyIGRlbGVnYXRlCisgICAgICAgIC8vIGNhbGxzIG9uY2UgdGhlIHByZXZpZXcgcGFuZWwgaXMg
ZGlzbWlzc2VkLgorICAgICAgICBtX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmNsZWFy
KCk7CisgICAgfQorfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1ZmUyZWQxNTU3
ZWMyNDBmNDVhYmRiMTY1YjZlMDYwMzhmMjExY2QuLjdlMzE2YTViM2FmOTU5MTllNjYzMzQyYzM4
Y2UzOGE5YzU0N2VjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjAxNiw3ICsyMDE2LDcgQEAKIAkJRjQyRDYzNDEyMkEwRUZERjAw
RDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyRDYzM0YyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1
dG9jb3JyZWN0aW9uRGF0YS5oICovOyB9OwogCQlGNDMwRTk0MjIyNDczMzVGMDA1RkUwNTMgLyog
V2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQzMEU5NDEyMjQ3MzJBOTAwNUZFMDUzIC8qIFdlYnNpdGVNZXRh
Vmlld3BvcnRQb2xpY3kuaCAqLzsgfTsKIAkJRjQzMEU5NDQyMjQ3M0RGRjAwNUZFMDUzIC8qIFdl
YkNvbnRlbnRNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDMwRTk0MzIyNDczREI4MDA1RkUwNTMgLyogV2ViQ29udGVudE1vZGUuaCAqLzsgfTsK
LQkJRjQzNTFCOUUyNUVFQzg0QzAwRDYzODkyIC8qIEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzNTFCOUQy
NUVFQzg0QzAwRDYzODkyIC8qIEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oICovOyB9OworCQlG
NDM1MUI5RTI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM1MUI5RDI1RUVD
ODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmggKi87IH07CiAJCUY0MzhD
RDFDMjI0MTQyMTQwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMUIyMjQxNDBBNjAwREU2
RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwogCQlGNDM4Q0QxRjIyNDE0RDQwMDBERTZEREEgLyogV0tXZWJw
YWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQzOENEMUUyMjQxNEQ0MDAwREU2RERBIC8qIFdLV2VicGFnZVByZWZl
cmVuY2VzSW50ZXJuYWwuaCAqLzsgfTsKIAkJRjQzOENEMjEyMjQxRjY5NTAwREU2RERBIC8qIFdL
V2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMjAyMjQxRjY5NTAwREU2RERBIC8qIFdLV2VicGFnZVBy
ZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0yMDMwLDkgKzIwMzAsOSBAQAogCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1
MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDhEMkE4NDIxNTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggKi87IH07CiAJ
CUY0OTZBNDMxMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTZBNDJGMUY1
OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCAqLzsgfTsKIAkJRjQ5
NzRFNzYyNjVFQ0JCQzAwQjQ5QjhDIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NkVERUYyNjVFQjJCMDAw
MzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oICovOyB9OwotCQlGNDk3NUNGMjI2MjRC
ODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5NzVDRjEyNjI0Qjgw
QTAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCAqLzsgfTsK
KwkJRjQ5NzVDRjIyNjI0QjgwQTAwM0M2MjZFIC8qIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
LmggKi87IH07CiAJCUY0QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlz
dEhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi87
IH07Ci0JCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJl
UmVjb2duaXplci5oICovOyB9OworCQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFn
ZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplci5oICovOyB9OwogCQlGNENCMDlFNTIyNUQ1QTA5MDA4OTE0
ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENCMDlFNDIyNUQ1QTAzMDA4OTE0ODcgLyogV2Vic2l0
ZU1lZGlhU291cmNlUG9saWN5LmggKi87IH07CiAJCUY0Q0YxRTlEMjVFNDBEQ0MwMDBGOUQ3MyAv
KiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0YxRTlCMjVFNDBEQ0MwMDBGOUQ3MyAv
KiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaCAqLzsgfTsKIAkJRjRENUY1
MUQyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ1RjUxOTIwNjA4
N0EwMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKQEAg
LTU5NjQsOCArNTk2NCw4IEBACiAJCUY0MkQ2MzQwMjJBMEVGRDMwMEQyRkIzQSAvKiBXZWJBdXRv
Y29ycmVjdGlvbkRhdGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25E
YXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDMwRTk0MTIyNDczMkE5MDA1
RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJz
aXRlTWV0YVZpZXdwb3J0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
MzBFOTQzMjI0NzNEQjgwMDVGRTA1MyAvKiBXZWJDb250ZW50TW9kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb250ZW50TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDM1MUI5
RDI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGNDM1MUI5RjI1RUVDODc4MDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0
aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIg
LyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDM1MUI5RjI1
RUVDODc4MDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDM4Q0QxQjIyNDE0MEE2MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVy
ZW5jZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJwYWdlUHJlZmVyZW5jZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzOENEMUQyMjQxNEFENjAwREU2RERBIC8qIFdLV2VicGFn
ZVByZWZlcmVuY2VzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJwYWdlUHJlZmVyZW5j
ZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzhDRDFFMjI0MTRENDAwMERF
NkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
V2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTU5ODYsMTQgKzU5ODYsMTQgQEAKIAkJRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFw
cEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ5NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rp
b25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgcGF0
aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ5NkE0MzAxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25T
dGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5t
bTsgcGF0aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFj
dGlvblByZXZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1hZ2VFeHRyYWN0aW9u
UHJldmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ5NzVD
RjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDk3NUNGMTI2MjRCODBBMDAz
QzYyNkUgLyogV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0OTc1Q0YzMjYyNEI5MTgwMDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZp
ZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tWaXN1YWxTZWFyY2hQcmV2
aWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBNkQ2QkIy
NTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUY0QTdDRTg0MjY2N0VCNEUwMDIyODY4NSAvKiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1
bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QTdDRTg0MjY2N0VCNEUwMDIyODY4NSAvKiBUZXh0
UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29nbml0aW9u
VXBkYXRlUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QUM2NTVFMjJB
MzE0MEUwMEEwNTYwNyAvKiBXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXNJT1MubW07IHBhdGggPSBpb3MvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEIzNzhEMDIxRERCQkFCMDA5NUEzNzgg
LyogV2ViVW5kb1N0ZXBJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVbmRvU3RlcElELmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSW1hZ2VF
eHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlRXh0cmFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QkEz
M0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2du
aXplci5tbTsgcGF0aCA9IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTgg
LyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJ
bWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlQW5hbHlz
aXNHZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEJB
MzNGMTI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXpl
ci5tbTsgcGF0aCA9IGlvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDQjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdl
YnNpdGVNZWRpYVNvdXJjZVBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTWVkaWFTb3Vy
Y2VQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDRjFFOUIyNUU0MERD
QzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIuaDsgcGF0aCA9IGlvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3Jj
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDRjFFOUMyNUU0MERDQzAwMEY5
RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlci5tbTsgcGF0aCA9IGlvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5m
b3JjZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NzI0LDcgKzY3MjQsNiBA
QAogCQkJCTQ2QUM1MzI0MjVERUQ4MUUwMDNCNTdFQyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvblBh
cmFtZXRlcnMuaCAqLywKIAkJCQlGNDBCQkI0MDI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vz
c1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCAqLywKIAkJCQkxQUM3NUExQTFCMzM2ODI3MDA1Njc0
NUIgLyogSGFuZ0RldGVjdGlvbkRpc2FibGVyLmggKi8sCi0JCQkJRjRBN0NFODQyNjY3RUI0RTAw
MjI4Njg1IC8qIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oICovLAogCQkJCUJDQ0Y2QjIz
MTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlvbnMuaCAqLywKIAkJCQk5OTlCN0VEODI1NTBF
NEE4MDBGNDUwQTQgLyogSW5zcGVjdG9yRXh0ZW5zaW9uVHlwZXMuY3BwICovLAogCQkJCTk5QkUz
QjE2MjU0MzNCOTQwMEM2NTUxQyAvKiBJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oICovLApAQCAt
Njc3Nyw2ICs2Nzc2LDcgQEAKIAkJCQk4M0Y5NjQ0QjFGQTBGNzYyMDBDNDc3NTAgLyogU2hhcmVk
U3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwICovLAogCQkJCTgzRjk2NDRDMUZBMEY3NjMwMEM0
Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oICovLAogCQkJCTFBNUU0REEz
MTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggKi8sCisJCQkJRjRBN0NFODQy
NjY3RUI0RTAwMjI4Njg1IC8qIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oICovLAogCQkJ
CTJGRDQzQjkyMUZBMDA2QTMwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmNwcCAqLywKIAkJ
CQkyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1MUMgLyogVG91Y2hCYXJNZW51RGF0YS5oICovLAogCQkJ
CTJGODA5REQ1MUZCRDFCQzkwMDVGRTYzQSAvKiBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgKi8s
CkBAIC03NzY4LDggKzc3NjgsOCBAQAogCQkJCTBGQ0I0RTQxMThCQkUwNDQwMDBGQ0ZDOSAvKiBX
S0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0gKi8sCiAJCQkJRjRE
QjU0RTQyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29n
bml6ZXIuaCAqLywKIAkJCQlGNERCNTRFNTIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRM
b25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5tbSAqLywKLQkJCQlGNEJBMzNGMDI1NzU3RTg5MDAw
QTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovLAotCQkJCUY0
QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLm1tICovLAorCQkJCUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlz
aXNHZXN0dXJlUmVjb2duaXplci5oICovLAorCQkJCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAv
KiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbSAqLywKIAkJCQk5MzNERjgyRDFC
M0JDMDkwMDBBRUE5RTMgLyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oICovLAogCQkJ
CTkzM0RGODJGMUIzQkMwQjQwMEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
Lm1tICovLAogCQkJCTJERDVFMTI3MjEwQURDN0EwMERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xs
aW5nQW5pbWF0b3IuaCAqLywKQEAgLTg1MTEsOCArODUxMSw2IEBACiAJCQkJRjRGRTBBM0EyNDYz
MkIxMDAwMjYzMUUxIC8qIENvY29hQ29sb3IuaCAqLywKIAkJCQlGNEZFMEEzQzI0NjM1NjY3MDAy
NjMxRTEgLyogQ29jb2FGb250LmggKi8sCiAJCQkJNDQ4MjczNDYyNDUyOEY2MDAwQTk1NDkzIC8q
IENvY29hSW1hZ2UuaCAqLywKLQkJCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VF
eHRyYWN0aW9uVXRpbGl0aWVzLmggKi8sCi0JCQkJRjQzNTFCOUYyNUVFQzg3ODAwRDYzODkyIC8q
IEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5tbSAqLywKIAkJCQlCQ0UwOTM3NjE0RkIxMjhCMDAx
MTM4RDkgLyogTGF5ZXJIb3N0aW5nQ29udGV4dC5oICovLAogCQkJCUJDRTA5Mzc1MTRGQjEyOEIw
MDExMzhEOSAvKiBMYXllckhvc3RpbmdDb250ZXh0Lm1tICovLAogCQkJCUExNzk4QjNEMjIyRDk3
QTIwMDA3NjRCRCAvKiBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oICovLApAQCAtODUy
MCw2ICs4NTE4LDggQEAKIAkJCQlBMTc5OEIzRjIyMkQ5OEI2MDAwNzY0QkQgLyogUGF5bWVudEF1
dGhvcml6YXRpb25WaWV3Q29udHJvbGxlci5oICovLAogCQkJCUExNzk4QjQwMjIyRDk4QjYwMDA3
NjRCRCAvKiBQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTQ0
NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8sCisJCQkJ
RjQzNTFCOUQyNUVFQzg0QzAwRDYzODkyIC8qIFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oICov
LAorCQkJCUY0MzUxQjlGMjVFRUM4NzgwMEQ2Mzg5MiAvKiBUZXh0UmVjb2duaXRpb25VdGlsaXRp
ZXMubW0gKi8sCiAJCQkJQTE4MUE3OTcyMUFDQUM2MTAwNTlBMzE2IC8qIFdlYktpdEFkZGl0aW9u
cy5tbSAqLywKIAkJCQlBMUZCNjgyMjFGNkU1MTgyMDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVy
LmggKi8sCiAJCQkJQTFGQjY4MjMxRjZFNTE4MjAwQzQzRjlGIC8qIFdLQ3Jhc2hSZXBvcnRlci5t
bSAqLywKQEAgLTEwODU3LDggKzEwODU3LDYgQEAKIAkJCQk4NjgxNjBDRjE4NzY0NTM3MDAyMUU3
OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlDRENBODVDNzEzMkFCQTRF
MDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovLAogCQkJCUNEQ0E4
NUM2MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICov
LAotCQkJCUY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZp
ZXdDb250cm9sbGVyLmggKi8sCi0JCQkJRjQ5NzVDRjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJOTMyMUQ1ODUxQTM4RUUz
QzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oICovLAogCQkJCTkzMjFE
NTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8s
CiAJCQkJMEZDQjRFNUMxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3LmggKi8sCkBA
IC0xMDg3Myw2ICsxMDg3MSw4IEBACiAJCQkJMEZDQjRFNUYxOEJCRTNEOTAwMEZDRkM5IC8qIFdL
VGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSAqLywKIAkJCQkyRDI4QTQ5NTFBRjk2NUExMDBG
MTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCAqLywKIAkJCQkyRDI4QTQ5NjFBRjk2NUEx
MDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0gKi8sCisJCQkJRjQ5NzVDRjEyNjI0
QjgwQTAwM0M2MjZFIC8qIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCAqLywKKwkJ
CQlGNDk3NUNGMzI2MjRCOTE4MDAzQzYyNkUgLyogV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJv
bGxlci5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTExOTc0LDcgKzExOTc0LDYgQEAKIAkJCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1
N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxQzBDOTc0MURERDc2MDAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDM1MUI5RTI1RUVDODRDMDBENjM4OTIgLyogSW1h
Z2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkz
RTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTFFQzY5
RTE4NzIwOTIxMDBCOTUxRjAgLyogSW1wb3J0YW5jZUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMyMDRFRTMxMUM4M0U5ODAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyMzM0LDYgKzEyMzMzLDcgQEAKIAkJCQk1M0NGQkJDODIyMjREMUI1MDAy
NjY1NDYgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVF
NERBNDEyRDNCRDNEMDA5OUEyQkIgLyogVGV4dENoZWNrZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0UxQTBCRDcxQTQ4RTZDNjAwNTRFRjc0IC8qIFRleHRJbnB1dFNQSS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjQzNTFCOUUyNUVFQzg0QzAwRDYzODkyIC8qIFRleHRSZWNvZ25pdGlvblV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBRjI2MzkxNDY4N0MzOTAwNEExRThBIC8q
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUYw
NUQ4NzE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4NTcwQTMyNjQ0QkVDNTAwQzA1RjcxIC8qIFRpbWVv
dXQuaCBpbiBIZWFkZXJzICovLApAQCAtMTI3OTIsOSArMTI3OTIsOCBAQAogCQkJCTUxMTBBRTBE
MTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQ0Y2QUMzMTJDOTFGMzQwMDhGOUMzNSAvKiBXS0ltYWdlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2Vz
dHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0Y2QUNBMTJDOTFGNTkwMDhG
OUMzNSAvKiBXS0ltYWdlQ0cuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0QkEzM0YyMjU3NTdFODkw
MDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25Q
cmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzREY4MkUxQjNCQzA5MDAw
QUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMjFENTg2MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMjFENThBMUEzOEYxOTYwMDgwNTJCRSAvKiBXS0lt
bWVkaWF0ZUFjdGlvblR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEyOTg2LDYgKzEyOTg1LDcg
QEAKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRT
dHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8q
IFdLVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0OTc1Q0YyMjYyNEI4MEEwMDND
NjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTM2RTUxNjIzNkE2MjExMDA3NEZENUQgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTM2RTUxNDIzNkE2MERDMDA3NEZENUQgLyogV0tXZWJBcmNoaXZlUmVmLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNo
aXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBk
Y2ZkN2M3NTY5N2Y5MDE3ZGU4ZmY5MWJjN2RhYWI1MWZhMWQyYjZmLi43ZDYyZTVlOWEzOWQxNWNh
YTM3NWExMWM5OTY3NDU2NzY0ZGY4OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ2
OSwxMSArMTQ2OSwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hhbmdlVW5pdmVyc2FsQWNj
ZXNzWm9vbUZvY3VzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZQogfQogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmIGVs
ZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBs
ZXRpb24pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVt
ZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxFbGVtZW50PiYmKT4m
JiBjb21wbGV0aW9uKQogewotICAgIG1fcGFnZS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGVsZW1l
bnQsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1fcGFnZS5yZXF1ZXN0VGV4dFJlY29nbml0
aW9uKGVsZW1lbnQsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA3MWQ4OWE3YTY3ZGQzOWMyYmU5Y2FlMmY2YmFkNjI0MzgwZTcxN2ZlLi42
Mjg2MjAyODQyNGZiYmJlZDEzMjgxNjM1NzRiNzA1ZDNiYzE4MzY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC00MjMsOCArNDIzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoYW5nZVVuaXZlcnNh
bEFjY2Vzc1pvb21Gb2N1cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
LSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmID0geyB9KSBm
aW5hbDsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0VGV4dFJl
Y29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4mJiA9IHsgfSkgZmluYWw7CiAjZW5kaWYKIAogICAgIGJv
b2wgbmVlZHNJbWFnZU92ZXJsYXlDb250cm9sbGVyRm9yU2VsZWN0aW9uUGFpbnRpbmcoKSBjb25z
dCBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBmMDAxYTZjY2ZhZDJkZThmNGRiMDViODE1ZTFlMTdiNTM4OTNmNjJiLi4xZjJhYzM5YzZm
MTZiMjU3NTQ1MjNiMmJiMGY4N2Q2ZTcwNTk0NmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZv
cm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlTm9kZURhdGEuaCIKICNpbmNs
dWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgotI2luY2x1ZGUgIklt
YWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdFVzZXJTY3JpcHRJ
bW1lZGlhdGVseS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIgpAQCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgIlNo
YXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJUZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmgi
CiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaCIKQEAgLTM2MCw4ICszNjAs
OCBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2lu
Y2x1ZGUgPFdlYkNvcmUvSW1hZ2VFeHRyYWN0aW9uUmVzdWx0Lmg+CisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpAQCAtNjI4MSwx
MyArNjI4MSwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1l
KQogICAgIEFTU0VSVCghZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdGF0ZU1hY2hpbmUo
KS5jcmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkpOwogICAgIHVuZnJlZXplTGF5ZXJUcmVl
KExheWVyVHJlZUZyZWV6ZVJlYXNvbjo6UHJvY2Vzc1N3YXApOwogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgZm9yIChhdXRvJiBbZWxlbWVudCwgY29tcGxldGlvbkhhbmRsZXJz
XSA6IG1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uKSB7CisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorICAgIGZvciAoYXV0byYgW2VsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyc10g
OiBtX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbikgewogICAgICAgICBmb3IgKGF1dG8m
IGNvbXBsZXRpb25IYW5kbGVyIDogY29tcGxldGlvbkhhbmRsZXJzKQogICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICB9Ci0gICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4
dHJhY3Rpb24uY2xlYXIoKTsKLSAgICBtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jbGVh
cigpOworICAgIG1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLmNsZWFyKCk7CisgICAg
bV9lbGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRzLmNsZWFyKCk7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCkBAIC03MzgzLDkgKzczODMsOSBA
QCB2b2lkIFdlYlBhZ2U6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Np
b25JZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1VTQUdF
KQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxl
bWVudCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxl
bWVudD4mJik+JiYgY29tcGxldGlvbikKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFRleHRSZWNvZ25p
dGlvbihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uKQogewogICAgIGlmICghaXM8
SFRNTEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQpAQCAtNzM5
Myw3ICs3MzkzLDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNv
cmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jb250YWlucyhl
bGVtZW50KSkgeworICAgIGlmIChtX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMu
Y29udGFpbnMoZWxlbWVudCkpIHsKICAgICAgICAgaWYgKGNvbXBsZXRpb24pIHsKICAgICAgICAg
ICAgIEFTU0VSVChpczxIVE1MRWxlbWVudD4oZWxlbWVudCkpOwogICAgICAgICAgICAgUmVmUHRy
PEVsZW1lbnQ+IGltYWdlT3ZlcmxheUhvc3Q7CkBAIC03NDA0LDEzICs3NDA0LDEzIEBAIHZvaWQg
V2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50
LCBDb21wbGV0aW9uSGFuZGxlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIG1h
dGNoSW5kZXggPSBtX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5maW5kTWF0Y2hpbmco
WyZdIChhdXRvJiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzKSB7CisgICAgYXV0byBtYXRj
aEluZGV4ID0gbV9lbGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uZmluZE1hdGNoaW5nKFsm
XSAoYXV0byYgZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVycykgewogICAgICAgICByZXR1cm4g
ZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVycy5maXJzdCA9PSAmZWxlbWVudDsKICAgICB9KTsK
IAogICAgIGlmIChtYXRjaEluZGV4ICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIGlmIChjb21wbGV0
aW9uKQotICAgICAgICAgICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb25bbWF0Y2hJ
bmRleF0uc2Vjb25kLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb24pKTsKKyAgICAgICAgICAgIG1f
ZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uW21hdGNoSW5kZXhdLnNlY29uZC5hcHBlbmQo
V1RGTW92ZShjb21wbGV0aW9uKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc0NDAs
MTUgKzc0NDAsMTUgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNv
cmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVudD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7
CiAgICAgaWYgKGNvbXBsZXRpb24pCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQo
V1RGTW92ZShjb21wbGV0aW9uKSk7Ci0gICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rp
b24uYXBwZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXJzKSB9KTsKKyAgICBtX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBt
YWtlV2Vha1B0cihlbGVtZW50KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcnMpIH0pOwogCiAg
ICAgYXV0byBpbWFnZVVSTCA9IGVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChyZW5kZXJJ
bWFnZS5jYWNoZWRJbWFnZSgpLT51cmwoKS5zdHJpbmcoKSk7Ci0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV1RGTW92
ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFwSGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJl
c3VsdCkgeworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdURk1vdmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhh
bmRsZSkpLCBbd2ViUGFnZSA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgd2Vha0VsZW1lbnQgPSBtYWtl
V2Vha1B0cihlbGVtZW50KV0gKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgYXV0byBwcm90ZWN0
ZWRQYWdlID0gbWFrZVJlZlB0cih3ZWJQYWdlLmdldCgpKTsKICAgICAgICAgaWYgKCFwcm90ZWN0
ZWRQYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHByb3RlY3RlZFBhZ2UtPm1f
ZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0
byYgZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVycykgeworICAgICAgICBwcm90ZWN0ZWRQYWdl
LT5tX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbi5yZW1vdmVBbGxNYXRjaGluZyhbJl0g
KGF1dG8mIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFuZGxlcnMpIHsKICAgICAgICAgICAgIGF1dG8m
IFtlbGVtZW50LCBjb21wbGV0aW9uSGFuZGxlcnNdID0gZWxlbWVudEFuZENvbXBsZXRpb25IYW5k
bGVyczsKICAgICAgICAgICAgIGlmIChlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTc0NjMsMTAgKzc0NjMsMTAgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VF
eHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvJiBodG1sRWxlbWVudCA9IGRvd25jYXN0
PEhUTUxFbGVtZW50PigqcHJvdGVjdGVkRWxlbWVudCk7Ci0gICAgICAgIGh0bWxFbGVtZW50LnVw
ZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoV1RGTW92ZShyZXN1bHQpKTsKLSAgICAgICAg
cHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50c1dpdGhFeHRyYWN0ZWRJbWFnZXMuYWRkKGh0bWxFbGVt
ZW50KTsKKyAgICAgICAgaHRtbEVsZW1lbnQudXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3Vs
dChXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzV2l0
aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuYWRkKGh0bWxFbGVtZW50KTsKIAotICAgICAgICBhdXRv
IG1hdGNoSW5kZXggPSBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFj
dGlvbi5maW5kTWF0Y2hpbmcoWyZdIChhdXRvJiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJz
KSB7CisgICAgICAgIGF1dG8gbWF0Y2hJbmRleCA9IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQ
ZW5kaW5nVGV4dFJlY29nbml0aW9uLmZpbmRNYXRjaGluZyhbJl0gKGF1dG8mIGVsZW1lbnRBbmRD
b21wbGV0aW9uSGFuZGxlcnMpIHsKICAgICAgICAgICAgIHJldHVybiBlbGVtZW50QW5kQ29tcGxl
dGlvbkhhbmRsZXJzLmZpcnN0ID09ICZodG1sRWxlbWVudDsKICAgICAgICAgfSk7CiAKQEAgLTc0
NzQsMjIgKzc0NzQsMjIgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdl
YkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBhdXRvIGltYWdlT3ZlcmxheUhvc3QgPSBodG1sRWxlbWVudC5oYXNJ
bWFnZU92ZXJsYXkoKSA/IG1ha2VSZWZQdHIoaHRtbEVsZW1lbnQpIDogbnVsbHB0cjsKLSAgICAg
ICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVu
dHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uW21hdGNoSW5kZXhdLnNlY29uZCkKKyAgICAgICAgZm9y
IChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5k
aW5nVGV4dFJlY29nbml0aW9uW21hdGNoSW5kZXhdLnNlY29uZCkKICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGltYWdlT3ZlcmxheUhvc3QuY29weVJlZigpKTsKIAotICAgICAgICBwcm90
ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5yZW1vdmUobWF0Y2hJ
bmRleCk7CisgICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29n
bml0aW9uLnJlbW92ZShtYXRjaEluZGV4KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlOjp1
cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJl
c3VsdCwgY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxv
Y2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3Vs
dCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnVwZGF0ZVdpdGhUZXh0UmVj
b2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYgcmVzdWx0LCBjb25zdCBFbGVt
ZW50Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBhdXRvIGVsZW1lbnRUb1VwZGF0ZSA9IGVsZW1lbnRGb3JDb250ZXh0
KGNvbnRleHQpOwogICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnRUb1VwZGF0ZSkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpO
b1RleHQpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihUZXh0UmVjb2duaXRpb25VcGRhdGVS
ZXN1bHQ6Ok5vVGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb3duY2FzdDxI
VE1MRWxlbWVudD4oKmVsZW1lbnRUb1VwZGF0ZSkudXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJl
c3VsdChXVEZNb3ZlKHJlc3VsdCkpOworICAgIGRvd25jYXN0PEhUTUxFbGVtZW50PigqZWxlbWVu
dFRvVXBkYXRlKS51cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUocmVzdWx0
KSk7CiAgICAgYXV0byBoaXRUZXN0UmVzdWx0ID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQocm91bmRlZEludFBvaW50KGxvY2F0aW9u
KSwgewogICAgICAgICBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6UmVhZE9ubHksCiAgICAgICAgIEhp
dFRlc3RSZXF1ZXN0OjpUeXBlOjpBY3RpdmUsCkBAIC03NDk5LDIzICs3NDk5LDIzIEBAIHZvaWQg
V2ViUGFnZTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQmJiByZXN1bHQsIGNvCiAgICAgYXV0byBub2RlQXRMb2NhdGlvbiA9IG1ha2VSZWZQdHIo
aGl0VGVzdFJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSk7CiAgICAgYXV0byB1cGRhdGVSZXN1
bHQgPSAoWyZdIHsKICAgICAgICAgaWYgKCFub2RlQXRMb2NhdGlvbiB8fCBub2RlQXRMb2NhdGlv
bi0+c2hhZG93SG9zdCgpICE9IGVsZW1lbnRUb1VwZGF0ZSB8fCAhSFRNTEVsZW1lbnQ6OmlzSW5z
aWRlSW1hZ2VPdmVybGF5KCpub2RlQXRMb2NhdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gSW1h
Z2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQ7CisgICAgICAgICAgICByZXR1cm4gVGV4
dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQ7CiAKICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCiAgICAgICAgIGlmIChmaW5kRGF0YURldGVjdGlvblJlc3VsdEVsZW1lbnRJbkltYWdl
T3ZlcmxheShsb2NhdGlvbiwgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCplbGVtZW50VG9VcGRhdGUp
KSkKLSAgICAgICAgICAgIHJldHVybiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OkRhdGFE
ZXRlY3RvcjsKKyAgICAgICAgICAgIHJldHVybiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6
OkRhdGFEZXRlY3RvcjsKICNlbmRpZgogCiAgICAgICAgIGlmIChIVE1MRWxlbWVudDo6aXNJbWFn
ZU92ZXJsYXlUZXh0KCpub2RlQXRMb2NhdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gSW1hZ2VF
eHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpUZXh0OworICAgICAgICAgICAgcmV0dXJuIFRleHRSZWNv
Z25pdGlvblVwZGF0ZVJlc3VsdDo6VGV4dDsKIAotICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0
aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQ7CisgICAgICAgIHJldHVybiBUZXh0UmVjb2duaXRpb25V
cGRhdGVSZXN1bHQ6Ok5vVGV4dDsKICAgICB9KSgpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
dXBkYXRlUmVzdWx0KTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2lmIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIHZvaWQgV2ViUGFnZTo6
c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShGbG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVj
dG9yPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDQ0ZDMzZTM3Nzc5Nzg0NjQyYzRjYzdmZWZhZjJkMzIzM2NjOGY4ZmEuLjBlMzQxYjYwY2M4Mjk1
MTQ1ZGJmYTViNTNlNDA4ODliNWQzZDk4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMxMCw3ICszMTAsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjsKIAogZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OwogZW51
bSBjbGFzcyBEcmFnQ29udHJvbGxlckFjdGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIEltYWdl
RXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7
CkBAIC0xNDAzLDkgKzE0MDMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNv
cmU6OkVsZW1lbnQ+JiYpPiYmKTsKLSAgICB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJik7CisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihX
ZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6
RWxlbWVudD4mJik+JiYpOworICAgIHZvaWQgdXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3Vs
dChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVu
dENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQpPiYmKTsKICNlbmRpZgog
CiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCkBAIC0yMzQ3LDkgKzIzNDcsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBWZWN0b3I8c3Rk
OjpwYWlyPFdlYWtQdHI8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+LCBWZWN0b3I8Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+Pj4+IG1fZWxlbWVudHNQZW5k
aW5nSW1hZ2VFeHRyYWN0aW9uOwotICAgIFdlYWtIYXNoU2V0PFdlYkNvcmU6OkhUTUxFbGVtZW50
PiBtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlczsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgVmVjdG9yPHN0ZDo6cGFpcjxXZWFrUHRyPFdlYkNvcmU6OkhUTUxFbGVtZW50Piwg
VmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYp
Pj4+PiBtX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbjsKKyAgICBXZWFrSGFzaFNldDxX
ZWJDb3JlOjpIVE1MRWxlbWVudD4gbV9lbGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRz
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCWFIpICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggODNmZTU1YjBjNDA0YTA5ZWI2ZjQ3NzgzOGY4NmYxODA1NmNlYjhlYi4uNTYxOGEzNDNk
ZTRhNTc0NmI1OWNiYjBmMTcxNGFmOGM3NTJmYzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02NDIsNyArNjQy
LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBJbnZhbGlkYXRlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoKQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICBVcGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpJbWFnZUV4
dHJhY3Rpb25SZXN1bHQgcmVzdWx0LCBzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxl
bWVudCwgV2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGlvbikgLT4gKGVudW06dWludDhfdCBXZWJL
aXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCByZXN1bHQpIEFzeW5jCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorICAgIFVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoc3Ry
dWN0IFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCByZXN1bHQsIHN0cnVjdCBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dCBlbGVtZW50LCBXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKSAt
PiAoZW51bTp1aW50OF90IFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IHJlc3Vs
dCkgQXN5bmMKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KaW5kZXggMzg4OWQyNjcwOWM2N2RhNDA0Mjc1MjVhY2NmZjQ3MjJjMjBi
Mzc0Ni4uZTNjNzFhZmMzMzFmYWU3NWMxY2JhZTM3MGE5NDRlMzFiNjhiOGQwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MTYsNyAr
NjE2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TlNJbnRlZ2VyPiB0b1RhZyhXZWJDb3JlOjpD
b250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1Rv
Z2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
VHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdUcmFuc2xhdGU7Ci0gICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnIC4uLiBDb250ZXh0TWVudUl0ZW1MYXN0
Q3VzdG9tVGFnOgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDY3MDhhMzkzZDEwNWE1NThjYjBlNjQ0NmRiMGQyNTFlZTY3MzQwNTkuLjcwZmE1ZTJm
MDA3YzNjZWFlNzA5MDgzNmE3ZTllZmIxZTY3MGRiYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNi0wNyAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBVcHN0cmVh
bSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4
OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlcGxhY2UgSU1BR0VfRVhUUkFDVElPTiB3aXRoIFZJU1VBTF9JTlRFTExJR0VOQ0UuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3Qu
bW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJv
cFRlc3RzLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlu
ZEluUGFnZS5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
Q29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbToKKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEZpbmQtaW4t
cGFnZSBzaG91bGQgbWF0Y2ggdGV4dCBpbnNpZGUgaW1hZ2Ugb3ZlcmxheXMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlSGl0VGVz
dC5tbQppbmRleCA2Y2JmYzg1N2ZjZWY0MzQ1ZjJlNWU3ZDg3NDZmMjU1Y2RhMmE1ZjE4Li43YjI1
MDI2ZTlmYmUyZDEzOGVhYTM1YmFhZTRlMTUwYWRjYzEwY2M1IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3QubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0Lm1t
CkBAIC03Nyw3ICs3Nyw3IEBAIFRFU1QoSW5qZWN0ZWRCdW5kbGVIaXRUZXN0LCBUZXh0UGFyYWdy
YXBoKQogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBoYXNTZWxlY3RhYmxlVGV4dEF0OkNHUG9p
bnRNYWtlKDMwMCwgMzAwKV0pOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBURVNUKEluamVjdGVkQnVuZGxlSGl0VGVzdCwg
SW1hZ2VPdmVybGF5KQogewpAQCAtODksNiArODksNiBAQCBURVNUKEluamVjdGVkQnVuZGxlSGl0
VGVzdCwgSW1hZ2VPdmVybGF5KQogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBoYXNTZWxlY3Rh
YmxlVGV4dEF0OkNHUG9pbnRNYWtlKDQwMCwgMzAwKV0pOwogfQogCi0jZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0KaW5kZXggZTkzOWNk
ZDY5ZTk4YzM2MmE4ZGE4N2Y1YjUzYjBmNTg0NjRhNTJiNi4uODFhNWVkYzA0ZGQ0ZjdmZGY1MWFh
OTNkOTgxMDFiNjcwN2M2NDUxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbQpAQCAtMzg1LDcgKzM4NSw3
IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgQ29sb3JJbnB1dEV2ZW50cykKIAogI2VuZGlmIC8v
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIERy
YWdFbGVtZW50V2l0aEltYWdlT3ZlcmxheSkKIHsKQEAgLTQzMiw2ICs0MzIsNiBAQCBURVNUKERy
YWdBbmREcm9wVGVzdHMsIERyYWdTZWxlY3RlZFRleHRJbkltYWdlT3ZlcmxheSkKICAgICBFWFBF
Q1RfV0tfU1RSRVEoZHJhZ2dlZFRleHQuZ2V0KCksICJmb29iYXIiKTsKIH0KIAotI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKIAogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmICFQTEFURk9STShNQUNDQVRB
TFlTVCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RmluZEluUGFnZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlu
ZEluUGFnZS5tbQppbmRleCAyOGY5OGI5MTdkZjE1NjU0YjBmNzE1NTcxZDhjMjBiZWEyODU1ZTZl
Li5mYzViMjRmYzJiY2UxMjZlNThlNDAyMThiMmE5ZTUwOTc5Njg4MmNhIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdlLm1tCkBAIC0y
OTYsNyArMjk2LDcgQEAgVEVTVChXZWJLaXQsIEZpbmRBbmRSZXBsYWNlKQogICAgIEVYUEVDVF9X
S19TVFJFUSgiaGkgaGkiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCJdKTsKIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogVEVTVChXZWJLaXQsIEZpbmRU
ZXh0SW5JbWFnZU92ZXJsYXkpCiB7CkBAIC0zMTgsNiArMzE4LDYgQEAgVEVTVChXZWJLaXQsIEZp
bmRUZXh0SW5JbWFnZU92ZXJsYXkpCiAgICAgfQogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAjZW5kaWYg
Ly8gIVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rp
b25zLm1tCmluZGV4IGJiNTczZTM5ZGVjZDQyMzc5MWRhNGI3YzU2MzJiYzYwOWFmM2M1NGIuLjM0
OTgyMTMyMjhiMjQ4ZjU1YTkyZmU2NTZkNGExOTdlNWQ1NzhlNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rp
b25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250
ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCkBAIC03Myw3ICs3Myw3IEBAIFRFU1QoV2ViS2l0LCBJ
bnZva2VTaGFyZVdpdGhvdXRTZWxlY3Rpb24pCiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVz
ZW50YXRpb25VcGRhdGVdOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVO
QUJMRShBUFBfSElHSExJR0hUUykKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKIAogVEVTVChXZWJLaXQsIEFwcEhpZ2hsaWdodHNJbkltYWdlT3Zl
cmxheXMpCiB7CkBAIC05OSw2ICs5OSw2IEBAIFRFU1QoV2ViS2l0LCBBcHBIaWdobGlnaHRzSW5J
bWFnZU92ZXJsYXlzKQogICAgIEVYUEVDVF9FUShbY29udGVudFZpZXcgdGFyZ2V0Rm9yQWN0aW9u
OmNyZWF0ZUhpZ2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2VTZWxlY3RvciB3aXRoU2VuZGVyOm5p
bF0sIGNvbnRlbnRWaWV3KTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KSAmJiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKSAmJiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRp
YXRlQWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlh
dGVBY3Rpb25UZXN0cy5tbQppbmRleCA5ZDQ2MmEwMTBhODNmZGQ4OWFlMDQyOWY2ODgyOGEzOGE4
NzJkOTA2Li42ZDlkZmRiNmE3MTAzZDZiNmI1Y2EwYTA2ZjFiYWFlYzY5ZTA4YjBkIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0
cy5tbQpAQCAtMTI1LDcgKzEyNSw3IEBAIFRFU1QoSW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVk
aWF0ZUFjdGlvbk92ZXJCb2R5KQogICAgIEVYUEVDVF9FUShbaGl0VGVzdFJlc3VsdCBsb29rdXBU
ZXh0XS5sZW5ndGgsIDBVKTsKIH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogVEVTVChJbW1lZGlhdGVBY3Rpb25UZXN0cywgSW1t
ZWRpYXRlQWN0aW9uT3ZlckltYWdlT3ZlcmxheSkKIHsKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNU
KEltbWVkaWF0ZUFjdGlvblRlc3RzLCBJbW1lZGlhdGVBY3Rpb25PdmVySW1hZ2VPdmVybGF5KQog
ICAgIEVYUEVDVF9XS19TVFJFUShbaGl0VGVzdFJlc3VsdCBsb29rdXBUZXh0XSwgImZvb2JhciIp
OwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA3YzdiODM3OTBjZjNiZmFjNTc5MTA1YzZjOTgzM2E3OGYxYTZhMzQwLi42MzA2OGU2NDNl
OGU4NTU3NTFkM2NiZTQxMTdhMzE5NWNhZDE2ZTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIw
MjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9yIExpdmUgVGV4dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83ODkzMzY4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgYGZhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb25gIHRvIGBmYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uYC4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNp
Yy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICogZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdl
LW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Ns
aWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRo
LWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdl
LW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlk
ZW1wb3RlbnQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3Zlcmxh
eS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXpl
cm8tZm9udC1zaXplLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1v
dmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1z
dHlsZXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24t
cmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24t
cmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdl
LW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5
Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxl
Y3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4t
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdl
LW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Ut
b3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUt
bGluay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1s
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRt
bC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24t
cmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4t
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Nl
bGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250
ZXh0LW1lbnUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250
ZXh0LW1lbnUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWw6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21h
Yy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1k
aXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3Zl
cmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3Zlcmxh
eS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3Zl
cmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5
LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVy
bGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5r
LXdpdGgtbW91c2UtZHJhZy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRo
LW1vdXNlLWRyYWcuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9t
YWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbC4K
KyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0
aC1tb3VzZS1kcmFnLTIuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmly
ZS1jbGljay1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRy
YWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1k
cmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgt
bW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1k
cmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1v
dmVybGF5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0
bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3Nl
bGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0
bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdn
YWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC1taXNtYXRjaC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXku
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbC4KKwog
MjAyMS0wNi0wNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2lPU10gVW5leHBlY3RlZCBzY3JvbGxpbmcgd2hlbiBzd2l0Y2hpbmcgZm9jdXMgZnJvbSBh
IHRleHQgaW5wdXQgdG8gYSBzZWxlY3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
LW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzYzOTNhOWQyYmZlYzJmYjBhZmE1OGMwNzI4MWRlYjIzNjFhNzY4
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00
MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTlhMGNlNjE4MDZlOGVhM2EzYjM4NGVlYzVmODY5MDY4MzhjNmM0Ny4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgot
PHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdl
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJ
bWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbewotICAgICAg
ICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAotICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICB9XSwKLSAgICAg
ICAgfQotICAgIF0pOwotICAgIGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5nZXRFbGVtZW50
QnlJZCgiaW1hZ2Utb3ZlcmxheSIpLnN0eWxlLmNvbG9yID0gImJsYWNrIjsKLX0pOwotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5r
LXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ4N2JhNGRmMzVhNWE2ZWViMDYx
MDg2OTQ5NzJhMTYwZWNmZTk3NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2NsaWNr
LWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDUgKzAsMCBAQAotUEFTUyBjbGlja0NvdW50IGJlY2FtZSAyCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3Zlcmxh
eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1s
aW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2MTBlODZlZjg3Y2QxNjczMzJjMGVhNjM2ZDVmMTdhOGI5MzA5NjM1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEiPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0g
ICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci0KLWEgewotICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxhIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6NTQzMjEiPgotICAgIDxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5w
bmciPjwvaW1nPgotPC9hPgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKLSAgICBjbGlja0NvdW50ID0gMDsKLQot
ICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImEiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IChldmVudCkgPT4gewotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBj
bGlja0NvdW50Kys7Ci0gICAgfSk7Ci0KLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zlcmxh
eShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWwotICAgICAgICB7Ci0gICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKLSAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKLSAgICAgICAgICAgIGNoaWxkcmVu
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxv
IiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuMjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
XSwKLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJs
YXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiksIFsKLSAgICAgICAgewotICAgICAgICAg
ICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjI1KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwLjI1KSwKLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZh
dGVBdCgxMDAsIDUwKTsKLSAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yRG91YmxlVGFwRGVsYXko
KTsKLSAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDMwMCwgMzAwKTsKLQotICAgIHNob3Vs
ZEJlY29tZUVxdWFsKCJjbGlja0NvdW50IiwgIjIiLCBmaW5pc2hKU1Rlc3QpOwotfSk7Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92
ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRl
bXBvdGVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNWU2
NzMwNWExMDA5Njc3NzJlZjk3MmI1Y2YyNmNkOGRhMTBkNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1QQVNTIGludGVybmFscy5zaGFkb3dS
b290KGltYWdlKS5jaGlsZEVsZW1lbnRDb3VudCBpcyAyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1w
b3RlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1h
Z2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGI2Y2NkZmI2MzNlOWIyNGU0M2YwNGMzZjk4ZmYzMDJmNTNmZGI5MjguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlk
ZW1wb3RlbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAu
cG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewot
ICAgIGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxMDsgKytpKSB7Ci0gICAgICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVy
bGF5KGltYWdlLCBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgICAgICBjaGls
ZHJlbjogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogIkhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgfQot
ICAgICAgICBdKTsKLSAgICB9Ci0gICAgc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGlt
YWdlKS5jaGlsZEVsZW1lbnRDb3VudCIsICIyIik7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13
aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16
ZXJvLWZvbnQtc2l6ZS1leHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0YWNhMWIzMmRiY2M1NzU4ZGJhNmYxODMwOWVlOTNhZTUyZDNmMGZkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXpl
cm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcg
ewotICAgIGZvbnQtc2l6ZTogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcg
c3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9ib2R5PgotPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRo
LXplcm8tZm9udC1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTRiMDU2NDk5NjgxNGRmMzg1ZDBiOGVlMjIy
YTk5ODlkYjU1MDE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3Zlcmxh
eS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcg
ewotICAgIGZvbnQtc2l6ZTogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcg
c3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXko
aW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC41LCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAg
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAg
ICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAx
KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7
Ci0gICAgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmdldEVsZW1lbnRCeUlkKCJpbWFnZS1v
dmVybGF5Iikuc3R5bGUuY29sb3IgPSAiYmxhY2siOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxl
Y3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNTI0NTYwOTk2NGFiYzk0ZDc4
NmU4MDhhNTU4OGFlZTRiZjc4NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFn
ZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0
eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxl
ZnQ6IDA7Ci19Ci0KLTo6c2VsZWN0aW9uIHsKLSAgICBjb2xvcjogcmVkOwotfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBu
ZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAg
ICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBb
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwK
LSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAp
LAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0g
ICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVu
KGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3Zlcmxh
eS10ZXh0IikpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0
aC1zZWxlY3Rpb24tc3R5bGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1
OTUyYjVjYjM2ZjIwYWEzNWViZTBhNGNjZmE1MTdhNzQ2NWExMjAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAw
OwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0i
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1h
Z2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
LjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0
U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2Up
LnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7Ci19KTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNl
bGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0
cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzExZTRjNzMyNzhjNzVlNTYwN2E5MWQ0MTdkZjA4MmY4ZmQxYzQ5ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1h
Z2Utb3ZlcmxheS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBB
U1Mgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGggaXMgMQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVj
dGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Ut
b3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDU2MmI2MjBiM2Q3
NTc2NTRhNDZmYjVjMjY5MjAwOGEyYWRmMjc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c3R5bGU+Ci1ib2R5LCBodG1sIHsKLSAgICBtYXJnaW46IDA7Ci19Ci08L3N0eWxlPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4
NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJ
bWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiksIFsKLSAgICAgICAgewot
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4zKSwKLSAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjEpLAotICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuMiksCi0g
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjQpLAot
ICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAiQUIiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4xLCAwLjMpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC4yKSwKLSAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAuMyksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuNCksCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRl
eHQgOiAiQ0QiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC4yLCAwLjIpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuMywgMC4xKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuMiksCi0gICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAuMyksCi0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBhd2FpdCBVSUhl
bHBlci5sb25nUHJlc3NBdFBvaW50KDgwLCAxMjApOwotICAgIGF3YWl0IFVJSGVscGVyLndhaXRG
b3JTZWxlY3Rpb25Ub0FwcGVhcigpOwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RB
bGwiKTsKLSAgICBhd2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKLSAg
ICBzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsID0gYXdhaXQgVUlIZWxwZXIuZ2V0VUlT
ZWxlY3Rpb25WaWV3UmVjdHMoKTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHNBZnRlclNl
bGVjdGluZ0FsbC5sZW5ndGgiLCAiMSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVy
bGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRlMWE3MmIy
MzczYmE2Y2NhZTBlZGZlYzI1NjM5MzhjMTY5OThmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1QQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBp
cyAxCi1QQVNTIERpc21pc3NlZCBzZWxlY3Rpb24KLVBBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3Ro
IGlzIDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lv
cy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zlcmxh
eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODUwMmNmNDU1NmY4NjI2NTNm
ZmVhZjZhNzdiZmEyZTAwMTc0MDQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9z
L3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4K
LWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAw
OwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewotICAgIGxldCBpbWFn
ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxs
SW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImZvbyIsCi0gICAgICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAot
ICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAg
XSk7Ci0gICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDEwMCk7Ci0gICAg
c2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIo
KTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKLQotICAgIGF3
YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMjAwLCAzMDApOwotICAgIGF3YWl0IFVJSGVscGVyLndh
aXRGb3JTZWxlY3Rpb25Ub0Rpc2FwcGVhcigpOwotICAgIHRlc3RQYXNzZWQoIkRpc21pc3NlZCBz
ZWxlY3Rpb24iKTsKLQotICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCAx
MDApOwotICAgIHNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlv
blRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7
Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zlcmxh
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzQxYWE0MmY2ZTY5MjQzYWI3NDEyYzA4YzM2Nzk2YzI2MTU2
ZTNiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1p
bWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAot
UEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkt
aW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MWFhNDJmNmU2OTI0
M2FiNzQxMmMwOGMzNjc5NmMyNjE1NmUzYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBBU1Mgc2VsZWN0aW9uUmVjdHMubGVu
Z3RoIGlzIDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1p
bWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGY4ZjQ2YzlkNTk0Mjg2NWZlNjA4OGM1ZDU3NzllZjQyM2IxNmRmMDAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNp
ZGUtbGluay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFi
c29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotCi1hIHsKLSAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08YSBocmVmPSJo
dHRwOi8vbG9jYWxob3N0OjU0MzIxIiBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpIj4K
LSAgICA8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4K
LTwvYT4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
LSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
LSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSks
Ci0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSks
Ci0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKLSAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBdKTsKLSAgICBhd2FpdCBV
SUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwgNTApOwotICAgIHNlbGVjdGlvblJlY3RzID0g
YXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUo
InNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsK
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9z
L3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE2MjM3Y2M4NWQxMjRlZDYxMTYyY2E3
OTM4NDk5YjUzNTRjOWNmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxl
Y3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsK
LSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08
L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVu
LTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92
ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAg
ICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSks
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0g
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAg
ICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRl
eHQgOiAid29ybGQiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgYXdhaXQgVUlIZWxwZXIubG9u
Z1ByZXNzQXRQb2ludCgyMDAsIDMwMCk7Ci0gICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhl
bHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9u
UmVjdHMubGVuZ3RoIiwgIjEiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0aW9u
LXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJs
YXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzJkNjRjMWZl
MDU1Njg4MTc0YjU2ZDZjMDk2MTRmMWI4YWMxMmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotUEFTUyBpbml0aWFsU2VsZWN0aW9uUmVjdHMu
bGVuZ3RoIGlzIDEKLVBBU1Mgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGgg
aXMgNAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9z
L3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zl
cmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDdiNTM0ZmYwZDNkZmI1
OTNmYjBlMDlkNzI1Mjg0ZTAyZTJkNDJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
aW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw5NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0
eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxl
ZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKLSAgICBs
ZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMu
aW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BM
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjI1KSwKLSAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKLSAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zNSwgMC4yKSwKLSAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMzUpLAotICAgICAgICAgICAg
Y2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQg
OiAib25lIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAuMSwgMC4yNSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjM1LCAwLjIpLAotICAgICAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjM1KSwKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjQ1KSwKLSAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwKLSAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41NSwgMC40KSwKLSAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuNTUpLAotICAgICAg
ICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IHRleHQgOiAidHdvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuMywgMC40NSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjU1LCAwLjQpLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjU1KSwKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwKLSAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42NSwgMC41KSwKLSAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43NSwgMC42KSwKLSAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUpLAot
ICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAidGhyZWUiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjY1LCAwLjUpLAotICAgICAgICAgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNzUsIDAuNiksCi0gICAgICAg
ICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUp
LAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjcsIDAuODUp
LAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjg1LCAwLjcp
LAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAw
LjgpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuOCwg
MC45NSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgdGV4dCA6ICJmb3VyIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNywgMC44NSksCi0gICAgICAgICAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44NSwgMC43KSwKLSAgICAgICAgICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAwLjgpLAot
ICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44
LCAwLjk1KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0g
ICAgXSk7Ci0KLSAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDkwLCA5MCk7Ci0g
ICAgaW5pdGlhbFNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlv
blRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUoImluaXRpYWxTZWxlY3Rpb25SZWN0cy5sZW5ndGgi
LCAiMSIpOwotCi0gICAgdGVzdFJ1bm5lci5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Ci0gICAg
YXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7Ci0gICAgc2VsZWN0aW9u
UmVjdHNBZnRlclNlbGVjdGluZ0FsbCA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmll
d1JlY3RzKCk7Ci0gICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwu
bGVuZ3RoIiwgIjQiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92
ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13
aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUwMjM0ZWMxYWE0NzA5MzAyN2FkNWViYjY2MDA3NmJmNmQ5MTg4NzguLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250
ZXh0LW1lbnUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1QQVNT
IGVkaXRvci50ZXh0Q29udGVudCBpcyAiZm9vYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgt
Y29udGV4dC1tZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjFmZDgxZTIzYTFlMjNjZGYzMTAyZWUzODc5
OGMxMzIzZjM0OGQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2NvcHktaW1h
Z2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHN0eWxlPgot
aW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7
Ci19Ci0KLWRpdltjb250ZW50ZWRpdGFibGVdIHsKLSAgICBib3JkZXI6IDFweCBzb2xpZCB0b21h
dG87Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxkaXYgY29udGVudGVkaXRhYmxlPjwvZGl2
PgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGlt
YWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3Rh
bGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiZm9vYmFyIiwKLSAgICAgICAg
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAg
ICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAg
ICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAu
NSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQot
ICAgIF0pOwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDE1MCk7Ci0KLSAgICBm
b3IgKGxldCBpdGVtIG9mIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpKSB7Ci0gICAgICAgIGlm
IChpdGVtLnRpdGxlID09PSAiQ29weSIpCi0gICAgICAgICAgICBpdGVtLmNsaWNrKCk7Ci0gICAg
fQotCi0gICAgZWRpdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2W2NvbnRlbnRlZGl0
YWJsZV0iKTsKLSAgICBlZGl0b3IuZm9jdXMoKTsKLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgi
UGFzdGUiKTsKLQotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50
IiwgImZvb2JhciIpOwotICAgIGVkaXRvci5yZW1vdmUoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10
ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRl
eHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhjMGU3YjM3MWRiYzFhZWY4Mjc4NTM2ZTZkMjBlZWUz
ZWU3YjI1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5
LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotUEFTUyBmb3VuZFRpdGxlMSBpcyB0cnVlCi1QQVNT
IGZvdW5kVGl0bGUyIGlzIHRydWUKLVBBU1MgU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheQotUEFTUyBm
b3VuZFRpdGxlMSBpcyBmYWxzZQotUEFTUyBmb3VuZFRpdGxlMiBpcyBmYWxzZQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXkt
dGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNh
Ymxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzJiYWI1OTg0ZjM4ODI0NTI3OTFkMDhiOTJiZDdhOTY1Yjk0NDQ3MS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMt
YXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBhcHBIaWdobGln
aHRzRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWJvZHksIGh0
bWwgewotICAgIG1hcmdpbjogMDsKLX0KLQotcCB7Ci0gICAgZm9udC1zaXplOiAzMnB4OwotICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxp
bWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHA+SGVs
bG8gd29ybGQgdGhpcyBpcyBhIHRlc3QuPC9wPgotPC9ib2R5PgotPHNjcmlwdD4KLXZhciBmb3Vu
ZFRpdGxlMTsKLXZhciBmb3VuZFRpdGxlMjsKLQotZnVuY3Rpb24gY2hlY2tGb3JBcHBIaWdobGln
aHRDb250ZXh0TWVudUl0ZW1zKCkgewotICAgIGZvdW5kVGl0bGUxID0gZmFsc2U7Ci0gICAgZm91
bmRUaXRsZTIgPSBmYWxzZTsKLQotICAgIGxldCBbdGl0bGUxLCB0aXRsZTJdID0gaW50ZXJuYWxz
LmFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRlbVRpdGxlczsKLSAgICBmb3IgKGxldCBpdGVtIG9m
IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpKSB7Ci0gICAgICAgIGlmIChpdGVtLnRpdGxlID09
PSB0aXRsZTEpCi0gICAgICAgICAgICBmb3VuZFRpdGxlMSA9IHRydWU7Ci0KLSAgICAgICAgaWYg
KGl0ZW0udGl0bGUgPT09IHRpdGxlMikKLSAgICAgICAgICAgIGZvdW5kVGl0bGUyID0gdHJ1ZTsK
LSAgICB9Ci19Ci0KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IHRl
eHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwIik7Ci0gICAgbGV0IHRleHRSZWN0ID0gdGV4
dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJpbWciKTsKLQotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGlt
YWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEp
LAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIHRleHQgOiAiZm9vYmFyIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBnZXRTZWxlY3Rp
b24oKS5zZWxlY3RBbGxDaGlsZHJlbih0ZXh0KTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh0ZXh0UmVjdC5sZWZ0ICsgdGV4dFJlY3Qud2lkdGggLyAyLCB0ZXh0UmVjdC50b3AgKyB0ZXh0
UmVjdC5oZWlnaHQgLyAyKTsKLSAgICBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRl
bXMoKTsKLSAgICBzaG91bGRCZVRydWUoImZvdW5kVGl0bGUxIik7Ci0gICAgc2hvdWxkQmVUcnVl
KCJmb3VuZFRpdGxlMiIpOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4o
aW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoImRpdiNpbWFnZS1vdmVy
bGF5IikpOwotICAgIHRlc3RQYXNzZWQoIlNlbGVjdGVkIGltYWdlIG92ZXJsYXkiKQotICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwMCwgMjAwKTsKLSAgICBjaGVja0ZvckFwcEhpZ2hsaWdo
dENvbnRleHRNZW51SXRlbXMoKTsKLSAgICBzaG91bGRCZUZhbHNlKCJmb3VuZFRpdGxlMSIpOwot
ICAgIHNob3VsZEJlRmFsc2UoImZvdW5kVGl0bGUyIik7Ci0KLSAgICB0ZXh0LnJlbW92ZSgpOwot
fSk7Ci08L3NjcmlwdD4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQzZTVlZWVkYmYxYjQzNWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5
ODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJs
YXktaW4tbGluay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1p
bWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDlhNGVkYzg5MDRhYTE3Yjg4Nzg1YjI3ODdjNDRhNzM5MTcxNzM2NzYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXkt
aW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgot
ICAgIDxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgot
PC9hPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0
IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmlu
c3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAg
ICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAg
ICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUp
LAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9
Ci0gICAgXSk7Ci0KLSAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+
IHsKLSAgICAgICAgdGVzdEZhaWxlZCgiT2JzZXJ2ZWQgY2xpY2suIik7Ci0gICAgfSk7Ci0KLSAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMzAwKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNl
LWRyYWctMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0
ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWVmN2YzNjNkMjk2NDhhZTg4
MDE2NjFkYTU5MTA5MDM3NWM1YWY2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21h
Yy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAw
OwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGlt
YWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQxIiwKLSAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAg
ICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMiIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAg
Y2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQg
OiAiaGVsbG93b3JsZDMiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2Vs
ZWN0b3IoImRpdiNpbWFnZS1vdmVybGF5IikpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13
aXRoLW1vdXNlLWRyYWctMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTIuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZmZWNlMzQ2MjQyMWU5NGRjZWRhZTgyZmY5
NjkxYTI3OGIxMjY5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qt
aW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1n
IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19
Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dy
ZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgKCkgPT4gewotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQxIiwKLSAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAg
ICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCks
Ci0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMiIsCi0gICAgICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAotICAgICAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAg
ICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSks
Ci0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjUsIDAuNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAx
KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEp
LAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDMiLAotICAgICAgICAgICAgICAgICAgICB0b3BM
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAg
ICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0g
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDUwKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDM1MCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNl
LWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQzZTVlZWVkYmYxYjQzNWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXkt
d2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNCArMCwwIEBACi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRv
ZXMtbm90LWZpcmUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5v
dC1maXJlLWNsaWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODczYzk4
MTkyMzIzYzMxMTAzMjBjYmQzZWViZThmMGYzMmJhMjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90
LWZpcmUtY2xpY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwv
aW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0
IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmlu
c3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAg
ICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAg
ICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUp
LAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9
Ci0gICAgXSk7Ci0KLSAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+
IHsKLSAgICAgICAgdGVzdEZhaWxlZCgiT2JzZXJ2ZWQgY2xpY2suIik7Ci0gICAgfSk7Ci0KLSAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMzAwKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNl
LWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1l
eHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2Y0
Yzc3NDUwMjgzNmMxZDNiNzc2MWI0YzcxNjI2MzVkOWE2NmI2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBl
Y3RlZC1taXNtYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48
L2ltZz4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91
c2UtZHJhZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTRjMzYwNmFkNDlj
YWI0NjU0Zjg4YWU5ZWYxNGE4M2EyYTllZmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAg
IGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBb
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAx
KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwK
LSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9t
YWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTg5ODhiYjgwOTU2ZGQ2MjQ1MzhkOTY4
OGEzZGNmNDJlNDhkMTU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVj
dC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDIxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzdHlsZT4KLWJvZHksIGh0bWwgewotICAgIG1hcmdpbjogMDsKLX0KLQotaW1nIHsKLSAgICBw
b3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6
IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+
Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwv
Ym9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRl
ZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1v
dmVybGF5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiNjc3ZDIwMmNmYzFk
OGJkZTZiYWVkMTZjMTdmOTEyOTgxOTEyZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotLmJhY2sgewotICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKLSAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nKTsK
LX0KLQotLmZyb250IHsKLSAgICBvcGFjaXR5OiAwOwotfQotCi1ib2R5LCBodG1sIHsKLSAgICBt
YXJnaW46IDA7Ci19Ci0KLS5mcm9udCwgLmJhY2sgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
LSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0
OiA0MDBweDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgY2xhc3M9ImJhY2si
PjwvZGl2PgotPGltZyBjbGFzcz0iZnJvbnQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQw
MHg0MDAucG5nIj48L2ltZz4KLTxkaXYgY2xhc3M9ImJhciI+PC9kaXY+Ci08c2NyaXB0PgotYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShp
bWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAxLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLjUsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDIsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDIpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxLjUpLAotICAgICAgICAgICAgICAg
ICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEuNSwgMC41KSwKLSAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgyLCAxKSwKLSAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDIp
LAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwot
Ci0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jv
b3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7Ci19KTsKLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3Nl
bGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qt
d29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0Yzcx
NjI2MzVkOWE2NmI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13
b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7
Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9ib2R5PgotPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1p
bWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTNhMDExZDM4YzQxNWYxYzI3YzU3ZmIzNzQ0MTFk
NTc4MWI2ZDRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3Jk
LWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewot
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgZHJhZ2dhYmxlPSJ0cnVlIiBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdl
LCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAu
NSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2Vs
ZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1
ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWlu
LXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRy
YW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmJjZGFiOTBjZGEwNmNiNGI1YWEwNDQxYmIyYjkzNDhjNjhm
NDYwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10
cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c3R5bGU+Ci1ib2R5LCBodG1sIHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLWRpdiB7Ci0gICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotICAgIHdpZHRoOiA0
MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsK
LSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAu
cG5nKTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXY+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJh
bnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3Zlcmxh
eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjEwZDJkOTdjZjBiNzg5YWE0
NzZhZTQ0MzJmMDM4NDlhYTMxN2NkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDU1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
dHlsZT4KLS5iYWNrIHsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47Ci0gICAgYmFja2dy
b3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Ci19Ci0K
LS5mcm9udCB7Ci0gICAgb3BhY2l0eTogMDsKLX0KLQotYm9keSwgaHRtbCB7Ci0gICAgbWFyZ2lu
OiAwOwotfQotCi0uZnJvbnQsIC5iYWNrIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAg
dG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAw
cHg7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGNsYXNzPSJiYWNrIj48L2Rp
dj4KLTxpbWcgY2xhc3M9ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsK
LSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRl
cm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICBjaGlsZHJlbjog
WwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIs
Ci0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0g
ICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVu
KGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3Zlcmxh
eS10ZXh0IikpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2MzkzYTlkMmJmZWMyZmIw
YWZhNThjMDcyODFkZWIyMzYxYTc2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbApAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3Zl
cmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNp
Yy1pbWFnZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhMGNlNjE4MDZlOGVhM2EzYjM4NGVl
YzVmODY5MDY4MzhjNmM0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNv
dXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAg
ICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41
KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSks
CisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwK
KyAgICAgICAgICAgIGNoaWxkcmVuOiBbeworICAgICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8i
LAorICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAu
NSksCisgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAorICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMSksCisgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMSksCisgICAgICAgICAgICB9XSwKKyAgICAgICAgfQorICAgIF0pOworICAgIGludGVy
bmFscy5zaGFkb3dSb290KGltYWdlKS5nZXRFbGVtZW50QnlJZCgiaW1hZ2Utb3ZlcmxheSIpLnN0
eWxlLmNvbG9yID0gImJsYWNrIjsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNr
LWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDg3YmE0
ZGYzNWE1YTZlZWIwNjEwODY5NDk3MmExNjBlY2ZlOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9jbGljay1saW5rLXdpdGgtaW1h
Z2Utb3ZlcmxheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIGNsaWNrQ291bnQg
YmVjYW1lIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjEwZTg2ZWY4N2NkMTY3MzMyYzBlYTYzNmQ1ZjE3YThiOTMwOTYzNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
Y2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDY5IEBACis8IURP
Q1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0
PXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorCith
IHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjU0MzIxIj4KKyAgICA8aW1nIHNyYz0iLi4v
cmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYT4KKzxzY3JpcHQ+Citqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7
CisgICAgY2xpY2tDb3VudCA9IDA7CisKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJhIiku
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKKyAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKKyAgICAgICAgY2xpY2tDb3VudCsrOworICAgIH0pOworCisgICAgaW50
ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiks
IFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4y
NSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4y
NSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKKyAgICAgICAgICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGlu
dGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIp
LCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCisgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCisgICAgICAgIH0KKyAgICBdKTsKKwor
ICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMTAwLCA1MCk7CisgICAgYXdhaXQgVUlIZWxw
ZXIud2FpdEZvckRvdWJsZVRhcERlbGF5KCk7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVB
dCgzMDAsIDMwMCk7CisKKyAgICBzaG91bGRCZWNvbWVFcXVhbCgiY2xpY2tDb3VudCIsICIyIiwg
ZmluaXNoSlNUZXN0KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFn
ZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBjNWU2NzMwNWExMDA5Njc3NzJlZjk3MmI1Y2YyNmNkOGRhMTBkNTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJs
YXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQ
QVNTIGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5jaGlsZEVsZW1lbnRDb3VudCBpcyAyCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVy
bGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjZjY2RmYjYzM2U5YjI0ZTQzZjA0YzNmOThmZjMwMmY1M2ZkYjkyOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwKQEAgLTAsMCArMSwz
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJj
ZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCAoKSA9PiB7CisgICAgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgaW50ZXJuYWxz
Lmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAg
ICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAorICAgICAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MSksCisgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICB9CisgICAgICAgIF0pOworICAgIH0KKyAgICBzaG91bGRCZSgiaW50ZXJu
YWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmNoaWxkRWxlbWVudENvdW50IiwgIjIiKTsKK30pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1v
dmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3Zlcmxh
eS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGFjYTFiMzJkYmNjNTc1OGRiYTZmMTgzMDllZTkzYWU1MmQzZjBmZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1h
Z2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNo
Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgoraW1nIHsKKyAgICBmb250LXNpemU6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXkt
aW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250
LXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTRiMDU2NDk5NjgxNGRmMzg1ZDBiOGVlMjIyYTk5ODlk
YjU1MDE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUuaHRt
bApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CitpbWcgeworICAgIGZvbnQtc2l6ZTogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNj
cmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFn
ZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkhlbGxvIiwKKyAgICAgICAgICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAg
ICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAor
ICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC41LCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9
CisgICAgXSk7CisgICAgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmdldEVsZW1lbnRCeUlk
KCJpbWFnZS1vdmVybGF5Iikuc3R5bGUuY29sb3IgPSAiYmxhY2siOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXkt
d2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVz
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE1MjQ1NjA5OTY0YWJjOTRkNzg2ZTgwOGE1NTg4
YWVlNGJmNzg1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7Cisg
ICAgbGVmdDogMDsKK30KKworOjpzZWxlY3Rpb24geworICAgIGNvbG9yOiByZWQ7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0
MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4g
eworICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAg
aW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAg
ICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRy
ZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVs
bG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
XSwKKyAgICAgICAgfQorICAgIF0pOworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hp
bGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1v
dmVybGF5LXRleHQiKSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3Zlcmxh
eS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTk1MmI1Y2IzNmYyMGFh
MzVlYmUwYTRjY2ZhNTE3YTc0NjVhMTIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9u
LXN0eWxlcy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDog
MDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9
Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGlt
YWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdl
dFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdl
KS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1z
ZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVj
dHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzExZTRjNzMyNzhj
NzVlNTYwN2E5MWQ0MTdkZjA4MmY4ZmQxYzQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1y
ZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mg
c2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGggaXMgMQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlv
bi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zl
cmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NTYyYjYyMGIzZDc1NzY1NGE0NmZiNWMyNjkyMDA4YTJh
ZGYyNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5o
dG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KK2JvZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5n
Ij48L2ltZz4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zl
cmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWworICAgICAgICB7CisgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjMpLAorICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAuMSksCisgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC4yKSwKKyAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuNCksCisgICAgICAg
ICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
dGV4dCA6ICJBQiIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjEsIDAuMyksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4yLCAwLjIpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4zKSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC40KSwKKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJD
RCIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjIsIDAuMiksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC4zLCAwLjEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNCwgMC4yKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4zKSwKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmxv
bmdQcmVzc0F0UG9pbnQoODAsIDEyMCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVj
dGlvblRvQXBwZWFyKCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwor
ICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgIHNlbGVj
dGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwgPSBhd2FpdCBVSUhlbHBlci5nZXRVSVNlbGVjdGlv
blZpZXdSZWN0cygpOworICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5n
QWxsLmxlbmd0aCIsICIxIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2VsZWN0LXdv
cmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZTFhNzJiMjM3M2JhNmNjYWUwZWRmZWMyNTYzOTM4YzE2
OTk4ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQorUEFTUyBE
aXNtaXNzZWQgc2VsZWN0aW9uCitQQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qt
d29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ODUwMmNmNDU1NmY4NjI2NTNmZmVhZjZhNzdiZmEyZTAwMTc0MDQwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mv
cmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyI+PC9pbWc+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CithZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGlt
YWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImZvbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisgICAgYXdhaXQg
VUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDEwMCk7CisgICAgc2VsZWN0aW9uUmVjdHMg
PSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKKyAgICBzaG91bGRC
ZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmFj
dGl2YXRlQXQoMjAwLCAzMDApOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25U
b0Rpc2FwcGVhcigpOworICAgIHRlc3RQYXNzZWQoIkRpc21pc3NlZCBzZWxlY3Rpb24iKTsKKwor
ICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCAxMDApOworICAgIHNlbGVj
dGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Cisg
ICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7CisKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29y
ZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFhYTQyZjZlNjky
NDNhYjc0MTJjMDhjMzY3OTZjMjYxNTZlM2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHNlbGVjdGlvblJlY3Rz
Lmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxl
Y3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNDFhYTQyZjZlNjkyNDNhYjc0MTJjMDhjMzY3OTZjMjYxNTZlM2I3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2Vs
ZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1h
Z2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGlu
ay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY4ZjQ2YzlkNTk0Mjg2NWZlNjA4OGM1ZDU3NzllZjQyM2IxNmRm
MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwK
QEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBs
ZWZ0OiAwOworfQorCithIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjU0MzIxIiBvbmNs
aWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpIj4KKyAgICA8aW1nIHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYT4KKzxzY3JpcHQ+Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAg
bGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxz
Lmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisg
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwK
KyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjI1KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgIH0KKyAgICBdKTsKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIw
MCwgNTApOworICAgIHNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVj
dGlvblRvQXBwZWFyKCk7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIx
Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJs
YXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Nl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTYyMzdjYzg1ZDEy
NGVkNjExNjJjYTc5Mzg0OTliNTM1NGM5Y2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Ut
b3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0
b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4K
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgp
ID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAg
ICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICBjaGls
ZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJo
ZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBdLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJ3b3JsZCIsCisgICAgICAgICAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAg
ICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisg
ICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAx
KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7
CisKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwgMzAwKTsKKyAgICBz
ZWxlY3Rpb25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigp
OworICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxl
Y3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcy
ZDY0YzFmZTA1NTY4ODE3NGI1NmQ2YzA5NjE0ZjFiOGFjMTJiNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1y
ZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1Mg
aW5pdGlhbFNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIHNlbGVjdGlvblJlY3RzQWZ0
ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0
aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDdiNTM0ZmYwZDNk
ZmI1OTNmYjBlMDlkNzI1Mjg0ZTAyZTJkNDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWlt
YWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3Jp
cHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFz
eW5jICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7
CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjI1KSwK
KyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yNSwgMC4xKSwK
KyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zNSwgMC4y
KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAu
MzUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIHRleHQgOiAib25lIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4yNSksCisgICAgICAgICAgICAgICAgICAgIHRv
cFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKKyAgICAgICAgICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjM1LCAwLjIpLAorICAg
ICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAw
LjM1KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAw
LjQ1KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40NSwg
MC4zKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
NSwgMC40KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjQsIDAuNTUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgIHRleHQgOiAidHdvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC40NSksCisgICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwKKyAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjU1LCAwLjQp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC40LCAwLjU1KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC41LCAwLjY1KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC42NSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC43NSwgMC42KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjYsIDAuNzUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAidGhyZWUiLAorICAgICAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjY1LCAwLjUpLAor
ICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
NzUsIDAuNiksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjYsIDAuNzUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjcsIDAuODUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjg1LCAwLjcpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjk1LCAwLjgpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuOCwgMC45NSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb3VyIiwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNywgMC44NSksCisg
ICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44NSwg
MC43KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjk1LCAwLjgpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC44LCAwLjk1KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBdLAorICAgICAgICB9CisgICAgXSk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NB
dFBvaW50KDkwLCA5MCk7CisgICAgaW5pdGlhbFNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxw
ZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgc2hvdWxkQmUoImluaXRpYWxTZWxl
Y3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOworCisgICAgdGVzdFJ1bm5lci5leGVjQ29tbWFuZCgi
U2VsZWN0QWxsIik7CisgICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRl
KCk7CisgICAgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbCA9IGF3YWl0IFVJSGVscGVy
LmdldFVJU2VsZWN0aW9uVmlld1JlY3RzKCk7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3Rz
QWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIiwgIjQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOwor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9jb3B5LWlt
YWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTAyMzRlYzFhYTQ3MDkzMDI3YWQ1ZWJiNjYwMDc2YmY2ZDkxODg3OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHkt
aW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1BBU1MgZWRpdG9yLnRleHRDb250ZW50IGlzICJmb29iYXIiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1vdmVy
bGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4
dC1tZW51Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIxZmQ4MWUyM2ExZTIzY2RmMzEwMmVlMzg3OThjMTMy
M2YzNDhkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51
Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAg
ICBsZWZ0OiAwOworfQorCitkaXZbY29udGVudGVkaXRhYmxlXSB7CisgICAgYm9yZGVyOiAxcHgg
c29saWQgdG9tYXRvOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8ZGl2IGNvbnRlbnRlZGl0
YWJsZT48L2Rpdj4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewor
ICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBb
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImZvb2JhciIs
CisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0KKyAgICBdKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAxNTAp
OworCisgICAgZm9yIChsZXQgaXRlbSBvZiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKSkgewor
ICAgICAgICBpZiAoaXRlbS50aXRsZSA9PT0gIkNvcHkiKQorICAgICAgICAgICAgaXRlbS5jbGlj
aygpOworICAgIH0KKworICAgIGVkaXRvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdltj
b250ZW50ZWRpdGFibGVdIik7CisgICAgZWRpdG9yLmZvY3VzKCk7CisgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50
ZXh0Q29udGVudCIsICJmb29iYXIiKTsKKyAgICBlZGl0b3IucmVtb3ZlKCk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdl
LW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Ut
b3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzhjMGU3YjM3MWRiYzFhZWY4Mjc4NTM2ZTZkMjBlZWUzZWU3YjI1OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRl
bXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBmb3VuZFRpdGxlMSBpcyB0cnVl
CitQQVNTIGZvdW5kVGl0bGUyIGlzIHRydWUKK1BBU1MgU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheQor
UEFTUyBmb3VuZFRpdGxlMSBpcyBmYWxzZQorUEFTUyBmb3VuZFRpdGxlMiBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92
ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4
dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmJh
YjU5ODRmMzg4MjQ1Mjc5MWQwOGI5MmJkN2E5NjViOTQ0NDcxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3Zlcmxh
eS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCkBAIC0wLDAgKzEs
NzcgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGFwcEhpZ2hs
aWdodHNFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSwg
aHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCitwIHsKKyAgICBmb250LXNpemU6IDMycHg7Cisg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8cD5I
ZWxsbyB3b3JsZCB0aGlzIGlzIGEgdGVzdC48L3A+Cis8L2JvZHk+Cis8c2NyaXB0PgordmFyIGZv
dW5kVGl0bGUxOwordmFyIGZvdW5kVGl0bGUyOworCitmdW5jdGlvbiBjaGVja0ZvckFwcEhpZ2hs
aWdodENvbnRleHRNZW51SXRlbXMoKSB7CisgICAgZm91bmRUaXRsZTEgPSBmYWxzZTsKKyAgICBm
b3VuZFRpdGxlMiA9IGZhbHNlOworCisgICAgbGV0IFt0aXRsZTEsIHRpdGxlMl0gPSBpbnRlcm5h
bHMuYXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtVGl0bGVzOworICAgIGZvciAobGV0IGl0ZW0g
b2YgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKCkpIHsKKyAgICAgICAgaWYgKGl0ZW0udGl0bGUg
PT09IHRpdGxlMSkKKyAgICAgICAgICAgIGZvdW5kVGl0bGUxID0gdHJ1ZTsKKworICAgICAgICBp
ZiAoaXRlbS50aXRsZSA9PT0gdGl0bGUyKQorICAgICAgICAgICAgZm91bmRUaXRsZTIgPSB0cnVl
OworICAgIH0KK30KKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQg
dGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInAiKTsKKyAgICBsZXQgdGV4dFJlY3QgPSB0
ZXh0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpOworCisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXko
aW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJmb29iYXIiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNlbGVj
dGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRleHQpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHRleHRSZWN0LmxlZnQgKyB0ZXh0UmVjdC53aWR0aCAvIDIsIHRleHRSZWN0LnRvcCArIHRl
eHRSZWN0LmhlaWdodCAvIDIpOworICAgIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJ
dGVtcygpOworICAgIHNob3VsZEJlVHJ1ZSgiZm91bmRUaXRsZTEiKTsKKyAgICBzaG91bGRCZVRy
dWUoImZvdW5kVGl0bGUyIik7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJl
bihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiZGl2I2ltYWdlLW92
ZXJsYXkiKSk7CisgICAgdGVzdFBhc3NlZCgiU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheSIpCisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAwLCAyMDApOworICAgIGNoZWNrRm9yQXBwSGlnaGxp
Z2h0Q29udGV4dE1lbnVJdGVtcygpOworICAgIHNob3VsZEJlRmFsc2UoImZvdW5kVGl0bGUxIik7
CisgICAgc2hvdWxkQmVGYWxzZSgiZm91bmRUaXRsZTIiKTsKKworICAgIHRleHQucmVtb3ZlKCk7
Cit9KTsKKzwvc2NyaXB0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3Nl
bGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40M2U1ZWVlZGJmMWI0MzVmOTZjM2EyMGJmODE0MDFhZWU0MzMxOTgxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0
LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1h
Z2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNGVk
Yzg5MDRhYTE3Yjg4Nzg1YjI3ODdjNDRhNzM5MTcxNzM2NzYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgorICAgIDxp
bWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9hPgor
PHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdl
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJ
bWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAg
ICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MCwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAg
XSk7CisKKyAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgiT2JzZXJ2ZWQgY2xpY2suIik7CisgICAgfSk7CisKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMzAwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VVcCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZWY3ZjM2M2QyOTY0OGFlODgwMTY2MWRhNTkxMDkwMzc1YzVhZjZhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVm
dDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAg
ICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAp
LAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAg
ICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgIHRleHQgOiAiaGVsbG93b3JsZDEiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0
IDogImhlbGxvd29ybGQyIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuNSwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjog
WworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dv
cmxkMyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RB
bGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiZGl2
I2ltYWdlLW92ZXJsYXkiKSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2Ut
ZHJhZy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21h
Yy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU2ZmVjZTM0NjI0MjFlOTRkY2VkYWU4MmZmOTY5MWEyNzhiMTI2OTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qt
aW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBu
ZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAg
ICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJp
bWciKSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMSIsCisgICAgICAgICAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDIiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAg
IGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0
IDogImhlbGxvd29ybGQzIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDUwLCA1MCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzNTApOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90
LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMt
bm90LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzZTVlZWVkYmYxYjQzNWY5
NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRo
LW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMv
c2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2su
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTE4NzNjOTgxOTIzMjNjMzExMDMyMGNiZDNlZWJlOGYwZjMyYmEyMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
bWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNs
aWNrLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsK
KyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFn
ZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGltYWdl
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4geworICAgICAgICB0ZXN0RmFpbGVk
KCJPYnNlcnZlZCBjbGljay4iKTsKKyAgICB9KTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDUwLCAzMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzAwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
bWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRj
aC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzdmNGM3NzQ1MDI4MzZjMWQzYjc3NjFiNGM3MTYyNjM1ZDlhNjZiNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
bWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRj
aC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAg
ICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3Vz
ZS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21h
Yy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NTRjMzYwNmFkNDljYWI0NjU0Zjg4YWU5ZWYxNGE4M2EyYTllZmI3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWlt
YWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48
L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxl
dCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5p
bnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisg
ICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDEpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fQorICAgIF0pOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDMwMCk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUw
LCAzMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30pOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQt
dHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlODk4OGJiODA5NTZkZDYy
NDUzOGQ5Njg4YTNkY2Y0MmU0OGQxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVu
dC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgbWFyZ2lu
OiAwOworfQorCitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7Cisg
ICAgbGVmdDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4t
NDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3Rh
dGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjY3N2QyMDJj
ZmMxZDhiZGU2YmFlZDE2YzE3ZjkxMjk4MTkxMmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJh
bnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5iYWNrIHsKKyAgICBiYWNrZ3JvdW5kLXNp
emU6IGNvbnRhaW47CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyk7Cit9CisKKy5mcm9udCB7CisgICAgb3BhY2l0eTogMDsKK30KKwor
Ym9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCisuZnJvbnQsIC5iYWNrIHsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6
IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGNsYXNzPSJiYWNrIj48L2Rpdj4KKzxpbWcgY2xhc3M9ImZyb250IiBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8ZGl2IGNsYXNzPSJiYXIiPjwv
ZGl2PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0
IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmlu
c3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMS41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMS41LCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgyLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAyKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAg
ICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMS41
KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMiwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAyKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVu
KGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3Zlcmxh
eS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0
ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0Yzcx
NjI2MzVkOWE2NmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJs
YXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3Jk
LWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3Zl
cmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlM2EwMTFkMzhjNDE1ZjFjMjdjNTdmYjM3NDQxMWQ1Nzgx
YjZkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1s
CkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0
OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBkcmFnZ2FibGU9InRydWUi
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+
CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGNvbnN0IGltYWdlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92
ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAg
ICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSks
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7CisK
KyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9v
dChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKK30pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0
LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZiY2RhYjkwY2RhMDZjYjRiNWFhMDQ0MWJiMmI5MzQ4YzY4ZjQ2MDQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1p
c21hdGNoLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCitkaXYgewor
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNv
bnRhaW47CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00
MDB4NDAwLnBuZyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3Jk
LWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdl
LW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjEwZDJkOTdjZjBiNzg5YWE0NzZhZTQ0MzJmMDM4
NDlhYTMxN2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3Zlcmxh
eS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKy5iYWNrIHsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47CisgICAgYmFj
a2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Cit9
CisKKy5mcm9udCB7CisgICAgb3BhY2l0eTogMDsKK30KKworYm9keSwgaHRtbCB7CisgICAgbWFy
Z2luOiAwOworfQorCisuZnJvbnQsIC5iYWNrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDog
NDAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJiYWNrIj48
L2Rpdj4KKzxpbWcgY2xhc3M9ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4
NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+
IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBp
bnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9t
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICBjaGlsZHJl
bjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxs
byIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBd
CisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxk
cmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3Zl
cmxheS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="commit-queue"
          id="452344"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430765</attachid>
            <date>2021-06-07 11:45:36 -0700</date>
            <delta_ts>2021-06-07 11:59:48 -0700</delta_ts>
            <desc>Really fix watchOS/tvOS builds?</desc>
            <filename>bug-226706-20210607114534.patch</filename>
            <type>text/plain</type>
            <size>352785</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhNDVlZjMwMWIzY2Y3NzBlNjljYWI1
OTA5MGQ0YmE5ZDM5YWJiNWUuLjY1NDE1N2IyZDFhMDhlY2E4MjUwMGM3NTk2YjU4MmJiZjFlN2Ew
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9y
IExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODkzMzY4ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmg6CisKKyAgICAgICAgTW92ZSB0aGUgZmVhdHVyZSBmbGFnIG91dCBvZiBXZWJLaXRB
ZGRpdGlvbnMgYW5kIGludG8gT3BlblNvdXJjZSBhcyBJTUFHRV9BTkFMWVNJUy4KKwogMjAyMS0w
Ni0wNyAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1dURl1bR1N0cmVhbWVyXSBGaXggY2xhbmcgVFNBIHdhcm5pbmdzIGluIFdURjo6RGF0YU11dGV4
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzFjNzExZTA2NzA2MjczOWU3MmQ5YTBkMmZlZDVhYjkxZTQyMmNkNy4u
ODhmY2RiZGE5MGRhYzViOTRmMzY3N2JkNjU3MWRhZTFlODg4NWFlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEwMSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZvciB0
aGUgZmFtaWx5IG9mICJsaXZlIHRleHQiIGFuZCB2aXN1YWwgaW50ZWxsaWdlbmNlIGZlYXR1cmVz
IGZyb20gV2ViS2l0QWRkaXRpb25zLgorICAgICAgICBUaGlzIGVuY29tcGFzc2VzIHRoZSBmb2xs
b3dpbmcgZmVhdHVyZXMgb24gbWFjT1MgMTIgYW5kIGlPUyAxNToKKworICAgICAgICAtIFRleHQg
c2VsZWN0aW9uIGFuZCBpbnRlcmFjdGlvbiBpbiBpbWFnZXMuCisgICAgICAgIC0gRGF0YSBkZXRl
Y3RvcnMgaW4gaW1hZ2VzLgorICAgICAgICAtIFZpc3VhbCBzZWFyY2ggKExvb2sgVXApIHZpYSBj
b250ZXh0IG1lbnUgaW4gaW1hZ2VzLgorCisgICAgICAgIFRvIGRvIHRoaXMsIHdlIHJlbmFtZSB0
aGUgSU1BR0VfRVhUUkFDVElPTiBmZWF0dXJlIGZsYWcgKGFuZCBhbnkgb3RoZXIgc2ltaWxhciBz
eW1ib2wgbmFtZXMgdGhhdCByZWZlcmVuY2UKKyAgICAgICAgImltYWdlIGV4dHJhY3Rpb24iIGlu
IHNvbWUgY2FwYWNpdHkpIHRvIHRoZWlyIHJlYWwgbmFtZXMgaW4gbWFjT1MgYW5kIGlPUzoKKwor
ICAgICAgICAtICJUZXh0IHJlY29nbml0aW9uIiwgaW4gY29kZSB0aGF0IHN1cHBvcnRzIGF1dG9t
YXRpYyBPQ1IgYW5kIGRhdGEgZGV0ZWN0b3JzIGluIGltYWdlcy4KKyAgICAgICAgLSAiTG9vayBV
cCIsIGluIGNvZGUgdGhhdCByZWZlcmVuY2VzIHRoZSBjb250ZXh0IG1lbnUgYWN0aW9uIHRvIGlu
dm9rZSB2aXN1YWwgc2VhcmNoLgorICAgICAgICAtICJWaXN1YWwgU2VhcmNoIiwgaW4gY29kZSB0
aGF0IG1hbmFnZXMgUXVpY2tMb29rIGludGVncmF0aW9uIGZvciBpbnZva2luZyB2aXN1YWwgc2Vh
cmNoLgorICAgICAgICAtICJJbWFnZSBhbmFseXNpcyIsIGluIGNvZGUgdGhhdCBkaXJlY3RseSBp
bnRlZ3JhdGVzIHdpdGggVktJbWFnZUFuYWx5emVyIGFuZCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWlt
YWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRl
bXBvdGVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1z
ZWxlY3Rpb24tc3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2Vs
ZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lk
ZS1saW5rLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92
ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10
ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1p
bi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29y
ZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVy
bGF5KToKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVw
ZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJs
ZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1v
dXNlRXZlbnRUYXJnZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bV90
ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAg
KiBwYWdlL1F1aXJrcy5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAq
IHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ltYWdlRXh0cmFjdGlvblJlc3Vs
dC5oLgorCisgICAgICAgIFJlbmFtZSB0aGUgZm9sbG93aW5nOgorICAgICAgICAtIEltYWdlRXh0
cmFjdGlvblJlc3VsdCA9PiBUZXh0UmVjb2duaXRpb25SZXN1bHQKKyAgICAgICAgLSBJbWFnZUV4
dHJhY3Rpb25UZXh0RGF0YSA9PiBUZXh0UmVjb2duaXRpb25Xb3JkRGF0YQorICAgICAgICAtIElt
YWdlRXh0cmFjdGlvbkxpbmVEYXRhID0+IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhCisgICAgICAg
IC0gSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyA9PiBUZXh0UmVjb2duaXRpb25EYXRh
RGV0ZWN0b3IKKworICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uV29yZERhdGE6OlRl
eHRSZWNvZ25pdGlvbldvcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
bldvcmREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0
aW9uV29yZERhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25M
aW5lRGF0YTo6VGV4dFJlY29nbml0aW9uTGluZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uTGluZURhdGE6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25MaW5lRGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmRlY29kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VEYXRhRm9yTGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omluc3RhbGxJbWFnZU92ZXJsYXkpOgorCiAyMDIx
LTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBvdmVy
bGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBmZjZhMWU4OTNhOThiMGM4YTIyYmY4MDdiM2RiNzllZDMyZDRkNzg5
Li43NTUzMTAyNzJiMWNkMzg1MjBkZGQ2YmUxMzUzMTc1MzVmZTAxNzcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5MSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRp
bGl0aWVzLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaC4KKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW06IEFkZGVkLgorCisgICAgICAgIFJlbmFtZSBJbWFn
ZUV4dHJhY3Rpb25VdGlsaXRpZXMgdG8gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLgorCisgICAg
ICAgIChXZWJLaXQ6OmZsb2F0UXVhZCk6CisgICAgICAgIChXZWJLaXQ6OmZsb2F0UXVhZHMpOgor
ICAgICAgICAoV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKFdl
YktpdDo6aXNMaXZlVGV4dEVuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAgICAgICAoV2ViS2l0Ojp0
b0ltcGwpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmRlY29kZVBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz46OmVuY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0
YURldGVjdG9ySW5mbz46OmRlY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
U2hhcmVkL1RleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmguCisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3Rvcklu
Zm8+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdl
RXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbToK
KyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOmN1c3Rv
bVRpdGxlOmFzc2lzdGFudDpdKToKKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBpbWFnZUZv
ckVsZW1lbnRBY3Rpb25UeXBlOl0pOgorCisgICAgICAgIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGtl
ZXAgdGhlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgU1BJIHN5bWJvbCwgdG8gYXZv
aWQgYnJlYWtpbmcgTW9iaWxlTWFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVD
b250ZXh0TWVudUxvb2tVcEltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpo
YW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUg
YGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2VgIHRvIGBoYW5kbGVDb250ZXh0TWVudUxvb2tV
cEltYWdlYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmVuc3VyZUltYWdlQW5hbHl6ZXIpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVJbWFnZUFuYWx5c2lzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNv
bXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKToKKworICAgICAgICBSZW5hbWUgYGNvbXB1dGVD
YW5SZXZlYWxJbWFnZWAgdG8gYGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzYC4KKworICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXB0c1ByZXZpZXdQYW5lbENvbnRyb2wpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnQ6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUNhblJldmVhbEltYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0KTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHVwZGF0ZVdpdGhJ
bWFnZUV4dHJhY3Rpb25SZXN1bHRgIHRvIGB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
YC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFRleHRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHJlcXVlc3RJbWFnZUV4
dHJhY3Rpb25gIHRvIGByZXF1ZXN0VGV4dFJlY29nbml0aW9uYC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFz
c2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDpdKToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6XSk6CisgICAgICAg
ICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOmVs
ZW1lbnQ6bmVlZHNJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlc10pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlY29nbml6ZVNpbXVsdGFu
ZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRC
ZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBoYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5BdFBvaW50Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNhblBlcmZvcm1BY3Rpb25Gb3JXZWJWaWV3OndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGFyZ2V0Rm9yQWN0aW9uOndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2hvdWxkRGVmZXJH
ZXN0dXJlRHVlVG9JbWFnZUFuYWx5c2lzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZHJhZ0ludGVyYWN0aW9uOnByZXBhcmVG
b3JTZXNzaW9uOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VuZElt
YWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlc2VudFZpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyRm9ySW1hZ2U6aW1hZ2VVUkw6dGl0bGU6aW1hZ2VCb3VuZHM6YXBwZWFyYW5jZUFjdGlv
bnM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXI6ZnJhbWVG
b3JQcmV2aWV3SXRlbTppblNvdXJjZVZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJldmlld0NvbnRyb2xsZXI6dHJhbnNpdGlvbkltYWdlRm9yUHJldmlld0l0ZW06Y29udGVudFJl
Y3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXJEaWREaXNt
aXNzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG51bWJlck9mUHJldmlld0l0ZW1zSW5Q
cmV2aWV3Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2aWV3Q29u
dHJvbGxlcjpwcmV2aWV3SXRlbUF0SW5kZXg6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJvdmlkZURhdGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNo
ZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd1RleHRGb3JJ
bWFnZTppbWFnZVVSTDp0aXRsZTppbWFnZUJvdW5kczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25G
b3JFbGVtZW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0
YW50Omxvb2tVcEltYWdlOmltYWdlVVJMOnRpdGxlOmltYWdlQm91bmRzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGltYWdlQW5hbHl6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBoYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2V0VXBJbWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Rl
YXJEb3duSW1hZ2VBbmFseXNpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jYW5jZWxJ
bWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3JlYXRlSW1hZ2VBbmFs
eXNpc1JlcXVlc3Q6aW1hZ2U6aW1hZ2VVUkw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
Y3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6aW1hZ2U6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcmVxdWVzdFRleHRSZWNvZ25pdGlvbjppbWFnZURhdGE6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc0dl
c3R1cmVEaWRCZWdpbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFnZUFuYWx5c2lz
R2VzdHVyZURpZEZhaWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNp
c0dlc3R1cmVEaWRUaW1lT3V0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnNlcnRU
ZXh0RnJvbUNhbWVyYUZvcldlYlZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2Fw
dHVyZVRleHRGcm9tQ2FtZXJhRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfY29udGV4dE1lbnVJbnRlcmFjdGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246
Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250aW51ZUNvbnRleHRN
ZW51SW50ZXJhY3Rpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjp3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjphbmltYXRvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFjdGlvbjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZW5kSW1hZ2VFeHRyYWN0aW9u
R2VzdHVyZURlZmVycmFsOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9k
b0FmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0
cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplci5tbS4KKyAgICAgICAgKC1bV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIgaW5pdFdpdGhJbWFnZUFuYWx5c2lzR2VzdHVyZURlbGVnYXRlOl0pOgorICAgICAgICAo
LVtXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciBzZXRTdGF0ZTpdKToKKworICAgICAg
ICBSZW5hbWUgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB0byBXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplciAoYWxvbmcgd2l0aCBhbGwgYWRqYWNlbnQgY2xhc3Nlcyku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb21wdXRlQ2FuUmV2ZWFsSW1h
Z2UpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2
aWV3Q29udHJvbGxlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW06IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJv
bGxlci5tbS4KKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBpbml0
V2l0aFBhZ2U6aW1hZ2VEYXRhOnRpdGxlOmltYWdlVVJMOl0pOgorICAgICAgICAoLVtXS1Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGJlZ2luQ29udHJvbDpdKToKKyAgICAgICAgKC1bV0tW
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBlbmRDb250cm9sOl0pOgorICAgICAgICAoLVtX
S1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGNsb3NlUGFuZWxJZk5lY2Vzc2FyeV0pOgor
ICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGlzQ29udHJvbGxpbmc6
XSk6CisgICAgICAgICgtW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJvdmlkZURh
dGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
IG51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2aWV3UGFuZWw6XSk6CisgICAgICAgICgtW1dLVmlz
dWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJldmlld1BhbmVsOnByZXZpZXdJdGVtQXRJbmRl
eDpdKToKKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBwcmV2aWV3
UGFuZWw6aW5pdGlhbEFjdGl2aXR5Rm9ySXRlbTpdKToKKworICAgICAgICBSZW5hbWUgYFdLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXJgIHRvIGBXS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6bWVudUl0ZW1JZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmJlZ2luUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW5kUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5WaXN1YWxTZWFy
Y2hQcmV2aWV3UGFuZWwpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29n
bml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VF
eHRyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEtMDYtMDcg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBGaW5kLWluLXBhZ2Ugc2hvdWxkIG1hdGNoIHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMGFjMDYzMTU4YzY5YjE2MDE2MGU4MTIwOWNj
ZjAwYzUxNjMyMWNlYi4uZGFjNDFhYzQ1OThlYjExOGQ1MDExOTkxOTdjZGJmOTM3MzIxY2MyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTA3
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3Ry
ZWFtIFdlYktpdCBzdXBwb3J0IGZvciBMaXZlIFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Nzg5MzM2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOiBSZXBsYWNlIElNQUdFX0VYVFJBQ1RJT04gd2l0
aCBJTUFHRV9BTkFMWVNJUy4KKwogMjAyMS0wNi0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBUdXJuIFRleHRJdGVyYXRvckJlaGF2aW9yRmxhZyBp
bnRvIGFuIGVudW0gY2xhc3MgYW5kIHdyYXAgaXQgaW4gT3B0aW9uU2V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggMDdlZDAzMjRmOGI3ZmMyMmUzZDY1NGIyNjU2ZGMzNzA5
ZjU4NzgzNi4uYzNmYmIyYmVlYTEzNzI4ZmU1ZWIxYWMzNjgyYmY2ZDljNmI0ZTQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtNjc4LDMgKzY3OCwxMCBAQAogI2lmICFk
ZWZpbmVkKEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQikKICNkZWZp
bmUgRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCIDEKICNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMjAwMDApIFwKKyAgICB8fCAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lNQUdFX0FOQUxZU0lTKQorI2RlZmluZSBFTkFCTEVfSU1BR0VfQU5B
TFlTSVMgMQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMTJmMTgyYzJmYjEyNTgxZTdiZjk3YWE5ZTA1
YTZjNDUzYTFlYzBiLi44YmJlNzI3N2IxYjM3ZDMxYzEzNmExY2QxZWU3ZDI2OWVhMjBjNjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01Mzc2LDcgKzUzNzYsNyBAQAogCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJz
dHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4MjQz
NEIyNjBDMzMwNjAwMjI0OTdDIC8qIEltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODI0MzQ4MjYwQzMyRjEwMDIy
NDk3QyAvKiBJbWFnZU92ZXJsYXlDb250cm9sbGVyLmggKi87IH07CiAJCUY0ODU3MEE1MjY0NEM3
NkQwMEMwNUY3MSAvKiBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NTcwQTQyNjQ0Qzc2RDAwQzA1Rjcx
IC8qIFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIElt
YWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJl
c3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUY0OEI3RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1bHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEI3RDUyMjVDMzQx
RTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIg
LyogRm9udFNoYWRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ4RDJBNkEyMTU2MjNCNDAwQzY3NTJCIC8qIEZvbnRTaGFkb3cuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkE3RTIxNTcxODI2
MDBDNjc1MkIgLyogRm9udEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTcxMjE1NkRDMEEwMEM2NzUyQiAvKiBGb250QXR0cmli
dXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY0OEQyQUE1MjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkFBMzIxNTk3NDBEMDBDNjc1MkIg
LyogQ29sb3JDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xNjg5Nyw3ICsxNjg5Nyw3IEBACiAJCUY0ODM4OTgzMUUxRERGMkIwMDc2QjdF
QSAvKiBEdW1wRWRpdGluZ0hpc3RvcnkuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBEdW1wRWRpdGluZ0hpc3RvcnkuanM7IHBhdGggPSBTY3JpcHRzL0R1bXBFZGl0
aW5nSGlzdG9yeS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4Mzg5ODQxRTFE
REYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVkaXRpbmdIaXN0b3J5VXRpbC5qczsgcGF0aCA9IFNjcmlw
dHMvRWRpdGluZ0hpc3RvcnlVdGlsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDg1NzBBNDI2NDRDNzZEMDBDMDVGNzEgLyogVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFj
dGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIFRl
eHRSZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UmVjb2duaXRpb25SZXN1
bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBNkEyMTU2MjNCNDAwQzY3
NTJCIC8qIEZvbnRTaGFkb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNoYWRvdy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0
dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0dHJpYnV0ZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBNzUyMTU2RkU1NzAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1
dGVzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGb250QXR0cmlidXRlc0NvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgwNzEsNyArMjgwNzEsNiBAQAogCQkJ
CUNENjJGQjk0MUFGMDE4RTcwMDEyRUQ3RCAvKiBHZW5lcmljVGFza1F1ZXVlLmggKi8sCiAJCQkJ
QTg3NDhCREYxMkNCRjJEQzAwMUZCQTQxIC8qIEhhc2hUb29scy5oICovLAogCQkJCUJDM0JDMjlC
MEU5MUFCMEYwMDgzNTU4OCAvKiBIb3N0V2luZG93LmggKi8sCi0JCQkJRjQ4QjdENTIyNUMzNDFF
NjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oICovLAogCQkJCTFBRTAwRDU3MTgy
REFDOEQwMDA4N0RENyAvKiBLZXllZENvZGluZy5oICovLAogCQkJCUUxNUZGN0Q0MThDOTU1Mzgw
MEZFNEM4NyAvKiBLZXlwcmVzc0NvbW1hbmQuaCAqLywKIAkJCQlBM0Q0MkE4NDFGMzNCQTM2MDBB
NjRCNjIgLyogTGF5b3V0VW5pdC5jcHAgKi8sCkBAIC0yODIxMiw2ICsyODIxMSw3IEBACiAJCQkJ
RTNDMDQxMzIyNTRDQTcxMTAwMjFEMEU2IC8qIFN5c3RlbVNvdW5kTWFuYWdlci5jcHAgKi8sCiAJ
CQkJRTNDMDQxMkQyNTRDQTI5QjAwMjFEMEU2IC8qIFN5c3RlbVNvdW5kTWFuYWdlci5oICovLAog
CQkJCTdDQzU2NEI2MThCQUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5o
ICovLAorCQkJCUY0OEI3RDUyMjVDMzQxRTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1
bHQuaCAqLywKIAkJCQlCQ0U2NUQzMTBFQUQxMjExMDA3RTQ1MzMgLyogVGhlbWUuY3BwICovLAog
CQkJCUJDRTY1OEZFMEVBOTI0OEEwMDdFNDUzMyAvKiBUaGVtZS5oICovLAogCQkJCTBGMjgzQThE
MjM1NTgyRjgwMDQ3OTRDQSAvKiBUaGVtZVR5cGVzLmNwcCAqLywKQEAgLTMyNDcxLDcgKzMyNDcx
LDYgQEAKIAkJCQk0MUZBQkQyRDFGNERGRTRBMDA2QTZDOTcgLyogRE9NQ2FjaGVFbmdpbmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzgwQzI5MUYzNDM2QUMwMDE1NUZEQSAvKiBET01DYWNoZVN0
b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREEzRkZFMjE1MUI2RjUwMEZENjYwNCAvKiBE
T01DU1NDdXN0b21Qcm9wZXJ0eURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0NDdG
NUIzMjY2Q0Y2M0QwMDEzM0YwMCAvKiBUZXh0Qm94U2VsZWN0YWJsZVJhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGQzlBMEY3NTE2NDA5NENGMDAzRDZCOEQgLyogRE9NQ1NTTmFtZXNwYWNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0QjZCNUNCRDIxNjQwRUZGMDA2MDM4MTcgLyogRE9NQ1NTUGFp
bnRXb3JrbGV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRBM0ZGRjIxNTFCNkY1MDBGRDY2MDQg
LyogRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzEw
MCw3ICszMzA5OSw2IEBACiAJCQkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVj
b2RlckNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyog
SW1hZ2VEZWNvZGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQjYxMjM5
MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0OEI3
RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1NzZBNTY1MUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNTVCM0RDMjEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTY3Niw2ICszNTY3NCw3IEBACiAJCQkJQ0U3QjJE
QjUxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1NERDRTYxODgxMDUxRDAwM0VFREJCIC8qIFRleHRBdXRvU2l6aW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzNDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJvdW5k
YXJpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0NDdGNUIzMjY2Q0Y2M0QwMDEzM0YwMCAvKiBU
ZXh0Qm94U2VsZWN0YWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzE1MUJEODEyRjE1
NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
N0QwMDEyMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3REJGOERFMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzU3MTUsNiArMzU3MTQsNyBAQAogCQkJCTFDMThEQTU5MTgxQUY2QTUw
MEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRDOTFBMEUxODAy
MzQzMTAwQTE3RjZEIC8qIFRleHRQYWludFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTIx
MjE1ODI0MERCRUI5MDA2RUQ0NDMgLyogVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIFRleHRSZWNvZ25pdGlvblJl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8qIFRl
eHRSZXNvdXJjZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjRCNDY1MEUyRUYyRUEw
MDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDhCMUI3QTBGM0EyRjlC
MDA0N0E5RTIgLyogVGV4dFNpemVBZGp1c3RtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmgKaW5kZXggNTQ3M2JiMDBjNDg2
OGI1NDkxMTQzYTNhZTg4OTcwOWI4ZWU4ZGZiZS4uNThhNjljYzc4NDMzMWYwYjQxNjgxZTA5MjM0
N2Q5NWY0MzFlYzZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9E
YXRhRGV0ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBIVE1MRWxl
bWVudDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwotc3RydWN0
IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm87CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9u
RGF0YURldGVjdG9yOwogCiBzdHJ1Y3QgRGV0ZWN0ZWRJdGVtIHsKICAgICBSZXRhaW5QdHI8RERB
Y3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0OwpAQCAtNjYsOCArNjYsOCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcmVxdWlyZXNFeHRlbmRlZENvbnRleHQoRWxl
bWVudCYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBzdGF0
aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50
JiwgY29uc3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOworI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50
Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50JiwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVj
dG9yJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGRhdGFEZXRlY3RvclVS
TFByb3RvY29sKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Rh
dGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24ubW0KaW5kZXggMjUwNDM4OTI0OGQ2M2YwODZhZmRiY2E1ODU3MTZhYzQ1OTUyY2JmYi4uMmIx
OTkzZTczMmFhN2IxMmIwNTY0ZjhkMmVhNWJhMWU1NjU4YjU0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2lt
cG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IgogI2ltcG9ydCAiSGl0VGVzdFJlc3VsdC5oIgotI2ltcG9ydCAiSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0LmgiCiAjaW1wb3J0ICJOb2RlTGlzdC5oIgogI2ltcG9ydCAiTm9kZVRyYXZlcnNhbC5oIgog
I2ltcG9ydCAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNTEsNiArNTAsNyBAQAogI2ltcG9ydCAiU3R5
bGVQcm9wZXJ0aWVzLmgiCiAjaW1wb3J0ICJUZXh0LmgiCiAjaW1wb3J0ICJUZXh0SXRlcmF0b3Iu
aCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblJlc3VsdC5oIgogI2ltcG9ydCAiVmlzaWJsZVBv
c2l0aW9uLmgiCiAjaW1wb3J0ICJWaXNpYmxlVW5pdHMuaCIKICNpbXBvcnQgPHBhbC9zcGkvaW9z
L0RhdGFEZXRlY3RvcnNVSVNQSS5oPgpAQCAtNjg3LDkgKzY4Nyw5IEBAIGJvb2wgRGF0YURldGVj
dGlvbjo6aXNEYXRhRGV0ZWN0b3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAg
cmV0dXJuIGlzPEhUTUxBbmNob3JFbGVtZW50PihlbGVtZW50KSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih4X2FwcGxlX2Rh
dGFfZGV0ZWN0b3JzQXR0ciksICJ0cnVlIik7CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLVJlZjxIVE1MRWxlbWVudD4gRGF0
YURldGVjdGlvbjo6Y3JlYXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mIGluZm8pCitSZWY8SFRN
TEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImIGluZm8p
CiB7CiAgICAgYXV0byBjb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBpZiAoYXV0byBmcmFtZSA9IG1ha2VSZWZQdHIoZG9jdW1lbnQuZnJhbWUoKSkpIHsK
QEAgLTY5OSw3ICs2OTksNyBAQCBSZWY8SFRNTEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0
ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmIGRvY3VtZW50LAogICAgIHJldHVybiBj
b250YWluZXI7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBi
L1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggYjc0ODVk
YTllY2ZjN2VhYTVlMzk5MzY2NTNjZDVkODA5OTI0ZDk3ZC4uNjE4OTJmZTI3NDY3OTNkODFmMWUy
YjA3NjQwN2E5YzAyY2Y5MjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzCkBAIC0xNiw0NSArMTYsMTIgQEAKIC8qIHZpc2libGUgbmFtZSBvZiB0aGUg
cGx1Zy1pbiBob3N0IHByb2Nlc3MuIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgcGx1Zy1pbiBu
YW1lIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwog
IiVAICglQCBJbnRlcm5ldCBwbHVnLWluKSIgPSAiJUAgKCVAIEludGVybmV0IHBsdWctaW4pIjsK
IAotLyogQXVkaW8vVGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMg
dGhlIGxhYmVsIGFuZCBsYW5ndWFnZSBvZiB0aGUgdHJhY2ssIGluIHRoZSBmb3JtIG9mICdMYW5n
dWFnZSAoTGFiZWwpJy4gKi8KLSIlQCAoJUApIChhdWRpby90ZXh0IHRyYWNrKSIgPSAiJUAgKCVA
KSI7Ci0KLS8qIENsb3NlZCBjYXB0aW9ucyB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQg
dGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBD
QycpLiAqLwotIiVAIENDICh0ZXh0IHRyYWNrKSIgPSAiJUAgQ0MiOwotCi0vKiBDYXB0aW9ucyB0
ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2Ug
YW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBDYXB0aW9ucycpLiAqLwotIiVAIENhcHRpb25z
ICh0ZXh0IHRyYWNrKSIgPSAiJUAgQ2FwdGlvbnMiOwotCi0vKiBDaGFwdGVycyB0ZXh0IHRyYWNr
IGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxv
Y2FsZSAoZS5nLiAnRW5nbGlzaCBDaGFwdGVycycpLiAqLwotIiVAIENoYXB0ZXJzICh0ZXh0IHRy
YWNrKSIgPSAiJUAgQ2hhcHRlcnMiOwotCi0vKiBDb21tZW50YXJ5IGF1ZGlvIHRyYWNrIGRpc3Bs
YXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAo
ZS5nLiAnRW5nbGlzaCBDb21tZW50YXJ5JykuICovCi0iJUAgQ29tbWVudGFyeSAoYXVkaW8gdHJh
Y2spIiA9ICIlQCBDb21tZW50YXJ5IjsKLQotLyogRGVzY3JpcHRpb25zIGF1ZGlvIHRyYWNrIGRp
c3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2Fs
ZSAoZS5nLiAnRW5nbGlzaCBEZXNjcmlwdGlvbnMnKS4gKi8KLSIlQCBEZXNjcmlwdGlvbnMgKGF1
ZGlvIHRyYWNrKSIgPSAiJUAgRGVzY3JpcHRpb25zIjsKLQotLyogRGVzY3JpcHRpb25zIHRleHQg
dHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQv
b3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIERlc2NyaXB0aW9ucycpLiAqLwotIiVAIERlc2NyaXB0
aW9ucyAodGV4dCB0cmFjaykiID0gIiVAIERlc2NyaXB0aW9ucyI7Ci0KLS8qIEVhc3kgUmVhZGVy
IChpLmUuIDNyZC1ncmFkZSBsZXZlbCkgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRo
YXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggRWFz
eSBSZWFkZXInKS4gKi8KLSIlQCBFYXN5IFJlYWRlciAodGV4dCB0cmFjaykiID0gIiVAIEVhc3kg
UmVhZGVyIjsKLQotLyogRm9yY2VkIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0
IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIEZvcmNl
ZCcpLiAqLwotIiVAIEZvcmNlZCAodGV4dCB0cmFjaykiID0gIiVAIEZvcmNlZCI7Ci0KIC8qIHZp
c2libGUgbmFtZSBvZiB0aGUgR1BVIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGlj
YXRpb24gbmFtZS4gKi8KICIlQCBHcmFwaGljcyBhbmQgTWVkaWEiID0gIiVAIEdyYXBoaWNzIGFu
ZCBNZWRpYSI7CiAKLS8qIE1ldGFkYXRhIHRleHQgdHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0
aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQvb3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIE1l
dGFkYXRhJykuICovCi0iJUAgTWV0YWRhdGEgKHRleHQgdHJhY2spIiA9ICIlQCBNZXRhZGF0YSI7
Ci0KIC8qIHZpc2libGUgbmFtZSBvZiB0aGUgbmV0d29yayBwcm9jZXNzLiBUaGUgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgTmV0d29ya2luZyIgPSAiJUAgTmV0d29y
a2luZyI7CiAKLS8qIFNESCAoaS5lLiBkZWFmIGFuZC9vciBoYXJkIG9mIGhlYXJpbmcpIHRleHQg
dHJhY2sgZGlzcGxheSBuYW1lIGZvcm1hdCB0aGF0IGluY2x1ZGVzIHRoZSBsYW5ndWFnZSBhbmQv
b3IgbG9jYWxlIChlLmcuICdFbmdsaXNoIFNESCcpLiAgKi8KLSIlQCBTREggKHRleHQgdHJhY2sp
IiA9ICIlQCBTREgiOwotCiAvKiBWaXNpYmxlIG5hbWUgb2YgU2VydmljZSBXb3JrZXIgcHJvY2Vz
cy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFNlcnZpY2Ug
V29ya2VyICglQCkiID0gIiVAIFNlcnZpY2UgV29ya2VyICglQCkiOwogCkBAIC0xNDgsOSArMTE1
LDYgQEAKIC8qIE1lc3NhZ2UgZm9yIHJlcXVlc3RpbmcgY3Jvc3Mtc2l0ZSBjb29raWUgYW5kIHdl
YnNpdGUgZGF0YSBhY2Nlc3MuICovCiAiQWxsb3cg4oCcJUDigJ0gYW5kIOKAnCVA4oCdIHRvIHVz
ZSBjb29raWVzIGFuZCB3ZWJzaXRlIGRhdGEgd2hpbGUgYnJvd3Npbmcg4oCcJUDigJ0/IiA9ICJB
bGxvdyDigJwlQOKAnSBhbmQg4oCcJUDigJ0gdG8gdXNlIGNvb2tpZXMgYW5kIHdlYnNpdGUgZGF0
YSB3aGlsZSBicm93c2luZyDigJwlQOKAnT8iOwogCi0vKiBNZXNzYWdlIGZvciBnZW9sb2NhdGlv
biBwcm9tcHQgKi8KLSJBbGxvdyDigJwlQOKAnSB0byB1c2UgeW91ciBjdXJyZW50IGxvY2F0aW9u
PyIgPSAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIgY3VycmVudCBsb2NhdGlvbj8iOwotCiAv
KiBNZXNzYWdlIGZvciBzcGVjaHJlY29nbml0aW9uIHByb21wdCAqLwogIkFsbG93IOKAnCVA4oCd
IHRvIGNhcHR1cmUgeW91ciBhdWRpbyBhbmQgdXNlIGl0IGZvciBzcGVlY2ggcmVjb2duaXRpb24/
IiA9ICJBbGxvdyDigJwlQOKAnSB0byBjYXB0dXJlIHlvdXIgYXVkaW8gYW5kIHVzZSBpdCBmb3Ig
c3BlZWNoIHJlY29nbml0aW9uPyI7CiAKQEAgLTE2Myw2ICsxMjcsOSBAQAogLyogTWVzc2FnZSBm
b3IgdXNlciBjYW1lcmEgYWNjZXNzIHByb21wdCAqLwogIkFsbG93IOKAnCVA4oCdIHRvIHVzZSB5
b3VyIGNhbWVyYT8iID0gIkFsbG93IOKAnCVA4oCdIHRvIHVzZSB5b3VyIGNhbWVyYT8iOwogCisv
KiBNZXNzYWdlIGZvciBnZW9sb2NhdGlvbiBwcm9tcHQgKi8KKyJBbGxvdyDigJwlQOKAnSB0byB1
c2UgeW91ciBjdXJyZW50IGxvY2F0aW9uPyIgPSAiQWxsb3cg4oCcJUDigJ0gdG8gdXNlIHlvdXIg
Y3VycmVudCBsb2NhdGlvbj8iOworCiAvKiBNZXNzYWdlIGZvciB1c2VyIG1pY3JvcGhvbmUgYWNj
ZXNzIHByb21wdCAqLwogIkFsbG93IOKAnCVA4oCdIHRvIHVzZSB5b3VyIG1pY3JvcGhvbmU/IiA9
ICJBbGxvdyDigJwlQOKAnSB0byB1c2UgeW91ciBtaWNyb3Bob25lPyI7CiAKQEAgLTIwOCw5ICsx
NzUsNiBAQAogLyogTGFiZWwgZm9yIHRoZSBidXkgd2l0aCBBcHBsZSBQYXkgYnV0dG9uLiAqLwog
IkJ1eSB3aXRoIEFwcGxlIFBheSIgPSAiQnV5IHdpdGggQXBwbGUgUGF5IjsKIAotLyogRGlzcGxh
eSBuYW1lIGZvciBjbG9zZWQgY2FwdGlvbnMgdGV4dCB0cmFja3MuICovCi0iQ0MgKHRleHQgdHJh
Y2spIiA9ICJDQyI7Ci0KIC8qIENhbmNlbCAqLwogIkNhbmNlbCIgPSAiQ2FuY2VsIjsKIApAQCAt
MjIzLDE4ICsxODcsMTIgQEAKIC8qIENhcGl0YWxpemUgY29udGV4dCBtZW51IGl0ZW0gKi8KICJD
YXBpdGFsaXplIiA9ICJDYXBpdGFsaXplIjsKIAotLyogRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRy
YWNrIGtpbmQgJ2NhcHRpb25zJy4gKi8KLSJDYXB0aW9ucyAodGV4dCB0cmFjaykiID0gIkNhcHRp
b25zIjsKLQogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIkNlbnRlciAoVW5kbyBhY3Rpb24gbmFt
ZSkiID0gIkNlbnRlciI7CiAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJDaGFuZ2UgQXR0cmli
dXRlcyAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkNoYW5nZSBBdHRyaWJ1dGVzIjsKIAotLyogRGlz
cGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2NoYXB0ZXJzJy4gKi8KLSJDaGFwdGVycyAo
dGV4dCB0cmFjaykiID0gIkNoYXB0ZXJzIjsKLQogLyogQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBt
ZW51IGl0ZW0gKi8KICJDaGVjayBEb2N1bWVudCBOb3ciID0gIkNoZWNrIERvY3VtZW50IE5vdyI7
CiAKQEAgLTI2OCw5ICsyMjYsNiBAQAogLyogU3VidGl0bGUgb2YgdGhlIGxhYmVsIHRvIHNob3cg
b24gYSBzbmFwc2hvdHRlZCBwbHVnLWluICovCiAiQ2xpY2sgdG8gcmVzdGFydCIgPSAiQ2xpY2sg
dG8gcmVzdGFydCI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgYXVkaW8gdHJhY2sga2luZCAnY29t
bWVudGFyeScuICovCi0iQ29tbWVudGFyeSAoYXVkaW8gdHJhY2spIiA9ICIlQCBDb21tZW50YXJ5
IjsKLQogLyogV0tFcnJvckNvbnRlbnRSdWxlTGlzdFN0b3JlQ29tcGlsZUZhaWxlZCBkZXNjcmlw
dGlvbiAqLwogIkNvbXBpbGluZyBhIFdLQ29udGVudFJ1bGVMaXN0IGZhaWxlZCIgPSAiQ29tcGls
aW5nIGEgV0tDb250ZW50UnVsZUxpc3QgZmFpbGVkIjsKIApAQCAtMzM3LDEyICsyOTIsNiBAQAog
LyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIkRlbGV0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkRl
bGV0ZSI7CiAKLS8qIERpc3BsYXkgbmFtZSBmb3IgYXVkaW8gdHJhY2sga2luZCAnZGVzY3JpcHRp
b25zJy4gKi8KLSJEZXNjcmlwdGlvbnMgKGF1ZGlvIHRyYWNrKSIgPSAiRGVzY3JpcHRpb25zIjsK
LQotLyogRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2Rlc2NyaXB0aW9ucycuICov
Ci0iRGVzY3JpcHRpb25zICh0ZXh0IHRyYWNrKSIgPSAiRGVzY3JpcHRpb25zIjsKLQogLyogdGV4
dCB0byBkaXNwbGF5IGluIDxkZXRhaWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNo
aWxkICovCiAiRGV0YWlscyIgPSAiRGV0YWlscyI7CiAKQEAgLTM4OCw5ICszMzcsNiBAQAogLyog
VW5kbyBhY3Rpb24gbmFtZSAqLwogIkRyYWcgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJEcmFnIjsK
IAotLyogRGlzcGxheSBuYW1lIGZvciBlYXN5IHJlYWRlciAoaS5lLiAzcmQtZ3JhZGUgbGV2ZWwp
IHRleHQgdHJhY2tzLiAqLwotIkVhc3kgUmVhZGVyICh0ZXh0IHRyYWNrKSIgPSAiRWFzeSBSZWFk
ZXIiOwotCiAvKiBWaWRlbyBFbnRlciBGdWxsIFNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSAqLwog
IkVudGVyIEZ1bGwgU2NyZWVuIiA9ICJFbnRlciBGdWxsIFNjcmVlbiI7CiAKQEAgLTQzNiw5ICsz
ODIsNiBAQAogLyogRm9udCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0gKi8KICJGb250IiA9ICJGb250
IjsKIAotLyogRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2ZvcmNlZCcuICovCi0i
Rm9yY2VkICh0ZXh0IHRyYWNrKSIgPSAiRm9yY2VkIjsKLQogLyogVW5kbyBhY3Rpb24gbmFtZSAq
LwogIkZvcm1hdCBCbG9jayAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkZvcm1hdHRpbmciOwogCkBA
IC01NTMsNiArNDk2LDkgQEAKIC8qICdXZWJzaXRlJyBuYW1lIGRpc3BsYXllZCB3aGVuIGxvY2Fs
IGRvY3VtZW50cyBoYXZlIHN0b3JlZCBsb2NhbCBkYXRhICovCiAiTG9jYWwgZG9jdW1lbnRzIG9u
IHlvdXIgY29tcHV0ZXIiID0gIkxvY2FsIGRvY3VtZW50cyBvbiB5b3VyIGNvbXB1dGVyIjsKIAor
LyogVGl0bGUgZm9yIExvb2sgVXAgYWN0aW9uIGJ1dHRvbiAqLworIkxvb2sgVXAiID0gIkxvb2sg
VXAiOworCiAvKiBMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0gKi8KICJM
b29rIFVwIGluIERpY3Rpb25hcnkiID0gIkxvb2sgVXAgaW4gRGljdGlvbmFyeSI7CiAKQEAgLTU5
OCw5ICs1NDQsNiBAQAogLyogTWFsd2FyZSBjb25maXJtYXRpb24gZGlhbG9nICovCiAiTWVyZWx5
IHZpc2l0aW5nIGEgc2l0ZSBpcyBzdWZmaWNpZW50IGZvciBtYWx3YXJlIHRvIGluc3RhbGwgaXRz
ZWxmIGFuZCBoYXJtIHlvdXIgY29tcHV0ZXIuIiA9ICJNZXJlbHkgdmlzaXRpbmcgYSBzaXRlIGlz
IHN1ZmZpY2llbnQgZm9yIG1hbHdhcmUgdG8gaW5zdGFsbCBpdHNlbGYgYW5kIGhhcm0geW91ciBj
b21wdXRlci4iOwogCi0vKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnbWV0YWRh
dGEnLiAqLwotIk1ldGFkYXRhICh0ZXh0IHRyYWNrKSIgPSAiTWV0YWRhdGEiOwotCiAvKiBMYWJl
bCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWdpbiBpcyBtaXNzaW5nICovCiAiTWlzc2luZyBQ
bHVnLWluIiA9ICJNaXNzaW5nIFBsdWctaW4iOwogCkBAIC03NTEsOSArNjk0LDYgQEAKIC8qIFJp
Z2h0IHRvIExlZnQgY29udGV4dCBtZW51IGl0ZW0gKi8KICJSaWdodCB0byBMZWZ0IiA9ICJSaWdo
dCB0byBMZWZ0IjsKIAotLyogRGlzcGxheSBuYW1lIGZvciBTREggKGkuZS4gZGVhZiBhbmQvb3Ig
aGFyZCBvZiBoZWFyaW5nKSB0ZXh0IHRyYWNrcy4gKi8KLSJTREggKHRleHQgdHJhY2spIiA9ICJT
REgiOwotCiAvKiBUaXRsZSBvZiB0aGUgU2VhcmNoIGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0gY29u
dHJvbHMuICovCiAiU2VhcmNoIiA9ICJTZWFyY2giOwogCkBAIC04MjksNiArNzY5LDkgQEAKIC8q
IG1lbnUgaXRlbSB0aXRsZSAqLwogIlNob3cgU3Vic3RpdHV0aW9ucyIgPSAiU2hvdyBTdWJzdGl0
dXRpb25zIjsKIAorLyogVGl0bGUgZm9yIFNob3cgVGV4dCBhY3Rpb24gYnV0dG9uICovCisiU2hv
dyBUZXh0IiA9ICJTaG93IFRleHQiOworCiAvKiBUaXRsZSBvZiB0aGUgY29udGV4dCBtZW51IGl0
ZW0gdG8gc2hvdyB3aGVuIFBERlBsdWdpbiB3YXMgdXNlZCBpbnN0ZWFkIG9mIGEgYmxvY2tlZCBw
bHVnaW4gKi8KICJTaG93IGluIGJsb2NrZWQgcGx1Zy1pbiIgPSAiU2hvdyBpbiBibG9ja2VkIHBs
dWctaW4iOwogCkBAIC0xMDM5LDEyICs5ODIsMTIgQEAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8K
ICJVbmRlcmxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJVbmRlcmxpbmUiOwogCi0vKiBVbmtu
b3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGluZyBpdGVtICovCi0iVW5rbm93biAoZmls
ZXNpemUpIiA9ICJVbmtub3duIjsKLQogLyogTWVudSBpdGVtIGxhYmVsIGZvciBhIGF1ZGlvL3Rl
eHQgdHJhY2sgdGhhdCBoYXMgbm8gb3RoZXIgbmFtZS4gKi8KICJVbmtub3duIChhdWRpby90ZXh0
IHRyYWNrKSIgPSAiVW5rbm93biI7CiAKKy8qIFVua25vd24gZmlsZXNpemUgRlRQIGRpcmVjdG9y
eSBsaXN0aW5nIGl0ZW0gKi8KKyJVbmtub3duIChmaWxlc2l6ZSkiID0gIlVua25vd24iOworCiAv
KiBVbmRvIGFjdGlvbiBuYW1lICovCiAiVW5saW5rIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiVW5s
aW5rIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCAzYWM4ZjliMmY2YmMw
ZGQ4NjMzNmQ0Y2FkZmJjNjNmZDcxODdiNmVkLi41Mjk2NmM3ODg0N2MzZDk4NzM5YmJlNTYwNjg2
NTFkY2I4Y2M3NzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtODAsOCAr
ODAsOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSNpbmNs
dWRlICJJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCIKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisjaW5jbHVkZSAiVGV4dFJlY29nbml0aW9uUmVzdWx0LmgiCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCkBAIC0xMzI5LDkgKzEzMjksOSBAQCBib29sIEhUTUxFbGVtZW50Ojpp
c0ltYWdlT3ZlcmxheVRleHQoY29uc3QgTm9kZSYgbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCiAKLXZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQo
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYgcmVzdWx0KQordm9pZCBIVE1MRWxlbWVudDo6dXBkYXRl
V2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChUZXh0UmVjb2duaXRpb25SZXN1bHQmJiByZXN1bHQp
CiB7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBwcmV2aW91c0NvbnRhaW5lcjsKICAgICBp
ZiAoYXV0byBzaGFkb3dSb290ID0gdXNlckFnZW50U2hhZG93Um9vdCgpOyBzaGFkb3dSb290ICYm
IGhhc0ltYWdlT3ZlcmxheSgpKSB7CkBAIC0xNTExLDcgKzE1MTEsNyBAQCB2b2lkIEhUTUxFbGVt
ZW50Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3Vs
dCYmIHJlc3VsdAogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2NoZWR1bGVDdXJzb3JV
cGRhdGUoKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCBmMzE4M2NmYTBmNzMzZWNhNWNiMDcyZDk0
OGVkYTg5Mjc0ZDYxNzMyLi4xYWUxZmQ2ZWMyNjU1NDVhYTEwMTg5NmQyNzA2N2Y2MzVjM2EwMDA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0zNiwxMCArMzYsNyBAQCBjbGFzcyBG
b3JtTmFtZWRJdGVtOwogY2xhc3MgSFRNTEZvcm1FbGVtZW50OwogY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKIHN0cnVjdCBTaW1wbGVSYW5nZTsKLQotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQotc3RydWN0IEltYWdlRXh0cmFjdGlvblJlc3VsdDsKLSNlbmRpZgorc3RydWN0IFRleHRSZWNv
Z25pdGlvblJlc3VsdDsKIAogZW51bSBjbGFzcyBFbnRlcktleUhpbnQgOiB1aW50OF90OwogCkBA
IC0xNDEsOCArMTM4LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29s
IGlzSW1hZ2VPdmVybGF5VGV4dChjb25zdCBOb2RlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgaXNJbWFnZU92ZXJsYXlUZXh0KGNvbnN0IE5vZGUqKTsKIAotI2lmIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV2l0aEltYWdl
RXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik7CisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV2l0aFRleHRSZWNv
Z25pdGlvblJlc3VsdChUZXh0UmVjb2duaXRpb25SZXN1bHQmJik7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBhNzVl
MzkwMjU0Yzc5Mzg5NDE4ZDYwYWMzNjc2YzczYWNmZDA1ZGUzLi42ZDg0ZjY5NDRkZjYxNzc0MDVj
MWZhZjNiYWJkZTEwZDliYmY1OTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAg
LTU3MCw4ICs1NzAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNoYW5nZVVuaXZlcnNh
bEFjY2Vzc1pvb21Gb2N1cyhjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpIHsgfQogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdEltYWdlRXh0cmFjdGlvbihFbGVtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8RWxlbWVudD4mJik+JiYgY29tcGxldGlvbiA9IHsgfSkKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oRWxlbWVudCYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBsZXRpb24g
PSB7IH0pCiAgICAgewogICAgICAgICBpZiAoY29tcGxldGlvbikKICAgICAgICAgICAgIGNvbXBs
ZXRpb24oeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAppbmRleCBlZDI2YzkzNjU2ODhkMThmMTc5MTQ3ODZiM2FmNTFiNzQzYmFkMjk0Li43MTA5
NDUxNDEyYWMwYzYyYjVlZDU5NzdjYTBhOGM3YTgxNzcxOTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC01MjEsNyArNTIxLDcgQEAgdm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRN
ZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0RpY3RhdGlv
bkFsdGVybmF0aXZlOgogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuYXBwbHlEaWN0YXRpb25BbHRl
cm5hdGl2ZSh0aXRsZSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnUmV2ZWFsSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToK
ICAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgaGFuZGxlZCBhdCB0aGUgY2xpZW50IGxheWVyLgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CkBAIC04MzAsOCAr
ODMwLDggQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICBDb250
ZXh0TWVudUl0ZW0gU2VsZWN0QWxsSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdT
ZWxlY3RBbGwsIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpKTsKICAgICBDb250ZXh0TWVu
dUl0ZW0gSW5zZXJ0RW1vamlJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0luc2Vy
dEVtb2ppLCBjb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRFbW9qaSgpKTsKICNlbmRpZgotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIENvbnRleHRNZW51SXRlbSBSZXZlYWxJbWFnZUl0
ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UsIGNvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlKCkpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBD
b250ZXh0TWVudUl0ZW0gTG9va1VwSW1hZ2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlLCBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpKTsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCkBAIC05MDQsOSArOTA0LDkg
QEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgICAgIGlm
IChpbWFnZVVSTC5pc0xvY2FsRmlsZSgpIHx8IGltYWdlKSB7CiAgICAgICAgICAgICAgICAgYXBw
ZW5kSXRlbShDb3B5SW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKIAotI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICAgICAg
ICAgICAgICBpZiAoaW1hZ2UgJiYgIWltYWdlLT5pc0FuaW1hdGVkKCkpCi0gICAgICAgICAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oUmV2ZWFsSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsK
KyAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShMb29rVXBJbWFnZUl0ZW0sIG1fY29udGV4
dE1lbnUuZ2V0KCkpOwogI2VuZGlmCiAgICAgICAgICAgICB9CiAjaWYgUExBVEZPUk0oR1RLKQpA
QCAtMTQ5NSw3ICsxNDk1LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JF
bmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgICAgICAgICBz
aG91bGRFbmFibGUgPSBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLm1lZGlhSGFzQXVkaW8oKTsK
ICAgICAgICAgICAgIHNob3VsZENoZWNrID0gc2hvdWxkRW5hYmxlICYmICBtX2NvbnRleHQuaGl0
VGVzdFJlc3VsdCgpLm1lZGlhTXV0ZWQoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Ry
YW5zbGF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCA4ZjZlMTQzNDAzOWFlNDY0MjM1NGFiYzhkNWNhNWUzNTkyYjZmODcy
Li45Njk4NmI1MzA5MWJjNjkwZTZmY2Q0Y2IwNjdhYmEwMjFhMzU2MDcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMjQsOCArMzI0LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmV2ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHQKIEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1lJiBmcmFtZSkKICAgICA6
IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2hvdmVyVGltZXIoKnRoaXMsICZFdmVudEhhbmRsZXI6
OmhvdmVyVGltZXJGaXJlZCkKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAsIG1f
aW1hZ2VFeHRyYWN0aW9uVGltZXIoKnRoaXMsICZFdmVudEhhbmRsZXI6OmltYWdlRXh0cmFjdGlv
blRpbWVyRmlyZWQsIDI1MF9tcykKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgLCBt
X3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIoKnRoaXMsICZFdmVudEhhbmRsZXI6Om1fdGV4dFJl
Y29nbml0aW9uSG92ZXJUaW1lckZpcmVkLCAyNTBfbXMpCiAjZW5kaWYKICAgICAsIG1fYXV0b3Nj
cm9sbENvbnRyb2xsZXIobWFrZVVuaXF1ZTxBdXRvc2Nyb2xsQ29udHJvbGxlcj4oKSkKICNpZiAh
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC0zNjcsOCArMzY3LDggQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmNsZWFyKCkKICNpZiBFTkFCTEUoQ1VSU09SX1ZJU0lCSUxJVFkpCiAgICAgY2FuY2Vs
QXV0b0hpZGVDdXJzb3JUaW1lcigpOwogI2VuZGlmCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCi0gICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5zdG9wKCk7CisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5zdG9wKCk7CiAjZW5k
aWYKICAgICBtX3Jlc2l6ZUxheWVyID0gbnVsbHB0cjsKICAgICBjbGVhckVsZW1lbnRVbmRlck1v
dXNlKCk7CkBAIC0xOTA1LDkgKzE5MDUsOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6bW91c2VNb3Zl
ZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogICAgIGhpdFRlc3RSZXN1bHQuc2V0
VG9Ob25Vc2VyQWdlbnRTaGFkb3dBbmNlc3RvcigpOwogICAgIHBhZ2UtPmNocm9tZSgpLm1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGhpdFRlc3RSZXN1bHQsIGV2ZW50Lm1vZGlmaWVyRmxhZ3MoKSk7
CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoZXZlbnQuc3ludGhldGlj
Q2xpY2tUeXBlKCkgPT0gTm9UYXAgJiYgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5pc0FjdGl2ZSgp
KQotICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnJlc3RhcnQoKTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKGV2ZW50LnN5bnRoZXRpY0NsaWNrVHlwZSgpID09IE5v
VGFwICYmIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBt
X3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOwogI2VuZGlmCiAKICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtMjUzOSwxNCArMjUzOSwxNCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBk
YXRlTW91c2VFdmVudFRhcmdldE5vZGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBOb2Rl
KgogCiAgICAgbV9lbGVtZW50VW5kZXJNb3VzZSA9IHRhcmdldEVsZW1lbnQ7CiAKLSNpZiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgaWYg
KHBsYXRmb3JtTW91c2VFdmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSA9PSBOb1RhcCkgewogICAg
ICAgICBpZiAobV9lbGVtZW50VW5kZXJNb3VzZSAmJiBpczxSZW5kZXJJbWFnZT4obV9lbGVtZW50
VW5kZXJNb3VzZS0+cmVuZGVyZXIoKSkpCi0gICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRp
bWVyLnJlc3RhcnQoKTsKKyAgICAgICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5y
ZXN0YXJ0KCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1faW1hZ2VFeHRyYWN0aW9uVGlt
ZXIuc3RvcCgpOworICAgICAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyLnN0b3Ao
KTsKICAgICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICAg
ICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQogICAgICAgICBwYWdlLT5pbWFnZU92
ZXJsYXlDb250cm9sbGVyKCkuZWxlbWVudFVuZGVyTW91c2VEaWRDaGFuZ2UobV9mcmFtZSwgbV9l
bGVtZW50VW5kZXJNb3VzZS5nZXQoKSk7CkBAIC0yNjA3LDggKzI2MDcsOCBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6dXBkYXRlTW91c2VFdmVudFRhcmdldE5vZGUoY29uc3QgQXRvbVN0cmluZyYgZXZl
bnRUeXBlLCBOb2RlKgogCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsaW5nIG1heSBoYXZlIG1vdmVk
IHRoZSBlbGVtZW50IHRvIGEgZGlmZmVyZW50IGRvY3VtZW50LgogICAgICAgICBpZiAobV9lbGVt
ZW50VW5kZXJNb3VzZSAmJiAmbV9lbGVtZW50VW5kZXJNb3VzZS0+ZG9jdW1lbnQoKSAhPSBtX2Zy
YW1lLmRvY3VtZW50KCkpIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAg
ICAgIG1faW1hZ2VFeHRyYWN0aW9uVGltZXIuc3RvcCgpOworI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICAgICAgICAgIG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5zdG9wKCk7CiAj
ZW5kaWYKICAgICAgICAgICAgIGNsZWFyRWxlbWVudFVuZGVyTW91c2UoKTsKICAgICAgICAgfQpA
QCAtMzM5OCwxOCArMzM5OCwxOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVk
KCkKICAgICB9CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKLXZvaWQgRXZlbnRIYW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1l
ckZpcmVkKCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjptX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXJG
aXJlZCgpCiB7CiAgICAgaWYgKCFtX2VsZW1lbnRVbmRlck1vdXNlIHx8ICFpczxSZW5kZXJJbWFn
ZT4obV9lbGVtZW50VW5kZXJNb3VzZS0+cmVuZGVyZXIoKSkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oKm1fZWxlbWVudFVuZGVyTW91c2Up
OworICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0VGV4dFJlY29nbml0aW9u
KCptX2VsZW1lbnRVbmRlck1vdXNlKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZUFjY2Vzc0tleShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGV2ZW50
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggZDQyNmEwYzJlZjk0ZWJiNGE1
OGQ2NmZmNTI3ZDZlYjUyZDM2NjhhOC4uOWZiNTJiMmU5ZmJkODU3MzE1MzRhNmIyOGE5MWEzNjlj
Mzc4NzdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zODgsOCArMzg4LDgg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaG92ZXJUaW1lckZpcmVkKCk7CiAKLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIGltYWdlRXh0cmFjdGlvblRpbWVyRmlyZWQoKTsK
KyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgdm9pZCBtX3RleHRSZWNvZ25pdGlvbkhv
dmVyVGltZXJGaXJlZCgpOwogI2VuZGlmCiAKICAgICBib29sIGxvZ2ljYWxTY3JvbGxPdmVyZmxv
dyhTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRp
bmdOb2RlID0gbnVsbHB0cik7CkBAIC01MjksOCArNTI5LDggQEAgcHJpdmF0ZToKICAgICBGcmFt
ZSYgbV9mcmFtZTsKICAgICBSZWZQdHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKICAgICBUaW1l
ciBtX2hvdmVyVGltZXI7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgRGVmZXJy
YWJsZU9uZVNob3RUaW1lciBtX2ltYWdlRXh0cmFjdGlvblRpbWVyOworI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKyAgICBEZWZlcnJhYmxlT25lU2hvdFRpbWVyIG1fdGV4dFJlY29nbml0aW9u
SG92ZXJUaW1lcjsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdXRvc2Nyb2xsQ29udHJv
bGxlcj4gbV9hdXRvc2Nyb2xsQ29udHJvbGxlcjsKICAgICBSZW5kZXJMYXllciogbV9yZXNpemVM
YXllciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCA5NmQyMGQyZjJmMmYw
OGEyZGIwNmMwNWQzMGZhMzM4MjkzZTJmYzY4Li4xOWFjMzMyOTljNmFmYWQyZTMwOGVmYTJiOTU2
OGQxZjA3ZjdlNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC0xNDYyLDcgKzE0NjIsNyBA
QCBib29sIFF1aXJrczo6c2hvdWxkQnlwYXNzVXNlckdlc3R1cmVSZXF1aXJlbWVudEZvcldlYkF1
dGhuKCkgY29uc3QKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBib29sIFF1aXJrczo6bmVlZHNUb0ZvcmNlVXNl
clNlbGVjdFdoZW5JbnN0YWxsaW5nSW1hZ2VPdmVybGF5KCkgY29uc3QKIHsKQEAgLTE0NzYsNiAr
MTQ3Niw2IEBAIGJvb2wgUXVpcmtzOjpuZWVkc1RvRm9yY2VVc2VyU2VsZWN0V2hlbkluc3RhbGxp
bmdJbWFnZU92ZXJsYXkoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKaW5kZXggMzUyYzJhZmYyMTk2OWEzNTQ5ODQ1ZjQ1Nzkz
YWU5YTBmOTI2N2EyMi4uMzY0YzE2Zjc0ZjA5YTRlODQ3OWQ0YTQwMDJhNTA3Y2RiNGNkNmJiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5oCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIGJvb2wgc2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKTsK
IAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKICAgICBib29sIG5lZWRzVG9Gb3JjZVVzZXJTZWxlY3RXaGVuSW5zdGFsbGluZ0ltYWdlT3Zl
cmxheSgpIGNvbnN0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwCmluZGV4IDU0MDBlZDNmZjIwNjBhMGU3ZjYxNWE5ZjM0MjgxODRiOGMzMDFh
NmYuLmI0YWE4ODkyYzQyODc0MjQ0YjFlYjZkNjc0OTIyOTJjZjdjNThhZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcApAQCAtMjU4LDcgKzI1OCw3IEBA
IGJvb2wgaXNWYWxpZENvbnRleHRNZW51QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikK
ICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRl
b0Z1bGxzY3JlZW46CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVt
VGFnU2hhcmVNZW51OgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuOgotICAgIGNhc2UgQ29udGV4dE1lbnVB
Y3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1l
bnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgIGNhc2UgQ29udGV4
dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICBjYXNlIENvbnRl
eHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnOgogICAgIGNhc2UgQ29u
dGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IGRhYzVjMzNmNDZlZWZjN2E5Mjg0
Mzg5NzM5MzI3ZDE5YzFlODI2NmIuLmZlMjAzMjZkOGNjOGI3ODIwMDdlYTZlYzY4M2YwYTkzMDIw
MmI1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0x
NDcsNyArMTQ3LDcgQEAgZW51bSBDb250ZXh0TWVudUFjdGlvbiB7CiAgICAgQ29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4sCiAgICAgQ29udGV4dE1lbnVJdGVt
VGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXAsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRk
SGlnaGxpZ2h0VG9OZXdHcm91cCwKLSAgICBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSwK
KyAgICBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwKICAgICBDb250ZXh0TWVudUl0ZW1U
YWdUcmFuc2xhdGUsCiAgICAgQ29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyA9IDUwMDAsCiAg
ICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZyA9IDU5OTksCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxZjdmYjMzMDQwZjljODkzYTM3YjQ0ODRhYWU4NWMzNWFkYTg3ZjBmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTgy
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotI2lmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKLU9CSkNfQ0xBU1MgRERTY2FubmVyUmVzdWx0OwotI2VuZGlmCi0K
LSNpbmNsdWRlICJGbG9hdFF1YWQuaCIKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3Ry
dWN0IEltYWdlRXh0cmFjdGlvblRleHREYXRhIHsKLSAgICBJbWFnZUV4dHJhY3Rpb25UZXh0RGF0
YShjb25zdCBTdHJpbmcmIHRoZVRleHQsIEZsb2F0UXVhZCYmIHF1YWQpCi0gICAgICAgIDogdGV4
dCh0aGVUZXh0KQotICAgICAgICAsIG5vcm1hbGl6ZWRRdWFkKFdURk1vdmUocXVhZCkpCi0gICAg
ewotICAgIH0KLQotICAgIFN0cmluZyB0ZXh0OwotICAgIEZsb2F0UXVhZCBub3JtYWxpemVkUXVh
ZDsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJ
bWFnZUV4dHJhY3Rpb25UZXh0RGF0YT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgdGV4dDsKLSAgICBlbmNvZGVy
IDw8IG5vcm1hbGl6ZWRRdWFkOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6Om9w
dGlvbmFsPEltYWdlRXh0cmFjdGlvblRleHREYXRhPiBJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YTo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHRl
eHQ7Ci0gICAgZGVjb2RlciA+PiB0ZXh0OwotICAgIGlmICghdGV4dCkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRRdWFkPiBub3JtYWxpemVk
UXVhZDsKLSAgICBkZWNvZGVyID4+IG5vcm1hbGl6ZWRRdWFkOwotICAgIGlmICghbm9ybWFsaXpl
ZFF1YWQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgV1RG
TW92ZSgqdGV4dCksIFdURk1vdmUoKm5vcm1hbGl6ZWRRdWFkKSB9fTsKLX0KLQotc3RydWN0IElt
YWdlRXh0cmFjdGlvbkxpbmVEYXRhIHsKLSAgICBJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YShGbG9h
dFF1YWQmJiBxdWFkLCBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+JiYgdGhlQ2hpbGRy
ZW4pCi0gICAgICAgIDogbm9ybWFsaXplZFF1YWQoV1RGTW92ZShxdWFkKSkKLSAgICAgICAgLCBj
aGlsZHJlbihXVEZNb3ZlKHRoZUNoaWxkcmVuKSkKLSAgICB7Ci0gICAgfQotCi0gICAgRmxvYXRR
dWFkIG5vcm1hbGl6ZWRRdWFkOwotICAgIFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YT4g
Y2hpbGRyZW47Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8SW1hZ2VFeHRyYWN0aW9uTGluZURhdGE+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi0j
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotCi1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURl
dGVjdG9ySW5mbyB7Ci0gICAgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbygpID0gZGVm
YXVsdDsKLSAgICBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvKEREU2Nhbm5lclJlc3Vs
dCAqc2Nhbm5lclJlc3VsdCwgVmVjdG9yPEZsb2F0UXVhZD4mJiBxdWFkcykKLSAgICAgICAgOiBy
ZXN1bHQoc2Nhbm5lclJlc3VsdCkKLSAgICAgICAgLCBub3JtYWxpemVkUXVhZHMoV1RGTW92ZShx
dWFkcykpCi0gICAgewotICAgIH0KLQotICAgIFJldGFpblB0cjxERFNjYW5uZXJSZXN1bHQ+IHJl
c3VsdDsKLSAgICBWZWN0b3I8RmxvYXRRdWFkPiBub3JtYWxpemVkUXVhZHM7Ci19OwotCi0jZW5k
aWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKLXsKLSAgICBlbmNvZGVyIDw8IG5vcm1hbGl6ZWRRdWFkOwotICAgIGVuY29kZXIgPDwgY2hp
bGRyZW47Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8SW1hZ2VF
eHRyYWN0aW9uTGluZURhdGE+IEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1
YWQ7Ci0gICAgZGVjb2RlciA+PiBub3JtYWxpemVkUXVhZDsKLSAgICBpZiAoIW5vcm1hbGl6ZWRR
dWFkKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+PiBjaGlsZHJlbjsKLSAgICBkZWNvZGVyID4+
IGNoaWxkcmVuOwotICAgIGlmICghY2hpbGRyZW4pCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICByZXR1cm4ge3sgV1RGTW92ZSgqbm9ybWFsaXplZFF1YWQpLCBXVEZNb3ZlKCpj
aGlsZHJlbikgfX07Ci19Ci0KLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQgewotICAgIFZl
Y3RvcjxJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YT4gbGluZXM7Ci0KLSNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCi0gICAgVmVjdG9yPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+IGRh
dGFEZXRlY3RvcnM7Ci0jZW5kaWYKLQotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBpZiAoIWxpbmVzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICAgICAgaWYgKCFkYXRhRGV0ZWN0b3Jz
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCi0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxJbWFnZUV4dHJhY3Rpb25SZXN1bHQ+IGRlY29kZShEZWNvZGVyJik7
Ci19OwotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIEltYWdlRXh0cmFjdGlvblJlc3Vs
dDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBsaW5l
czsKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgZW5jb2RlciA8PCBkYXRhRGV0ZWN0
b3JzOwotI2VuZGlmCi19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0PiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEltYWdlRXh0cmFjdGlv
bkxpbmVEYXRhPj4gbGluZXM7Ci0gICAgZGVjb2RlciA+PiBsaW5lczsKLSAgICBpZiAoIWxpbmVz
KQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0jaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3Rv
ckluZm8+PiBkYXRhRGV0ZWN0b3JzOwotICAgIGRlY29kZXIgPj4gZGF0YURldGVjdG9yczsKLSAg
ICBpZiAoIWRhdGFEZXRlY3RvcnMpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5k
aWYKLQotICAgIHJldHVybiB7ewotICAgICAgICBXVEZNb3ZlKCpsaW5lcyksCi0jaWYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQotICAgICAgICBXVEZNb3ZlKCpkYXRhRGV0ZWN0b3JzKSwKLSNlbmRp
ZgotICAgIH19OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuaAppbmRleCA0ZjM5OTQyNWM0ZjQ2ZDQ0N2IwNzRlM2NiMWVjMTgwNWQ2MDc2YjM1Li5i
Mzk4NjNjYWJjNjUxNGVhZDI1MDQwOTg1OGJkMzlmNTBhYTIzN2M5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0zNjYsOCArMzY2LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBnZW5lcmljVG91Y2hJRFBy
b21wdFRpdGxlKCk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKTsKICNlbmRpZgogCiAjaWYgSEFWRShUUkFOU0xB
VElPTl9VSV9TRVJWSUNFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Rl
eHRSZWNvZ25pdGlvblJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dFJlY29n
bml0aW9uUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMwYzFlZTI0NzNiMTg0ZmZjYjJhZWI4ZWJjODdh
MDE4NTc3M2MxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Rl
eHRSZWNvZ25pdGlvblJlc3VsdC5oCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorT0JKQ19DTEFT
UyBERFNjYW5uZXJSZXN1bHQ7CisjZW5kaWYKKworI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uV29yZERhdGEg
eworICAgIFRleHRSZWNvZ25pdGlvbldvcmREYXRhKGNvbnN0IFN0cmluZyYgdGhlVGV4dCwgRmxv
YXRRdWFkJiYgcXVhZCkKKyAgICAgICAgOiB0ZXh0KHRoZVRleHQpCisgICAgICAgICwgbm9ybWFs
aXplZFF1YWQoV1RGTW92ZShxdWFkKSkKKyAgICB7CisgICAgfQorCisgICAgU3RyaW5nIHRleHQ7
CisgICAgRmxvYXRRdWFkIG5vcm1hbGl6ZWRRdWFkOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbldvcmREYXRhPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBUZXh0UmVj
b2duaXRpb25Xb3JkRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCB0ZXh0OworICAgIGVuY29kZXIgPDwgbm9ybWFsaXplZFF1YWQ7Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0aW9uV29yZERh
dGE+IFRleHRSZWNvZ25pdGlvbldvcmREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gdGV4dDsKKyAgICBkZWNvZGVyID4+IHRleHQ7Cisg
ICAgaWYgKCF0ZXh0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxGbG9hdFF1YWQ+IG5vcm1hbGl6ZWRRdWFkOworICAgIGRlY29kZXIgPj4gbm9ybWFs
aXplZFF1YWQ7CisgICAgaWYgKCFub3JtYWxpemVkUXVhZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0ZXh0KSwgV1RGTW92ZSgqbm9ybWFs
aXplZFF1YWQpIH19OworfQorCitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uTGluZURhdGEgeworICAg
IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhKEZsb2F0UXVhZCYmIHF1YWQsIFZlY3RvcjxUZXh0UmVj
b2duaXRpb25Xb3JkRGF0YT4mJiB0aGVDaGlsZHJlbikKKyAgICAgICAgOiBub3JtYWxpemVkUXVh
ZChXVEZNb3ZlKHF1YWQpKQorICAgICAgICAsIGNoaWxkcmVuKFdURk1vdmUodGhlQ2hpbGRyZW4p
KQorICAgIHsKKyAgICB9CisKKyAgICBGbG9hdFF1YWQgbm9ybWFsaXplZFF1YWQ7CisgICAgVmVj
dG9yPFRleHRSZWNvZ25pdGlvbldvcmREYXRhPiBjaGlsZHJlbjsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUZXh0UmVjb2duaXRpb25MaW5lRGF0
YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisK
K3N0cnVjdCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IgeworICAgIFRleHRSZWNvZ25pdGlv
bkRhdGFEZXRlY3RvcigpID0gZGVmYXVsdDsKKyAgICBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0
b3IoRERTY2FubmVyUmVzdWx0ICpzY2FubmVyUmVzdWx0LCBWZWN0b3I8RmxvYXRRdWFkPiYmIHF1
YWRzKQorICAgICAgICA6IHJlc3VsdChzY2FubmVyUmVzdWx0KQorICAgICAgICAsIG5vcm1hbGl6
ZWRRdWFkcyhXVEZNb3ZlKHF1YWRzKSkKKyAgICB7CisgICAgfQorCisgICAgUmV0YWluUHRyPERE
U2Nhbm5lclJlc3VsdD4gcmVzdWx0OworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IG5vcm1hbGl6ZWRR
dWFkczsKK307CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKK3RlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgVGV4dFJlY29nbml0aW9uTGluZURhdGE6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbm9ybWFsaXplZFF1YWQ7Cisg
ICAgZW5jb2RlciA8PCBjaGlsZHJlbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rk
OjpvcHRpb25hbDxUZXh0UmVjb2duaXRpb25MaW5lRGF0YT4gVGV4dFJlY29nbml0aW9uTGluZURh
dGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRR
dWFkPiBub3JtYWxpemVkUXVhZDsKKyAgICBkZWNvZGVyID4+IG5vcm1hbGl6ZWRRdWFkOworICAg
IGlmICghbm9ybWFsaXplZFF1YWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxUZXh0UmVjb2duaXRpb25Xb3JkRGF0YT4+IGNoaWxkcmVu
OworICAgIGRlY29kZXIgPj4gY2hpbGRyZW47CisgICAgaWYgKCFjaGlsZHJlbikKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyBXVEZNb3ZlKCpub3JtYWxpemVk
UXVhZCksIFdURk1vdmUoKmNoaWxkcmVuKSB9fTsKK30KKworc3RydWN0IFRleHRSZWNvZ25pdGlv
blJlc3VsdCB7CisgICAgVmVjdG9yPFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhPiBsaW5lczsKKwor
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBWZWN0b3I8VGV4dFJlY29nbml0aW9uRGF0
YURldGVjdG9yPiBkYXRhRGV0ZWN0b3JzOworI2VuZGlmCisKKyAgICBib29sIGlzRW1wdHkoKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKCFsaW5lcy5pc0VtcHR5KCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgICAgIGlmICgh
ZGF0YURldGVjdG9ycy5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0aW9uUmVzdWx0PiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBUZXh0UmVj
b2duaXRpb25SZXN1bHQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbGluZXM7CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIGVuY29kZXIg
PDwgZGF0YURldGVjdG9yczsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvblJlc3VsdD4gVGV4dFJlY29nbml0aW9uUmVzdWx0
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxU
ZXh0UmVjb2duaXRpb25MaW5lRGF0YT4+IGxpbmVzOworICAgIGRlY29kZXIgPj4gbGluZXM7Cisg
ICAgaWYgKCFsaW5lcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworI2lmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+PiBkYXRhRGV0ZWN0b3JzOworICAgIGRlY29kZXIgPj4gZGF0YURldGVj
dG9yczsKKyAgICBpZiAoIWRhdGFEZXRlY3RvcnMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisjZW5kaWYKKworICAgIHJldHVybiB7eworICAgICAgICBXVEZNb3ZlKCpsaW5lcyksCisj
aWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgICAgICBXVEZNb3ZlKCpkYXRhRGV0ZWN0b3Jz
KSwKKyNlbmRpZgorICAgIH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KaW5kZXggZjY4Y2U0NWIzZjNm
NzllNjkyZTIwNmNlZjllODgyYWJiN2FlOTUzNC4uZTk1ZmI2NTJkZmY3MTM5ZDcwNDUzZTE2N2I3
MTQ5NTdkNDdlNmYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQpAQCAtMzEyLDExICszMTIsMTMgQEAgU3RyaW5n
IGV4aXRGdWxsU2NyZWVuQnV0dG9uQWNjZXNzaWJpbGl0eVRpdGxlKCkKIH0KICNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLVN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKQogewotICAgIHJldHVybiBs
b2NhbGl6ZWROU1N0cmluZyhAIlJldmVhbCBJbWFnZSIpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJMb29rIFVwIiwgIlRpdGxlIGZvciBMb29rIFVwIGFjdGlvbiBidXR0b24iKTsKIH0KKwog
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCBiMDBhYjRlYTkwOTE0NzY3YTRjNjMwZmUxNWI0YzU1OGMzOGFkMjZlLi5m
MTExYzI1Mzc5NWQwNzU5MDZlYjVkNzk0NjI4YTBmMjJhYTRhNzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNDUsOCArMzQ1LDggQEAKICNpbmNsdWRlICJOYXZpZ2F0
b3JNZWRpYVNlc3Npb24uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
Ci0jaW5jbHVkZSAiSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmgiCisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQorI2luY2x1ZGUgIlRleHRSZWNvZ25pdGlvblJlc3VsdC5oIgogI2VuZGlmCiAKIHVz
aW5nIEpTQzo6Q2FsbERhdGE7CkBAIC01NjA1LDcgKzU2MDUsNyBAQCBNb2NrUGF5bWVudENvb3Jk
aW5hdG9yJiBJbnRlcm5hbHM6Om1vY2tQYXltZW50Q29vcmRpbmF0b3IoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogSW50ZXJuYWxzOjpJbWFnZU92ZXJsYXlMaW5lOjp+SW1hZ2VPdmVybGF5TGluZSgpID0g
ZGVmYXVsdDsKIEludGVybmFsczo6SW1hZ2VPdmVybGF5VGV4dDo6fkltYWdlT3ZlcmxheVRleHQo
KSA9IGRlZmF1bHQ7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdGF0aWMgRmxvYXRRdWFk
IGdldFF1YWQoY29uc3QgVCYgb3ZlcmxheVRleHRPckxpbmUpCkBAIC01NjE4LDI2ICs1NjE4LDI2
IEBAIHN0YXRpYyBGbG9hdFF1YWQgZ2V0UXVhZChjb25zdCBUJiBvdmVybGF5VGV4dE9yTGluZSkK
ICAgICB9OwogfQogCi1zdGF0aWMgSW1hZ2VFeHRyYWN0aW9uTGluZURhdGEgbWFrZURhdGFGb3JM
aW5lKGNvbnN0IEludGVybmFsczo6SW1hZ2VPdmVybGF5TGluZSYgbGluZSkKK3N0YXRpYyBUZXh0
UmVjb2duaXRpb25MaW5lRGF0YSBtYWtlRGF0YUZvckxpbmUoY29uc3QgSW50ZXJuYWxzOjpJbWFn
ZU92ZXJsYXlMaW5lJiBsaW5lKQogewogICAgIHJldHVybiB7CiAgICAgICAgIGdldFF1YWQ8SW50
ZXJuYWxzOjpJbWFnZU92ZXJsYXlMaW5lPihsaW5lKSwKLSAgICAgICAgbGluZS5jaGlsZHJlbi5t
YXAoW10oYXV0byYgdGV4dENoaWxkKSAtPiBJbWFnZUV4dHJhY3Rpb25UZXh0RGF0YSB7CisgICAg
ICAgIGxpbmUuY2hpbGRyZW4ubWFwKFtdKGF1dG8mIHRleHRDaGlsZCkgLT4gVGV4dFJlY29nbml0
aW9uV29yZERhdGEgewogICAgICAgICAgICAgcmV0dXJuIHsgdGV4dENoaWxkLnRleHQsIGdldFF1
YWQ8SW50ZXJuYWxzOjpJbWFnZU92ZXJsYXlUZXh0Pih0ZXh0Q2hpbGQpIH07CiAgICAgICAgIH0p
CiAgICAgfTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogdm9pZCBJbnRlcm5hbHM6Omluc3RhbGxJbWFn
ZU92ZXJsYXkoRWxlbWVudCYgZWxlbWVudCwgVmVjdG9yPEltYWdlT3ZlcmxheUxpbmU+JiYgbGlu
ZXMpCiB7CiAgICAgaWYgKCFpczxIVE1MRWxlbWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVy
bjsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIGRvd25jYXN0PEhUTUxFbGVt
ZW50PihlbGVtZW50KS51cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFj
dGlvblJlc3VsdCB7Ci0gICAgICAgIGxpbmVzLm1hcChbXSAoYXV0byYgbGluZSkgLT4gSW1hZ2VF
eHRyYWN0aW9uTGluZURhdGEgeworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBkb3du
Y2FzdDxIVE1MRWxlbWVudD4oZWxlbWVudCkudXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3Vs
dChUZXh0UmVjb2duaXRpb25SZXN1bHQgeworICAgICAgICBsaW5lcy5tYXAoW10gKGF1dG8mIGxp
bmUpIC0+IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhIHsKICAgICAgICAgICAgIHJldHVybiBtYWtl
RGF0YUZvckxpbmUobGluZSk7CiAgICAgICAgIH0pCiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA0Y2JjYmZlODZkZTQ4ZDBkNGJiY2I2MjlmM2Nm
Y2Y0YWI3OTBiNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5o
CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9u
cy9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXNBZGRpdGlvbnMuaD4KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlRXh0cmFjdGlvblV0aWxpdGll
cy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBlNTZmYTVlYzRjYjUwNDQ3YWJj
NjNjZTM5OGE0ZWUyYjhhZDNkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlRXh0cmFjdGlvblV0
aWxpdGllcy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oIgot
Ci0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9J
bWFnZUV4dHJhY3Rpb25VdGlsaXRpZXNBZGRpdGlvbnMubW0+Ci0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFjOWZlNzM2NjU2OTRlNGQyZDg1OWQ5N2Y4NGJiZGRiYjQyZmM4YjIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworQGNsYXNzIFZLSW1hZ2VBbmFseXNp
czsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFRleHRSZWNvZ25pdGlvblJlc3VsdDsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgaXNMaXZlVGV4dEVuYWJsZWQoKTsKK1dl
YkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCBtYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KFZL
SW1hZ2VBbmFseXNpcyAqKTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRp
b25VdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2E2YTMzZWI2MmRjMGY0ZmNlYjRkNzRjMDVh
NWZlOTEyY2E0M2E1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9j
b2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KQEAgLTAsMCArMSwxMTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblV0aWxp
dGllcy5oIgorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCisjaW1wb3J0IDxWaXNpb25L
aXRDb3JlL1ZLSW1hZ2VBbmFseXNpc19XZWJLaXQuaD4KKyNpbXBvcnQgPFZpc2lvbktpdENvcmUv
VktRdWFkLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRSZWNvZ25pdGlvblJlc3VsdC5oPgorI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9GZWF0dXJlRmxhZ3NTUEkuaD4KKworLy8gTm90ZSB0aGF0IHRo
aXMgaXMgYWN0dWFsbHkgZGVjbGFyZWQgYXMgYW4gT2JqZWN0aXZlLUMgY2xhc3MgaW4gVmlzaW9u
S2l0IGhlYWRlcnMuCisvLyBIb3dldmVyLCBmb3Igc3RhZ2luZyBwdXJwb3Nlcywgd2UgZGVmaW5l
IGl0IGFzIGEgcHJvdG9jb2wgaW5zdGVhZCB0byBhdm9pZCBzeW1ib2wKKy8vIHJlZGVmaW5pdGlv
biBlcnJvcnMgdGhhdCB3b3VsZCBhcmlzZSB3aGVuIGNvbXBpbGluZyB3aXRoIGFuIFNESyB0aGF0
IGNvbnRhaW5zIHRoZQorLy8gcmVhbCBkZWZpbml0aW9uIG9mIFZLV0tEYXRhRGV0ZWN0b3JJbmZv
LgorLy8gT25jZSB0aGUgY2hhbmdlcyBpbiByZGFyOi8vNzc5Nzg3NDUgaGF2ZSBiZWVuIGluIHRo
ZSBTREsgZm9yIGEgd2hpbGUsIHdlIGNhbiByZW1vdmUKKy8vIHRoaXMgc3RhZ2luZyBkZWNsYXJh
dGlvbiBhbmQgdXNlIHRoZSByZWFsIE9iamVjdGl2ZS1DIGNsYXNzLgorQHByb3RvY29sIFZLV0tE
YXRhRGV0ZWN0b3JJbmZvCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEREU2Nhbm5l
clJlc3VsdCAqcmVzdWx0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5
PFZLUXVhZCAqPiAqYm91bmRpbmdRdWFkczsKK0BlbmQKKworQGludGVyZmFjZSBWS0ltYWdlQW5h
bHlzaXMgKFN0YWdpbmdfNzc5Nzg3NDUpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IE5TQXJyYXk8aWQgPFZLV0tEYXRhRGV0ZWN0b3JJbmZvPj4gKnRleHREYXRhRGV0ZWN0b3JzOwor
QGVuZAorCitAaW50ZXJmYWNlIFZLV0tUZXh0SW5mbyAoU3RhZ2luZ183NzA4NjEwNSkKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxWS1dLVGV4dEluZm8gKj4gKmNoaWxk
cmVuOworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCitzdGF0aWMgRmxvYXRRdWFkIGZsb2F0UXVhZChWS1F1YWQgKnF1YWQpCit7CisgICAgcmV0
dXJuIHsgcXVhZC50b3BMZWZ0LCBxdWFkLnRvcFJpZ2h0LCBxdWFkLmJvdHRvbVJpZ2h0LCBxdWFk
LmJvdHRvbUxlZnQgfTsKK30KKworc3RhdGljIFZlY3RvcjxGbG9hdFF1YWQ+IGZsb2F0UXVhZHMo
TlNBcnJheTxWS1F1YWQgKj4gKnZrUXVhZHMpCit7CisgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVh
ZHM7CisgICAgcXVhZHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2a1F1YWRzLmNvdW50KTsKKyAg
ICBmb3IgKFZLUXVhZCAqdmtRdWFkIGluIHZrUXVhZHMpCisgICAgICAgIHF1YWRzLnVuY2hlY2tl
ZEFwcGVuZChmbG9hdFF1YWQodmtRdWFkKSk7CisgICAgcmV0dXJuIHF1YWRzOworfQorCitUZXh0
UmVjb2duaXRpb25SZXN1bHQgbWFrZVRleHRSZWNvZ25pdGlvblJlc3VsdChWS0ltYWdlQW5hbHlz
aXMgKmFuYWx5c2lzKQoreworICAgIE5TQXJyYXk8VktXS1RleHRJbmZvICo+ICphbGxMaW5lcyA9
IGFuYWx5c2lzLmFsbExpbmVzOworICAgIFRleHRSZWNvZ25pdGlvblJlc3VsdCByZXN1bHQ7Cisg
ICAgcmVzdWx0LmxpbmVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYWxsTGluZXMuY291bnQpOwor
ICAgIGZvciAoVktXS1RleHRJbmZvICpsaW5lIGluIGFsbExpbmVzKSB7CisgICAgICAgIFZlY3Rv
cjxUZXh0UmVjb2duaXRpb25Xb3JkRGF0YT4gY2hpbGRyZW47CisgICAgICAgIGlmIChbbGluZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNoaWxkcmVuKV0pIHsKKyAgICAgICAgICAgIE5T
QXJyYXk8VktXS1RleHRJbmZvICo+ICp2a0NoaWxkcmVuID0gbGluZS5jaGlsZHJlbjsKKyAgICAg
ICAgICAgIGNoaWxkcmVuLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmtDaGlsZHJlbi5jb3VudCk7
CisgICAgICAgICAgICBmb3IgKFZLV0tUZXh0SW5mbyAqY2hpbGQgaW4gdmtDaGlsZHJlbikKKyAg
ICAgICAgICAgICAgICBjaGlsZHJlbi51bmNoZWNrZWRBcHBlbmQoeyBjaGlsZC5zdHJpbmcsIGZs
b2F0UXVhZChjaGlsZC5xdWFkKSB9KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjaGls
ZHJlbi5hcHBlbmQoeyBsaW5lLnN0cmluZywgZmxvYXRRdWFkKGxpbmUucXVhZCkgfSk7CisgICAg
ICAgIHJlc3VsdC5saW5lcy51bmNoZWNrZWRBcHBlbmQoeyBmbG9hdFF1YWQobGluZS5xdWFkKSwg
V1RGTW92ZShjaGlsZHJlbikgfSk7CisgICAgfQorCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQorICAgIGlmIChbYW5hbHlzaXMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih0ZXh0RGF0
YURldGVjdG9ycyldKSB7CisgICAgICAgIGF1dG8gZGF0YURldGVjdG9ycyA9IHJldGFpblB0cihh
bmFseXNpcy50ZXh0RGF0YURldGVjdG9ycyk7CisgICAgICAgIHJlc3VsdC5kYXRhRGV0ZWN0b3Jz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoW2RhdGFEZXRlY3RvcnMgY291bnRdKTsKKyAgICAgICAg
Zm9yIChpZCA8VktXS0RhdGFEZXRlY3RvckluZm8+IGluZm8gaW4gZGF0YURldGVjdG9ycy5nZXQo
KSkKKyAgICAgICAgICAgIHJlc3VsdC5kYXRhRGV0ZWN0b3JzLnVuY2hlY2tlZEFwcGVuZCh7IGlu
Zm8ucmVzdWx0LCBmbG9hdFF1YWRzKGluZm8uYm91bmRpbmdRdWFkcykgfSk7CisgICAgfQorI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXNBZGRpdGlvbnMubW0+CisjZWxzZQorCitib29sIGlzTGl2
ZVRleHRFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworI2VuZGlmCisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCA2M2EyZDc5
ODgwZGQxYzQ4YzNmODM1MGYxZGViNjVlNTEyMDliY2FhLi41ZDEwNDkzOTkxYzNlYmM0MGRiYTAy
YjM5YTdmOTVmMGEwYzQzYjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaApAQCAtNTQzLDcgKzU0Myw3IEBAIGlubGluZSBXS0NvbnRleHRNZW51SXRl
bVRhZyB0b0FQSShXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAjZW5kaWYKICAg
ICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICAgICAgcmV0
dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKLSAgICBjYXNlIFdlYkNvcmU6OkNv
bnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZTsKICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
bGF0ZToKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZTsKQEAg
LTc0Niw3ICs3NDYsNyBAQCBpbmxpbmUgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gdG9JbXBs
KFdLQ29udGV4dE1lbnVJdGVtVGFnIHRhZykKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKICNlbmRpZgogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJ
dGVtVGFnUmV2ZWFsSW1hZ2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW1UYWdSZXZlYWxJbWFnZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlOwogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRl
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOwog
ICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJblRoaXNXaW5kb3c6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnND
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVy
c0NvY29hLm1tCmluZGV4IGU1N2RlNzE4NGM4MTkzYTBhZDMyZTA1MGM4OTQyNWY1N2M5NzE2ODUu
LjJiYjEyYzI3OGQ1YWRmMjA4ZjI1OGJjMmVlOGU0Njg3YTJkYjYyMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29h
Lm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRSZWNvZ25pdGlv
blJlc3VsdC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oPgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTUxLDEwICs1Miw2IEBACiAjaW5jbHVkZSA8V2ViS2l0QWRk
aXRpb25zL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zLm1tPgogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSNpbXBvcnQgPFdlYkNvcmUvSW1hZ2VFeHRy
YWN0aW9uUmVzdWx0Lmg+Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAjaW1wb3J0
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzLmg+CkBAIC02ODQsMTQgKzY4MSwxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjbwog
fQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0
YURldGVjdG9ySW5mbz46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvJiBpbmZvKQordm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmVuY29k
ZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpUZXh0UmVjb2du
aXRpb25EYXRhRGV0ZWN0b3ImIGluZm8pCiB7CiAgICAgZW5jb2RlciA8PCBpbmZvLnJlc3VsdC5n
ZXQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRh
dGFEZXRlY3RvckluZm8+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgV2Vi
Q29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYgcmVzdWx0KQorYm9vbCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmRlY29kZVBs
YXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRh
RGV0ZWN0b3ImIHJlc3VsdCkKIHsKICAgICBhdXRvIHNjYW5uZXJSZXN1bHQgPSBJUEM6OmRlY29k
ZTxERFNjYW5uZXJSZXN1bHQ+KGRlY29kZXIsIEBbIFBBTDo6Z2V0RERTY2FubmVyUmVzdWx0Q2xh
c3MoKSBdKTsKICAgICBpZiAoIXNjYW5uZXJSZXN1bHQpCkBAIC03MDEsNiArNjk4LDYgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+
OjpkZWNvZGVQbGF0Zm9ybURhdGEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2VuZGlmIC8vIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisjZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKIH0g
Ly8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSW1hZ2VF
eHRyYWN0aW9uVXBkYXRlUmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JbWFnZUV4dHJh
Y3Rpb25VcGRhdGVSZXN1bHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzc3YjY1
NWZhOWM2Y2YwZjFmZjA5ZWJjZmJhNWY0ZTkwZjE3MzFhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JbWFnZUV4dHJh
Y3Rpb25VcGRhdGVSZXN1bHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotCi0j
aW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0g
Y2xhc3MgSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdCB7Ci0gICAgTm9UZXh0
LAotICAgIFRleHQsCi0gICAgRGF0YURldGVjdG9yLAotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0PiB7Ci0gICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKLSAgICAgICAgV2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQs
Ci0gICAgICAgIFdlYktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQsCi0g
ICAgICAgIFdlYktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpUZXh0LAotICAgICAg
ICBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6RGF0YURldGVjdG9yCi0gICAg
PjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UZXh0UmVjb2duaXRp
b25VcGRhdGVSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RleHRSZWNvZ25pdGlvblVw
ZGF0ZVJlc3VsdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYWNlNDdkNmM1YzllMzJmMjQyMGZlZWE1YTI0YjNi
ZjgzMTA0ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpbmNsdWRlIDx3dGYv
RW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBUZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQgOiB1aW50OF90IHsKKyAgICBOb1RleHQsCisgICAgVGV4dCwK
KyAgICBEYXRhRGV0ZWN0b3IsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpUZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCwKKyAgICAgICAgV2Vi
S2l0OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCwKKyAgICAgICAgV2ViS2l0
OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OlRleHQsCisgICAgICAgIFdlYktpdDo6VGV4
dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0OjpEYXRhRGV0ZWN0b3IKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAwODc4
OGM4MmYyYTM2NjZiZDE1NWRmYzNlNDU2YjBiYmU1MTAyZTRhLi45MWQyMWQ4ZjIzNmJkMTg4MzJi
NTBkMmNhZDMxMWNjNmYyNDg4Y2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTExNiw4ICsxMTYsOCBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oPgorI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRSZWNvZ25pdGlvblJl
c3VsdC5oPgogI2VuZGlmCiAKIC8vIEZJWE1FOiBTZWVtcyBsaWtlIHdlIGNvdWxkIHVzZSBzdGQ6
OnR1cGxlIHRvIGN1dCBkb3duIHRoZSBjb2RlIGJlbG93IGEgbG90IQpAQCAtMzIyNSwxNyArMzIy
NSwxNyBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpBY3RpdmVJ
bmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYQogCiAjZW5kaWYKIAotI2lmIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKLXZvaWQgQXJndW1lbnRD
b2RlcjxJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mIGluZm8pCit2b2lk
IEFyZ3VtZW50Q29kZXI8VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciYgaW5mbykKIHsK
ICAgICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2RlciwgaW5mbyk7CiAgICAgZW5jb2RlciA8PCBp
bmZvLm5vcm1hbGl6ZWRRdWFkczsKIH0KIAotc3RkOjpvcHRpb25hbDxJbWFnZUV4dHJhY3Rpb25E
YXRhRGV0ZWN0b3JJbmZvPiBBcmd1bWVudENvZGVyPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3Rv
ckluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3N0ZDo6b3B0aW9uYWw8VGV4dFJlY29n
bml0aW9uRGF0YURldGVjdG9yPiBBcmd1bWVudENvZGVyPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRl
Y3Rvcj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIEltYWdlRXh0cmFjdGlvbkRh
dGFEZXRlY3RvckluZm8gcmVzdWx0OworICAgIFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3RvciBy
ZXN1bHQ7CiAgICAgaWYgKCFkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2RlciwgcmVzdWx0KSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApAQCAtMzI0OCw2ICszMjQ4LDYgQEAgc3RkOjpv
cHRpb25hbDxJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPiBBcmd1bWVudENvZGVyPElt
YWdlRXh0cmFjdGlvbkRhdGEKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi0jZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
KyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IGRhZTgwZmY3ZGQyNTQyODkxMjFiNDEzNDBiNzdkMGY5YzRm
NTA2MmQuLjkzOTdiMzI4YWIxNTZiZjZiYmIzODEwNTA3ZDEwZjNlYWM5NTA3MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xNTAsNyArMTUw
LDcgQEAgc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zOwogc3RydWN0IEV4Y2VwdGlvbkRldGFp
bHM7CiBzdHJ1Y3QgRm9udEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsK
LXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvOworc3RydWN0IFRleHRSZWNv
Z25pdGlvbkRhdGFEZXRlY3RvcjsKIHN0cnVjdCBSYXdGaWxlOwogc3RydWN0IFNoYXJlRGF0YTsK
IHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwpAQCAtODQyLDE2ICs4NDIsMTYgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6
QWN0aXZlSW5mbz4gewogfTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
ICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRh
RGV0ZWN0b3JJbmZvJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+IGRlY29kZShEZWNv
ZGVyJik7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvJik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgV2Vi
Q29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOwordGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+IHsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHRSZWNv
Z25pdGlvbkRhdGFEZXRlY3RvciYpOworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+IGRlY29kZShE
ZWNvZGVyJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImKTsKKyAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBXZWJD
b3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImKTsKIH07CiAKLSNlbmRpZiAvLyBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCiB9IC8v
IG5hbWVzcGFjZSBJUEMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGYyM2QyMWViODNhZDVk
MWY0NDgyMjgyODBmNWZiYzY1NDA3MDkzODEuLjhjZmM2MDc0ZDA1NjJhYTU4MmM1YzBkMjM0ODhl
ZTYzNmIyYzlhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTc1LDExICs3NSwxMSBAQCBQ
bGF0Zm9ybS9jZi9Nb2R1bGVDRi5jcHAKIFBsYXRmb3JtL2NsYXNzaWZpZXIvY29jb2EvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXJDb2NvYS5jcHAKIFBsYXRmb3JtL2NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCiAKLVBsYXRmb3JtL2NvY29hL0lt
YWdlRXh0cmFjdGlvblV0aWxpdGllcy5tbQogUGxhdGZvcm0vY29jb2EvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5tbQogUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0K
IFBsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIubW0KIFBs
YXRmb3JtL2NvY29hL1NoYXJlZE1lbW9yeUNvY29hLmNwcAorUGxhdGZvcm0vY29jb2EvVGV4dFJl
Y29nbml0aW9uVXRpbGl0aWVzLm1tCiBQbGF0Zm9ybS9jb2NvYS9XS0NyYXNoUmVwb3J0ZXIubW0K
IFBsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQogUGxhdGZv
cm0vY29jb2EvV2ViS2l0QWRkaXRpb25zLm1tIEBuby11bmlmeQpAQCAtNDg1LDcgKzQ4NSw3IEBA
IFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNz
L2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGln
aGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0KLVVJUHJvY2Vzcy9pb3MvV0tJbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbQorVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS0tleWJvYXJkU2Nyb2xs
aW5nQW5pbWF0b3IubW0KIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCiBV
SVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQpAQCAtNTI0LDcgKzUyNCw2
IEBAIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KIFVJUHJvY2Vzcy9tYWMv
V2ViUHJvY2Vzc1Byb3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dpbmRvd1NlcnZlckNvbm5lY3Rp
b24ubW0KIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQotVUlQ
cm9jZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tCiBVSVByb2Nl
c3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS1By
aW50aW5nVmlldy5tbQogVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIubW0KQEAg
LTUzMiw2ICs1MzEsNyBAQCBVSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxl
Z2F0ZS5tbQogVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0KIFVJUHJvY2Vzcy9t
YWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCiBVSVByb2Nlc3MvbWFjL1dLVmlld0xh
eW91dFN0cmF0ZWd5Lm1tCitVSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXIubW0KIAogVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHlDb2NvYS5tbQogVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5h
Z2VyQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFbGVtZW50QWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0VsZW1lbnRBY3Rpb24ubW0KaW5kZXggZWZjYzUzNTRjYmRiNTkxNDlhMzA0NmJiMzUzMDE1
ZTA0YjZiYjRkMS4uYzM3ZmM4NjlkODJjNzRkMTA4ZjdkNjg3MzRhYTk5MmY2OWJiM2RhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRB
Y3Rpb24ubW0KQEAgLTE2MiwxNiArMTYyLDE2IEBAICsgKGluc3RhbmNldHlwZSlfZWxlbWVudEFj
dGlvbldpdGhUeXBlOihfV0tFbGVtZW50QWN0aW9uVHlwZSl0eXBlIGN1c3RvbVRpdGxlOihOCiAg
ICAgICAgIC8vIFRoaXMgYWN0aW9uIG11c3Qgc3RpbGwgZXhpc3QgZm9yIGNvbXBhdGliaWxpdHks
IGJ1dCBkb2Vzbid0IGRvIGFueXRoaW5nLgogICAgICAgICBicmVhazsKICAgICBjYXNlIF9XS0Vs
ZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uOgotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNU
SU9OKQotICAgICAgICB0aXRsZSA9IFdlYkNvcmU6OmxvY2FsaXplZE5TU3RyaW5nKEAiR2V0IElu
Zm8iKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgICAgIHRpdGxlID0gV0VCX1VJ
X1NUUklORygiU2hvdyBUZXh0IiwgIlRpdGxlIGZvciBTaG93IFRleHQgYWN0aW9uIGJ1dHRvbiIp
OwogICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICphc3Npc3RhbnQs
IF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rpb25JbmZvKSB7CiAgICAgICAgICAgICBbYXNz
aXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTp0eXBlIGVsZW1lbnQ6YWN0aW9uSW5m
byBuZWVkc0ludGVyYWN0aW9uOllFU107CiAgICAgICAgIH07CiAjZW5kaWYKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlOgotI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQotICAgICAgICB0aXRsZSA9IFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlKCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAg
ICB0aXRsZSA9IFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKCk7CiAgICAg
ICAgIGhhbmRsZXIgPSBeKFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKmFzc2lzdGFudCwgX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKICAgICAgICAgICAgIFthc3Npc3RhbnQg
aGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOnR5cGUgZWxlbWVudDphY3Rpb25JbmZvIG5lZWRz
SW50ZXJhY3Rpb246WUVTXTsKICAgICAgICAgfTsKQEAgLTI0NCwxNCArMjQ0LDE0IEBAICsgKFVJ
SW1hZ2UgKilpbWFnZUZvckVsZW1lbnRBY3Rpb25UeXBlOihfV0tFbGVtZW50QWN0aW9uVHlwZSlh
Y3Rpb25UeXBlCiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVG9nZ2xlU2hvd0xpbmtQcmV2aWV3
czoKICAgICAgICAgcmV0dXJuIG5pbDsgLy8gSW50ZW50aW9uYWxseSBlbXB0eS4KICAgICBjYXNl
IF9XS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uOgotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQotICAgICAgICByZXR1cm4gW19XS0VsZW1lbnRBY3Rpb24gaW1hZ2VGb3JFbGVt
ZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbl07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorICAgICAgICByZXR1cm4gW1VJSW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAInRleHQudmlld2Zp
bmRlciJdOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG5pbDsKICNlbmRpZgogICAgIGNhc2UgX1dL
RWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZToKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKLSAgICAgICAgcmV0dXJuIFtfV0tFbGVtZW50QWN0aW9uIGltYWdlRm9yRWxlbWVudEFjdGlv
blR5cGVSZXZlYWxJbWFnZV07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICBy
ZXR1cm4gW1VJSW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAImluZm8uY2lyY2xlIl07CiAjZWxzZQog
ICAgICAgICByZXR1cm4gbmlsOwogI2VuZGlmCkBAIC0zNTgsMTAgKzM1OCw2IEBAIC0gKFVJQWN0
aW9uICopdWlBY3Rpb25Gb3JFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKill
bGVtZW50SW5mbwogfQogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogCi0jaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9fV0tFbGVtZW50QWN0
aW9uQWRkaXRpb25zLm1tPgotI2VuZGlmCi0KIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tCmluZGV4IDdmNTM5MDM2NTAzMGZiZjJiNDVkMjEwNjZmZTk4YzhhYTM4YTlm
ZTcuLjUxNjdiZGI4YTUwYWYzZDMzZTk5NzFlZmUyODhmYjJjNjg0MGVmZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC03
OSwxMCArNzksNyBAQCBTT0ZUX0xJTktfQ0xBU1MoV2ViQ29udGVudEFuYWx5c2lzLCBXZWJGaWx0
ZXJFdmFsdWF0b3IpOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUNvY29hQWRkaXRpb25zQmVmb3JlLm1t
PgotI2VuZGlmCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorLy8gRklYTUU6IFRoaXMg
YWRkaXRpb25zIGZpbGUgc2hvdWxkIGJlIHJlbmFtZWQgdG8gV2ViUGFnZVByb3h5QWRkaXRpb25z
Lm1tLgogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9ucy5oPgog
I2Vsc2UKICNkZWZpbmUgV0VCX1BBR0VfUFJPWFlfQURESVRJT05TCkBAIC02MTUsMTggKzYxMiwx
OCBAQCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBXZWJQYWdlUHJveHk6OmNyZWF0ZU5l
dHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVucwogfQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVMb29rVXBJbWFnZSgpCiB7CiAg
ICAgYXV0byYgcmVzdWx0ID0gbV9hY3RpdmVDb250ZXh0TWVudUNvbnRleHREYXRhLndlYkhpdFRl
c3RSZXN1bHREYXRhKCk7CiAgICAgaWYgKCFyZXN1bHQuaW1hZ2VCaXRtYXApCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHJldmVhbEV4dHJhY3RlZEltYWdlSW5QcmV2aWV3UGFuZWwoKnJlc3VsdC5p
bWFnZUJpdG1hcCwgcmVzdWx0LnRvb2xUaXBUZXh0LCBVUkwgeyBVUkwgeyB9LCByZXN1bHQuYWJz
b2x1dGVJbWFnZVVSTCB9KTsKKyAgICBzaG93SW1hZ2VJblZpc3VhbFNlYXJjaFByZXZpZXdQYW5l
bCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IFVSTCB7IH0s
IHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0pOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAjaWYgSEFW
RShUUkFOU0xBVElPTl9VSV9TRVJWSUNFUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgKaW5kZXggN2ViN2IyM2Y0NDQyNTU2ZGI4NWZkMDU3NzNlMjQ2ZGE4
Yjk5YmE4ZC4uYmJjNjgzYWMwNzE1MTM4YTYwMWY4ZDg1Nzk2YjkwMWZkYzE3MGIyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC01NSw2ICs1NSw3
IEBAIE9CSkNfQ0xBU1MgTlNNZW51OwogT0JKQ19DTEFTUyBOU1RleHRJbnB1dENvbnRleHQ7CiBP
QkpDX0NMQVNTIE5TVmlldzsKIE9CSkNfQ0xBU1MgUUxQcmV2aWV3UGFuZWw7CitPQkpDX0NMQVNT
IFZLSW1hZ2VBbmFseXplcjsKIE9CSkNfQ0xBU1MgV0tBY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNl
cnZlcjsKIE9CSkNfQ0xBU1MgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyOwogT0JKQ19DTEFT
UyBXS0RPTVBhc3RlTWVudURlbGVnYXRlOwpAQCAtODQsMTAgKzg1LDYgQEAgT0JKQ19DTEFTUyBX
ZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcjsKIE9CSkNfQ0xBU1MgV0tQREZIVURWaWV3OwogI2Vu
ZGlmCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRp
b25zL1dlYlZpZXdJbXBsQWRkaXRpb25zQmVmb3JlLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIEFQ
SSB7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgT2JqZWN0OwpAQCAtOTksMTQgKzk2LDEx
IEBAIGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZTsKIGNsYXNzIEludFBvaW50Owogc3RydWN0
IERhdGFEZXRlY3RvckVsZW1lbnRJbmZvOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7
CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uUmVzdWx0OwogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9V
SV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBzdHJ1Y3QgVHJhbnNsYXRpb25D
b250ZXh0TWVudUluZm87CiAjZW5kaWYKLQotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQot
c3RydWN0IEltYWdlRXh0cmFjdGlvblJlc3VsdDsKLSNlbmRpZgogfQogCiBAcHJvdG9jb2wgV2Vi
Vmlld0ltcGxEZWxlZ2F0ZQpAQCAtNjAyLDkgKzU5Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGZv
cmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5nKCk7CiAgICAgYm9vbCBzaG91bGRSZXF1ZXN0
Q2FuZGlkYXRlcygpIGNvbnN0OwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAg
dm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmKTsKLSAgICB2b2lkIGNvbXB1dGVD
YW5SZXZlYWxJbWFnZShjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdl
Qml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKTsK
KyAgICB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VV
UkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogI2VuZGlmCiAKICAgICBib29sIGFjY2VwdHNQcmV2aWV3UGFuZWxDb250cm9s
KFFMUHJldmlld1BhbmVsICopOwpAQCAtNzUzLDYgKzc0NywxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2VuZERyYWdFbmRUb1BhZ2UoQ0dQb2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFZLSW1hZ2VBbmFseXpl
ciAqZW5zdXJlSW1hZ2VBbmFseXplcigpOworI2VuZGlmCisKICAgICBXZWFrT2JqQ1B0cjxOU1Zp
ZXc8V2ViVmlld0ltcGxEZWxlZ2F0ZT4+IG1fdmlldzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFn
ZUNsaWVudD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKQEAg
LTkwMCw4ICs4OTgsOSBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxXS1JldmVhbEl0ZW1QcmVz
ZW50ZXI+IG1fcmV2ZWFsSXRlbVByZXNlbnRlcjsKICNlbmRpZgogCi0jaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFkZGl0aW9u
c0FmdGVyLmg+CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFJlZlB0cjxXb3JrUXVl
dWU+IG1faW1hZ2VBbmFseXplclF1ZXVlOworICAgIFJldGFpblB0cjxWS0ltYWdlQW5hbHl6ZXI+
IG1faW1hZ2VBbmFseXplcjsKICNlbmRpZgogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggYzNmYTZjYWUzM2M1MzhjMTFlMzA5NzE0
MzhiNzQwOTU2ZTAyNzAyNi4uZTMyMjIxYzM1MjRhOGM2NjJjYzBhYzg0ODQ3YjE4OGI5Y2M0NjNi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4
dENoZWNrZXIuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbXBvcnQgIlRleHRS
ZWNvZ25pdGlvblV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eS5oIgogI2ltcG9ydCAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKICNpbXBvcnQgIlVu
ZG9PclJlZG8uaCIKQEAgLTYwLDcgKzYxLDYgQEAKICNpbXBvcnQgIldLRWRpdENvbW1hbmQuaCIK
ICNpbXBvcnQgIldLRXJyb3JJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oIgotI2ltcG9ydCAiV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxl
ci5oIgogI2ltcG9ydCAiV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJX
S05TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXS1BERkhVRFZpZXcuaCIKQEAgLTcwLDYgKzcwLDcg
QEAKICNpbXBvcnQgPFdlYktpdC9XS1NoYXJlU2hlZXQuaD4KICNpbXBvcnQgIldLVGV4dElucHV0
V2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCIKKyNp
bXBvcnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLV2Vi
Vmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dlYkJhY2tGb3J3YXJkTGlzdC5oPgpAQCAtOTgsNyArOTksNiBAQAogI2lt
cG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZUNo
YW5nZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvSW1hZ2VFeHRyYWN0aW9uUmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleXByZXNz
Q29tbWFuZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Mb2FkZXJOU1VSTEV4dHJhcy5oPgpAQCAtMTA4LDYgKzEwOCw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1By
b21pc2VkQXR0YWNobWVudEluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZl
V2l0aFJhbmdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRSZWNvZ25pdGlvblJlc3VsdC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9UZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaD4KQEAgLTE0NSw2ICsxNDYsMTIgQEAK
ICNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisjaW1wb3J0IDxWaXNpb25LaXRDb3JlL1ZL
SW1hZ2VBbmFseXNpc19XZWJLaXQuaD4KKyNpbXBvcnQgPFZpc2lvbktpdENvcmUvVktJbWFnZUFu
YWx5emVyLmg+CisjaW1wb3J0IDxWaXNpb25LaXRDb3JlL1ZLUXVhZC5oPgorI2VuZGlmIC8vIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKwogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMp
CiAjaW1wb3J0IDxUcmFuc2xhdGlvblVJU2VydmljZXMvTFRVSVRyYW5zbGF0aW9uVmlld0NvbnRy
b2xsZXIuaD4KIApAQCAtMTgyLDkgKzE4OSw4NSBAQCAtICh2b2lkKXNldENhblNob3dNZWRpYVNl
bGVjdGlvbkJ1dHRvbjooQk9PTCljYW5TaG93TWVkaWFTZWxlY3Rpb25CdXR0b247CiBAZW5kCiAj
ZW5kaWYKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvV2ViVmlld0ltcGxBZGRpdGlvbnMubW0+Ci0jZW5kaWYKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChWaXNpb25L
aXRDb3JlKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFZpc2lvbktpdENvcmUsIFZLSW1hZ2VB
bmFseXplcikKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChWaXNpb25LaXRDb3JlLCBWS0ltYWdl
QW5hbHl6ZXJSZXF1ZXN0KQorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSA8cmRhcjovLzcy
NDgwNDU5PiBpcyBpbiB0aGUgU0RLLgorQGludGVyZmFjZSBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0
IChTdGFnaW5nXzcyNDgwNDU5KQorQHByb3BlcnR5IChub25hdG9taWMpIE5TVVJMICppbWFnZVVS
TDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VSTCAqcGFnZVVSTDsKK0BlbmQKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1ZLSW1hZ2VBbmFseXplciAqV2ViVmlld0ltcGw6OmVuc3VyZUltYWdl
QW5hbHl6ZXIoKQoreworICAgIGlmICghbV9pbWFnZUFuYWx5emVyKSB7CisgICAgICAgIG1faW1h
Z2VBbmFseXplclF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIldlYktpdCBpbWFnZSBhbmFseXpl
ciBxdWV1ZSIpOworICAgICAgICBtX2ltYWdlQW5hbHl6ZXIgPSBhZG9wdE5TKFthbGxvY1ZLSW1h
Z2VBbmFseXplckluc3RhbmNlKCkgaW5pdF0pOworICAgICAgICBbbV9pbWFnZUFuYWx5emVyIHNl
dENhbGxiYWNrUXVldWU6bV9pbWFnZUFuYWx5emVyUXVldWUtPmRpc3BhdGNoUXVldWUoKV07Cisg
ICAgfQorICAgIHJldHVybiBtX2ltYWdlQW5hbHl6ZXIuZ2V0KCk7Cit9CisKK3N0YXRpYyBSZXRh
aW5QdHI8VktJbWFnZUFuYWx5emVyUmVxdWVzdD4gY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Qo
Q0dJbWFnZVJlZiBpbWFnZSwgY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgVVJMJiBwYWdlVVJM
LCBWS0FuYWx5c2lzVHlwZXMgdHlwZXMpCit7CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhb
YWxsb2NWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0SW5zdGFuY2UoKSBpbml0V2l0aENHSW1hZ2U6aW1h
Z2Ugb3JpZW50YXRpb246VktJbWFnZU9yaWVudGF0aW9uVXAgcmVxdWVzdFR5cGU6dHlwZXNdKTsK
KyAgICBbcmVxdWVzdCBzZXRJbWFnZVVSTDppbWFnZVVSTF07CisgICAgW3JlcXVlc3Qgc2V0UGFn
ZVVSTDpwYWdlVVJMXTsKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKQoreworICAgIGlm
ICghaXNMaXZlVGV4dEVuYWJsZWQoKSkgeworICAgICAgICBjb21wbGV0aW9uKHsgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGltYWdlQml0bWFwID0gU2hhcmVhYmxlQml0
bWFwOjpjcmVhdGUoaW1hZ2VEYXRhKTsKKyAgICBpZiAoIWltYWdlQml0bWFwKSB7CisgICAgICAg
IGNvbXBsZXRpb24oeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2dJ
bWFnZSA9IGltYWdlQml0bWFwLT5tYWtlQ0dJbWFnZSgpOworICAgIGF1dG8gcmVxdWVzdCA9IGNy
ZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBbTlNVUkwg
X3dlYl9VUkxXaXRoV1RGU3RyaW5nOm1fcGFnZS0+Y3VycmVudFVSTCgpXSwgVktBbmFseXNpc1R5
cGVUZXh0KTsKKyAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAg
IFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQoKSBwcm9n
cmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlv
biA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZV0gKFZLSW1hZ2VBbmFseXNpcyAqYW5h
bHlzaXMsIE5TRXJyb3IgKikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtj
b21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgcmVzdWx0ID0gbWFrZVRleHRSZWNvZ25p
dGlvblJlc3VsdChhbmFseXNpcyksIHN0YXJ0VGltZV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBt
cyAoZm91bmQgdGV4dD8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5t
aWxsaXNlY29uZHMoKSwgIXJlc3VsdC5pc0VtcHR5KCkpOworICAgICAgICAgICAgY29tcGxldGlv
bihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICB9KTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYg
aW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKK3sKKyAgICBpZiAoIWlzTGl2ZVRleHRFbmFibGVk
KCkpIHsKKyAgICAgICAgY29tcGxldGlvbihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZUJpdG1hcC5tYWtlQ0dJbWFnZSgpOworICAgIGF1
dG8gcmVxdWVzdCA9IGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGlt
YWdlVVJMLCBbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOm1fcGFnZS0+Y3VycmVudFVSTCgp
XSwgVktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2gpOworICAgIGF1dG8gc3RhcnRUaW1lID0gTW9u
b3RvbmljVGltZTo6bm93KCk7CisgICAgW2Vuc3VyZUltYWdlQW5hbHl6ZXIoKSBwcm9jZXNzUmVx
dWVzdDpyZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6
bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgc3RhcnRUaW1l
XSAoVktJbWFnZUFuYWx5c2lzICphbmFseXNpcywgTlNFcnJvciAqKSBtdXRhYmxlIHsKKyAgICAg
ICAgQk9PTCByZXN1bHQgPSBbYW5hbHlzaXMgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6VktB
bmFseXNpc1R5cGVWaXN1YWxTZWFyY2hdOworICAgICAgICBDRlJ1bkxvb3BQZXJmb3JtQmxvY2so
Q0ZSdW5Mb29wR2V0TWFpbigpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpTlNFdmVudFRyYWNraW5n
UnVuTG9vcE1vZGUsIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlv
biksIHJlc3VsdCwgc3RhcnRUaW1lXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChmb3VuZCB2
aXN1YWwgc2VhcmNoIHJlc3VsdHM/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0
VGltZSkubWlsbGlzZWNvbmRzKCksIHJlc3VsdCk7CisgICAgICAgICAgICBjb21wbGV0aW9uKHJl
c3VsdCk7CisgICAgICAgIH0pLmdldCgpKTsKKyAgICAgICAgQ0ZSdW5Mb29wV2FrZVVwKENGUnVu
TG9vcEdldE1haW4oKSk7CisgICAgfSkuZ2V0KCldOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogQGludGVyZmFjZSBXS0Fj
Y2Vzc2liaWxpdHlTZXR0aW5nc09ic2VydmVyIDogTlNPYmplY3QgewogICAgIFdlYktpdDo6V2Vi
Vmlld0ltcGwgKl9pbXBsOwpAQCAtNTcxNyw4ICs1ODAwLDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6
aGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBXZWJDb3JlOjpUcmFuc2xhdGlvbkNv
bnRleHQKIAogYm9vbCBXZWJWaWV3SW1wbDo6YWNjZXB0c1ByZXZpZXdQYW5lbENvbnRyb2woUUxQ
cmV2aWV3UGFuZWwgKikKIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICByZXR1
cm4gISFtX3BhZ2UtPmltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyKCk7CisjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHJldHVybiAhIW1fcGFnZS0+dmlzdWFsU2VhcmNoUHJl
dmlld0NvbnRyb2xsZXIoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTcyMmI0MDNhNzdkM2ZhZmQ4MzZjMjhk
ZGZjZTZhZThiMzRiNWQ3OC4uODc3MGFkNDYzODE2YmZlZjRjNGE5OTM3NDY1MzllMDJkMjFjZDU3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNjIsOCArNjIsOCBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPgogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJl
c3VsdC5oPgorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHRSZWNvZ25pdGlvblJlc3VsdC5oPgogI2VuZGlmCiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKQEAg
LTUzOCw5ICs1MzgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpEYXRhT3duZXJU
eXBlIGRhdGFPd25lckZvclBhc3RlYm9hcmQoUGFzdGVib2FyZEFjY2Vzc0ludGVudCkgY29uc3Qg
eyByZXR1cm4gV2ViQ29yZTo6RGF0YU93bmVyVHlwZTo6VW5kZWZpbmVkOyB9CiAjZW5kaWYKIAot
I2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pIHsgY29tcGxldGlvbih7IH0pOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVDYW5SZXZlYWxJbWFnZShjb25zdCBVUkwmLCBTaGFyZWFi
bGVCaXRtYXAmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pIHsg
Y29tcGxldGlvbihmYWxzZSk7IH0KKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYgY29tcGxldGlvbikgeyBj
b21wbGV0aW9uKHsgfSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUhhc1Zpc3VhbFNlYXJj
aFJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oZmFsc2UpOyB9CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05U
RVhUTUVOVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBh
OTE2MjdmY2EyMmQ0MWQwMmY5NWU1ZGZkZWM5ZmFmZTRmNDYzYzcuLjM1ZmM5NGJmZDRlMTRiYTMz
Y2Q2N2JhNGM2ZTc4N2YzNjE3MDlhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNjYsNyArNjYsNiBAQAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlck1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJGcmFt
ZUluZm9EYXRhLmgiCi0jaW5jbHVkZSAiSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgiCiAj
aW5jbHVkZSAiTGVnYWN5R2xvYmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTk0LDYgKzkzLDcgQEAKICNpbmNsdWRlICJT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgog
I2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlICJUZXh0UmVjb2duaXRpb25V
cGRhdGVSZXN1bHQuaCIKICNpbmNsdWRlICJVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIlVuZG9PclJlZG8uaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgiCkBAIC02ODk2LDkgKzY4OTYsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKICAg
ICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsKICAgICAgICAg
YnJlYWs7CiAKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgICAgICBoYW5kbGVDb250ZXh0TWVudVJldmVhbElt
YWdlKCk7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgICAgIGhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2Uo
KTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAKQEAgLTg0ODYsMjUgKzg0ODYsMjUgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3MoRnJhbWVJZGVudGlmaWVyIGYKICNlbmRpZgogCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVS
TCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNv
bnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGltYWdlVVJM
LCBpbWFnZURhdGEsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYWdlQ2xpZW50
KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb21wdXRlQ2FuUmV2
ZWFsSW1hZ2UoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1h
cCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBXZWJQ
YWdlUHJveHk6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VV
UkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBwYWdlQ2xpZW50KCkuY29tcHV0ZUNhblJldmVh
bEltYWdlKGltYWdlVVJMLCBpbWFnZUJpdG1hcCwgV1RGTW92ZShjb21wbGV0aW9uKSk7CisgICAg
cGFnZUNsaWVudCgpLmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGltYWdlVVJMLCBpbWFn
ZUJpdG1hcCwgV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJl
c3VsdHMsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBs
b2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1
bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVdpdGhU
ZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYgcmVzdWx0cywgY29u
c3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6Tm9UZXh0
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0
OjpOb1RleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdU
Rk1vdmUocmVzdWx0cyksIGNvbnRleHQsIGxvY2F0aW9uKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRl
V2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdHMpLCBjb250ZXh0LCBsb2Nh
dGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDY0NThiODgxZWIyOGZmNTgyZWZmMzRi
YjdkOGQ2ZDRjZmViYmRmNjkuLjZkMDVkNmZjNzkwOGU0YjJkYjg1YTY0MjNjNGZjZTY5NjY2MDBj
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMzEsNiArMjMx
LDcgQEAgT0JKQ19DTEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7CiBPQkpDX0NMQVNTIE5TVmlldzsK
IE9CSkNfQ0xBU1MgUUxQcmV2aWV3UGFuZWw7CiBPQkpDX0NMQVNTIFdLUUxUaHVtYm5haWxMb2Fk
T3BlcmF0aW9uOworT0JKQ19DTEFTUyBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyOwog
T0JKQ19DTEFTUyBXS1dlYlZpZXc7CiBPQkpDX0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
OwogI2VuZGlmCkBAIC0yOTcsMTMgKzI5OCwxMCBAQCBzdHJ1Y3QgU2hhcmVEYXRhOwogc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CiBzdHJ1Y3QgVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdl
Owogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1
bHQ7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwog
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0OwotI2VuZGlmCi0KICNpZiBIQVZFKFBBU1RFQk9BUkRfREFUQV9PV05FUikKIGVudW0gY2xh
c3MgRGF0YU93bmVyVHlwZSA6IHVpbnQ4X3Q7CiAjZW5kaWYKQEAgLTQwNyw3ICs0MDUsNyBAQCBz
dHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CiBzdHJ1
Y3QgV2ViU3BlZWNoU3ludGhlc2lzVm9pY2U7CiAKLWVudW0gY2xhc3MgSW1hZ2VFeHRyYWN0aW9u
VXBkYXRlUmVzdWx0IDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRl
UmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3MgTmVnb3RpYXRlZExlZ2FjeVRMUyA6IGJvb2w7
CiBlbnVtIGNsYXNzIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwogZW51bSBj
bGFzcyBVbmRvT3JSZWRvIDogYm9vbDsKQEAgLTE2NjQsMTAgKzE2NjIsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZSk+JiYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwg
Y29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpOwotICAgIHZvaWQg
dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJbWFnZUV4dHJhY3Rp
b25VcGRhdGVSZXN1bHQpPiYmKTsKLSAgICB2b2lkIGNvbXB1dGVDYW5SZXZlYWxJbWFnZShjb25z
dCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAg
dm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKTsKKyAgICB2b2lkIHVwZGF0ZVdp
dGhUZXh0UmVjb2duaXRpb25SZXN1bHQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYs
IGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9uVXBkYXRl
UmVzdWx0KT4mJik7CisgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25z
dCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQpAQCAtMTkxMSw4ICsxOTA5
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaFdoZWVsRXZlbnRXaXRob3V0U2Nyb2xs
aW5nKGNvbnN0IFdlYldoZWVsRXZlbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKLSAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2UoKTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHZvaWQgaGFuZGxl
Q29udGV4dE1lbnVMb29rVXBJbWFnZSgpOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAt
MTk0NCw2ICsxOTQyLDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNSdW5uaW5nTW9kYWxKYXZh
U2NyaXB0RGlhbG9nKCkgY29uc3QgeyByZXR1cm4gbV9pc1J1bm5pbmdNb2RhbEphdmFTY3JpcHRE
aWFsb2c7IH0KIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQor
ICAgIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgKnZpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxl
ci5nZXQoKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTI0OTIsNiArMjQ5NCwxMCBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBydW5Nb2RhbEphdmFTY3JpcHREaWFsb2coUmVmUHRyPFdlYkZyYW1l
UHJveHk+JiYsIEZyYW1lSW5mb0RhdGEmJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkqLCBGcmFtZUluZm9E
YXRhJiYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik+JiYpOwog
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBQTEFURk9STShNQUMpCisgICAgdm9pZCBz
aG93SW1hZ2VJblZpc3VhbFNlYXJjaFByZXZpZXdQYW5lbChTaGFyZWFibGVCaXRtYXAmIGltYWdl
Qml0bWFwLCBjb25zdCBTdHJpbmcmIHRvb2x0aXAsIGNvbnN0IFVSTCYgaW1hZ2VVUkwpOworI2Vu
ZGlmCisKICAgICBjb25zdCBJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBtX3dlYlBhZ2VJRDsKICAgICBXZWFrUHRyPFBhZ2VDbGllbnQ+IG1fcGFn
ZUNsaWVudDsKQEAgLTMwNDIsNiArMzA0OCwxMCBAQCBwcml2YXRlOgogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5QWRkaXRp
b25zQWZ0ZXIuaD4KICNlbmRpZgorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBQTEFU
Rk9STShNQUMpCisgICAgUmV0YWluUHRyPFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXI+
IG1fdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXI7CisjZW5kaWYKIH07CiAKICNpZmRlZiBf
X09CSkNfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDcwYWFmMDcwZDM2Nzc4ZWIxOWI3ZTliZWNiOTNlZGM1ZGZlZDVmZjguLmFi
MzI0ODExZTE2ODYyZDRlYWIxZThjNmVmZDAxODNmOWM2NGI4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyNCw4ICsyMjQs
OCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENvbXBvc2l0aW9uV2FzQ2FuY2Vs
ZWQoKQogICAgIFNldEhhc0hhZFNlbGVjdGlvbkNoYW5nZXNGcm9tVXNlckludGVyYWN0aW9uKGJv
b2wgaGFzSGFkVXNlclNlbGVjdGlvbkNoYW5nZXMpCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSAgICBSZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFVSTCBpbWFnZVVSTCwgV2ViS2l0OjpT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZURhdGEpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6SW1h
Z2VFeHRyYWN0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgUmVxdWVzdFRleHRSZWNvZ25pdGlvbihVUkwgaW1hZ2VVUkwsIFdlYktpdDo6U2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUgaW1hZ2VEYXRhKSAtPiAoc3RydWN0IFdlYkNvcmU6OlRleHRS
ZWNvZ25pdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCiAjZW5kaWYKIAogI2lmIEhBVkUoVFJBTlNM
QVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCAyNmI3NDEyNmVm
M2M4MDM2ZDE5MzA4YzY3MWFiYTUwODk5YTA5YWY5Li4wOGYyNDk3OGQxYTAwMTI5NjM0YTgyYjc2
MTc2ZmE3OGFjMTI1NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMTIwLDggKzEyMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
b25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpIG92ZXJyaWRl
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJ
bWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpIGZpbmFsOworI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVS
TCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpIGZpbmFsOwog
I2VuZGlmCiAKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVBy
b3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGJhZGJlZmI2Y2NiNTYzNGFmZWJlOGEx
MjZiOWE3ODlhNWIyMzdhN2MuLjU2YjMyNTk4NzA4ZGJhYzg5MTU2MzM2ZGMxMmVmMmQxOTRkNTk3
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTQ2NSwxNCArNDY1LDE0IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVEZWZl
cnJpbmdUb3VjaEVuZChib29sIHByZXZlbnROYXRpdmVHZXN0dXJlcykKIAogI2VuZGlmIC8vIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1h
Z2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCiB7Ci0gICAgW21f
Y29udGVudFZpZXcgcmVxdWVzdEltYWdlRXh0cmFjdGlvbjppbWFnZVVSTCBpbWFnZURhdGE6aW1h
Z2VEYXRhIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbildOworICAgIFttX2Nv
bnRlbnRWaWV3IHJlcXVlc3RUZXh0UmVjb2duaXRpb246aW1hZ2VVUkwgaW1hZ2VEYXRhOmltYWdl
RGF0YSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb24pXTsKIH0KIAotI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKIAogI2lmIEhBVkUoUEFTVEVCT0FSRF9EQVRBX09XTkVSKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAppbmRleCA0
M2E0NzM0NTkwMzhmNzIwZDk4YWYzMDExYzQwMWU5MjEzMWY5OTI3Li42ZThlZTNkYTMwOTJlYWEy
YTc0NDc2ZTU2Y2UzNTEzNjY5Nzk0ZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKQEAgLTc5LDExICs3OSwxMSBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9uVHlwZSk7CiAtICh2b2lk
KWFjdGlvblNoZWV0QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51OihXS0FjdGlvblNoZWV0
QXNzaXN0YW50ICopYXNzaXN0YW50OwogI2VuZGlmCiAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0
YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNoYXJlRWxlbWVudFdpdGhJ
bWFnZTooVUlJbWFnZSAqKWltYWdlIHJlY3Q6KENHUmVjdClib3VuZGluZ1JlY3Q7Ci0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0tIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVJbWFnZUV4dHJhY3Rp
b25BY3Rpb25Gb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQ7Ci0t
ICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNz
aXN0YW50IGhhbmRsZUltYWdlRXh0cmFjdGlvbjooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihO
U1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlQm91bmRzOihDR1Jl
Y3QpaW1hZ2VCb3VuZHM7Ci0tIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNo
ZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZv
ckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKLS0gKHZvaWQpYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgaGFu
ZGxlUmV2ZWFsSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVS
TCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRz
OworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKy0gKEJPT0wpYWN0aW9uU2hlZXRBc3Npc3Rh
bnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZVNob3dU
ZXh0QWN0aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50Owor
LSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFz
c2lzdGFudCBzaG93VGV4dEZvckltYWdlOihVSUltYWdlICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJM
ICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClp
bWFnZUJvdW5kczsKKy0gKEJPT0wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRB
c3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxl
bWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50OworLSAodm9pZClhY3Rpb25T
aGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBsb29rVXBJ
bWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihO
U1N0cmluZyAqKXRpdGxlIGltYWdlQm91bmRzOihDR1JlY3QpaW1hZ2VCb3VuZHM7CiAjZW5kaWYK
IEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25T
aGVldEFzc2lzdGFudC5tbQppbmRleCBkMThkMzVhMDM4YWYzODdkMWY0NTBkYmZhOTQwMjNlNDVl
ZjgwN2RiLi5lMDdlOGMzY2ViOGE3OTBjZGJlMTAzYzU4MDBkNWIyYTQ5Mzc4MDRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5tbQpAQCAtNTY4LDExICs1NjgsMTEgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVu
dEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXQKICAgICAg
ICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFj
dGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlU2hhcmUgYXNzaXN0YW50OnNlbGZdXTsK
ICAgICB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCiAgICAgaWYgKGVsZW1lbnRJbmZvLnR5cGUgPT0gX1dLQWN0aXZhdGVkRWxlbWVu
dFR5cGVJbWFnZSB8fCBbZWxlbWVudEluZm8gaW1hZ2VdKSB7Ci0gICAgICAgIGlmIChbX2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hv
dWxkSW5jbHVkZUltYWdlRXh0cmFjdGlvbkFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0
ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVJbWFnZUV4dHJhY3Rpb25B
Y3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKKyAgICAgICAgaWYgKFtfZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNs
dWRlU2hvd1RleHRBY3Rpb25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlU2hvd1RleHRBY3Rpb25Gb3JFbGVtZW50OmVsZW1l
bnRJbmZvXSkKICAgICAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1l
bnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdl
RXh0cmFjdGlvbiBhc3Npc3RhbnQ6c2VsZl1dOwotICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1
ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVl
dEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVsZW1lbnQ6
ZWxlbWVudEluZm9dKQorICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFj
dGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxm
IHNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQog
ICAgICAgICAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBf
ZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgYXNz
aXN0YW50OnNlbGZdXTsKICAgICB9CiAjZW5kaWYKQEAgLTYwMCwxMCArNjAwLDEwIEBAIC0gKFJl
dGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9ySW1h
Z2VTaGVldDooX1dLQWN0aXZhCiAKICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tF
bGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVD
b3B5IGFzc2lzdGFudDpzZWxmXV07CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0
QXNzaXN0YW50OnNob3VsZEluY2x1ZGVJbWFnZUV4dHJhY3Rpb25BY3Rpb25Gb3JFbGVtZW50Oild
ICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlSW1h
Z2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQorICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZVNob3dUZXh0QWN0aW9uRm9y
RWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxk
SW5jbHVkZVNob3dUZXh0QWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCiAgICAgICAgIFtk
ZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25X
aXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbiBhc3Npc3RhbnQ6c2Vs
Zl1dOwotICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZVJldmVhbEltYWdlQWN0aW9uRm9yRWxlbWVu
dDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVk
ZVJldmVhbEltYWdlQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCisgICAgaWYgKFtfZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpz
aG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUg
YWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25G
b3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKICAgICAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVj
dDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rp
b25UeXBlUmV2ZWFsSW1hZ2UgYXNzaXN0YW50OnNlbGZdXTsKICNlbmRpZgogCkBAIC0xMDIzLDEz
ICsxMDIzLDEzIEBAIC0gKHZvaWQpaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOihfV0tFbGVt
ZW50QWN0aW9uVHlwZSl0eXBlIGVsZW1lbnQ6KF9XS0FjdGl2CiAgICAgICAgIH0KICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbjoKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0
QXNzaXN0YW50OnNlbGYgaGFuZGxlSW1hZ2VFeHRyYWN0aW9uOmVsZW1lbnQuaW1hZ2UgaW1hZ2VV
Ukw6ZWxlbWVudC5pbWFnZVVSTCB0aXRsZTplbGVtZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1l
bnQuYm91bmRpbmdSZWN0XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgICAgIFtk
ZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3dUZXh0Rm9ySW1hZ2U6ZWxlbWVu
dC5pbWFnZSBpbWFnZVVSTDplbGVtZW50LmltYWdlVVJMIHRpdGxlOmVsZW1lbnQudGl0bGUgaW1h
Z2VCb3VuZHM6ZWxlbWVudC5ib3VuZGluZ1JlY3RdOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZToKLSNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLSAgICAgICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNl
bGYgaGFuZGxlUmV2ZWFsSW1hZ2U6ZWxlbWVudC5pbWFnZSBpbWFnZVVSTDplbGVtZW50LmltYWdl
VVJMIHRpdGxlOmVsZW1lbnQudGl0bGUgaW1hZ2VCb3VuZHM6ZWxlbWVudC5ib3VuZGluZ1JlY3Rd
OworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgW2RlbGVnYXRlIGFjdGlvblNo
ZWV0QXNzaXN0YW50OnNlbGYgbG9va1VwSW1hZ2U6ZWxlbWVudC5pbWFnZSBpbWFnZVVSTDplbGVt
ZW50LmltYWdlVVJMIHRpdGxlOmVsZW1lbnQudGl0bGUgaW1hZ2VCb3VuZHM6ZWxlbWVudC5ib3Vu
ZGluZ1JlY3RdOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKaW5kZXggYWViNDQ0MjkwZGI2NzY1Mjg4M2RhMDBlNTUzZmZhMWM2ZTQ3OWI0Mi4uMzAyNGJi
NDI4OWMyMWY2ZTgwZTA3MDRjYmFhMTRkYWNlYzdkMGJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtODcs
NiArODcsNyBAQCBzdHJ1Y3QgQ29udGFjdEluZm87CiBzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0
YTsKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQ
YXJzZWRVUkw7CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uUmVzdWx0OwogZW51bSBjbGFzcyBET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGlj
eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CkBA
IC05NSwxMCArOTYsNiBAQCBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRp
b24gOiB1aW50OF90OwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBzdHJ1Y3QgRHJhZ0l0ZW07
CiAjZW5kaWYKLQotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotc3RydWN0IEltYWdlRXh0
cmFjdGlvblJlc3VsdDsKLSNlbmRpZgogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEzOSw5
ICsxMzYsMTIgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQmVmb3JlLmg+Ci0jZW5kaWYKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCitAY2xhc3MgUUxQcmV2aWV3Q29udHJvbGxlcjsKK0BjbGFzcyBWS0ltYWdl
QW5hbHl6ZXI7CitAY2xhc3MgV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXI7CisKKyNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIHR5cGVkZWYgdm9pZCAoXlVJV0tBdXRv
Y29ycmVjdGlvbkNvbXBsZXRpb25IYW5kbGVyKShVSVdLQXV0b2NvcnJlY3Rpb25SZWN0cyAqcmVj
dHNGb3JJbnB1dCk7CiB0eXBlZGVmIHZvaWQgKF5VSVdLQXV0b2NvcnJlY3Rpb25Db250ZXh0SGFu
ZGxlcikoVUlXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCAqYXV0b2NvcnJlY3Rpb25Db250ZXh0KTsK
QEAgLTE1MiwxMiArMTUyLDE2IEBAIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rpb25XaXRoRGly
ZWN0aW9uQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc2VsZWN0aW9uRW5kSXNNCiB0eXBlZGVmIEJs
b2NrUHRyPHZvaWQoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbik+IElu
dGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjazsKIHR5cGVkZWYgc3RkOjpwYWlyPFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxs
YmFjaz4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjazsKIAotI2lmICFk
ZWZpbmVkKEZPUl9FQUNIX0FERElUSU9OQUxfV0tDT05URU5UVklFV19BQ1RJT04pCi0jZGVmaW5l
IEZPUl9FQUNIX0FERElUSU9OQUxfV0tDT05URU5UVklFV19BQ1RJT04oTSkKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisjZGVmaW5lIEZPUl9FQUNIX0lOU0VSVF9URVhUX0ZST01fQ0FNRVJB
X1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pIFwKKyAgICBNKF9pbnNlcnRUZXh0RnJvbUNhbWVyYSkg
XAorICAgIE0oY2FwdHVyZVRleHRGcm9tQ2FtZXJhKQorI2Vsc2UKKyNkZWZpbmUgRk9SX0VBQ0hf
SU5TRVJUX1RFWFRfRlJPTV9DQU1FUkFfV0tDT05URU5UVklFV19BQ1RJT04oTSkKICNlbmRpZgog
CiAjZGVmaW5lIEZPUl9FQUNIX1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pIFwKLSAgICBGT1JfRUFD
SF9BRERJVElPTkFMX1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pIFwKKyAgICBGT1JfRUFDSF9JTlNF
UlRfVEVYVF9GUk9NX0NBTUVSQV9XS0NPTlRFTlRWSUVXX0FDVElPTihNKSBcCiAgICAgTShfYWRk
U2hvcnRjdXQpIFwKICAgICBNKF9kZWZpbmUpIFwKICAgICBNKF9sb29rdXApIFwKQEAgLTIyOCwx
MyArMjMyLDEzIEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgQ0dSZWN0IHRl
eHRMYXN0UmVjdDsKIH07CiAKLWVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24g
OiBib29sIHsKK2VudW0gY2xhc3MgUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSA6IGJv
b2wgewogICAgIE5vLAogICAgIFllcwogfTsKIAotZW51bSBJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0
SWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdElkZW50aWZp
ZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyVHlw
ZT47CitlbnVtIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcg
SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW50aWZpZXJUeXBlPjsKIAogfQogCkBAIC0yNTYsOCArMjYwLDggQEAg
dXNpbmcgSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVy
PEltYWdlRXh0cmFjdGlvblJlcXVlc3QKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlh
dGVseVJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVk
UmVzZXR0YWJsZUdlc3R1cmVzOwogICAgIFJldGFpblB0cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyPiBfdG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1Rh
cEdlc3R1cmVzOwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFJldGFpblB0cjxX
S0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXI7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFJldGFpblB0
cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyOwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6R2Vz
dHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyPiBfZ2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyOwogICAgIFJldGFpblB0cjxVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJl
Y29nbml6ZXI+IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7CkBAIC00ODMsMjIgKzQ4Nywy
OCBAQCB1c2luZyBJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50
aWZpZXI8SW1hZ2VFeHRyYWN0aW9uUmVxdWVzdAogCiAgICAgVmVjdG9yPEJsb2NrUHRyPHZvaWQo
KT4+IF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJSZXNldHRpbmdTaW5nbGVUYXBHZXN0dXJlUmVjb2du
aXplcjsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFJldGFpblB0cjxXS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXI7Ci0gICAgUmV0YWluUHRyPFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9p
bWFnZUV4dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJlY29nbml6ZXI7Ci0gICAgc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyPiBfcGVuZGluZ0ltYWdl
RXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RWxlbWVudENvbnRleHQ+IF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbjsKLSAgICBWZWN0
b3I8QmxvY2tQdHI8dm9pZChXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKT4+IF9h
Y3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOworI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBSZXRhaW5QdHI8V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXI+IF9pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXI7CisgICAgUmV0YWluUHRyPFVJ
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVS
ZWNvZ25pemVyOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpJbWFnZUFuYWx5c2lzUmVxdWVz
dElkZW50aWZpZXI+IF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyOworICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IF9lbGVtZW50UGVuZGluZ0lt
YWdlQW5hbHlzaXM7CisgICAgVmVjdG9yPEJsb2NrUHRyPHZvaWQoV2ViS2l0OjpQcm9jZWVkV2l0
aFRleHRTZWxlY3Rpb25JbkltYWdlKT4+IF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1h
Z2VBbmFseXNpczsKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKLSAgICBSZXRhaW5QdHI8VUlNZW51
PiBfaW1hZ2VFeHRyYWN0aW9uQ29udGV4dE1lbnU7Ci0gICAgQk9PTCBfY29udGV4dE1lbnVXYXNU
cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQ7CisgICAgUmV0YWluUHRyPFVJTWVudT4g
X2NvbnRleHRNZW51Rm9yTWFjaGluZVJlYWRhYmxlQ29kZTsKKyAgICBCT09MIF9jb250ZXh0TWVu
dVdhc1RyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQ7CiAjZW5kaWYgLy8gVVNFKFVJQ09O
VEVYVE1FTlUpCi0gICAgQk9PTCBfaXNQcm9jZWVkaW5nV2l0aEltYWdlRXh0cmFjdGlvbjsKLSNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
QWRkaXRpb25zQWZ0ZXIuaD4KLSNlbmRpZgorICAgIEJPT0wgX2lzUHJvY2VlZGluZ1dpdGhUZXh0
U2VsZWN0aW9uSW5JbWFnZTsKKyAgICBSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyPiBfaW1hZ2VB
bmFseXplcjsKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBSZXRhaW5QdHI8UUxQcmV2aWV3Q29u
dHJvbGxlcj4gX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxV
SUltYWdlPiBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlOworICAgIFJldGFpblB0cjxOU1VSTD4g
X3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZVVSTDsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF92
aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGU7CisgICAgQ0dSZWN0IF92aXN1YWxTZWFyY2hQcmV2aWV3
SW1hZ2VCb3VuZHM7CisgICAgQk9PTCBfaGFzU2VsZWN0YWJsZVRleHRJbkltYWdlOworICAgIEJP
T0wgX2hhc1Zpc3VhbFNlYXJjaFJlc3VsdHM7CisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisj
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogfQogCiBAZW5kCkBAIC03MjksOSArNzM5
LDkgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09O
VEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpc2V0VXBBcHBIaWdobGlnaHRN
ZW51c0lmTmVlZGVkOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLS0g
KHZvaWQpX2VuZEltYWdlRXh0cmFjdGlvbkdlc3R1cmVEZWZlcnJhbDooV2ViS2l0OjpTaG91bGRQ
cmV2ZW50R2VzdHVyZXMpc2hvdWxkUHJldmVudEdlc3R1cmVzOwotLSAodm9pZClyZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uOihOU1VSTCAqKWltYWdlVVJMIGltYWdlRGF0YTooY29uc3QgV2ViS2l0OjpT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpaW1hZ2VEYXRhIGNvbXBsZXRpb25IYW5kbGVyOihDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJilj
b21wbGV0aW9uOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKy0gKHZvaWQpX2VuZEltYWdl
QW5hbHlzaXNHZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6U2hvdWxkUHJldmVudEdlc3R1cmVzKXNo
b3VsZFByZXZlbnRHZXN0dXJlczsKKy0gKHZvaWQpcmVxdWVzdFRleHRSZWNvZ25pdGlvbjooTlNV
UkwgKilpbWFnZVVSTCBpbWFnZURhdGE6KGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmKWltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpY29tcGxldGlvbjsKICNlbmRp
ZgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBlMDBhNmUwMTE0YWE0OTk5MTU0MzU5NDJjMDY3
Yjg0MDE5MGI2OTU2Li43YTg0ODEwZWFhZTgyOWRlMjQ1NzE2NmQ5NDc5ODY3ODY1M2U1MzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KQEAgLTQyLDYgKzQyLDggQEAKICNpbXBvcnQgIlNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJUZXh0
SW5wdXRTUEkuaCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oIgorI2lt
cG9ydCAiVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgog
I2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0QXNz
aXN0YW50LmgiCkBAIC01NCw2ICs1Niw3IEBACiAjaW1wb3J0ICJXS0Zvcm1TZWxlY3RDb250cm9s
LmgiCiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS0hpZ2hsaWdo
dExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmgiCisjaW1wb3J0ICJXS0ltYWdlQW5hbHlzaXNH
ZXN0dXJlUmVjb2duaXplci5oIgogI2ltcG9ydCAiV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxl
ci5oIgogI2ltcG9ydCAiV0tJbnNwZWN0b3JOb2RlU2VhcmNoR2VzdHVyZVJlY29nbml6ZXIuaCIK
ICNpbXBvcnQgIldLTW91c2VHZXN0dXJlUmVjb2duaXplci5oIgpAQCAtOTIsNiArOTUsNyBAQAog
I2ltcG9ydCA8Q29yZVRleHQvQ1RGb250Lmg+CiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnREZXNj
cmlwdG9yLmg+CiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvVVRDb3JlVHlwZXMuaD4KKyNp
bXBvcnQgPFVuaWZvcm1UeXBlSWRlbnRpZmllcnMvVVRDb3JlVHlwZXMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvQXBwSGlnaGxpZ2h0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0NvbG9ySU9TLmg+CkBAIC0xMTcsNiArMTIxLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRp
Y2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVG91
Y2hBY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KQEAgLTE0MiwxMCArMTQ3LDYgQEAKICNpbXBvcnQgPHd0
Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgog
Ci0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNCZWZvcmUubW0+Ci0jZW5kaWYKLQogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RyYWdJdGVtLmg+CkBAIC0xNzMsNyArMTc0LDI1IEBACiAjaW1wb3J0ICJQ
ZXBwZXJVSUNvcmVTUEkuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
CisvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcHVsbGVkIG91dCBpbnRvIGEgc2VwYXJhdGUgc29m
dGxpbmtpbmcgaGVhZGVyIChlaXRoZXIgaW4gUEFMIG9yIFdlYktpdDIpLgorI2ltcG9ydCA8Vmlz
aW9uS2l0Q29yZS9WS0ltYWdlQW5hbHlzaXNfV2ViS2l0Lmg+CisjaW1wb3J0IDxWaXNpb25LaXRD
b3JlL1ZLSW1hZ2VBbmFseXplci5oPgorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElP
TkFMKFZpc2lvbktpdENvcmUpCitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoVmlzaW9uS2l0Q29y
ZSwgVktJbWFnZUFuYWx5emVyKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFZpc2lvbktpdENv
cmUsIFZLSW1hZ2VBbmFseXplclJlcXVlc3QpCisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNl
IDxyZGFyOi8vNzI0ODA0NTk+IGlzIGluIHRoZSBTREsuCitAaW50ZXJmYWNlIFZLSW1hZ2VBbmFs
eXplclJlcXVlc3QgKFN0YWdpbmdfNzI0ODA0NTkpCitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNV
UkwgKmltYWdlVVJMOworQHByb3BlcnR5IChub25hdG9taWMpIE5TVVJMICpwYWdlVVJMOworQGVu
ZAorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiAjaW1wb3J0IDxwYWwvaW9z
L01hbmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9pb3MvUXVpY2tM
b29rU29mdExpbmsuaD4KIAogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdlYmtpdFNob3dMaW5rUHJldmlld3NQcmVm
ZXJlbmNlS2V5ID0gQCJXZWJLaXRTaG93TGlua1ByZXZpZXdzIjsKQEAgLTIwNCw2ICsyMjMsMjAg
QEAgQGVuZAogCiBzdGF0aWMgdm9pZCAqV0tDb250ZW50Vmlld0tWT1RyYW5zZm9ybUNvbnRleHQg
PSAmV0tDb250ZW50Vmlld0tWT1RyYW5zZm9ybUNvbnRleHQ7CiAKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCisKK0BpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoSW1hZ2VBbmFseXNpcykgPFdL
SW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+CitAZW5kCisKKyNpZiBVU0Uo
UVVJQ0tfTE9PSykKKworQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChJbWFnZUFuYWx5c2lzUHJl
dmlldykgPFFMUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSwgUUxQcmV2aWV3Q29udHJvbGxlckRh
dGFTb3VyY2UsIFFMUHJldmlld0l0ZW1EYXRhUHJvdmlkZXI+CitAZW5kCisKKyNlbmRpZiAvLyBV
U0UoUVVJQ0tfTE9PSykKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CkBAIC0yOTEsNiArMzI0LDM4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBXS1NlbGVjdGlvbkRyYXdpbmdJbmZvJiBpbmZvKQogICAg
IHJldHVybiBzdHJlYW07CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKK2NsYXNz
IEltYWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEltYWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbj4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWZQdHI8SW1hZ2VBbmFseXNpc0dlc3R1cmVEZWZlcnJhbFRva2VuPiBjcmVhdGUoV0tD
b250ZW50VmlldyAqdmlldykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElt
YWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbih2aWV3KSk7CisgICAgfQorCisgICAgfklt
YWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbigpCisgICAgeworICAgICAgICBpZiAoYXV0
byB2aWV3ID0gbV92aWV3LmdldCgpKQorICAgICAgICAgICAgW3ZpZXcgX2VuZEltYWdlQW5hbHlz
aXNHZXN0dXJlRGVmZXJyYWw6bV9zaG91bGRQcmV2ZW50VGV4dFNlbGVjdGlvbiA/IFdlYktpdDo6
U2hvdWxkUHJldmVudEdlc3R1cmVzOjpZZXMgOiBXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0dXJl
czo6Tm9dOworICAgIH0KKworICAgIHZvaWQgc2V0U2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24o
KQorICAgIHsKKyAgICAgICAgbV9zaG91bGRQcmV2ZW50VGV4dFNlbGVjdGlvbiA9IHRydWU7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEltYWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbihX
S0NvbnRlbnRWaWV3ICp2aWV3KQorICAgICAgICA6IG1fdmlldyh2aWV3KQorICAgIHsKKyAgICB9
CisKKyAgICBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PiBtX3ZpZXc7CisgICAgYm9vbCBtX3No
b3VsZFByZXZlbnRUZXh0U2VsZWN0aW9uIHsgZmFsc2UgfTsKK307CisKKyNlbmRpZiAvLyBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiBjb25zdGV4cHIg
ZmxvYXQgaGlnaGxpZ2h0RGVsYXkgPSAwLjEyOwpAQCAtODEyLDExICs4NzcsMTEgQEAgLSAodm9p
ZClzZXRVcEludGVyYWN0aW9uCiAgICAgX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7
CiAgICAgW190b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFw
R2VzdHVyZXMgc2V0TmFtZTpAIkRlZmVycmVyIGZvciB0b3VjaCBlbmQgKHN5bnRoZXRpYyB0YXAp
Il07CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBfaW1hZ2VFeHRyYWN0aW9u
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0p
OwotICAgIFtfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0TmFt
ZTpAIkRlZmVycmVyIGZvciBpbWFnZSBleHRyYWN0aW9uIl07Ci0gICAgW19pbWFnZUV4dHJhY3Rp
b25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzZXRJbW1lZGlhdGVseUZhaWxzQWZ0ZXJUb3Vj
aEVuZDpZRVNdOwotICAgIFtfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgc2V0RW5hYmxlZDpzZWxmLl9pbWFnZUV4dHJhY3Rpb25FbmFibGVkXTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0
V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CisgICAgW19pbWFnZUFuYWx5c2lz
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0TmFtZTpAIkRlZmVycmVyIGZvciBpbWFnZSBh
bmFseXNpcyJdOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
IHNldEltbWVkaWF0ZWx5RmFpbHNBZnRlclRvdWNoRW5kOllFU107CisgICAgW19pbWFnZUFuYWx5
c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpXZWJLaXQ6OmlzTGl2ZVRl
eHRFbmFibGVkKCldOwogI2VuZGlmCiAKICAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5kZWZlcnJpbmdHZXN0dXJlcykgewpAQCAtOTI5LDggKzk5
NCw4IEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIF9pc0NoYW5naW5nRm9jdXMgPSBO
TzsKICAgICBfaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50ID0gTk87CiAKLSNpZiBVU0UoVUlDT05U
RVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgX2NvbnRleHRNZW51V2Fz
VHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gTk87CisjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpICYmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBfY29udGV4dE1lbnVXYXNUcmln
Z2VyZWRCeUltYWdlQW5hbHlzaXNUaW1lb3V0ID0gTk87CiAjZW5kaWYKIAogI2lmIEVOQUJMRShE
QVRBTElTVF9FTEVNRU5UKQpAQCAtOTQ1LDggKzEwMTAsOCBAQCAtICh2b2lkKXNldFVwSW50ZXJh
Y3Rpb24KICAgICBfcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAg
ICBfcGFnZS0+c2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKFtbW3NlbGYgd2luZG93XSBzY3JlZW5d
IGlzQ2FwdHVyZWRdKTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFtzZWxm
IF9zZXRVcEltYWdlRXh0cmFjdGlvbl07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAg
IFtzZWxmIF9zZXRVcEltYWdlQW5hbHlzaXNdOwogI2VuZGlmCiAKICAgICBfaGFzU2V0VXBJbnRl
cmFjdGlvbnMgPSBZRVM7CkBAIC05ODksOCArMTA1NCw4IEBAIC0gKHZvaWQpY2xlYW5VcEludGVy
YWN0aW9uCiAKICAgICBfdHJlYXRBc0NvbnRlbnRFZGl0YWJsZVVudGlsTmV4dEVkaXRvclN0YXRl
VXBkYXRlID0gTk87CiAKLSNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCi0gICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25U
aW1lb3V0ID0gTk87CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICBfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdlQW5hbHlzaXNUaW1lb3V0
ID0gTk87CiAjZW5kaWYKIAogICAgIGlmIChfaW50ZXJhY3Rpb25WaWV3c0NvbnRhaW5lclZpZXcp
IHsKQEAgLTExMTEsOCArMTE3Niw4IEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0aW9uCiAgICAg
X2RhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zID0gbmlsOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfdGVhckRvd25JbWFnZUV4dHJhY3Rpb25dOworI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbc2VsZiBfdGVhckRvd25JbWFnZUFuYWx5c2lz
XTsKICNlbmRpZgogCiAgICAgW3NlbGYgX3JlbW92ZUNvbnRhaW5lckZvckNvbnRleHRNZW51SGlu
dFByZXZpZXdzXTsKQEAgLTE4MjQsOCArMTg4OSw4IEBAIC0gKE5TQXJyYXk8V0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciAqPiAqKWRlZmVycmluZ0dlc3R1cmVzCiAgICAgYXV0byBnZXN0dXJl
cyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTo3XTsKICAgICBbZ2VzdHVyZXMg
YWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZXNdOwog
ICAgIFtnZXN0dXJlcyBhZGRPYmplY3RzRnJvbUFycmF5OnNlbGYuX3RvdWNoRW5kRGVmZXJyaW5n
R2VzdHVyZXNdOwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFtnZXN0dXJlcyBh
ZGRPYmplY3Q6X2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmdldCgp
XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW2dlc3R1cmVzIGFkZE9iamVjdDpf
aW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICNlbmRpZgog
ICAgIHJldHVybiBnZXN0dXJlczsKIH0KQEAgLTIyODksMTIgKzIzNTQsMTIgQEAgLSAoQk9PTCln
ZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVy
IHNob3VsZFJlY29nbmkKICAgICBpZiAoW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10gJiYgW290aGVyR2VzdHVyZVJlY29n
bml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkK
ICAgICAgICAgcmV0dXJuIFlFUzsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
IGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIpCi0gICAgICAgIHJldHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVl
VG9JbWFnZUV4dHJhY3Rpb246b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VBbmFseXNp
c0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyKQorICAgICAgICByZXR1cm4gIVtzZWxmIHNob3Vs
ZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VBbmFseXNpczpvdGhlckdlc3R1cmVSZWNvZ25pemVyXTsK
IAotICAgIGlmIChvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25EZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcikKLSAgICAgICAgcmV0dXJuICFbc2VsZiBzaG91bGREZWZl
ckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFjdGlvbjpnZXN0dXJlUmVjb2duaXplcl07CisgICAgaWYg
KG90aGVyR2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcikKKyAgICAgICAgcmV0dXJuICFbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVU
b0ltYWdlQW5hbHlzaXM6Z2VzdHVyZVJlY29nbml6ZXJdOwogI2VuZGlmCiAKICAgICBpZiAoaXNT
YW1lUGFpcihnZXN0dXJlUmVjb2duaXplciwgb3RoZXJHZXN0dXJlUmVjb2duaXplciwgX2hpZ2hs
aWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBfbG9uZ1ByZXNzR2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCkpKQpAQCAtMjM1MCw4ICsyNDE1LDggQEAgLSAoQk9PTClnZXN0dXJlUmVj
b2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJl
Y29nbmkKICAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVjb2duaXplciwgb3RoZXJHZXN0dXJl
UmVjb2duaXplciwgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBfZG91YmxlVGFw
R2VzdHVyZVJlY29nbml6ZXJGb3JEb3VibGVDbGljay5nZXQoKSkpCiAgICAgICAgIHJldHVybiBZ
RVM7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoZ2VzdHVyZVJlY29n
bml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIHx8IGdlc3R1cmVSZWNv
Z25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIpCisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyIHx8IGdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFn
ZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyKQogICAgICAgICByZXR1cm4gWUVTOwog
I2VuZGlmCiAKQEAgLTIzNjYsOCArMjQzMSw4IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6
KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZXF1aXJlCiAg
ICAgaWYgKFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplci5jbGFzc10pCiAgICAgICAgIHJldHVybiBbKFdLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVy
ZVJlY29nbml6ZXI6Z2VzdHVyZVJlY29nbml6ZXJdOwogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUp
ICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9
PSBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyICYmIG90aGVyR2VzdHVy
ZVJlY29nbml6ZXIgPT0gW19jb250ZXh0TWVudUludGVyYWN0aW9uIGdlc3R1cmVSZWNvZ25pemVy
Rm9yRmFpbHVyZVJlbGF0aW9uc2hpcHNdKQorI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUFu
YWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyICYmIG90aGVyR2VzdHVyZVJlY29nbml6ZXIg
PT0gW19jb250ZXh0TWVudUludGVyYWN0aW9uIGdlc3R1cmVSZWNvZ25pemVyRm9yRmFpbHVyZVJl
bGF0aW9uc2hpcHNdKQogICAgICAgICByZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTIzNzksOCAr
MjQ0NCw4IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIg
KilnZXN0dXJlUmVjb2duaXplciBzaG91bGRCZVJlcXVpCiAgICAgaWYgKFtnZXN0dXJlUmVjb2du
aXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQog
ICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJl
Y29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlUmVjb2duaXplcjpvdGhlckdlc3R1cmVSZWNvZ25p
emVyXTsKIAotI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKLSAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gW19jb250ZXh0TWVudUludGVyYWN0aW9u
IGdlc3R1cmVSZWNvZ25pemVyRm9yRmFpbHVyZVJlbGF0aW9uc2hpcHNdICYmIG90aGVyR2VzdHVy
ZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplcikK
KyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlm
IChnZXN0dXJlUmVjb2duaXplciA9PSBbX2NvbnRleHRNZW51SW50ZXJhY3Rpb24gZ2VzdHVyZVJl
Y29nbml6ZXJGb3JGYWlsdXJlUmVsYXRpb25zaGlwc10gJiYgb3RoZXJHZXN0dXJlUmVjb2duaXpl
ciA9PSBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplcikKICAgICAgICAgcmV0
dXJuIFlFUzsKICNlbmRpZgogCkBAIC0yNzU0LDggKzI4MTksOCBAQCAtIChCT09MKWhhc1NlbGVj
dGFibGVQb3NpdGlvbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKICAgICBpZiAoIVtzZWxmIGVuc3Vy
ZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdKQogICAgICAgICByZXR1cm4g
Tk87CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoX2VsZW1lbnRQZW5k
aW5nSW1hZ2VFeHRyYWN0aW9uICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlRWxlbWVudENv
bnRleHQgPT0gX2VsZW1lbnRQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uKQorI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKyAgICBpZiAoX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyAmJiBfcG9z
aXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09IF9lbGVtZW50UGVuZGluZ0lt
YWdlQW5hbHlzaXMpCiAgICAgICAgIHJldHVybiBZRVM7CiAjZW5kaWYKIApAQCAtMjgzMiw4ICsy
ODk3LDggQEAgLSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUp
Z2VzdHVyZSBzaG91bGRCZWdpbkF0UG9pbnQ6KENHUG8KICAgICAgICAgcmV0dXJuIE5POwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoX2VsZW1lbnRQZW5k
aW5nSW1hZ2VFeHRyYWN0aW9uICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlRWxlbWVudENv
bnRleHQgPT0gX2VsZW1lbnRQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uKQorI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKyAgICBpZiAoX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyAmJiBfcG9z
aXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09IF9lbGVtZW50UGVuZGluZ0lt
YWdlQW5hbHlzaXMpCiAgICAgICAgIHJldHVybiBZRVM7CiAjZW5kaWYKIApAQCAtMzc4NCw4ICsz
ODQ5LDggQEAgLSAoQk9PTCljYW5QZXJmb3JtQWN0aW9uRm9yV2ViVmlldzooU0VMKWFjdGlvbiB3
aXRoU2VuZGVyOihpZClzZW5kZXIKICAgICAgICAgcmV0dXJuIGJhc2VXcml0aW5nRGlyZWN0aW9u
ICE9IFdlYkNvcmU6OldyaXRpbmdEaXJlY3Rpb246OlJpZ2h0VG9MZWZ0OwogICAgIH0KIAotI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIGlmIChXZWJLaXQ6OmlzSW1hZ2VFeHRyYWN0
aW9uQWN0aW9uKGFjdGlvbikgJiYgIWVkaXRvclN0YXRlLmlzQ29udGVudEVkaXRhYmxlKQorI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoKGFjdGlvbiA9PSBAc2VsZWN0b3IoY2Fw
dHVyZVRleHRGcm9tQ2FtZXJhOikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfaW5zZXJ0VGV4dEZy
b21DYW1lcmE6KSkgJiYgIWVkaXRvclN0YXRlLmlzQ29udGVudEVkaXRhYmxlKQogICAgICAgICBy
ZXR1cm4gTk87CiAjZW5kaWYKIApAQCAtMzc5OSw3ICszODY0LDYgQEAgLSAoaWQpdGFyZ2V0Rm9y
QWN0aW9uOihTRUwpYWN0aW9uIHdpdGhTZW5kZXI6KGlkKXNlbmRlcgogICAgICAgICByZXR1cm4g
c2VsZi5zaG91bGRBbGxvd0FwcEhpZ2hsaWdodENyZWF0aW9uICYmIF9wYWdlLT5hcHBIaWdobGln
aHRzVmlzaWJpbGl0eSgpID8gc2VsZiA6IG5pbDsKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rv
cihjcmVhdGVIaWdobGlnaHRJbk5ld0dyb3VwV2l0aFJhbmdlOikpCiAgICAgICAgIHJldHVybiBz
ZWxmLnNob3VsZEFsbG93QXBwSGlnaGxpZ2h0Q3JlYXRpb24gJiYgIV9wYWdlLT5hcHBIaWdobGln
aHRzVmlzaWJpbGl0eSgpID8gc2VsZiA6IG5pbDsKLSAgICAKICNlbmRpZgogICAgIHJldHVybiBb
X3dlYlZpZXcgdGFyZ2V0Rm9yQWN0aW9uOmFjdGlvbiB3aXRoU2VuZGVyOnNlbmRlcl07CiB9CkBA
IC00NTc2LDggKzQ2NDAsOCBAQCAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1h
aW5GcmFtZQogICAgIC8vIGluIHRoZSBzYW1lIGxvY2F0aW9uIHRvIHRyaWdnZXIgZG91YmxlLXRh
cCByZWNvZ25pdGlvbi4KICAgICBbc2VsZiBfc2V0RG91YmxlVGFwR2VzdHVyZXNFbmFibGVkOk5P
XTsKICAgICBbX3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIF93a19jYW5jZWxd
OwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFtzZWxmIF9jYW5jZWxJbWFnZUV4
dHJhY3Rpb25dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbc2VsZiBfY2FuY2Vs
SW1hZ2VBbmFseXNpc107CiAjZW5kaWYKIH0KIApAQCAtNzYxMiwxNCArNzY3NiwxNCBAQCAtIChC
T09MKV9zaG91bGRVc2VMZWdhY3lTZWxlY3RQb3BvdmVyRGlzbWlzc2FsQmVoYXZpb3IKICAgICBy
ZXR1cm4gV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRGF0YUFjdGl2YXRpb24oKTsKIH0KIAot
I2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
IAotLSAoQk9PTClzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFjdGlvbjooVUlHZXN0
dXJlUmVjb2duaXplciAqKWdlc3R1cmUKKy0gKEJPT0wpc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9J
bWFnZUFuYWx5c2lzOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZQogewogICAgIHJldHVy
biBnZXN0dXJlID09IFtfdGV4dEludGVyYWN0aW9uQXNzaXN0YW50IGxvdXBlR2VzdHVyZV0gfHwg
Z2VzdHVyZS5fd2tfaXNUYXBBbmRBSGFsZiB8fCBnZXN0dXJlID09IFtfdGV4dEludGVyYWN0aW9u
QXNzaXN0YW50IGZvcmNlUHJlc3NHZXN0dXJlXTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2lmIEhB
VkUoUEFTVEVCT0FSRF9EQVRBX09XTkVSKQogCkBAIC03ODI4LDkgKzc4OTIsOSBAQCAtIChCT09M
KWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
ICopZGVmZXJyaW5nR2VzdAogICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfdG91Y2hFdmVu
dEdlc3R1cmVSZWNvZ25pemVyKQogICAgICAgICByZXR1cm4gTk87CiAKLSNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLSAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX2lt
YWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyKQotICAgICAgICByZXR1cm4g
W3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246Z2VzdHVyZVJlY29n
bml6ZXJdOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
cikKKyAgICAgICAgcmV0dXJuIFtzZWxmIHNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VBbmFs
eXNpczpnZXN0dXJlUmVjb2duaXplcl07CiAjZW5kaWYKIAogICAgIGF1dG8gbWF5RGVsYXlSZXNl
dE9mQ29udGFpbmluZ1N1YmdyYXBoID0gWyZdKFVJR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUp
IC0+IEJPT0wgewpAQCAtODcyNCw5ICs4Nzg4LDkgQEAgLSAodm9pZClfZHJhZ0ludGVyYWN0aW9u
OihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHByZXBhcmVGb3JTZXNzaW9uOihpZAog
CiAgICAgW3NlbGYgY2xlYW5VcERyYWdTb3VyY2VTZXNzaW9uU3RhdGVdOwogCi0gICAgYXV0byBw
cmVwYXJlRm9yU2Vzc2lvbiA9IFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+
KHNlbGYpLCBzZXNzaW9uID0gcmV0YWluUHRyKHNlc3Npb24pLCBjb21wbGV0aW9uID0gbWFrZUJs
b2NrUHRyKGNvbXBsZXRpb24pXSAoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiBw
cm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbikgeworICAgIGF1dG8gcHJlcGFyZUZvclNlc3Npb24g
PSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgc2Vzc2lvbiA9
IHJldGFpblB0cihzZXNzaW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
KV0gKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSBQcm9jZWVkV2l0aFRl
eHRTZWxlY3Rpb25JbkltYWdlKSB7CiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxm
LmdldCgpOwotICAgICAgICBpZiAoIXN0cm9uZ1NlbGYgfHwgcHJvY2VlZFdpdGhJbWFnZUV4dHJh
Y3Rpb24gPT0gV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbjo6WWVzKQorICAgICAg
ICBpZiAoIXN0cm9uZ1NlbGYgfHwgUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSA9PSBX
ZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6OlllcykKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBhdXRvIGRyYWdPcmlnaW4gPSBbc2Vzc2lvbiBsb2NhdGlvbklu
VmlldzpzdHJvbmdTZWxmLmdldCgpXTsKQEAgLTg3MzUsMTAgKzg3OTksMTAgQEAgLSAodm9pZClf
ZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHByZXBhcmVG
b3JTZXNzaW9uOihpZAogICAgICAgICBSRUxFQVNFX0xPRyhEcmFnQW5kRHJvcCwgIkRyYWcgc2Vz
c2lvbiByZXF1ZXN0ZWQ6ICVwIGF0IG9yaWdpbjogeyUuMGYsICUuMGZ9Iiwgc2Vzc2lvbi5nZXQo
KSwgZHJhZ09yaWdpbi54LCBkcmFnT3JpZ2luLnkpOwogICAgIH07CiAKLSNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfZG9BZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb246
cHJlcGFyZUZvclNlc3Npb25dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbc2Vs
ZiBfZG9BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOnByZXBhcmVGb3JTZXNzaW9uXTsKICNlbHNl
Ci0gICAgcHJlcGFyZUZvclNlc3Npb24oV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlv
bjo6Tm8pOworICAgIHByZXBhcmVGb3JTZXNzaW9uKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2Vs
ZWN0aW9uSW5JbWFnZTo6Tm8pOwogI2VuZGlmCiB9CiAKQEAgLTk2NDQsMzAgKzk3MDgsMzAgQEAg
LSAodm9pZClfd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQ6KFdlYkNvcmU6OlBy
b21pc2VkQXR0YWNobWVudEluZm8mJikKIAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCiAKLS0gKHZvaWQpX2VuZEltYWdlRXh0cmFjdGlvbkdlc3R1cmVEZWZlcnJhbDoo
V2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVyZXMpc2hvdWxkUHJldmVudEdlc3R1cmVzCistICh2
b2lkKV9lbmRJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsOihXZWJLaXQ6OlNob3VsZFByZXZl
bnRHZXN0dXJlcylzaG91bGRQcmV2ZW50R2VzdHVyZXMKIHsKLSAgICBbX2ltYWdlRXh0cmFjdGlv
bkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGVuZERlZmVycmFsOnNob3VsZFByZXZlbnRHZXN0
dXJlc107CisgICAgW19pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZW5k
RGVmZXJyYWw6c2hvdWxkUHJldmVudEdlc3R1cmVzXTsKIH0KIAotLSAodm9pZClfZG9BZnRlclBl
bmRpbmdJbWFnZUV4dHJhY3Rpb246KHZvaWQoXikoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0
cmFjdGlvbiBwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbikpYmxvY2sKKy0gKHZvaWQpX2RvQWZ0
ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczoodm9pZCheKShXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNl
bGVjdGlvbkluSW1hZ2UgUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSkpYmxvY2sKIHsK
LSAgICBpZiAoc2VsZi5oYXNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdCkKLSAgICAgICAg
X2FjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb24uYXBwZW5kKG1ha2VC
bG9ja1B0cihibG9jaykpOworICAgIGlmIChzZWxmLmhhc1BlbmRpbmdJbWFnZUFuYWx5c2lzUmVx
dWVzdCkKKyAgICAgICAgX2FjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lz
LmFwcGVuZChtYWtlQmxvY2tQdHIoYmxvY2spKTsKICAgICBlbHNlCi0gICAgICAgIGJsb2NrKFdl
YktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246Ok5vKTsKKyAgICAgICAgYmxvY2soV2Vi
S2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpObyk7CiB9CiAKLS0gKHZvaWQp
X2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb246KFdl
YktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24pcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rp
b24KKy0gKHZvaWQpX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFu
YWx5c2lzOihXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UpUHJvY2VlZFdp
dGhUZXh0U2VsZWN0aW9uSW5JbWFnZQogewotICAgIF9wZW5kaW5nSW1hZ2VFeHRyYWN0aW9uUmVx
dWVzdElkZW50aWZpZXIgPSBzdGQ6Om51bGxvcHQ7Ci0gICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VF
eHRyYWN0aW9uID0gc3RkOjpudWxsb3B0OwotICAgIGZvciAoYXV0byBibG9jayA6IHN0ZDo6ZXhj
aGFuZ2UoX2FjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb24sIHsgfSkp
Ci0gICAgICAgIGJsb2NrKHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKTsKKyAgICBfcGVuZGlu
Z0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfZWxl
bWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzID0gc3RkOjpudWxsb3B0OworICAgIGZvciAoYXV0byBi
bG9jayA6IHN0ZDo6ZXhjaGFuZ2UoX2FjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFu
YWx5c2lzLCB7IH0pKQorICAgICAgICBibG9jayhQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25Jbklt
YWdlKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogLSAodm9pZClzZXRVcFRleHRJbmRpY2F0b3I6KFJl
ZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yCiB7CkBAIC05NzMwLDYgKzk3
OTQsNDQ3IEBAIC0gKHZvaWQpc3RhcnRGYWRlT3V0CiAgICAgfV07CiB9CiAKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworLSAodm9pZClwcmVzZW50
VmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXJGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdlIGlt
YWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlQm91
bmRzOihDR1JlY3QpaW1hZ2VCb3VuZHMgYXBwZWFyYW5jZUFjdGlvbnM6KFFMUHJldmlld0NvbnRy
b2xsZXJGaXJzdFRpbWVBcHBlYXJhbmNlQWN0aW9ucylhcHBlYXJhbmNlQWN0aW9ucworeworICAg
IEFTU0VSVChfaGFzU2VsZWN0YWJsZVRleHRJbkltYWdlIHx8IF9oYXNWaXN1YWxTZWFyY2hSZXN1
bHRzKTsKKworICAgIEFTU0VSVCghX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyKTsKKyAg
ICBfdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUUxQ
cmV2aWV3Q29udHJvbGxlckluc3RhbmNlKCkgaW5pdF0pOworICAgIFtfdmlzdWFsU2VhcmNoUHJl
dmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW192aXN1YWxTZWFyY2hQcmV2
aWV3Q29udHJvbGxlciBzZXREYXRhU291cmNlOnNlbGZdOworICAgIFtfdmlzdWFsU2VhcmNoUHJl
dmlld0NvbnRyb2xsZXIgc2V0QXBwZWFyYW5jZUFjdGlvbnM6YXBwZWFyYW5jZUFjdGlvbnNdOwor
ICAgIFtfdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgc2V0TW9kYWxQcmVzZW50YXRpb25T
dHlsZTpVSU1vZGFsUHJlc2VudGF0aW9uT3ZlckZ1bGxTY3JlZW5dOworCisgICAgQVNTRVJUKCFf
dmlzdWFsU2VhcmNoUHJldmlld0ltYWdlKTsKKyAgICBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdl
ID0gaW1hZ2U7CisKKyAgICBBU1NFUlQoIV92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUpOworICAg
IF92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUgPSB0aXRsZTsKKworICAgIEFTU0VSVCghX3Zpc3Vh
bFNlYXJjaFByZXZpZXdJbWFnZVVSTCk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZVVS
TCA9IGltYWdlVVJMOworCisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZUJvdW5kcyA9IGlt
YWdlQm91bmRzOworCisgICAgVUlWaWV3Q29udHJvbGxlciAqY3VycmVudFByZXNlbnRpbmdWaWV3
Q29udHJvbGxlciA9IFtVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3Jl
ZW5QcmVzZW50YXRpb25Gcm9tVmlldzpzZWxmXTsKKyAgICBbY3VycmVudFByZXNlbnRpbmdWaWV3
Q29udHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X3Zpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21wbGV0aW9uOm5pbF07Cit9CisKKyNwcmFnbWEg
bWFyayAtIFFMUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZQorCistIChDR1JlY3QpcHJldmlld0Nv
bnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyIGZyYW1lRm9yUHJldmll
d0l0ZW06KGlkIDxRTFByZXZpZXdJdGVtPilpdGVtIGluU291cmNlVmlldzooVUlWaWV3ICoqKW91
dFZpZXcKK3sKKyAgICAqb3V0VmlldyA9IHNlbGY7CisgICAgcmV0dXJuIF92aXN1YWxTZWFyY2hQ
cmV2aWV3SW1hZ2VCb3VuZHM7Cit9CisKKy0gKFVJSW1hZ2UgKilwcmV2aWV3Q29udHJvbGxlcjoo
UUxQcmV2aWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgdHJhbnNpdGlvbkltYWdlRm9yUHJldmll
d0l0ZW06KGlkIDxRTFByZXZpZXdJdGVtPilpdGVtIGNvbnRlbnRSZWN0OihDR1JlY3QgKilvdXRD
b250ZW50UmVjdAoreworICAgICpvdXRDb250ZW50UmVjdCA9IENHUmVjdCB7IENHUG9pbnRaZXJv
LCBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlQm91bmRzLnNpemUgfTsKKyAgICByZXR1cm4gX3Zp
c3VhbFNlYXJjaFByZXZpZXdJbWFnZS5nZXQoKTsKK30KKworLSAodm9pZClwcmV2aWV3Q29udHJv
bGxlckRpZERpc21pc3M6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyCit7CisgICAg
QVNTRVJUKGNvbnRyb2xsZXIgPT0gX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyKTsKKyAg
ICBfdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuY2xlYXIoKTsKKyAgICBfdmlzdWFsU2Vh
cmNoUHJldmlld0ltYWdlLmNsZWFyKCk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdUaXRsZS5j
bGVhcigpOworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwuY2xlYXIoKTsKK30KKwor
I3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UKKworLSAoTlNJbnRl
Z2VyKW51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2aWV3Q29udHJvbGxlcjooUUxQcmV2aWV3Q29u
dHJvbGxlciAqKWNvbnRyb2xsZXIKK3sKKyAgICBBU1NFUlQoY29udHJvbGxlciA9PSBfdmlzdWFs
U2VhcmNoUHJldmlld0NvbnRyb2xsZXIpOworICAgIHJldHVybiAxOworfQorCistIChpZCA8UUxQ
cmV2aWV3SXRlbT4pcHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250
cm9sbGVyIHByZXZpZXdJdGVtQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4Cit7CisgICAgQVNTRVJU
KGNvbnRyb2xsZXIgPT0gX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyKTsKKyAgICBBU1NF
UlQoIWluZGV4KTsKKyAgICBhdXRvIGl0ZW0gPSBhZG9wdE5TKFtQQUw6OmFsbG9jUUxJdGVtSW5z
dGFuY2UoKSBpbml0V2l0aERhdGFQcm92aWRlcjpzZWxmIGNvbnRlbnRUeXBlOlVUVHlwZVRJRkYu
aWRlbnRpZmllciBwcmV2aWV3VGl0bGU6X3Zpc3VhbFNlYXJjaFByZXZpZXdUaXRsZS5nZXQoKV0p
OworICAgIGlmIChbaXRlbSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFByZXZpZXdP
cHRpb25zOildKSB7CisgICAgICAgIGF1dG8gcHJldmlld09wdGlvbnMgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXSk7CisgICAgICAgIGlm
IChfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlVVJMKQorICAgICAgICAgICAgW3ByZXZpZXdPcHRp
b25zIHNldE9iamVjdDpfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlVVJMLmdldCgpIGZvcktleTpA
ImltYWdlVVJMIl07CisgICAgICAgIGlmIChhdXRvIHBhZ2VVUkwgPSBVUkwgeyBVUkwgeyB9LCBf
cGFnZS0+Y3VycmVudFVSTCgpIH07ICFwYWdlVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFtw
cmV2aWV3T3B0aW9ucyBzZXRPYmplY3Q6cGFnZVVSTCBmb3JLZXk6QCJwYWdlVVJMIl07CisgICAg
ICAgIGlmIChbcHJldmlld09wdGlvbnMgY291bnRdKQorICAgICAgICAgICAgW2l0ZW0gc2V0UHJl
dmlld09wdGlvbnM6cHJldmlld09wdGlvbnMuZ2V0KCldOworICAgIH0KKyAgICByZXR1cm4gaXRl
bS5hdXRvcmVsZWFzZSgpOworfQorCisjcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdJdGVtRGF0YVBy
b3ZpZGVyCisKKy0gKE5TRGF0YSAqKXByb3ZpZGVEYXRhRm9ySXRlbTooUUxJdGVtICopaXRlbQor
eworICAgIEFTU0VSVChfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlKTsKKworICAgIGF1dG8gZGF0
YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlTXV0YWJsZShOVUxMLCAwKSk7CisgICAgYXV0byBkZXN0
aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoZGF0YS5n
ZXQoKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmllciwgMSwgTlVM
TCkpOworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9uLmdldCgpLCBb
X3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZSBDR0ltYWdlXSwgbmlsKTsKKyAgICBpZiAoIUNHSW1h
Z2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIHJldHVybiBkYXRhLmJyaWRnaW5nQXV0b3JlbGVhc2UoKTsKK30KKworI3By
YWdtYSBtYXJrIC0gV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlCisKKy0gKGJvb2wpYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hv
dWxkSW5jbHVkZVNob3dUZXh0QWN0aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8gKillbGVtZW50Cit7CisgICAgcmV0dXJuIFdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSAm
JiBfaGFzU2VsZWN0YWJsZVRleHRJbkltYWdlOworfQorCistICh2b2lkKWFjdGlvblNoZWV0QXNz
aXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3dUZXh0Rm9ySW1h
Z2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNT
dHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRzCit7CisgICAgW3Nl
bGYgcHJlc2VudFZpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyRm9ySW1hZ2U6aW1hZ2UgaW1h
Z2VVUkw6aW1hZ2VVUkwgdGl0bGU6dGl0bGUgaW1hZ2VCb3VuZHM6aW1hZ2VCb3VuZHMgYXBwZWFy
YW5jZUFjdGlvbnM6UUxQcmV2aWV3Q29udHJvbGxlckZpcnN0VGltZUFwcGVhcmFuY2VBY3Rpb25F
bmFibGVWaXN1YWxTZWFyY2hEYXRhRGV0ZWN0aW9uXTsKK30KKworLSAoYm9vbClhY3Rpb25TaGVl
dEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG91bGRJbmNs
dWRlTG9va1VwSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KWVsZW1lbnQKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojppc0xpdmVUZXh0RW5hYmxlZCgpICYmIF9o
YXNWaXN1YWxTZWFyY2hSZXN1bHRzOworfQorCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50
OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGxvb2tVcEltYWdlOihVSUltYWdl
ICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0
bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kcworeworICAgIFtzZWxmIHByZXNlbnRW
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlckZvckltYWdlOmltYWdlIGltYWdlVVJMOmltYWdl
VVJMIHRpdGxlOnRpdGxlIGltYWdlQm91bmRzOmltYWdlQm91bmRzIGFwcGVhcmFuY2VBY3Rpb25z
OlFMUHJldmlld0NvbnRyb2xsZXJGaXJzdFRpbWVBcHBlYXJhbmNlQWN0aW9uRW5hYmxlVmlzdWFs
U2VhcmNoTW9kZV07Cit9CisKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKKworI3ByYWdtYSBt
YXJrIC0gSW1hZ2UgRXh0cmFjdGlvbgorCistIChWS0ltYWdlQW5hbHl6ZXIgKilpbWFnZUFuYWx5
emVyCit7CisgICAgaWYgKCFfaW1hZ2VBbmFseXplcikKKyAgICAgICAgX2ltYWdlQW5hbHl6ZXIg
PSBhZG9wdE5TKFthbGxvY1ZLSW1hZ2VBbmFseXplckluc3RhbmNlKCkgaW5pdF0pOworICAgIHJl
dHVybiBfaW1hZ2VBbmFseXplci5nZXQoKTsKK30KKworLSAoQk9PTCloYXNQZW5kaW5nSW1hZ2VB
bmFseXNpc1JlcXVlc3QKK3sKKyAgICByZXR1cm4gISFfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1
ZXN0SWRlbnRpZmllcjsKK30KKworLSAodm9pZClfc2V0VXBJbWFnZUFuYWx5c2lzCit7CisgICAg
aWYgKCFXZWJLaXQ6OmlzTGl2ZVRleHRFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID0gc3RkOjpudWxsb3B0Owor
ICAgIF9pc1Byb2NlZWRpbmdXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPSBOTzsKKyAgICBfZWxl
bWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzID0gc3RkOjpudWxsb3B0OworICAgIF9pbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJl
Y29nbml6ZXIgYWxsb2NdIGluaXRXaXRoSW1hZ2VBbmFseXNpc0dlc3R1cmVEZWxlZ2F0ZTpzZWxm
XSk7CisgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplci5nZXQoKV07CisgICAgX2ltYWdlQW5hbHlzaXNUaW1lb3V0R2VzdHVyZVJlY29n
bml6ZXIgPSBhZG9wdE5TKFtbVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5p
dFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKGltYWdlQW5hbHlzaXNHZXN0dXJlRGlk
VGltZU91dDopXSk7CisgICAgW19pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVy
IHNldE1pbmltdW1QcmVzc0R1cmF0aW9uOjIuMF07CisgICAgW19pbWFnZUFuYWx5c2lzVGltZW91
dEdlc3R1cmVSZWNvZ25pemVyIHNldE5hbWU6QCJJbWFnZSBhbmFseXNpcyB0aW1lb3V0Il07Cisg
ICAgW19pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOnNl
bGZdOworICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lzVGltZW91
dEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBfaGFz
U2VsZWN0YWJsZVRleHRJbkltYWdlID0gTk87CisgICAgX2hhc1Zpc3VhbFNlYXJjaFJlc3VsdHMg
PSBOTzsKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkK
KyAgICBfY29udGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFibGVDb2RlLmNsZWFyKCk7CisjZW5kaWYg
Ly8gVVNFKFVJQ09OVEVYVE1FTlUpCit9CisKKy0gKHZvaWQpX3RlYXJEb3duSW1hZ2VBbmFseXNp
cworeworICAgIGlmICghV2ViS2l0Ojppc0xpdmVUZXh0RW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBbX2ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpu
aWxdOworICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lzR2Vz
dHVyZVJlY29nbml6ZXIuZ2V0KCldOworICAgIF9pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXIgPSBuaWw7CisgICAgW19pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyIHNl
dERlbGVnYXRlOm5pbF07CisgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2ltYWdl
QW5hbHlzaXNUaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworICAgIF9pbWFnZUFuYWx5
c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyID0gbmlsOworICAgIF9wZW5kaW5nSW1hZ2VBbmFs
eXNpc1JlcXVlc3RJZGVudGlmaWVyID0gc3RkOjpudWxsb3B0OworICAgIF9pc1Byb2NlZWRpbmdX
aXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPSBOTzsKKyAgICBfZWxlbWVudFBlbmRpbmdJbWFnZUFu
YWx5c2lzID0gc3RkOjpudWxsb3B0OworICAgIFtzdGQ6OmV4Y2hhbmdlKF9pbWFnZUFuYWx5emVy
LCBuaWwpIGNhbmNlbEFsbFJlcXVlc3RzXTsKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBfaGFz
U2VsZWN0YWJsZVRleHRJbkltYWdlID0gTk87CisgICAgX2hhc1Zpc3VhbFNlYXJjaFJlc3VsdHMg
PSBOTzsKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkK
KyAgICBfY29udGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFibGVDb2RlLmNsZWFyKCk7CisjZW5kaWYg
Ly8gVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgW3NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZv
cm1BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0
aW9uSW5JbWFnZTo6Tm9dOworfQorCistICh2b2lkKV9jYW5jZWxJbWFnZUFuYWx5c2lzCit7Cisg
ICAgW19pbWFnZUFuYWx5emVyIGNhbmNlbEFsbFJlcXVlc3RzXTsKKyAgICBSRUxFQVNFX0xPR19J
RihzZWxmLmhhc1BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdCwgSW1hZ2VzLCAiSW1hZ2UgYW5h
bHlzaXMgcmVxdWVzdCAlIiBQUkl1NjQgIiBjYW5jZWxsZWQuIiwgX3BlbmRpbmdJbWFnZUFuYWx5
c2lzUmVxdWVzdElkZW50aWZpZXItPnRvVUludDY0KCkpOworICAgIF9wZW5kaW5nSW1hZ2VBbmFs
eXNpc1JlcXVlc3RJZGVudGlmaWVyID0gc3RkOjpudWxsb3B0OworICAgIF9pc1Byb2NlZWRpbmdX
aXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPSBOTzsKKyAgICBfZWxlbWVudFBlbmRpbmdJbWFnZUFu
YWx5c2lzID0gc3RkOjpudWxsb3B0OworfQorCistIChSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVy
UmVxdWVzdD4pY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6KFZLQW5hbHlzaXNUeXBlcylhbmFs
eXNpc1R5cGVzIGltYWdlOihVSUltYWdlICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VV
UkwKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdE5TKFthbGxvY1ZLSW1hZ2VBbmFseXplclJl
cXVlc3RJbnN0YW5jZSgpIGluaXRXaXRoSW1hZ2U6aW1hZ2Ugb3JpZW50YXRpb246VktJbWFnZU9y
aWVudGF0aW9uVXAgcmVxdWVzdFR5cGU6YW5hbHlzaXNUeXBlc10pOworICAgIFtyZXF1ZXN0IHNl
dEltYWdlVVJMOmltYWdlVVJMXTsKKyAgICBbcmVxdWVzdCBzZXRQYWdlVVJMOltOU1VSTCBfd2Vi
X1VSTFdpdGhXVEZTdHJpbmc6X3BhZ2UtPmN1cnJlbnRVUkwoKV1dOworICAgIHJldHVybiByZXF1
ZXN0OworfQorCistIChSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyUmVxdWVzdD4pY3JlYXRlSW1h
Z2VBbmFseXNpc1JlcXVlc3Q6KFZLQW5hbHlzaXNUeXBlcylhbmFseXNpc1R5cGVzIGltYWdlOihV
SUltYWdlICopaW1hZ2UKK3sKKyAgICByZXR1cm4gW3NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1Jl
cXVlc3Q6YW5hbHlzaXNUeXBlcyBpbWFnZTppbWFnZSBpbWFnZVVSTDpfcG9zaXRpb25JbmZvcm1h
dGlvbi5pbWFnZVVSTF07Cit9CisKKy0gKEJPT0wpdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVz
dElkZW50aWZpZXI6KFdlYktpdDo6SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyKWlkZW50
aWZpZXIKK3sKKyAgICBpZiAoX3BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIg
PT0gaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFlFUzsKKworICAgIGlmICghc2VsZi5oYXNQ
ZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3QpIHsKKyAgICAgICAgLy8gT25seSBpbnZva2UgZGVm
ZXJyZWQgaW1hZ2UgYW5hbHlzaXMgYmxvY2tzIGlmIHRoZXJlIGlzIG5vIG9uZ29pbmcgcmVxdWVz
dDsgb3RoZXJ3aXNlLCB0aGlzIHdvdWxkCisgICAgICAgIC8vIGNhdXNlIHRoZXNlIGJsb2NrcyB0
byBiZSBpbnZva2VkIHRvbyBlYXJseSAoaS5lLiBpbiB0aGUgbWlkZGxlIG9mIHRoZSBuZXcgaW1h
Z2UgYW5hbHlzaXMgcmVxdWVzdCkuCisgICAgICAgIFtzZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9Q
ZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNl
bGVjdGlvbkluSW1hZ2U6Ok5vXTsKKyAgICB9CisKKyAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJ
bWFnZSBhbmFseXNpcyByZXF1ZXN0ICUiIFBSSXU2NCAiIGludmFsaWRhdGVkLiIsIGlkZW50aWZp
ZXIudG9VSW50NjQoKSk7CisgICAgcmV0dXJuIE5POworfQorCisjcHJhZ21hIG1hcmsgLSBXS0lt
YWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCisKKy0gKHZvaWQpcmVxdWVzdFRl
eHRSZWNvZ25pdGlvbjooTlNVUkwgKilpbWFnZVVSTCBpbWFnZURhdGE6KGNvbnN0IFdlYktpdDo6
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKWltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxlcjooQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYp
Y29tcGxldGlvbgoreworICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBXZWJLaXQ6OlNoYXJlYWJsZUJp
dG1hcDo6Y3JlYXRlKGltYWdlRGF0YSk7CisgICAgaWYgKCFpbWFnZUJpdG1hcCkgeworICAgICAg
ICBjb21wbGV0aW9uKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNn
SW1hZ2UgPSBpbWFnZUJpdG1hcC0+bWFrZUNHSW1hZ2UoKTsKKyAgICBpZiAoIWNnSW1hZ2UpIHsK
KyAgICAgICAgY29tcGxldGlvbih7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byBpbWFnZSA9IGFkb3B0TlMoW1tVSUltYWdlIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6Y2dJ
bWFnZS5nZXQoKV0pOworICAgIGlmICghaW1hZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbih7IH0p
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXF1ZXN0ID0gW3NlbGYgY3Jl
YXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVUZXh0IGltYWdlOmltYWdlLmdl
dCgpXTsKKyAgICBbW3NlbGYgaW1hZ2VBbmFseXplcl0gcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5n
ZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihb
Y29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbildIChWS0ltYWdlQW5hbHlzaXMgKnJlc3Vs
dCwgTlNFcnJvciAqKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbihXZWJLaXQ6Om1ha2VU
ZXh0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0KSk7CisgICAgfSkuZ2V0KCldOworfQorCistICh2
b2lkKWltYWdlQW5hbHlzaXNHZXN0dXJlRGlkQmVnaW46KFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBBU1NFUlQoV2ViS2l0Ojppc0xp
dmVUZXh0RW5hYmxlZCgpKTsKKworICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSBXZWJLaXQ6
OkltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKworICAgIFtfaW1h
Z2VBbmFseXplciBjYW5jZWxBbGxSZXF1ZXN0c107CisgICAgX3BlbmRpbmdJbWFnZUFuYWx5c2lz
UmVxdWVzdElkZW50aWZpZXIgPSByZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBfaXNQcm9jZWVkaW5n
V2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VB
bmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKworI2lmIFVTRShRVUlDS19MT09LKQorICAgIF9oYXNT
ZWxlY3RhYmxlVGV4dEluSW1hZ2UgPSBOTzsKKyAgICBfaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyA9
IE5POworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQorCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUp
CisgICAgX2NvbnRleHRNZW51Rm9yTWFjaGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOworI2VuZGlm
IC8vIFVTRShVSUNPTlRFWFRNRU5VKQorCisgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCByZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KFtnZXN0dXJlUmVj
b2duaXplciBsb2NhdGlvbkluVmlldzpzZWxmXSkgfTsKKyAgICByZXF1ZXN0LmluY2x1ZGVJbWFn
ZURhdGEgPSB0cnVlOworICAgIFtzZWxmIGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRl
OltyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2Vs
ZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpLCBnZXN0dXJlRGVmZXJyYWxUb2tl
biA9IFdlYktpdDo6SW1hZ2VBbmFseXNpc0dlc3R1cmVEZWZlcnJhbFRva2VuOjpjcmVhdGUoc2Vs
ZildIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9u
KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7Cisg
ICAgICAgIGlmICghW3N0cm9uZ1NlbGYgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50
aWZpZXI6cmVxdWVzdElkZW50aWZpZXJdKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGJvb2wgc2hvdWxkQW5hbHl6ZUltYWdlQXRMb2NhdGlvbiA9IGluZm9ybWF0aW9uLmlzSW1hZ2Ug
JiYgaW5mb3JtYXRpb24uaW1hZ2UgJiYgaW5mb3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dCAm
JiAhaW5mb3JtYXRpb24uaXNBbmltYXRlZEltYWdlOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYt
Pl9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyIHx8ICFzaG91bGRBbmFseXpl
SW1hZ2VBdExvY2F0aW9uKSB7CisgICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0
aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0
aFRleHRTZWxlY3Rpb25JbkltYWdlOjpOb107CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBhdXRvIGNnSW1hZ2UgPSBpbmZvcm1hdGlvbi5pbWFnZS0+bWFrZUNHSW1h
Z2VDb3B5KCk7CisgICAgICAgIGlmICghY2dJbWFnZSkgeworICAgICAgICAgICAgW3N0cm9uZ1Nl
bGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOldl
YktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9dOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBpbWFnZSA9IGFkb3B0TlMoW1tVSUlt
YWdlIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6Y2dJbWFnZS5nZXQoKV0pOworICAgICAgICBpZiAo
IWltYWdlKSB7CisgICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVy
Zm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxl
Y3Rpb25JbkltYWdlOjpOb107CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyBwcmVmbGlnaHQgZ2VzdHVy
ZSBpbml0aWF0ZWQgKHJlcXVlc3QgJSIgUFJJdTY0ICIpLiIsIHJlcXVlc3RJZGVudGlmaWVyLnRv
VUludDY0KCkpOworCisgICAgICAgIHN0cm9uZ1NlbGYtPl9lbGVtZW50UGVuZGluZ0ltYWdlQW5h
bHlzaXMgPSBpbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0OworCisgICAgICAgIGF1dG8g
cmVxdWVzdExvY2F0aW9uID0gaW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludDsKKyAgICAgICAgV2Vi
Q29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudENvbnRleHQgPSAqaW5mb3JtYXRpb24uaW1hZ2VF
bGVtZW50Q29udGV4dDsKKworICAgICAgICBhdXRvIHJlcXVlc3RGb3JUZXh0U2VsZWN0aW9uID0g
W3N0cm9uZ1NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVUZXh0
IGltYWdlOmltYWdlLmdldCgpXTsKKyAgICAgICAgYXV0byByZXF1ZXN0Rm9yQ29udGV4dE1lbnUg
PSBbc3Ryb25nU2VsZiBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDpWS0FuYWx5c2lzVHlwZVZp
c3VhbFNlYXJjaCB8IFZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZSBpbWFnZTppbWFn
ZS5nZXQoKV07CisKKyAgICAgICAgYXV0byB0ZXh0QW5hbHlzaXNTdGFydFRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKKyAgICAgICAgW1tzdHJvbmdTZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nl
c3NSZXF1ZXN0OnJlcXVlc3RGb3JUZXh0U2VsZWN0aW9uLmdldCgpIHByb2dyZXNzSGFuZGxlcjpu
aWwgY29tcGxldGlvbkhhbmRsZXI6W3JlcXVlc3RJZGVudGlmaWVyID0gV1RGTW92ZShyZXF1ZXN0
SWRlbnRpZmllciksIHdlYWtTZWxmLCBlbGVtZW50Q29udGV4dCwgcmVxdWVzdExvY2F0aW9uLCBy
ZXF1ZXN0Rm9yQ29udGV4dE1lbnUsIGdlc3R1cmVEZWZlcnJhbFRva2VuLCB0ZXh0QW5hbHlzaXNT
dGFydFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIG11dGFi
bGUgeworICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAg
ICAgICAgICBpZiAoIVtzdHJvbmdTZWxmIHZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVu
dGlmaWVyOnJlcXVlc3RJZGVudGlmaWVyXSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIEJPT0wgaGFzVGV4dFJlc3VsdHMgPSBbcmVzdWx0IGhhc1Jlc3VsdHNGb3JBbmFs
eXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlVGV4dF07CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhJ
bWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAocmVxdWVzdCAlIiBQ
Ukl1NjQgIjsgZm91bmQgdGV4dD8gJWQpIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gdGV4dEFu
YWx5c2lzU3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSwgcmVxdWVzdElkZW50aWZpZXIudG9VSW50
NjQoKSwgaGFzVGV4dFJlc3VsdHMpOworCisgICAgICAgICAgICBzdHJvbmdTZWxmLT5fcGFnZS0+
dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXZWJLaXQ6Om1ha2VUZXh0UmVjb2duaXRp
b25SZXN1bHQocmVzdWx0KSwgZWxlbWVudENvbnRleHQsIHJlcXVlc3RMb2NhdGlvbiwgW3JlcXVl
c3RJZGVudGlmaWVyID0gV1RGTW92ZShyZXF1ZXN0SWRlbnRpZmllciksIHdlYWtTZWxmLCBoYXNU
ZXh0UmVzdWx0cywgcmVxdWVzdEZvckNvbnRleHRNZW51LCBnZXN0dXJlRGVmZXJyYWxUb2tlbl0g
KFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IHVwZGF0ZVJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7Cisg
ICAgICAgICAgICAgICAgaWYgKCFbc3Ryb25nU2VsZiB2YWxpZGF0ZUltYWdlQW5hbHlzaXNSZXF1
ZXN0SWRlbnRpZmllcjpyZXF1ZXN0SWRlbnRpZmllcl0pCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAgICAgICAgIGlmICh1cGRhdGVSZXN1bHQgPT0gV2ViS2l0OjpUZXh0
UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OlRleHQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3Ry
b25nU2VsZi0+X2lzUHJvY2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSA9IFlFUzsKKyAg
ICAgICAgICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1B
ZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9u
SW5JbWFnZTo6WWVzXTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGdlc3R1cmVEZWZlcnJhbFRva2VuLT5zZXRTaG91bGRQ
cmV2ZW50VGV4dFNlbGVjdGlvbigpOworCisgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZVJlc3Vs
dCA9PSBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6RGF0YURldGVjdG9yKSB7
CisgICAgICAgICAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJm
b3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVj
dGlvbkluSW1hZ2U6Ok5vXTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGF1dG8gdmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFy
dFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICAgICAgICAgICAgICBbW3N0cm9uZ1Nl
bGYgaW1hZ2VBbmFseXplcl0gcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdEZvckNvbnRleHRNZW51Lmdl
dCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3JlcXVlc3RJZGVudGlm
aWVyID0gV1RGTW92ZShyZXF1ZXN0SWRlbnRpZmllciksIHdlYWtTZWxmLCBoYXNUZXh0UmVzdWx0
cywgdmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKnJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHN0
cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFbc3Ry
b25nU2VsZiB2YWxpZGF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjpyZXF1ZXN0SWRl
bnRpZmllcl0pCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyNpZiBVU0UoUVVJ
Q0tfTE9PSykKKyAgICAgICAgICAgICAgICAgICAgQk9PTCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRz
ID0gW3Jlc3VsdCBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBlczpWS0FuYWx5c2lzVHlwZVZpc3Vh
bFNlYXJjaF07CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HKEltYWdlcywgIkltYWdl
IGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBmIG1zIChyZXF1ZXN0ICUiIFBSSXU2NCAiOyBmb3Vu
ZCB2aXN1YWwgc2VhcmNoIHJlc3VsdHM/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHZp
c3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSwgcmVxdWVzdElkZW50
aWZpZXIudG9VSW50NjQoKSwgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk7CisjZWxzZQorICAgICAg
ICAgICAgICAgICAgICBVTlVTRURfUEFSQU0odmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWUp
OworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0IHx8IGVycm9yKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVy
Zm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxl
Y3Rpb25JbkltYWdlOjpOb107CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgICAgIH0KKworI2lmIFVTRShRVUlDS19MT09LKQorICAgICAgICAgICAgICAg
ICAgICBzdHJvbmdTZWxmLT5faGFzU2VsZWN0YWJsZVRleHRJbkltYWdlID0gaGFzVGV4dFJlc3Vs
dHM7CisgICAgICAgICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9oYXNWaXN1YWxTZWFyY2hSZXN1
bHRzID0gaGFzVmlzdWFsU2VhcmNoUmVzdWx0czsKKyNlbHNlCisgICAgICAgICAgICAgICAgICAg
IFVOVVNFRF9QQVJBTShoYXNUZXh0UmVzdWx0cyk7CisjZW5kaWYKKyNpZiBVU0UoVUlDT05URVhU
TUVOVSkKKyAgICAgICAgICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2NvbnRleHRNZW51Rm9yTWFj
aGluZVJlYWRhYmxlQ29kZSA9IFtyZXN1bHQgaGFzUmVzdWx0c0ZvckFuYWx5c2lzVHlwZXM6VktB
bmFseXNpc1R5cGVNYWNoaW5lUmVhZGFibGVDb2RlXSA/IHJlc3VsdC5tcmNNZW51IDogbmlsOwor
I2VuZGlmCisgICAgICAgICAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25z
VG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4
dFNlbGVjdGlvbkluSW1hZ2U6Ok5vXTsKKyAgICAgICAgICAgICAgICB9XTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9XTsKKyAgICB9IGZvclJlcXVlc3Q6cmVxdWVzdF07Cit9CisKKy0gKHZv
aWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRGYWlsOihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVj
b2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgW3NlbGYgX2VuZEltYWdlQW5hbHlz
aXNHZXN0dXJlRGVmZXJyYWw6V2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVyZXM6Ok5vXTsKK30K
KworLSAodm9pZClpbWFnZUFuYWx5c2lzR2VzdHVyZURpZFRpbWVPdXQ6KFdLSW1hZ2VBbmFseXNp
c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBpZiAoIXNlbGYu
X3Nob3VsZFVzZUNvbnRleHRNZW51cykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNlbGYu
aGFzUGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoZ2VzdHVyZVJlY29nbml6ZXIuc3RhdGUgIT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlQmVn
YW4pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbG9jYXRpb24gPSBXZWJDb3JlOjpyb3Vu
ZGVkSW50UG9pbnQoW2dlc3R1cmVSZWNvZ25pemVyIGxvY2F0aW9uSW5WaWV3OnNlbGZdKTsKKyAg
ICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QgeyBsb2NhdGlv
biB9OworICAgIHJlcXVlc3QuaW5jbHVkZUltYWdlRGF0YSA9IHRydWU7CisgICAgW3NlbGYgZG9B
ZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tD
b250ZW50Vmlldz4oc2VsZiksIGxvY2F0aW9uXSAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiBpbmZvKSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxm
LmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKCFpbmZvLmltYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmICgoIWluZm8uaXNJbWFnZU92ZXJsYXlUZXh0IHx8ICFpbmZvLmlzU2VsZWN0ZWQpICYmICFz
dHJvbmdTZWxmLT5faXNQcm9jZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gY2dJbWFnZSA9IGluZm8uaW1hZ2UtPm1ha2VD
R0ltYWdlQ29weSgpOworICAgICAgICBpZiAoIWNnSW1hZ2UpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgYXV0byBpbWFnZSA9IGFkb3B0TlMoW1tVSUltYWdlIGFsbG9jXSBpbml0V2l0
aENHSW1hZ2U6Y2dJbWFnZS5nZXQoKV0pOworICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIFJFTEVBU0VfTE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lz
IHRpbWVvdXQgZ2VzdHVyZSBpbml0aWF0ZWQuIik7CisgICAgICAgIC8vIEZJWE1FOiBXZSBuZWVk
IHRvIGltcGxlbWVudCBzb21lIHdheSB0byBjYWNoZSBpbWFnZSBhbmFseXNpcyByZXN1bHRzIHBl
ciBlbGVtZW50LCBzbyB0aGF0IHdlIGRvbid0IGVuZCB1cAorICAgICAgICAvLyBtYWtpbmcgcmVk
dW5kYW50IGltYWdlIGFuYWx5c2lzIHJlcXVlc3RzIGZvciB0aGUgc2FtZSBpbWFnZSBkYXRhLgor
CisgICAgICAgIGF1dG8gdmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWUgPSBNb25vdG9uaWNU
aW1lOjpub3coKTsKKyAgICAgICAgYXV0byByZXF1ZXN0Rm9yQ29udGV4dE1lbnUgPSBbc3Ryb25n
U2VsZiBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJj
aCB8IFZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZSBpbWFnZTppbWFnZS5nZXQoKV07
CisgICAgICAgIFtbc3Ryb25nU2VsZiBpbWFnZUFuYWx5emVyXSBwcm9jZXNzUmVxdWVzdDpyZXF1
ZXN0Rm9yQ29udGV4dE1lbnUuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFu
ZGxlcjpbd2Vha1NlbGYsIGxvY2F0aW9uLCB2aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0VGltZV0g
KFZLSW1hZ2VBbmFseXNpcyAqcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAg
YXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgICAgICBpZiAoIXN0cm9u
Z1NlbGYpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisjaWYgVVNFKFFVSUNLX0xPT0spCisg
ICAgICAgICAgICBCT09MIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMgPSBbcmVzdWx0IGhhc1Jlc3Vs
dHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNoXTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfTE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIGNvbXBsZXRlZCBpbiAlLjBm
IG1zIChmb3VuZCB2aXN1YWwgc2VhcmNoIHJlc3VsdHM/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpu
b3coKSAtIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSwgaGFz
VmlzdWFsU2VhcmNoUmVzdWx0cyk7CisgICAgICAgICAgICBzdHJvbmdTZWxmLT5faGFzU2VsZWN0
YWJsZVRleHRJbkltYWdlID0gWUVTOworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2hhc1Zpc3Vh
bFNlYXJjaFJlc3VsdHMgPSBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzOworI2Vsc2UKKyAgICAgICAg
ICAgIFVOVVNFRF9QQVJBTSh2aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0VGltZSk7CisjZW5kaWYK
KworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2NvbnRl
eHRNZW51Rm9yTWFjaGluZVJlYWRhYmxlQ29kZSA9IFtyZXN1bHQgaGFzUmVzdWx0c0ZvckFuYWx5
c2lzVHlwZXM6VktBbmFseXNpc1R5cGVNYWNoaW5lUmVhZGFibGVDb2RlXSA/IHJlc3VsdC5tcmNN
ZW51IDogbmlsOworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2NvbnRleHRNZW51V2FzVHJpZ2dl
cmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCA9IFlFUzsKKyAgICAgICAgICAgIFtzdHJvbmdTZWxm
LT5fY29udGV4dE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExvY2F0aW9uOmxvY2F0aW9u
XTsKKyNlbHNlCisgICAgICAgICAgICBVTlVTRURfUEFSQU0obG9jYXRpb24pOworI2VuZGlmCisg
ICAgICAgIH1dOworICAgIH0gZm9yUmVxdWVzdDpyZXF1ZXN0XTsKK30KKworLSAodm9pZClfaW5z
ZXJ0VGV4dEZyb21DYW1lcmFGb3JXZWJWaWV3OihpZClzZW5kZXIKK3sKKyAgICBbc3VwZXIgX2lu
c2VydFRleHRGcm9tQ2FtZXJhOnNlbmRlcl07Cit9CisKKy0gKHZvaWQpY2FwdHVyZVRleHRGcm9t
Q2FtZXJhRm9yV2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgW3N1cGVyIGNhcHR1cmVUZXh0RnJv
bUNhbWVyYTpzZW5kZXJdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNBZnRlci5tbT4KICNlbmRpZgpAQCAtMTAy
MzYsMTAgKzEwNzQxLDEwIEBAIC0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4
dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uCiAKIC0gKHZvaWQpX2Nv
bnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0
aW9uIGNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiBjb21w
bGV0aW9uOih2b2lkKF4pKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopKWNvbXBsZXRpb24K
IHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBCT09MIHRyaWdnZXJlZEJ5SW1h
Z2VFeHRyYWN0aW9uVGltZW91dCA9IHN0ZDo6ZXhjaGFuZ2UoX2NvbnRleHRNZW51V2FzVHJpZ2dl
cmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0LCBOTyk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQorICAgIEJPT0wgdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCA9IHN0ZDo6ZXhj
aGFuZ2UoX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCwgTk8p
OwogI2Vsc2UKLSAgICBCT09MIHRyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dCA9IE5P
OworICAgIEJPT0wgdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCA9IE5POwogI2VuZGlm
CiAKICAgICBpZiAoIV93ZWJWaWV3KQpAQCAtMTAyNDgsOSArMTA3NTMsOSBAQCAtICh2b2lkKV9j
b250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFj
dGlvbiBjb25maWd1cgogICAgIGlmICghc2VsZi53ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX2xvbmdQ
cmVzc0FjdGlvbnNFbmFibGVkKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbihuaWwpOwogCi0g
ICAgYXV0byBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUgPSBbd2Vha1NlbGYgPSBXZWFrT2Jq
Q1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgaW50ZXJhY3Rpb24gPSByZXRhaW5QdHIoaW50ZXJh
Y3Rpb24pLCBjb21wbGV0aW9uID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb24pLCB0cmlnZ2VyZWRC
eUltYWdlRXh0cmFjdGlvblRpbWVvdXRdIChXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0
aW9uIHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKSB7CisgICAgYXV0byBnZXRDb25maWd1cmF0
aW9uQW5kQ29udGludWUgPSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3Pihz
ZWxmKSwgaW50ZXJhY3Rpb24gPSByZXRhaW5QdHIoaW50ZXJhY3Rpb24pLCBjb21wbGV0aW9uID0g
bWFrZUJsb2NrUHRyKGNvbXBsZXRpb24pLCB0cmlnZ2VyZWRCeUltYWdlQW5hbHlzaXNUaW1lb3V0
XSAoV2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlIFByb2NlZWRXaXRoVGV4
dFNlbGVjdGlvbkluSW1hZ2UpIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYu
Z2V0KCk7Ci0gICAgICAgIGlmICghc3Ryb25nU2VsZiB8fCBwcm9jZWVkV2l0aEltYWdlRXh0cmFj
dGlvbiA9PSBXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uOjpZZXMpIHsKKyAgICAg
ICAgaWYgKCFzdHJvbmdTZWxmIHx8IFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPT0g
V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpZZXMpIHsKICAgICAgICAg
ICAgIGNvbXBsZXRpb24obmlsKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MTAyNjQsNyArMTA3NjksNyBAQCAtICh2b2lkKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNv
bnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cgogICAgICAgICBXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QgeyBXZWJDb3JlOjpyb3Vu
ZGVkSW50UG9pbnQoW2ludGVyYWN0aW9uIGxvY2F0aW9uSW5WaWV3OnN0cm9uZ1NlbGYuZ2V0KCld
KSB9OwogICAgICAgICByZXF1ZXN0LmluY2x1ZGVTbmFwc2hvdCA9IHRydWU7CiAgICAgICAgIHJl
cXVlc3QuaW5jbHVkZUxpbmtJbmRpY2F0b3IgPSB0cnVlOwotICAgICAgICByZXF1ZXN0LmRpc2Fs
bG93VXNlckFnZW50U2hhZG93Q29udGVudCA9IHRyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGlt
ZW91dDsKKyAgICAgICAgcmVxdWVzdC5kaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgPSB0
cmlnZ2VyZWRCeUltYWdlQW5hbHlzaXNUaW1lb3V0OwogICAgICAgICByZXF1ZXN0LmxpbmtJbmRp
Y2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucyA9ICFbc3Ryb25nU2VsZiBfc2hvdWxkVXNlQ29u
dGV4dE1lbnVzXTsKIAogICAgICAgICBbc3Ryb25nU2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1h
dGlvblVwZGF0ZTpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzdHJvbmdT
ZWxmLmdldCgpKSwgY29tcGxldGlvbl0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24pIHsKQEAgLTEwMjc1LDEwICsxMDc4MCwxMCBAQCAtICh2b2lkKV9jb250ZXh0TWVu
dUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25m
aWd1cgogICAgICAgICB9IGZvclJlcXVlc3Q6cmVxdWVzdF07CiAgICAgfTsKIAotI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFtzZWxmIF9kb0FmdGVyUGVuZGluZ0ltYWdlRXh0cmFj
dGlvbjpnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWVdOworI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICBbc2VsZiBfZG9BZnRlclBlbmRpbmdJbWFnZUFuYWx5c2lzOmdldENvbmZpZ3Vy
YXRpb25BbmRDb250aW51ZV07CiAjZWxzZQotICAgIGdldENvbmZpZ3VyYXRpb25BbmRDb250aW51
ZShXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uOjpObyk7CisgICAgZ2V0Q29uZmln
dXJhdGlvbkFuZENvbnRpbnVlKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFn
ZTo6Tm8pOwogI2VuZGlmCiB9CiAKQEAgLTEwNDAwLDEwICsxMDkwNSwxMCBAQCAtICh2b2lkKWNv
bnRpbnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbjoodm9pZCheKShVSUNvbnRleHRNZW51Q29uZmln
dXJhdGlvbiAqKSljbwogCiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxl
bWVudEFjdGlvbiAqPj4gZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50ID0gW3N0cm9uZ1NlbGYt
Pl9hY3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6ZWxlbWVu
dEluZm8uZ2V0KCldOwogICAgICAgICAgICAgICAgIGF1dG8gYWN0aW9ucyA9IG1lbnVFbGVtZW50
c0Zyb21EZWZhdWx0QWN0aW9ucyhkZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1lbnRJ
bmZvKTsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgICAgICAgICBpZiAo
VUlNZW51ICppbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVudSA9IHN0cm9uZ1NlbGYtPl9pbWFnZUV4
dHJhY3Rpb25Db250ZXh0TWVudS5nZXQoKSkKLSAgICAgICAgICAgICAgICAgICAgW2FjdGlvbnMg
YWRkT2JqZWN0OmltYWdlRXh0cmFjdGlvbkNvbnRleHRNZW51XTsKLSNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgICAgICAg
ICAgICAgaWYgKFVJTWVudSAqbWVudSA9IHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudUZvck1hY2hp
bmVSZWFkYWJsZUNvZGUuZ2V0KCkpCisgICAgICAgICAgICAgICAgICAgIFthY3Rpb25zIGFkZE9i
amVjdDptZW51XTsKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFtVSU1lbnUgbWVudVdpdGhUaXRsZTpzdHJvbmdTZWxmLT5fcG9zaXRpb25J
bmZvcm1hdGlvbi50aXRsZSBjaGlsZHJlbjphY3Rpb25zXTsKICAgICAgICAgICAgIH07CiAKQEAg
LTEwNjY3LDkgKzExMTcyLDkgQEAgLSAodm9pZCljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNv
bnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiB3aWxsRW5kRm8KICAgICBfY29udGV4
dE1lbnVIYXNSZXF1ZXN0ZWRMZWdhY3lEYXRhID0gTk87CiAgICAgX2NvbnRleHRNZW51RWxlbWVu
dEluZm8gPSBudWxscHRyOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgX2lt
YWdlRXh0cmFjdGlvbkNvbnRleHRNZW51LmNsZWFyKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIF9jb250ZXh0TWVu
dUZvck1hY2hpbmVSZWFkYWJsZUNvZGUuY2xlYXIoKTsKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCiAKICAgICBbYW5pbWF0b3IgYWRkQ29tcGxldGlvbjpbd2Vha1NlbGYgPSBXZWFr
T2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0gKCkgewogICAgICAgICBhdXRvIHN0cm9uZ1Nl
bGYgPSB3ZWFrU2VsZi5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjVlNjk1MGU0Y2QxZDIzZjA2NmNlNjViZjdlNTY5NjRjYjAwNzE1MwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwor
I2luY2x1ZGUgPFVJS2l0L1VJS2l0Lmg+CisKK0BjbGFzcyBXS0ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplcjsKKworQHByb3RvY29sIFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVy
RGVsZWdhdGUgPFVJR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4KKy0gKHZvaWQpaW1hZ2VBbmFs
eXNpc0dlc3R1cmVEaWRCZWdpbjooV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgKiln
ZXN0dXJlOworLSAodm9pZClpbWFnZUFuYWx5c2lzR2VzdHVyZURpZEZhaWw6KFdLSW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZTsKK0BlbmQKKworQGludGVyZmFjZSBXS0lt
YWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciA6IFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6
ZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW1hZ2VBbmFseXNpc0dlc3R1cmVEZWxlZ2F0
ZTooVUlWaWV3IDxXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPiAqKWRl
bGVnYXRlOworCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDViNmY1OWUzMmFiODI0MTJlNjM3MjQ3MGY3NmQyZTRjNTJkODAyNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplci5tbQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmgiCisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKK0Bp
bXBsZW1lbnRhdGlvbiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciB7CisgICAgX193
ZWFrIFVJVmlldyA8V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKl9p
bWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZTsKK30KKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoSW1hZ2VBbmFseXNpc0dlc3R1cmVEZWxlZ2F0ZTooVUlWaWV3IDxXS0ltYWdl
QW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPiAqKWRlbGVnYXRlCit7CisgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKyAgICBzZWxm
LmRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgc2VsZi5taW5pbXVtUHJlc3NEdXJhdGlvbiA9IDAu
MTsKKyAgICBzZWxmLmFsbG93YWJsZU1vdmVtZW50ID0gMDsKKyAgICBzZWxmLm5hbWUgPSBAIklt
YWdlIGFuYWx5c2lzIjsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzZXRTdGF0ZToo
VUlHZXN0dXJlUmVjb2duaXplclN0YXRlKXN0YXRlCit7CisgICAgYXV0byBwcmV2aW91c1N0YXRl
ID0gc2VsZi5zdGF0ZTsKKyAgICBzdXBlci5zdGF0ZSA9IHN0YXRlOworCisgICAgYXV0byBuZXdT
dGF0ZSA9IHNlbGYuc3RhdGU7CisgICAgaWYgKHByZXZpb3VzU3RhdGUgPT0gbmV3U3RhdGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChuZXdTdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVy
U3RhdGVCZWdhbikKKyAgICAgICAgW19pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxl
Z2F0ZSBpbWFnZUFuYWx5c2lzR2VzdHVyZURpZEJlZ2luOnNlbGZdOworICAgIGVsc2UgaWYgKG5l
d1N0YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUZhaWxlZCkKKyAgICAgICAgW19pbWFn
ZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSBpbWFnZUFuYWx5c2lzR2VzdHVyZURp
ZEZhaWw6c2VsZl07Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOWRhMGEwZTMwYzZlNmI5ZGYzOWZiYzMw
OWFjZjBkYzk3ZTkxYmQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLQotI2luY2x1ZGUgPFVJS2l0L1VJS2l0Lmg+Ci0KLUBjbGFzcyBXS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyOwotCi1AcHJvdG9jb2wgV0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplckRlbGVnYXRlIDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdh
dGU+Ci0tICh2b2lkKWltYWdlRXh0cmFjdGlvbkdlc3R1cmVEaWRCZWdpbjooV0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmU7Ci0tICh2b2lkKWltYWdlRXh0cmFjdGlv
bkdlc3R1cmVEaWRGYWlsOihXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZTsKLUBlbmQKLQotQGludGVyZmFjZSBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyIDogVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcgotCi0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhJbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8V0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPiAqKWRlbGVnYXRlOwotCi1AZW5kCi0KLSNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSW1h
Z2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEwZTgzNDMyMGNmOTFmMDJkNTRhOTk0ZTc3NTE1MzE0YmI0OWE3YjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0KKysrIC9kZXYv
bnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIldLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCIKLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotCi1AaW1wbGVt
ZW50YXRpb24gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB7Ci0gICAgX193ZWFr
IFVJVmlldyA8V0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPiAqX2lt
YWdlRXh0cmFjdGlvbkRlbGVnYXRlOwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8V0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplckRlbGVnYXRlPiAqKWRlbGVnYXRlCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtz
dXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBfaW1hZ2VFeHRyYWN0aW9u
RGVsZWdhdGUgPSBkZWxlZ2F0ZTsKLSAgICBzZWxmLmRlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAg
c2VsZi5taW5pbXVtUHJlc3NEdXJhdGlvbiA9IDAuMTsKLSAgICBzZWxmLmFsbG93YWJsZU1vdmVt
ZW50ID0gMDsKLSAgICBzZWxmLm5hbWUgPSBAIkltYWdlIGV4dHJhY3Rpb24iOwotICAgIHJldHVy
biBzZWxmOwotfQotCi0tICh2b2lkKXNldFN0YXRlOihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUp
c3RhdGUKLXsKLSAgICBhdXRvIHByZXZpb3VzU3RhdGUgPSBzZWxmLnN0YXRlOwotICAgIHN1cGVy
LnN0YXRlID0gc3RhdGU7Ci0KLSAgICBhdXRvIG5ld1N0YXRlID0gc2VsZi5zdGF0ZTsKLSAgICBp
ZiAocHJldmlvdXNTdGF0ZSA9PSBuZXdTdGF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KG5ld1N0YXRlID09IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUJlZ2FuKQotICAgICAgICBbX2lt
YWdlRXh0cmFjdGlvbkRlbGVnYXRlIGltYWdlRXh0cmFjdGlvbkdlc3R1cmVEaWRCZWdpbjpzZWxm
XTsKLSAgICBlbHNlIGlmIChuZXdTdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWls
ZWQpCi0gICAgICAgIFtfaW1hZ2VFeHRyYWN0aW9uRGVsZWdhdGUgaW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZURpZEZhaWw6c2VsZl07Ci19Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA4OTQ0MmNkOTIzMzI2NGQwOWJl
MGUzODBjYzY2MDEzZjNkZDkyMGFmLi5kZDdiNDk3YWE2NGJmN2EyM2VlZjE4NDg2ZWJjYjQ0M2Ez
NTg3MWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMuaApAQCAtMTMwLDkgKzEzMCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRvbmVXaXRo
S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5k
bGVkKSBvdmVycmlkZTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZvaWQg
cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21w
dXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJM
LCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmLCBTaGFy
ZWFibGVCaXRtYXAmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQ
cm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCBjNGMwNTRmZDVkYjNmN2FjODc4Zjk4
ZDMxZWQ5OTJmNDU4YTAxMjgzLi5jMmRlOGQ2ZWE3YzBiY2FmYTA5MTRjMWY1MmFlNGQ2NDVkZjg2
OWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tCkBAIC00NzgsMTYgKzQ3OCwxNiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0
aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sCiAgICAg
bV9pbXBsLT5kb25lV2l0aEtleUV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCksIGV2ZW50V2FzSGFu
ZGxlZCk7CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+
JiYgY29tcGxldGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRp
b24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+
JiYgY29tcGxldGlvbikKIHsKLSAgICBtX2ltcGwtPnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oaW1h
Z2VVUkwsIGltYWdlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uKSk7CisgICAgbV9pbXBsLT5yZXF1
ZXN0VGV4dFJlY29nbml0aW9uKGltYWdlVVJMLCBpbWFnZURhdGEsIFdURk1vdmUoY29tcGxldGlv
bikpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29u
c3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVh
YmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uKQogewotICAgIG1faW1wbC0+Y29tcHV0ZUNhblJldmVhbEltYWdlKGltYWdlVVJM
LCBpbWFnZUJpdG1hcCwgV1RGTW92ZShjb21wbGV0aW9uKSk7CisgICAgbV9pbXBsLT5jb21wdXRl
SGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29t
cGxldGlvbikpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzU4MDJkYjgyYzYwYzQ3MTgxOTljNDg2ZDQ1
ODdmY2E4YTc4Mjg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltYWdlRXh0cmFjdGlvblByZXZpZXdD
b250cm9sbGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNU
SU9OKQotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci1jbGFzcyBXZWJQYWdlUHJveHk7Ci19Ci0KLUBjbGFzcyBRTFByZXZpZXdQYW5lbDsK
LQotQGludGVyZmFjZSBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyIDogTlNPYmpl
Y3QKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Jilw
YWdlIGltYWdlRGF0YTooTlNEYXRhICopZGF0YSB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFn
ZVVSTDooTlNVUkwgKilpbWFnZVVSTDsKLS0gKHZvaWQpYmVnaW5Db250cm9sOihRTFByZXZpZXdQ
YW5lbCAqKXBhbmVsOwotLSAoQk9PTClpc0NvbnRyb2xsaW5nOihRTFByZXZpZXdQYW5lbCAqKXBh
bmVsOwotLSAodm9pZCllbmRDb250cm9sOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsOwotLSAodm9p
ZCljbG9zZVBhbmVsSWZOZWNlc3Nhcnk7Ci1AZW5kCi0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxl
ci5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjg0YzNkZTBmZjJhYzk4YWRhZTk0
YWVmYzgwYTJmZDBmNDAzNWJlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25Q
cmV2aWV3Q29udHJvbGxlci5tbQorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXS0ltYWdlRXh0cmFjdGlvblBy
ZXZpZXdDb250cm9sbGVyLmgiCi0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgUExB
VEZPUk0oTUFDKQotCi0jaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgPHBhbC9tYWMv
UXVpY2tMb29rVUlTb2Z0TGluay5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi1AaW50
ZXJmYWNlIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIgKCkgPFFMUHJldmlld1Bh
bmVsRGVsZWdhdGUsIFFMUHJldmlld1BhbmVsRGF0YVNvdXJjZT4KLUBlbmQKLQotQGltcGxlbWVu
dGF0aW9uIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIgewotICAgIFJldGFpblB0
cjxRTEl0ZW0+IF9pdGVtOwotICAgIFJldGFpblB0cjxOU0RhdGE+IF9pbWFnZURhdGE7Ci19Ci0K
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdl
IGltYWdlRGF0YTooTlNEYXRhICopaW1hZ2VEYXRhIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGlt
YWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBfaW1hZ2VEYXRhID0gaW1hZ2VEYXRhOwot
ICAgIF9pdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1FMSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhE
YXRhUHJvdmlkZXI6KGlkKXNlbGYgY29udGVudFR5cGU6VVRUeXBlUE5HIHByZXZpZXdUaXRsZTp0
aXRsZV0pOwotICAgIGlmIChbX2l0ZW0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRQ
cmV2aWV3T3B0aW9uczopXSkgewotICAgICAgICBhdXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHRO
UyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml0pOwotICAg
ICAgICBpZiAoaW1hZ2VVUkwpCi0gICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0
OmltYWdlVVJMIGZvcktleTpAImltYWdlVVJMIl07Ci0gICAgICAgIGlmIChOU1VSTCAqcGFnZVVS
TCA9IFVSTCB7IFVSTCB7IH0sIHBhZ2UuY3VycmVudFVSTCgpIH0pCi0gICAgICAgICAgICBbcHJl
dmlld09wdGlvbnMgc2V0T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVSTCJdOwotICAgICAg
ICBbX2l0ZW0gc2V0UHJldmlld09wdGlvbnM6cHJldmlld09wdGlvbnMuZ2V0KCldOwotICAgIH0K
LQotICAgIHJldHVybiBzZWxmOwotfQotCi0tICh2b2lkKWJlZ2luQ29udHJvbDooUUxQcmV2aWV3
UGFuZWwgKilwYW5lbAotewotICAgIHBhbmVsLmRhdGFTb3VyY2UgPSBzZWxmOwotICAgIHBhbmVs
LmRlbGVnYXRlID0gc2VsZjsKLX0KLQotLSAodm9pZCllbmRDb250cm9sOihRTFByZXZpZXdQYW5l
bCAqKXBhbmVsCi17Ci0gICAgaWYgKHBhbmVsLmRhdGFTb3VyY2UgPT0gc2VsZikKLSAgICAgICAg
cGFuZWwuZGF0YVNvdXJjZSA9IG5pbDsKLQotICAgIGlmIChwYW5lbC5kZWxlZ2F0ZSA9PSBzZWxm
KQotICAgICAgICBwYW5lbC5kZWxlZ2F0ZSA9IG5pbDsKLX0KLQotLSAodm9pZCljbG9zZVBhbmVs
SWZOZWNlc3NhcnkKLXsKLSAgICBpZiAoIVBBTDo6aXNRdWlja0xvb2tVSUZyYW1ld29ya0F2YWls
YWJsZSgpIHx8ICFbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1Bh
bmVsRXhpc3RzXSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGF1dG8gcGFuZWwgPSBbUEFM
OjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1BhbmVsXTsgW3NlbGYgaXND
b250cm9sbGluZzpwYW5lbF0pCi0gICAgICAgIFtwYW5lbCBjbG9zZV07Ci19Ci0KLS0gKEJPT0wp
aXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAotewotICAgIHJldHVybiBwYW5l
bC5kYXRhU291cmNlID09IHNlbGYgJiYgcGFuZWwuZGVsZWdhdGUgPT0gc2VsZjsKLX0KLQotI3By
YWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRlbURhdGFQcm92aWRlcgotCi0tIChOU0RhdGEgKilwcm92
aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAqKWl0ZW0KLXsKLSAgICBBU1NFUlQoaXRlbSA9PSBfaXRl
bSk7Ci0gICAgcmV0dXJuIF9pbWFnZURhdGEuZ2V0KCk7Ci19Ci0KLSNwcmFnbWEgbWFyayAtIFFM
UHJldmlld1BhbmVsRGF0YVNvdXJjZQotCi0tIChOU0ludGVnZXIpbnVtYmVyT2ZQcmV2aWV3SXRl
bXNJblByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAotewotICAgIHJldHVybiAx
OwotfQotCi0tIChpZCA8UUxQcmV2aWV3SXRlbT4pcHJldmlld1BhbmVsOihRTFByZXZpZXdQYW5l
bCAqKXBhbmVsIHByZXZpZXdJdGVtQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4Ci17Ci0gICAgQVNT
RVJUKCFpbmRleCk7Ci0gICAgcmV0dXJuIF9pdGVtLmdldCgpOwotfQotCi0jaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0ltYWdlRXh0cmFjdGlv
blByZXZpZXdDb250cm9sbGVyQWRkaXRpb25zLm1tPgotI2VuZGlmCi0KLUBlbmQKLQotI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmll
d0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2U5N2IzYTdhNzg4MmEwNzRmZDQ0YjRlN2FhZTg3
NTU4ZGE4OTZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZVByb3h5OworfQorCitAY2xhc3MgUUxQcmV2aWV3
UGFuZWw7CisKK0BpbnRlcmZhY2UgV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciA6IE5T
T2JqZWN0CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpcGFnZSBpbWFnZURhdGE6KE5TRGF0YSAqKWRhdGEgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUg
aW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkw7CistICh2b2lkKWJlZ2luQ29udHJvbDooUUxQcmV2
aWV3UGFuZWwgKilwYW5lbDsKKy0gKEJPT0wpaXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwg
KilwYW5lbDsKKy0gKHZvaWQpZW5kQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKKy0g
KHZvaWQpY2xvc2VQYW5lbElmTmVjZXNzYXJ5OworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ1YjlmMmQ0NzVhNTA3YTU4ZTAzOWM0ODZhNDEzNTc4Mzk5OWNiMzYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFy
Y2hQcmV2aWV3Q29udHJvbGxlci5tbQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBQTEFURk9STShNQUMpCisKKyNp
bXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9y
dCA8cGFsL21hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmg+CisKK0BpbnRlcmZhY2UgV0tWaXN1YWxT
ZWFyY2hQcmV2aWV3Q29udHJvbGxlciAoKSA8UUxQcmV2aWV3UGFuZWxEZWxlZ2F0ZSwgUUxQcmV2
aWV3UGFuZWxEYXRhU291cmNlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tWaXN1YWxTZWFy
Y2hQcmV2aWV3Q29udHJvbGxlciB7CisgICAgUmV0YWluUHRyPFFMSXRlbT4gX2l0ZW07CisgICAg
UmV0YWluUHRyPE5TRGF0YT4gX2ltYWdlRGF0YTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgaW1hZ2VEYXRhOihOU0RhdGEgKilp
bWFnZURhdGEgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VV
UkwKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIF9pbWFnZURhdGEgPSBpbWFnZURhdGE7CisgICAgX2l0ZW0gPSBhZG9wdE5TKFtQ
QUw6OmFsbG9jUUxJdGVtSW5zdGFuY2UoKSBpbml0V2l0aERhdGFQcm92aWRlcjooaWQpc2VsZiBj
b250ZW50VHlwZTpVVFR5cGVQTkcgcHJldmlld1RpdGxlOnRpdGxlXSk7CisgICAgaWYgKFtfaXRl
bSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFByZXZpZXdPcHRpb25zOildKSB7Cisg
ICAgICAgIGF1dG8gcHJldmlld09wdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFy
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXSk7CisgICAgICAgIGlmIChpbWFnZVVSTCkKKyAg
ICAgICAgICAgIFtwcmV2aWV3T3B0aW9ucyBzZXRPYmplY3Q6aW1hZ2VVUkwgZm9yS2V5OkAiaW1h
Z2VVUkwiXTsKKyAgICAgICAgaWYgKE5TVVJMICpwYWdlVVJMID0gVVJMIHsgVVJMIHsgfSwgcGFn
ZS5jdXJyZW50VVJMKCkgfSkKKyAgICAgICAgICAgIFtwcmV2aWV3T3B0aW9ucyBzZXRPYmplY3Q6
cGFnZVVSTCBmb3JLZXk6QCJwYWdlVVJMIl07CisgICAgICAgIFtfaXRlbSBzZXRQcmV2aWV3T3B0
aW9uczpwcmV2aWV3T3B0aW9ucy5nZXQoKV07CisgICAgfQorCisgICAgcmV0dXJuIHNlbGY7Cit9
CisKKy0gKHZvaWQpYmVnaW5Db250cm9sOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsCit7CisgICAg
cGFuZWwuZGF0YVNvdXJjZSA9IHNlbGY7CisgICAgcGFuZWwuZGVsZWdhdGUgPSBzZWxmOworfQor
CistICh2b2lkKWVuZENvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWwKK3sKKyAgICBpZiAo
cGFuZWwuZGF0YVNvdXJjZSA9PSBzZWxmKQorICAgICAgICBwYW5lbC5kYXRhU291cmNlID0gbmls
OworCisgICAgaWYgKHBhbmVsLmRlbGVnYXRlID09IHNlbGYpCisgICAgICAgIHBhbmVsLmRlbGVn
YXRlID0gbmlsOworfQorCistICh2b2lkKWNsb3NlUGFuZWxJZk5lY2Vzc2FyeQoreworICAgIGlm
ICghUEFMOjppc1F1aWNrTG9va1VJRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVtQQUw6OmdldFFM
UHJldmlld1BhbmVsQ2xhc3MoKSBzaGFyZWRQcmV2aWV3UGFuZWxFeGlzdHNdKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoYXV0byBwYW5lbCA9IFtQQUw6OmdldFFMUHJldmlld1BhbmVsQ2xh
c3MoKSBzaGFyZWRQcmV2aWV3UGFuZWxdOyBbc2VsZiBpc0NvbnRyb2xsaW5nOnBhbmVsXSkKKyAg
ICAgICAgW3BhbmVsIGNsb3NlXTsKK30KKworLSAoQk9PTClpc0NvbnRyb2xsaW5nOihRTFByZXZp
ZXdQYW5lbCAqKXBhbmVsCit7CisgICAgcmV0dXJuIHBhbmVsLmRhdGFTb3VyY2UgPT0gc2VsZiAm
JiBwYW5lbC5kZWxlZ2F0ZSA9PSBzZWxmOworfQorCisjcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdJ
dGVtRGF0YVByb3ZpZGVyCisKKy0gKE5TRGF0YSAqKXByb3ZpZGVEYXRhRm9ySXRlbTooUUxJdGVt
ICopaXRlbQoreworICAgIEFTU0VSVChpdGVtID09IF9pdGVtKTsKKyAgICByZXR1cm4gX2ltYWdl
RGF0YS5nZXQoKTsKK30KKworI3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3UGFuZWxEYXRhU291cmNl
CisKKy0gKE5TSW50ZWdlciludW1iZXJPZlByZXZpZXdJdGVtc0luUHJldmlld1BhbmVsOihRTFBy
ZXZpZXdQYW5lbCAqKXBhbmVsCit7CisgICAgcmV0dXJuIDE7Cit9CisKKy0gKGlkIDxRTFByZXZp
ZXdJdGVtPilwcmV2aWV3UGFuZWw6KFFMUHJldmlld1BhbmVsICopcGFuZWwgcHJldmlld0l0ZW1B
dEluZGV4OihOU0ludGVnZXIpaW5kZXgKK3sKKyAgICBBU1NFUlQoIWluZGV4KTsKKyAgICByZXR1
cm4gX2l0ZW0uZ2V0KCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFFMUHJldmlld1BhbmVsRGVsZWdh
dGUKKworLSAoUUxQcmV2aWV3QWN0aXZpdHkpcHJldmlld1BhbmVsOihRTFByZXZpZXdQYW5lbCAq
KXByZXZpZXdQYW5lbCBpbml0aWFsQWN0aXZpdHlGb3JJdGVtOihpZCA8UUxQcmV2aWV3SXRlbT4p
aXRlbQoreworICAgIHJldHVybiBRTFByZXZpZXdBY3Rpdml0eVZpc3VhbFNlYXJjaDsKK30KKwor
QGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVBy
b3h5TWFjLm1tCmluZGV4IDMyM2JkMzU5N2Y0OTQ2ZWI3MWUwNDYyZDE5NzIyZWFlNWJhYjA3Njcu
LmY4MDkwYWQxNmRkM2Q2OTZkMGRhZjNiYWE0MTYwNGM4NjhkMDg2ODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBA
IC00MzYsNyArNDM2LDcgQEAgc3RhdGljIE5TU3RyaW5nICptZW51SXRlbUlkZW50aWZpZXIoY29u
c3QgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnUmVsb2FkOgogICAgICAgICByZXR1cm4gX1dLTWVudUl0ZW1JZGVudGlmaWVyUmVs
b2FkOwogCi0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgICAgICByZXR1cm4gX1dLTWVudUl0
ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2U7CiAKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Nl
YXJjaFdlYjoKQEAgLTUwNywxNCArNTA3LDE0IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1h
Yzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAg
ICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4gcmV2ZWFsSW1hZ2VJdGVtOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4gbG9va1VwSW1hZ2VJdGVtOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIGZpbHRlcmVkSXRlbXMucmVtb3ZlRmly
c3RNYXRjaGluZyhbJl0gKGF1dG8mIGl0ZW0pIHsKLSAgICAgICAgaWYgKGl0ZW0uYWN0aW9uKCkg
IT0gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UpCisgICAgICAgIGlmIChp
dGVtLmFjdGlvbigpICE9IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHJldmVhbEltYWdlSXRlbSA9IHsg
aXRlbSB9OworICAgICAgICBsb29rVXBJbWFnZUl0ZW0gPSB7IGl0ZW0gfTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfSk7CiAjZW5kaWYKQEAgLTUzMSw3ICs1MzEsNyBAQCB2b2lkIFdlYkNv
bnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudQogICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBtX2NvbnRleHQud2ViSGl0VGVz
dFJlc3VsdERhdGEoKS5pbWFnZUJpdG1hcDsKIAogICAgIGF1dG8gc3BhcnNlTWVudUl0ZW1zID0g
cmV0YWluUHRyKFtOU1BvaW50ZXJBcnJheSBzdHJvbmdPYmplY3RzUG9pbnRlckFycmF5XSk7Ci0g
ICAgYXV0byBpbnNlcnRNZW51SXRlbSA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHBhZ2UoKSksIGltYWdlVVJMID0g
V1RGTW92ZShpbWFnZVVSTCksIGltYWdlQml0bWFwID0gV1RGTW92ZShpbWFnZUJpdG1hcCksIHJl
dmVhbEltYWdlSXRlbSA9IFdURk1vdmUocmV2ZWFsSW1hZ2VJdGVtKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgaXRlbXNSZW1haW5pbmcgPSBmaWx0ZXJl
ZEl0ZW1zLnNpemUoKSwgbWVudSA9IFdURk1vdmUobWVudSksIHNwYXJzZU1lbnVJdGVtc10oTlNN
ZW51SXRlbSAqaXRlbSwgTlNVSW50ZWdlciBpbmRleCkgbXV0YWJsZSB7CisgICAgYXV0byBpbnNl
cnRNZW51SXRlbSA9IG1ha2VCbG9ja1B0cihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHBhZ2UoKSksIGltYWdlVVJMID0gV1RGTW92ZShpbWFn
ZVVSTCksIGltYWdlQml0bWFwID0gV1RGTW92ZShpbWFnZUJpdG1hcCksIGxvb2tVcEltYWdlSXRl
bSA9IFdURk1vdmUobG9va1VwSW1hZ2VJdGVtKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgaXRlbXNSZW1haW5pbmcgPSBmaWx0ZXJlZEl0ZW1zLnNpemUo
KSwgbWVudSA9IFdURk1vdmUobWVudSksIHNwYXJzZU1lbnVJdGVtc10oTlNNZW51SXRlbSAqaXRl
bSwgTlNVSW50ZWdlciBpbmRleCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpbmRleCA8IFtz
cGFyc2VNZW51SXRlbXMgY291bnRdKTsKICAgICAgICAgQVNTRVJUKCFbc3BhcnNlTWVudUl0ZW1z
IHBvaW50ZXJBdEluZGV4OmluZGV4XSk7CiAgICAgICAgIFtzcGFyc2VNZW51SXRlbXMgcmVwbGFj
ZVBvaW50ZXJBdEluZGV4OmluZGV4IHdpdGhQb2ludGVyOml0ZW1dOwpAQCAtNTQxLDExICs1NDEs
MTEgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUZyb21JdGVt
cyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICAgICAgW21lbnUgc2V0SXRlbUFycmF5
OltzcGFyc2VNZW51SXRlbXMgYWxsT2JqZWN0c11dOwogCiAgICAgICAgIGF1dG8gcGFnZSA9IG1h
a2VSZWZQdHIod2Vha1BhZ2UuZ2V0KCkpOwotICAgICAgICBpZiAocmV2ZWFsSW1hZ2VJdGVtICYm
IHBhZ2UgJiYgaW1hZ2VCaXRtYXApIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICAgICAgICAgIHBhZ2UtPmNvbXB1dGVDYW5SZXZlYWxJbWFnZShpbWFnZVVSTCwgKmltYWdlQml0
bWFwLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJldmVhbEltYWdl
SXRlbSA9IFdURk1vdmUoKnJldmVhbEltYWdlSXRlbSldIChib29sIGNhblJldmVhbEltYWdlKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoY2FuUmV2ZWFsSW1hZ2UpCi0gICAgICAgICAg
ICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51QWN0aW9u
SXRlbShyZXZlYWxJbWFnZUl0ZW0pLmdldCgpXTsKKyAgICAgICAgaWYgKGxvb2tVcEltYWdlSXRl
bSAmJiBwYWdlICYmIGltYWdlQml0bWFwKSB7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
ICAgICAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoaW1hZ2VVUkws
ICppbWFnZUJpdG1hcCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBs
b29rVXBJbWFnZUl0ZW0gPSBXVEZNb3ZlKCpsb29rVXBJbWFnZUl0ZW0pXSAoYm9vbCBoYXNWaXN1
YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoaGFzVmlzdWFs
U2VhcmNoUmVzdWx0cykKKyAgICAgICAgICAgICAgICAgICAgW3Byb3RlY3RlZFRoaXMtPm1fbWVu
dSBhZGRJdGVtOmNyZWF0ZU1lbnVBY3Rpb25JdGVtKGxvb2tVcEltYWdlSXRlbSkuZ2V0KCldOwog
ICAgICAgICAgICAgfSk7CiAjZWxzZQogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGltYWdlVVJM
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmlu
ZGV4IDA4Mzk0ZWQ5NzI0YzFiNWFjMjY3NWZiOGZmY2JhZTA3MDFlNjM1MGMuLjQzMzc3MzllNzRh
MDYyNDhhNTQzNjE3NzZiNzFmZDI5MzIyNzJkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNDUsOCArNDUsOCBAQAogI2ltcG9ydCAi
U3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKLSNpbXBvcnQgIldLSW1hZ2VFeHRy
YWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLU2hhcmluZ1NlcnZpY2VQaWNr
ZXJEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5o
IgogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIgogI2ltcG9ydCAiV2ViUGFnZU1l
c3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKQEAgLTExMCw2ICsxMTAs
OCBAQCAtICh2b2lkKWNvbnRleHRNZW51QWN0aW9uOihOU01lbnVJdGVtICopc2VuZGVyCiBAZW5k
IC8vIGltcGxlbWVudGF0aW9uIFdLUERGTWVudVRhcmdldAogI2VuZGlmCiAKKyNpbXBvcnQgPHBh
bC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIApAQCAtNzIyLDI2ICs3MjQsNjYgQEAgQ29sb3IgV2Vi
UGFnZVByb3h5OjpwbGF0Zm9ybVVuZGVyUGFnZUJhY2tncm91bmRDb2xvcigpIGNvbnN0CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpiZWdpblByZXZpZXdQYW5lbENvbnRyb2woUUxQcmV2aWV3UGFuZWwg
KnBhbmVsKQogewotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFttX2ltYWdlRXh0
cmFjdGlvblByZXZpZXdDb250cm9sbGVyIGJlZ2luQ29udHJvbDpwYW5lbF07CisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorICAgIFttX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGJl
Z2luQ29udHJvbDpwYW5lbF07CiAjZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmVuZFBy
ZXZpZXdQYW5lbENvbnRyb2woUUxQcmV2aWV3UGFuZWwgKnBhbmVsKQogewotI2lmIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQotICAgIGlmIChhdXRvIGNvbnRyb2xsZXIgPSBzdGQ6OmV4Y2hhbmdl
KG1faW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIsIG5pbCkpCisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQorICAgIGlmIChhdXRvIGNvbnRyb2xsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1f
dmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIsIG5pbCkpCiAgICAgICAgIFtjb250cm9sbGVy
IGVuZENvbnRyb2w6cGFuZWxdOwogI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9z
ZVNoYXJlZFByZXZpZXdQYW5lbElmTmVjZXNzYXJ5KCkKIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKLSAgICBbbV9pbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlciBjbG9zZVBh
bmVsSWZOZWNlc3NhcnldOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbbV92aXN1
YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBjbG9zZVBhbmVsSWZOZWNlc3NhcnldOwogI2VuZGlm
CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
aG93SW1hZ2VJblZpc3VhbFNlYXJjaFByZXZpZXdQYW5lbChTaGFyZWFibGVCaXRtYXAmIGltYWdl
Qml0bWFwLCBjb25zdCBTdHJpbmcmIHRvb2x0aXAsIGNvbnN0IFVSTCYgaW1hZ2VVUkwpCit7Cisg
ICAgaWYgKCFQQUw6OmlzUXVpY2tMb29rVUlGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFMOjpn
ZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgfHwgIVtQQUw6OmdldFFMSXRlbUNsYXNzKCkgaW5zdGFu
Y2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoRGF0YVByb3ZpZGVyOmNvbnRl
bnRUeXBlOnByZXZpZXdUaXRsZTopXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpbWFn
ZSA9IGltYWdlQml0bWFwLm1ha2VDR0ltYWdlKCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byBpbWFnZURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZU11dGFi
bGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCkpOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9w
dENGKENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKGltYWdlRGF0YS5nZXQoKSwgKF9f
YnJpZGdlIENGU3RyaW5nUmVmKVVUVHlwZVBORy5pZGVudGlmaWVyLCAxLCBudWxscHRyKSk7Cisg
ICAgaWYgKCFkZXN0aW5hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dJbWFnZURlc3Rp
bmF0aW9uQWRkSW1hZ2UoZGVzdGluYXRpb24uZ2V0KCksIGltYWdlLmdldCgpLCBuaWwpOworICAg
IGlmICghQ0dJbWFnZURlc3RpbmF0aW9uRmluYWxpemUoZGVzdGluYXRpb24uZ2V0KCkpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyID0gYWRv
cHROUyhbW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUGFn
ZToqdGhpcyBpbWFnZURhdGE6KF9fYnJpZGdlIE5TRGF0YSAqKWltYWdlRGF0YS5nZXQoKSB0aXRs
ZTp0b29sdGlwIGltYWdlVVJMOmltYWdlVVJMXSk7CisKKyAgICAvLyBXaGVuIHByZXNlbnRpbmcg
dGhlIHNoYXJlZCBRTFByZXZpZXdQYW5lbCwgUXVpY2tMb29rIHdpbGwgc2VhcmNoIHRoZSByZXNw
b25kZXIgY2hhaW4gZm9yIGEgc3VpdGFibGUgcGFuZWwgY29udHJvbGxlci4KKyAgICAvLyBNYWtl
IHN1cmUgdGhhdCB3ZSAoYnkgZGVmYXVsdCkgc3RhcnQgdGhlIHNlYXJjaCBhdCB0aGUgd2ViIHZp
ZXcsIHdoaWNoIGtub3dzIGhvdyB0byB2ZW5kIHRoZSBWaXN1YWwgU2VhcmNoIHByZXZpZXcKKyAg
ICAvLyBjb250cm9sbGVyIGFzIGEgZGVsZWdhdGUgYW5kIGRhdGEgc291cmNlIGZvciB0aGUgcHJl
dmlldyBwYW5lbC4KKyAgICBwYWdlQ2xpZW50KCkubWFrZUZpcnN0UmVzcG9uZGVyKCk7CisKKyAg
ICBhdXRvIHByZXZpZXdQYW5lbCA9IFtQQUw6OmdldFFMUHJldmlld1BhbmVsQ2xhc3MoKSBzaGFy
ZWRQcmV2aWV3UGFuZWxdOworICAgIFtwcmV2aWV3UGFuZWwgbWFrZUtleUFuZE9yZGVyRnJvbnQ6
bmlsXTsKKworICAgIGlmICghW21fdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgaXNDb250
cm9sbGluZzpwcmV2aWV3UGFuZWxdKSB7CisgICAgICAgIC8vIFRoZSBXZWJLaXQgY2xpZW50IG1h
eSBoYXZlIG92ZXJyaWRkZW4gUUxQcmV2aWV3UGFuZWxDb250cm9sbGVyIG1ldGhvZHMgb24gdGhl
IHZpZXcgd2l0aG91dCBjYWxsaW5nIGludG8gdGhlIHN1cGVyY2xhc3MuCisgICAgICAgIC8vIElu
IHRoaXMgY2FzZSwgaGFuZCBvdmVyIGNvbnRyb2wgdG8gdGhlIGNsaWVudCBhbmQgY2xlYXIgb3V0
IG91ciBzdGF0ZSBlYWdlcmx5LCBzaW5jZSB3ZSBkb24ndCBleHBlY3QgYW55IGZ1cnRoZXIgZGVs
ZWdhdGUKKyAgICAgICAgLy8gY2FsbHMgb25jZSB0aGUgcHJldmlldyBwYW5lbCBpcyBkaXNtaXNz
ZWQuCisgICAgICAgIG1fdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuY2xlYXIoKTsKKyAg
ICB9Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVmZTJlZDE1NTdlYzI0MGY0
NWFiZGIxNjViNmUwNjAzOGYyMTFjZC4uN2UzMTZhNWIzYWY5NTkxOWU2NjMzNDJjMzhjZTM4YTlj
NTQ3ZWM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yMDE2LDcgKzIwMTYsNyBAQAogCQlGNDJENjM0MTIyQTBFRkRGMDBEMkZCM0Eg
LyogV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDJENjMzRjIyQTBFRkQzMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJl
Y3Rpb25EYXRhLmggKi87IH07CiAJCUY0MzBFOTQyMjI0NzMzNUYwMDVGRTA1MyAvKiBXZWJzaXRl
TWV0YVZpZXdwb3J0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDMwRTk0MTIyNDczMkE5MDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9y
dFBvbGljeS5oICovOyB9OwogCQlGNDMwRTk0NDIyNDczREZGMDA1RkUwNTMgLyogV2ViQ29udGVu
dE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
MzBFOTQzMjI0NzNEQjgwMDVGRTA1MyAvKiBXZWJDb250ZW50TW9kZS5oICovOyB9OwotCQlGNDM1
MUI5RTI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM1MUI5RDI1RUVDODRD
MDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggKi87IH07CisJCUY0MzUxQjlF
MjVFRUM4NEMwMEQ2Mzg5MiAvKiBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzUxQjlEMjVFRUM4NEMwMEQ2
Mzg5MiAvKiBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCAqLzsgfTsKIAkJRjQzOENEMUMyMjQx
NDIxNDAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM4Q0QxQjIyNDE0MEE2MDBERTZEREEgLyog
V0tXZWJwYWdlUHJlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CiAJCUY0MzhDRDFGMjI0MTRENDAwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVm
ZXJlbmNlc0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDM4Q0QxRTIyNDE0RDQwMDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNJ
bnRlcm5hbC5oICovOyB9OwogCQlGNDM4Q0QyMTIyNDFGNjk1MDBERTZEREEgLyogV0tXZWJwYWdl
UHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDM4Q0QyMDIyNDFGNjk1MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5j
ZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTIwMzAsOSArMjAzMCw5IEBACiAJCUY0OEQyQTg1MjE1ODNBN0UwMEM2NzUyQiAvKiBB
cHBLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0OEQyQTg0MjE1ODNBMDIwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCAqLzsgfTsKIAkJRjQ5NkE0
MzExRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5NkE0MkYxRjU4QTI3MjAw
NEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oICovOyB9OwogCQlGNDk3NEU3NjI2
NUVDQkJDMDBCNDlCOEMgLyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ2RURFRjI2NUVCMkIwMDAzMURBOEYg
LyogV0tSZXZlYWxJdGVtUHJlc2VudGVyLmggKi87IH07Ci0JCUY0OTc1Q0YyMjYyNEI4MEEwMDND
NjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk3NUNGMTI2MjRCODBBMDAzQzYy
NkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oICovOyB9OworCQlGNDk3
NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5NzVDRjEy
NjI0QjgwQTAwM0M2MjZFIC8qIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCAqLzsg
fTsKIAkJRjRBNkQ2QkMyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEE2RDZC
QjI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCAqLzsgfTsKLQkJ
RjRCQTMzRjIyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLmggKi87IH07CisJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlz
aXNHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dl
c3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJCUY0Q0IwOUU1MjI1RDVBMDkwMDg5MTQ4NyAvKiBX
ZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0Q0IwOUU0MjI1RDVBMDMwMDg5MTQ4NyAvKiBXZWJzaXRlTWVkaWFT
b3VyY2VQb2xpY3kuaCAqLzsgfTsKIAkJRjRDRjFFOUQyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1
cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1
cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICovOyB9OwogCQlGNEQ1RjUxRDIwNjA4
N0ExMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDVGNTE5MjA2MDg3QTAwMDM4
QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlci5oICovOyB9OwpAQCAtNTk2NCw4
ICs1OTY0LDggQEAKIAkJRjQyRDYzNDAyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0
aW9uRGF0YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkF1
dG9jb3JyZWN0aW9uRGF0YS5tbTsgcGF0aCA9IGlvcy9XZWJBdXRvY29ycmVjdGlvbkRhdGEubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzBFOTQxMjI0NzMyQTkwMDVGRTA1MyAv
KiBXZWJzaXRlTWV0YVZpZXdwb3J0UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVNZXRh
Vmlld3BvcnRQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzMEU5NDMy
MjQ3M0RCODAwNUZFMDUzIC8qIFdlYkNvbnRlbnRNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bnRlbnRNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0MzUxQjlEMjVFRUM4
NEMwMEQ2Mzg5MiAvKiBJbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUY0MzUxQjlGMjVFRUM4NzgwMEQ2Mzg5MiAvKiBJbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MzUxQjlEMjVFRUM4NEMwMEQ2Mzg5MiAvKiBUZXh0
UmVjb2duaXRpb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29nbml0aW9uVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MzUxQjlGMjVFRUM4Nzgw
MEQ2Mzg5MiAvKiBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0MzhDRDFCMjI0MTQwQTYwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDM4Q0QxRDIyNDE0QUQ2MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVy
ZW5jZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzOENEMUUyMjQxNEQ0MDAwREU2RERBIC8q
IFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJwYWdl
UHJlZmVyZW5jZXNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTk4
NiwxNCArNTk4NiwxNCBAQAogCQlGNDhEMkE4NDIxNTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0U1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDk2QTQyRjFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oOyBwYXRoID0gaW9z
L0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDk2QTQzMDFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tOyBwYXRo
ID0gaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJl
dmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDk3NUNGMzI2MjRC
OTE4MDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAv
KiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlz
dWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjQ5NzVDRjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEE2RDZCQjI1NENBM0U5
MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hh
cmVkRGlzcGxheUxpc3RIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjRB
N0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIFRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UmVjb2duaXRpb25VcGRhdGVS
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBQzY1NUUyMkEzMTQwRTAw
QTA1NjA3IC8qIFdlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0lPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0lP
Uy5tbTsgcGF0aCA9IGlvcy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QjM3OEQwMjFEREJCQUIwMDk1QTM3OCAvKiBXZWJV
bmRvU3RlcElELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVuZG9TdGVwSUQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRy
YWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbWFnZUV4dHJhY3Rp
b25HZXN0dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjRCQTMzRjEyNTc1
N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1t
OyBwYXRoID0gaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0lt
YWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QkEzM0YxMjU3
NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tOyBw
YXRoID0gaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNENCMDlFNDIyNUQ1QTAzMDA4OTE0ODcgLyogV2Vic2l0ZU1l
ZGlhU291cmNlUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVNZWRpYVNvdXJjZVBvbGlj
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNENGMUU5QjI1RTQwRENDMDAwRjlE
NzMgLyogR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
ci5oOyBwYXRoID0gaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNENGMUU5QzI1RTQwRENDMDAwRjlENzMgLyog
R2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9y
Y2VyLm1tOyBwYXRoID0gaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3MjQsNyArNjcyNCw2IEBACiAJCQkJ
NDZBQzUzMjQyNURFRDgxRTAwM0I1N0VDIC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
cy5oICovLAogCQkJCUY0MEJCQjQwMjU3RkY0NkUwMDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVw
TWVzc2FnZUFyZ3VtZW50cy5oICovLAogCQkJCTFBQzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBI
YW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCAqLywKLQkJCQlGNEE3Q0U4NDI2NjdFQjRFMDAyMjg2ODUg
LyogSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmggKi8sCiAJCQkJQkNDRjZCMjMxMkM5M0U3
QTAwOEY5QzM1IC8qIEltYWdlT3B0aW9ucy5oICovLAogCQkJCTk5OUI3RUQ4MjU1MEU0QTgwMEY0
NTBBNCAvKiBJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5jcHAgKi8sCiAJCQkJOTlCRTNCMTYyNTQz
M0I5NDAwQzY1NTFDIC8qIEluc3BlY3RvckV4dGVuc2lvblR5cGVzLmggKi8sCkBAIC02Nzc3LDYg
KzY3NzYsNyBAQAogCQkJCTgzRjk2NDRCMUZBMEY3NjIwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdI
YXNoVGFibGVSZWFkT25seS5jcHAgKi8sCiAJCQkJODNGOTY0NEMxRkEwRjc2MzAwQzQ3NzUwIC8q
IFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggKi8sCiAJCQkJMUE1RTREQTMxMkQzQkQz
RDAwOTlBMkJCIC8qIFRleHRDaGVja2VyU3RhdGUuaCAqLywKKwkJCQlGNEE3Q0U4NDI2NjdFQjRF
MDAyMjg2ODUgLyogVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmggKi8sCiAJCQkJMkZENDNC
OTIxRkEwMDZBMzAwODNGNTFDIC8qIFRvdWNoQmFyTWVudURhdGEuY3BwICovLAogCQkJCTJGRDQz
QjkxMUZBMDA2QTEwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmggKi8sCiAJCQkJMkY4MDlE
RDUxRkJEMUJDOTAwNUZFNjNBIC8qIFRvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcCAqLywKQEAgLTc3
NjgsOCArNzc2OCw4IEBACiAJCQkJMEZDQjRFNDExOEJCRTA0NDAwMEZDRkM5IC8qIFdLR2VvbG9j
YXRpb25Qcm92aWRlcklPU09iakNTZWN1cml0eU9yaWdpbi5tbSAqLywKIAkJCQlGNERCNTRFNDIz
MTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5o
ICovLAogCQkJCUY0REI1NEU1MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVz
c0dlc3R1cmVSZWNvZ25pemVyLm1tICovLAotCQkJCUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAv
KiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi8sCi0JCQkJRjRCQTMzRjEy
NTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0g
Ki8sCisJCQkJRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyLmggKi8sCisJCQkJRjRCQTMzRjEyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJCTkzM0RGODJEMUIzQkMwOTAw
MEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJOTMzREY4
MkYxQjNCQzBCNDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIubW0gKi8s
CiAJCQkJMkRENUUxMjcyMTBBREM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3JvbGxpbmdBbmlt
YXRvci5oICovLApAQCAtODUxMSw4ICs4NTExLDYgQEAKIAkJCQlGNEZFMEEzQTI0NjMyQjEwMDAy
NjMxRTEgLyogQ29jb2FDb2xvci5oICovLAogCQkJCUY0RkUwQTNDMjQ2MzU2NjcwMDI2MzFFMSAv
KiBDb2NvYUZvbnQuaCAqLywKIAkJCQk0NDgyNzM0NjI0NTI4RjYwMDBBOTU0OTMgLyogQ29jb2FJ
bWFnZS5oICovLAotCQkJCUY0MzUxQjlEMjVFRUM4NEMwMEQ2Mzg5MiAvKiBJbWFnZUV4dHJhY3Rp
b25VdGlsaXRpZXMuaCAqLywKLQkJCQlGNDM1MUI5RjI1RUVDODc4MDBENjM4OTIgLyogSW1hZ2VF
eHRyYWN0aW9uVXRpbGl0aWVzLm1tICovLAogCQkJCUJDRTA5Mzc2MTRGQjEyOEIwMDExMzhEOSAv
KiBMYXllckhvc3RpbmdDb250ZXh0LmggKi8sCiAJCQkJQkNFMDkzNzUxNEZCMTI4QjAwMTEzOEQ5
IC8qIExheWVySG9zdGluZ0NvbnRleHQubW0gKi8sCiAJCQkJQTE3OThCM0QyMjJEOTdBMjAwMDc2
NEJEIC8qIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmggKi8sCkBAIC04NTIwLDYgKzg1
MTgsOCBAQAogCQkJCUExNzk4QjNGMjIyRDk4QjYwMDA3NjRCRCAvKiBQYXltZW50QXV0aG9yaXph
dGlvblZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJQTE3OThCNDAyMjJEOThCNjAwMDc2NEJEIC8q
IFBheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJNDQ1MEFFQkYx
REMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLywKKwkJCQlGNDM1MUI5
RDI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmggKi8sCisJCQkJ
RjQzNTFCOUYyNUVFQzg3ODAwRDYzODkyIC8qIFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbSAq
LywKIAkJCQlBMTgxQTc5NzIxQUNBQzYxMDA1OUEzMTYgLyogV2ViS2l0QWRkaXRpb25zLm1tICov
LAogCQkJCUExRkI2ODIyMUY2RTUxODIwMEM0M0Y5RiAvKiBXS0NyYXNoUmVwb3J0ZXIuaCAqLywK
IAkJCQlBMUZCNjgyMzFGNkU1MTgyMDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVyLm1tICovLApA
QCAtMTA4NTcsOCArMTA4NTcsNiBAQAogCQkJCTg2ODE2MENGMTg3NjQ1MzcwMDIxRTc5RCAvKiBX
aW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tICovLAogCQkJCUNEQ0E4NUM3MTMyQUJBNEUwMEU5NjFE
RiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi8sCiAJCQkJQ0RDQTg1QzYxMzJB
QkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8sCi0JCQkJ
RjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRy
b2xsZXIuaCAqLywKLQkJCQlGNDk3NUNGMzI2MjRCOTE4MDAzQzYyNkUgLyogV0tJbWFnZUV4dHJh
Y3Rpb25QcmV2aWV3Q29udHJvbGxlci5tbSAqLywKIAkJCQk5MzIxRDU4NTFBMzhFRTNDMDA4MDUy
QkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggKi8sCiAJCQkJOTMyMUQ1ODcxQTM4
RUU3NDAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSAqLywKIAkJCQkw
RkNCNEU1QzE4QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmludGluZ1ZpZXcuaCAqLywKQEAgLTEwODcz
LDYgKzEwODcxLDggQEAKIAkJCQkwRkNCNEU1RjE4QkJFM0Q5MDAwRkNGQzkgLyogV0tUZXh0SW5w
dXRXaW5kb3dDb250cm9sbGVyLm1tICovLAogCQkJCTJEMjhBNDk1MUFGOTY1QTEwMEYxOTBDOSAv
KiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oICovLAogCQkJCTJEMjhBNDk2MUFGOTY1QTEwMEYxOTBD
OSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSAqLywKKwkJCQlGNDk3NUNGMTI2MjRCODBBMDAz
QzYyNkUgLyogV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5oICovLAorCQkJCUY0OTc1
Q0YzMjYyNEI5MTgwMDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLm1t
ICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTE5NzQsNyArMTE5NzQsNiBAQAogCQkJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBI
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFDMEM5NzQxRERENzYwMDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovLAotCQkJCUY0MzUxQjlFMjVFRUM4NEMwMEQ2Mzg5MiAvKiBJbWFnZUV4dHJh
Y3Rpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0Y2QjI1MTJDOTNFN0EwMDhG
OUMzNSAvKiBJbWFnZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMUVDNjlFMTg3MjA5
MjEwMEI5NTFGMCAvKiBJbXBvcnRhbmNlQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzIwNEVFMzExQzgzRTk4MDA4RjMzNzUgLyogSW5qZWN0ZWRCdW5kbGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMTIzMzQsNiArMTIzMzMsNyBAQAogCQkJCTUzQ0ZCQkM4MjIyNEQxQjUwMDI2NjU0NiAv
KiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNUU0REE0MTJE
M0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RTFBMEJENzFBNDhFNkM2MDA1NEVGNzQgLyogVGV4dElucHV0U1BJLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNDM1MUI5RTI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFGMjYzOTE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjA1RDg3MTQ2
ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNDg1NzBBMzI2NDRCRUM1MDBDMDVGNzEgLyogVGltZW91dC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMjc5Miw5ICsxMjc5Miw4IEBACiAJCQkJNTExMEFFMEQxMzNDMTZD
QjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTIzQ0Yx
QzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNDRjZBQzMxMkM5MUYzNDAwOEY5QzM1IC8qIFdLSW1hZ2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVj
b2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDRjZBQ0ExMkM5MUY1OTAwOEY5QzM1IC8q
IFdLSW1hZ2VDRy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjRCQTMzRjIyNTc1N0U4OTAwMEEzQ0U4
IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUY0OTc1Q0YyMjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzNERjgyRTFCM0JDMDkwMDBBRUE5RTMg
LyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMy
MUQ1ODYxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMyMUQ1OEExQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRl
QWN0aW9uVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTI5ODYsNiArMTI5ODUsNyBAQAogCQkJ
CUJDODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQyOEE0OTcxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCRkE2MTc5RjEyRjBCOTlEMDAzM0UwQ0EgLyogV0tWaWV3
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ5NzVDRjIyNjI0QjgwQTAwM0M2MjZFIC8q
IFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
MzZFNTE2MjM2QTYyMTEwMDc0RkQ1RCAvKiBXS1dlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMzZFNTE0MjM2QTYwREMwMDc0RkQ1RCAvKiBXS1dlYkFyY2hpdmVSZWYuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmVSZXNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGRjZmQ3Yzc1
Njk3ZjkwMTdkZThmZjkxYmM3ZGFhYjUxZmExZDJiNmYuLjdkNjJlNWU5YTM5ZDE1Y2FhMzc1YTEx
Yzk5Njc0NTY3NjRkZjg5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNDY5LDExICsx
NDY5LDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaGFuZ2VVbml2ZXJzYWxBY2Nlc3Nab29t
Rm9jdXMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmllCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oRWxlbWVudCYgZWxlbWVudCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVudD4mJik+JiYgY29tcGxldGlvbikK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKEVsZW1lbnQmIGVs
ZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBs
ZXRpb24pCiB7Ci0gICAgbV9wYWdlLnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oZWxlbWVudCwgV1RG
TW92ZShjb21wbGV0aW9uKSk7CisgICAgbV9wYWdlLnJlcXVlc3RUZXh0UmVjb2duaXRpb24oZWxl
bWVudCwgV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDcxZDg5YTdhNjdkZDM5YzJiZTljYWUyZjZiYWQ2MjQzODBlNzE3ZmUuLjYyODYyMDI4
NDI0ZmJiYmVkMTMyODE2MzU3NGI3MDVkM2JjMTgzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTQyMyw4ICs0MjMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2hhbmdlVW5pdmVyc2FsQWNjZXNz
Wm9vbUZvY3VzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikgZmluYWw7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZv
aWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYgPSB7IH0pIGZpbmFsOwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRp
b24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNv
cmU6OkVsZW1lbnQ+JiYpPiYmID0geyB9KSBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBuZWVk
c0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJGb3JTZWxlY3Rpb25QYWludGluZygpIGNvbnN0IGZpbmFs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGYw
MDFhNmNjZmFkMmRlOGY0ZGIwNWI4MTVlMWUxN2I1Mzg5M2Y2MmIuLjFmMmFjMzljNmYxNmIyNTc1
NDUyM2IyYmIwZjg3ZDZlNzA1OTQ2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiRm9ybURhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJGcmFtZVRyZWVOb2RlRGF0YS5oIgogI2luY2x1ZGUgIkdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiSW1hZ2VFeHRy
YWN0aW9uVXBkYXRlUmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0
ZWx5LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkLmgiCkBAIC02Nyw2ICs2Niw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxl
Qml0bWFwLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmgiCiAjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlRleHRSZWNvZ25pdGlv
blVwZGF0ZVJlc3VsdC5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgogI2luY2x1ZGUgIlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuaCIKICNpbmNs
dWRlICJWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oIgpAQCAtMzYwLDggKzM2MCw4IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0jaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCkBAIC02MjgxLDEzICs2Mjgx
LDEzIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnJhbWUpCiAgICAg
QVNTRVJUKCFmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnN0YXRlTWFjaGluZSgpLmNyZWF0
aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSk7CiAgICAgdW5mcmVlemVMYXllclRyZWUoTGF5ZXJU
cmVlRnJlZXplUmVhc29uOjpQcm9jZXNzU3dhcCk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSAgICBmb3IgKGF1dG8mIFtlbGVtZW50LCBjb21wbGV0aW9uSGFuZGxlcnNdIDogbV9l
bGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24pIHsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgZm9yIChhdXRvJiBbZWxlbWVudCwgY29tcGxldGlvbkhhbmRsZXJzXSA6IG1fZWxl
bWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uKSB7CiAgICAgICAgIGZvciAoYXV0byYgY29tcGxl
dGlvbkhhbmRsZXIgOiBjb21wbGV0aW9uSGFuZGxlcnMpCiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcih7IH0pOwogICAgIH0KLSAgICBtX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlv
bi5jbGVhcigpOwotICAgIG1fZWxlbWVudHNXaXRoRXh0cmFjdGVkSW1hZ2VzLmNsZWFyKCk7Cisg
ICAgbV9lbGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uY2xlYXIoKTsKKyAgICBtX2VsZW1l
bnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuY2xlYXIoKTsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKQEAgLTczODMsOSArNzM4Myw5IEBAIHZvaWQg
V2ViUGFnZTo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklkZW50
aWZpZXIgaWRlbnRpZmllcikKIH0KICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfVVNBR0UpCiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAK
LXZvaWQgV2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiBl
bGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYm
KT4mJiBjb21wbGV0aW9uKQordm9pZCBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdl
YkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdl
YkNvcmU6OkVsZW1lbnQ+JiYpPiYmIGNvbXBsZXRpb24pCiB7CiAgICAgaWYgKCFpczxIVE1MRWxl
bWVudD4oZWxlbWVudCkpIHsKICAgICAgICAgaWYgKGNvbXBsZXRpb24pCkBAIC03MzkzLDcgKzcz
OTMsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxl
bWVudCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKG1fZWxlbWVudHNXaXRoRXh0cmFjdGVkSW1hZ2VzLmNvbnRhaW5zKGVsZW1lbnQp
KSB7CisgICAgaWYgKG1fZWxlbWVudHNXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0cy5jb250YWlu
cyhlbGVtZW50KSkgewogICAgICAgICBpZiAoY29tcGxldGlvbikgewogICAgICAgICAgICAgQVNT
RVJUKGlzPEhUTUxFbGVtZW50PihlbGVtZW50KSk7CiAgICAgICAgICAgICBSZWZQdHI8RWxlbWVu
dD4gaW1hZ2VPdmVybGF5SG9zdDsKQEAgLTc0MDQsMTMgKzc0MDQsMTMgQEAgdm9pZCBXZWJQYWdl
OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBs
ZXRpb25IYW5kbGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gbWF0Y2hJbmRl
eCA9IG1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLmZpbmRNYXRjaGluZyhbJl0gKGF1
dG8mIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFuZGxlcnMpIHsKKyAgICBhdXRvIG1hdGNoSW5kZXgg
PSBtX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbi5maW5kTWF0Y2hpbmcoWyZdIChhdXRv
JiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzKSB7CiAgICAgICAgIHJldHVybiBlbGVtZW50
QW5kQ29tcGxldGlvbkhhbmRsZXJzLmZpcnN0ID09ICZlbGVtZW50OwogICAgIH0pOwogCiAgICAg
aWYgKG1hdGNoSW5kZXggIT0gbm90Rm91bmQpIHsKICAgICAgICAgaWYgKGNvbXBsZXRpb24pCi0g
ICAgICAgICAgICBtX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvblttYXRjaEluZGV4XS5z
ZWNvbmQuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbikpOworICAgICAgICAgICAgbV9lbGVtZW50
c1BlbmRpbmdUZXh0UmVjb2duaXRpb25bbWF0Y2hJbmRleF0uc2Vjb25kLmFwcGVuZChXVEZNb3Zl
KGNvbXBsZXRpb24pKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzQ0MCwxNSArNzQ0
MCwxNSBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxl
bWVudCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZQogICAgIFZlY3RvcjxDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJlZlB0cjxFbGVtZW50PiYmKT4+IGNvbXBsZXRpb25IYW5kbGVyczsKICAgICBp
ZiAoY29tcGxldGlvbikKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJzLmFwcGVuZChXVEZNb3Zl
KGNvbXBsZXRpb24pKTsKLSAgICBtX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5hcHBl
bmQoeyBtYWtlV2Vha1B0cihlbGVtZW50KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcnMpIH0p
OworICAgIG1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLmFwcGVuZCh7IG1ha2VXZWFr
UHRyKGVsZW1lbnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVycykgfSk7CiAKICAgICBhdXRv
IGltYWdlVVJMID0gZWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHJlbmRlckltYWdlLmNh
Y2hlZEltYWdlKCktPnVybCgpLnN0cmluZygpKTsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdEltYWdlRXh0cmFjdGlvbihXVEZNb3ZlKGltYWdl
VVJMKSwgV1RGTW92ZShiaXRtYXBIYW5kbGUpKSwgW3dlYlBhZ2UgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHdlYWtFbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCldIChhdXRvJiYgcmVzdWx0KSB7
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RU
ZXh0UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFwSGFuZGxlKSks
IFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9IG1ha2VXZWFrUHRy
KGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgewogICAgICAgICBhdXRvIHByb3RlY3RlZFBhZ2Ug
PSBtYWtlUmVmUHRyKHdlYlBhZ2UuZ2V0KCkpOwogICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2Up
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50
c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24ucmVtb3ZlQWxsTWF0Y2hpbmcoWyZdIChhdXRvJiBlbGVt
ZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzKSB7CisgICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fZWxl
bWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYg
ZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVycykgewogICAgICAgICAgICAgYXV0byYgW2VsZW1l
bnQsIGNvbXBsZXRpb25IYW5kbGVyc10gPSBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzOwog
ICAgICAgICAgICAgaWYgKGVsZW1lbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNzQ2MywxMCArNzQ2MywxMCBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8mIGh0bWxFbGVtZW50ID0gZG93bmNhc3Q8SFRNTEVs
ZW1lbnQ+KCpwcm90ZWN0ZWRFbGVtZW50KTsKLSAgICAgICAgaHRtbEVsZW1lbnQudXBkYXRlV2l0
aEltYWdlRXh0cmFjdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdCkpOwotICAgICAgICBwcm90ZWN0
ZWRQYWdlLT5tX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5hZGQoaHRtbEVsZW1lbnQpOwor
ICAgICAgICBodG1sRWxlbWVudC51cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNXaXRoVGV4dFJl
Y29nbml0aW9uUmVzdWx0cy5hZGQoaHRtbEVsZW1lbnQpOwogCi0gICAgICAgIGF1dG8gbWF0Y2hJ
bmRleCA9IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLmZp
bmRNYXRjaGluZyhbJl0gKGF1dG8mIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFuZGxlcnMpIHsKKyAg
ICAgICAgYXV0byBtYXRjaEluZGV4ID0gcHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50c1BlbmRpbmdU
ZXh0UmVjb2duaXRpb24uZmluZE1hdGNoaW5nKFsmXSAoYXV0byYgZWxlbWVudEFuZENvbXBsZXRp
b25IYW5kbGVycykgewogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFu
ZGxlcnMuZmlyc3QgPT0gJmh0bWxFbGVtZW50OwogICAgICAgICB9KTsKIApAQCAtNzQ3NCwyMiAr
NzQ3NCwyMiBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6
RWxlbWVudCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGF1dG8gaW1hZ2VPdmVybGF5SG9zdCA9IGh0bWxFbGVtZW50Lmhhc0ltYWdlT3Zl
cmxheSgpID8gbWFrZVJlZlB0cihodG1sRWxlbWVudCkgOiBudWxscHRyOwotICAgICAgICBmb3Ig
KGF1dG8mIGNvbXBsZXRpb25IYW5kbGVyIDogcHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50c1BlbmRp
bmdJbWFnZUV4dHJhY3Rpb25bbWF0Y2hJbmRleF0uc2Vjb25kKQorICAgICAgICBmb3IgKGF1dG8m
IGNvbXBsZXRpb25IYW5kbGVyIDogcHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50c1BlbmRpbmdUZXh0
UmVjb2duaXRpb25bbWF0Y2hJbmRleF0uc2Vjb25kKQogICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoaW1hZ2VPdmVybGF5SG9zdC5jb3B5UmVmKCkpOwogCi0gICAgICAgIHByb3RlY3RlZFBh
Z2UtPm1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLnJlbW92ZShtYXRjaEluZGV4KTsK
KyAgICAgICAgcHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24u
cmVtb3ZlKG1hdGNoSW5kZXgpOwogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2U6OnVwZGF0ZVdp
dGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYgcmVzdWx0LCBj
b25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlv
blJlc3VsdChUZXh0UmVjb2duaXRpb25SZXN1bHQmJiByZXN1bHQsIGNvbnN0IEVsZW1lbnRDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGF1dG8gZWxlbWVudFRvVXBkYXRlID0gZWxlbWVudEZvckNvbnRleHQoY29udGV4
dCk7CiAgICAgaWYgKCFpczxIVE1MRWxlbWVudD4oZWxlbWVudFRvVXBkYXRlKSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6
Tm9UZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGRvd25jYXN0PEhUTUxFbGVt
ZW50PigqZWxlbWVudFRvVXBkYXRlKS51cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdU
Rk1vdmUocmVzdWx0KSk7CisgICAgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCplbGVtZW50VG9VcGRh
dGUpLnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoV1RGTW92ZShyZXN1bHQpKTsKICAg
ICBhdXRvIGhpdFRlc3RSZXN1bHQgPSBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5ldmVudEhhbmRs
ZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChyb3VuZGVkSW50UG9pbnQobG9jYXRpb24pLCB7CiAg
ICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpSZWFkT25seSwKICAgICAgICAgSGl0VGVzdFJl
cXVlc3Q6OlR5cGU6OkFjdGl2ZSwKQEAgLTc0OTksMjMgKzc0OTksMjMgQEAgdm9pZCBXZWJQYWdl
Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYm
IHJlc3VsdCwgY28KICAgICBhdXRvIG5vZGVBdExvY2F0aW9uID0gbWFrZVJlZlB0cihoaXRUZXN0
UmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKTsKICAgICBhdXRvIHVwZGF0ZVJlc3VsdCA9IChb
Jl0gewogICAgICAgICBpZiAoIW5vZGVBdExvY2F0aW9uIHx8IG5vZGVBdExvY2F0aW9uLT5zaGFk
b3dIb3N0KCkgIT0gZWxlbWVudFRvVXBkYXRlIHx8ICFIVE1MRWxlbWVudDo6aXNJbnNpZGVJbWFn
ZU92ZXJsYXkoKm5vZGVBdExvY2F0aW9uKSkKLSAgICAgICAgICAgIHJldHVybiBJbWFnZUV4dHJh
Y3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dDsKKyAgICAgICAgICAgIHJldHVybiBUZXh0UmVjb2du
aXRpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dDsKIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
ICAgICAgICAgaWYgKGZpbmREYXRhRGV0ZWN0aW9uUmVzdWx0RWxlbWVudEluSW1hZ2VPdmVybGF5
KGxvY2F0aW9uLCBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmVsZW1lbnRUb1VwZGF0ZSkpKQotICAg
ICAgICAgICAgcmV0dXJuIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6RGF0YURldGVjdG9y
OworICAgICAgICAgICAgcmV0dXJuIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6RGF0YURl
dGVjdG9yOwogI2VuZGlmCiAKICAgICAgICAgaWYgKEhUTUxFbGVtZW50Ojppc0ltYWdlT3Zlcmxh
eVRleHQoKm5vZGVBdExvY2F0aW9uKSkKLSAgICAgICAgICAgIHJldHVybiBJbWFnZUV4dHJhY3Rp
b25VcGRhdGVSZXN1bHQ6OlRleHQ7CisgICAgICAgICAgICByZXR1cm4gVGV4dFJlY29nbml0aW9u
VXBkYXRlUmVzdWx0OjpUZXh0OwogCi0gICAgICAgIHJldHVybiBJbWFnZUV4dHJhY3Rpb25VcGRh
dGVSZXN1bHQ6Ok5vVGV4dDsKKyAgICAgICAgcmV0dXJuIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJl
c3VsdDo6Tm9UZXh0OwogICAgIH0pKCk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcih1cGRhdGVS
ZXN1bHQpOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NP
TlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogdm9pZCBXZWJQYWdlOjpzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNDRkMzNl
Mzc3Nzk3ODQ2NDJjNGNjN2ZlZmFmMmQzMjMzY2M4ZjhmYS4uMGUzNDFiNjBjYzgyOTUxNDVkYmZh
NWI1M2U0MDg4OWI1ZDNkOThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMzEwLDcgKzMxMCw3IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOwogCiBlbnVtIGNsYXNzIEZpbmRPcHRpb25zIDogdWludDE2X3Q7CiBlbnVtIGNsYXNz
IERyYWdDb250cm9sbGVyQWN0aW9uIDogdWludDhfdDsKLWVudW0gY2xhc3MgSW1hZ2VFeHRyYWN0
aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdDsKK2VudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBk
YXRlUmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3MgU3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlIDogdWludDhfdDsKIAogc3RydWN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZTsKQEAgLTE0
MDMsOSArMTQwMyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFu
Z2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKIAotI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJD
b3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxl
bWVudD4mJik+JiYpOwotICAgIHZvaWQgdXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChX
ZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENv
bnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQpPiYmKTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6
OkVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50
PiYmKT4mJik7CisgICAgdm9pZCB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFdlYkNv
cmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4
dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCk+JiYpOwogI2VuZGlmCiAKICNpZiBI
QVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAg
LTIzNDcsOSArMjM0Nyw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eT4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFZlY3RvcjxzdGQ6OnBhaXI8
V2Vha1B0cjxXZWJDb3JlOjpIVE1MRWxlbWVudD4sIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4+Pj4gbV9lbGVtZW50c1BlbmRpbmdJbWFn
ZUV4dHJhY3Rpb247Ci0gICAgV2Vha0hhc2hTZXQ8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+IG1fZWxl
bWVudHNXaXRoRXh0cmFjdGVkSW1hZ2VzOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICBWZWN0b3I8c3RkOjpwYWlyPFdlYWtQdHI8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+LCBWZWN0b3I8
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+Pj4+IG1f
ZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uOworICAgIFdlYWtIYXNoU2V0PFdlYkNvcmU6
OkhUTUxFbGVtZW50PiBtX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHM7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXRUJYUikgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA4
M2ZlNTViMGM0MDRhMDllYjZmNDc3ODM4Zjg2ZjE4MDU2Y2ViOGViLi41NjE4YTM0M2RlNGE1NzQ2
YjU5Y2JiMGYxNzE0YWY4Yzc1MmZjMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTY0Miw3ICs2NDIsNyBAQCBH
ZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEludmFsaWRhdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcigpCiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIFVwZGF0
ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlv
blJlc3VsdCByZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVtZW50LCBX
ZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6SW1h
Z2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0IHJlc3VsdCkgQXN5bmMKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCisgICAgVXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChzdHJ1Y3QgV2Vi
Q29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0IHJlc3VsdCwgc3RydWN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0IGVsZW1lbnQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpb24pIC0+IChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQgcmVzdWx0KSBBc3lu
YwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQppbmRleCAzODg5ZDI2NzA5YzY3ZGE0MDQyNzUyNWFjY2ZmNDcyMmMyMGIzNzQ2Li5l
M2M3MWFmYzMzMWZhZTc1YzFjYmFlMzcwYTk0NGUzMWI2OGI4ZDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTYxNiw3ICs2MTYsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxOU0ludGVnZXI+IHRvVGFnKFdlYkNvcmU6OkNvbnRleHRN
ZW51QWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFnVG9nZ2xlVmlk
ZW9FbmhhbmNlZEZ1bGxzY3JlZW47CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xh
dGU6CiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1RyYW5zbGF0ZTsKLSAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW1hZ2U6CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgLi4uIENvbnRleHRNZW51SXRlbUxhc3RDdXN0b21U
YWc6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NjcwOGEzOTNkMTA1YTU1OGNiMGU2NDQ2ZGIwZDI1MWVlNjczNDA1OS4uNzBmYTVlMmYwMDdjM2Nl
YWU3MDkwODM2YTdlOWVmYjFlNjcwZGJhNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA2LTA3ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3RyZWFtIFdlYktp
dCBzdXBwb3J0IGZvciBMaXZlIFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzg5MzM2ODQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSBJTUFHRV9FWFRSQUNUSU9OIHdpdGggVklTVUFMX0lOVEVMTElHRU5DRS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMu
bW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdl
Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50
Vmlld0VkaXRpbmdBY3Rpb25zLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0ltbWVkaWF0ZUFjdGlvblRlc3RzLm1tOgorCiAyMDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gRmluZC1pbi1wYWdlIHNo
b3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBvdmVybGF5cwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0Lm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0Lm1tCmlu
ZGV4IDZjYmZjODU3ZmNlZjQzNDVmMmU1ZTdkODc0NmYyNTVjZGEyYTVmMTguLjdiMjUwMjZlOWZi
ZTJkMTM4ZWFhMzViYWFlNGUxNTBhZGNjMTBjYzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3QubW0KQEAgLTc3
LDcgKzc3LDcgQEAgVEVTVChJbmplY3RlZEJ1bmRsZUhpdFRlc3QsIFRleHRQYXJhZ3JhcGgpCiAg
ICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGhhc1NlbGVjdGFibGVUZXh0QXQ6Q0dQb2ludE1ha2Uo
MzAwLCAzMDApXSk7CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCiAKIFRFU1QoSW5qZWN0ZWRCdW5kbGVIaXRUZXN0LCBJbWFnZU92
ZXJsYXkpCiB7CkBAIC04OSw2ICs4OSw2IEBAIFRFU1QoSW5qZWN0ZWRCdW5kbGVIaXRUZXN0LCBJ
bWFnZU92ZXJsYXkpCiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGhhc1NlbGVjdGFibGVUZXh0
QXQ6Q0dQb2ludE1ha2UoNDAwLCAzMDApXSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIH0gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbQppbmRleCBlOTM5Y2RkNjllOThj
MzYyYThkYTg3ZjViNTNiMGY1ODQ2NGE1MmI2Li44MWE1ZWRjMDRkZDRmN2ZkZjUxYWE5M2Q5ODEw
MWI2NzA3YzY0NTFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tCkBAIC0zODUsNyArMzg1LDcgQEAgVEVT
VChEcmFnQW5kRHJvcFRlc3RzLCBDb2xvcklucHV0RXZlbnRzKQogCiAjZW5kaWYgLy8gRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRHJhZ0VsZW1l
bnRXaXRoSW1hZ2VPdmVybGF5KQogewpAQCAtNDMyLDYgKzQzMiw2IEBAIFRFU1QoRHJhZ0FuZERy
b3BUZXN0cywgRHJhZ1NlbGVjdGVkVGV4dEluSW1hZ2VPdmVybGF5KQogICAgIEVYUEVDVF9XS19T
VFJFUShkcmFnZ2VkVGV4dC5nZXQoKSwgImZvb2JhciIpOwogfQogCi0jZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAj
ZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5Q
YWdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdl
Lm1tCmluZGV4IDI4Zjk4YjkxN2RmMTU2NTRiMGY3MTU1NzFkOGMyMGJlYTI4NTVlNmUuLmZjNWIy
NGZjMmJjZTEyNmU1OGU0MDIxOGIyYTllNTA5Nzk2ODgyY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KQEAgLTI5Niw3ICsy
OTYsNyBAQCBURVNUKFdlYktpdCwgRmluZEFuZFJlcGxhY2UpCiAgICAgRVhQRUNUX1dLX1NUUkVR
KCJoaSBoaSIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVu
dC5ib2R5LnRleHRDb250ZW50Il0pOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBURVNUKFdlYktpdCwgRmluZFRleHRJbklt
YWdlT3ZlcmxheSkKIHsKQEAgLTMxOCw2ICszMTgsNiBAQCBURVNUKFdlYktpdCwgRmluZFRleHRJ
bkltYWdlT3ZlcmxheSkKICAgICB9CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNlbmRpZiAvLyAhUExB
VEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0K
aW5kZXggYmI1NzNlMzlkZWNkNDIzNzkxZGE0YjdjNTYzMmJjNjA5YWYzYzU0Yi4uMzQ5ODIxMzIy
OGIyNDhmNTVhOTJmZTY1NmQ0YTE5N2U1ZDU3OGU2NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRWaWV3
RWRpdGluZ0FjdGlvbnMubW0KQEAgLTczLDcgKzczLDcgQEAgVEVTVChXZWJLaXQsIEludm9rZVNo
YXJlV2l0aG91dFNlbGVjdGlvbikKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlv
blVwZGF0ZV07CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQogCiBURVNUKFdlYktpdCwgQXBwSGlnaGxpZ2h0c0luSW1hZ2VPdmVybGF5cykK
IHsKQEAgLTk5LDYgKzk5LDYgQEAgVEVTVChXZWJLaXQsIEFwcEhpZ2hsaWdodHNJbkltYWdlT3Zl
cmxheXMpCiAgICAgRVhQRUNUX0VRKFtjb250ZW50VmlldyB0YXJnZXRGb3JBY3Rpb246Y3JlYXRl
SGlnaGxpZ2h0SW5OZXdHcm91cFdpdGhSYW5nZVNlbGVjdG9yIHdpdGhTZW5kZXI6bmlsXSwgY29u
dGVudFZpZXcpOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVO
QUJMRShBUFBfSElHSExJR0hUUykKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpICYm
IEVOQUJMRShBUFBfSElHSExJR0hUUykKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rp
b25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlv
blRlc3RzLm1tCmluZGV4IDlkNDYyYTAxMGE4M2ZkZDg5YWUwNDI5ZjY4ODI4YTM4YTg3MmQ5MDYu
LjZkOWRmZGI2YTcxMDNkNmI2YjVjYTBhMDZmMWJhYWVjNjllMDhiMGQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlvblRlc3RzLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlvblRlc3RzLm1tCkBA
IC0xMjUsNyArMTI1LDcgQEAgVEVTVChJbW1lZGlhdGVBY3Rpb25UZXN0cywgSW1tZWRpYXRlQWN0
aW9uT3ZlckJvZHkpCiAgICAgRVhQRUNUX0VRKFtoaXRUZXN0UmVzdWx0IGxvb2t1cFRleHRdLmxl
bmd0aCwgMFUpOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQogCiBURVNUKEltbWVkaWF0ZUFjdGlvblRlc3RzLCBJbW1lZGlhdGVB
Y3Rpb25PdmVySW1hZ2VPdmVybGF5KQogewpAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1QoSW1tZWRp
YXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJJbWFnZU92ZXJsYXkpCiAgICAgRVhQ
RUNUX1dLX1NUUkVRKFtoaXRUZXN0UmVzdWx0IGxvb2t1cFRleHRdLCAiZm9vYmFyIik7CiB9CiAK
LSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdj
N2I4Mzc5MGNmM2JmYWM1NzkxMDVjNmM5ODMzYTc4ZjFhNmEzNDAuLjYzMDY4ZTY0M2U4ZTg1NTc1
MWQzY2JlNDExN2EzMTk1Y2FkMTZlNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMS0wNi0w
NyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBVcHN0
cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbmFtZSBgZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbmAgdG8gYGZhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb25gLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdl
LW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vYmFzaWMtaW1hZ2Utb3Zlcmxh
eS5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2stbGlu
ay13aXRoLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Ut
b3ZlcmxheS5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1h
Z2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3Zlcmxh
eS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVu
dC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0
aC16ZXJvLWZvbnQtc2l6ZS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0
aC16ZXJvLWZvbnQtc2l6ZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250
LXNpemUuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdl
LW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXkt
d2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1p
bi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1p
bi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zlcmxh
eS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbC4K
KyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdv
cmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mv
c2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zlcmxh
eS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5
LWluc2lkZS1saW5rLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1h
Z2Utb3ZlcmxheS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1p
bi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0aW9u
LXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVu
dS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVu
dS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2NvcHkt
aW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwuCisgICAgICAgICogZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVz
LWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRl
eHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQt
ZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRl
eHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWwuCisgICAgICAgICogZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGlu
ay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4t
bGluay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1t
b3VzZS1kcmFnLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2Ut
ZHJhZy5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3Nl
bGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLWV4cGVjdGVkLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5
LXdpdGgtbW91c2UtZHJhZy0yLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNl
LWRyYWctMi5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFj
L3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNr
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2Vz
LW5vdC1maXJlLWNsaWNrLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9l
cy1ub3QtZmlyZS1jbGljay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1k
cmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJh
Zy1leHBlY3RlZC1taXNtYXRjaC5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMv
c2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLmh0bWwuCisgICAgICAgICogZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXku
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1k
cmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbC4KKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1k
cmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWlt
YWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1p
c21hdGNoLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4
cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMv
c2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sLgorCiAyMDIxLTA2
LTA3ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBVbmV4cGVjdGVkIHNjcm9sbGluZyB3aGVuIHN3aXRjaGluZyBmb2N1cyBmcm9tIGEgdGV4dCBp
bnB1dCB0byBhIHNlbGVjdCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0
Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vYmFzaWMt
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjNjM5M2E5ZDJiZmVjMmZiMGFmYTU4YzA3MjgxZGViMjM2MWE3Njg5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1t
aXNtYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAu
cG5nIj48L2ltZz4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jh
c2ljLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5OWEwY2U2MTgwNmU4ZWEzYTNiMzg0ZWVjNWY4NjkwNjgzOGM2YzQ3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5Pgot
PGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0
PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zl
cmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFt7Ci0gICAgICAgICAgICAg
ICAgdGV4dCA6ICJIZWxsbyIsCi0gICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgIH1dLAotICAgICAgICB9Ci0g
ICAgXSk7Ci0gICAgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmdldEVsZW1lbnRCeUlkKCJp
bWFnZS1vdmVybGF5Iikuc3R5bGUuY29sb3IgPSAiYmxhY2siOwotfSk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2NsaWNrLWxpbmstd2l0aC1p
bWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDg3YmE0ZGYzNWE1YTZlZWIwNjEwODY5NDk3
MmExNjBlY2ZlOTc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13
aXRoLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi1QQVNTIGNsaWNrQ291bnQgYmVjYW1lIDIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2NsaWNrLWxpbmstd2l0
aC1pbWFnZS1vdmVybGF5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxMGU4
NmVmODdjZDE2NzMzMmMwZWE2MzZkNWYxN2E4YjkzMDk2MzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbD4KLTxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6
IDA7Ci0gICAgbGVmdDogMDsKLX0KLQotYSB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwot
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo1
NDMyMSI+Ci0gICAgPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9p
bWc+Ci08L2E+Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci1hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewotICAgIGNsaWNrQ291bnQgPSAwOwotCi0gICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiYSIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKGV2ZW50
KSA9PiB7Ci0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIGNsaWNrQ291
bnQrKzsKLSAgICB9KTsKLQotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAg
ICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0g
ICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCks
Ci0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMC4yNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjI1KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAg
ICAgICB9Ci0gICAgXSk7Ci0KLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0ZXh0
IDogImhlbGxvIiwKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCks
Ci0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUp
LAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUp
LAotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDEw
MCwgNTApOwotICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JEb3VibGVUYXBEZWxheSgpOwotICAg
IGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMzAwLCAzMDApOwotCi0gICAgc2hvdWxkQmVjb21l
RXF1YWwoImNsaWNrQ291bnQiLCAiMiIsIGZpbmlzaEpTVGVzdCk7Ci19KTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1j
cmVhdGlvbi1pcy1pZGVtcG90ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM1ZTY3MzA1YTEw
MDk2Nzc3MmVmOTcyYjVjZjI2Y2Q4ZGExMGQ1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1h
Z2UpLmNoaWxkRWxlbWVudENvdW50IGlzIDIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVy
bGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjZjY2RmYjYzM2U5YjI0ZTQzZjA0YzNmOThmZjMwMmY1M2ZkYjkyOC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVu
dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwv
aW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgaW1h
Z2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDEwOyArK2kpIHsKLSAgICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1h
Z2UsIFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
SGVsbG8iLAotICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICB9Ci0gICAgICAg
IF0pOwotICAgIH0KLSAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmNo
aWxkRWxlbWVudENvdW50IiwgIjIiKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVy
by1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9u
dC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRhY2ExYjMyZGJjYzU3NThkYmE2ZjE4MzA5ZWU5M2FlNTJkM2YwZmQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250
LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWltZyB7Ci0gICAg
Zm9udC1zaXplOiAwOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1m
b250LXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
aW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNGIwNTY0OTk2ODE0ZGYzODVkMGI4ZWUyMjJhOTk4OWRi
NTUwMTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWltZyB7Ci0gICAg
Zm9udC1zaXplOiAwOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwg
WwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC41LCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUs
IDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBdKTsKLSAgICBp
bnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkuZ2V0RWxlbWVudEJ5SWQoImltYWdlLW92ZXJsYXki
KS5zdHlsZS5jb2xvciA9ICJibGFjayI7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1z
dHlsZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMtZXhwZWN0ZWQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE1MjQ1NjA5OTY0YWJjOTRkNzg2ZTgwOGE1
NTg4YWVlNGJmNzg1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJs
YXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1p
bWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsK
LX0KLQotOjpzZWxlY3Rpb24gewotICAgIGNvbG9yOiByZWQ7Ci19Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2lt
Zz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGNvbnN0
IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmlu
c3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAg
ICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAg
ICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0g
ICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAg
fQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJu
YWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQi
KSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVj
dGlvbi1zdHlsZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU5NTJiNWNi
MzZmMjBhYTM1ZWJlMGE0Y2NmYTUxN2E3NDY1YTEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAg
bGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNv
dXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgY29uc3QgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwot
ICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAot
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAot
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0g
ICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBnZXRTZWxlY3Rp
b24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlT
ZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9u
LXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
MTFlNGM3MzI3OGM3NWU1NjA3YTkxZDQxN2RmMDgyZjhmZDFjNDlkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVy
bGF5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotUEFTUyBzZWxl
Y3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsLmxlbmd0aCBpcyAxCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJl
Y3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0NTYyYjYyMGIzZDc1NzY1NGE0
NmZiNWMyNjkyMDA4YTJhZGYyNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mv
Y29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDUzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
dHlsZT4KLWJvZHksIGh0bWwgewotICAgIG1hcmdpbjogMDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5n
Ij48L2ltZz4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zl
cmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWwotICAgICAgICB7Ci0gICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjMpLAotICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAuMSksCi0gICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC4yKSwKLSAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuNCksCi0gICAgICAg
ICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
dGV4dCA6ICJBQiIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjEsIDAuMyksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4yLCAwLjIpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4zKSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC40KSwKLSAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJD
RCIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjIsIDAuMiksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC4zLCAwLjEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNCwgMC4yKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4zKSwKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGF3YWl0IFVJSGVscGVyLmxv
bmdQcmVzc0F0UG9pbnQoODAsIDEyMCk7Ci0gICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVj
dGlvblRvQXBwZWFyKCk7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwot
ICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOwotICAgIHNlbGVj
dGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwgPSBhd2FpdCBVSUhlbHBlci5nZXRVSVNlbGVjdGlv
blZpZXdSZWN0cygpOwotICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5n
QWxsLmxlbmd0aCIsICIxIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdv
cmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGUxYTcyYjIzNzNiYTZj
Y2FlMGVkZmVjMjU2MzkzOGMxNjk5OGY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
aW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw3ICswLDAgQEAKLVBBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKLVBB
U1MgRGlzbWlzc2VkIHNlbGVjdGlvbgotUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2Vs
ZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4NTAyY2Y0NTU2Zjg2MjY1M2ZmZWFmNmE3
N2JmYTJlMDAxNzQwNDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvcmVzZWxl
Y3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsK
LSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08
L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVu
LTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92
ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiZm9vIiwKLSAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAg
ICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBdKTsKLSAg
ICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwgMTAwKTsKLSAgICBzZWxlY3Rp
b25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwotICAg
IHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOwotCi0gICAgYXdhaXQgVUlI
ZWxwZXIuYWN0aXZhdGVBdCgyMDAsIDMwMCk7Ci0gICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclNl
bGVjdGlvblRvRGlzYXBwZWFyKCk7Ci0gICAgdGVzdFBhc3NlZCgiRGlzbWlzc2VkIHNlbGVjdGlv
biIpOwotCi0gICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDEwMCk7Ci0g
ICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBl
YXIoKTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKLQotICAg
IGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Nl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjNDFhYTQyZjZlNjkyNDNhYjc0MTJjMDhjMzY3OTZjMjYxNTZlM2I3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92
ZXJsYXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1QQVNTIHNl
bGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUt
bGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQxYWE0MmY2ZTY5MjQzYWI3NDEy
YzA4YzM2Nzk2YzI2MTU2ZTNiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9z
ZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMg
MQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Nl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmsuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92
ZXJsYXktaW5zaWRlLWxpbmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhm
NDZjOWQ1OTQyODY1ZmU2MDg4YzVkNTc3OWVmNDIzYjE2ZGYwMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5r
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci0KLWEgewotICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxhIGhyZWY9Imh0dHA6Ly9s
b2NhbGhvc3Q6NTQzMjEiIG9uY2xpY2s9ImV2ZW50LnByZXZlbnREZWZhdWx0KCkiPgotICAgIDxp
bWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9hPgot
PHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
IGFzeW5jICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJp
bWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAg
ICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0g
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKLSAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKLSAgICAg
ICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCi0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotICAgIGF3YWl0IFVJSGVscGVy
LmxvbmdQcmVzc0F0UG9pbnQoMjAwLCA1MCk7Ci0gICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBV
SUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKLSAgICBzaG91bGRCZSgic2VsZWN0
aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0
LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTYyMzdjYzg1ZDEyNGVkNjExNjJjYTc5Mzg0OTli
NTM1NGM5Y2Y2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQw
MC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShp
bWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDAuNSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICBjaGls
ZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJ3
b3JsZCIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NB
dFBvaW50KDIwMCwgMzAwKTsKLSAgICBzZWxlY3Rpb25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndh
aXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwotICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0cy5s
ZW5ndGgiLCAiMSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMt
aW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3MmQ2NGMxZmUwNTU2ODgx
NzRiNTZkNmMwOTYxNGYxYjhhYzEyYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9p
b3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNiArMCwwIEBACi1QQVNTIGluaXRpYWxTZWxlY3Rpb25SZWN0cy5sZW5ndGgg
aXMgMQotUEFTUyBzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsLmxlbmd0aCBpcyA0Ci1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0
aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0N2I1MzRmZjBkM2RmYjU5M2ZiMGUw
OWQ3MjUyODRlMDJlMmQ0MmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2Vs
ZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk3
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1p
bWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsK
LX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
Z3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewotICAgIGxldCBpbWFn
ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxs
SW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjEsIDAuMjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjI1LCAwLjEpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjM1LCAwLjIpLAotICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC4zNSksCi0gICAgICAgICAgICBjaGlsZHJl
bjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJvbmUi
LAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4x
LCAwLjI1KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjI1LCAwLjEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuMzUsIDAuMiksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMzUpLAotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAuNDUpLAotICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQ1LCAwLjMpLAotICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjU1LCAwLjQpLAotICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC41NSksCi0gICAgICAgICAgICBj
aGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6
ICJ0d28iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC4zLCAwLjQ1KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjQ1LCAwLjMpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNTUsIDAuNCksCi0gICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuNTUpLAotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNjUpLAotICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjY1LCAwLjUpLAotICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjc1LCAwLjYpLAotICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNiwgMC43NSksCi0gICAgICAg
ICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
dGV4dCA6ICJ0aHJlZSIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjUsIDAuNjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43NSwgMC42KSwKLSAgICAgICAgICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNiwgMC43NSksCi0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNywgMC44NSksCi0gICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuODUsIDAuNyksCi0gICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuOTUsIDAuOCksCi0g
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44LCAwLjk1KSwK
LSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICB0ZXh0IDogImZvdXIiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC43LCAwLjg1KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjg1LCAwLjcpLAotICAgICAgICAgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuOTUsIDAuOCksCi0gICAgICAg
ICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjgsIDAuOTUp
LAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBdKTsK
LQotICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoOTAsIDkwKTsKLSAgICBpbml0
aWFsU2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBl
YXIoKTsKLSAgICBzaG91bGRCZSgiaW5pdGlhbFNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7
Ci0KLSAgICB0ZXN0UnVubmVyLmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKLSAgICBhd2FpdCBV
SUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKLSAgICBzZWxlY3Rpb25SZWN0c0Fm
dGVyU2VsZWN0aW5nQWxsID0gYXdhaXQgVUlIZWxwZXIuZ2V0VUlTZWxlY3Rpb25WaWV3UmVjdHMo
KTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGgi
LCAiNCIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10
ZXh0LXdpdGgtY29udGV4dC1tZW51LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29u
dGV4dC1tZW51LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTAy
MzRlYzFhYTQ3MDkzMDI3YWQ1ZWJiNjYwMDc2YmY2ZDkxODg3OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVu
dS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBBU1MgZWRpdG9y
LnRleHRDb250ZW50IGlzICJmb29iYXIiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0
LW1lbnUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiMWZkODFlMjNhMWUyM2NkZjMxMDJlZTM4Nzk4YzEzMjNm
MzQ4ZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVy
bGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewot
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLQot
ZGl2W2NvbnRlbnRlZGl0YWJsZV0gewotICAgIGJvcmRlcjogMXB4IHNvbGlkIHRvbWF0bzsKLX0K
LTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3Jl
ZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPGRpdiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Ci08c2Ny
aXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdl
T3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb29iYXIiLAotICAgICAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7
Ci0KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMTUwKTsKLQotICAgIGZvciAobGV0
IGl0ZW0gb2YgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKCkpIHsKLSAgICAgICAgaWYgKGl0ZW0u
dGl0bGUgPT09ICJDb3B5IikKLSAgICAgICAgICAgIGl0ZW0uY2xpY2soKTsKLSAgICB9Ci0KLSAg
ICBlZGl0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXZbY29udGVudGVkaXRhYmxlXSIp
OwotICAgIGVkaXRvci5mb2N1cygpOwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIp
OwotCi0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAiZm9v
YmFyIik7Ci0gICAgZWRpdG9yLnJlbW92ZSgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlz
YWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNh
Ymxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzOGMwZTdiMzcxZGJjMWFlZjgyNzg1MzZlNmQyMGVlZTNlZTdiMjU5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1k
aXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsOSArMCwwIEBACi1QQVNTIGZvdW5kVGl0bGUxIGlzIHRydWUKLVBBU1MgZm91bmRU
aXRsZTIgaXMgdHJ1ZQotUEFTUyBTZWxlY3RlZCBpbWFnZSBvdmVybGF5Ci1QQVNTIGZvdW5kVGl0
bGUxIGlzIGZhbHNlCi1QQVNTIGZvdW5kVGl0bGUyIGlzIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRp
c2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFw
cC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzMmJhYjU5ODRmMzg4MjQ1Mjc5MWQwOGI5MmJkN2E5NjViOTQ0NDcxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGln
aGxpZ2h0LW1lbnUtaXRlbXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGFwcEhpZ2hsaWdodHNFbmFi
bGVkPXRydWUgXSAtLT4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotYm9keSwgaHRtbCB7Ci0g
ICAgbWFyZ2luOiAwOwotfQotCi1wIHsKLSAgICBmb250LXNpemU6IDMycHg7Ci0gICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08cD5IZWxsbyB3b3Js
ZCB0aGlzIGlzIGEgdGVzdC48L3A+Ci08L2JvZHk+Ci08c2NyaXB0PgotdmFyIGZvdW5kVGl0bGUx
OwotdmFyIGZvdW5kVGl0bGUyOwotCi1mdW5jdGlvbiBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRl
eHRNZW51SXRlbXMoKSB7Ci0gICAgZm91bmRUaXRsZTEgPSBmYWxzZTsKLSAgICBmb3VuZFRpdGxl
MiA9IGZhbHNlOwotCi0gICAgbGV0IFt0aXRsZTEsIHRpdGxlMl0gPSBpbnRlcm5hbHMuYXBwSGln
aGxpZ2h0Q29udGV4dE1lbnVJdGVtVGl0bGVzOwotICAgIGZvciAobGV0IGl0ZW0gb2YgZXZlbnRT
ZW5kZXIuY29udGV4dENsaWNrKCkpIHsKLSAgICAgICAgaWYgKGl0ZW0udGl0bGUgPT09IHRpdGxl
MSkKLSAgICAgICAgICAgIGZvdW5kVGl0bGUxID0gdHJ1ZTsKLQotICAgICAgICBpZiAoaXRlbS50
aXRsZSA9PT0gdGl0bGUyKQotICAgICAgICAgICAgZm91bmRUaXRsZTIgPSB0cnVlOwotICAgIH0K
LX0KLQotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgdGV4dCA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoInAiKTsKLSAgICBsZXQgdGV4dFJlY3QgPSB0ZXh0LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImltZyIpOwotCi0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
LSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
LSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0g
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAg
ICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGV4dCA6ICJmb29iYXIiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNl
bGVjdEFsbENoaWxkcmVuKHRleHQpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRleHRS
ZWN0LmxlZnQgKyB0ZXh0UmVjdC53aWR0aCAvIDIsIHRleHRSZWN0LnRvcCArIHRleHRSZWN0Lmhl
aWdodCAvIDIpOwotICAgIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtcygpOwot
ICAgIHNob3VsZEJlVHJ1ZSgiZm91bmRUaXRsZTEiKTsKLSAgICBzaG91bGRCZVRydWUoImZvdW5k
VGl0bGUyIik7Ci0KLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5h
bHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiZGl2I2ltYWdlLW92ZXJsYXkiKSk7
Ci0gICAgdGVzdFBhc3NlZCgiU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheSIpCi0gICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oMjAwLCAyMDApOwotICAgIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29udGV4
dE1lbnVJdGVtcygpOwotICAgIHNob3VsZEJlRmFsc2UoImZvdW5kVGl0bGUxIik7Ci0gICAgc2hv
dWxkQmVGYWxzZSgiZm91bmRUaXRsZTIiKTsKLQotICAgIHRleHQucmVtb3ZlKCk7Ci19KTsKLTwv
c2NyaXB0PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5
LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDNlNWVlZWRiZjFiNDM1Zjk2YzNhMjBiZjgxNDAxYWVlNDMzMTk4MS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1s
aW5rLXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICsw
LDAgQEAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21h
Yy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92
ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOWE0ZWRjODkwNGFhMTdiODg3ODViMjc4N2M0NGE3MzkxNzE3MzY3Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5r
LXdpdGgtbW91c2UtZHJhZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRp
b246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4KLTwv
aGVhZD4KLTxib2R5PgotPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo1NDMyMSI+Ci0gICAgPGlt
ZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2E+Ci08
c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2Ug
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbElt
YWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAg
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSks
Ci0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAxKSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBd
KTsKLQotICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewotICAg
ICAgICB0ZXN0RmFpbGVkKCJPYnNlcnZlZCBjbGljay4iKTsKLSAgICB9KTsKLQotICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzAwKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0y
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWY3ZjM2M2QyOTY0OGFlODgwMTY2MWRh
NTkxMDkwMzc1YzVhZjZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAg
bGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
LSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
LSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
LSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAot
ICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDEiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogImhlbGxvd29ybGQyIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9t
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICBjaGlsZHJl
bjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxs
b3dvcmxkMyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxl
Y3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3Rvcigi
ZGl2I2ltYWdlLW92ZXJsYXkiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91
c2UtZHJhZy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmZlY2UzNDYyNDIxZTk0ZGNlZGFlODJmZjk2OTFhMjc4
YjEyNjk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1v
dmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAw
eDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9
PiB7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIiksIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDEiLAotICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwKLSAgICAg
ICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAu
NSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQyIiwKLSAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCi0gICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAg
ICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41
KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSks
Ci0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0g
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAg
ICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAg
ICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGV4dCA6ICJoZWxsb3dvcmxkMyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgNTApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzUwKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1k
b2VzLW5vdC1maXJlLWNsaWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJh
Zy1kb2VzLW5vdC1maXJlLWNsaWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDNlNWVlZWRiZjFiNDM1Zjk2YzNhMjBiZjgxNDAxYWVlNDMzMTk4MS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw0ICswLDAgQEAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3Qt
ZmlyZS1jbGljay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUt
Y2xpY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE4NzNjOTgxOTIzMjNj
MzExMDMyMGNiZDNlZWJlOGYwZjMyYmEyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1j
bGljay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5
PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08
c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2Ug
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbElt
YWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAg
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSks
Ci0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAxKSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBd
KTsKLQotICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewotICAg
ICAgICB0ZXN0RmFpbGVkKCJPYnNlcnZlZCBjbGljay4iKTsKLSAgICB9KTsKLQotICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzAwKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1l
eHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVk
LW1pc21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3ZjRjNzc0NTAy
ODM2YzFkM2I3NzYxYjRjNzE2MjYzNWQ5YTY2YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1p
c21hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFn
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1NGMzNjA2YWQ0OWNhYjQ2NTRm
ODhhZTllZjE0YTgzYTJhOWVmYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMv
c2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+
Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDog
MDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
aW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAg
ICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSks
Ci0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0g
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAg
ICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAg
ICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyg1MCwgMzAwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlODk4OGJiODA5NTZkZDYyNDUzOGQ5Njg4YTNkY2Y0
MmU0OGQxNTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0
ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxl
PgotYm9keSwgaHRtbCB7Ci0gICAgbWFyZ2luOiAwOwotfQotCi1pbWcgewotICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAgICB3aWR0aDogNDAwcHg7
Ci0gICAgaGVpZ2h0OiA0MDBweDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9ib2R5Pgot
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXku
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I2NzdkMjAyY2ZjMWQ4YmRlNmJh
ZWQxNmMxN2Y5MTI5ODE5MTJlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9z
ZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw1NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5
bGU+Ci0uYmFjayB7Ci0gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOwotICAgIGJhY2tncm91
bmQtaW1hZ2U6IHVybCguLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcpOwotfQotCi0u
ZnJvbnQgewotICAgIG9wYWNpdHk6IDA7Ci19Ci0KLWJvZHksIGh0bWwgewotICAgIG1hcmdpbjog
MDsKLX0KLQotLmZyb250LCAuYmFjayB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRv
cDogMDsKLSAgICBsZWZ0OiAwOwotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4
OwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBjbGFzcz0iYmFjayI+PC9kaXY+
Ci08aW1nIGNsYXNzPSJmcm9udCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5w
bmciPjwvaW1nPgotPGRpdiBjbGFzcz0iYmFyIj48L2Rpdj4KLTxzY3JpcHQ+Ci1hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBb
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjUsIDEuNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEu
NSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MiwgMSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MiksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEuNSksCi0gICAgICAgICAgICAgICAgICAgIHRv
cFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMS41LCAwLjUpLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDIsIDEpLAotICAgICAgICAg
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMiksCi0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBn
ZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFn
ZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKLX0pOwotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWlu
LWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3ZjRjNzc0NTAyODM2YzFkM2I3NzYxYjRjNzE2MjYzNWQ5
YTY2YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4t
ZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
dHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBs
ZWZ0OiAwOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92
ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDdlM2EwMTFkMzhjNDE1ZjFjMjdjNTdmYjM3NDQxMWQ1NzgxYjZk
NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJh
Z2dhYmxlLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5PgotPGltZyBkcmFnZ2FibGU9InRydWUiIHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgKCkgPT4gewotICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAg
ICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAp
LAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAg
ICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBnZXRTZWxlY3Rpb24o
KS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxl
Y3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNw
YXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJl
bnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2YmNkYWI5MGNkYTA2Y2I0YjVhYTA0NDFiYjJiOTM0OGM2OGY0NjA0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFy
ZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4K
LWJvZHksIGh0bWwgewotICAgIG1hcmdpbjogMDsKLX0KLQotZGl2IHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6IDQwMHB4Owot
ICAgIGhlaWdodDogNDAwcHg7Ci0gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOwotICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcpOwot
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdj48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVu
dC1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyMTBkMmQ5N2NmMGI3ODlhYTQ3NmFlNDQz
MmYwMzg0OWFhMzE3Y2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0
LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgot
LmJhY2sgewotICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKLSAgICBiYWNrZ3JvdW5kLWlt
YWdlOiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nKTsKLX0KLQotLmZyb250
IHsKLSAgICBvcGFjaXR5OiAwOwotfQotCi1ib2R5LCBodG1sIHsKLSAgICBtYXJnaW46IDA7Ci19
Ci0KLS5mcm9udCwgLmJhY2sgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7
Ci0gICAgbGVmdDogMDsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLX0K
LTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgY2xhc3M9ImJhY2siPjwvZGl2PgotPGlt
ZyBjbGFzcz0iZnJvbnQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48
L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxl
dCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5p
bnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAg
ICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAot
ICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAg
fQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJu
YWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQi
KSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5LWV4
cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYzOTNhOWQyYmZlYzJmYjBhZmE1OGMw
NzI4MWRlYjIzNjFhNzY4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRj
aC5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5Pgor
PGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWltYWdl
LW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWEwY2U2MTgwNmU4ZWEzYTNiMzg0ZWVjNWY4Njkw
NjgzOGM2YzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWwKQEAgLTAsMCArMSwyNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7
CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAor
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAg
ICAgICAgY2hpbGRyZW46IFt7CisgICAgICAgICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCisgICAg
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAg
ICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisg
ICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwK
KyAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAx
KSwKKyAgICAgICAgICAgIH1dLAorICAgICAgICB9CisgICAgXSk7CisgICAgaW50ZXJuYWxzLnNo
YWRvd1Jvb3QoaW1hZ2UpLmdldEVsZW1lbnRCeUlkKCJpbWFnZS1vdmVybGF5Iikuc3R5bGUuY29s
b3IgPSAiYmxhY2siOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2stbGluay13
aXRoLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ODdiYTRkZjM1YTVh
NmVlYjA2MTA4Njk0OTcyYTE2MGVjZmU5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVy
bGF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgY2xpY2tDb3VudCBiZWNhbWUg
MgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2st
bGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MTBlODZlZjg3Y2QxNjczMzJjMGVhNjM2ZDVmMTdhOGI5MzA5NjM1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9jbGljay1s
aW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9CisKK2EgeworICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxh
IGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgorICAgIDxpbWcgc3JjPSIuLi9yZXNvdXJj
ZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9hPgorPHNjcmlwdD4KK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBj
bGlja0NvdW50ID0gMDsKKworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImEiKS5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIChldmVudCkgPT4geworICAgICAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOworICAgICAgICBjbGlja0NvdW50Kys7CisgICAgfSk7CisKKyAgICBpbnRlcm5hbHMu
aW5zdGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWworICAg
ICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCks
CisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKKyAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKKyAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUpLAorICAgICAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfQorICAgIF0pOworCisgICAgaW50ZXJuYWxz
Lmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiksIFsKKyAg
ICAgICAgeworICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKKyAgICAgICAgfQorICAgIF0pOworCisgICAgYXdh
aXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxMDAsIDUwKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0
Rm9yRG91YmxlVGFwRGVsYXkoKTsKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDMwMCwg
MzAwKTsKKworICAgIHNob3VsZEJlY29tZUVxdWFsKCJjbGlja0NvdW50IiwgIjIiLCBmaW5pc2hK
U1Rlc3QpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJs
YXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM1ZTY3
MzA1YTEwMDk2Nzc3MmVmOTcyYjVjZjI2Y2Q4ZGExMGQ1MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1jcmVh
dGlvbi1pcy1pZGVtcG90ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgaW50
ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmNoaWxkRWxlbWVudENvdW50IGlzIDIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3Jl
YXRpb24taXMtaWRlbXBvdGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNmNjZGZiNjMzZTliMjRlNDNmMDRjM2Y5OGZmMzAyZjUzZmRiOTI4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFn
ZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVl
bi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
ICgpID0+IHsKKyAgICBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgICAgICBpbnRlcm5hbHMuaW5zdGFs
bEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAg
ICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCisgICAgICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjUsIDEpLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgXSk7CisgICAgfQorICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc2hh
ZG93Um9vdChpbWFnZSkuY2hpbGRFbGVtZW50Q291bnQiLCAiMiIpOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXkt
aW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YWNhMWIzMmRiY2M1NzU4ZGJhNmYxODMwOWVlOTNhZTUyZDNmMGZkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVy
bGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CitpbWcgeworICAgIGZvbnQtc2l6ZTogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFn
ZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAxNGIwNTY0OTk2ODE0ZGYzODVkMGI4ZWUyMjJhOTk4OWRiNTUwMTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCkBAIC0w
LDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2lt
ZyB7CisgICAgZm9udC1zaXplOiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlt
ZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0Pgor
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zlcmxh
eShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjUsIDEpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAorICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAg
ICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisg
ICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUs
IDEpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBd
KTsKKyAgICBpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkuZ2V0RWxlbWVudEJ5SWQoImltYWdl
LW92ZXJsYXkiKS5zdHlsZS5jb2xvciA9ICJibGFjayI7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNl
bGVjdGlvbi1zdHlsZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYTUyNDU2MDk5NjRhYmM5NGQ3ODZlODA4YTU1ODhhZWU0YmY3
ODVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0
OiAwOworfQorCis6OnNlbGVjdGlvbiB7CisgICAgY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmci
PjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAg
Y29uc3QgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5h
bHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisg
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwK
KyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAg
ICAgICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihp
bnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92ZXJsYXkt
dGV4dCIpKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgt
c2VsZWN0aW9uLXN0eWxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1OTUyYjVjYjM2ZjIwYWEzNWViZTBh
NGNjZmE1MTdhNzQ2NWExMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVz
Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAg
IGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgKCkgPT4geworICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
KyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
KyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
KyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAor
ICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfQorICAgIF0pOworCisgICAgZ2V0U2VsZWN0
aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5
U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlv
bi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1p
bWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTFlNGM3MzI3OGM3NWU1NjA3
YTkxZDQxN2RmMDgyZjhmZDFjNDlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWlu
LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzZWxlY3Rp
b25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsLmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3Rz
LWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjQ1NjJiNjIwYjNkNzU3NjU0YTQ2ZmI1YzI2OTIwMDhhMmFkZjI3OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKQEAg
LTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
Ym9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1n
PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCithZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgYXN5bmMgKCkgPT4geworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjEsIDAuMyksCisgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4xKSwKKyAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjIpLAorICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC40KSwKKyAgICAgICAgICAgIGNo
aWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDog
IkFCIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuMSwgMC4zKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjIsIDAuMiksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjMpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjQpLAorICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkNEIiwKKyAg
ICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC4y
KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjMsIDAuMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC40LCAwLjIpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjMpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisgICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNz
QXRQb2ludCg4MCwgMTIwKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9B
cHBlYXIoKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAgYXdh
aXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgc2VsZWN0aW9uUmVj
dHNBZnRlclNlbGVjdGluZ0FsbCA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1Jl
Y3RzKCk7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwubGVu
Z3RoIiwgIjEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1p
bWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWRlMWE3MmIyMzczYmE2Y2NhZTBlZGZlYzI1NjM5MzhjMTY5OThmOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw3IEBACitQQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIERpc21pc3Nl
ZCBzZWxlY3Rpb24KK1BBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWlu
LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ4NTAyY2Y0NTU2Zjg2MjY1M2ZmZWFmNmE3N2JmYTJlMDAxNzQwNDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVj
dC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48
L2ltZz4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2FkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
KyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
KyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
KyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAor
ICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAiZm9vIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKKyAgICBhd2FpdCBVSUhlbHBl
ci5sb25nUHJlc3NBdFBvaW50KDIwMCwgMTAwKTsKKyAgICBzZWxlY3Rpb25SZWN0cyA9IGF3YWl0
IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOworICAgIHNob3VsZEJlKCJzZWxl
Y3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOworCisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVB
dCgyMDAsIDMwMCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvRGlzYXBw
ZWFyKCk7CisgICAgdGVzdFBhc3NlZCgiRGlzbWlzc2VkIHNlbGVjdGlvbiIpOworCisgICAgYXdh
aXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDEwMCk7CisgICAgc2VsZWN0aW9uUmVj
dHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKKyAgICBzaG91
bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKKworICAgIGZpbmlzaEpTVGVzdCgp
OworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0MWFhNDJmNmU2OTI0M2FiNzQx
MmMwOGMzNjc5NmMyNjE1NmUzYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3Ro
IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lv
cy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0
MWFhNDJmNmU2OTI0M2FiNzQxMmMwOGMzNjc5NmMyNjE1NmUzYjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29y
ZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1BBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVy
bGF5LWluc2lkZS1saW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjhmNDZjOWQ1OTQyODY1ZmU2MDg4YzVkNTc3OWVmNDIzYjE2ZGYwMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmsuaHRtbApAQCAtMCww
ICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
aW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7
Cit9CisKK2EgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKK30KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiIG9uY2xpY2s9ImV2
ZW50LnByZXZlbnREZWZhdWx0KCkiPgorICAgIDxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3Jl
ZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9hPgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBsZXQgaW1h
Z2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFs
bEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjI1KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwLjI1KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAg
ICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAg
ICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAu
MjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMC4yNSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
fQorICAgIF0pOworICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCA1MCk7
CisgICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9B
cHBlYXIoKTsKKyAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdv
cmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxNjIzN2NjODVkMTI0ZWQ2MTE2
MmNhNzkzODQ5OWI1MzU0YzljZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5
Lmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsK
KyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgoranNUZXN0
SXNBc3luYyA9IHRydWU7CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewor
ICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBb
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwK
KyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAp
LAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICB0ZXh0IDogIndvcmxkIiwKKyAgICAgICAgICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAg
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKKworICAg
IGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCAzMDApOworICAgIHNlbGVjdGlv
blJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAg
c2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1y
ZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzJkNjRjMWZl
MDU1Njg4MTc0YjU2ZDZjMDk2MTRmMWI4YWMxMmI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWlu
LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBpbml0aWFs
U2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKK1BBU1Mgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVj
dGluZ0FsbC5sZW5ndGggaXMgNAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVj
dHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0N2I1MzRmZjBkM2RmYjU5M2Zi
MGUwOWQ3MjUyODRlMDJlMmQ0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zl
cmxheS5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6
IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkg
PT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAg
IGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjEsIDAuMjUpLAorICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjI1LCAwLjEpLAorICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjM1LCAwLjIpLAorICAg
ICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC4zNSksCisg
ICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGV4dCA6ICJvbmUiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4xLCAwLjI1KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjI1LCAwLjEpLAorICAgICAgICAgICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMzUsIDAuMiksCisgICAgICAgICAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMzUpLAor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAuNDUpLAor
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQ1LCAwLjMpLAor
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjU1LCAwLjQp
LAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC41
NSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJ0d28iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjQ1KSwKKyAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQ1LCAwLjMpLAorICAgICAgICAgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNTUsIDAuNCksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAu
NTUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAu
NjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjY1LCAw
LjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjc1
LCAwLjYpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
NiwgMC43NSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJ0aHJlZSIsCisgICAgICAgICAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNjUpLAorICAgICAgICAgICAgICAg
ICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNjUsIDAuNSksCisgICAgICAg
ICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43NSwgMC42
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNiwgMC43NSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNywgMC44NSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuODUsIDAuNyksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAuOTUsIDAuOCksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC44LCAwLjk1KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImZvdXIiLAorICAgICAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43LCAwLjg1KSwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjg1LCAwLjcpLAor
ICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
OTUsIDAuOCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjgsIDAuOTUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgIH0KKyAgICBdKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQo
OTAsIDkwKTsKKyAgICBpbml0aWFsU2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0
Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKKyAgICBzaG91bGRCZSgiaW5pdGlhbFNlbGVjdGlvblJl
Y3RzLmxlbmd0aCIsICIxIik7CisKKyAgICB0ZXN0UnVubmVyLmV4ZWNDb21tYW5kKCJTZWxlY3RB
bGwiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKyAg
ICBzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsID0gYXdhaXQgVUlIZWxwZXIuZ2V0VUlT
ZWxlY3Rpb25WaWV3UmVjdHMoKTsKKyAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHNBZnRlclNl
bGVjdGluZ0FsbC5sZW5ndGgiLCAiNCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2Nv
cHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3Zl
cmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDIz
NGVjMWFhNDcwOTMwMjdhZDVlYmI2NjAwNzZiZjZkOTE4ODc4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1v
dmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorUEFTUyBlZGl0b3IudGV4dENvbnRlbnQgaXMgImZvb2JhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4
dC13aXRoLWNvbnRleHQtbWVudS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40YjFmZDgxZTIzYTFlMjNjZGYzMTAyZWUzODc5OGMxMzIzZjM0OGQy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbApA
QCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6
IDA7Cit9CisKK2Rpdltjb250ZW50ZWRpdGFibGVdIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB0
b21hdG87Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxkaXYgY29udGVudGVkaXRhYmxlPjwv
ZGl2PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0
IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmlu
c3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiZm9vYmFyIiwKKyAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAg
ICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAor
ICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fQorICAgIF0pOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDE1MCk7CisKKyAg
ICBmb3IgKGxldCBpdGVtIG9mIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpKSB7CisgICAgICAg
IGlmIChpdGVtLnRpdGxlID09PSAiQ29weSIpCisgICAgICAgICAgICBpdGVtLmNsaWNrKCk7Cisg
ICAgfQorCisgICAgZWRpdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2W2NvbnRlbnRl
ZGl0YWJsZV0iKTsKKyAgICBlZGl0b3IuZm9jdXMoKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgiUGFzdGUiKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250
ZW50IiwgImZvb2JhciIpOworICAgIGVkaXRvci5yZW1vdmUoKTsKK30pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3Zlcmxh
eS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5
LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zOGMwZTdiMzcxZGJjMWFlZjgyNzg1MzZlNmQyMGVlZTNlZTdiMjU5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMv
aW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNTIGZvdW5kVGl0bGUxIGlzIHRydWUKK1BBU1Mg
Zm91bmRUaXRsZTIgaXMgdHJ1ZQorUEFTUyBTZWxlY3RlZCBpbWFnZSBvdmVybGF5CitQQVNTIGZv
dW5kVGl0bGUxIGlzIGZhbHNlCitQQVNTIGZvdW5kVGl0bGUyIGlzIGZhbHNlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10
ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2Fi
bGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYmFiNTk4NGYz
ODgyNDUyNzkxZDA4YjkyYmQ3YTk2NWI5NDQ0NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQt
ZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWwKQEAgLTAsMCArMSw3NyBAQAor
PCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgYXBwSGlnaGxpZ2h0c0Vu
YWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citib2R5LCBodG1sIHsK
KyAgICBtYXJnaW46IDA7Cit9CisKK3AgeworICAgIGZvbnQtc2l6ZTogMzJweDsKKyAgICBkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxwPkhlbGxvIHdv
cmxkIHRoaXMgaXMgYSB0ZXN0LjwvcD4KKzwvYm9keT4KKzxzY3JpcHQ+Cit2YXIgZm91bmRUaXRs
ZTE7Cit2YXIgZm91bmRUaXRsZTI7CisKK2Z1bmN0aW9uIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29u
dGV4dE1lbnVJdGVtcygpIHsKKyAgICBmb3VuZFRpdGxlMSA9IGZhbHNlOworICAgIGZvdW5kVGl0
bGUyID0gZmFsc2U7CisKKyAgICBsZXQgW3RpdGxlMSwgdGl0bGUyXSA9IGludGVybmFscy5hcHBI
aWdobGlnaHRDb250ZXh0TWVudUl0ZW1UaXRsZXM7CisgICAgZm9yIChsZXQgaXRlbSBvZiBldmVu
dFNlbmRlci5jb250ZXh0Q2xpY2soKSkgeworICAgICAgICBpZiAoaXRlbS50aXRsZSA9PT0gdGl0
bGUxKQorICAgICAgICAgICAgZm91bmRUaXRsZTEgPSB0cnVlOworCisgICAgICAgIGlmIChpdGVt
LnRpdGxlID09PSB0aXRsZTIpCisgICAgICAgICAgICBmb3VuZFRpdGxlMiA9IHRydWU7CisgICAg
fQorfQorCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCB0ZXh0ID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigicCIpOworICAgIGxldCB0ZXh0UmVjdCA9IHRleHQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7CisKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwg
WworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAp
LAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwK
KyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogImZvb2JhciIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisgICAgZ2V0U2VsZWN0aW9uKCku
c2VsZWN0QWxsQ2hpbGRyZW4odGV4dCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGV4
dFJlY3QubGVmdCArIHRleHRSZWN0LndpZHRoIC8gMiwgdGV4dFJlY3QudG9wICsgdGV4dFJlY3Qu
aGVpZ2h0IC8gMik7CisgICAgY2hlY2tGb3JBcHBIaWdobGlnaHRDb250ZXh0TWVudUl0ZW1zKCk7
CisgICAgc2hvdWxkQmVUcnVlKCJmb3VuZFRpdGxlMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZm91
bmRUaXRsZTIiKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVy
bmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCJkaXYjaW1hZ2Utb3ZlcmxheSIp
KTsKKyAgICB0ZXN0UGFzc2VkKCJTZWxlY3RlZCBpbWFnZSBvdmVybGF5IikKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygyMDAsIDIwMCk7CisgICAgY2hlY2tGb3JBcHBIaWdobGlnaHRDb250
ZXh0TWVudUl0ZW1zKCk7CisgICAgc2hvdWxkQmVGYWxzZSgiZm91bmRUaXRsZTEiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJmb3VuZFRpdGxlMiIpOworCisgICAgdGV4dC5yZW1vdmUoKTsKK30pOwor
PC9zY3JpcHQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWlt
YWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJs
YXktaW4tbGluay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzZTVl
ZWVkYmYxYjQzNWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMv
c2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVy
bGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE0ZWRjODkwNGFh
MTdiODg3ODViMjc4N2M0NGE3MzkxNzE3MzY3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5
LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo1NDMyMSI+CisgICAgPGltZyBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8L2E+Cis8c2NyaXB0
PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zl
cmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAg
ICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKwor
ICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4geworICAgICAgICB0
ZXN0RmFpbGVkKCJPYnNlcnZlZCBjbGljay4iKTsKKyAgICB9KTsKKworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDUwLCAzMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzAwKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFlZjdmMzYzZDI5NjQ4YWU4ODAxNjYxZGE1OTEwOTAzNzVjNWFmNmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2lt
ZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7
CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4
dCA6ICJoZWxsb3dvcmxkMSIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVs
bG93b3JsZDIiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQzIiwK
KyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBd
CisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxk
cmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCJkaXYjaW1hZ2Ut
b3ZlcmxheSIpKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTIu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTZmZWNl
MzQ2MjQyMWU5NGRjZWRhZTgyZmY5NjkxYTI3OGIxMjY5NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1v
dmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2lt
Zz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBb
CisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCks
CisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSks
CisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwK
KyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQxIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCisgICAgICAgICAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAg
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
dGV4dCA6ICJoZWxsb3dvcmxkMiIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgY2hpbGRy
ZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVs
bG93b3JsZDMiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oNTAsIDUwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygzNTAsIDM1MCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1j
bGljay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmly
ZS1jbGljay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNlNWVlZWRiZjFiNDM1Zjk2YzNhMjBi
ZjgxNDAxYWVlNDMzMTk4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2Ut
ZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qt
aW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdl
LW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMTg3M2M5ODE5MjMyM2MzMTEwMzIwY2JkM2VlYmU4ZjBmMzJiYTIxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRt
bApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0
eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxl
ZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
LjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUp
LAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwK
KyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisgICAgaW1hZ2UuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCBldmVudCA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQoIk9ic2Vy
dmVkIGNsaWNrLiIpOworICAgIH0pOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAs
IDMwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oMzUwLCAzMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1h
Z2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zN2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0YzcxNjI2MzVkOWE2NmI2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwK
QEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6
IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NGMzNjA2
YWQ0OWNhYjQ2NTRmODhhZTllZjE0YTgzYTJhOWVmYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3Zl
cmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgor
PHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdl
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJ
bWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAg
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAg
ICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MCwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAg
XSk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMzAwKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAsIDMwMCk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3Bh
cmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U4OTg4YmI4MDk1NmRkNjI0NTM4ZDk2
ODhhM2RjZjQyZTQ4ZDE1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdl
LW92ZXJsYXktZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5LCBodG1sIHsKKyAgICBtYXJnaW46IDA7Cit9
CisKK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0
OiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyI+PC9pbWc+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJh
bnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiNjc3ZDIwMmNmYzFkOGJk
ZTZiYWVkMTZjMTdmOTEyOTgxOTEyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVu
dC1pbWFnZS1vdmVybGF5Lmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmJhY2sgeworICAgIGJhY2tncm91bmQtc2l6ZTogY29u
dGFpbjsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQw
MHg0MDAucG5nKTsKK30KKworLmZyb250IHsKKyAgICBvcGFjaXR5OiAwOworfQorCitib2R5LCBo
dG1sIHsKKyAgICBtYXJnaW46IDA7Cit9CisKKy5mcm9udCwgLmJhY2sgeworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICB3aWR0aDogNDAwcHg7
CisgICAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
Y2xhc3M9ImJhY2siPjwvZGl2PgorPGltZyBjbGFzcz0iZnJvbnQiIHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxkaXYgY2xhc3M9ImJhciI+PC9kaXY+Cis8
c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2Ug
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbElt
YWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAxLjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLjUsIDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDIsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDIpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxLjUpLAorICAg
ICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEuNSwgMC41
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgyLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDIpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fQorICAgIF0pOworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJu
YWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQi
KSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
LW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNt
YXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZjRjNzc0NTAyODM2YzFkM2I3NzYxYjRjNzE2MjYzNWQ5
YTY2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
IHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlt
ZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJh
Z2dhYmxlLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2UzYTAxMWQzOGM0MTVmMWMyN2M1N2ZiMzc0NDExZDU3ODFiNmQ0ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwKQEAgLTAs
MCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1n
IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIGRyYWdnYWJsZT0idHJ1ZSIgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgY29uc3QgaW1hZ2UgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShp
bWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdl
dFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdl
KS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29y
ZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1p
bi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmJjZGFiOTBjZGEwNmNiNGI1YWEwNDQxYmIyYjkzNDhjNjhmNDYwNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3Nl
bGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+Citib2R5LCBodG1sIHsKKyAgICBtYXJnaW46IDA7Cit9CisKK2RpdiB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworICAgIHdpZHRoOiA0
MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsK
KyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAu
cG5nKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJh
bnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3Zlcmxh
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjEyMTBkMmQ5N2NmMGI3ODlhYTQ3NmFlNDQzMmYwMzg0OWFhMzE3
Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwK
QEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorLmJhY2sgeworICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKKyAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nKTsKK30KKworLmZy
b250IHsKKyAgICBvcGFjaXR5OiAwOworfQorCitib2R5LCBodG1sIHsKKyAgICBtYXJnaW46IDA7
Cit9CisKKy5mcm9udCwgLmJhY2sgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6
IDA7CisgICAgbGVmdDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImJhY2siPjwvZGl2Pgor
PGltZyBjbGFzcz0iZnJvbnQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5n
Ij48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAg
IGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFs
cy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAg
ICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAor
ICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAp
LAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfQorICAgIF0pOworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50
ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRl
eHQiKSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430769</attachid>
            <date>2021-06-07 11:59:51 -0700</date>
            <delta_ts>2021-06-07 12:50:17 -0700</delta_ts>
            <desc>Revert misc. changes to localizable strings</desc>
            <filename>bug-226706-20210607115950.patch</filename>
            <type>text/plain</type>
            <size>346036</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhNDVlZjMwMWIzY2Y3NzBlNjljYWI1
OTA5MGQ0YmE5ZDM5YWJiNWUuLjY1NDE1N2IyZDFhMDhlY2E4MjUwMGM3NTk2YjU4MmJiZjFlN2Ew
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9y
IExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODkzMzY4ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmg6CisKKyAgICAgICAgTW92ZSB0aGUgZmVhdHVyZSBmbGFnIG91dCBvZiBXZWJLaXRB
ZGRpdGlvbnMgYW5kIGludG8gT3BlblNvdXJjZSBhcyBJTUFHRV9BTkFMWVNJUy4KKwogMjAyMS0w
Ni0wNyAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1dURl1bR1N0cmVhbWVyXSBGaXggY2xhbmcgVFNBIHdhcm5pbmdzIGluIFdURjo6RGF0YU11dGV4
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzFjNzExZTA2NzA2MjczOWU3MmQ5YTBkMmZlZDVhYjkxZTQyMmNkNy4u
ODhmY2RiZGE5MGRhYzViOTRmMzY3N2JkNjU3MWRhZTFlODg4NWFlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEwMSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZvciB0
aGUgZmFtaWx5IG9mICJsaXZlIHRleHQiIGFuZCB2aXN1YWwgaW50ZWxsaWdlbmNlIGZlYXR1cmVz
IGZyb20gV2ViS2l0QWRkaXRpb25zLgorICAgICAgICBUaGlzIGVuY29tcGFzc2VzIHRoZSBmb2xs
b3dpbmcgZmVhdHVyZXMgb24gbWFjT1MgMTIgYW5kIGlPUyAxNToKKworICAgICAgICAtIFRleHQg
c2VsZWN0aW9uIGFuZCBpbnRlcmFjdGlvbiBpbiBpbWFnZXMuCisgICAgICAgIC0gRGF0YSBkZXRl
Y3RvcnMgaW4gaW1hZ2VzLgorICAgICAgICAtIFZpc3VhbCBzZWFyY2ggKExvb2sgVXApIHZpYSBj
b250ZXh0IG1lbnUgaW4gaW1hZ2VzLgorCisgICAgICAgIFRvIGRvIHRoaXMsIHdlIHJlbmFtZSB0
aGUgSU1BR0VfRVhUUkFDVElPTiBmZWF0dXJlIGZsYWcgKGFuZCBhbnkgb3RoZXIgc2ltaWxhciBz
eW1ib2wgbmFtZXMgdGhhdCByZWZlcmVuY2UKKyAgICAgICAgImltYWdlIGV4dHJhY3Rpb24iIGlu
IHNvbWUgY2FwYWNpdHkpIHRvIHRoZWlyIHJlYWwgbmFtZXMgaW4gbWFjT1MgYW5kIGlPUzoKKwor
ICAgICAgICAtICJUZXh0IHJlY29nbml0aW9uIiwgaW4gY29kZSB0aGF0IHN1cHBvcnRzIGF1dG9t
YXRpYyBPQ1IgYW5kIGRhdGEgZGV0ZWN0b3JzIGluIGltYWdlcy4KKyAgICAgICAgLSAiTG9vayBV
cCIsIGluIGNvZGUgdGhhdCByZWZlcmVuY2VzIHRoZSBjb250ZXh0IG1lbnUgYWN0aW9uIHRvIGlu
dm9rZSB2aXN1YWwgc2VhcmNoLgorICAgICAgICAtICJWaXN1YWwgU2VhcmNoIiwgaW4gY29kZSB0
aGF0IG1hbmFnZXMgUXVpY2tMb29rIGludGVncmF0aW9uIGZvciBpbnZva2luZyB2aXN1YWwgc2Vh
cmNoLgorICAgICAgICAtICJJbWFnZSBhbmFseXNpcyIsIGluIGNvZGUgdGhhdCBkaXJlY3RseSBp
bnRlZ3JhdGVzIHdpdGggVktJbWFnZUFuYWx5emVyIGFuZCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWlt
YWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRl
bXBvdGVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1z
ZWxlY3Rpb24tc3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2Vs
ZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lk
ZS1saW5rLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92
ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10
ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1p
bi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29y
ZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVy
bGF5KToKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVw
ZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJs
ZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1v
dXNlRXZlbnRUYXJnZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bV90
ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAg
KiBwYWdlL1F1aXJrcy5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAq
IHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ltYWdlRXh0cmFjdGlvblJlc3Vs
dC5oLgorCisgICAgICAgIFJlbmFtZSB0aGUgZm9sbG93aW5nOgorICAgICAgICAtIEltYWdlRXh0
cmFjdGlvblJlc3VsdCA9PiBUZXh0UmVjb2duaXRpb25SZXN1bHQKKyAgICAgICAgLSBJbWFnZUV4
dHJhY3Rpb25UZXh0RGF0YSA9PiBUZXh0UmVjb2duaXRpb25Xb3JkRGF0YQorICAgICAgICAtIElt
YWdlRXh0cmFjdGlvbkxpbmVEYXRhID0+IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhCisgICAgICAg
IC0gSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyA9PiBUZXh0UmVjb2duaXRpb25EYXRh
RGV0ZWN0b3IKKworICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uV29yZERhdGE6OlRl
eHRSZWNvZ25pdGlvbldvcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
bldvcmREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0
aW9uV29yZERhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25M
aW5lRGF0YTo6VGV4dFJlY29nbml0aW9uTGluZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uTGluZURhdGE6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25MaW5lRGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmRlY29kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VEYXRhRm9yTGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omluc3RhbGxJbWFnZU92ZXJsYXkpOgorCiAyMDIx
LTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBvdmVy
bGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBmZjZhMWU4OTNhOThiMGM4YTIyYmY4MDdiM2RiNzllZDMyZDRkNzg5
Li43NTUzMTAyNzJiMWNkMzg1MjBkZGQ2YmUxMzUzMTc1MzVmZTAxNzcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5MSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRp
bGl0aWVzLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaC4KKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW06IEFkZGVkLgorCisgICAgICAgIFJlbmFtZSBJbWFn
ZUV4dHJhY3Rpb25VdGlsaXRpZXMgdG8gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLgorCisgICAg
ICAgIChXZWJLaXQ6OmZsb2F0UXVhZCk6CisgICAgICAgIChXZWJLaXQ6OmZsb2F0UXVhZHMpOgor
ICAgICAgICAoV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKFdl
YktpdDo6aXNMaXZlVGV4dEVuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAgICAgICAoV2ViS2l0Ojp0
b0ltcGwpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmRlY29kZVBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz46OmVuY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0
YURldGVjdG9ySW5mbz46OmRlY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
U2hhcmVkL1RleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmguCisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3Rvcklu
Zm8+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdl
RXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbToK
KyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOmN1c3Rv
bVRpdGxlOmFzc2lzdGFudDpdKToKKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBpbWFnZUZv
ckVsZW1lbnRBY3Rpb25UeXBlOl0pOgorCisgICAgICAgIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGtl
ZXAgdGhlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgU1BJIHN5bWJvbCwgdG8gYXZv
aWQgYnJlYWtpbmcgTW9iaWxlTWFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVD
b250ZXh0TWVudUxvb2tVcEltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpo
YW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUg
YGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2VgIHRvIGBoYW5kbGVDb250ZXh0TWVudUxvb2tV
cEltYWdlYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmVuc3VyZUltYWdlQW5hbHl6ZXIpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVJbWFnZUFuYWx5c2lzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNv
bXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKToKKworICAgICAgICBSZW5hbWUgYGNvbXB1dGVD
YW5SZXZlYWxJbWFnZWAgdG8gYGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzYC4KKworICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXB0c1ByZXZpZXdQYW5lbENvbnRyb2wpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnQ6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUNhblJldmVhbEltYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0KTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHVwZGF0ZVdpdGhJ
bWFnZUV4dHJhY3Rpb25SZXN1bHRgIHRvIGB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
YC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFRleHRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHJlcXVlc3RJbWFnZUV4
dHJhY3Rpb25gIHRvIGByZXF1ZXN0VGV4dFJlY29nbml0aW9uYC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFz
c2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDpdKToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6XSk6CisgICAgICAg
ICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOmVs
ZW1lbnQ6bmVlZHNJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlc10pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlY29nbml6ZVNpbXVsdGFu
ZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRC
ZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBoYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5BdFBvaW50Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNhblBlcmZvcm1BY3Rpb25Gb3JXZWJWaWV3OndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGFyZ2V0Rm9yQWN0aW9uOndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2hvdWxkRGVmZXJH
ZXN0dXJlRHVlVG9JbWFnZUFuYWx5c2lzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZHJhZ0ludGVyYWN0aW9uOnByZXBhcmVG
b3JTZXNzaW9uOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VuZElt
YWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlc2VudFZpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyRm9ySW1hZ2U6aW1hZ2VVUkw6dGl0bGU6aW1hZ2VCb3VuZHM6YXBwZWFyYW5jZUFjdGlv
bnM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXI6ZnJhbWVG
b3JQcmV2aWV3SXRlbTppblNvdXJjZVZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJldmlld0NvbnRyb2xsZXI6dHJhbnNpdGlvbkltYWdlRm9yUHJldmlld0l0ZW06Y29udGVudFJl
Y3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXJEaWREaXNt
aXNzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG51bWJlck9mUHJldmlld0l0ZW1zSW5Q
cmV2aWV3Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2aWV3Q29u
dHJvbGxlcjpwcmV2aWV3SXRlbUF0SW5kZXg6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJvdmlkZURhdGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNo
ZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd1RleHRGb3JJ
bWFnZTppbWFnZVVSTDp0aXRsZTppbWFnZUJvdW5kczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25G
b3JFbGVtZW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0
YW50Omxvb2tVcEltYWdlOmltYWdlVVJMOnRpdGxlOmltYWdlQm91bmRzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGltYWdlQW5hbHl6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBoYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2V0VXBJbWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Rl
YXJEb3duSW1hZ2VBbmFseXNpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jYW5jZWxJ
bWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3JlYXRlSW1hZ2VBbmFs
eXNpc1JlcXVlc3Q6aW1hZ2U6aW1hZ2VVUkw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
Y3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6aW1hZ2U6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcmVxdWVzdFRleHRSZWNvZ25pdGlvbjppbWFnZURhdGE6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc0dl
c3R1cmVEaWRCZWdpbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFnZUFuYWx5c2lz
R2VzdHVyZURpZEZhaWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNp
c0dlc3R1cmVEaWRUaW1lT3V0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnNlcnRU
ZXh0RnJvbUNhbWVyYUZvcldlYlZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2Fw
dHVyZVRleHRGcm9tQ2FtZXJhRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfY29udGV4dE1lbnVJbnRlcmFjdGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246
Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250aW51ZUNvbnRleHRN
ZW51SW50ZXJhY3Rpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjp3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjphbmltYXRvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFjdGlvbjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZW5kSW1hZ2VFeHRyYWN0aW9u
R2VzdHVyZURlZmVycmFsOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9k
b0FmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0
cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplci5tbS4KKyAgICAgICAgKC1bV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIgaW5pdFdpdGhJbWFnZUFuYWx5c2lzR2VzdHVyZURlbGVnYXRlOl0pOgorICAgICAgICAo
LVtXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciBzZXRTdGF0ZTpdKToKKworICAgICAg
ICBSZW5hbWUgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB0byBXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplciAoYWxvbmcgd2l0aCBhbGwgYWRqYWNlbnQgY2xhc3Nlcyku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb21wdXRlQ2FuUmV2ZWFsSW1h
Z2UpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2
aWV3Q29udHJvbGxlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW06IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJv
bGxlci5tbS4KKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBpbml0
V2l0aFBhZ2U6aW1hZ2VEYXRhOnRpdGxlOmltYWdlVVJMOl0pOgorICAgICAgICAoLVtXS1Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGJlZ2luQ29udHJvbDpdKToKKyAgICAgICAgKC1bV0tW
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBlbmRDb250cm9sOl0pOgorICAgICAgICAoLVtX
S1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGNsb3NlUGFuZWxJZk5lY2Vzc2FyeV0pOgor
ICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGlzQ29udHJvbGxpbmc6
XSk6CisgICAgICAgICgtW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJvdmlkZURh
dGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
IG51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2aWV3UGFuZWw6XSk6CisgICAgICAgICgtW1dLVmlz
dWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJldmlld1BhbmVsOnByZXZpZXdJdGVtQXRJbmRl
eDpdKToKKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBwcmV2aWV3
UGFuZWw6aW5pdGlhbEFjdGl2aXR5Rm9ySXRlbTpdKToKKworICAgICAgICBSZW5hbWUgYFdLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXJgIHRvIGBXS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6bWVudUl0ZW1JZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmJlZ2luUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW5kUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5WaXN1YWxTZWFy
Y2hQcmV2aWV3UGFuZWwpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29n
bml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VF
eHRyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEtMDYtMDcg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBGaW5kLWluLXBhZ2Ugc2hvdWxkIG1hdGNoIHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMGFjMDYzMTU4YzY5YjE2MDE2MGU4MTIwOWNj
ZjAwYzUxNjMyMWNlYi4uZGFjNDFhYzQ1OThlYjExOGQ1MDExOTkxOTdjZGJmOTM3MzIxY2MyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTA3
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3Ry
ZWFtIFdlYktpdCBzdXBwb3J0IGZvciBMaXZlIFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Nzg5MzM2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOiBSZXBsYWNlIElNQUdFX0VYVFJBQ1RJT04gd2l0
aCBJTUFHRV9BTkFMWVNJUy4KKwogMjAyMS0wNi0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBUdXJuIFRleHRJdGVyYXRvckJlaGF2aW9yRmxhZyBp
bnRvIGFuIGVudW0gY2xhc3MgYW5kIHdyYXAgaXQgaW4gT3B0aW9uU2V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggMDdlZDAzMjRmOGI3ZmMyMmUzZDY1NGIyNjU2ZGMzNzA5
ZjU4NzgzNi4uYzNmYmIyYmVlYTEzNzI4ZmU1ZWIxYWMzNjgyYmY2ZDljNmI0ZTQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtNjc4LDMgKzY3OCwxMCBAQAogI2lmICFk
ZWZpbmVkKEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQikKICNkZWZp
bmUgRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCIDEKICNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMjAwMDApIFwKKyAgICB8fCAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lNQUdFX0FOQUxZU0lTKQorI2RlZmluZSBFTkFCTEVfSU1BR0VfQU5B
TFlTSVMgMQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMTJmMTgyYzJmYjEyNTgxZTdiZjk3YWE5ZTA1
YTZjNDUzYTFlYzBiLi44YmJlNzI3N2IxYjM3ZDMxYzEzNmExY2QxZWU3ZDI2OWVhMjBjNjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01Mzc2LDcgKzUzNzYsNyBAQAogCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJz
dHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4MjQz
NEIyNjBDMzMwNjAwMjI0OTdDIC8qIEltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODI0MzQ4MjYwQzMyRjEwMDIy
NDk3QyAvKiBJbWFnZU92ZXJsYXlDb250cm9sbGVyLmggKi87IH07CiAJCUY0ODU3MEE1MjY0NEM3
NkQwMEMwNUY3MSAvKiBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NTcwQTQyNjQ0Qzc2RDAwQzA1Rjcx
IC8qIFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIElt
YWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJl
c3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUY0OEI3RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1bHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEI3RDUyMjVDMzQx
RTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIg
LyogRm9udFNoYWRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ4RDJBNkEyMTU2MjNCNDAwQzY3NTJCIC8qIEZvbnRTaGFkb3cuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkE3RTIxNTcxODI2
MDBDNjc1MkIgLyogRm9udEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTcxMjE1NkRDMEEwMEM2NzUyQiAvKiBGb250QXR0cmli
dXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY0OEQyQUE1MjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkFBMzIxNTk3NDBEMDBDNjc1MkIg
LyogQ29sb3JDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xNjg5Nyw3ICsxNjg5Nyw3IEBACiAJCUY0ODM4OTgzMUUxRERGMkIwMDc2QjdF
QSAvKiBEdW1wRWRpdGluZ0hpc3RvcnkuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBEdW1wRWRpdGluZ0hpc3RvcnkuanM7IHBhdGggPSBTY3JpcHRzL0R1bXBFZGl0
aW5nSGlzdG9yeS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4Mzg5ODQxRTFE
REYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVkaXRpbmdIaXN0b3J5VXRpbC5qczsgcGF0aCA9IFNjcmlw
dHMvRWRpdGluZ0hpc3RvcnlVdGlsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDg1NzBBNDI2NDRDNzZEMDBDMDVGNzEgLyogVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFj
dGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIFRl
eHRSZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UmVjb2duaXRpb25SZXN1
bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBNkEyMTU2MjNCNDAwQzY3
NTJCIC8qIEZvbnRTaGFkb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNoYWRvdy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0
dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0dHJpYnV0ZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBNzUyMTU2RkU1NzAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1
dGVzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGb250QXR0cmlidXRlc0NvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgwNzEsNyArMjgwNzEsNiBAQAogCQkJ
CUNENjJGQjk0MUFGMDE4RTcwMDEyRUQ3RCAvKiBHZW5lcmljVGFza1F1ZXVlLmggKi8sCiAJCQkJ
QTg3NDhCREYxMkNCRjJEQzAwMUZCQTQxIC8qIEhhc2hUb29scy5oICovLAogCQkJCUJDM0JDMjlC
MEU5MUFCMEYwMDgzNTU4OCAvKiBIb3N0V2luZG93LmggKi8sCi0JCQkJRjQ4QjdENTIyNUMzNDFF
NjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oICovLAogCQkJCTFBRTAwRDU3MTgy
REFDOEQwMDA4N0RENyAvKiBLZXllZENvZGluZy5oICovLAogCQkJCUUxNUZGN0Q0MThDOTU1Mzgw
MEZFNEM4NyAvKiBLZXlwcmVzc0NvbW1hbmQuaCAqLywKIAkJCQlBM0Q0MkE4NDFGMzNCQTM2MDBB
NjRCNjIgLyogTGF5b3V0VW5pdC5jcHAgKi8sCkBAIC0yODIxMiw2ICsyODIxMSw3IEBACiAJCQkJ
RTNDMDQxMzIyNTRDQTcxMTAwMjFEMEU2IC8qIFN5c3RlbVNvdW5kTWFuYWdlci5jcHAgKi8sCiAJ
CQkJRTNDMDQxMkQyNTRDQTI5QjAwMjFEMEU2IC8qIFN5c3RlbVNvdW5kTWFuYWdlci5oICovLAog
CQkJCTdDQzU2NEI2MThCQUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5o
ICovLAorCQkJCUY0OEI3RDUyMjVDMzQxRTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1
bHQuaCAqLywKIAkJCQlCQ0U2NUQzMTBFQUQxMjExMDA3RTQ1MzMgLyogVGhlbWUuY3BwICovLAog
CQkJCUJDRTY1OEZFMEVBOTI0OEEwMDdFNDUzMyAvKiBUaGVtZS5oICovLAogCQkJCTBGMjgzQThE
MjM1NTgyRjgwMDQ3OTRDQSAvKiBUaGVtZVR5cGVzLmNwcCAqLywKQEAgLTMyNDcxLDcgKzMyNDcx
LDYgQEAKIAkJCQk0MUZBQkQyRDFGNERGRTRBMDA2QTZDOTcgLyogRE9NQ2FjaGVFbmdpbmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzgwQzI5MUYzNDM2QUMwMDE1NUZEQSAvKiBET01DYWNoZVN0
b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREEzRkZFMjE1MUI2RjUwMEZENjYwNCAvKiBE
T01DU1NDdXN0b21Qcm9wZXJ0eURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0NDdG
NUIzMjY2Q0Y2M0QwMDEzM0YwMCAvKiBUZXh0Qm94U2VsZWN0YWJsZVJhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGQzlBMEY3NTE2NDA5NENGMDAzRDZCOEQgLyogRE9NQ1NTTmFtZXNwYWNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0QjZCNUNCRDIxNjQwRUZGMDA2MDM4MTcgLyogRE9NQ1NTUGFp
bnRXb3JrbGV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRBM0ZGRjIxNTFCNkY1MDBGRDY2MDQg
LyogRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzEw
MCw3ICszMzA5OSw2IEBACiAJCQkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVj
b2RlckNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyog
SW1hZ2VEZWNvZGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQjYxMjM5
MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0OEI3
RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1NzZBNTY1MUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNTVCM0RDMjEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTY3Niw2ICszNTY3NCw3IEBACiAJCQkJQ0U3QjJE
QjUxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1NERDRTYxODgxMDUxRDAwM0VFREJCIC8qIFRleHRBdXRvU2l6aW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzNDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJvdW5k
YXJpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0NDdGNUIzMjY2Q0Y2M0QwMDEzM0YwMCAvKiBU
ZXh0Qm94U2VsZWN0YWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzE1MUJEODEyRjE1
NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
N0QwMDEyMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3REJGOERFMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzU3MTUsNiArMzU3MTQsNyBAQAogCQkJCTFDMThEQTU5MTgxQUY2QTUw
MEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRDOTFBMEUxODAy
MzQzMTAwQTE3RjZEIC8qIFRleHRQYWludFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTIx
MjE1ODI0MERCRUI5MDA2RUQ0NDMgLyogVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIFRleHRSZWNvZ25pdGlvblJl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8qIFRl
eHRSZXNvdXJjZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjRCNDY1MEUyRUYyRUEw
MDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDhCMUI3QTBGM0EyRjlC
MDA0N0E5RTIgLyogVGV4dFNpemVBZGp1c3RtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmgKaW5kZXggNTQ3M2JiMDBjNDg2
OGI1NDkxMTQzYTNhZTg4OTcwOWI4ZWU4ZGZiZS4uNThhNjljYzc4NDMzMWYwYjQxNjgxZTA5MjM0
N2Q5NWY0MzFlYzZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9E
YXRhRGV0ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBIVE1MRWxl
bWVudDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwotc3RydWN0
IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm87CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9u
RGF0YURldGVjdG9yOwogCiBzdHJ1Y3QgRGV0ZWN0ZWRJdGVtIHsKICAgICBSZXRhaW5QdHI8RERB
Y3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0OwpAQCAtNjYsOCArNjYsOCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcmVxdWlyZXNFeHRlbmRlZENvbnRleHQoRWxl
bWVudCYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBzdGF0
aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50
JiwgY29uc3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOworI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50
Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50JiwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVj
dG9yJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGRhdGFEZXRlY3RvclVS
TFByb3RvY29sKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Rh
dGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24ubW0KaW5kZXggMjUwNDM4OTI0OGQ2M2YwODZhZmRiY2E1ODU3MTZhYzQ1OTUyY2JmYi4uMmIx
OTkzZTczMmFhN2IxMmIwNTY0ZjhkMmVhNWJhMWU1NjU4YjU0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2lt
cG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IgogI2ltcG9ydCAiSGl0VGVzdFJlc3VsdC5oIgotI2ltcG9ydCAiSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0LmgiCiAjaW1wb3J0ICJOb2RlTGlzdC5oIgogI2ltcG9ydCAiTm9kZVRyYXZlcnNhbC5oIgog
I2ltcG9ydCAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNTEsNiArNTAsNyBAQAogI2ltcG9ydCAiU3R5
bGVQcm9wZXJ0aWVzLmgiCiAjaW1wb3J0ICJUZXh0LmgiCiAjaW1wb3J0ICJUZXh0SXRlcmF0b3Iu
aCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblJlc3VsdC5oIgogI2ltcG9ydCAiVmlzaWJsZVBv
c2l0aW9uLmgiCiAjaW1wb3J0ICJWaXNpYmxlVW5pdHMuaCIKICNpbXBvcnQgPHBhbC9zcGkvaW9z
L0RhdGFEZXRlY3RvcnNVSVNQSS5oPgpAQCAtNjg3LDkgKzY4Nyw5IEBAIGJvb2wgRGF0YURldGVj
dGlvbjo6aXNEYXRhRGV0ZWN0b3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAg
cmV0dXJuIGlzPEhUTUxBbmNob3JFbGVtZW50PihlbGVtZW50KSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih4X2FwcGxlX2Rh
dGFfZGV0ZWN0b3JzQXR0ciksICJ0cnVlIik7CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLVJlZjxIVE1MRWxlbWVudD4gRGF0
YURldGVjdGlvbjo6Y3JlYXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mIGluZm8pCitSZWY8SFRN
TEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImIGluZm8p
CiB7CiAgICAgYXV0byBjb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBpZiAoYXV0byBmcmFtZSA9IG1ha2VSZWZQdHIoZG9jdW1lbnQuZnJhbWUoKSkpIHsK
QEAgLTY5OSw3ICs2OTksNyBAQCBSZWY8SFRNTEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0
ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmIGRvY3VtZW50LAogICAgIHJldHVybiBj
b250YWluZXI7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBi
L1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggYjc0ODVk
YTllY2ZjN2VhYTVlMzk5MzY2NTNjZDVkODA5OTI0ZDk3ZC4uOTY0OTIwOGExMjQwZjA4NjczMjA5
MTA4MWQ0NTkxZWFlM2UzNGRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzCkBAIC01NTMsNiArNTUzLDkgQEAKIC8qICdXZWJzaXRlJyBuYW1lIGRpc3Bs
YXllZCB3aGVuIGxvY2FsIGRvY3VtZW50cyBoYXZlIHN0b3JlZCBsb2NhbCBkYXRhICovCiAiTG9j
YWwgZG9jdW1lbnRzIG9uIHlvdXIgY29tcHV0ZXIiID0gIkxvY2FsIGRvY3VtZW50cyBvbiB5b3Vy
IGNvbXB1dGVyIjsKIAorLyogVGl0bGUgZm9yIExvb2sgVXAgYWN0aW9uIGJ1dHRvbiAqLworIkxv
b2sgVXAiID0gIkxvb2sgVXAiOworCiAvKiBMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBt
ZW51IGl0ZW0gKi8KICJMb29rIFVwIGluIERpY3Rpb25hcnkiID0gIkxvb2sgVXAgaW4gRGljdGlv
bmFyeSI7CiAKQEAgLTgyOSw2ICs4MzIsOSBAQAogLyogbWVudSBpdGVtIHRpdGxlICovCiAiU2hv
dyBTdWJzdGl0dXRpb25zIiA9ICJTaG93IFN1YnN0aXR1dGlvbnMiOwogCisvKiBUaXRsZSBmb3Ig
U2hvdyBUZXh0IGFjdGlvbiBidXR0b24gKi8KKyJTaG93IFRleHQiID0gIlNob3cgVGV4dCI7CisK
IC8qIFRpdGxlIG9mIHRoZSBjb250ZXh0IG1lbnUgaXRlbSB0byBzaG93IHdoZW4gUERGUGx1Z2lu
IHdhcyB1c2VkIGluc3RlYWQgb2YgYSBibG9ja2VkIHBsdWdpbiAqLwogIlNob3cgaW4gYmxvY2tl
ZCBwbHVnLWluIiA9ICJTaG93IGluIGJsb2NrZWQgcGx1Zy1pbiI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKaW5kZXggM2FjOGY5YjJmNmJjMGRkODYzMzZkNGNhZGZiYzYzZmQ3MTg3
YjZlZC4uNTI5NjZjNzg4NDdjM2Q5ODczOWJiZTU2MDY4NjUxZGNiOGNjNzc0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTgwLDggKzgwLDggQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0jaW5jbHVkZSAiSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0LmgiCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2luY2x1ZGUgIlRleHRSZWNvZ25p
dGlvblJlc3VsdC5oIgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTMy
OSw5ICsxMzI5LDkgQEAgYm9vbCBIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KGNvbnN0
IE5vZGUmIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIEhUTUxFbGVtZW50
Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYm
IHJlc3VsdCkKK3ZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1
bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYgcmVzdWx0KQogewogICAgIFJlZlB0cjxIVE1MRGl2
RWxlbWVudD4gcHJldmlvdXNDb250YWluZXI7CiAgICAgaWYgKGF1dG8gc2hhZG93Um9vdCA9IHVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKTsgc2hhZG93Um9vdCAmJiBoYXNJbWFnZU92ZXJsYXkoKSkgewpA
QCAtMTUxMSw3ICsxNTExLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aEltYWdlRXh0
cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQKICAgICAgICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLnNjaGVkdWxlQ3Vyc29yVXBkYXRlKCk7CiB9CiAKLSNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKaW5kZXggZjMxODNjZmEwZjczM2VjYTVjYjA3MmQ5NDhlZGE4OTI3NGQ2MTczMi4uMWFlMWZk
NmVjMjY1NTQ1YWExMDE4OTZkMjcwNjdmNjM1YzNhMDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaApAQCAtMzYsMTAgKzM2LDcgQEAgY2xhc3MgRm9ybU5hbWVkSXRlbTsKIGNsYXNzIEhU
TUxGb3JtRWxlbWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBzdHJ1Y3QgU2ltcGxlUmFu
Z2U7Ci0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rp
b25SZXN1bHQ7Ci0jZW5kaWYKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7CiAKIGVudW0g
Y2xhc3MgRW50ZXJLZXlIaW50IDogdWludDhfdDsKIApAQCAtMTQxLDggKzEzOCw4IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc0ltYWdlT3ZlcmxheVRleHQoY29u
c3QgTm9kZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzSW1hZ2VPdmVybGF5
VGV4dChjb25zdCBOb2RlKik7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0JiYpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29n
bml0aW9uUmVzdWx0JiYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYTc1ZTM5MDI1NGM3OTM4OTQxOGQ2MGFjMzY3
NmM3M2FjZmQwNWRlMy4uNmQ4NGY2OTQ0ZGY2MTc3NDA1YzFmYWYzYmFiZGUxMGQ5YmJmNTk5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01NzAsOCArNTcwLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VVbml2ZXJzYWxBY2Nlc3Nab29tRm9jdXMoY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSB7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oRWxl
bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBs
ZXRpb24gPSB7IH0pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKEVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uID0geyB9KQogICAgIHsKICAgICAgICAg
aWYgKGNvbXBsZXRpb24pCiAgICAgICAgICAgICBjb21wbGV0aW9uKHsgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZWQyNmM5MzY1Njg4
ZDE4ZjE3OTE0Nzg2YjNhZjUxYjc0M2JhZDI5NC4uNzEwOTQ1MTQxMmFjMGM2MmI1ZWQ1OTc3Y2Ew
YThjN2E4MTc3MTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcApAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAg
ZnJhbWUtPmVkaXRvcigpLmFwcGx5RGljdGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgICAgIC8vIFRoaXMgc2hvdWxk
IGJlIGhhbmRsZWQgYXQgdGhlIGNsaWVudCBsYXllci4KICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtODMwLDggKzgzMCw4IEBAIHZvaWQgQ29udGV4dE1l
bnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgQ29udGV4dE1lbnVJdGVtIFNlbGVjdEFsbEl0
ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsLCBjb250ZXh0TWVudUl0
ZW1UYWdTZWxlY3RBbGwoKSk7CiAgICAgQ29udGV4dE1lbnVJdGVtIEluc2VydEVtb2ppSXRlbShB
Y3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRFbW9qaSwgY29udGV4dE1lbnVJdGVt
VGFnSW5zZXJ0RW1vamkoKSk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
LSAgICBDb250ZXh0TWVudUl0ZW0gUmV2ZWFsSW1hZ2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRN
ZW51SXRlbVRhZ1JldmVhbEltYWdlLCBjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpKTsK
KyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgQ29udGV4dE1lbnVJdGVtIExvb2tVcElt
YWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwgY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV0lOKQpAQCAtOTA0LDkgKzkwNCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUo
KSB8fCBpbWFnZSkgewogICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oQ29weUltYWdlSXRlbSwg
bV9jb250ZXh0TWVudS5nZXQoKSk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgICAgICAgICAgICAgaWYgKGltYWdlICYmICFp
bWFnZS0+aXNBbmltYXRlZCgpKQotICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJldmVh
bEltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGFw
cGVuZEl0ZW0oTG9va1VwSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICNlbmRpZgog
ICAgICAgICAgICAgfQogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1l
bnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9jb250ZXh0
LmhpdFRlc3RSZXN1bHQoKS5tZWRpYUhhc0F1ZGlvKCk7CiAgICAgICAgICAgICBzaG91bGRDaGVj
ayA9IHNob3VsZEVuYWJsZSAmJiAgbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYU11dGVk
KCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdS
ZXZlYWxJbWFnZToKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToK
ICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgICAgICBi
cmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGY2ZTE0
MzQwMzlhZTQ2NDIzNTRhYmM4ZDVjYTVlMzU5MmI2Zjg3Mi4uOTY5ODZiNTMwOTFiYzY5MGU2ZmNk
NGNiMDY3YWJhMDIxYTM1NjA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtMzI0LDggKzMyNCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3Vz
ZURyYWdnZWQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0CiBFdmVudEhhbmRsZXI6
OkV2ZW50SGFuZGxlcihGcmFtZSYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwg
bV9ob3ZlclRpbWVyKCp0aGlzLCAmRXZlbnRIYW5kbGVyOjpob3ZlclRpbWVyRmlyZWQpCi0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgLCBtX2ltYWdlRXh0cmFjdGlvblRpbWVyKCp0
aGlzLCAmRXZlbnRIYW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkLCAyNTBfbXMpCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICwgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRp
bWVyKCp0aGlzLCAmRXZlbnRIYW5kbGVyOjptX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXJGaXJl
ZCwgMjUwX21zKQogI2VuZGlmCiAgICAgLCBtX2F1dG9zY3JvbGxDb250cm9sbGVyKG1ha2VVbmlx
dWU8QXV0b3Njcm9sbENvbnRyb2xsZXI+KCkpCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQpAQCAtMzY3LDggKzM2Nyw4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAjaWYgRU5B
QkxFKENVUlNPUl9WSVNJQklMSVRZKQogICAgIGNhbmNlbEF1dG9IaWRlQ3Vyc29yVGltZXIoKTsK
ICNlbmRpZgotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIG1faW1hZ2VFeHRyYWN0
aW9uVGltZXIuc3RvcCgpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBtX3RleHRS
ZWNvZ25pdGlvbkhvdmVyVGltZXIuc3RvcCgpOwogI2VuZGlmCiAgICAgbV9yZXNpemVMYXllciA9
IG51bGxwdHI7CiAgICAgY2xlYXJFbGVtZW50VW5kZXJNb3VzZSgpOwpAQCAtMTkwNSw5ICsxOTA1
LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCkKICAgICBoaXRUZXN0UmVzdWx0LnNldFRvTm9uVXNlckFnZW50U2hhZG93QW5j
ZXN0b3IoKTsKICAgICBwYWdlLT5jaHJvbWUoKS5tb3VzZURpZE1vdmVPdmVyRWxlbWVudChoaXRU
ZXN0UmVzdWx0LCBldmVudC5tb2RpZmllckZsYWdzKCkpOwogCi0jaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCi0gICAgaWYgKGV2ZW50LnN5bnRoZXRpY0NsaWNrVHlwZSgpID09IE5vVGFwICYm
IG1faW1hZ2VFeHRyYWN0aW9uVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9pbWFnZUV4dHJh
Y3Rpb25UaW1lci5yZXN0YXJ0KCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlm
IChldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSA9PSBOb1RhcCAmJiBtX3RleHRSZWNvZ25pdGlv
bkhvdmVyVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRp
bWVyLnJlc3RhcnQoKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTI1MzksMTQg
KzI1MzksMTQgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2Rl
KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKIAogICAgIG1fZWxlbWVudFVuZGVy
TW91c2UgPSB0YXJnZXRFbGVtZW50OwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIGlmIChwbGF0Zm9ybU1vdXNlRXZlbnQuc3lu
dGhldGljQ2xpY2tUeXBlKCkgPT0gTm9UYXApIHsKICAgICAgICAgaWYgKG1fZWxlbWVudFVuZGVy
TW91c2UgJiYgaXM8UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkp
KQotICAgICAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5yZXN0YXJ0KCk7CisgICAgICAg
ICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKKyAgICAgICAgICAg
IG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5zdG9wKCk7CiAgICAgfQotI2VuZGlmCisjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2Zy
YW1lLnBhZ2UoKSkKICAgICAgICAgcGFnZS0+aW1hZ2VPdmVybGF5Q29udHJvbGxlcigpLmVsZW1l
bnRVbmRlck1vdXNlRGlkQ2hhbmdlKG1fZnJhbWUsIG1fZWxlbWVudFVuZGVyTW91c2UuZ2V0KCkp
OwpAQCAtMjYwNyw4ICsyNjA3LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZl
bnRUYXJnZXROb2RlKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKIAogICAgICAg
ICAvLyBFdmVudCBoYW5kbGluZyBtYXkgaGF2ZSBtb3ZlZCB0aGUgZWxlbWVudCB0byBhIGRpZmZl
cmVudCBkb2N1bWVudC4KICAgICAgICAgaWYgKG1fZWxlbWVudFVuZGVyTW91c2UgJiYgJm1fZWxl
bWVudFVuZGVyTW91c2UtPmRvY3VtZW50KCkgIT0gbV9mcmFtZS5kb2N1bWVudCgpKSB7Ci0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRp
bWVyLnN0b3AoKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgICAgICAgICBtX3Rl
eHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3RvcCgpOwogI2VuZGlmCiAgICAgICAgICAgICBjbGVh
ckVsZW1lbnRVbmRlck1vdXNlKCk7CiAgICAgICAgIH0KQEAgLTMzOTgsMTggKzMzOTgsMTggQEAg
dm9pZCBFdmVudEhhbmRsZXI6OmhvdmVyVGltZXJGaXJlZCgpCiAgICAgfQogfQogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lk
IEV2ZW50SGFuZGxlcjo6aW1hZ2VFeHRyYWN0aW9uVGltZXJGaXJlZCgpCit2b2lkIEV2ZW50SGFu
ZGxlcjo6bV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQoKQogewogICAgIGlmICghbV9l
bGVtZW50VW5kZXJNb3VzZSB8fCAhaXM8UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2Ut
PnJlbmRlcmVyKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYXV0byogcGFnZSA9IG1f
ZnJhbWUucGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKCptX2VsZW1lbnRVbmRlck1vdXNlKTsKKyAgICAgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbigqbV9lbGVtZW50VW5kZXJNb3VzZSk7
CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVBY2Nlc3NLZXko
Y29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBldmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCmluZGV4IGQ0MjZhMGMyZWY5NGViYjRhNThkNjZmZjUyN2Q2ZWI1MmQzNjY4YTgu
LjlmYjUyYjJlOWZiZDg1NzMxNTM0YTZiMjhhOTFhMzY5YzM3ODc3ZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaApAQCAtMzg4LDggKzM4OCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGhvdmVyVGltZXJGaXJlZCgpOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAg
dm9pZCBpbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkKCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQorICAgIHZvaWQgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQoKTsKICNlbmRp
ZgogCiAgICAgYm9vbCBsb2dpY2FsU2Nyb2xsT3ZlcmZsb3coU2Nyb2xsTG9naWNhbERpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIpOwpAQCAt
NTI5LDggKzUyOSw4IEBAIHByaXZhdGU6CiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAgUmVmUHRy
PE5vZGU+IG1fbW91c2VQcmVzc05vZGU7CiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOwotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIERlZmVycmFibGVPbmVTaG90VGltZXIgbV9pbWFn
ZUV4dHJhY3Rpb25UaW1lcjsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgRGVmZXJy
YWJsZU9uZVNob3RUaW1lciBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXI7CiAjZW5kaWYKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXV0b3Njcm9sbENvbnRyb2xsZXI+IG1fYXV0b3Njcm9sbENvbnRy
b2xsZXI7CiAgICAgUmVuZGVyTGF5ZXIqIG1fcmVzaXplTGF5ZXIgeyBudWxscHRyIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5jcHAKaW5kZXggOTZkMjBkMmYyZjJmMDhhMmRiMDZjMDVkMzBmYTMzODI5M2Uy
ZmM2OC4uMTlhYzMzMjk5YzZhZmFkMmUzMDhlZmEyYjk1NjhkMWYwN2Y3ZTcwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUXVpcmtzLmNwcApAQCAtMTQ2Miw3ICsxNDYyLDcgQEAgYm9vbCBRdWlya3M6OnNob3VsZEJ5
cGFzc1VzZXJHZXN0dXJlUmVxdWlyZW1lbnRGb3JXZWJBdXRobigpIGNvbnN0CiB9CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKIAogYm9vbCBRdWlya3M6Om5lZWRzVG9Gb3JjZVVzZXJTZWxlY3RXaGVuSW5zdGFsbGluZ0lt
YWdlT3ZlcmxheSgpIGNvbnN0CiB7CkBAIC0xNDc2LDYgKzE0NzYsNiBAQCBib29sIFF1aXJrczo6
bmVlZHNUb0ZvcmNlVXNlclNlbGVjdFdoZW5JbnN0YWxsaW5nSW1hZ2VPdmVybGF5KCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5o
CmluZGV4IDM1MmMyYWZmMjE5NjlhMzU0OTg0NWY0NTc5M2FlOWEwZjkyNjdhMjIuLjM2NGMxNmY3
NGYwOWE0ZTg0NzlkNGE0MDAyYTUwN2NkYjRjZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAt
MTUyLDcgKzE1Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHNob3VsZE9taXRIVE1M
RG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgYm9vbCBuZWVkc1RvRm9y
Y2VVc2VyU2VsZWN0V2hlbkluc3RhbGxpbmdJbWFnZU92ZXJsYXkoKSBjb25zdDsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcAppbmRleCA1NDAw
ZWQzZmYyMDYwYTBlN2Y2MTVhOWYzNDI4MTg0YjhjMzAxYTZmLi5iNGFhODg5MmM0Mjg3NDI0NGIx
ZWI2ZDY3NDkyMjkyY2Y3YzU4YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRl
eHRNZW51SXRlbS5jcHAKQEAgLTI1OCw3ICsyNTgsNyBAQCBib29sIGlzVmFsaWRDb250ZXh0TWVu
dUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUFj
dGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9GdWxsc2NyZWVuOgogICAgIGNhc2Ug
Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICBjYXNl
IENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2Vk
RnVsbHNjcmVlbjoKLSAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbWFnZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVu
dUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1l
bnVJdGVtQmFzZUN1c3RvbVRhZzoKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0
TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uaAppbmRleCBkYWM1YzMzZjQ2ZWVmYzdhOTI4NDM4OTczOTMyN2QxOWMxZTgyNjZiLi5m
ZTIwMzI2ZDhjYzhiNzgyMDA3ZWE2ZWM2ODNmMGE5MzAyMDJiNTRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGVudW0gQ29u
dGV4dE1lbnVBY3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5j
ZWRGdWxsc2NyZWVuLAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVu
dEdyb3VwLAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3R3JvdXAsCi0g
ICAgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UsCisgICAgQ29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW1hZ2UsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlLAogICAgIENvbnRl
eHRNZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgIENvbnRleHRNZW51SXRlbUxhc3RD
dXN0b21UYWcgPSA1OTk5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSW1h
Z2VFeHRyYWN0aW9uUmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9JbWFnZUV4dHJh
Y3Rpb25SZXN1bHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY3ZmIzMzA0MGY5
Yzg5M2EzN2I0NDg0YWFlODVjMzVhZGE4N2YwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9JbWFnZUV4dHJhY3Rp
b25SZXN1bHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE4MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0KLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi1PQkpD
X0NMQVNTIEREU2Nhbm5lclJlc3VsdDsKLSNlbmRpZgotCi0jaW5jbHVkZSAiRmxvYXRRdWFkLmgi
Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25UZXh0
RGF0YSB7Ci0gICAgSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGEoY29uc3QgU3RyaW5nJiB0aGVUZXh0
LCBGbG9hdFF1YWQmJiBxdWFkKQotICAgICAgICA6IHRleHQodGhlVGV4dCkKLSAgICAgICAgLCBu
b3JtYWxpemVkUXVhZChXVEZNb3ZlKHF1YWQpKQotICAgIHsKLSAgICB9Ci0KLSAgICBTdHJpbmcg
dGV4dDsKLSAgICBGbG9hdFF1YWQgbm9ybWFsaXplZFF1YWQ7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+
IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIElt
YWdlRXh0cmFjdGlvblRleHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsK
LSAgICBlbmNvZGVyIDw8IHRleHQ7Ci0gICAgZW5jb2RlciA8PCBub3JtYWxpemVkUXVhZDsKLX0K
LQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxJbWFnZUV4dHJhY3Rpb25U
ZXh0RGF0YT4gSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQotewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB0ZXh0OwotICAgIGRlY29kZXIgPj4gdGV4
dDsKLSAgICBpZiAoIXRleHQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBz
dGQ6Om9wdGlvbmFsPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1YWQ7Ci0gICAgZGVjb2RlciA+PiBu
b3JtYWxpemVkUXVhZDsKLSAgICBpZiAoIW5vcm1hbGl6ZWRRdWFkKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKnRleHQpLCBXVEZNb3ZlKCpu
b3JtYWxpemVkUXVhZCkgfX07Ci19Ci0KLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YSB7
Ci0gICAgSW1hZ2VFeHRyYWN0aW9uTGluZURhdGEoRmxvYXRRdWFkJiYgcXVhZCwgVmVjdG9yPElt
YWdlRXh0cmFjdGlvblRleHREYXRhPiYmIHRoZUNoaWxkcmVuKQotICAgICAgICA6IG5vcm1hbGl6
ZWRRdWFkKFdURk1vdmUocXVhZCkpCi0gICAgICAgICwgY2hpbGRyZW4oV1RGTW92ZSh0aGVDaGls
ZHJlbikpCi0gICAgewotICAgIH0KLQotICAgIEZsb2F0UXVhZCBub3JtYWxpemVkUXVhZDsKLSAg
ICBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+IGNoaWxkcmVuOwotCi0gICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvbkxp
bmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKLQotc3RydWN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8gewotICAgIEltYWdl
RXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8oKSA9IGRlZmF1bHQ7Ci0gICAgSW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbyhERFNjYW5uZXJSZXN1bHQgKnNjYW5uZXJSZXN1bHQsIFZlY3Rv
cjxGbG9hdFF1YWQ+JiYgcXVhZHMpCi0gICAgICAgIDogcmVzdWx0KHNjYW5uZXJSZXN1bHQpCi0g
ICAgICAgICwgbm9ybWFsaXplZFF1YWRzKFdURk1vdmUocXVhZHMpKQotICAgIHsKLSAgICB9Ci0K
LSAgICBSZXRhaW5QdHI8RERTY2FubmVyUmVzdWx0PiByZXN1bHQ7Ci0gICAgVmVjdG9yPEZsb2F0
UXVhZD4gbm9ybWFsaXplZFF1YWRzOwotfTsKLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKLQotdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBJbWFnZUV4dHJhY3Rpb25MaW5l
RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBu
b3JtYWxpemVkUXVhZDsKLSAgICBlbmNvZGVyIDw8IGNoaWxkcmVuOwotfQotCi10ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhPiBJbWFn
ZUV4dHJhY3Rpb25MaW5lRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3Rk
OjpvcHRpb25hbDxGbG9hdFF1YWQ+IG5vcm1hbGl6ZWRRdWFkOwotICAgIGRlY29kZXIgPj4gbm9y
bWFsaXplZFF1YWQ7Ci0gICAgaWYgKCFub3JtYWxpemVkUXVhZCkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEltYWdlRXh0cmFjdGlvblRl
eHREYXRhPj4gY2hpbGRyZW47Ci0gICAgZGVjb2RlciA+PiBjaGlsZHJlbjsKLSAgICBpZiAoIWNo
aWxkcmVuKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7IFdU
Rk1vdmUoKm5vcm1hbGl6ZWRRdWFkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OwotfQotCi1zdHJ1
Y3QgSW1hZ2VFeHRyYWN0aW9uUmVzdWx0IHsKLSAgICBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uTGlu
ZURhdGE+IGxpbmVzOwotCi0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgIFZlY3RvcjxJ
bWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPiBkYXRhRGV0ZWN0b3JzOwotI2VuZGlmCi0K
LSAgICBib29sIGlzRW1wdHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFsaW5lcy5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCi0gICAgICAgIGlmICghZGF0YURldGVjdG9ycy5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0K
LSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VF
eHRyYWN0aW9uUmVzdWx0PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbGluZXM7Ci0jaWYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQotICAgIGVuY29kZXIgPDwgZGF0YURldGVjdG9yczsKLSNlbmRpZgotfQotCi10ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvblJlc3VsdD4g
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YT4+IGxpbmVzOwotICAg
IGRlY29kZXIgPj4gbGluZXM7Ci0gICAgaWYgKCFsaW5lcykKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLQotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPj4gZGF0YURldGVjdG9yczsK
LSAgICBkZWNvZGVyID4+IGRhdGFEZXRlY3RvcnM7Ci0gICAgaWYgKCFkYXRhRGV0ZWN0b3JzKQot
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCi0KLSAgICByZXR1cm4ge3sKLSAg
ICAgICAgV1RGTW92ZSgqbGluZXMpLAotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICAg
ICAgV1RGTW92ZSgqZGF0YURldGVjdG9ycyksCi0jZW5kaWYKLSAgICB9fTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggNGYzOTk0MjVj
NGY0NmQ0NDdiMDc0ZTNjYjFlYzE4MDVkNjA3NmIzNS4uYjM5ODYzY2FiYzY1MTRlYWQyNTA0MDk4
NThiZDM5ZjUwYWEyMzdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuaApAQCAtMzY2LDggKzM2Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgZ2VuZXJpY1RvdWNoSURQcm9tcHRUaXRsZSgpOwogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcElt
YWdlKCk7CiAjZW5kaWYKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHRSZWNvZ25pdGlvblJlc3VsdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhjMGMxZWUyNDczYjE4NGZmY2IyYWViOGViYzg3YTAxODU3NzNjMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaApA
QCAtMCwwICsxLDE4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKK09CSkNfQ0xBU1MgRERTY2FubmVyUmVzdWx0OworI2Vu
ZGlmCisKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IFRleHRSZWNvZ25pdGlvbldvcmREYXRhIHsKKyAgICBUZXh0UmVjb2duaXRpb25X
b3JkRGF0YShjb25zdCBTdHJpbmcmIHRoZVRleHQsIEZsb2F0UXVhZCYmIHF1YWQpCisgICAgICAg
IDogdGV4dCh0aGVUZXh0KQorICAgICAgICAsIG5vcm1hbGl6ZWRRdWFkKFdURk1vdmUocXVhZCkp
CisgICAgeworICAgIH0KKworICAgIFN0cmluZyB0ZXh0OworICAgIEZsb2F0UXVhZCBub3JtYWxp
emVkUXVhZDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxUZXh0UmVjb2duaXRpb25Xb3JkRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgVGV4dFJlY29nbml0aW9uV29yZERhdGE6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGV4dDsKKyAgICBl
bmNvZGVyIDw8IG5vcm1hbGl6ZWRRdWFkOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbldvcmREYXRhPiBUZXh0UmVjb2duaXRpb25Xb3Jk
RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IHRleHQ7CisgICAgZGVjb2RlciA+PiB0ZXh0OworICAgIGlmICghdGV4dCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRRdWFkPiBub3Jt
YWxpemVkUXVhZDsKKyAgICBkZWNvZGVyID4+IG5vcm1hbGl6ZWRRdWFkOworICAgIGlmICghbm9y
bWFsaXplZFF1YWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
e3sgV1RGTW92ZSgqdGV4dCksIFdURk1vdmUoKm5vcm1hbGl6ZWRRdWFkKSB9fTsKK30KKworc3Ry
dWN0IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhIHsKKyAgICBUZXh0UmVjb2duaXRpb25MaW5lRGF0
YShGbG9hdFF1YWQmJiBxdWFkLCBWZWN0b3I8VGV4dFJlY29nbml0aW9uV29yZERhdGE+JiYgdGhl
Q2hpbGRyZW4pCisgICAgICAgIDogbm9ybWFsaXplZFF1YWQoV1RGTW92ZShxdWFkKSkKKyAgICAg
ICAgLCBjaGlsZHJlbihXVEZNb3ZlKHRoZUNoaWxkcmVuKSkKKyAgICB7CisgICAgfQorCisgICAg
RmxvYXRRdWFkIG5vcm1hbGl6ZWRRdWFkOworICAgIFZlY3RvcjxUZXh0UmVjb2duaXRpb25Xb3Jk
RGF0YT4gY2hpbGRyZW47CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0aW9uTGluZURhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9
OworCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCitzdHJ1Y3QgVGV4dFJlY29nbml0aW9u
RGF0YURldGVjdG9yIHsKKyAgICBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IoKSA9IGRlZmF1
bHQ7CisgICAgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yKEREU2Nhbm5lclJlc3VsdCAqc2Nh
bm5lclJlc3VsdCwgVmVjdG9yPEZsb2F0UXVhZD4mJiBxdWFkcykKKyAgICAgICAgOiByZXN1bHQo
c2Nhbm5lclJlc3VsdCkKKyAgICAgICAgLCBub3JtYWxpemVkUXVhZHMoV1RGTW92ZShxdWFkcykp
CisgICAgeworICAgIH0KKworICAgIFJldGFpblB0cjxERFNjYW5uZXJSZXN1bHQ+IHJlc3VsdDsK
KyAgICBWZWN0b3I8RmxvYXRRdWFkPiBub3JtYWxpemVkUXVhZHM7Cit9OworCisjZW5kaWYgLy8g
RU5BQkxFKERBVEFfREVURUNUSU9OKQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFRl
eHRSZWNvZ25pdGlvbkxpbmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG5vcm1hbGl6ZWRRdWFkOworICAgIGVuY29kZXIgPDwgY2hpbGRyZW47
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0
aW9uTGluZURhdGE+IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1YWQ7Cisg
ICAgZGVjb2RlciA+PiBub3JtYWxpemVkUXVhZDsKKyAgICBpZiAoIW5vcm1hbGl6ZWRRdWFkKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
VGV4dFJlY29nbml0aW9uV29yZERhdGE+PiBjaGlsZHJlbjsKKyAgICBkZWNvZGVyID4+IGNoaWxk
cmVuOworICAgIGlmICghY2hpbGRyZW4pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4ge3sgV1RGTW92ZSgqbm9ybWFsaXplZFF1YWQpLCBXVEZNb3ZlKCpjaGlsZHJl
bikgfX07Cit9CisKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQgeworICAgIFZlY3RvcjxU
ZXh0UmVjb2duaXRpb25MaW5lRGF0YT4gbGluZXM7CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisgICAgVmVjdG9yPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gZGF0YURldGVjdG9y
czsKKyNlbmRpZgorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlm
ICghbGluZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQorICAgICAgICBpZiAoIWRhdGFEZXRlY3RvcnMuaXNFbXB0eSgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFRleHRSZWNvZ25pdGlvblJlc3VsdD4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgVGV4dFJlY29nbml0aW9uUmVzdWx0OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGxpbmVzOworI2lmIEVO
QUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBlbmNvZGVyIDw8IGRhdGFEZXRlY3RvcnM7CisjZW5k
aWYKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxUZXh0UmVjb2du
aXRpb25SZXN1bHQ+IFRleHRSZWNvZ25pdGlvblJlc3VsdDo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8VGV4dFJlY29nbml0aW9uTGluZURhdGE+
PiBsaW5lczsKKyAgICBkZWNvZGVyID4+IGxpbmVzOworICAgIGlmICghbGluZXMpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPj4gZGF0YURl
dGVjdG9yczsKKyAgICBkZWNvZGVyID4+IGRhdGFEZXRlY3RvcnM7CisgICAgaWYgKCFkYXRhRGV0
ZWN0b3JzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisKKyAgICByZXR1
cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqbGluZXMpLAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKKyAgICAgICAgV1RGTW92ZSgqZGF0YURldGVjdG9ycyksCisjZW5kaWYKKyAgICB9fTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVk
U3RyaW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVk
U3RyaW5nc0NvY29hLm1tCmluZGV4IGY2OGNlNDViM2YzZjc5ZTY5MmUyMDZjZWY5ZTg4MmFiYjdh
ZTk1MzQuLmU5NWZiNjUyZGZmNzEzOWQ3MDQ1M2UxNjdiNzE0OTU3ZDQ3ZTZmMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29j
b2EubW0KQEAgLTMxMiwxMSArMzEyLDEzIEBAIFN0cmluZyBleGl0RnVsbFNjcmVlbkJ1dHRvbkFj
Y2Vzc2liaWxpdHlUaXRsZSgpCiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi1TdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1h
Z2UoKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemVkTlNTdHJpbmcoQCJSZXZl
YWwgSW1hZ2UiKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCIsICJUaXRsZSBm
b3IgTG9vayBVcCBhY3Rpb24gYnV0dG9uIik7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYjAwYWI0ZWE5
MDkxNDc2N2E0YzYzMGZlMTViNGM1NThjMzhhZDI2ZS4uZjExMWMyNTM3OTVkMDc1OTA2ZWI1ZDc5
NDYyOGEwZjIyYWE0YTc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
MzQ1LDggKzM0NSw4IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgiCiAjZW5k
aWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2luY2x1ZGUgIkltYWdlRXh0cmFj
dGlvblJlc3VsdC5oIgorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyNpbmNsdWRlICJUZXh0
UmVjb2duaXRpb25SZXN1bHQuaCIKICNlbmRpZgogCiB1c2luZyBKU0M6OkNhbGxEYXRhOwpAQCAt
NTYwNSw3ICs1NjA1LDcgQEAgTW9ja1BheW1lbnRDb29yZGluYXRvciYgSW50ZXJuYWxzOjptb2Nr
UGF5bWVudENvb3JkaW5hdG9yKERvY3VtZW50JiBkb2N1bWVudCkKIEludGVybmFsczo6SW1hZ2VP
dmVybGF5TGluZTo6fkltYWdlT3ZlcmxheUxpbmUoKSA9IGRlZmF1bHQ7CiBJbnRlcm5hbHM6Oklt
YWdlT3ZlcmxheVRleHQ6On5JbWFnZU92ZXJsYXlUZXh0KCkgPSBkZWZhdWx0OwogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogc3RhdGljIEZsb2F0UXVhZCBnZXRRdWFkKGNvbnN0IFQmIG92ZXJs
YXlUZXh0T3JMaW5lKQpAQCAtNTYxOCwyNiArNTYxOCwyNiBAQCBzdGF0aWMgRmxvYXRRdWFkIGdl
dFF1YWQoY29uc3QgVCYgb3ZlcmxheVRleHRPckxpbmUpCiAgICAgfTsKIH0KIAotc3RhdGljIElt
YWdlRXh0cmFjdGlvbkxpbmVEYXRhIG1ha2VEYXRhRm9yTGluZShjb25zdCBJbnRlcm5hbHM6Oklt
YWdlT3ZlcmxheUxpbmUmIGxpbmUpCitzdGF0aWMgVGV4dFJlY29nbml0aW9uTGluZURhdGEgbWFr
ZURhdGFGb3JMaW5lKGNvbnN0IEludGVybmFsczo6SW1hZ2VPdmVybGF5TGluZSYgbGluZSkKIHsK
ICAgICByZXR1cm4gewogICAgICAgICBnZXRRdWFkPEludGVybmFsczo6SW1hZ2VPdmVybGF5TGlu
ZT4obGluZSksCi0gICAgICAgIGxpbmUuY2hpbGRyZW4ubWFwKFtdKGF1dG8mIHRleHRDaGlsZCkg
LT4gSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGEgeworICAgICAgICBsaW5lLmNoaWxkcmVuLm1hcChb
XShhdXRvJiB0ZXh0Q2hpbGQpIC0+IFRleHRSZWNvZ25pdGlvbldvcmREYXRhIHsKICAgICAgICAg
ICAgIHJldHVybiB7IHRleHRDaGlsZC50ZXh0LCBnZXRRdWFkPEludGVybmFsczo6SW1hZ2VPdmVy
bGF5VGV4dD4odGV4dENoaWxkKSB9OwogICAgICAgICB9KQogICAgIH07CiB9CiAKLSNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCiAKIHZvaWQgSW50ZXJuYWxzOjppbnN0YWxsSW1hZ2VPdmVybGF5KEVsZW1lbnQmIGVsZW1l
bnQsIFZlY3RvcjxJbWFnZU92ZXJsYXlMaW5lPiYmIGxpbmVzKQogewogICAgIGlmICghaXM8SFRN
TEVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLSAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oZWxlbWVudCkudXBkYXRlV2l0
aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQgewotICAgICAgICBs
aW5lcy5tYXAoW10gKGF1dG8mIGxpbmUpIC0+IEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhIHsKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KGVsZW1l
bnQpLnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0
IHsKKyAgICAgICAgbGluZXMubWFwKFtdIChhdXRvJiBsaW5lKSAtPiBUZXh0UmVjb2duaXRpb25M
aW5lRGF0YSB7CiAgICAgICAgICAgICByZXR1cm4gbWFrZURhdGFGb3JMaW5lKGxpbmUpOwogICAg
ICAgICB9KQogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDkwNGNiY2JmZTg2ZGU0OGQwZDRiYmNiNjI5ZjNjZmNmNGFiNzkwYjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDMw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0
aWVzQWRkaXRpb25zLmg+Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQwZTU2ZmE1ZWM0Y2I1MDQ0N2FiYzYzY2UzOThhNGVlMmI4YWQzZDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMubW0KKysrIC9kZXYvbnVs
bApAQCAtMSwzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0ICJJbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaCIKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVz
QWRkaXRpb25zLm1tPgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzlmZTczNjY1
Njk0ZTRkMmQ4NTlkOTdmODRiYmRkYmI0MmZjOGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCisKK0BjbGFzcyBWS0ltYWdlQW5hbHlzaXM7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitib29sIGlzTGl2ZVRleHRFbmFibGVkKCk7CitXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25S
ZXN1bHQgbWFrZVRleHRSZWNvZ25pdGlvblJlc3VsdChWS0ltYWdlQW5hbHlzaXMgKik7CisKK30K
KworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTNhNmEzM2ViNjJkYzBmNGZjZWI0ZDc0YzA1YTVmZTkxMmNhNDNhNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRp
bGl0aWVzLm1tCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKworI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0ltYWdlQW5hbHlzaXNf
V2ViS2l0Lmg+CisjaW1wb3J0IDxWaXNpb25LaXRDb3JlL1ZLUXVhZC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRmVh
dHVyZUZsYWdzU1BJLmg+CisKKy8vIE5vdGUgdGhhdCB0aGlzIGlzIGFjdHVhbGx5IGRlY2xhcmVk
IGFzIGFuIE9iamVjdGl2ZS1DIGNsYXNzIGluIFZpc2lvbktpdCBoZWFkZXJzLgorLy8gSG93ZXZl
ciwgZm9yIHN0YWdpbmcgcHVycG9zZXMsIHdlIGRlZmluZSBpdCBhcyBhIHByb3RvY29sIGluc3Rl
YWQgdG8gYXZvaWQgc3ltYm9sCisvLyByZWRlZmluaXRpb24gZXJyb3JzIHRoYXQgd291bGQgYXJp
c2Ugd2hlbiBjb21waWxpbmcgd2l0aCBhbiBTREsgdGhhdCBjb250YWlucyB0aGUKKy8vIHJlYWwg
ZGVmaW5pdGlvbiBvZiBWS1dLRGF0YURldGVjdG9ySW5mby4KKy8vIE9uY2UgdGhlIGNoYW5nZXMg
aW4gcmRhcjovLzc3OTc4NzQ1IGhhdmUgYmVlbiBpbiB0aGUgU0RLIGZvciBhIHdoaWxlLCB3ZSBj
YW4gcmVtb3ZlCisvLyB0aGlzIHN0YWdpbmcgZGVjbGFyYXRpb24gYW5kIHVzZSB0aGUgcmVhbCBP
YmplY3RpdmUtQyBjbGFzcy4KK0Bwcm90b2NvbCBWS1dLRGF0YURldGVjdG9ySW5mbworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBERFNjYW5uZXJSZXN1bHQgKnJlc3VsdDsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxWS1F1YWQgKj4gKmJvdW5kaW5nUXVh
ZHM7CitAZW5kCisKK0BpbnRlcmZhY2UgVktJbWFnZUFuYWx5c2lzIChTdGFnaW5nXzc3OTc4NzQ1
KQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PGlkIDxWS1dLRGF0YURl
dGVjdG9ySW5mbz4+ICp0ZXh0RGF0YURldGVjdG9yczsKK0BlbmQKKworQGludGVyZmFjZSBWS1dL
VGV4dEluZm8gKFN0YWdpbmdfNzcwODYxMDUpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TQXJyYXk8VktXS1RleHRJbmZvICo+ICpjaGlsZHJlbjsKK0BlbmQKKworbmFtZXNwYWNl
IFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIEZsb2F0UXVhZCBm
bG9hdFF1YWQoVktRdWFkICpxdWFkKQoreworICAgIHJldHVybiB7IHF1YWQudG9wTGVmdCwgcXVh
ZC50b3BSaWdodCwgcXVhZC5ib3R0b21SaWdodCwgcXVhZC5ib3R0b21MZWZ0IH07Cit9CisKK3N0
YXRpYyBWZWN0b3I8RmxvYXRRdWFkPiBmbG9hdFF1YWRzKE5TQXJyYXk8VktRdWFkICo+ICp2a1F1
YWRzKQoreworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOworICAgIHF1YWRzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodmtRdWFkcy5jb3VudCk7CisgICAgZm9yIChWS1F1YWQgKnZrUXVhZCBp
biB2a1F1YWRzKQorICAgICAgICBxdWFkcy51bmNoZWNrZWRBcHBlbmQoZmxvYXRRdWFkKHZrUXVh
ZCkpOworICAgIHJldHVybiBxdWFkczsKK30KKworVGV4dFJlY29nbml0aW9uUmVzdWx0IG1ha2VU
ZXh0UmVjb2duaXRpb25SZXN1bHQoVktJbWFnZUFuYWx5c2lzICphbmFseXNpcykKK3sKKyAgICBO
U0FycmF5PFZLV0tUZXh0SW5mbyAqPiAqYWxsTGluZXMgPSBhbmFseXNpcy5hbGxMaW5lczsKKyAg
ICBUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdC5saW5lcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGFsbExpbmVzLmNvdW50KTsKKyAgICBmb3IgKFZLV0tUZXh0SW5mbyAq
bGluZSBpbiBhbGxMaW5lcykgeworICAgICAgICBWZWN0b3I8VGV4dFJlY29nbml0aW9uV29yZERh
dGE+IGNoaWxkcmVuOworICAgICAgICBpZiAoW2xpbmUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihjaGlsZHJlbildKSB7CisgICAgICAgICAgICBOU0FycmF5PFZLV0tUZXh0SW5mbyAqPiAq
dmtDaGlsZHJlbiA9IGxpbmUuY2hpbGRyZW47CisgICAgICAgICAgICBjaGlsZHJlbi5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHZrQ2hpbGRyZW4uY291bnQpOworICAgICAgICAgICAgZm9yIChWS1dL
VGV4dEluZm8gKmNoaWxkIGluIHZrQ2hpbGRyZW4pCisgICAgICAgICAgICAgICAgY2hpbGRyZW4u
dW5jaGVja2VkQXBwZW5kKHsgY2hpbGQuc3RyaW5nLCBmbG9hdFF1YWQoY2hpbGQucXVhZCkgfSk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKHsgbGluZS5zdHJp
bmcsIGZsb2F0UXVhZChsaW5lLnF1YWQpIH0pOworICAgICAgICByZXN1bHQubGluZXMudW5jaGVj
a2VkQXBwZW5kKHsgZmxvYXRRdWFkKGxpbmUucXVhZCksIFdURk1vdmUoY2hpbGRyZW4pIH0pOwor
ICAgIH0KKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBpZiAoW2FuYWx5c2lzIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IodGV4dERhdGFEZXRlY3RvcnMpXSkgeworICAgICAg
ICBhdXRvIGRhdGFEZXRlY3RvcnMgPSByZXRhaW5QdHIoYW5hbHlzaXMudGV4dERhdGFEZXRlY3Rv
cnMpOworICAgICAgICByZXN1bHQuZGF0YURldGVjdG9ycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KFtkYXRhRGV0ZWN0b3JzIGNvdW50XSk7CisgICAgICAgIGZvciAoaWQgPFZLV0tEYXRhRGV0ZWN0
b3JJbmZvPiBpbmZvIGluIGRhdGFEZXRlY3RvcnMuZ2V0KCkpCisgICAgICAgICAgICByZXN1bHQu
ZGF0YURldGVjdG9ycy51bmNoZWNrZWRBcHBlbmQoeyBpbmZvLnJlc3VsdCwgZmxvYXRRdWFkcyhp
bmZvLmJvdW5kaW5nUXVhZHMpIH0pOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVz
QWRkaXRpb25zLm1tPgorI2Vsc2UKKworYm9vbCBpc0xpdmVUZXh0RW5hYmxlZCgpCit7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggNjNhMmQ3OTg4MGRkMWM0OGMzZjgzNTBmMWRlYjY1
ZTUxMjA5YmNhYS4uNWQxMDQ5Mzk5MWMzZWJjNDBkYmEwMmIzOWE3Zjk1ZjBhMGM0M2I5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTU0Myw3
ICs1NDMsNyBAQCBpbmxpbmUgV0tDb250ZXh0TWVudUl0ZW1UYWcgdG9BUEkoV2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogI2VuZGlmCiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1U
YWdTaGFyZU1lbnU7Ci0gICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZToKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgog
ICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U7CiAgICAgY2Fz
ZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJldHVybiBr
V0tDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CkBAIC03NDYsNyArNzQ2LDcgQEAgaW5saW5l
IFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIHRvSW1wbChXS0NvbnRleHRNZW51SXRlbVRhZyB0
YWcpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU7
CiAjZW5kaWYKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZTsKICAgICBj
YXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCBlNTdkZTcx
ODRjODE5M2EwYWQzMmUwNTBjODk0MjVmNTdjOTcxNjg1Li4yYmIxMmMyNzhkNWFkZjIwOGYyNThi
YzJlZThlNDY4N2EyZGI2MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpAQCAtMzYsNiArMzYsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPHBh
bC9zcGkvY2YvQ29yZVRleHRTUEkuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01
MSwxMCArNTIsNiBAQAogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDb2NvYUFkZGl0aW9ucy5tbT4KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi0jaW1wb3J0IDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oPgotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2lt
cG9ydCA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgpAQCAtNjg0LDE0ICs2
ODEsMTQgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY28KIH0KICNlbmRpZgogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAotdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjplbmNvZGVQ
bGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbyYgaW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpU
ZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJiBpbmZv
KQogewogICAgIGVuY29kZXIgPDwgaW5mby5yZXN1bHQuZ2V0KCk7CiB9CiAKLWJvb2wgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2Rl
UGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRh
dGFEZXRlY3RvckluZm8mIHJlc3VsdCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVj
b2RlciwgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJiByZXN1bHQpCiB7CiAg
ICAgYXV0byBzY2FubmVyUmVzdWx0ID0gSVBDOjpkZWNvZGU8RERTY2FubmVyUmVzdWx0PihkZWNv
ZGVyLCBAWyBQQUw6OmdldEREU2Nhbm5lclJlc3VsdENsYXNzKCkgXSk7CiAgICAgaWYgKCFzY2Fu
bmVyUmVzdWx0KQpAQCAtNzAxLDYgKzY5OCw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2RlUGxhdGZvcm1EYXRhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikg
JiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3N2I2NTVmYTljNmNmMGYxZmYwOWViY2ZiYTVm
NGU5MGYxNzMxYWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVw
ZGF0ZVJlc3VsdCA6IHVpbnQ4X3QgewotICAgIE5vVGV4dCwKLSAgICBUZXh0LAotICAgIERhdGFE
ZXRlY3RvciwKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1uYW1lc3BhY2UgV1RGIHsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVw
ZGF0ZVJlc3VsdD4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdl
YktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LAotICAgICAgICBXZWJLaXQ6OkltYWdl
RXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6Tm9UZXh0LAotICAgICAgICBXZWJLaXQ6OkltYWdlRXh0
cmFjdGlvblVwZGF0ZVJlc3VsdDo6VGV4dCwKLSAgICAgICAgV2ViS2l0OjpJbWFnZUV4dHJhY3Rp
b25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcgotICAgID47Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXVEYKLQotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9UZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYWFjZTQ3ZDZjNWM5ZTMyZjI0MjBmZWVhNWEyNGIzYmY4MzEwNGU2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmgK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDog
dWludDhfdCB7CisgICAgTm9UZXh0LAorICAgIFRleHQsCisgICAgRGF0YURldGVjdG9yLAorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0PiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViS2l0OjpUZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQsCisgICAgICAgIFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBk
YXRlUmVzdWx0OjpOb1RleHQsCisgICAgICAgIFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRl
UmVzdWx0OjpUZXh0LAorICAgICAgICBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3Vs
dDo6RGF0YURldGVjdG9yCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMDg3ODhjODJmMmEzNjY2YmQxNTVkZmMzZTQ1
NmIwYmJlNTEwMmU0YS4uOTFkMjFkOGYyMzZiZDE4ODMyYjUwZDJjYWQzMTFjYzZmMjQ4OGNlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBA
IC0xMTYsOCArMTE2LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0jaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNlbmRpZgogCiAvLyBG
SVhNRTogU2VlbXMgbGlrZSB3ZSBjb3VsZCB1c2Ugc3RkOjp0dXBsZSB0byBjdXQgZG93biB0aGUg
Y29kZSBiZWxvdyBhIGxvdCEKQEAgLTMyMjUsMTcgKzMyMjUsMTcgQEAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6QWN0aXZlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpHcmEKIAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW1hZ2VFeHRyYWN0aW9uRGF0
YURldGVjdG9ySW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbWFnZUV4dHJh
Y3Rpb25EYXRhRGV0ZWN0b3JJbmZvJiBpbmZvKQordm9pZCBBcmd1bWVudENvZGVyPFRleHRSZWNv
Z25pdGlvbkRhdGFEZXRlY3Rvcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImIGluZm8pCiB7CiAgICAgZW5jb2RlUGxhdGZvcm1EYXRh
KGVuY29kZXIsIGluZm8pOwogICAgIGVuY29kZXIgPDwgaW5mby5ub3JtYWxpemVkUXVhZHM7CiB9
CiAKLXN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz4gQXJndW1l
bnRDb2RlcjxJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCitzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJn
dW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKIHsKLSAgICBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvIHJlc3VsdDsK
KyAgICBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IgcmVzdWx0OwogICAgIGlmICghZGVjb2Rl
UGxhdGZvcm1EYXRhKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKQEAgLTMyNDgsNiArMzI0OCw2IEBAIHN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9u
RGF0YURldGVjdG9ySW5mbz4gQXJndW1lbnRDb2RlcjxJbWFnZUV4dHJhY3Rpb25EYXRhCiAgICAg
cmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKIH0gLy8gbmFtZXNwYWNlIElQ
QwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBk
YWU4MGZmN2RkMjU0Mjg5MTIxYjQxMzQwYjc3ZDBmOWM0ZjUwNjJkLi45Mzk3YjMyOGFiMTU2YmY2
YmJiMzgxMDUwN2QxMGYzZWFjOTUwNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTUwLDcgKzE1MCw3IEBAIHN0cnVjdCBFdmVudFRyYWNr
aW5nUmVnaW9uczsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IEZvbnRBdHRyaWJ1
dGVzOwogc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7Ci1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9u
RGF0YURldGVjdG9ySW5mbzsKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I7CiBz
dHJ1Y3QgUmF3RmlsZTsKIHN0cnVjdCBTaGFyZURhdGE7CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBh
cnNlZFVSTDsKQEAgLTg0MiwxNiArODQyLDE2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OkFjdGl2ZUluZm8+IHsKIH07CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04p
CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbWFnZUV4dHJh
Y3Rpb25EYXRhRGV0ZWN0b3JJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwotICAgIHN0YXRpYyB2b2lk
IGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbyYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRh
dGFEZXRlY3RvckluZm8mKTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImKTsK
KyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dFJlY29n
bml0aW9uRGF0YURldGVjdG9yJik7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0
YURldGVjdG9yJik7CiB9OwogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
ICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAogfSAvLyBuYW1lc3BhY2UgSVBDCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAppbmRleCBmMjNkMjFlYjgzYWQ1ZDFmNDQ4MjI4MjgwZjVmYmM2NTQwNzA5
MzgxLi44Y2ZjNjA3NGQwNTYyYWE1ODJjNWMwZDIzNDg4ZWU2MzZiMmM5YTljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC03NSwxMSArNzUsMTEgQEAgUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3Bw
CiBQbGF0Zm9ybS9jbGFzc2lmaWVyL2NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lm
aWVyQ29jb2EuY3BwCiBQbGF0Zm9ybS9jbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3ND
bGFzc2lmaWVyLmNwcAogCi1QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMu
bW0KIFBsYXRmb3JtL2NvY29hL0xheWVySG9zdGluZ0NvbnRleHQubW0KIFBsYXRmb3JtL2NvY29h
L1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50
QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9TaGFyZWRNZW1v
cnlDb2NvYS5jcHAKK1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbQog
UGxhdGZvcm0vY29jb2EvV0tDcmFzaFJlcG9ydGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9XS1BheW1l
bnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KIFBsYXRmb3JtL2NvY29hL1dlYktpdEFkZGl0aW9u
cy5tbSBAbm8tdW5pZnkKQEAgLTQ4NSw3ICs0ODUsNyBAQCBVSVByb2Nlc3MvaW9zL1dLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tCiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1
cml0eU9yaWdpbi5tbQogVUlQcm9jZXNzL2lvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyLm1tCi1VSVByb2Nlc3MvaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIubW0KK1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIu
bW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tCiBVSVByb2Nl
c3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW0KQEAgLTUyNCw3ICs1MjQsNiBAQCBVSVByb2Nlc3MvbWFjL1dlYlBv
cHVwTWVudVByb3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQog
VUlQcm9jZXNzL21hYy9XaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tCiBVSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KLVVJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJh
Y3Rpb25QcmV2aWV3Q29udHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KIFVJUHJvY2Vz
cy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tCkBAIC01MzIsNiArNTMxLDcgQEAgVUlQcm9j
ZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9tYWMv
V0tUZXh0RmluZGVyQ2xpZW50Lm1tCiBVSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29u
dHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQorVUlQcm9j
ZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLm1tCiAKIFVJUHJvY2Vzcy9N
ZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0KIFVJ
UHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCmlu
ZGV4IGVmY2M1MzU0Y2JkYjU5MTQ5YTMwNDZiYjM1MzAxNWUwNGI2YmI0ZDEuLmMzN2ZjODY5ZDgy
Yzc0ZDEwOGY3ZDY4NzM0YWE5OTJmNjliYjNkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCkBAIC0xNjIsMTYgKzE2
MiwxNiBAQCArIChpbnN0YW5jZXR5cGUpX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVu
dEFjdGlvblR5cGUpdHlwZSBjdXN0b21UaXRsZTooTgogICAgICAgICAvLyBUaGlzIGFjdGlvbiBt
dXN0IHN0aWxsIGV4aXN0IGZvciBjb21wYXRpYmlsaXR5LCBidXQgZG9lc24ndCBkbyBhbnl0aGlu
Zy4KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0
cmFjdGlvbjoKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgdGl0bGUgPSBX
ZWJDb3JlOjpsb2NhbGl6ZWROU1N0cmluZyhAIkdldCBJbmZvIik7CisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorICAgICAgICB0aXRsZSA9IFdFQl9VSV9TVFJJTkcoIlNob3cgVGV4dCIsICJU
aXRsZSBmb3IgU2hvdyBUZXh0IGFjdGlvbiBidXR0b24iKTsKICAgICAgICAgaGFuZGxlciA9IF4o
V0tBY3Rpb25TaGVldEFzc2lzdGFudCAqYXNzaXN0YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqYWN0aW9uSW5mbykgewogICAgICAgICAgICAgW2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0
aW9uV2l0aFR5cGU6dHlwZSBlbGVtZW50OmFjdGlvbkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNd
OwogICAgICAgICB9OwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxlbWVu
dEFjdGlvblR5cGVSZXZlYWxJbWFnZToKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpOwogICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlv
blNoZWV0QXNzaXN0YW50ICphc3Npc3RhbnQsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rp
b25JbmZvKSB7CiAgICAgICAgICAgICBbYXNzaXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRo
VHlwZTp0eXBlIGVsZW1lbnQ6YWN0aW9uSW5mbyBuZWVkc0ludGVyYWN0aW9uOllFU107CiAgICAg
ICAgIH07CkBAIC0yNDQsMTQgKzI0NCwxNCBAQCArIChVSUltYWdlICopaW1hZ2VGb3JFbGVtZW50
QWN0aW9uVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpYWN0aW9uVHlwZQogICAgIGNhc2UgX1dL
RWxlbWVudEFjdGlvblRvZ2dsZVNob3dMaW5rUHJldmlld3M6CiAgICAgICAgIHJldHVybiBuaWw7
IC8vIEludGVudGlvbmFsbHkgZW1wdHkuCiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUlt
YWdlRXh0cmFjdGlvbjoKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgcmV0
dXJuIFtfV0tFbGVtZW50QWN0aW9uIGltYWdlRm9yRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJh
Y3Rpb25dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgcmV0dXJuIFtVSUlt
YWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJ0ZXh0LnZpZXdmaW5kZXIiXTsKICNlbHNlCiAgICAgICAg
IHJldHVybiBuaWw7CiAjZW5kaWYKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFs
SW1hZ2U6Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHJldHVybiBbX1dL
RWxlbWVudEFjdGlvbiBpbWFnZUZvckVsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2VdOworI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgcmV0dXJuIFtVSUltYWdlIHN5c3RlbUlt
YWdlTmFtZWQ6QCJpbmZvLmNpcmNsZSJdOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG5pbDsKICNl
bmRpZgpAQCAtMzU4LDEwICszNTgsNiBAQCAtIChVSUFjdGlvbiAqKXVpQWN0aW9uRm9yRWxlbWVu
dEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8KIH0KICNlbmRpZiAv
LyBVU0UoVUlDT05URVhUTUVOVSkKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvX1dLRWxlbWVudEFjdGlvbkFkZGl0aW9ucy5tbT4KLSNlbmRp
ZgotCiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCA3ZjUz
OTAzNjUwMzBmYmYyYjQ1ZDIxMDY2ZmU5OGM4YWEzOGE5ZmU3Li41MTY3YmRiOGE1MGFmM2QzM2U5
OTcxZWZlMjg4ZmIyYzY4NDBlZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNzksMTAgKzc5LDcgQEAgU09GVF9MSU5L
X0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZhbHVhdG9yKTsKICNlbmRpZgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9X
ZWJQYWdlUHJveHlDb2NvYUFkZGl0aW9uc0JlZm9yZS5tbT4KLSNlbmRpZgotCi0jaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKy8vIEZJWE1FOiBUaGlzIGFkZGl0aW9ucyBmaWxlIHNob3VsZCBi
ZSByZW5hbWVkIHRvIFdlYlBhZ2VQcm94eUFkZGl0aW9ucy5tbS4KICNpbXBvcnQgPFdlYktpdEFk
ZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMuaD4KICNlbHNlCiAjZGVmaW5lIFdFQl9QQUdF
X1BST1hZX0FERElUSU9OUwpAQCAtNjE1LDE4ICs2MTIsMTggQEAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXkgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hF
eHRlbnMKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2UoKQordm9pZCBXZWJQYWdlUHJveHk6Omhh
bmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UoKQogewogICAgIGF1dG8mIHJlc3VsdCA9IG1fYWN0
aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpOwogICAgIGlm
ICghcmVzdWx0LmltYWdlQml0bWFwKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXZlYWxFeHRy
YWN0ZWRJbWFnZUluUHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29s
VGlwVGV4dCwgVVJMIHsgVVJMIHsgfSwgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSk7CisgICAg
c2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQcmV2aWV3UGFuZWwoKnJlc3VsdC5pbWFnZUJpdG1hcCwg
cmVzdWx0LnRvb2xUaXBUZXh0LCBVUkwgeyBVUkwgeyB9LCByZXN1bHQuYWJzb2x1dGVJbWFnZVVS
TCB9KTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklD
RVMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4
IDdlYjdiMjNmNDQ0MjU1NmRiODVmZDA1NzczZTI0NmRhOGI5OWJhOGQuLmJiYzY4M2FjMDcxNTEz
OGE2MDFmOGQ4NTc5NmI5MDFmZGMxNzBiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaApAQCAtNTUsNiArNTUsNyBAQCBPQkpDX0NMQVNTIE5TTWVudTsK
IE9CSkNfQ0xBU1MgTlNUZXh0SW5wdXRDb250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpD
X0NMQVNTIFFMUHJldmlld1BhbmVsOworT0JKQ19DTEFTUyBWS0ltYWdlQW5hbHl6ZXI7CiBPQkpD
X0NMQVNTIFdLQWNjZXNzaWJpbGl0eVNldHRpbmdzT2JzZXJ2ZXI7CiBPQkpDX0NMQVNTIFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tET01QYXN0ZU1lbnVEZWxlZ2F0
ZTsKQEAgLTg0LDEwICs4NSw2IEBAIE9CSkNfQ0xBU1MgV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXI7CiBPQkpDX0NMQVNTIFdLUERGSFVEVmlldzsKICNlbmRpZgogCi0jaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFkZGl0aW9u
c0JlZm9yZS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgSGl0VGVzdFJlc3Vs
dDsKIGNsYXNzIE9iamVjdDsKQEAgLTk5LDE0ICs5NiwxMSBAQCBjbGFzcyBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U7CiBjbGFzcyBJbnRQb2ludDsKIHN0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5m
bzsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRSZWNvZ25pdGlv
blJlc3VsdDsKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShD
T05URVhUX01FTlVTKQogc3RydWN0IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvOwogI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQ7Ci0jZW5kaWYKIH0KIAogQHByb3RvY29sIFdlYlZpZXdJbXBsRGVsZWdhdGUKQEAgLTYw
Miw5ICs1OTYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9y
VGVzdGluZygpOwogICAgIGJvb2wgc2hvdWxkUmVxdWVzdENhbmRpZGF0ZXMoKSBjb25zdDsKIAot
I2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFj
dGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlv
blJlc3VsdCYmKT4mJik7Ci0gICAgdm9pZCBjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJM
JiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQg
cmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBjb21wdXRlSGFzVmlz
dWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGlt
YWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAg
ICAgYm9vbCBhY2NlcHRzUHJldmlld1BhbmVsQ29udHJvbChRTFByZXZpZXdQYW5lbCAqKTsKQEAg
LTc1Myw2ICs3NDcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmREcmFnRW5kVG9QYWdlKENH
UG9pbnQgZW5kUG9pbnQsIE5TRHJhZ09wZXJhdGlvbik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBWS0ltYWdlQW5hbHl6ZXIgKmVuc3VyZUltYWdlQW5hbHl6ZXIo
KTsKKyNlbmRpZgorCiAgICAgV2Vha09iakNQdHI8TlNWaWV3PFdlYlZpZXdJbXBsRGVsZWdhdGU+
PiBtX3ZpZXc7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsK
ICAgICBSZWY8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CkBAIC05MDAsOCArODk4LDkgQEAgcHJpdmF0
ZToKICAgICBSZXRhaW5QdHI8V0tSZXZlYWxJdGVtUHJlc2VudGVyPiBtX3JldmVhbEl0ZW1QcmVz
ZW50ZXI7CiAjZW5kaWYKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxBZGRpdGlvbnNBZnRlci5oPgorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX2ltYWdlQW5hbHl6ZXJRdWV1
ZTsKKyAgICBSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyPiBtX2ltYWdlQW5hbHl6ZXI7CiAjZW5k
aWYKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCmluZGV4IGMzZmE2Y2FlMzNjNTM4YzExZTMwOTcxNDM4Yjc0MDk1NmUwMjcwMjYuLmUzMjIy
MWMzNTI0YThjNjYyY2MwYWM4NDg0N2IxODhiOWNjNDYzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0
ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJU
ZXh0Q2hlY2tlclN0YXRlLmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQg
IlVJR2FtZXBhZFByb3ZpZGVyLmgiCiAjaW1wb3J0ICJVbmRvT3JSZWRvLmgiCkBAIC02MCw3ICs2
MSw2IEBACiAjaW1wb3J0ICJXS0VkaXRDb21tYW5kLmgiCiAjaW1wb3J0ICJXS0Vycm9ySW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKLSNpbXBvcnQg
IldLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgogI2ltcG9y
dCAiV0tQREZIVURWaWV3LmgiCkBAIC03MCw2ICs3MCw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tT
aGFyZVNoZWV0Lmg+CiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIldLVmlld0xheW91dFN0cmF0ZWd5LmgiCisjaW1wb3J0ICJXS1Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJCYWNrRm9y
d2FyZExpc3QuaD4KQEAgLTk4LDcgKzk5LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZvbnRBdHRyaWJ1dGVzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJl
c3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9hZGVy
TlNVUkxFeHRyYXMuaD4KQEAgLTEwOCw2ICsxMDgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0
Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgorI2ltcG9ydCA8
V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFVu
ZG9JbnNlcnRpb25NYXJrdXBNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVHJhbnNsYXRpb25Db250
ZXh0TWVudUluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXll
ckRlbGVnYXRlLmg+CkBAIC0xNDUsNiArMTQ2LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eVByaXZhdGUuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQorI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0ltYWdlQW5hbHlzaXNfV2ViS2l0Lmg+
CisjaW1wb3J0IDxWaXNpb25LaXRDb3JlL1ZLSW1hZ2VBbmFseXplci5oPgorI2ltcG9ydCA8Vmlz
aW9uS2l0Q29yZS9WS1F1YWQuaD4KKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisK
ICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQogI2ltcG9ydCA8VHJhbnNsYXRpb25V
SVNlcnZpY2VzL0xUVUlUcmFuc2xhdGlvblZpZXdDb250cm9sbGVyLmg+CiAKQEAgLTE4Miw5ICsx
ODksODUgQEAgLSAodm9pZClzZXRDYW5TaG93TWVkaWFTZWxlY3Rpb25CdXR0b246KEJPT0wpY2Fu
U2hvd01lZGlhU2VsZWN0aW9uQnV0dG9uOwogQGVuZAogI2VuZGlmCiAKLSNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlZpZXdJbXBsQWRkaXRp
b25zLm1tPgotI2VuZGlmCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitTT0ZUX0xJTktf
UFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoVmlzaW9uS2l0Q29yZSkKK1NPRlRfTElOS19DTEFT
U19PUFRJT05BTChWaXNpb25LaXRDb3JlLCBWS0ltYWdlQW5hbHl6ZXIpCitTT0ZUX0xJTktfQ0xB
U1NfT1BUSU9OQUwoVmlzaW9uS2l0Q29yZSwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCkKKworLy8g
RklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgPHJkYXI6Ly83MjQ4MDQ1OT4gaXMgaW4gdGhlIFNESy4K
K0BpbnRlcmZhY2UgVktJbWFnZUFuYWx5emVyUmVxdWVzdCAoU3RhZ2luZ183MjQ4MDQ1OSkKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBOU1VSTCAqaW1hZ2VVUkw7CitAcHJvcGVydHkgKG5vbmF0b21p
YykgTlNVUkwgKnBhZ2VVUkw7CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitWS0ltYWdl
QW5hbHl6ZXIgKldlYlZpZXdJbXBsOjplbnN1cmVJbWFnZUFuYWx5emVyKCkKK3sKKyAgICBpZiAo
IW1faW1hZ2VBbmFseXplcikgeworICAgICAgICBtX2ltYWdlQW5hbHl6ZXJRdWV1ZSA9IFdvcmtR
dWV1ZTo6Y3JlYXRlKCJXZWJLaXQgaW1hZ2UgYW5hbHl6ZXIgcXVldWUiKTsKKyAgICAgICAgbV9p
bWFnZUFuYWx5emVyID0gYWRvcHROUyhbYWxsb2NWS0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGlu
aXRdKTsKKyAgICAgICAgW21faW1hZ2VBbmFseXplciBzZXRDYWxsYmFja1F1ZXVlOm1faW1hZ2VB
bmFseXplclF1ZXVlLT5kaXNwYXRjaFF1ZXVlKCldOworICAgIH0KKyAgICByZXR1cm4gbV9pbWFn
ZUFuYWx5emVyLmdldCgpOworfQorCitzdGF0aWMgUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJl
cXVlc3Q+IGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KENHSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0
IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFVSTCYgcGFnZVVSTCwgVktBbmFseXNpc1R5cGVzIHR5cGVz
KQoreworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW2FsbG9jVktJbWFnZUFuYWx5emVyUmVx
dWVzdEluc3RhbmNlKCkgaW5pdFdpdGhDR0ltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VP
cmllbnRhdGlvblVwIHJlcXVlc3RUeXBlOnR5cGVzXSk7CisgICAgW3JlcXVlc3Qgc2V0SW1hZ2VV
Ukw6aW1hZ2VVUkxdOworICAgIFtyZXF1ZXN0IHNldFBhZ2VVUkw6cGFnZVVSTF07CisgICAgcmV0
dXJuIHJlcXVlc3Q7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRp
b24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25S
ZXN1bHQmJik+JiYgY29tcGxldGlvbikKK3sKKyAgICBpZiAoIWlzTGl2ZVRleHRFbmFibGVkKCkp
IHsKKyAgICAgICAgY29tcGxldGlvbih7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byBpbWFnZUJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlRGF0YSk7
CisgICAgaWYgKCFpbWFnZUJpdG1hcCkgeworICAgICAgICBjb21wbGV0aW9uKHsgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZUJpdG1hcC0+bWFr
ZUNHSW1hZ2UoKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVz
dChjZ0ltYWdlLmdldCgpLCBpbWFnZVVSTCwgW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpt
X3BhZ2UtPmN1cnJlbnRVUkwoKV0sIFZLQW5hbHlzaXNUeXBlVGV4dCk7CisgICAgYXV0byBzdGFy
dFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBbZW5zdXJlSW1hZ2VBbmFseXplcigp
IHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0
aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24p
LCBzdGFydFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICopIG11dGFi
bGUgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbY29tcGxldGlvbiA9IFdURk1vdmUoY29t
cGxldGlvbiksIHJlc3VsdCA9IG1ha2VUZXh0UmVjb2duaXRpb25SZXN1bHQoYW5hbHlzaXMpLCBz
dGFydFRpbWVdICgpIG11dGFibGUgeworICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAi
SW1hZ2UgYW5hbHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKGZvdW5kIHRleHQ/ICVkKSIsIChN
b25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksICFyZXN1bHQu
aXNFbXB0eSgpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb24oV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRl
SGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRt
YXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b24pCit7CisgICAgaWYgKCFpc0xpdmVUZXh0RW5hYmxlZCgpKSB7CisgICAgICAgIGNvbXBsZXRp
b24oZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjZ0ltYWdlID0g
aW1hZ2VCaXRtYXAubWFrZUNHSW1hZ2UoKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVJbWFn
ZUFuYWx5c2lzUmVxdWVzdChjZ0ltYWdlLmdldCgpLCBpbWFnZVVSTCwgW05TVVJMIF93ZWJfVVJM
V2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRVUkwoKV0sIFZLQW5hbHlzaXNUeXBlVmlzdWFs
U2VhcmNoKTsKKyAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAg
IFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQoKSBwcm9n
cmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlv
biA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZV0gKFZLSW1hZ2VBbmFseXNpcyAqYW5h
bHlzaXMsIE5TRXJyb3IgKikgbXV0YWJsZSB7CisgICAgICAgIEJPT0wgcmVzdWx0ID0gW2FuYWx5
c2lzIGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNo
XTsKKyAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdldE1haW4oKSwgKF9f
YnJpZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlLCBtYWtlQmxvY2tQ
dHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQsIHN0YXJ0VGltZV0g
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFs
eXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAoZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAl
ZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpLCBy
ZXN1bHQpOworICAgICAgICAgICAgY29tcGxldGlvbihyZXN1bHQpOworICAgICAgICB9KS5nZXQo
KSk7CisgICAgICAgIENGUnVuTG9vcFdha2VVcChDRlJ1bkxvb3BHZXRNYWluKCkpOworICAgIH0p
LmdldCgpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKIEBpbnRlcmZhY2UgV0tBY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNl
cnZlciA6IE5TT2JqZWN0IHsKICAgICBXZWJLaXQ6OldlYlZpZXdJbXBsICpfaW1wbDsKQEAgLTU3
MTcsOCArNTgwMCw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNs
YXRpb24oY29uc3QgV2ViQ29yZTo6VHJhbnNsYXRpb25Db250ZXh0CiAKIGJvb2wgV2ViVmlld0lt
cGw6OmFjY2VwdHNQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICopCiB7Ci0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgcmV0dXJuICEhbV9wYWdlLT5pbWFnZUV4dHJh
Y3Rpb25QcmV2aWV3Q29udHJvbGxlcigpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICByZXR1cm4gISFtX3BhZ2UtPnZpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyKCk7CiAjZWxz
ZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCmluZGV4IGU3MjJiNDAzYTc3ZDNmYWZkODM2YzI4ZGRmY2U2YWU4YjM0YjVkNzguLjg3NzBh
ZDQ2MzgxNmJmZWY0YzRhOTkzNzQ2NTM5ZTAyZDIxY2Q1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKQEAgLTYyLDggKzYyLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3Bl
Y3Rvck92ZXJsYXkuaD4KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0j
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4K
ICNlbmRpZgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CkBAIC01MzgsOSArNTM4LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgV2ViQ29yZTo6RGF0YU93bmVyVHlwZSBkYXRhT3duZXJGb3JQYXN0ZWJv
YXJkKFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQpIGNvbnN0IHsgcmV0dXJuIFdlYkNvcmU6OkRhdGFP
d25lclR5cGU6OlVuZGVmaW5lZDsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwm
IGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBj
b21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
Q2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oZmFsc2UpOyB9Cisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0VGV4dFJl
Y29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29n
bml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pIHsgY29tcGxldGlvbih7IH0pOyB9CisgICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYsIFNo
YXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bikgeyBjb21wbGV0aW9uKGZhbHNlKTsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwYTkxNjI3ZmNhMjJkNDFkMDJmOTVlNWRm
ZGVjOWZhZmU0ZjQ2M2M3Li4zNWZjOTRiZmQ0ZTE0YmEzM2NkNjdiYTRjNmU3ODdmMzYxNzA5YWYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY2LDcgKzY2
LDYgQEAKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkZv
cm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5oIgotI2luY2x1ZGUg
IkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCkBAIC05NCw2ICs5Myw3IEBACiAjaW5jbHVkZSAiU3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0
YXRlLmgiCisjaW5jbHVkZSAiVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmgiCiAjaW5jbHVk
ZSAiVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJVbmRvT3JSZWRvLmgiCiAj
aW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgpAQCAtNjg5Niw5ICs2
ODk2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0
IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5P
cklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
LSAgICAgICAgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgpOworICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAg
ICAgICBoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCk7CiAjZW5kaWYKICAgICAgICAgcmV0
dXJuOwogCkBAIC04NDg2LDI1ICs4NDg2LDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmCiAj
ZW5kaWYKIAogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi12b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFRleHRS
ZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNv
Z25pdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBwYWdlQ2xpZW50
KCkucmVxdWVzdEltYWdlRXh0cmFjdGlvbihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RUZXh0UmVjb2duaXRp
b24oaW1hZ2VVUkwsIGltYWdlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1h
Z2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21wdXRlSGFzVmlz
dWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGlt
YWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCiB7
Ci0gICAgcGFnZUNsaWVudCgpLmNvbXB1dGVDYW5SZXZlYWxJbWFnZShpbWFnZVVSTCwgaW1hZ2VC
aXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlSGFz
VmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxl
dGlvbikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlv
blJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFRl
eHRSZWNvZ25pdGlvblJlc3VsdCYmIHJlc3VsdHMsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChU
ZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJ
bWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6Tm9UZXh0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6
VXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdHMpLCBjb250ZXh0
LCBsb2NhdGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1
bHQoV1RGTW92ZShyZXN1bHRzKSwgY29udGV4dCwgbG9jYXRpb24pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA2NDU4Yjg4MWViMjhmZjU4MmVmZjM0YmI3ZDhkNmQ0Y2ZlYmJkZjY5Li42ZDA1
ZDZmYzc5MDhlNGIyZGI4NWE2NDIzYzRmY2U2OTY2NjAwYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjMxLDYgKzIzMSw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0
QWx0ZXJuYXRpdmVzOwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIFFMUHJldmlld1Bh
bmVsOwogT0JKQ19DTEFTUyBXS1FMVGh1bWJuYWlsTG9hZE9wZXJhdGlvbjsKK09CSkNfQ0xBU1Mg
V0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tXZWJWaWV3Owog
T0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeTsKICNlbmRpZgpAQCAtMjk3LDEzICsy
OTgsMTAgQEAgc3RydWN0IFNoYXJlRGF0YTsKIHN0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Owogc3RydWN0IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZTsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdS
ZXN1bHQ7CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXR0
cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQotc3RydWN0IEltYWdlRXh0cmFjdGlvblJlc3VsdDsKLSNlbmRpZgotCiAjaWYgSEFW
RShQQVNURUJPQVJEX0RBVEFfT1dORVIpCiBlbnVtIGNsYXNzIERhdGFPd25lclR5cGUgOiB1aW50
OF90OwogI2VuZGlmCkBAIC00MDcsNyArNDA1LDcgQEAgc3RydWN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwogc3RydWN0IFdlYlNwZWVjaFN5bnRoZXNpc1Zv
aWNlOwogCi1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7
CitlbnVtIGNsYXNzIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIE5lZ290aWF0ZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50IDogYm9vbDsKIGVudW0gY2xhc3MgVW5kb09yUmVkbyA6IGJvb2w7
CkBAIC0xNjY0LDEwICsxNjYyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBG
cmFtZUluZm9EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKICNl
bmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgdm9pZCByZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uUmVzdWx0JiYpPiYmKTsKLSAgICB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rp
b25SZXN1bHQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJik7Ci0g
ICAgdm9pZCBjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVh
YmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25p
dGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
blJlc3VsdCYmKT4mJik7CisgICAgdm9pZCB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
KFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50
Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCk+JiYpOworICAgIHZvaWQg
Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVh
YmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKQEAgLTE5MTEsOCArMTkwOSw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlzcGF0Y2hXaGVlbEV2ZW50V2l0aG91dFNjcm9sbGluZyhjb25zdCBXZWJXaGVlbEV2ZW50
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdm9pZCBoYW5kbGVDb250
ZXh0TWVudVJldmVhbEltYWdlKCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2Uo
KTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTE5NDQsNiArMTk0MiwxMCBAQCBwdWJs
aWM6CiAKICAgICBib29sIGlzUnVubmluZ01vZGFsSmF2YVNjcmlwdERpYWxvZygpIGNvbnN0IHsg
cmV0dXJuIG1faXNSdW5uaW5nTW9kYWxKYXZhU2NyaXB0RGlhbG9nOyB9CiAKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpICYmIFBMQVRGT1JNKE1BQykKKyAgICBXS1Zpc3VhbFNlYXJjaFByZXZp
ZXdDb250cm9sbGVyICp2aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0
dXJuIG1fdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5Jiwg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKCk7CkBAIC0yNDkyLDYgKzI0OTQsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcnVuTW9k
YWxKYXZhU2NyaXB0RGlhbG9nKFJlZlB0cjxXZWJGcmFtZVByb3h5PiYmLCBGcmFtZUluZm9EYXRh
JiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5KiwgRnJhbWVJbmZvRGF0YSYmLCBjb25zdCBTdHJpbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpPiYmKTsKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQ
cmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgY29uc3QgU3RyaW5nJiB0
b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJMKTsKKyNlbmRpZgorCiAgICAgY29uc3QgSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdl
SUQ7CiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7CkBAIC0zMDQyLDYgKzMw
NDgsMTAgQEAgcHJpdmF0ZToKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9uc0FmdGVyLmg+CiAjZW5kaWYKKwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIFJldGFpblB0
cjxXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyPiBtX3Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyOworI2VuZGlmCiB9OwogCiAjaWZkZWYgX19PQkpDX18KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3MGFhZjA3MGQz
Njc3OGViMTliN2U5YmVjYjkzZWRjNWRmZWQ1ZmY4Li5hYjMyNDgxMWUxNjg2MmQ0ZWFiMWU4YzZl
ZmQwMTgzZjljNjRiOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMjQsOCArMjI0LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBDb21wb3NpdGlvbldhc0NhbmNlbGVkKCkKICAgICBTZXRIYXNIYWRTZWxl
Y3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbihib29sIGhhc0hhZFVzZXJTZWxlY3Rpb25D
aGFuZ2VzKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgUmVxdWVzdEltYWdl
RXh0cmFjdGlvbihVUkwgaW1hZ2VVUkwsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUg
aW1hZ2VEYXRhKSAtPiAoc3RydWN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCByZXN1
bHQpIEFzeW5jCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFJlcXVlc3RUZXh0UmVj
b2duaXRpb24oVVJMIGltYWdlVVJMLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGlt
YWdlRGF0YSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0
KSBBc3luYwogI2VuZGlmCiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMjZiNzQxMjZlZjNjODAzNmQxOTMwOGM2NzFhYmE1MDg5
OWEwOWFmOS4uMDhmMjQ5NzhkMWEwMDEyOTYzNGE4MmI3NjE3NmZhNzhhYzEyNTQyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEy
MCw4ICsxMjAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZG9uZURlZmVycmluZ1RvdWNoRW5kKGJv
b2wgcHJldmVudE5hdGl2ZUdlc3R1cmVzKSBvdmVycmlkZTsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0
IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYp
PiYmKSBmaW5hbDsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0
VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgUmVmUHRyPFdl
YlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQppbmRleCBiYWRiZWZiNmNjYjU2MzRhZmViZThhMTI2YjlhNzg5YTViMjM3YTdjLi41NmIz
MjU5ODcwOGRiYWM4OTE1NjMzNmRjMTJlZjJkMTk0ZDU5N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NjUsMTQgKzQ2NSwx
NCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2
ZW50TmF0aXZlR2VzdHVyZXMpCiAKICNlbmRpZiAvLyBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
IAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBV
UkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4m
JiBjb21wbGV0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFRleHRSZWNvZ25pdGlv
bihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1h
Z2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJl
c3VsdCYmKT4mJiBjb21wbGV0aW9uKQogewotICAgIFttX2NvbnRlbnRWaWV3IHJlcXVlc3RJbWFn
ZUV4dHJhY3Rpb246aW1hZ2VVUkwgaW1hZ2VEYXRhOmltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxl
cjpXVEZNb3ZlKGNvbXBsZXRpb24pXTsKKyAgICBbbV9jb250ZW50VmlldyByZXF1ZXN0VGV4dFJl
Y29nbml0aW9uOmltYWdlVVJMIGltYWdlRGF0YTppbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6
V1RGTW92ZShjb21wbGV0aW9uKV07CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBIQVZFKFBBU1RF
Qk9BUkRfREFUQV9PV05FUikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggNDNhNDczNDU5MDM4ZjcyMGQ5OGFmMzAx
MWM0MDFlOTIxMzFmOTkyNy4uNmU4ZWUzZGEzMDkyZWFhMmE3NDQ3NmU1NmNlMzUxMzY2OTc5NGY3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVl
dEFzc2lzdGFudC5oCkBAIC03OSwxMSArNzksMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLRWxlbWVudEFjdGlvblR5cGUpOwogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERp
ZERpc21pc3NDb250ZXh0TWVudTooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsK
ICNlbmRpZgogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lz
dGFudCAqKWFzc2lzdGFudCBzaGFyZUVsZW1lbnRXaXRoSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBy
ZWN0OihDR1JlY3QpYm91bmRpbmdSZWN0OwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQot
LSAoQk9PTClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFz
c2lzdGFudCBzaG91bGRJbmNsdWRlSW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDooX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50OwotLSAodm9pZClhY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBoYW5kbGVJbWFnZUV4dHJh
Y3Rpb246KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZToo
TlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRzOwotLSAoQk9P
TClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dCBzaG91bGRJbmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWVsZW1lbnQ7Ci0tICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGhhbmRsZVJldmVhbEltYWdlOihVSUltYWdl
ICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0
bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kczsKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCistIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0
YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvd1RleHRGb3JJbWFn
ZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0
cmluZyAqKXRpdGxlIGltYWdlQm91bmRzOihDR1JlY3QpaW1hZ2VCb3VuZHM7CistIChCT09MKWFj
dGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNo
b3VsZEluY2x1ZGVMb29rVXBJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudDsKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9u
U2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgbG9va1VwSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBp
bWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJv
dW5kczooQ0dSZWN0KWltYWdlQm91bmRzOwogI2VuZGlmCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KaW5kZXgg
ZDE4ZDM1YTAzOGFmMzg3ZDFmNDUwZGJmYTk0MDIzZTQ1ZWY4MDdkYi4uZTA3ZThjM2NlYjhhNzkw
Y2RiZTEwM2M1ODAwZDViMmE0OTM3ODA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTU2OCwxMSArNTY4LDEx
IEBAIC0gKFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rp
b25zRm9yTGlua1NoZWV0OihfV0tBY3RpdmF0CiAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRP
YmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50
QWN0aW9uVHlwZVNoYXJlIGFzc2lzdGFudDpzZWxmXV07CiAgICAgfQogCi0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIGlmIChlbGVt
ZW50SW5mby50eXBlID09IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2UgfHwgW2VsZW1lbnRJ
bmZvIGltYWdlXSkgewotICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVJbWFnZUV4dHJhY3Rp
b25BY3Rpb25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6
c2VsZiBzaG91bGRJbmNsdWRlSW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDplbGVtZW50
SW5mb10pCisgICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZVNob3dUZXh0QWN0aW9uRm9yRWxl
bWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5j
bHVkZVNob3dUZXh0QWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCiAgICAgICAgICAgICBb
ZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9u
V2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb24gYXNzaXN0YW50OnNl
bGZdXTsKLSAgICAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JF
bGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJ
bmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKKyAgICAgICAg
aWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFz
c2lzdGFudDpzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OildICYmIFtf
ZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlTG9va1VwSW1h
Z2VBY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKICAgICAgICAgICAgIFtkZWZhdWx0QWN0
aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpf
V0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlIGFzc2lzdGFudDpzZWxmXV07CiAgICAgfQog
I2VuZGlmCkBAIC02MDAsMTAgKzYwMCwxMCBAQCAtIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVt
ZW50QWN0aW9uICo+PilkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2YQogCiAg
ICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFj
dGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weSBhc3Npc3RhbnQ6c2VsZl1dOwog
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRl
SW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNo
ZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVkZUltYWdlRXh0cmFjdGlvbkFjdGlvbkZvckVs
ZW1lbnQ6ZWxlbWVudEluZm9dKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAo
W19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0
YW50OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0
ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZv
ckVsZW1lbnQ6ZWxlbWVudEluZm9dKQogICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0
OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlv
blR5cGVJbWFnZUV4dHJhY3Rpb24gYXNzaXN0YW50OnNlbGZdXTsKLSAgICBpZiAoW19kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3Vs
ZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rp
b25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVs
ZW1lbnQ6ZWxlbWVudEluZm9dKQorICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZUxvb2tVcEltYWdl
QWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNl
bGYgc2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10p
CiAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2Vs
ZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlIGFzc2lz
dGFudDpzZWxmXV07CiAjZW5kaWYKIApAQCAtMTAyMywxMyArMTAyMywxMyBAQCAtICh2b2lkKWhh
bmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVt
ZW50OihfV0tBY3RpdgogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxl
bWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb246Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCi0gICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGhhbmRsZUlt
YWdlRXh0cmFjdGlvbjplbGVtZW50LmltYWdlIGltYWdlVVJMOmVsZW1lbnQuaW1hZ2VVUkwgdGl0
bGU6ZWxlbWVudC50aXRsZSBpbWFnZUJvdW5kczplbGVtZW50LmJvdW5kaW5nUmVjdF07CisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6c2VsZiBzaG93VGV4dEZvckltYWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVu
dC5pbWFnZVVSTCB0aXRsZTplbGVtZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRp
bmdSZWN0XTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rp
b25UeXBlUmV2ZWFsSW1hZ2U6Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAg
IFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGhhbmRsZVJldmVhbEltYWdlOmVs
ZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVudC5pbWFnZVVSTCB0aXRsZTplbGVtZW50LnRpdGxl
IGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGxvb2tV
cEltYWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVudC5pbWFnZVVSTCB0aXRsZTplbGVt
ZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKICNlbmRpZgogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGFlYjQ0NDI5MGRiNjc2
NTI4ODNkYTAwZTU1M2ZmYTFjNmU0NzliNDIuLjMwMjRiYjQyODljMjFmNmU4MGUwNzA0Y2JhYTE0
ZGFjZWM3ZDBiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTg3LDYgKzg3LDcgQEAgc3RydWN0IENvbnRh
Y3RJbmZvOwogc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRh
Y2htZW50SW5mbzsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRS
ZWNvZ25pdGlvblJlc3VsdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwpAQCAtOTUsMTAgKzk2LDYgQEAgZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERyYWdJdGVtOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ7Ci0jZW5kaWYK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMzksOSArMTM2LDEyIEBAIGNsYXNzIFdlYlBh
Z2VQcm94eTsKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQot
I2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9u
c0JlZm9yZS5oPgotI2VuZGlmCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorQGNsYXNzIFFM
UHJldmlld0NvbnRyb2xsZXI7CitAY2xhc3MgVktJbWFnZUFuYWx5emVyOworQGNsYXNzIFdLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyOworCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQogCiB0eXBlZGVmIHZvaWQgKF5VSVdLQXV0b2NvcnJlY3Rpb25Db21wbGV0aW9uSGFu
ZGxlcikoVUlXS0F1dG9jb3JyZWN0aW9uUmVjdHMgKnJlY3RzRm9ySW5wdXQpOwogdHlwZWRlZiB2
b2lkICheVUlXS0F1dG9jb3JyZWN0aW9uQ29udGV4dEhhbmRsZXIpKFVJV0tBdXRvY29ycmVjdGlv
bkNvbnRleHQgKmF1dG9jb3JyZWN0aW9uQ29udGV4dCk7CkBAIC0xNTIsMTIgKzE1MiwxNiBAQCB0
eXBlZGVmIHZvaWQgKF5VSVdLU2VsZWN0aW9uV2l0aERpcmVjdGlvbkNvbXBsZXRpb25IYW5kbGVy
KShCT09MIHNlbGVjdGlvbkVuZElzTQogdHlwZWRlZiBCbG9ja1B0cjx2b2lkKFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pPiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2Fs
bGJhY2s7CiB0eXBlZGVmIHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25S
ZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2s+IEludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2s7CiAKLSNpZiAhZGVmaW5lZChGT1JfRUFDSF9BRERJVElP
TkFMX1dLQ09OVEVOVFZJRVdfQUNUSU9OKQotI2RlZmluZSBGT1JfRUFDSF9BRERJVElPTkFMX1dL
Q09OVEVOVFZJRVdfQUNUSU9OKE0pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2RlZmlu
ZSBGT1JfRUFDSF9JTlNFUlRfVEVYVF9GUk9NX0NBTUVSQV9XS0NPTlRFTlRWSUVXX0FDVElPTihN
KSBcCisgICAgTShfaW5zZXJ0VGV4dEZyb21DYW1lcmEpIFwKKyAgICBNKGNhcHR1cmVUZXh0RnJv
bUNhbWVyYSkKKyNlbHNlCisjZGVmaW5lIEZPUl9FQUNIX0lOU0VSVF9URVhUX0ZST01fQ0FNRVJB
X1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pCiAjZW5kaWYKIAogI2RlZmluZSBGT1JfRUFDSF9XS0NP
TlRFTlRWSUVXX0FDVElPTihNKSBcCi0gICAgRk9SX0VBQ0hfQURESVRJT05BTF9XS0NPTlRFTlRW
SUVXX0FDVElPTihNKSBcCisgICAgRk9SX0VBQ0hfSU5TRVJUX1RFWFRfRlJPTV9DQU1FUkFfV0tD
T05URU5UVklFV19BQ1RJT04oTSkgXAogICAgIE0oX2FkZFNob3J0Y3V0KSBcCiAgICAgTShfZGVm
aW5lKSBcCiAgICAgTShfbG9va3VwKSBcCkBAIC0yMjgsMTMgKzIzMiwxMyBAQCBzdHJ1Y3QgV0tB
dXRvQ29ycmVjdGlvbkRhdGEgewogICAgIENHUmVjdCB0ZXh0TGFzdFJlY3Q7CiB9OwogCi1lbnVt
IGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CitlbnVtIGNsYXNzIFBy
b2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgOiBib29sIHsKICAgICBObywKICAgICBZZXMK
IH07CiAKLWVudW0gSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsKLXVz
aW5nIEltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJ
bWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworZW51bSBJbWFnZUFuYWx5c2lz
UmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRl
bnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVy
VHlwZT47CiAKIH0KIApAQCAtMjU2LDggKzI2MCw4IEBAIHVzaW5nIEltYWdlRXh0cmFjdGlvblJl
cXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0
CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEVuZERl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXM7
CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEVuZERl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlczsKICAg
ICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlczsKLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLSAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcj4gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOworI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcj4gX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjsKICNlbmRp
ZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVu
Y3lFbmZvcmNlcj4gX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjsKICAgICBS
ZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFdmVudEdl
c3R1cmVSZWNvZ25pemVyOwpAQCAtNDgzLDIyICs0ODcsMjggQEAgdXNpbmcgSW1hZ2VFeHRyYWN0
aW9uUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlRXh0cmFjdGlvblJl
cXVlc3QKIAogICAgIFZlY3RvcjxCbG9ja1B0cjx2b2lkKCk+PiBfYWN0aW9uc1RvUGVyZm9ybUFm
dGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXI7CiAKLSNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLSAgICBSZXRhaW5QdHI8V0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVj
b2duaXplcj4gX2ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyOwotICAgIFJldGFpblB0
cjxVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdl
c3R1cmVSZWNvZ25pemVyOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpJbWFnZUV4dHJhY3Rp
b25SZXF1ZXN0SWRlbnRpZmllcj4gX3BlbmRpbmdJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRp
ZmllcjsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBfZWxlbWVu
dFBlbmRpbmdJbWFnZUV4dHJhY3Rpb247Ci0gICAgVmVjdG9yPEJsb2NrUHRyPHZvaWQoV2ViS2l0
OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbik+PiBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVu
ZGluZ0ltYWdlRXh0cmFjdGlvbjsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgUmV0
YWluUHRyPFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VBbmFseXNpc0dl
c3R1cmVSZWNvZ25pemVyOworICAgIFJldGFpblB0cjxVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25p
emVyPiBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplcjsKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyPiBfcGVuZGluZ0lt
YWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0PiBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzOworICAgIFZlY3Rv
cjxCbG9ja1B0cjx2b2lkKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSk+
PiBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM7CiAjaWYgVVNFKFVJ
Q09OVEVYVE1FTlUpCi0gICAgUmV0YWluUHRyPFVJTWVudT4gX2ltYWdlRXh0cmFjdGlvbkNvbnRl
eHRNZW51OwotICAgIEJPT0wgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rp
b25UaW1lb3V0OworICAgIFJldGFpblB0cjxVSU1lbnU+IF9jb250ZXh0TWVudUZvck1hY2hpbmVS
ZWFkYWJsZUNvZGU7CisgICAgQk9PTCBfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdlQW5h
bHlzaXNUaW1lb3V0OwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQotICAgIEJPT0wgX2lz
UHJvY2VlZGluZ1dpdGhJbWFnZUV4dHJhY3Rpb247Ci0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0FmdGVyLmg+Ci0jZW5k
aWYKKyAgICBCT09MIF9pc1Byb2NlZWRpbmdXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U7CisgICAg
UmV0YWluUHRyPFZLSW1hZ2VBbmFseXplcj4gX2ltYWdlQW5hbHl6ZXI7CisjaWYgVVNFKFFVSUNL
X0xPT0spCisgICAgUmV0YWluUHRyPFFMUHJldmlld0NvbnRyb2xsZXI+IF92aXN1YWxTZWFyY2hQ
cmV2aWV3Q29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8VUlJbWFnZT4gX3Zpc3VhbFNlYXJjaFBy
ZXZpZXdJbWFnZTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IF92aXN1YWxTZWFyY2hQcmV2aWV3SW1h
Z2VVUkw7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfdmlzdWFsU2VhcmNoUHJldmlld1RpdGxl
OworICAgIENHUmVjdCBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlQm91bmRzOworICAgIEJPT0wg
X2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZTsKKyAgICBCT09MIF9oYXNWaXN1YWxTZWFyY2hSZXN1
bHRzOworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKIH0KIAogQGVuZApAQCAtNzI5LDkgKzczOSw5IEBAIEZPUl9FQUNIX1BSSVZBVEVf
V0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VC
X1ZJRVcpCiAtICh2b2lkKXNldFVwQXBwSGlnaGxpZ2h0TWVudXNJZk5lZWRlZDsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0tICh2b2lkKV9lbmRJbWFnZUV4dHJhY3Rp
b25HZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6U2hvdWxkUHJldmVudEdlc3R1cmVzKXNob3VsZFBy
ZXZlbnRHZXN0dXJlczsKLS0gKHZvaWQpcmVxdWVzdEltYWdlRXh0cmFjdGlvbjooTlNVUkwgKilp
bWFnZVVSTCBpbWFnZURhdGE6KGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
KWltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpY29tcGxldGlvbjsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCistICh2b2lkKV9lbmRJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFs
OihXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0dXJlcylzaG91bGRQcmV2ZW50R2VzdHVyZXM7Cist
ICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRpb246KE5TVVJMICopaW1hZ2VVUkwgaW1hZ2VEYXRh
Oihjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJilpbWFnZURhdGEgY29tcGxl
dGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0
aW9uUmVzdWx0JiYpPiYmKWNvbXBsZXRpb247CiAjZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggZTAwYTZlMDExNGFhNDk5OTE1NDM1OTQyYzA2N2I4NDAxOTBiNjk1Ni4uN2E4NDgxMGVh
YWU4MjlkZTI0NTcxNjZkOTQ3OTg2Nzg2NTNlNTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00Miw2
ICs0Miw4IEBACiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW1w
b3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCisjaW1wb3J0ICJU
ZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblV0
aWxpdGllcy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJ
ZGlvbS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgpAQCAtNTQsNiArNTYs
NyBAQAogI2ltcG9ydCAiV0tGb3JtU2VsZWN0Q29udHJvbC5oIgogI2ltcG9ydCAiV0tGcmFtZUlu
Zm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2du
aXplci5oIgorI2ltcG9ydCAiV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCIKICNp
bXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW5zcGVj
dG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS01vdXNlR2VzdHVy
ZVJlY29nbml6ZXIuaCIKQEAgLTkyLDYgKzk1LDcgQEAKICNpbXBvcnQgPENvcmVUZXh0L0NURm9u
dC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5oPgogI2ltcG9ydCA8TW9i
aWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CisjaW1wb3J0IDxVbmlmb3JtVHlwZUlkZW50
aWZpZXJzL1VUQ29yZVR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvcklPUy5oPgpA
QCAtMTE3LDYgKzEyMSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhS
YW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlY29nbml0
aW9uUmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RvdWNoQWN0aW9uLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+
CkBAIC0xNDIsMTAgKzE0Nyw2IEBACiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4K
ICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAotI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
QWRkaXRpb25zQmVmb3JlLm1tPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
I2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnSXRlbS5o
PgpAQCAtMTczLDcgKzE3NCwyNSBAQAogI2ltcG9ydCAiUGVwcGVyVUlDb3JlU1BJLmgiCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworLy8gRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHB1bGxlZCBvdXQgaW50byBhIHNlcGFyYXRlIHNvZnRsaW5raW5nIGhlYWRlciAoZWl0aGVy
IGluIFBBTCBvciBXZWJLaXQyKS4KKyNpbXBvcnQgPFZpc2lvbktpdENvcmUvVktJbWFnZUFuYWx5
c2lzX1dlYktpdC5oPgorI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0ltYWdlQW5hbHl6ZXIuaD4K
K1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChWaXNpb25LaXRDb3JlKQorU09G
VF9MSU5LX0NMQVNTX09QVElPTkFMKFZpc2lvbktpdENvcmUsIFZLSW1hZ2VBbmFseXplcikKK1NP
RlRfTElOS19DTEFTU19PUFRJT05BTChWaXNpb25LaXRDb3JlLCBWS0ltYWdlQW5hbHl6ZXJSZXF1
ZXN0KQorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSA8cmRhcjovLzcyNDgwNDU5PiBpcyBp
biB0aGUgU0RLLgorQGludGVyZmFjZSBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0IChTdGFnaW5nXzcy
NDgwNDU5KQorQHByb3BlcnR5IChub25hdG9taWMpIE5TVVJMICppbWFnZVVSTDsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBOU1VSTCAqcGFnZVVSTDsKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKwogI2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNv
ZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvaW9zL1F1aWNrTG9va1NvZnRMaW5rLmg+CiAKICNpZiBI
QVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiBzdGF0aWMgTlNTdHJpbmcg
KiBjb25zdCB3ZWJraXRTaG93TGlua1ByZXZpZXdzUHJlZmVyZW5jZUtleSA9IEAiV2ViS2l0U2hv
d0xpbmtQcmV2aWV3cyI7CkBAIC0yMDQsNiArMjIzLDIwIEBAIEBlbmQKIAogc3RhdGljIHZvaWQg
KldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0ID0gJldLQ29udGVudFZpZXdLVk9UcmFu
c2Zvcm1Db250ZXh0OwogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitAaW50ZXJmYWNl
IFdLQ29udGVudFZpZXcgKEltYWdlQW5hbHlzaXMpIDxXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVj
b2duaXplckRlbGVnYXRlPgorQGVuZAorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKK0BpbnRlcmZh
Y2UgV0tDb250ZW50VmlldyAoSW1hZ2VBbmFseXNpc1ByZXZpZXcpIDxRTFByZXZpZXdDb250cm9s
bGVyRGVsZWdhdGUsIFFMUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlLCBRTFByZXZpZXdJdGVt
RGF0YVByb3ZpZGVyPgorQGVuZAorCisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMjkxLDYgKzMy
NCwzOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3Qg
V0tTZWxlY3Rpb25EcmF3aW5nSW5mbyYgaW5mbykKICAgICByZXR1cm4gc3RyZWFtOwogfQogCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitjbGFzcyBJbWFnZUFuYWx5c2lzR2VzdHVyZURl
ZmVycmFsVG9rZW4gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUFuYWx5c2lzR2VzdHVy
ZURlZmVycmFsVG9rZW4+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEltYWdlQW5hbHlz
aXNHZXN0dXJlRGVmZXJyYWxUb2tlbj4gY3JlYXRlKFdLQ29udGVudFZpZXcgKnZpZXcpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVy
cmFsVG9rZW4odmlldykpOworICAgIH0KKworICAgIH5JbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVy
cmFsVG9rZW4oKQorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gdmlldyA9IG1fdmlldy5nZXQoKSkK
KyAgICAgICAgICAgIFt2aWV3IF9lbmRJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsOm1fc2hv
dWxkUHJldmVudFRleHRTZWxlY3Rpb24gPyBXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0dXJlczo6
WWVzIDogV2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVyZXM6Ok5vXTsKKyAgICB9CisKKyAgICB2
b2lkIHNldFNob3VsZFByZXZlbnRUZXh0U2VsZWN0aW9uKCkKKyAgICB7CisgICAgICAgIG1fc2hv
dWxkUHJldmVudFRleHRTZWxlY3Rpb24gPSB0cnVlOworICAgIH0KKworcHJpdmF0ZToKKyAgICBJ
bWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4oV0tDb250ZW50VmlldyAqdmlldykKKyAg
ICAgICAgOiBtX3ZpZXcodmlldykKKyAgICB7CisgICAgfQorCisgICAgV2Vha09iakNQdHI8V0tD
b250ZW50Vmlldz4gbV92aWV3OworICAgIGJvb2wgbV9zaG91bGRQcmV2ZW50VGV4dFNlbGVjdGlv
biB7IGZhbHNlIH07Cit9OworCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogY29uc3RleHByIGZsb2F0IGhpZ2hsaWdodERlbGF5ID0g
MC4xMjsKQEAgLTgxMiwxMSArODc3LDExIEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAg
IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVy
ZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdp
dGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hFbmREZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzIHNldE5hbWU6QCJEZWZl
cnJlciBmb3IgdG91Y2ggZW5kIChzeW50aGV0aWMgdGFwKSJdOwogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyID0gYWRvcHROUyhbW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRX
aXRoRGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlOnNlbGZdKTsKLSAgICBbX2ltYWdlRXh0cmFjdGlv
bkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldE5hbWU6QCJEZWZlcnJlciBmb3IgaW1hZ2Ug
ZXh0cmFjdGlvbiJdOwotICAgIFtfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgc2V0SW1tZWRpYXRlbHlGYWlsc0FmdGVyVG91Y2hFbmQ6WUVTXTsKLSAgICBbX2ltYWdl
RXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6c2VsZi5faW1h
Z2VFeHRyYWN0aW9uRW5hYmxlZF07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIF9p
bWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVs
ZWdhdGU6c2VsZl0pOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyIHNldE5hbWU6QCJEZWZlcnJlciBmb3IgaW1hZ2UgYW5hbHlzaXMiXTsKKyAgICBbX2ltYWdl
QW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzZXRJbW1lZGlhdGVseUZhaWxzQWZ0
ZXJUb3VjaEVuZDpZRVNdOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyIHNldEVuYWJsZWQ6V2ViS2l0Ojppc0xpdmVUZXh0RW5hYmxlZCgpXTsKICNlbmRpZgog
CiAgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYu
ZGVmZXJyaW5nR2VzdHVyZXMpIHsKQEAgLTkyOSw4ICs5OTQsOCBAQCAtICh2b2lkKXNldFVwSW50
ZXJhY3Rpb24KICAgICBfaXNDaGFuZ2luZ0ZvY3VzID0gTk87CiAgICAgX2lzQmx1cnJpbmdGb2N1
c2VkRWxlbWVudCA9IE5POwogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQotICAgIF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0
aW9uVGltZW91dCA9IE5POworI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCisgICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGlt
ZW91dCA9IE5POwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKQEAgLTk0
NSw4ICsxMDEwLDggQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAgICAgX3BhZ2UtPnByb2Nl
c3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgX3BhZ2UtPnNldFNjcmVlbklzQmVp
bmdDYXB0dXJlZChbW1tzZWxmIHdpbmRvd10gc2NyZWVuXSBpc0NhcHR1cmVkXSk7CiAKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfc2V0VXBJbWFnZUV4dHJhY3Rpb25d
OworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbc2VsZiBfc2V0VXBJbWFnZUFuYWx5
c2lzXTsKICNlbmRpZgogCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25zID0gWUVTOwpAQCAtOTg5
LDggKzEwNTQsOCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogCiAgICAgX3RyZWF0QXND
b250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0b3JTdGF0ZVVwZGF0ZSA9IE5POwogCi0jaWYgVVNF
KFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9jb250ZXh0
TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dCA9IE5POworI2lmIFVTRShV
SUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgX2NvbnRleHRNZW51
V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCA9IE5POwogI2VuZGlmCiAKICAgICBp
ZiAoX2ludGVyYWN0aW9uVmlld3NDb250YWluZXJWaWV3KSB7CkBAIC0xMTExLDggKzExNzYsOCBA
QCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9kYXRhTGlzdFRleHRTdWdnZXN0aW9u
cyA9IG5pbDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgW3Nl
bGYgX3RlYXJEb3duSW1hZ2VFeHRyYWN0aW9uXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisgICAgW3NlbGYgX3RlYXJEb3duSW1hZ2VBbmFseXNpc107CiAjZW5kaWYKIAogICAgIFtzZWxm
IF9yZW1vdmVDb250YWluZXJGb3JDb250ZXh0TWVudUhpbnRQcmV2aWV3c107CkBAIC0xODI0LDgg
KzE4ODksOCBAQCAtIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gKilk
ZWZlcnJpbmdHZXN0dXJlcwogICAgIGF1dG8gZ2VzdHVyZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJy
YXlXaXRoQ2FwYWNpdHk6N107CiAgICAgW2dlc3R1cmVzIGFkZE9iamVjdHNGcm9tQXJyYXk6c2Vs
Zi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzXTsKICAgICBbZ2VzdHVyZXMgYWRkT2JqZWN0
c0Zyb21BcnJheTpzZWxmLl90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVzXTsKLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLSAgICBbZ2VzdHVyZXMgYWRkT2JqZWN0Ol9pbWFnZUV4dHJhY3Rp
b25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQorICAgIFtnZXN0dXJlcyBhZGRPYmplY3Q6X2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAjZW5kaWYKICAgICByZXR1cm4gZ2VzdHVyZXM7CiB9
CkBAIC0yMjg5LDEyICsyMzU0LDEyIEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAgICAgaWYg
KFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIuY2xhc3NdICYmIFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCiAgICAgICAgIHJldHVybiBZRVM7CiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIg
PT0gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyKQotICAgICAgICBy
ZXR1cm4gIVtzZWxmIHNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VFeHRyYWN0aW9uOm90aGVy
R2VzdHVyZVJlY29nbml6ZXJdOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAo
Z2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcikKKyAgICAgICAgcmV0dXJuICFbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdl
QW5hbHlzaXM6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CiAKLSAgICBpZiAob3RoZXJHZXN0dXJl
UmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIp
Ci0gICAgICAgIHJldHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJh
Y3Rpb246Z2VzdHVyZVJlY29nbml6ZXJdOworICAgIGlmIChvdGhlckdlc3R1cmVSZWNvZ25pemVy
ID09IF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJl
dHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUFuYWx5c2lzOmdlc3R1cmVS
ZWNvZ25pemVyXTsKICNlbmRpZgogCiAgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6
ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVj
b2duaXplci5nZXQoKSwgX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpKSkKQEAgLTIz
NTAsOCArMjQxNSw4IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29n
bml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAgICAgaWYgKGlzU2FtZVBh
aXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9kb3VibGVUYXBH
ZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyRm9yRG91
YmxlQ2xpY2suZ2V0KCkpKQogICAgICAgICByZXR1cm4gWUVTOwogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rp
b25HZXN0dXJlUmVjb2duaXplciB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0
aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
KyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2du
aXplciB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJl
UmVjb2duaXplcikKICAgICAgICAgcmV0dXJuIFlFUzsKICNlbmRpZgogCkBAIC0yMzY2LDggKzI0
MzEsOCBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICop
Z2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZQogICAgIGlmIChbb3RoZXJHZXN0dXJlUmVj
b2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3Nd
KQogICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopb3RoZXJH
ZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVSZWNv
Z25pemVyXTsKIAotI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvblRpbWVv
dXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IFtfY29udGV4
dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1cmVSZWxhdGlvbnNoaXBz
XSkKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAg
IGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVj
b2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IFtfY29udGV4dE1lbnVJbnRlcmFj
dGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1cmVSZWxhdGlvbnNoaXBzXSkKICAgICAgICAg
cmV0dXJuIFlFUzsKICNlbmRpZgogCkBAIC0yMzc5LDggKzI0NDQsOCBAQCAtIChCT09MKWdlc3R1
cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hv
dWxkQmVSZXF1aQogICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKICAgICAgICAgcmV0dXJuIFsoV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2Vz
dHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CiAKLSNpZiBVU0UoVUlDT05U
RVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKGdlc3R1cmVSZWNv
Z25pemVyID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZh
aWx1cmVSZWxhdGlvbnNoaXBzXSAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4
dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIpCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUp
ICYmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0g
W19jb250ZXh0TWVudUludGVyYWN0aW9uIGdlc3R1cmVSZWNvZ25pemVyRm9yRmFpbHVyZVJlbGF0
aW9uc2hpcHNdICYmIG90aGVyR2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNUaW1l
b3V0R2VzdHVyZVJlY29nbml6ZXIpCiAgICAgICAgIHJldHVybiBZRVM7CiAjZW5kaWYKIApAQCAt
Mjc1NCw4ICsyODE5LDggQEAgLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50OihD
R1BvaW50KXBvaW50CiAgICAgaWYgKCFbc2VsZiBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNV
cFRvRGF0ZTpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuIE5POwogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbiAmJiBf
cG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09IF9lbGVtZW50UGVuZGlu
Z0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKF9l
bGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VF
bGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzKQogICAgICAgICBy
ZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTI4MzIsOCArMjg5Nyw4IEBAIC0gKEJPT0wpdGV4dElu
dGVyYWN0aW9uR2VzdHVyZTooVUlXS0dlc3R1cmVUeXBlKWdlc3R1cmUgc2hvdWxkQmVnaW5BdFBv
aW50OihDR1BvCiAgICAgICAgIHJldHVybiBOTzsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbiAmJiBf
cG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09IF9lbGVtZW50UGVuZGlu
Z0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKF9l
bGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VF
bGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzKQogICAgICAgICBy
ZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTM3ODQsOCArMzg0OSw4IEBAIC0gKEJPT0wpY2FuUGVy
Zm9ybUFjdGlvbkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAg
ICAgICAgIHJldHVybiBiYXNlV3JpdGluZ0RpcmVjdGlvbiAhPSBXZWJDb3JlOjpXcml0aW5nRGly
ZWN0aW9uOjpSaWdodFRvTGVmdDsKICAgICB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKLSAgICBpZiAoV2ViS2l0Ojppc0ltYWdlRXh0cmFjdGlvbkFjdGlvbihhY3Rpb24pICYmICFl
ZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CisgICAgaWYgKChhY3Rpb24gPT0gQHNlbGVjdG9yKGNhcHR1cmVUZXh0RnJvbUNhbWVyYTopIHx8
IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2luc2VydFRleHRGcm9tQ2FtZXJhOikpICYmICFlZGl0b3JT
dGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuIE5POwogI2VuZGlmCiAKQEAg
LTM3OTksNyArMzg2NCw2IEBAIC0gKGlkKXRhcmdldEZvckFjdGlvbjooU0VMKWFjdGlvbiB3aXRo
U2VuZGVyOihpZClzZW5kZXIKICAgICAgICAgcmV0dXJuIHNlbGYuc2hvdWxkQWxsb3dBcHBIaWdo
bGlnaHRDcmVhdGlvbiAmJiBfcGFnZS0+YXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/IHNlbGYg
OiBuaWw7CiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY3JlYXRlSGlnaGxpZ2h0SW5OZXdH
cm91cFdpdGhSYW5nZTopKQogICAgICAgICByZXR1cm4gc2VsZi5zaG91bGRBbGxvd0FwcEhpZ2hs
aWdodENyZWF0aW9uICYmICFfcGFnZS0+YXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/IHNlbGYg
OiBuaWw7Ci0gICAgCiAjZW5kaWYKICAgICByZXR1cm4gW193ZWJWaWV3IHRhcmdldEZvckFjdGlv
bjphY3Rpb24gd2l0aFNlbmRlcjpzZW5kZXJdOwogfQpAQCAtNDU3Niw4ICs0NjQwLDggQEAgLSAo
dm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUKICAgICAvLyBpbiB0aGUg
c2FtZSBsb2NhdGlvbiB0byB0cmlnZ2VyIGRvdWJsZS10YXAgcmVjb2duaXRpb24uCiAgICAgW3Nl
bGYgX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDpOT107CiAgICAgW190d29GaW5nZXJEb3Vi
bGVUYXBHZXN0dXJlUmVjb2duaXplciBfd2tfY2FuY2VsXTsKLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKLSAgICBbc2VsZiBfY2FuY2VsSW1hZ2VFeHRyYWN0aW9uXTsKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2NhbmNlbEltYWdlQW5hbHlzaXNdOwogI2VuZGlm
CiB9CiAKQEAgLTc2MTIsMTQgKzc2NzYsMTQgQEAgLSAoQk9PTClfc2hvdWxkVXNlTGVnYWN5U2Vs
ZWN0UG9wb3ZlckRpc21pc3NhbEJlaGF2aW9yCiAgICAgcmV0dXJuIFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0RhdGFBY3RpdmF0aW9uKCk7CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLS0gKEJPT0wpc2hvdWxkRGVmZXJH
ZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
CistIChCT09MKXNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VBbmFseXNpczooVUlHZXN0dXJl
UmVjb2duaXplciAqKWdlc3R1cmUKIHsKICAgICByZXR1cm4gZ2VzdHVyZSA9PSBbX3RleHRJbnRl
cmFjdGlvbkFzc2lzdGFudCBsb3VwZUdlc3R1cmVdIHx8IGdlc3R1cmUuX3drX2lzVGFwQW5kQUhh
bGYgfHwgZ2VzdHVyZSA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBmb3JjZVByZXNzR2Vz
dHVyZV07CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBIQVZFKFBBU1RFQk9BUkRfREFUQV9PV05F
UikKIApAQCAtNzgyOCw5ICs3ODkyLDkgQEAgLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3QKICAgICBp
ZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcikKICAg
ICAgICAgcmV0dXJuIE5POwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYg
KGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplcikKLSAgICAgICAgcmV0dXJuIFtzZWxmIHNob3VsZERlZmVyR2VzdHVy
ZUR1ZVRvSW1hZ2VFeHRyYWN0aW9uOmdlc3R1cmVSZWNvZ25pemVyXTsKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9pbWFn
ZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVybiBbc2Vs
ZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlQW5hbHlzaXM6Z2VzdHVyZVJlY29nbml6ZXJd
OwogI2VuZGlmCiAKICAgICBhdXRvIG1heURlbGF5UmVzZXRPZkNvbnRhaW5pbmdTdWJncmFwaCA9
IFsmXShVSUdlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlKSAtPiBCT09MIHsKQEAgLTg3MjQsOSAr
ODc4OCw5IEBAIC0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilp
bnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lvbjooaWQKIAogICAgIFtzZWxmIGNsZWFuVXBEcmFn
U291cmNlU2Vzc2lvblN0YXRlXTsKIAotICAgIGF1dG8gcHJlcGFyZUZvclNlc3Npb24gPSBbd2Vh
a1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgc2Vzc2lvbiA9IHJldGFp
blB0cihzZXNzaW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKV0gKFdl
YktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rp
b24pIHsKKyAgICBhdXRvIHByZXBhcmVGb3JTZXNzaW9uID0gW3dlYWtTZWxmID0gV2Vha09iakNQ
dHI8V0tDb250ZW50Vmlldz4oc2VsZiksIHNlc3Npb24gPSByZXRhaW5QdHIoc2Vzc2lvbiksIGNv
bXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbildIChXZWJLaXQ6OlByb2NlZWRXaXRo
VGV4dFNlbGVjdGlvbkluSW1hZ2UgUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSkgewog
ICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKLSAgICAgICAgaWYgKCFz
dHJvbmdTZWxmIHx8IHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uID09IFdlYktpdDo6UHJvY2Vl
ZFdpdGhJbWFnZUV4dHJhY3Rpb246OlllcykKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmIHx8IFBy
b2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPT0gV2ViS2l0OjpQcm9jZWVkV2l0aFRleHRT
ZWxlY3Rpb25JbkltYWdlOjpZZXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0
byBkcmFnT3JpZ2luID0gW3Nlc3Npb24gbG9jYXRpb25JblZpZXc6c3Ryb25nU2VsZi5nZXQoKV07
CkBAIC04NzM1LDEwICs4Nzk5LDEwIEBAIC0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFn
SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lvbjooaWQKICAgICAgICAg
UkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb24gcmVxdWVzdGVkOiAlcCBhdCBv
cmlnaW46IHslLjBmLCAlLjBmfSIsIHNlc3Npb24uZ2V0KCksIGRyYWdPcmlnaW4ueCwgZHJhZ09y
aWdpbi55KTsKICAgICB9OwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgW3Nl
bGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOnByZXBhcmVGb3JTZXNzaW9uXTsKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VB
bmFseXNpczpwcmVwYXJlRm9yU2Vzc2lvbl07CiAjZWxzZQotICAgIHByZXBhcmVGb3JTZXNzaW9u
KFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246Ok5vKTsKKyAgICBwcmVwYXJlRm9y
U2Vzc2lvbihXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vKTsKICNl
bmRpZgogfQogCkBAIC05NjQ0LDMwICs5NzA4LDMwIEBAIC0gKHZvaWQpX3dyaXRlUHJvbWlzZWRB
dHRhY2htZW50VG9QYXN0ZWJvYXJkOihXZWJDb3JlOjpQcm9taXNlZEF0dGFjaG1lbnRJbmZvJiYp
CiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCi0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi0tICh2b2lkKV9l
bmRJbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6U2hvdWxkUHJldmVudEdl
c3R1cmVzKXNob3VsZFByZXZlbnRHZXN0dXJlcworLSAodm9pZClfZW5kSW1hZ2VBbmFseXNpc0dl
c3R1cmVEZWZlcnJhbDooV2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVyZXMpc2hvdWxkUHJldmVu
dEdlc3R1cmVzCiB7Ci0gICAgW19pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciBlbmREZWZlcnJhbDpzaG91bGRQcmV2ZW50R2VzdHVyZXNdOworICAgIFtfaW1hZ2VBbmFs
eXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGVuZERlZmVycmFsOnNob3VsZFByZXZlbnRH
ZXN0dXJlc107CiB9CiAKLS0gKHZvaWQpX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOih2
b2lkKF4pKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gcHJvY2VlZFdpdGhJbWFn
ZUV4dHJhY3Rpb24pKWJsb2NrCistICh2b2lkKV9kb0FmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6
KHZvaWQoXikoV2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlIFByb2NlZWRX
aXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UpKWJsb2NrCiB7Ci0gICAgaWYgKHNlbGYuaGFzUGVuZGlu
Z0ltYWdlRXh0cmFjdGlvblJlcXVlc3QpCi0gICAgICAgIF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQ
ZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLmFwcGVuZChtYWtlQmxvY2tQdHIoYmxvY2spKTsKKyAgICBp
ZiAoc2VsZi5oYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3QpCisgICAgICAgIF9hY3Rpb25z
VG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpcy5hcHBlbmQobWFrZUJsb2NrUHRyKGJs
b2NrKSk7CiAgICAgZWxzZQotICAgICAgICBibG9jayhXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VF
eHRyYWN0aW9uOjpObyk7CisgICAgICAgIGJsb2NrKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2Vs
ZWN0aW9uSW5JbWFnZTo6Tm8pOwogfQogCi0tICh2b2lkKV9pbnZva2VBbGxBY3Rpb25zVG9QZXJm
b3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOihXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VF
eHRyYWN0aW9uKXByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uCistICh2b2lkKV9pbnZva2VBbGxB
Y3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczooV2ViS2l0OjpQcm9jZWVk
V2l0aFRleHRTZWxlY3Rpb25JbkltYWdlKVByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UK
IHsKLSAgICBfcGVuZGluZ0ltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyID0gc3RkOjpu
dWxsb3B0OwotICAgIF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbiA9IHN0ZDo6bnVsbG9w
dDsKLSAgICBmb3IgKGF1dG8gYmxvY2sgOiBzdGQ6OmV4Y2hhbmdlKF9hY3Rpb25zVG9QZXJmb3Jt
QWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLCB7IH0pKQotICAgICAgICBibG9jayhwcm9jZWVk
V2l0aEltYWdlRXh0cmFjdGlvbik7CisgICAgX3BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdElk
ZW50aWZpZXIgPSBzdGQ6Om51bGxvcHQ7CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNp
cyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBmb3IgKGF1dG8gYmxvY2sgOiBzdGQ6OmV4Y2hhbmdlKF9h
Y3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpcywgeyB9KSkKKyAgICAgICAg
YmxvY2soUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSk7CiB9CiAKLSNlbmRpZiAvLyBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
CiAKIC0gKHZvaWQpc2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRv
cj4pdGV4dEluZGljYXRvcgogewpAQCAtOTczMCw2ICs5Nzk0LDQ0NyBAQCAtICh2b2lkKXN0YXJ0
RmFkZU91dAogICAgIH1dOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCisjaWYg
VVNFKFFVSUNLX0xPT0spCisKKy0gKHZvaWQpcHJlc2VudFZpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVS
TCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRz
IGFwcGVhcmFuY2VBY3Rpb25zOihRTFByZXZpZXdDb250cm9sbGVyRmlyc3RUaW1lQXBwZWFyYW5j
ZUFjdGlvbnMpYXBwZWFyYW5jZUFjdGlvbnMKK3sKKyAgICBBU1NFUlQoX2hhc1NlbGVjdGFibGVU
ZXh0SW5JbWFnZSB8fCBfaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk7CisKKyAgICBBU1NFUlQoIV92
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyID0gYWRvcHROUyhbUEFMOjphbGxvY1FMUHJldmlld0NvbnRyb2xsZXJJbnN0YW5j
ZSgpIGluaXRdKTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHNldERlbGVn
YXRlOnNlbGZdOworICAgIFtfdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgc2V0RGF0YVNv
dXJjZTpzZWxmXTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHNldEFwcGVh
cmFuY2VBY3Rpb25zOmFwcGVhcmFuY2VBY3Rpb25zXTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZp
ZXdDb250cm9sbGVyIHNldE1vZGFsUHJlc2VudGF0aW9uU3R5bGU6VUlNb2RhbFByZXNlbnRhdGlv
bk92ZXJGdWxsU2NyZWVuXTsKKworICAgIEFTU0VSVCghX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFn
ZSk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZSA9IGltYWdlOworCisgICAgQVNTRVJU
KCFfdmlzdWFsU2VhcmNoUHJldmlld1RpdGxlKTsKKyAgICBfdmlzdWFsU2VhcmNoUHJldmlld1Rp
dGxlID0gdGl0bGU7CisKKyAgICBBU1NFUlQoIV92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwp
OworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwgPSBpbWFnZVVSTDsKKworICAgIF92
aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VCb3VuZHMgPSBpbWFnZUJvdW5kczsKKworICAgIFVJVmll
d0NvbnRyb2xsZXIgKmN1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29u
dHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6
c2VsZl07CisgICAgW2N1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdD
b250cm9sbGVyOl92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZ
RVMgY29tcGxldGlvbjpuaWxdOworfQorCisjcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdDb250cm9s
bGVyRGVsZWdhdGUKKworLSAoQ0dSZWN0KXByZXZpZXdDb250cm9sbGVyOihRTFByZXZpZXdDb250
cm9sbGVyICopY29udHJvbGxlciBmcmFtZUZvclByZXZpZXdJdGVtOihpZCA8UUxQcmV2aWV3SXRl
bT4paXRlbSBpblNvdXJjZVZpZXc6KFVJVmlldyAqKilvdXRWaWV3Cit7CisgICAgKm91dFZpZXcg
PSBzZWxmOworICAgIHJldHVybiBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlQm91bmRzOworfQor
CistIChVSUltYWdlICopcHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKilj
b250cm9sbGVyIHRyYW5zaXRpb25JbWFnZUZvclByZXZpZXdJdGVtOihpZCA8UUxQcmV2aWV3SXRl
bT4paXRlbSBjb250ZW50UmVjdDooQ0dSZWN0ICopb3V0Q29udGVudFJlY3QKK3sKKyAgICAqb3V0
Q29udGVudFJlY3QgPSBDR1JlY3QgeyBDR1BvaW50WmVybywgX3Zpc3VhbFNlYXJjaFByZXZpZXdJ
bWFnZUJvdW5kcy5zaXplIH07CisgICAgcmV0dXJuIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2Uu
Z2V0KCk7Cit9CisKKy0gKHZvaWQpcHJldmlld0NvbnRyb2xsZXJEaWREaXNtaXNzOihRTFByZXZp
ZXdDb250cm9sbGVyICopY29udHJvbGxlcgoreworICAgIEFTU0VSVChjb250cm9sbGVyID09IF92
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyLmNsZWFyKCk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZS5jbGVhcigp
OworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUuY2xlYXIoKTsKKyAgICBfdmlzdWFsU2Vh
cmNoUHJldmlld0ltYWdlVVJMLmNsZWFyKCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFFMUHJldmll
d0NvbnRyb2xsZXJEYXRhU291cmNlCisKKy0gKE5TSW50ZWdlciludW1iZXJPZlByZXZpZXdJdGVt
c0luUHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyCit7
CisgICAgQVNTRVJUKGNvbnRyb2xsZXIgPT0gX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
KTsKKyAgICByZXR1cm4gMTsKK30KKworLSAoaWQgPFFMUHJldmlld0l0ZW0+KXByZXZpZXdDb250
cm9sbGVyOihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBwcmV2aWV3SXRlbUF0SW5k
ZXg6KE5TSW50ZWdlcilpbmRleAoreworICAgIEFTU0VSVChjb250cm9sbGVyID09IF92aXN1YWxT
ZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgQVNTRVJUKCFpbmRleCk7CisgICAgYXV0byBp
dGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1FMSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhEYXRhUHJv
dmlkZXI6c2VsZiBjb250ZW50VHlwZTpVVFR5cGVUSUZGLmlkZW50aWZpZXIgcHJldmlld1RpdGxl
Ol92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUuZ2V0KCldKTsKKyAgICBpZiAoW2l0ZW0gcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRQcmV2aWV3T3B0aW9uczopXSkgeworICAgICAgICBh
dXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6Ml0pOworICAgICAgICBpZiAoX3Zpc3VhbFNlYXJjaFByZXZpZXdJ
bWFnZVVSTCkKKyAgICAgICAgICAgIFtwcmV2aWV3T3B0aW9ucyBzZXRPYmplY3Q6X3Zpc3VhbFNl
YXJjaFByZXZpZXdJbWFnZVVSTC5nZXQoKSBmb3JLZXk6QCJpbWFnZVVSTCJdOworICAgICAgICBp
ZiAoYXV0byBwYWdlVVJMID0gVVJMIHsgVVJMIHsgfSwgX3BhZ2UtPmN1cnJlbnRVUkwoKSB9OyAh
cGFnZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0
OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVSTCJdOworICAgICAgICBpZiAoW3ByZXZpZXdPcHRpb25z
IGNvdW50XSkKKyAgICAgICAgICAgIFtpdGVtIHNldFByZXZpZXdPcHRpb25zOnByZXZpZXdPcHRp
b25zLmdldCgpXTsKKyAgICB9CisgICAgcmV0dXJuIGl0ZW0uYXV0b3JlbGVhc2UoKTsKK30KKwor
I3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRlbURhdGFQcm92aWRlcgorCistIChOU0RhdGEgKilw
cm92aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAqKWl0ZW0KK3sKKyAgICBBU1NFUlQoX3Zpc3VhbFNl
YXJjaFByZXZpZXdJbWFnZSk7CisKKyAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0
ZU11dGFibGUoTlVMTCwgMCkpOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdENGKENHSW1h
Z2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKGRhdGEuZ2V0KCksIChfX2JyaWRnZSBDRlN0cmlu
Z1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIsIDEsIE5VTEwpKTsKKyAgICBDR0ltYWdlRGVzdGlu
YXRpb25BZGRJbWFnZShkZXN0aW5hdGlvbi5nZXQoKSwgW192aXN1YWxTZWFyY2hQcmV2aWV3SW1h
Z2UgQ0dJbWFnZV0sIG5pbCk7CisgICAgaWYgKCFDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShk
ZXN0aW5hdGlvbi5nZXQoKSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICByZXR1cm4gZGF0
YS5icmlkZ2luZ0F1dG9yZWxlYXNlKCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFdLQWN0aW9uU2hl
ZXRBc3Npc3RhbnREZWxlZ2F0ZQorCistIChib29sKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlv
bkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudAoreworICAgIHJl
dHVybiBXZWJLaXQ6OmlzTGl2ZVRleHRFbmFibGVkKCkgJiYgX2hhc1NlbGVjdGFibGVUZXh0SW5J
bWFnZTsKK30KKworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqKWFzc2lzdGFudCBzaG93VGV4dEZvckltYWdlOihVSUltYWdlICopaW1hZ2UgaW1h
Z2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VCb3Vu
ZHM6KENHUmVjdClpbWFnZUJvdW5kcworeworICAgIFtzZWxmIHByZXNlbnRWaXN1YWxTZWFyY2hQ
cmV2aWV3Q29udHJvbGxlckZvckltYWdlOmltYWdlIGltYWdlVVJMOmltYWdlVVJMIHRpdGxlOnRp
dGxlIGltYWdlQm91bmRzOmltYWdlQm91bmRzIGFwcGVhcmFuY2VBY3Rpb25zOlFMUHJldmlld0Nv
bnRyb2xsZXJGaXJzdFRpbWVBcHBlYXJhbmNlQWN0aW9uRW5hYmxlVmlzdWFsU2VhcmNoRGF0YURl
dGVjdGlvbl07Cit9CisKKy0gKGJvb2wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hl
ZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9y
RWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50Cit7CisgICAgcmV0dXJu
IFdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSAmJiBfaGFzVmlzdWFsU2VhcmNoUmVzdWx0czsK
K30KKworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCAqKWFzc2lzdGFudCBsb29rVXBJbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VS
TCAqKWltYWdlVVJMIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlQm91bmRzOihDR1JlY3Qp
aW1hZ2VCb3VuZHMKK3sKKyAgICBbc2VsZiBwcmVzZW50VmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXJGb3JJbWFnZTppbWFnZSBpbWFnZVVSTDppbWFnZVVSTCB0aXRsZTp0aXRsZSBpbWFnZUJv
dW5kczppbWFnZUJvdW5kcyBhcHBlYXJhbmNlQWN0aW9uczpRTFByZXZpZXdDb250cm9sbGVyRmly
c3RUaW1lQXBwZWFyYW5jZUFjdGlvbkVuYWJsZVZpc3VhbFNlYXJjaE1vZGVdOworfQorCisjZW5k
aWYgLy8gVVNFKFFVSUNLX0xPT0spCisKKyNwcmFnbWEgbWFyayAtIEltYWdlIEV4dHJhY3Rpb24K
KworLSAoVktJbWFnZUFuYWx5emVyICopaW1hZ2VBbmFseXplcgoreworICAgIGlmICghX2ltYWdl
QW5hbHl6ZXIpCisgICAgICAgIF9pbWFnZUFuYWx5emVyID0gYWRvcHROUyhbYWxsb2NWS0ltYWdl
QW5hbHl6ZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICByZXR1cm4gX2ltYWdlQW5hbHl6ZXIuZ2V0
KCk7Cit9CisKKy0gKEJPT0wpaGFzUGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0Cit7CisgICAg
cmV0dXJuICEhX3BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI7Cit9CisKKy0g
KHZvaWQpX3NldFVwSW1hZ2VBbmFseXNpcworeworICAgIGlmICghV2ViS2l0Ojppc0xpdmVUZXh0
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNS
ZXF1ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRl
eHRTZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNp
cyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyID0g
YWRvcHROUyhbW1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0
aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOworICAgIFtzZWxmIGFkZEdlc3R1
cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworICAg
IF9pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1VJTG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9u
OkBzZWxlY3RvcihpbWFnZUFuYWx5c2lzR2VzdHVyZURpZFRpbWVPdXQ6KV0pOworICAgIFtfaW1h
Z2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXRNaW5pbXVtUHJlc3NEdXJhdGlv
bjoyLjBdOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXRO
YW1lOkAiSW1hZ2UgYW5hbHlzaXMgdGltZW91dCJdOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVv
dXRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbc2VsZiBhZGRHZXN0
dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplci5nZXQo
KV07CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9
IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gTk87CisjZW5kaWYgLy8gVVNFKFFV
SUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2NvbnRleHRNZW51Rm9yTWFj
aGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOworI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQor
fQorCistICh2b2lkKV90ZWFyRG93bkltYWdlQW5hbHlzaXMKK3sKKyAgICBpZiAoIVdlYktpdDo6
aXNMaXZlVGV4dEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW19pbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBbc2VsZiByZW1vdmVH
ZXN0dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsK
KyAgICBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyID0gbmlsOworICAgIFtfaW1hZ2VB
bmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFtz
ZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVS
ZWNvZ25pemVyLmdldCgpXTsKKyAgICBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2du
aXplciA9IG5pbDsKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9
IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25JbkltYWdl
ID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsK
KyAgICBbc3RkOjpleGNoYW5nZShfaW1hZ2VBbmFseXplciwgbmlsKSBjYW5jZWxBbGxSZXF1ZXN0
c107CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9
IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gTk87CisjZW5kaWYgLy8gVVNFKFFV
SUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2NvbnRleHRNZW51Rm9yTWFj
aGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOworI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQor
ICAgIFtzZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFs
eXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vXTsKK30KKwor
LSAodm9pZClfY2FuY2VsSW1hZ2VBbmFseXNpcworeworICAgIFtfaW1hZ2VBbmFseXplciBjYW5j
ZWxBbGxSZXF1ZXN0c107CisgICAgUkVMRUFTRV9MT0dfSUYoc2VsZi5oYXNQZW5kaW5nSW1hZ2VB
bmFseXNpc1JlcXVlc3QsIEltYWdlcywgIkltYWdlIGFuYWx5c2lzIHJlcXVlc3QgJSIgUFJJdTY0
ICIgY2FuY2VsbGVkLiIsIF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyLT50
b1VJbnQ2NCgpKTsKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9
IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25JbkltYWdl
ID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsK
K30KKworLSAoUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNyZWF0ZUltYWdlQW5h
bHlzaXNSZXF1ZXN0OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBpbWFnZTooVUlJbWFn
ZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCit7CisgICAgYXV0byByZXF1ZXN0
ID0gYWRvcHROUyhbYWxsb2NWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0SW5zdGFuY2UoKSBpbml0V2l0
aEltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VPcmllbnRhdGlvblVwIHJlcXVlc3RUeXBl
OmFuYWx5c2lzVHlwZXNdKTsKKyAgICBbcmVxdWVzdCBzZXRJbWFnZVVSTDppbWFnZVVSTF07Cisg
ICAgW3JlcXVlc3Qgc2V0UGFnZVVSTDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOl9wYWdl
LT5jdXJyZW50VVJMKCldXTsKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworLSAoUmV0YWluUHRy
PFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OihWS0Fu
YWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBpbWFnZTooVUlJbWFnZSAqKWltYWdlCit7CisgICAg
cmV0dXJuIFtzZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OmFuYWx5c2lzVHlwZXMgaW1h
Z2U6aW1hZ2UgaW1hZ2VVUkw6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VVUkxdOworfQorCist
IChCT09MKXZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyOihXZWJLaXQ6Oklt
YWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcilpZGVudGlmaWVyCit7CisgICAgaWYgKF9wZW5k
aW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID09IGlkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBZRVM7CisKKyAgICBpZiAoIXNlbGYuaGFzUGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1
ZXN0KSB7CisgICAgICAgIC8vIE9ubHkgaW52b2tlIGRlZmVycmVkIGltYWdlIGFuYWx5c2lzIGJs
b2NrcyBpZiB0aGVyZSBpcyBubyBvbmdvaW5nIHJlcXVlc3Q7IG90aGVyd2lzZSwgdGhpcyB3b3Vs
ZAorICAgICAgICAvLyBjYXVzZSB0aGVzZSBibG9ja3MgdG8gYmUgaW52b2tlZCB0b28gZWFybHkg
KGkuZS4gaW4gdGhlIG1pZGRsZSBvZiB0aGUgbmV3IGltYWdlIGFuYWx5c2lzIHJlcXVlc3QpLgor
ICAgICAgICBbc2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdl
QW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpOb107Cisg
ICAgfQorCisgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgcmVxdWVzdCAl
IiBQUkl1NjQgIiBpbnZhbGlkYXRlZC4iLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIHJl
dHVybiBOTzsKK30KKworI3ByYWdtYSBtYXJrIC0gV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXJEZWxlZ2F0ZQorCistICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRpb246KE5TVVJMICop
aW1hZ2VVUkwgaW1hZ2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
JilpbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKWNvbXBsZXRpb24KK3sKKyAgICBhdXRv
IGltYWdlQml0bWFwID0gV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZURhdGEp
OworICAgIGlmICghaW1hZ2VCaXRtYXApIHsKKyAgICAgICAgY29tcGxldGlvbih7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAtPm1h
a2VDR0ltYWdlKCk7CisgICAgaWYgKCFjZ0ltYWdlKSB7CisgICAgICAgIGNvbXBsZXRpb24oeyB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5TKFtb
VUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAgICBpZiAo
IWltYWdlKSB7CisgICAgICAgIGNvbXBsZXRpb24oeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGF1dG8gcmVxdWVzdCA9IFtzZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0
OlZLQW5hbHlzaXNUeXBlVGV4dCBpbWFnZTppbWFnZS5nZXQoKV07CisgICAgW1tzZWxmIGltYWdl
QW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5p
bCBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNv
bXBsZXRpb24pXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKikgbXV0YWJsZSB7
CisgICAgICAgIGNvbXBsZXRpb24oV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KHJl
c3VsdCkpOworICAgIH0pLmdldCgpXTsKK30KKworLSAodm9pZClpbWFnZUFuYWx5c2lzR2VzdHVy
ZURpZEJlZ2luOihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNv
Z25pemVyCit7CisgICAgQVNTRVJUKFdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSk7CisKKyAg
ICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gV2ViS2l0OjpJbWFnZUFuYWx5c2lzUmVxdWVzdElk
ZW50aWZpZXI6OmdlbmVyYXRlKCk7CisKKyAgICBbX2ltYWdlQW5hbHl6ZXIgY2FuY2VsQWxsUmVx
dWVzdHNdOworICAgIF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID0gcmVx
dWVzdElkZW50aWZpZXI7CisgICAgX2lzUHJvY2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFn
ZSA9IE5POworICAgIF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgPSBzdGQ6Om51bGxvcHQ7
CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBfaGFzU2VsZWN0YWJsZVRleHRJbkltYWdlID0g
Tk87CisgICAgX2hhc1Zpc3VhbFNlYXJjaFJlc3VsdHMgPSBOTzsKKyNlbmRpZiAvLyBVU0UoUVVJ
Q0tfTE9PSykKKworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIF9jb250ZXh0TWVudUZvck1h
Y2hpbmVSZWFkYWJsZUNvZGUuY2xlYXIoKTsKKyNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkK
KworICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdCB7IFdl
YkNvcmU6OnJvdW5kZWRJbnRQb2ludChbZ2VzdHVyZVJlY29nbml6ZXIgbG9jYXRpb25JblZpZXc6
c2VsZl0pIH07CisgICAgcmVxdWVzdC5pbmNsdWRlSW1hZ2VEYXRhID0gdHJ1ZTsKKyAgICBbc2Vs
ZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbcmVxdWVzdElkZW50aWZpZXIgPSBX
VEZNb3ZlKHJlcXVlc3RJZGVudGlmaWVyKSwgd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRl
bnRWaWV3PihzZWxmKSwgZ2VzdHVyZURlZmVycmFsVG9rZW4gPSBXZWJLaXQ6OkltYWdlQW5hbHlz
aXNHZXN0dXJlRGVmZXJyYWxUb2tlbjo6Y3JlYXRlKHNlbGYpXSAoV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGF1
dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIVtzdHJvbmdTZWxm
IHZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyOnJlcXVlc3RJZGVudGlmaWVy
XSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBib29sIHNob3VsZEFuYWx5emVJbWFn
ZUF0TG9jYXRpb24gPSBpbmZvcm1hdGlvbi5pc0ltYWdlICYmIGluZm9ybWF0aW9uLmltYWdlICYm
IGluZm9ybWF0aW9uLmltYWdlRWxlbWVudENvbnRleHQgJiYgIWluZm9ybWF0aW9uLmlzQW5pbWF0
ZWRJbWFnZTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmLT5fcGVuZGluZ0ltYWdlQW5hbHlzaXNS
ZXF1ZXN0SWRlbnRpZmllciB8fCAhc2hvdWxkQW5hbHl6ZUltYWdlQXRMb2NhdGlvbikgeworICAg
ICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRp
bmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6
Tm9dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBjZ0lt
YWdlID0gaW5mb3JtYXRpb24uaW1hZ2UtPm1ha2VDR0ltYWdlQ29weSgpOworICAgICAgICBpZiAo
IWNnSW1hZ2UpIHsKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9Q
ZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNl
bGVjdGlvbkluSW1hZ2U6Ok5vXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0lt
YWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgaWYgKCFpbWFnZSkgeworICAgICAgICAgICAg
W3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFu
YWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9dOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2Vz
LCAiSW1hZ2UgYW5hbHlzaXMgcHJlZmxpZ2h0IGdlc3R1cmUgaW5pdGlhdGVkIChyZXF1ZXN0ICUi
IFBSSXU2NCAiKS4iLCByZXF1ZXN0SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKworICAgICAgICBz
dHJvbmdTZWxmLT5fZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzID0gaW5mb3JtYXRpb24uaW1h
Z2VFbGVtZW50Q29udGV4dDsKKworICAgICAgICBhdXRvIHJlcXVlc3RMb2NhdGlvbiA9IGluZm9y
bWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgICAgIFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGVs
ZW1lbnRDb250ZXh0ID0gKmluZm9ybWF0aW9uLmltYWdlRWxlbWVudENvbnRleHQ7CisKKyAgICAg
ICAgYXV0byByZXF1ZXN0Rm9yVGV4dFNlbGVjdGlvbiA9IFtzdHJvbmdTZWxmIGNyZWF0ZUltYWdl
QW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlzaXNUeXBlVGV4dCBpbWFnZTppbWFnZS5nZXQoKV07Cisg
ICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0gW3N0cm9uZ1NlbGYgY3JlYXRlSW1h
Z2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggfCBWS0FuYWx5c2lz
VHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgaW1hZ2U6aW1hZ2UuZ2V0KCldOworCisgICAgICAgIGF1
dG8gdGV4dEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAg
IFtbc3Ryb25nU2VsZiBpbWFnZUFuYWx5emVyXSBwcm9jZXNzUmVxdWVzdDpyZXF1ZXN0Rm9yVGV4
dFNlbGVjdGlvbi5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOlty
ZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwg
ZWxlbWVudENvbnRleHQsIHJlcXVlc3RMb2NhdGlvbiwgcmVxdWVzdEZvckNvbnRleHRNZW51LCBn
ZXN0dXJlRGVmZXJyYWxUb2tlbiwgdGV4dEFuYWx5c2lzU3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5
c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8g
c3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgaWYgKCFbc3Ryb25nU2Vs
ZiB2YWxpZGF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjpyZXF1ZXN0SWRlbnRpZmll
cl0pCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBCT09MIGhhc1RleHRS
ZXN1bHRzID0gW3Jlc3VsdCBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBlczpWS0FuYWx5c2lzVHlw
ZVRleHRdOworICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMg
Y29tcGxldGVkIGluICUuMGYgbXMgKHJlcXVlc3QgJSIgUFJJdTY0ICI7IGZvdW5kIHRleHQ/ICVk
KSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHRleHRBbmFseXNpc1N0YXJ0VGltZSkubWlsbGlz
ZWNvbmRzKCksIHJlcXVlc3RJZGVudGlmaWVyLnRvVUludDY0KCksIGhhc1RleHRSZXN1bHRzKTsK
KworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X3BhZ2UtPnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRp
b25SZXN1bHQoV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCksIGVsZW1l
bnRDb250ZXh0LCByZXF1ZXN0TG9jYXRpb24sIFtyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUo
cmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwgaGFzVGV4dFJlc3VsdHMsIHJlcXVlc3RGb3JD
b250ZXh0TWVudSwgZ2VzdHVyZURlZmVycmFsVG9rZW5dIChXZWJLaXQ6OlRleHRSZWNvZ25pdGlv
blVwZGF0ZVJlc3VsdCB1cGRhdGVSZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGF1
dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgICAgIGlmICghW3N0
cm9uZ1NlbGYgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6cmVxdWVzdElk
ZW50aWZpZXJdKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAg
ICBpZiAodXBkYXRlUmVzdWx0ID09IFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0
OjpUZXh0KSB7CisgICAgICAgICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9pc1Byb2NlZWRpbmdX
aXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgIFtzdHJv
bmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNp
czpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Olllc107CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBnZXN0dXJlRGVmZXJyYWxUb2tlbi0+c2V0U2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24oKTsK
KworICAgICAgICAgICAgICAgIGlmICh1cGRhdGVSZXN1bHQgPT0gV2ViS2l0OjpUZXh0UmVjb2du
aXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcikgeworICAgICAgICAgICAgICAgICAgICBb
c3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5h
bHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpOb107CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBhdXRvIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CisgICAgICAgICAgICAgICAgW1tzdHJvbmdTZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nl
c3NSZXF1ZXN0OnJlcXVlc3RGb3JDb250ZXh0TWVudS5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmls
IGNvbXBsZXRpb25IYW5kbGVyOltyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUocmVxdWVzdElk
ZW50aWZpZXIpLCB3ZWFrU2VsZiwgaGFzVGV4dFJlc3VsdHMsIHZpc3VhbFNlYXJjaEFuYWx5c2lz
U3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0
KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghW3N0cm9uZ1NlbGYgdmFsaWRhdGVJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW50aWZpZXI6cmVxdWVzdElkZW50aWZpZXJdKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgICAgICAgICAg
ICAgICAgIEJPT0wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyA9IFtyZXN1bHQgaGFzUmVzdWx0c0Zv
ckFuYWx5c2lzVHlwZXM6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2hdOworICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4g
JS4wZiBtcyAocmVxdWVzdCAlIiBQUkl1NjQgIjsgZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRz
PyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSB2aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0
VGltZSkubWlsbGlzZWNvbmRzKCksIHJlcXVlc3RJZGVudGlmaWVyLnRvVUludDY0KCksIGhhc1Zp
c3VhbFNlYXJjaFJlc3VsdHMpOworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgVU5VU0VEX1BB
UkFNKHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lKTsKKyNlbmRpZgorICAgICAgICAgICAg
ICAgICAgICBpZiAoIXJlc3VsdCB8fCBlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAg
W3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFnZUFu
YWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9dOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisKKyNp
ZiBVU0UoUVVJQ0tfTE9PSykKKyAgICAgICAgICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2hhc1Nl
bGVjdGFibGVUZXh0SW5JbWFnZSA9IGhhc1RleHRSZXN1bHRzOworICAgICAgICAgICAgICAgICAg
ICBzdHJvbmdTZWxmLT5faGFzVmlzdWFsU2VhcmNoUmVzdWx0cyA9IGhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHM7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICBVTlVTRURfUEFSQU0oaGFzVGV4dFJl
c3VsdHMpOworI2VuZGlmCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgICAgICAgICAgICAg
ICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudUZvck1hY2hpbmVSZWFkYWJsZUNvZGUgPSBbcmVz
dWx0IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRh
YmxlQ29kZV0gPyByZXN1bHQubXJjTWVudSA6IG5pbDsKKyNlbmRpZgorICAgICAgICAgICAgICAg
ICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0lt
YWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpOb107
CisgICAgICAgICAgICAgICAgfV07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfV07CisgICAg
fSBmb3JSZXF1ZXN0OnJlcXVlc3RdOworfQorCistICh2b2lkKWltYWdlQW5hbHlzaXNHZXN0dXJl
RGlkRmFpbDooV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2du
aXplcgoreworICAgIFtzZWxmIF9lbmRJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsOldlYktp
dDo6U2hvdWxkUHJldmVudEdlc3R1cmVzOjpOb107Cit9CisKKy0gKHZvaWQpaW1hZ2VBbmFseXNp
c0dlc3R1cmVEaWRUaW1lT3V0OihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdl
c3R1cmVSZWNvZ25pemVyCit7CisgICAgaWYgKCFzZWxmLl9zaG91bGRVc2VDb250ZXh0TWVudXMp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzZWxmLmhhc1BlbmRpbmdJbWFnZUFuYWx5c2lz
UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyLnN0
YXRlICE9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUJlZ2FuKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGxvY2F0aW9uID0gV2ViQ29yZTo6cm91bmRlZEludFBvaW50KFtnZXN0dXJlUmVj
b2duaXplciBsb2NhdGlvbkluVmlldzpzZWxmXSk7CisgICAgV2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgbG9jYXRpb24gfTsKKyAgICByZXF1ZXN0LmluY2x1
ZGVJbWFnZURhdGEgPSB0cnVlOworICAgIFtzZWxmIGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9u
VXBkYXRlOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpLCBsb2Nh
dGlvbl0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mbykgewor
ICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFz
dHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghaW5mby5pbWFn
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoKCFpbmZvLmlzSW1hZ2VPdmVy
bGF5VGV4dCB8fCAhaW5mby5pc1NlbGVjdGVkKSAmJiAhc3Ryb25nU2VsZi0+X2lzUHJvY2VlZGlu
Z1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBhdXRvIGNnSW1hZ2UgPSBpbmZvLmltYWdlLT5tYWtlQ0dJbWFnZUNvcHkoKTsKKyAgICAgICAg
aWYgKCFjZ0ltYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gaW1hZ2Ug
PSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCld
KTsKKyAgICAgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBS
RUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyB0aW1lb3V0IGdlc3R1cmUgaW5pdGlh
dGVkLiIpOworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgc29tZSB3YXkg
dG8gY2FjaGUgaW1hZ2UgYW5hbHlzaXMgcmVzdWx0cyBwZXIgZWxlbWVudCwgc28gdGhhdCB3ZSBk
b24ndCBlbmQgdXAKKyAgICAgICAgLy8gbWFraW5nIHJlZHVuZGFudCBpbWFnZSBhbmFseXNpcyBy
ZXF1ZXN0cyBmb3IgdGhlIHNhbWUgaW1hZ2UgZGF0YS4KKworICAgICAgICBhdXRvIHZpc3VhbFNl
YXJjaEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAgIGF1
dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0gW3N0cm9uZ1NlbGYgY3JlYXRlSW1hZ2VBbmFseXNp
c1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggfCBWS0FuYWx5c2lzVHlwZU1hY2hp
bmVSZWFkYWJsZUNvZGUgaW1hZ2U6aW1hZ2UuZ2V0KCldOworICAgICAgICBbW3N0cm9uZ1NlbGYg
aW1hZ2VBbmFseXplcl0gcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdEZvckNvbnRleHRNZW51LmdldCgp
IHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtTZWxmLCBsb2NhdGlv
biwgdmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKnJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOworICAgICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworI2lmIFVTRShRVUlDS19MT09LKQorICAgICAgICAgICAgQk9PTCBoYXNWaXN1
YWxTZWFyY2hSZXN1bHRzID0gW3Jlc3VsdCBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBlczpWS0Fu
YWx5c2lzVHlwZVZpc3VhbFNlYXJjaF07CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMs
ICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAoZm91bmQgdmlzdWFsIHNlYXJj
aCByZXN1bHRzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSB2aXN1YWxTZWFyY2hBbmFs
eXNpc1N0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOwor
ICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9IFlFUzsK
KyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gaGFzVmlz
dWFsU2VhcmNoUmVzdWx0czsKKyNlbHNlCisgICAgICAgICAgICBVTlVTRURfUEFSQU0odmlzdWFs
U2VhcmNoQW5hbHlzaXNTdGFydFRpbWUpOworI2VuZGlmCisKKyNpZiBVU0UoVUlDT05URVhUTUVO
VSkKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudUZvck1hY2hpbmVSZWFkYWJs
ZUNvZGUgPSBbcmVzdWx0IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBl
TWFjaGluZVJlYWRhYmxlQ29kZV0gPyByZXN1bHQubXJjTWVudSA6IG5pbDsKKyAgICAgICAgICAg
IHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVv
dXQgPSBZRVM7CisgICAgICAgICAgICBbc3Ryb25nU2VsZi0+X2NvbnRleHRNZW51SW50ZXJhY3Rp
b24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpsb2NhdGlvbl07CisjZWxzZQorICAgICAgICAgICAg
VU5VU0VEX1BBUkFNKGxvY2F0aW9uKTsKKyNlbmRpZgorICAgICAgICB9XTsKKyAgICB9IGZvclJl
cXVlc3Q6cmVxdWVzdF07Cit9CisKKy0gKHZvaWQpX2luc2VydFRleHRGcm9tQ2FtZXJhRm9yV2Vi
VmlldzooaWQpc2VuZGVyCit7CisgICAgW3N1cGVyIF9pbnNlcnRUZXh0RnJvbUNhbWVyYTpzZW5k
ZXJdOworfQorCistICh2b2lkKWNhcHR1cmVUZXh0RnJvbUNhbWVyYUZvcldlYlZpZXc6KGlkKXNl
bmRlcgoreworICAgIFtzdXBlciBjYXB0dXJlVGV4dEZyb21DYW1lcmE6c2VuZGVyXTsKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
QWRkaXRpb25zQWZ0ZXIubW0+CiAjZW5kaWYKQEAgLTEwMjM2LDEwICsxMDc0MSwxMCBAQCAtIChV
SUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbgogCiAtICh2b2lkKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihV
SUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cmF0aW9uRm9yTWVu
dUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gY29tcGxldGlvbjoodm9pZCheKShVSUNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbiAqKSljb21wbGV0aW9uCiB7Ci0jaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCi0gICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQgPSBz
dGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGlt
ZW91dCwgTk8pOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBCT09MIHRyaWdnZXJl
ZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBzdGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdhc1Ry
aWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQsIE5PKTsKICNlbHNlCi0gICAgQk9PTCB0cmln
Z2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQgPSBOTzsKKyAgICBCT09MIHRyaWdnZXJlZEJ5
SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBOTzsKICNlbmRpZgogCiAgICAgaWYgKCFfd2ViVmlldykK
QEAgLTEwMjQ4LDkgKzEwNzUzLDkgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjoo
VUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICBpZiAo
IXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCkKICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb24obmlsKTsKIAotICAgIGF1dG8gZ2V0Q29uZmlndXJhdGlv
bkFuZENvbnRpbnVlID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2Vs
ZiksIGludGVyYWN0aW9uID0gcmV0YWluUHRyKGludGVyYWN0aW9uKSwgY29tcGxldGlvbiA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uKSwgdHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0
XSAoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiBwcm9jZWVkV2l0aEltYWdlRXh0
cmFjdGlvbikgeworICAgIGF1dG8gZ2V0Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlID0gW3dlYWtT
ZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIGludGVyYWN0aW9uID0gcmV0
YWluUHRyKGludGVyYWN0aW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
KSwgdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dF0gKFdlYktpdDo6UHJvY2VlZFdpdGhU
ZXh0U2VsZWN0aW9uSW5JbWFnZSBQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlKSB7CiAg
ICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwotICAgICAgICBpZiAoIXN0
cm9uZ1NlbGYgfHwgcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gPT0gV2ViS2l0OjpQcm9jZWVk
V2l0aEltYWdlRXh0cmFjdGlvbjo6WWVzKSB7CisgICAgICAgIGlmICghc3Ryb25nU2VsZiB8fCBQ
cm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID09IFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0
U2VsZWN0aW9uSW5JbWFnZTo6WWVzKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uKG5pbCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwMjY0LDcgKzEwNzY5LDcgQEAgLSAo
dm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICop
aW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCByZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KFtpbnRlcmFjdGlv
biBsb2NhdGlvbkluVmlldzpzdHJvbmdTZWxmLmdldCgpXSkgfTsKICAgICAgICAgcmVxdWVzdC5p
bmNsdWRlU25hcHNob3QgPSB0cnVlOwogICAgICAgICByZXF1ZXN0LmluY2x1ZGVMaW5rSW5kaWNh
dG9yID0gdHJ1ZTsKLSAgICAgICAgcmVxdWVzdC5kaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRl
bnQgPSB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQ7CisgICAgICAgIHJlcXVlc3Qu
ZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50ID0gdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lz
VGltZW91dDsKICAgICAgICAgcmVxdWVzdC5saW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1h
cmdpbnMgPSAhW3N0cm9uZ1NlbGYgX3Nob3VsZFVzZUNvbnRleHRNZW51c107CiAKICAgICAgICAg
W3N0cm9uZ1NlbGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6W3dlYWtTZWxmID0g
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc3Ryb25nU2VsZi5nZXQoKSksIGNvbXBsZXRpb25d
IChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSB7CkBAIC0xMDI3NSwx
MCArMTA3ODAsMTAgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0
TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAgICAgfSBmb3JSZXF1
ZXN0OnJlcXVlc3RdOwogICAgIH07CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICBbc2VsZiBfZG9BZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb246Z2V0Q29uZmlndXJhdGlvbkFu
ZENvbnRpbnVlXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2RvQWZ0
ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWVdOwogI2Vs
c2UKLSAgICBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUoV2ViS2l0OjpQcm9jZWVkV2l0aElt
YWdlRXh0cmFjdGlvbjo6Tm8pOworICAgIGdldENvbmZpZ3VyYXRpb25BbmRDb250aW51ZShXZWJL
aXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vKTsKICNlbmRpZgogfQogCkBA
IC0xMDQwMCwxMCArMTA5MDUsMTAgQEAgLSAodm9pZCljb250aW51ZUNvbnRleHRNZW51SW50ZXJh
Y3Rpb246KHZvaWQoXikoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKikpY28KIAogICAgICAg
ICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+IGRlZmF1bHRB
Y3Rpb25zRnJvbUFzc2lzdGFudCA9IFtzdHJvbmdTZWxmLT5fYWN0aW9uU2hlZXRBc3Npc3RhbnQg
ZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKICAgICAgICAg
ICAgICAgICBhdXRvIGFjdGlvbnMgPSBtZW51RWxlbWVudHNGcm9tRGVmYXVsdEFjdGlvbnMoZGVm
YXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7Ci0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgICAgICAgICAgICAgaWYgKFVJTWVudSAqaW1hZ2VFeHRyYWN0aW9u
Q29udGV4dE1lbnUgPSBzdHJvbmdTZWxmLT5faW1hZ2VFeHRyYWN0aW9uQ29udGV4dE1lbnUuZ2V0
KCkpCi0gICAgICAgICAgICAgICAgICAgIFthY3Rpb25zIGFkZE9iamVjdDppbWFnZUV4dHJhY3Rp
b25Db250ZXh0TWVudV07Ci0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICAgICAgICAgIGlmIChVSU1lbnUgKm1lbnUg
PSBzdHJvbmdTZWxmLT5fY29udGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFibGVDb2RlLmdldCgpKQor
ICAgICAgICAgICAgICAgICAgICBbYWN0aW9ucyBhZGRPYmplY3Q6bWVudV07CisjZW5kaWYgLy8g
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgICAgICAgICAgICAgIHJldHVybiBbVUlNZW51IG1l
bnVXaXRoVGl0bGU6c3Ryb25nU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgY2hpbGRy
ZW46YWN0aW9uc107CiAgICAgICAgICAgICB9OwogCkBAIC0xMDY2Nyw5ICsxMTE3Miw5IEBAIC0g
KHZvaWQpY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICop
aW50ZXJhY3Rpb24gd2lsbEVuZEZvCiAgICAgX2NvbnRleHRNZW51SGFzUmVxdWVzdGVkTGVnYWN5
RGF0YSA9IE5POwogICAgIF9jb250ZXh0TWVudUVsZW1lbnRJbmZvID0gbnVsbHB0cjsKIAotI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9pbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVu
dS5jbGVhcigpOwotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKKyAgICBfY29udGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFibGVDb2Rl
LmNsZWFyKCk7CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAgICAgW2FuaW1h
dG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4o
c2VsZildICgpIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2Vz
dHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZTY5NTBlNGNkMWQyM2YwNjZj
ZTY1YmY3ZTU2OTY0Y2IwMDcxNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpbmNsdWRlIDxVSUtpdC9VSUtpdC5o
PgorCitAY2xhc3MgV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXI7CisKK0Bwcm90b2Nv
bCBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlIDxVSUdlc3R1cmVSZWNv
Z25pemVyRGVsZWdhdGU+CistICh2b2lkKWltYWdlQW5hbHlzaXNHZXN0dXJlRGlkQmVnaW46KFdL
SW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZTsKKy0gKHZvaWQpaW1hZ2VB
bmFseXNpc0dlc3R1cmVEaWRGYWlsOihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmU7CitAZW5kCisKK0BpbnRlcmZhY2UgV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIgOiBVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyCisKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8V0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZTsKKworQGVuZAorCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1YjZmNTllMzJhYjgyNDEyZTYz
NzI0NzBmNzZkMmU0YzUyZDgwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0KQEAgLTAsMCAr
MSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0lt
YWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitAaW1wbGVtZW50YXRpb24gV0tJbWFnZUFu
YWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgeworICAgIF9fd2VhayBVSVZpZXcgPFdLSW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+ICpfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNv
Z25pemVyRGVsZWdhdGU7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEltYWdlQW5hbHlz
aXNHZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0p
KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2du
aXplckRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgc2VsZi5kZWxlZ2F0ZSA9IGRlbGVnYXRlOwor
ICAgIHNlbGYubWluaW11bVByZXNzRHVyYXRpb24gPSAwLjE7CisgICAgc2VsZi5hbGxvd2FibGVN
b3ZlbWVudCA9IDA7CisgICAgc2VsZi5uYW1lID0gQCJJbWFnZSBhbmFseXNpcyI7CisgICAgcmV0
dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0U3RhdGU6KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0
ZSlzdGF0ZQoreworICAgIGF1dG8gcHJldmlvdXNTdGF0ZSA9IHNlbGYuc3RhdGU7CisgICAgc3Vw
ZXIuc3RhdGUgPSBzdGF0ZTsKKworICAgIGF1dG8gbmV3U3RhdGUgPSBzZWxmLnN0YXRlOworICAg
IGlmIChwcmV2aW91c1N0YXRlID09IG5ld1N0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobmV3U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlQmVnYW4pCisgICAgICAgIFtf
aW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUgaW1hZ2VBbmFseXNpc0dlc3R1
cmVEaWRCZWdpbjpzZWxmXTsKKyAgICBlbHNlIGlmIChuZXdTdGF0ZSA9PSBVSUdlc3R1cmVSZWNv
Z25pemVyU3RhdGVGYWlsZWQpCisgICAgICAgIFtfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyRGVsZWdhdGUgaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRGYWlsOnNlbGZdOworfQorCitAZW5k
CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
SW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjlkYTBhMGUzMGM2ZTZiOWRmMzlmYmMzMDlhY2YwZGM5N2U5MWJkOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0KLSNpbmNs
dWRlIDxVSUtpdC9VSUtpdC5oPgotCi1AY2xhc3MgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVj
b2duaXplcjsKLQotQHByb3RvY29sIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJE
ZWxlZ2F0ZSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPgotLSAodm9pZClpbWFnZUV4dHJh
Y3Rpb25HZXN0dXJlRGlkQmVnaW46KFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIg
KilnZXN0dXJlOwotLSAodm9pZClpbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkRmFpbDooV0tJbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmU7Ci1AZW5kCi0KLUBpbnRlcmZh
Y2UgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciA6IFVJTG9uZ1ByZXNzR2VzdHVy
ZVJlY29nbml6ZXIKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW1hZ2VFeHRyYWN0aW9uR2Vz
dHVyZURlbGVnYXRlOihVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJE
ZWxlZ2F0ZT4gKilkZWxlZ2F0ZTsKLQotQGVuZAotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMGU4MzQzMjBjZjkxZjAy
ZDU0YTk5NGU3NzUxNTMxNGJiNDlhN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS0ltYWdlRXh0cmFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLmgiCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotQGltcGxlbWVudGF0aW9uIFdLSW1hZ2VFeHRyYWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIgewotICAgIF9fd2VhayBVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0
aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKl9pbWFnZUV4dHJhY3Rpb25EZWxlZ2F0ZTsK
LX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZURlbGVn
YXRlOihVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4g
KilkZWxlZ2F0ZQotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICBy
ZXR1cm4gbmlsOwotCi0gICAgX2ltYWdlRXh0cmFjdGlvbkRlbGVnYXRlID0gZGVsZWdhdGU7Ci0g
ICAgc2VsZi5kZWxlZ2F0ZSA9IGRlbGVnYXRlOwotICAgIHNlbGYubWluaW11bVByZXNzRHVyYXRp
b24gPSAwLjE7Ci0gICAgc2VsZi5hbGxvd2FibGVNb3ZlbWVudCA9IDA7Ci0gICAgc2VsZi5uYW1l
ID0gQCJJbWFnZSBleHRyYWN0aW9uIjsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZClz
ZXRTdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0YXRlKXN0YXRlCi17Ci0gICAgYXV0byBwcmV2
aW91c1N0YXRlID0gc2VsZi5zdGF0ZTsKLSAgICBzdXBlci5zdGF0ZSA9IHN0YXRlOwotCi0gICAg
YXV0byBuZXdTdGF0ZSA9IHNlbGYuc3RhdGU7Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgPT0gbmV3
U3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChuZXdTdGF0ZSA9PSBVSUdlc3R1cmVS
ZWNvZ25pemVyU3RhdGVCZWdhbikKLSAgICAgICAgW19pbWFnZUV4dHJhY3Rpb25EZWxlZ2F0ZSBp
bWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkQmVnaW46c2VsZl07Ci0gICAgZWxzZSBpZiAobmV3U3Rh
dGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkKQotICAgICAgICBbX2ltYWdlRXh0
cmFjdGlvbkRlbGVnYXRlIGltYWdlRXh0cmFjdGlvbkdlc3R1cmVEaWRGYWlsOnNlbGZdOwotfQot
Ci1AZW5kCi0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLmgKaW5kZXggODk0NDJjZDkyMzMyNjRkMDliZTBlMzgwY2M2NjAxM2YzZGQ5MjBhZi4u
ZGQ3YjQ5N2FhNjRiZjdhMjNlZWYxODQ4NmViY2I0NDNhMzU4NzFlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTEzMCw5ICsxMzAs
OSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgb3ZlcnJpZGU7CiAKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24o
Y29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdl
RGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1
bHQmJik+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0
IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IG92ZXJyaWRlOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICB2b2lkIHJlcXVlc3RU
ZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0
UmVjb2duaXRpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUhhc1Zp
c3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxX
ZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMubW0KaW5kZXggYzRjMDU0ZmQ1ZGIzZjdhYzg3OGY5OGQzMWVkOTkyZjQ1OGEwMTI4My4uYzJk
ZThkNmVhN2MwYmNhZmEwOTE0YzFmNTJhZTRkNjQ1ZGY4NjlkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNDc4LDE2ICs0Nzgs
MTYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50JiBldmVudCwgYm9vbAogICAgIG1faW1wbC0+ZG9uZVdpdGhLZXlFdmVu
dChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudFdhc0hhbmRsZWQpOwogfQogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkws
IGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkws
IGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCiB7Ci0gICAg
bV9pbXBsLT5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGltYWdlVVJMLCBpbWFnZURhdGEsIFdURk1v
dmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+cmVxdWVzdFRleHRSZWNvZ25pdGlvbihpbWFn
ZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAotdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6Y29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJl
YWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAgICBtX2lt
cGwtPmNvbXB1dGVDYW5SZXZlYWxJbWFnZShpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUo
Y29tcGxldGlvbikpOworICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMo
aW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rp
b25QcmV2aWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTM1ODAyZGI4MmM2MGM0NzE4MTk5YzQ4NmQ0NTg3ZmNhOGE3ODI4Ni4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oCisrKyAvZGV2L251
bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViUGFnZVBy
b3h5OwotfQotCi1AY2xhc3MgUUxQcmV2aWV3UGFuZWw7Ci0KLUBpbnRlcmZhY2UgV0tJbWFnZUV4
dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlciA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSBpbWFnZURhdGE6KE5TRGF0YSAq
KWRhdGEgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkw7
Ci0tICh2b2lkKWJlZ2luQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0gKEJPT0wp
aXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0gKHZvaWQpZW5kQ29udHJv
bDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0gKHZvaWQpY2xvc2VQYW5lbElmTmVjZXNzYXJ5
OwotQGVuZAotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltYWdlRXh0
cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI4NGMzZGUwZmYyYWM5OGFkYWU5NGFlZmM4MGEyZmQwZjQwMzViZTguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0KKysr
IC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZp
Zy5oIgotI2ltcG9ydCAiV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIgotCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIFBMQVRGT1JNKE1BQykKLQotI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJU29mdExpbmsuaD4K
LSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLQotQGludGVyZmFjZSBXS0ltYWdlRXh0cmFjdGlv
blByZXZpZXdDb250cm9sbGVyICgpIDxRTFByZXZpZXdQYW5lbERlbGVnYXRlLCBRTFByZXZpZXdQ
YW5lbERhdGFTb3VyY2U+Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS0ltYWdlRXh0cmFjdGlv
blByZXZpZXdDb250cm9sbGVyIHsKLSAgICBSZXRhaW5QdHI8UUxJdGVtPiBfaXRlbTsKLSAgICBS
ZXRhaW5QdHI8TlNEYXRhPiBfaW1hZ2VEYXRhOwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSBpbWFnZURhdGE6KE5TRGF0YSAqKWlt
YWdlRGF0YSB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVS
TAotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmls
OwotCi0gICAgX2ltYWdlRGF0YSA9IGltYWdlRGF0YTsKLSAgICBfaXRlbSA9IGFkb3B0TlMoW1BB
TDo6YWxsb2NRTEl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoRGF0YVByb3ZpZGVyOihpZClzZWxmIGNv
bnRlbnRUeXBlOlVUVHlwZVBORyBwcmV2aWV3VGl0bGU6dGl0bGVdKTsKLSAgICBpZiAoW19pdGVt
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0UHJldmlld09wdGlvbnM6KV0pIHsKLSAg
ICAgICAgYXV0byBwcmV2aWV3T3B0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdKTsKLSAgICAgICAgaWYgKGltYWdlVVJMKQotICAg
ICAgICAgICAgW3ByZXZpZXdPcHRpb25zIHNldE9iamVjdDppbWFnZVVSTCBmb3JLZXk6QCJpbWFn
ZVVSTCJdOwotICAgICAgICBpZiAoTlNVUkwgKnBhZ2VVUkwgPSBVUkwgeyBVUkwgeyB9LCBwYWdl
LmN1cnJlbnRVUkwoKSB9KQotICAgICAgICAgICAgW3ByZXZpZXdPcHRpb25zIHNldE9iamVjdDpw
YWdlVVJMIGZvcktleTpAInBhZ2VVUkwiXTsKLSAgICAgICAgW19pdGVtIHNldFByZXZpZXdPcHRp
b25zOnByZXZpZXdPcHRpb25zLmdldCgpXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0K
LQotLSAodm9pZCliZWdpbkNvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICBw
YW5lbC5kYXRhU291cmNlID0gc2VsZjsKLSAgICBwYW5lbC5kZWxlZ2F0ZSA9IHNlbGY7Ci19Ci0K
LS0gKHZvaWQpZW5kQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAotewotICAgIGlmIChw
YW5lbC5kYXRhU291cmNlID09IHNlbGYpCi0gICAgICAgIHBhbmVsLmRhdGFTb3VyY2UgPSBuaWw7
Ci0KLSAgICBpZiAocGFuZWwuZGVsZWdhdGUgPT0gc2VsZikKLSAgICAgICAgcGFuZWwuZGVsZWdh
dGUgPSBuaWw7Ci19Ci0KLS0gKHZvaWQpY2xvc2VQYW5lbElmTmVjZXNzYXJ5Ci17Ci0gICAgaWYg
KCFQQUw6OmlzUXVpY2tMb29rVUlGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhW1BBTDo6Z2V0UUxQ
cmV2aWV3UGFuZWxDbGFzcygpIHNoYXJlZFByZXZpZXdQYW5lbEV4aXN0c10pCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChhdXRvIHBhbmVsID0gW1BBTDo6Z2V0UUxQcmV2aWV3UGFuZWxDbGFz
cygpIHNoYXJlZFByZXZpZXdQYW5lbF07IFtzZWxmIGlzQ29udHJvbGxpbmc6cGFuZWxdKQotICAg
ICAgICBbcGFuZWwgY2xvc2VdOwotfQotCi0tIChCT09MKWlzQ29udHJvbGxpbmc6KFFMUHJldmll
d1BhbmVsICopcGFuZWwKLXsKLSAgICByZXR1cm4gcGFuZWwuZGF0YVNvdXJjZSA9PSBzZWxmICYm
IHBhbmVsLmRlbGVnYXRlID09IHNlbGY7Ci19Ci0KLSNwcmFnbWEgbWFyayAtIFFMUHJldmlld0l0
ZW1EYXRhUHJvdmlkZXIKLQotLSAoTlNEYXRhICopcHJvdmlkZURhdGFGb3JJdGVtOihRTEl0ZW0g
KilpdGVtCi17Ci0gICAgQVNTRVJUKGl0ZW0gPT0gX2l0ZW0pOwotICAgIHJldHVybiBfaW1hZ2VE
YXRhLmdldCgpOwotfQotCi0jcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdQYW5lbERhdGFTb3VyY2UK
LQotLSAoTlNJbnRlZ2VyKW51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2aWV3UGFuZWw6KFFMUHJl
dmlld1BhbmVsICopcGFuZWwKLXsKLSAgICByZXR1cm4gMTsKLX0KLQotLSAoaWQgPFFMUHJldmll
d0l0ZW0+KXByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbCBwcmV2aWV3SXRlbUF0
SW5kZXg6KE5TSW50ZWdlcilpbmRleAotewotICAgIEFTU0VSVCghaW5kZXgpOwotICAgIHJldHVy
biBfaXRlbS5nZXQoKTsKLX0KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0
IDxXZWJLaXRBZGRpdGlvbnMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlckFkZGl0
aW9ucy5tbT4KLSNlbmRpZgotCi1AZW5kCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzdlOTdiM2E3YTc4ODJhMDc0ZmQ0NGI0ZTdhYWU4NzU1OGRhODk2YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdl
YlBhZ2VQcm94eTsKK30KKworQGNsYXNzIFFMUHJldmlld1BhbmVsOworCitAaW50ZXJmYWNlIFdL
VmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgaW1hZ2VEYXRhOihOU0Rh
dGEgKilkYXRhIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlVVJMOihOU1VSTCAqKWltYWdl
VVJMOworLSAodm9pZCliZWdpbkNvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWw7CistIChC
T09MKWlzQ29udHJvbGxpbmc6KFFMUHJldmlld1BhbmVsICopcGFuZWw7CistICh2b2lkKWVuZENv
bnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWw7CistICh2b2lkKWNsb3NlUGFuZWxJZk5lY2Vz
c2FyeTsKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFs
U2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWI5ZjJkNDc1
YTUwN2E1OGUwMzljNDg2YTQxMzU3ODM5OTljYjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW0K
QEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlT
b2Z0TGluay5oPgorCitAaW50ZXJmYWNlIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIg
KCkgPFFMUHJldmlld1BhbmVsRGVsZWdhdGUsIFFMUHJldmlld1BhbmVsRGF0YVNvdXJjZT4KK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgewor
ICAgIFJldGFpblB0cjxRTEl0ZW0+IF9pdGVtOworICAgIFJldGFpblB0cjxOU0RhdGE+IF9pbWFn
ZURhdGE7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFn
ZVByb3h5JilwYWdlIGltYWdlRGF0YTooTlNEYXRhICopaW1hZ2VEYXRhIHRpdGxlOihOU1N0cmlu
ZyAqKXRpdGxlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCit7CisgICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaW1hZ2VEYXRhID0g
aW1hZ2VEYXRhOworICAgIF9pdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1FMSXRlbUluc3RhbmNl
KCkgaW5pdFdpdGhEYXRhUHJvdmlkZXI6KGlkKXNlbGYgY29udGVudFR5cGU6VVRUeXBlUE5HIHBy
ZXZpZXdUaXRsZTp0aXRsZV0pOworICAgIGlmIChbX2l0ZW0gcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzZXRQcmV2aWV3T3B0aW9uczopXSkgeworICAgICAgICBhdXRvIHByZXZpZXdPcHRp
b25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNp
dHk6Ml0pOworICAgICAgICBpZiAoaW1hZ2VVUkwpCisgICAgICAgICAgICBbcHJldmlld09wdGlv
bnMgc2V0T2JqZWN0OmltYWdlVVJMIGZvcktleTpAImltYWdlVVJMIl07CisgICAgICAgIGlmIChO
U1VSTCAqcGFnZVVSTCA9IFVSTCB7IFVSTCB7IH0sIHBhZ2UuY3VycmVudFVSTCgpIH0pCisgICAg
ICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVS
TCJdOworICAgICAgICBbX2l0ZW0gc2V0UHJldmlld09wdGlvbnM6cHJldmlld09wdGlvbnMuZ2V0
KCldOworICAgIH0KKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWJlZ2luQ29udHJv
bDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAoreworICAgIHBhbmVsLmRhdGFTb3VyY2UgPSBzZWxm
OworICAgIHBhbmVsLmRlbGVnYXRlID0gc2VsZjsKK30KKworLSAodm9pZCllbmRDb250cm9sOihR
TFByZXZpZXdQYW5lbCAqKXBhbmVsCit7CisgICAgaWYgKHBhbmVsLmRhdGFTb3VyY2UgPT0gc2Vs
ZikKKyAgICAgICAgcGFuZWwuZGF0YVNvdXJjZSA9IG5pbDsKKworICAgIGlmIChwYW5lbC5kZWxl
Z2F0ZSA9PSBzZWxmKQorICAgICAgICBwYW5lbC5kZWxlZ2F0ZSA9IG5pbDsKK30KKworLSAodm9p
ZCljbG9zZVBhbmVsSWZOZWNlc3NhcnkKK3sKKyAgICBpZiAoIVBBTDo6aXNRdWlja0xvb2tVSUZy
YW1ld29ya0F2YWlsYWJsZSgpIHx8ICFbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hh
cmVkUHJldmlld1BhbmVsRXhpc3RzXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8g
cGFuZWwgPSBbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1BhbmVs
XTsgW3NlbGYgaXNDb250cm9sbGluZzpwYW5lbF0pCisgICAgICAgIFtwYW5lbCBjbG9zZV07Cit9
CisKKy0gKEJPT0wpaXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAoreworICAg
IHJldHVybiBwYW5lbC5kYXRhU291cmNlID09IHNlbGYgJiYgcGFuZWwuZGVsZWdhdGUgPT0gc2Vs
ZjsKK30KKworI3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRlbURhdGFQcm92aWRlcgorCistIChO
U0RhdGEgKilwcm92aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAqKWl0ZW0KK3sKKyAgICBBU1NFUlQo
aXRlbSA9PSBfaXRlbSk7CisgICAgcmV0dXJuIF9pbWFnZURhdGEuZ2V0KCk7Cit9CisKKyNwcmFn
bWEgbWFyayAtIFFMUHJldmlld1BhbmVsRGF0YVNvdXJjZQorCistIChOU0ludGVnZXIpbnVtYmVy
T2ZQcmV2aWV3SXRlbXNJblByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAorewor
ICAgIHJldHVybiAxOworfQorCistIChpZCA8UUxQcmV2aWV3SXRlbT4pcHJldmlld1BhbmVsOihR
TFByZXZpZXdQYW5lbCAqKXBhbmVsIHByZXZpZXdJdGVtQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4
Cit7CisgICAgQVNTRVJUKCFpbmRleCk7CisgICAgcmV0dXJuIF9pdGVtLmdldCgpOworfQorCisj
cHJhZ21hIG1hcmsgLSBRTFByZXZpZXdQYW5lbERlbGVnYXRlCisKKy0gKFFMUHJldmlld0FjdGl2
aXR5KXByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwcmV2aWV3UGFuZWwgaW5pdGlhbEFj
dGl2aXR5Rm9ySXRlbTooaWQgPFFMUHJldmlld0l0ZW0+KWl0ZW0KK3sKKyAgICByZXR1cm4gUUxQ
cmV2aWV3QWN0aXZpdHlWaXN1YWxTZWFyY2g7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCAzMjNiZDM1
OTdmNDk0NmViNzFlMDQ2MmQxOTcyMmVhZTViYWIwNzY3Li5mODA5MGFkMTZkZDNkNjk2ZDBkYWYz
YmFhNDE2MDRjODY4ZDA4Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDM2LDcgKzQzNiw3IEBAIHN0YXRp
YyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JlbG9hZDoKICAgICAg
ICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZDsKIAotICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29r
VXBJbWFnZToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVhbEltYWdl
OwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWI6CkBAIC01MDcsMTQgKzUw
NywxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0
ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAgICB9KTsKICAgICB9CiAKLSAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IHJldmVhbEltYWdlSXRlbTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IGxvb2tVcEltYWdlSXRl
bTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKICAgICBmaWx0ZXJlZEl0ZW1zLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZdIChhdXRvJiBp
dGVtKSB7Ci0gICAgICAgIGlmIChpdGVtLmFjdGlvbigpICE9IFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlKQorICAgICAgICBpZiAoaXRlbS5hY3Rpb24oKSAhPSBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgICAgICByZXZlYWxJbWFnZUl0ZW0gPSB7IGl0ZW0gfTsKKyAgICAgICAgbG9va1Vw
SW1hZ2VJdGVtID0geyBpdGVtIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0pOwogI2Vu
ZGlmCkBAIC01MzEsNyArNTMxLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRD
b250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAgICBhdXRv
IGltYWdlQml0bWFwID0gbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCkuaW1hZ2VCaXRt
YXA7CiAKICAgICBhdXRvIHNwYXJzZU1lbnVJdGVtcyA9IHJldGFpblB0cihbTlNQb2ludGVyQXJy
YXkgc3Ryb25nT2JqZWN0c1BvaW50ZXJBcnJheV0pOwotICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0g
PSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2Ug
PSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFn
ZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCByZXZlYWxJbWFnZUl0ZW0gPSBXVEZNb3Zl
KHJldmVhbEltYWdlSXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBX
VEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVn
ZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQ
dHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0
cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdU
Rk1vdmUoaW1hZ2VCaXRtYXApLCBsb29rVXBJbWFnZUl0ZW0gPSBXVEZNb3ZlKGxvb2tVcEltYWdl
SXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0
ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUp
LCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11
dGFibGUgewogICAgICAgICBBU1NFUlQoaW5kZXggPCBbc3BhcnNlTWVudUl0ZW1zIGNvdW50XSk7
CiAgICAgICAgIEFTU0VSVCghW3NwYXJzZU1lbnVJdGVtcyBwb2ludGVyQXRJbmRleDppbmRleF0p
OwogICAgICAgICBbc3BhcnNlTWVudUl0ZW1zIHJlcGxhY2VQb2ludGVyQXRJbmRleDppbmRleCB3
aXRoUG9pbnRlcjppdGVtXTsKQEAgLTU0MSwxMSArNTQxLDExIEBAIHZvaWQgV2ViQ29udGV4dE1l
bnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRl
eHRNZW51CiAgICAgICAgIFttZW51IHNldEl0ZW1BcnJheTpbc3BhcnNlTWVudUl0ZW1zIGFsbE9i
amVjdHNdXTsKIAogICAgICAgICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRyKHdlYWtQYWdlLmdldCgp
KTsKLSAgICAgICAgaWYgKHJldmVhbEltYWdlSXRlbSAmJiBwYWdlICYmIGltYWdlQml0bWFwKSB7
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAgICBwYWdlLT5jb21wdXRl
Q2FuUmV2ZWFsSW1hZ2UoaW1hZ2VVUkwsICppbWFnZUJpdG1hcCwgW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCByZXZlYWxJbWFnZUl0ZW0gPSBXVEZNb3ZlKCpyZXZlYWxJ
bWFnZUl0ZW0pXSAoYm9vbCBjYW5SZXZlYWxJbWFnZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGNhblJldmVhbEltYWdlKQotICAgICAgICAgICAgICAgICAgICBbcHJvdGVjdGVkVGhp
cy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVudUFjdGlvbkl0ZW0ocmV2ZWFsSW1hZ2VJdGVtKS5n
ZXQoKV07CisgICAgICAgIGlmIChsb29rVXBJbWFnZUl0ZW0gJiYgcGFnZSAmJiBpbWFnZUJpdG1h
cCkgeworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgICAgIHBhZ2UtPmNvbXB1
dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGltYWdlVVJMLCAqaW1hZ2VCaXRtYXAsIFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgbG9va1VwSW1hZ2VJdGVtID0gV1RGTW92
ZSgqbG9va1VwSW1hZ2VJdGVtKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpCisgICAgICAg
ICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpjcmVhdGVNZW51QWN0
aW9uSXRlbShsb29rVXBJbWFnZUl0ZW0pLmdldCgpXTsKICAgICAgICAgICAgIH0pOwogI2Vsc2UK
ICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShpbWFnZVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCAwODM5NGVkOTcyNGMxYjVhYzI2
NzVmYjhmZmNiYWUwNzAxZTYzNTBjLi40MzM3NzM5ZTc0YTA2MjQ4YTU0MzYxNzc2YjcxZmQyOTMy
MjcyZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0KQEAgLTQ1LDggKzQ1LDggQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2lt
cG9ydCAiVGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ckludGVybmFsLmgiCi0jaW1wb3J0ICJXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVy
LmgiCiAjaW1wb3J0ICJXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCIKKyNpbXBvcnQg
IldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYkNvbnRleHRN
ZW51UHJveHlNYWMuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2Vi
UHJlZmVyZW5jZXNLZXlzLmgiCkBAIC0xMTAsNiArMTEwLDggQEAgLSAodm9pZCljb250ZXh0TWVu
dUFjdGlvbjooTlNNZW51SXRlbSAqKXNlbmRlcgogQGVuZCAvLyBpbXBsZW1lbnRhdGlvbiBXS1BE
Rk1lbnVUYXJnZXQKICNlbmRpZgogCisjaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJU29mdExp
bmsuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAg
ICAKQEAgLTcyMiwyNiArNzI0LDY2IEBAIENvbG9yIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1VbmRl
clBhZ2VCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5Q
cmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICpwYW5lbCkKIHsKLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLSAgICBbbV9pbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxl
ciBiZWdpbkNvbnRyb2w6cGFuZWxdOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBb
bV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBiZWdpbkNvbnRyb2w6cGFuZWxdOwogI2Vu
ZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjplbmRQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJl
dmlld1BhbmVsICpwYW5lbCkKIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBp
ZiAoYXV0byBjb250cm9sbGVyID0gc3RkOjpleGNoYW5nZShtX2ltYWdlRXh0cmFjdGlvblByZXZp
ZXdDb250cm9sbGVyLCBuaWwpKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAo
YXV0byBjb250cm9sbGVyID0gc3RkOjpleGNoYW5nZShtX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyLCBuaWwpKQogICAgICAgICBbY29udHJvbGxlciBlbmRDb250cm9sOnBhbmVsXTsKICNl
bmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5l
Y2Vzc2FyeSgpCiB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgW21faW1hZ2VF
eHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIgY2xvc2VQYW5lbElmTmVjZXNzYXJ5XTsKKyNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW21fdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xs
ZXIgY2xvc2VQYW5lbElmTmVjZXNzYXJ5XTsKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQ
cmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgY29uc3QgU3RyaW5nJiB0
b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJMKQoreworICAgIGlmICghUEFMOjppc1F1aWNrTG9v
a1VJRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Z2V0UUxQcmV2aWV3UGFuZWxDbGFzcygp
IHx8ICFbUEFMOjpnZXRRTEl0ZW1DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihpbml0V2l0aERhdGFQcm92aWRlcjpjb250ZW50VHlwZTpwcmV2aWV3VGl0bGU6KV0p
CisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW1hZ2UgPSBpbWFnZUJpdG1hcC5tYWtlQ0dJ
bWFnZSgpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW1h
Z2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IDApKTsKKyAgICBhdXRvIGRlc3RpbmF0aW9uID0gYWRvcHRDRihDR0ltYWdlRGVzdGluYXRpb25D
cmVhdGVXaXRoRGF0YShpbWFnZURhdGEuZ2V0KCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5
cGVQTkcuaWRlbnRpZmllciwgMSwgbnVsbHB0cikpOworICAgIGlmICghZGVzdGluYXRpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0
aW9uLmdldCgpLCBpbWFnZS5nZXQoKSwgbmlsKTsKKyAgICBpZiAoIUNHSW1hZ2VEZXN0aW5hdGlv
bkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFBhZ2U6KnRoaXMgaW1hZ2VEYXRhOihfX2Jy
aWRnZSBOU0RhdGEgKilpbWFnZURhdGEuZ2V0KCkgdGl0bGU6dG9vbHRpcCBpbWFnZVVSTDppbWFn
ZVVSTF0pOworCisgICAgLy8gV2hlbiBwcmVzZW50aW5nIHRoZSBzaGFyZWQgUUxQcmV2aWV3UGFu
ZWwsIFF1aWNrTG9vayB3aWxsIHNlYXJjaCB0aGUgcmVzcG9uZGVyIGNoYWluIGZvciBhIHN1aXRh
YmxlIHBhbmVsIGNvbnRyb2xsZXIuCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgd2UgKGJ5IGRlZmF1
bHQpIHN0YXJ0IHRoZSBzZWFyY2ggYXQgdGhlIHdlYiB2aWV3LCB3aGljaCBrbm93cyBob3cgdG8g
dmVuZCB0aGUgVmlzdWFsIFNlYXJjaCBwcmV2aWV3CisgICAgLy8gY29udHJvbGxlciBhcyBhIGRl
bGVnYXRlIGFuZCBkYXRhIHNvdXJjZSBmb3IgdGhlIHByZXZpZXcgcGFuZWwuCisgICAgcGFnZUNs
aWVudCgpLm1ha2VGaXJzdFJlc3BvbmRlcigpOworCisgICAgYXV0byBwcmV2aWV3UGFuZWwgPSBb
UEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1BhbmVsXTsKKyAgICBb
cHJldmlld1BhbmVsIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CisKKyAgICBpZiAoIVttX3Zp
c3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGlzQ29udHJvbGxpbmc6cHJldmlld1BhbmVsXSkg
eworICAgICAgICAvLyBUaGUgV2ViS2l0IGNsaWVudCBtYXkgaGF2ZSBvdmVycmlkZGVuIFFMUHJl
dmlld1BhbmVsQ29udHJvbGxlciBtZXRob2RzIG9uIHRoZSB2aWV3IHdpdGhvdXQgY2FsbGluZyBp
bnRvIHRoZSBzdXBlcmNsYXNzLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIGhhbmQgb3ZlciBj
b250cm9sIHRvIHRoZSBjbGllbnQgYW5kIGNsZWFyIG91dCBvdXIgc3RhdGUgZWFnZXJseSwgc2lu
Y2Ugd2UgZG9uJ3QgZXhwZWN0IGFueSBmdXJ0aGVyIGRlbGVnYXRlCisgICAgICAgIC8vIGNhbGxz
IG9uY2UgdGhlIHByZXZpZXcgcGFuZWwgaXMgZGlzbWlzc2VkLgorICAgICAgICBtX3Zpc3VhbFNl
YXJjaFByZXZpZXdDb250cm9sbGVyLmNsZWFyKCk7CisgICAgfQorfQorCisjZW5kaWYgLy8gRU5B
QkxFKElNQUdFX0FOQUxZU0lTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDc1ZmUyZWQxNTU3ZWMyNDBmNDVhYmRiMTY1YjZlMDYwMzhmMjExY2Qu
LjdlMzE2YTViM2FmOTU5MTllNjYzMzQyYzM4Y2UzOGE5YzU0N2VjN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAxNiw3ICsyMDE2
LDcgQEAKIAkJRjQyRDYzNDEyMkEwRUZERjAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyRDYz
M0YyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovOyB9OwogCQlG
NDMwRTk0MjIyNDczMzVGMDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzMEU5NDEyMjQ3
MzJBOTAwNUZFMDUzIC8qIFdlYnNpdGVNZXRhVmlld3BvcnRQb2xpY3kuaCAqLzsgfTsKIAkJRjQz
MEU5NDQyMjQ3M0RGRjAwNUZFMDUzIC8qIFdlYkNvbnRlbnRNb2RlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMwRTk0MzIyNDczREI4MDA1RkUwNTMg
LyogV2ViQ29udGVudE1vZGUuaCAqLzsgfTsKLQkJRjQzNTFCOUUyNUVFQzg0QzAwRDYzODkyIC8q
IEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQzNTFCOUQyNUVFQzg0QzAwRDYzODkyIC8qIEltYWdlRXh0cmFj
dGlvblV0aWxpdGllcy5oICovOyB9OworCQlGNDM1MUI5RTI1RUVDODRDMDBENjM4OTIgLyogVGV4
dFJlY29nbml0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9u
VXRpbGl0aWVzLmggKi87IH07CiAJCUY0MzhDRDFDMjI0MTQyMTQwMERFNkREQSAvKiBXS1dlYnBh
Z2VQcmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQzOENEMUIyMjQxNDBBNjAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlGNDM4Q0Qx
RjIyNDE0RDQwMDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMUUyMjQxNEQ0
MDAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCAqLzsgfTsKIAkJRjQz
OENEMjEyMjQxRjY5NTAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMjAyMjQx
RjY5NTAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMDMwLDkgKzIwMzAsOSBA
QAogCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE4NDIxNTgzQTAyMDBDNjc1
MkIgLyogQXBwS2l0U1BJLmggKi87IH07CiAJCUY0OTZBNDMxMUY1OEEyNzIwMDRDMTc1NyAvKiBE
cmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0OTZBNDJGMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVy
YWN0aW9uU3RhdGUuaCAqLzsgfTsKIAkJRjQ5NzRFNzYyNjVFQ0JCQzAwQjQ5QjhDIC8qIFdLUmV2
ZWFsSXRlbVByZXNlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ0NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRl
ci5oICovOyB9OwotCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rp
b25QcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9u
UHJldmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKKwkJRjQ5NzVDRjIyNjI0QjgwQTAwM0M2MjZFIC8q
IFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBXS1Zp
c3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUY0QTZENkJDMjU0Q0EzRTkw
MEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi87IH07Ci0JCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NF
OCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTgg
LyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovOyB9OworCQlGNEJBMzNG
MjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkEzM0YwMjU3
NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oICovOyB9
OwogCQlGNENCMDlFNTIyNUQ1QTA5MDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENCMDlF
NDIyNUQ1QTAzMDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5LmggKi87IH07CiAJ
CUY0Q0YxRTlEMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0Q0YxRTlCMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIuaCAqLzsgfTsKIAkJRjRENUY1MUQyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElu
cHV0TGlzdFZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEQ1RjUxOTIwNjA4N0EwMDAzOEJCQTggLyogV0tUZXh0SW5wdXRMaXN0
Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKQEAgLTU5NjQsOCArNTk2NCw4IEBACiAJCUY0MkQ2MzQw
MjJBMEVGRDMwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHBh
dGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDMwRTk0MTIyNDczMkE5MDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBv
bGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTWV0YVZpZXdwb3J0UG9saWN5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzBFOTQzMjI0NzNEQjgwMDVGRTA1MyAvKiBXZWJD
b250ZW50TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZW50TW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRy
YWN0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRXh0cmFjdGlvblV0aWxpdGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDM1MUI5RjI1RUVDODc4MDBENjM4
OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
SW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNDM1MUI5RjI1RUVDODc4MDBENjM4OTIgLyogVGV4dFJlY29nbml0
aW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dFJlY29nbml0aW9uVXRp
bGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDM4Q0QxQjIyNDE0MEE2
MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJw
YWdlUHJlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzOENEMUQy
MjQxNEFENjAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tXZWJwYWdlUHJlZmVyZW5jZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0MzhDRDFFMjI0MTRENDAwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlc0lu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5ODYsMTQgKzU5ODYsMTQgQEAKIAkJRjQ4
RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBL
aXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5NkE0MkYxRjU4QTI3MjAw
NEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEcmFn
RHJvcEludGVyYWN0aW9uU3RhdGUuaDsgcGF0aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5NkE0MzAxRjU4QTI3MjAwNEMx
NzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbTsgcGF0aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0
aW9uU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0OTc1Q0YxMjYyNEI4
MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ5NzVDRjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLSW1hZ2VF
eHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0lt
YWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNDk3NUNGMTI2MjRCODBBMDAzQzYyNkUgLyogV0tWaXN1YWxTZWFyY2hQcmV2aWV3
Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OTc1Q0YzMjYyNEI5MTgwMDND
NjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3Bs
YXlMaXN0SGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QTdDRTg0MjY2N0VCNEUwMDIyODY4NSAv
KiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VFeHRy
YWN0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QTdD
RTg0MjY2N0VCNEUwMDIyODY4NSAvKiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0QUM2NTVFMjJBMzE0MEUwMEEwNTYwNyAvKiBXZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW07IHBhdGggPSBpb3MvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNEIzNzhEMDIxRERCQkFCMDA5NUEzNzggLyogV2ViVW5kb1N0ZXBJRC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJVbmRvU3RlcElELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QkEz
M0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaDsg
cGF0aCA9IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdl
RXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tJ
bWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0ltYWdlRXh0
cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIu
aDsgcGF0aCA9IGlvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNEJBMzNGMTI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFn
ZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0lt
YWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0ltYWdlQW5hbHlz
aXNHZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRD
QjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVy
Q29uc2lzdGVuY3lFbmZvcmNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBH
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgcGF0aCA9IGlvcy9HZXN0dXJl
UmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjRDRjFFOUMyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lz
dGVuY3lFbmZvcmNlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTsgcGF0aCA9IGlvcy9HZXN0
dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02NzI0LDcgKzY3MjQsNiBAQAogCQkJCTQ2QUM1MzI0MjVERUQ4MUUwMDNCNTdF
QyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJCQlGNDBCQkI0MDI1
N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCAqLywK
IAkJCQkxQUM3NUExQTFCMzM2ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVjdGlvbkRpc2FibGVyLmgg
Ki8sCi0JCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIEltYWdlRXh0cmFjdGlvblVwZGF0
ZVJlc3VsdC5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlv
bnMuaCAqLywKIAkJCQk5OTlCN0VEODI1NTBFNEE4MDBGNDUwQTQgLyogSW5zcGVjdG9yRXh0ZW5z
aW9uVHlwZXMuY3BwICovLAogCQkJCTk5QkUzQjE2MjU0MzNCOTQwMEM2NTUxQyAvKiBJbnNwZWN0
b3JFeHRlbnNpb25UeXBlcy5oICovLApAQCAtNjc3Nyw2ICs2Nzc2LDcgQEAKIAkJCQk4M0Y5NjQ0
QjFGQTBGNzYyMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwICov
LAogCQkJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVS
ZWFkT25seS5oICovLAogCQkJCTFBNUU0REEzMTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tl
clN0YXRlLmggKi8sCisJCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIFRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdC5oICovLAogCQkJCTJGRDQzQjkyMUZBMDA2QTMwMDgzRjUxQyAvKiBU
b3VjaEJhck1lbnVEYXRhLmNwcCAqLywKIAkJCQkyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1MUMgLyog
VG91Y2hCYXJNZW51RGF0YS5oICovLAogCQkJCTJGODA5REQ1MUZCRDFCQzkwMDVGRTYzQSAvKiBU
b3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgKi8sCkBAIC03NzY4LDggKzc3NjgsOCBAQAogCQkJCTBG
Q0I0RTQxMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpDU2Vj
dXJpdHlPcmlnaW4ubW0gKi8sCiAJCQkJRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGln
aGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQlGNERCNTRFNTIzMTlF
NzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5tbSAq
LywKLQkJCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplci5oICovLAotCQkJCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovLAorCQkJCUY0QkEzM0YwMjU3NTdF
ODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oICovLAorCQkJ
CUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2du
aXplci5tbSAqLywKIAkJCQk5MzNERjgyRDFCM0JDMDkwMDBBRUE5RTMgLyogV0tJbWFnZVByZXZp
ZXdWaWV3Q29udHJvbGxlci5oICovLAogCQkJCTkzM0RGODJGMUIzQkMwQjQwMEFFQTlFMyAvKiBX
S0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJERDVFMTI3MjEwQURDN0Ew
MERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAqLywKQEAgLTg1MTEsOCAr
ODUxMSw2IEBACiAJCQkJRjRGRTBBM0EyNDYzMkIxMDAwMjYzMUUxIC8qIENvY29hQ29sb3IuaCAq
LywKIAkJCQlGNEZFMEEzQzI0NjM1NjY3MDAyNjMxRTEgLyogQ29jb2FGb250LmggKi8sCiAJCQkJ
NDQ4MjczNDYyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCAqLywKLQkJCQlGNDM1MUI5
RDI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggKi8sCi0JCQkJ
RjQzNTFCOUYyNUVFQzg3ODAwRDYzODkyIC8qIEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5tbSAq
LywKIAkJCQlCQ0UwOTM3NjE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0aW5nQ29udGV4dC5o
ICovLAogCQkJCUJDRTA5Mzc1MTRGQjEyOEIwMDExMzhEOSAvKiBMYXllckhvc3RpbmdDb250ZXh0
Lm1tICovLAogCQkJCUExNzk4QjNEMjIyRDk3QTIwMDA3NjRCRCAvKiBQYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlci5oICovLApAQCAtODUyMCw2ICs4NTE4LDggQEAKIAkJCQlBMTc5OEIzRjIy
MkQ5OEI2MDAwNzY0QkQgLyogUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlci5oICov
LAogCQkJCUExNzk4QjQwMjIyRDk4QjYwMDA3NjRCRCAvKiBQYXltZW50QXV0aG9yaXphdGlvblZp
ZXdDb250cm9sbGVyLm1tICovLAogCQkJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFy
ZWRNZW1vcnlDb2NvYS5jcHAgKi8sCisJCQkJRjQzNTFCOUQyNUVFQzg0QzAwRDYzODkyIC8qIFRl
eHRSZWNvZ25pdGlvblV0aWxpdGllcy5oICovLAorCQkJCUY0MzUxQjlGMjVFRUM4NzgwMEQ2Mzg5
MiAvKiBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0gKi8sCiAJCQkJQTE4MUE3OTcyMUFDQUM2
MTAwNTlBMzE2IC8qIFdlYktpdEFkZGl0aW9ucy5tbSAqLywKIAkJCQlBMUZCNjgyMjFGNkU1MTgy
MDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVyLmggKi8sCiAJCQkJQTFGQjY4MjMxRjZFNTE4MjAw
QzQzRjlGIC8qIFdLQ3Jhc2hSZXBvcnRlci5tbSAqLywKQEAgLTEwODU3LDggKzEwODU3LDYgQEAK
IAkJCQk4NjgxNjBDRjE4NzY0NTM3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5t
bSAqLywKIAkJCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oICovLAogCQkJCUNEQ0E4NUM2MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovLAotCQkJCUY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2
RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggKi8sCi0JCQkJRjQ5NzVD
RjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIu
bW0gKi8sCiAJCQkJOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlci5oICovLAogCQkJCTkzMjFENTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8sCiAJCQkJMEZDQjRFNUMxOEJCRTNEOTAwMEZDRkM5
IC8qIFdLUHJpbnRpbmdWaWV3LmggKi8sCkBAIC0xMDg3Myw2ICsxMDg3MSw4IEBACiAJCQkJMEZD
QjRFNUYxOEJCRTNEOTAwMEZDRkM5IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSAq
LywKIAkJCQkyRDI4QTQ5NTFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3ku
aCAqLywKIAkJCQkyRDI4QTQ5NjFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRl
Z3kubW0gKi8sCisJCQkJRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLVmlzdWFsU2VhcmNo
UHJldmlld0NvbnRyb2xsZXIuaCAqLywKKwkJCQlGNDk3NUNGMzI2MjRCOTE4MDAzQzYyNkUgLyog
V0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExOTc0LDcgKzExOTc0LDYgQEAK
IAkJCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NV
c2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzBDOTc0MURERDc2MDAwMDMyQ0FE
MyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUzNTFDQjE4
MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDM1
MUI5RTI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTFFQzY5RTE4NzIwOTIxMDBCOTUxRjAgLyogSW1wb3J0YW5j
ZUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMDRFRTMxMUM4M0U5ODAwOEYzMzc1
IC8qIEluamVjdGVkQnVuZGxlLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMzM0LDYgKzEyMzMzLDcg
QEAKIAkJCQk1M0NGQkJDODIyMjREMUI1MDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21wbGV0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVFNERBNDEyRDNCRDNEMDA5OUEyQkIgLyogVGV4dENo
ZWNrZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxQTBCRDcxQTQ4RTZDNjAwNTRFRjc0
IC8qIFRleHRJbnB1dFNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQzNTFCOUUyNUVFQzg0QzAw
RDYzODkyIC8qIFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFBRjI2MzkxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUYwNUQ4NzE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4NTcw
QTMyNjQ0QkVDNTAwQzA1RjcxIC8qIFRpbWVvdXQuaCBpbiBIZWFkZXJzICovLApAQCAtMTI3OTIs
OSArMTI3OTIsOCBAQAogCQkJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRh
YmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdL
SWNvbkRhdGFiYXNlQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0Y2QUMzMTJDOTFGMzQwMDhG
OUMzNSAvKiBXS0ltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEJBMzNGMjI1NzU3RTg5MDAw
QTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQ0Y2QUNBMTJDOTFGNTkwMDhGOUMzNSAvKiBXS0ltYWdlQ0cuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDk3NUNGMjI2MjRCODBBMDAz
QzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzREY4MkUxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMjFENTg2MUEzOEVFM0MwMDgwNTJCRSAv
KiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMjFE
NThBMUEzOEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggaW4gSGVhZGVy
cyAqLywKQEAgLTEyOTg2LDYgKzEyOTg1LDcgQEAKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTky
NUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjhBNDk3MUFGOTY1
QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCUY0OTc1Q0YyMjYyNEI4MEEwMDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTM2RTUxNjIzNkE2MjExMDA3NEZENUQg
LyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTM2RTUxNDIzNkE2MERDMDA3
NEZENUQgLyogV0tXZWJBcmNoaXZlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFQjE2
QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBkY2ZkN2M3NTY5N2Y5MDE3ZGU4ZmY5MWJjN2RhYWI1
MWZhMWQyYjZmLi43ZDYyZTVlOWEzOWQxNWNhYTM3NWExMWM5OTY3NDU2NzY0ZGY4OTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ2OSwxMSArMTQ2OSwxMSBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Y2hhbmdlVW5pdmVyc2FsQWNjZXNzWm9vbUZvY3VzKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHZpZQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0
SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
cmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uKQogewotICAgIG1fcGFnZS5y
ZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGVsZW1lbnQsIFdURk1vdmUoY29tcGxldGlvbikpOworICAg
IG1fcGFnZS5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGVsZW1lbnQsIFdURk1vdmUoY29tcGxldGlv
bikpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MWQ4OWE3YTY3ZGQzOWMy
YmU5Y2FlMmY2YmFkNjI0MzgwZTcxN2ZlLi42Mjg2MjAyODQyNGZiYmJlZDEzMjgxNjM1NzRiNzA1
ZDNiYzE4MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00MjMsOCArNDIzLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNoYW5nZVVuaXZlcnNhbEFjY2Vzc1pvb21Gb2N1cyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNv
cmU6OkVsZW1lbnQ+JiYpPiYmID0geyB9KSBmaW5hbDsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4mJiA9IHsg
fSkgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgbmVlZHNJbWFnZU92ZXJsYXlDb250cm9sbGVy
Rm9yU2VsZWN0aW9uUGFpbnRpbmcoKSBjb25zdCBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmMDAxYTZjY2ZhZDJkZThmNGRiMDViODE1
ZTFlMTdiNTM4OTNmNjJiLi4xZjJhYzM5YzZmMTZiMjU3NTQ1MjNiMmJiMGY4N2Q2ZTcwNTk0NmE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
NDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
RnJhbWVUcmVlTm9kZURhdGEuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oIgotI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oIgog
I2luY2x1ZGUgIkluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oIgogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIgpAQCAt
NjcsNiArNjYsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNo
YXJlYWJsZUJpdG1hcFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaCIKICNpbmNs
dWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJWaWV3
R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZUNv
bnRyb2xsZXIuaCIKQEAgLTM2MCw4ICszNjAsOCBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VFeHRyYWN0aW9u
UmVzdWx0Lmg+CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2luY2x1ZGUgPFdlYkNvcmUv
VGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQpAQCAtNjI4MSwxMyArNjI4MSwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRp
ZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIEFTU0VSVCghZnJhbWUtPmNvcmVGcmFt
ZSgpLT5sb2FkZXIoKS5zdGF0ZU1hY2hpbmUoKS5jcmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50
KCkpOwogICAgIHVuZnJlZXplTGF5ZXJUcmVlKExheWVyVHJlZUZyZWV6ZVJlYXNvbjo6UHJvY2Vz
c1N3YXApOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgZm9yIChhdXRvJiBb
ZWxlbWVudCwgY29tcGxldGlvbkhhbmRsZXJzXSA6IG1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRy
YWN0aW9uKSB7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGZvciAoYXV0byYgW2Vs
ZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyc10gOiBtX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25p
dGlvbikgewogICAgICAgICBmb3IgKGF1dG8mIGNvbXBsZXRpb25IYW5kbGVyIDogY29tcGxldGlv
bkhhbmRsZXJzKQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICB9Ci0g
ICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24uY2xlYXIoKTsKLSAgICBtX2VsZW1l
bnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jbGVhcigpOworICAgIG1fZWxlbWVudHNQZW5kaW5nVGV4
dFJlY29nbml0aW9uLmNsZWFyKCk7CisgICAgbV9lbGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25S
ZXN1bHRzLmNsZWFyKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCkBAIC03MzgzLDkgKzczODMsOSBAQCB2b2lkIFdlYlBhZ2U6OnJlbW92ZU1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1VTQUdFKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RJ
bWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYgY29tcGxldGlvbikKK3ZvaWQg
V2ViUGFnZTo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4mJiBj
b21wbGV0aW9uKQogewogICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAg
ICAgIGlmIChjb21wbGV0aW9uKQpAQCAtNzM5Myw3ICs3MzkzLDcgQEAgdm9pZCBXZWJQYWdlOjpy
ZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRp
b25IYW5kbGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2VsZW1lbnRzV2l0
aEV4dHJhY3RlZEltYWdlcy5jb250YWlucyhlbGVtZW50KSkgeworICAgIGlmIChtX2VsZW1lbnRz
V2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMoZWxlbWVudCkpIHsKICAgICAgICAg
aWYgKGNvbXBsZXRpb24pIHsKICAgICAgICAgICAgIEFTU0VSVChpczxIVE1MRWxlbWVudD4oZWxl
bWVudCkpOwogICAgICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlT3ZlcmxheUhvc3Q7CkBA
IC03NDA0LDEzICs3NDA0LDEzIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlv
bihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvIG1hdGNoSW5kZXggPSBtX2VsZW1lbnRzUGVuZGluZ0lt
YWdlRXh0cmFjdGlvbi5maW5kTWF0Y2hpbmcoWyZdIChhdXRvJiBlbGVtZW50QW5kQ29tcGxldGlv
bkhhbmRsZXJzKSB7CisgICAgYXV0byBtYXRjaEluZGV4ID0gbV9lbGVtZW50c1BlbmRpbmdUZXh0
UmVjb2duaXRpb24uZmluZE1hdGNoaW5nKFsmXSAoYXV0byYgZWxlbWVudEFuZENvbXBsZXRpb25I
YW5kbGVycykgewogICAgICAgICByZXR1cm4gZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVycy5m
aXJzdCA9PSAmZWxlbWVudDsKICAgICB9KTsKIAogICAgIGlmIChtYXRjaEluZGV4ICE9IG5vdEZv
dW5kKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQotICAgICAgICAgICAgbV9lbGVtZW50c1Bl
bmRpbmdJbWFnZUV4dHJhY3Rpb25bbWF0Y2hJbmRleF0uc2Vjb25kLmFwcGVuZChXVEZNb3ZlKGNv
bXBsZXRpb24pKTsKKyAgICAgICAgICAgIG1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9u
W21hdGNoSW5kZXhdLnNlY29uZC5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTc0NDAsMTUgKzc0NDAsMTUgQEAgdm9pZCBXZWJQYWdlOjpy
ZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRp
b25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVu
dD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNvbXBsZXRpb24pCiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0gICAgbV9l
bGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24uYXBwZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVu
dCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAgICBtX2VsZW1lbnRzUGVuZGlu
Z1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBtYWtlV2Vha1B0cihlbGVtZW50KSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcnMpIH0pOwogCiAgICAgYXV0byBpbWFnZVVSTCA9IGVsZW1lbnQuZG9j
dW1lbnQoKS5jb21wbGV0ZVVSTChyZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT51cmwoKS5zdHJp
bmcoKSk7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
cXVlc3RJbWFnZUV4dHJhY3Rpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFwSGFu
ZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9IG1ha2VX
ZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdURk1vdmUo
aW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFnZSA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgd2Vha0VsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50KV0gKGF1dG8mJiByZXN1
bHQpIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRQYWdlID0gbWFrZVJlZlB0cih3ZWJQYWdlLmdl
dCgpKTsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRQYWdlKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9u
LnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYgZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVy
cykgeworICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25p
dGlvbi5yZW1vdmVBbGxNYXRjaGluZyhbJl0gKGF1dG8mIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFu
ZGxlcnMpIHsKICAgICAgICAgICAgIGF1dG8mIFtlbGVtZW50LCBjb21wbGV0aW9uSGFuZGxlcnNd
ID0gZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVyczsKICAgICAgICAgICAgIGlmIChlbGVtZW50
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc0NjMsMTAgKzc0NjMsMTAgQEAg
dm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVs
ZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBh
dXRvJiBodG1sRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbGVtZW50PigqcHJvdGVjdGVkRWxlbWVu
dCk7Ci0gICAgICAgIGh0bWxFbGVtZW50LnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQo
V1RGTW92ZShyZXN1bHQpKTsKLSAgICAgICAgcHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50c1dpdGhF
eHRyYWN0ZWRJbWFnZXMuYWRkKGh0bWxFbGVtZW50KTsKKyAgICAgICAgaHRtbEVsZW1lbnQudXBk
YXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICBw
cm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuYWRkKGh0
bWxFbGVtZW50KTsKIAotICAgICAgICBhdXRvIG1hdGNoSW5kZXggPSBwcm90ZWN0ZWRQYWdlLT5t
X2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5maW5kTWF0Y2hpbmcoWyZdIChhdXRvJiBl
bGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzKSB7CisgICAgICAgIGF1dG8gbWF0Y2hJbmRleCA9
IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLmZpbmRNYXRj
aGluZyhbJl0gKGF1dG8mIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFuZGxlcnMpIHsKICAgICAgICAg
ICAgIHJldHVybiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzLmZpcnN0ID09ICZodG1sRWxl
bWVudDsKICAgICAgICAgfSk7CiAKQEAgLTc0NzQsMjIgKzc0NzQsMjIgQEAgdm9pZCBXZWJQYWdl
OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBs
ZXRpb25IYW5kbGUKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGltYWdlT3Zl
cmxheUhvc3QgPSBodG1sRWxlbWVudC5oYXNJbWFnZU92ZXJsYXkoKSA/IG1ha2VSZWZQdHIoaHRt
bEVsZW1lbnQpIDogbnVsbHB0cjsKLSAgICAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxl
ciA6IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uW21hdGNo
SW5kZXhdLnNlY29uZCkKKyAgICAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6IHBy
b3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uW21hdGNoSW5kZXhd
LnNlY29uZCkKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGltYWdlT3ZlcmxheUhvc3Qu
Y29weVJlZigpKTsKIAotICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVuZGluZ0lt
YWdlRXh0cmFjdGlvbi5yZW1vdmUobWF0Y2hJbmRleCk7CisgICAgICAgIHByb3RlY3RlZFBhZ2Ut
Pm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLnJlbW92ZShtYXRjaEluZGV4KTsKICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlOjp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0
KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJlc3VsdCwgY29uc3QgRWxlbWVudENvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYlBhZ2U6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9u
UmVzdWx0JiYgcmVzdWx0LCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9u
VXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGVsZW1lbnRU
b1VwZGF0ZSA9IGVsZW1lbnRGb3JDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghaXM8SFRNTEVs
ZW1lbnQ+KGVsZW1lbnRUb1VwZGF0ZSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSW1h
Z2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmVsZW1lbnRUb1VwZGF0ZSku
dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdCkpOworICAgIGRv
d25jYXN0PEhUTUxFbGVtZW50PigqZWxlbWVudFRvVXBkYXRlKS51cGRhdGVXaXRoVGV4dFJlY29n
bml0aW9uUmVzdWx0KFdURk1vdmUocmVzdWx0KSk7CiAgICAgYXV0byBoaXRUZXN0UmVzdWx0ID0g
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9p
bnQocm91bmRlZEludFBvaW50KGxvY2F0aW9uKSwgewogICAgICAgICBIaXRUZXN0UmVxdWVzdDo6
VHlwZTo6UmVhZE9ubHksCiAgICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpBY3RpdmUsCkBA
IC03NDk5LDIzICs3NDk5LDIzIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlV2l0aEltYWdlRXh0cmFj
dGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQsIGNvCiAgICAgYXV0byBu
b2RlQXRMb2NhdGlvbiA9IG1ha2VSZWZQdHIoaGl0VGVzdFJlc3VsdC5pbm5lck5vblNoYXJlZE5v
ZGUoKSk7CiAgICAgYXV0byB1cGRhdGVSZXN1bHQgPSAoWyZdIHsKICAgICAgICAgaWYgKCFub2Rl
QXRMb2NhdGlvbiB8fCBub2RlQXRMb2NhdGlvbi0+c2hhZG93SG9zdCgpICE9IGVsZW1lbnRUb1Vw
ZGF0ZSB8fCAhSFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCpub2RlQXRMb2NhdGlv
bikpCi0gICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1Rl
eHQ7CisgICAgICAgICAgICByZXR1cm4gVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0OjpOb1Rl
eHQ7CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgICAgIGlmIChmaW5kRGF0YURl
dGVjdGlvblJlc3VsdEVsZW1lbnRJbkltYWdlT3ZlcmxheShsb2NhdGlvbiwgZG93bmNhc3Q8SFRN
TEVsZW1lbnQ+KCplbGVtZW50VG9VcGRhdGUpKSkKLSAgICAgICAgICAgIHJldHVybiBJbWFnZUV4
dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcjsKKyAgICAgICAgICAgIHJldHVybiBU
ZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcjsKICNlbmRpZgogCiAgICAg
ICAgIGlmIChIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCpub2RlQXRMb2NhdGlvbikp
Ci0gICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpUZXh0Owor
ICAgICAgICAgICAgcmV0dXJuIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6VGV4dDsKIAot
ICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQ7CisgICAg
ICAgIHJldHVybiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dDsKICAgICB9KSgp
OwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIodXBkYXRlUmVzdWx0KTsKIH0KIAotI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlD
T05URVhUTUVOVSkKIHZvaWQgV2ViUGFnZTo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShG
bG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9yPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQ0ZDMzZTM3Nzc5Nzg0NjQyYzRjYzdmZWZhZjJk
MzIzM2NjOGY4ZmEuLjBlMzQxYjYwY2M4Mjk1MTQ1ZGJmYTViNTNlNDA4ODliNWQzZDk4ZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMxMCw3ICsz
MTAsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIAogZW51bSBjbGFzcyBG
aW5kT3B0aW9ucyA6IHVpbnQxNl90OwogZW51bSBjbGFzcyBEcmFnQ29udHJvbGxlckFjdGlvbiA6
IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4
X3Q7CitlbnVtIGNsYXNzIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSA6IHVpbnQ4X3Q7CiAKIHN0cnVj
dCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CkBAIC0xNDAzLDkgKzE0MDMsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmKTsKLSAgICB2b2lk
IHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9u
UmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0
aW9uVXBkYXRlUmVzdWx0KT4mJik7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZv
aWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYpOworICAgIHZvaWQgdXBk
YXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1
bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25V
cGRhdGVSZXN1bHQpPiYmKTsKICNlbmRpZgogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9VSV9TRVJW
SUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMzQ3LDkgKzIzNDcsOSBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFdlYWtQdHI8V2ViQ29yZTo6SFRNTEVs
ZW1lbnQ+LCBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxl
bWVudD4mJik+Pj4+IG1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOwotICAgIFdlYWtI
YXNoU2V0PFdlYkNvcmU6OkhUTUxFbGVtZW50PiBtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdl
czsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgVmVjdG9yPHN0ZDo6cGFpcjxXZWFr
UHRyPFdlYkNvcmU6OkhUTUxFbGVtZW50PiwgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPj4+PiBtX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNv
Z25pdGlvbjsKKyAgICBXZWFrSGFzaFNldDxXZWJDb3JlOjpIVE1MRWxlbWVudD4gbV9lbGVtZW50
c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRzOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCWFIp
ICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggODNmZTU1YjBjNDA0YTA5ZWI2ZjQ3Nzgz
OGY4NmYxODA1NmNlYjhlYi4uNTYxOGEzNDNkZTRhNTc0NmI1OWNiYjBmMTcxNGFmOGM3NTJmYzM0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC02NDIsNyArNjQyLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBJbnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBVcGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0KHN0cnVjdCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0LCBzdHJ1Y3Qg
V2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudCwgV2ViQ29yZTo6RmxvYXRQb2ludCBsb2Nh
dGlvbikgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3Vs
dCByZXN1bHQpIEFzeW5jCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFVwZGF0ZVdp
dGhUZXh0UmVjb2duaXRpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJl
c3VsdCByZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVtZW50LCBXZWJD
b3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6VGV4dFJl
Y29nbml0aW9uVXBkYXRlUmVzdWx0IHJlc3VsdCkgQXN5bmMKICNlbmRpZgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMzg4OWQyNjcw
OWM2N2RhNDA0Mjc1MjVhY2NmZjQ3MjJjMjBiMzc0Ni4uZTNjNzFhZmMzMzFmYWU3NWMxY2JhZTM3
MGE5NDRlMzFiNjhiOGQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCkBAIC02MTYsNyArNjE2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
TlNJbnRlZ2VyPiB0b1RhZyhXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAg
ICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1cm4gV2Vi
TWVudUl0ZW1UYWdUcmFuc2xhdGU7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9t
VGFnIC4uLiBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY3MDhhMzkzZDEwNWE1NThjYjBlNjQ0
NmRiMGQyNTFlZTY3MzQwNTkuLjcwZmE1ZTJmMDA3YzNjZWFlNzA5MDgzNmE3ZTllZmIxZTY3MGRi
YTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgSU1BR0VfRVhUUkFDVElPTiB3aXRo
IFZJU1VBTF9JTlRFTExJR0VOQ0UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3QubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5t
bToKKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ29jb2FdIEZpbmQtaW4tcGFnZSBzaG91bGQgbWF0Y2ggdGV4dCBpbnNpZGUg
aW1hZ2Ugb3ZlcmxheXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5tbQppbmRleCA2Y2JmYzg1N2ZjZWY0MzQ1ZjJl
NWU3ZDg3NDZmMjU1Y2RhMmE1ZjE4Li43YjI1MDI2ZTlmYmUyZDEzOGVhYTM1YmFhZTRlMTUwYWRj
YzEwY2M1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Jbmpl
Y3RlZEJ1bmRsZUhpdFRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0Lm1tCkBAIC03Nyw3ICs3Nyw3IEBAIFRFU1QoSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0LCBUZXh0UGFyYWdyYXBoKQogICAgIEVYUEVDVF9GQUxTRShbd2ViVmll
dyBoYXNTZWxlY3RhYmxlVGV4dEF0OkNHUG9pbnRNYWtlKDMwMCwgMzAwKV0pOwogfQogCi0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiBU
RVNUKEluamVjdGVkQnVuZGxlSGl0VGVzdCwgSW1hZ2VPdmVybGF5KQogewpAQCAtODksNiArODks
NiBAQCBURVNUKEluamVjdGVkQnVuZGxlSGl0VGVzdCwgSW1hZ2VPdmVybGF5KQogICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyBoYXNTZWxlY3RhYmxlVGV4dEF0OkNHUG9pbnRNYWtlKDQwMCwgMzAw
KV0pOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8g
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmRE
cm9wVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdB
bmREcm9wVGVzdHMubW0KaW5kZXggZTkzOWNkZDY5ZTk4YzM2MmE4ZGE4N2Y1YjUzYjBmNTg0NjRh
NTJiNi4uODFhNWVkYzA0ZGQ0ZjdmZGY1MWFhOTNkOTgxMDFiNjcwN2M2NDUxZCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3Rz
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERy
b3BUZXN0cy5tbQpAQCAtMzg1LDcgKzM4NSw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgQ29s
b3JJbnB1dEV2ZW50cykKIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQog
CiBURVNUKERyYWdBbmREcm9wVGVzdHMsIERyYWdFbGVtZW50V2l0aEltYWdlT3ZlcmxheSkKIHsK
QEAgLTQzMiw2ICs0MzIsNiBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIERyYWdTZWxlY3RlZFRl
eHRJbkltYWdlT3ZlcmxheSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoZHJhZ2dlZFRleHQuZ2V0KCks
ICJmb29iYXIiKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NV
UFBPUlQpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbQppbmRleCAyOGY5OGI5MTdkZjE1
NjU0YjBmNzE1NTcxZDhjMjBiZWEyODU1ZTZlLi5mYzViMjRmYzJiY2UxMjZlNThlNDAyMThiMmE5
ZTUwOTc5Njg4MmNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0ZpbmRJblBhZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9GaW5kSW5QYWdlLm1tCkBAIC0yOTYsNyArMjk2LDcgQEAgVEVTVChXZWJLaXQsIEZp
bmRBbmRSZXBsYWNlKQogICAgIEVYUEVDVF9XS19TVFJFUSgiaGkgaGkiLCBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCJdKTsK
IH0KIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKIAogVEVTVChXZWJLaXQsIEZpbmRUZXh0SW5JbWFnZU92ZXJsYXkpCiB7CkBAIC0zMTgs
NiArMzE4LDYgQEAgVEVTVChXZWJLaXQsIEZpbmRUZXh0SW5JbWFnZU92ZXJsYXkpCiAgICAgfQog
fQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQogCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudFZp
ZXdFZGl0aW5nQWN0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCmluZGV4IGJiNTczZTM5ZGVjZDQyMzc5
MWRhNGI3YzU2MzJiYzYwOWFmM2M1NGIuLjM0OTgyMTMyMjhiMjQ4ZjU1YTkyZmU2NTZkNGExOTdl
NWQ1NzhlNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCkBAIC03
Myw3ICs3Myw3IEBAIFRFU1QoV2ViS2l0LCBJbnZva2VTaGFyZVdpdGhvdXRTZWxlY3Rpb24pCiAg
ICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwogfQogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShBUFBfSElHSExJR0hUUykKIAogVEVTVChXZWJL
aXQsIEFwcEhpZ2hsaWdodHNJbkltYWdlT3ZlcmxheXMpCiB7CkBAIC05OSw2ICs5OSw2IEBAIFRF
U1QoV2ViS2l0LCBBcHBIaWdobGlnaHRzSW5JbWFnZU92ZXJsYXlzKQogICAgIEVYUEVDVF9FUShb
Y29udGVudFZpZXcgdGFyZ2V0Rm9yQWN0aW9uOmNyZWF0ZUhpZ2hsaWdodEluTmV3R3JvdXBXaXRo
UmFuZ2VTZWxlY3RvciB3aXRoU2VuZGVyOm5pbF0sIGNvbnRlbnRWaWV3KTsKIH0KIAotI2VuZGlm
IC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisj
ZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMp
CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbQppbmRleCA5ZDQ2MmEw
MTBhODNmZGQ4OWFlMDQyOWY2ODgyOGEzOGE4NzJkOTA2Li42ZDlkZmRiNmE3MTAzZDZiNmI1Y2Ew
YTA2ZjFiYWFlYzY5ZTA4YjBkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9JbW1lZGlhdGVBY3Rpb25UZXN0cy5tbQpAQCAtMTI1LDcgKzEyNSw3IEBAIFRFU1Qo
SW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJCb2R5KQogICAgIEVYUEVD
VF9FUShbaGl0VGVzdFJlc3VsdCBsb29rdXBUZXh0XS5sZW5ndGgsIDBVKTsKIH0KIAotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogVEVT
VChJbW1lZGlhdGVBY3Rpb25UZXN0cywgSW1tZWRpYXRlQWN0aW9uT3ZlckltYWdlT3ZlcmxheSkK
IHsKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUKEltbWVkaWF0ZUFjdGlvblRlc3RzLCBJbW1lZGlh
dGVBY3Rpb25PdmVySW1hZ2VPdmVybGF5KQogICAgIEVYUEVDVF9XS19TVFJFUShbaGl0VGVzdFJl
c3VsdCBsb29rdXBUZXh0XSwgImZvb2JhciIpOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YzdiODM3OTBjZjNiZmFjNTc5MTA1YzZj
OTgzM2E3OGYxYTZhMzQwLi42MzA2OGU2NDNlOGU4NTU3NTFkM2NiZTQxMTdhMzE5NWNhZDE2ZTcz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9y
IExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODkzMzY4ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgYGZhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb25gIHRvIGBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uYC4KKwor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3Zlcmxh
eS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21h
dGNoLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNpYy1p
bWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2stbGluay13aXRoLWltYWdl
LW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMt
aWRlbXBvdGVudC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVu
dC1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9p
bWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVh
dGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0
ZWQtbWlzbWF0Y2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXpl
LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1h
Z2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9u
LXN0eWxlcy1leHBlY3RlZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1l
eHBlY3RlZC5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1h
Z2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNl
bGVjdGlvbi1zdHlsZXMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVz
Y2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVj
dGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1p
bi1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRt
bC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29y
ZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92
ZXJsYXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50
eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdv
cmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1h
Z2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVj
dC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3Rz
LWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5
Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1p
bWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1p
bWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10
ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRo
LWNvbnRleHQtbWVudS5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRl
bXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGln
aHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQt
bWVudS1pdGVtcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGln
aHQtbWVudS1pdGVtcy5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0
LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRtbC4KKyAgICAgICAgKiBm
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRo
LW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1t
b3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9t
YWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTIuaHRtbC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13
aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qt
aW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0
LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNr
Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0
LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRt
bC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1h
Z2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdp
dGgtbW91c2UtZHJhZy5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQu
aHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qt
cm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10
cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXkt
ZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXku
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJh
bnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sLgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWlu
LXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFy
ZW50LWltYWdlLW92ZXJsYXkuaHRtbC4KKwogMjAyMS0wNi0wNyAgQWRpdHlhIEtlZXJ0aGkgIDxh
a2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVW5leHBlY3RlZCBzY3JvbGxpbmcg
d2hlbiBzd2l0Y2hpbmcgZm9jdXMgZnJvbSBhIHRleHQgaW5wdXQgdG8gYSBzZWxlY3QgZWxlbWVu
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9i
YXNpYy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYzOTNhOWQyYmZl
YzJmYjBhZmE1OGMwNzI4MWRlYjIzNjFhNzY4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGlt
ZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdlLW92
ZXJsYXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlhMGNlNjE4MDZlOGVh
M2EzYjM4NGVlYzVmODY5MDY4MzhjNmM0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJjZXMv
Z3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1n
Iik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAg
ewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwK
LSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAg
ICAgICAgIGNoaWxkcmVuOiBbewotICAgICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAotICAg
ICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0g
ICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAot
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSks
Ci0gICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MSksCi0gICAgICAgICAgICB9XSwKLSAgICAgICAgfQotICAgIF0pOwotICAgIGludGVybmFscy5z
aGFkb3dSb290KGltYWdlKS5nZXRFbGVtZW50QnlJZCgiaW1hZ2Utb3ZlcmxheSIpLnN0eWxlLmNv
bG9yID0gImJsYWNrIjsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2NsaWNrLWxpbmst
d2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDQ4N2JhNGRmMzVhNWE2ZWViMDYxMDg2OTQ5NzJhMTYwZWNmZTk3NS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotUEFTUyBjbGlja0NvdW50IGJl
Y2FtZSAyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9j
bGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTBlODZlZjg3Y2QxNjczMzJjMGVhNjM2ZDVm
MTdhOGI5MzA5NjM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13
aXRoLWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsK
LSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci0K
LWEgewotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgotICAgIDxpbWcgc3JjPSIu
Li9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9hPgotPHNjcmlwdD4KLWpz
VGVzdElzQXN5bmMgPSB0cnVlOwotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+
IHsKLSAgICBjbGlja0NvdW50ID0gMDsKLQotICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImEi
KS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChldmVudCkgPT4gewotICAgICAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBjbGlja0NvdW50Kys7Ci0gICAgfSk7Ci0KLSAgICBp
bnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjI1KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
LjI1KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUpLAotICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCi0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotCi0gICAg
aW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1n
IiksIFsKLSAgICAgICAgewotICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKLSAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKLSAgICAgICAgfQotICAgIF0pOwot
Ci0gICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxMDAsIDUwKTsKLSAgICBhd2FpdCBVSUhl
bHBlci53YWl0Rm9yRG91YmxlVGFwRGVsYXkoKTsKLSAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0
ZUF0KDMwMCwgMzAwKTsKLQotICAgIHNob3VsZEJlY29tZUVxdWFsKCJjbGlja0NvdW50IiwgIjIi
LCBmaW5pc2hKU1Rlc3QpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lt
YWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNWU2NzMwNWExMDA5Njc3NzJlZjk3MmI1Y2YyNmNkOGRh
MTBkNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0
aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5jaGlsZEVsZW1lbnRDb3VudCBp
cyAyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFn
ZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90
ZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2Y2NkZmI2MzNlOWIyNGU0
M2YwNGMzZjk4ZmYzMDJmNTNmZGI5MjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9p
bWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08aW1nIHNyYz0i
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgKytpKSB7Ci0gICAgICAg
IGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwK
LSAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSks
Ci0gICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAx
KSwKLSAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAxKSwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkhlbGxvIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAu
NSksCi0gICAgICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBdLAotICAgICAgICAgICAgfQotICAgICAgICBdKTsKLSAgICB9Ci0gICAgc2hvdWxk
QmUoImludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5jaGlsZEVsZW1lbnRDb3VudCIsICIyIik7
Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1p
c21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lt
YWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS1leHBlY3RlZC1taXNtYXRj
aC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YWNhMWIzMmRiY2M1NzU4ZGJh
NmYxODMwOWVlOTNhZTUyZDNmMGZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1h
Z2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNo
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIGZvbnQtc2l6ZTogMDsKLX0KLTwvc3R5
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQw
MC5wbmciPjwvaW1nPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
aW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Ut
d2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MTRiMDU2NDk5NjgxNGRmMzg1ZDBiOGVlMjIyYTk5ODlkYjU1MDE3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXpl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIGZvbnQtc2l6ZTogMDsKLX0KLTwvc3R5
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQw
MC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7
Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50
ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAg
ICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgIGNoaWxk
cmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkhl
bGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0gICAgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1h
Z2UpLmdldEVsZW1lbnRCeUlkKCJpbWFnZS1vdmVybGF5Iikuc3R5bGUuY29sb3IgPSAiYmxhY2si
OwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0
aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGVhNTI0NTYwOTk2NGFiYzk0ZDc4NmU4MDhhNTU4OGFlZTRiZjc4NWMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxl
cy1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci0KLTo6c2VsZWN0aW9uIHsKLSAg
ICBjb2xvcjogcmVkOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdl
LCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAu
NSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNl
bGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5x
dWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOwotfSk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0
aC1zZWxlY3Rpb24tc3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1OTUyYjVjYjM2ZjIwYWEzNWViZTBhNGNjZmE1MTdh
NzQ2NWExMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdp
dGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgot
PC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5n
Ij48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAg
IGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJu
YWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAot
ICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCks
Ci0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4o
aW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5
LXRleHQiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
aW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzExZTRjNzMyNzhjNzVlNTYwN2E5MWQ0
MTdkZjA4MmY4ZmQxYzQ5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2Fs
ZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBBU1Mgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGlu
Z0FsbC5sZW5ndGggaXMgMQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNj
ZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmNDU2MmI2MjBiM2Q3NTc2NTRhNDZmYjVjMjY5MjAwOGEyYWRmMjc4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0
cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1ib2R5LCBodG1sIHsKLSAg
ICBtYXJnaW46IDA7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotanNU
ZXN0SXNBc3luYyA9IHRydWU7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9
PiB7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIiksIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuMSwgMC4zKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC4zLCAwLjEpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjQsIDAuMiksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4yLCAwLjQpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiQUIiLAotICAgICAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjMpLAotICAg
ICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC4y
KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjMsIDAuMyksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjIsIDAuNCksCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiQ0QiLAotICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjIpLAotICAgICAgICAgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4xKSwKLSAgICAg
ICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAu
MiksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjMsIDAuMyksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9
Ci0gICAgXSk7Ci0KLSAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDgwLCAxMjAp
OwotICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwotICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKLSAgICBhd2FpdCBVSUhlbHBlci5lbnN1
cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKLSAgICBzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5n
QWxsID0gYXdhaXQgVUlIZWxwZXIuZ2V0VUlTZWxlY3Rpb25WaWV3UmVjdHMoKTsKLSAgICBzaG91
bGRCZSgic2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGgiLCAiMSIpOwotICAg
IGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mv
cmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWRlMWE3MmIyMzczYmE2Y2NhZTBlZGZlYzI1NjM5MzhjMTY5OThm
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1Q
QVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCi1QQVNTIERpc21pc3NlZCBzZWxlY3Rpb24K
LVBBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJs
YXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jl
c2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ODUwMmNmNDU1NmY4NjI2NTNmZmVhZjZhNzdiZmEyZTAwMTc0MDQwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zlcmxh
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5
PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08
c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
YXN5bmMgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlt
ZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogImZvbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0gICAgYXdhaXQgVUlIZWxwZXIubG9uZ1By
ZXNzQXRQb2ludCgyMDAsIDEwMCk7Ci0gICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBl
ci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVj
dHMubGVuZ3RoIiwgIjEiKTsKLQotICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMjAwLCAz
MDApOwotICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0Rpc2FwcGVhcigpOwot
ICAgIHRlc3RQYXNzZWQoIkRpc21pc3NlZCBzZWxlY3Rpb24iKTsKLQotICAgIGF3YWl0IFVJSGVs
cGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCAxMDApOwotICAgIHNlbGVjdGlvblJlY3RzID0gYXdh
aXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUoInNl
bGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mv
c2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVy
bGF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQxYWE0MmY2
ZTY5MjQzYWI3NDEyYzA4YzM2Nzk2YzI2MTU2ZTNiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMg
MQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Nl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4t
aW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM0MWFhNDJmNmU2OTI0M2FiNzQxMmMwOGMzNjc5NmMyNjE1NmUzYjcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zl
cmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAg
QEAKLVBBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVy
bGF5LWluc2lkZS1saW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZjQ2YzlkNTk0Mjg2NWZlNjA4OGM1ZDU3
NzllZjQyM2IxNmRmMDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0
LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHls
ZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0
OiAwOwotfQotCi1hIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci19Ci08L3N0eWxlPgot
PC9oZWFkPgotPGJvZHk+Ci08YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjU0MzIxIiBvbmNsaWNr
PSJldmVudC5wcmV2ZW50RGVmYXVsdCgpIj4KLSAgICA8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYT4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgbGV0
IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmlu
c3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAg
ICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAg
ICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
LSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjI1KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDAuMjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAg
ICAgIH0KLSAgICBdKTsKLSAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwg
NTApOwotICAgIHNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlv
blRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7
Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVj
dC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzE2MjM3Y2M4NWQxMjRlZDYxMTYyY2E3OTM4NDk5YjUzNTRjOWNmNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAg
dG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1n
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+
Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAo
KSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0g
ICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hp
bGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
aGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAid29ybGQiLAotICAgICAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAg
ICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAot
ICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0p
OwotCi0gICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDMwMCk7Ci0gICAg
c2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIo
KTsKLSAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKLSAgICBmaW5p
c2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2Vs
ZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5NzJkNjRjMWZlMDU1Njg4MTc0YjU2ZDZjMDk2MTRmMWI4YWMxMmI3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1p
bWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAot
UEFTUyBpbml0aWFsU2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKLVBBU1Mgc2VsZWN0aW9uUmVj
dHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGggaXMgNAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVy
bGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9z
ZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjNDdiNTM0ZmYwZDNkZmI1OTNmYjBlMDlkNzI1Mjg0ZTAyZTJkNDJmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1v
dmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2lt
Zz4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIGFzeW5jICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwot
ICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4x
LCAwLjI1KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4y
NSwgMC4xKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC4zNSwgMC4yKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjIsIDAuMzUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAib25lIiwKLSAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4yNSksCi0gICAgICAgICAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKLSAgICAg
ICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjM1LCAw
LjIpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC4yLCAwLjM1KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC4zLCAwLjQ1KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC40NSwgMC4zKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41NSwgMC40KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjQsIDAuNTUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAidHdvIiwKLSAgICAgICAgICAgICAg
ICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC40NSksCi0gICAgICAg
ICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwK
LSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjU1LCAwLjQpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC40LCAwLjU1KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC41LCAwLjY1KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC42NSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC43NSwgMC42KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjYsIDAuNzUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAidGhyZWUiLAotICAgICAg
ICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwK
LSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjY1
LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuNzUsIDAuNiksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjcsIDAuODUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjg1LCAwLjcpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAwLjgpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuOCwgMC45NSksCi0gICAgICAgICAgICBjaGlsZHJlbjog
WwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb3VyIiwK
LSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNywg
MC44NSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC44NSwgMC43KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjk1LCAwLjgpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44LCAwLjk1KSwKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBhd2FpdCBVSUhlbHBlci5s
b25nUHJlc3NBdFBvaW50KDkwLCA5MCk7Ci0gICAgaW5pdGlhbFNlbGVjdGlvblJlY3RzID0gYXdh
aXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUoImlu
aXRpYWxTZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOwotCi0gICAgdGVzdFJ1bm5lci5leGVj
Q29tbWFuZCgiU2VsZWN0QWxsIik7Ci0gICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0
aW9uVXBkYXRlKCk7Ci0gICAgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbCA9IGF3YWl0
IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1JlY3RzKCk7Ci0gICAgc2hvdWxkQmUoInNlbGVj
dGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIiwgIjQiKTsKLQotICAgIGZpbmlzaEpT
VGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21h
Yy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwMjM0ZWMxYWE0NzA5MzAyN2FkNWViYjY2
MDA3NmJmNmQ5MTg4NzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1p
bWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNSArMCwwIEBACi1QQVNTIGVkaXRvci50ZXh0Q29udGVudCBpcyAiZm9vYmFy
IgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2Nv
cHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4
dC13aXRoLWNvbnRleHQtbWVudS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
YjFmZDgxZTIzYTFlMjNjZGYzMTAyZWUzODc5OGMxMzIzZjM0OGQyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1t
ZW51Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci0KLWRpdltjb250ZW50ZWRpdGFibGVdIHsK
LSAgICBib3JkZXI6IDFweCBzb2xpZCB0b21hdG87Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJv
ZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4K
LTxkaXYgY29udGVudGVkaXRhYmxlPjwvZGl2PgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
aW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAg
ICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAot
ICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAg
ICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IHRleHQgOiAiZm9vYmFyIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oNTAsIDE1MCk7Ci0KLSAgICBmb3IgKGxldCBpdGVtIG9mIGV2ZW50U2VuZGVyLmNv
bnRleHRDbGljaygpKSB7Ci0gICAgICAgIGlmIChpdGVtLnRpdGxlID09PSAiQ29weSIpCi0gICAg
ICAgICAgICBpdGVtLmNsaWNrKCk7Ci0gICAgfQotCi0gICAgZWRpdG9yID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiZGl2W2NvbnRlbnRlZGl0YWJsZV0iKTsKLSAgICBlZGl0b3IuZm9jdXMoKTsK
LSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKLQotICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgImZvb2JhciIpOwotICAgIGVkaXRvci5yZW1v
dmUoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVu
dS1pdGVtcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51
LWl0ZW1zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhjMGU3
YjM3MWRiYzFhZWY4Mjc4NTM2ZTZkMjBlZWUzZWU3YjI1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1t
ZW51LWl0ZW1zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotUEFT
UyBmb3VuZFRpdGxlMSBpcyB0cnVlCi1QQVNTIGZvdW5kVGl0bGUyIGlzIHRydWUKLVBBU1MgU2Vs
ZWN0ZWQgaW1hZ2Ugb3ZlcmxheQotUEFTUyBmb3VuZFRpdGxlMSBpcyBmYWxzZQotUEFTUyBmb3Vu
ZFRpdGxlMiBpcyBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1l
bnUtaXRlbXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24v
bWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJiYWI1OTg0ZjM4ODI0NTI3OTFk
MDhiOTJiZDdhOTY1Yjk0NDQ3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9p
bWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBhcHBIaWdobGlnaHRzRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzdHlsZT4KLWJvZHksIGh0bWwgewotICAgIG1hcmdpbjogMDsKLX0KLQotcCB7
Ci0gICAgZm9udC1zaXplOiAzMnB4OwotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0KLTwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4t
NDAweDQwMC5wbmciPjwvaW1nPgotPHA+SGVsbG8gd29ybGQgdGhpcyBpcyBhIHRlc3QuPC9wPgot
PC9ib2R5PgotPHNjcmlwdD4KLXZhciBmb3VuZFRpdGxlMTsKLXZhciBmb3VuZFRpdGxlMjsKLQot
ZnVuY3Rpb24gY2hlY2tGb3JBcHBIaWdobGlnaHRDb250ZXh0TWVudUl0ZW1zKCkgewotICAgIGZv
dW5kVGl0bGUxID0gZmFsc2U7Ci0gICAgZm91bmRUaXRsZTIgPSBmYWxzZTsKLQotICAgIGxldCBb
dGl0bGUxLCB0aXRsZTJdID0gaW50ZXJuYWxzLmFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRlbVRp
dGxlczsKLSAgICBmb3IgKGxldCBpdGVtIG9mIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpKSB7
Ci0gICAgICAgIGlmIChpdGVtLnRpdGxlID09PSB0aXRsZTEpCi0gICAgICAgICAgICBmb3VuZFRp
dGxlMSA9IHRydWU7Ci0KLSAgICAgICAgaWYgKGl0ZW0udGl0bGUgPT09IHRpdGxlMikKLSAgICAg
ICAgICAgIGZvdW5kVGl0bGUyID0gdHJ1ZTsKLSAgICB9Ci19Ci0KLWFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJw
Iik7Ci0gICAgbGV0IHRleHRSZWN0ID0gdGV4dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLQotICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiZm9vYmFyIiwKLSAg
ICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAot
ICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAp
LAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9
Ci0gICAgXSk7Ci0KLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbih0ZXh0KTsK
LSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0ZXh0UmVjdC5sZWZ0ICsgdGV4dFJlY3Qud2lk
dGggLyAyLCB0ZXh0UmVjdC50b3AgKyB0ZXh0UmVjdC5oZWlnaHQgLyAyKTsKLSAgICBjaGVja0Zv
ckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRlbXMoKTsKLSAgICBzaG91bGRCZVRydWUoImZvdW5k
VGl0bGUxIik7Ci0gICAgc2hvdWxkQmVUcnVlKCJmb3VuZFRpdGxlMiIpOwotCi0gICAgZ2V0U2Vs
ZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1
ZXJ5U2VsZWN0b3IoImRpdiNpbWFnZS1vdmVybGF5IikpOwotICAgIHRlc3RQYXNzZWQoIlNlbGVj
dGVkIGltYWdlIG92ZXJsYXkiKQotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwMCwgMjAw
KTsKLSAgICBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRlbXMoKTsKLSAgICBzaG91
bGRCZUZhbHNlKCJmb3VuZFRpdGxlMSIpOwotICAgIHNob3VsZEJlRmFsc2UoImZvdW5kVGl0bGUy
Iik7Ci0KLSAgICB0ZXh0LnJlbW92ZSgpOwotfSk7Ci08L3NjcmlwdD4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgt
bW91c2UtZHJhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJh
Zy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzZTVlZWVkYmYx
YjQzNWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXkt
aW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3Vz
ZS1kcmFnLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhNGVkYzg5MDRhYTE3
Yjg4Nzg1YjI3ODdjNDRhNzM5MTcxNzM2NzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1vdXNlLWRyYWcuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6
IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxhIGhyZWY9
Imh0dHA6Ly9sb2NhbGhvc3Q6NTQzMjEiPgotICAgIDxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
Z3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPC9hPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAg
ICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSks
Ci0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAot
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAg
ICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBpbWFnZS5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKLSAgICAgICAgdGVzdEZhaWxlZCgiT2JzZXJ2
ZWQgY2xpY2suIik7Ci0gICAgfSk7Ci0KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwg
MzAwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygzNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfSk7Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJs
YXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWVmN2YzNjNkMjk2NDhhZTg4MDE2NjFkYTU5MTA5MDM3NWM1YWY2YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWctMi1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgot
PC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAu
cG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewot
ICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBb
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29y
bGQxIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAuNSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMiIsCi0g
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAp
LAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjUsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDMiLAotICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAg
ICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0g
ICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjUsIDEpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQot
ICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxz
LnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoImRpdiNpbWFnZS1vdmVybGF5IikpOwot
fSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJs
YXktd2l0aC1tb3VzZS1kcmFnLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTZmZWNlMzQ2MjQyMWU5NGRjZWRhZTgyZmY5NjkxYTI3OGIxMjY5NS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0g
ICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08
aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3Jp
cHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGludGVybmFscy5pbnN0
YWxsSW1hZ2VPdmVybGF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBbCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogImhlbGxvd29ybGQxIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJo
ZWxsb3dvcmxkMiIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDMi
LAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAs
IDUwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygzNTAsIDM1MCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfSk7Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzZTVlZWVkYmYxYjQz
NWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUt
Y2xpY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdl
LW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVy
bGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGExODczYzk4MTkyMzIzYzMxMTAzMjBjYmQzZWViZThmMGYzMmJh
MjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJs
YXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c3R5
bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVm
dDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAg
ICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSks
Ci0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAot
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAg
ICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBpbWFnZS5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKLSAgICAgICAgdGVzdEZhaWxlZCgiT2JzZXJ2
ZWQgY2xpY2suIik7Ci0gICAgfSk7Ci0KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwg
MzAwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygzNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfSk7Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0YzcxNjI2MzVk
OWE2NmI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1v
dmVybGF5LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0
eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxl
ZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRy
YWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3Nl
bGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyNTRjMzYwNmFkNDljYWI0NjU0Zjg4YWU5ZWYxNGE4M2EyYTllZmI3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdp
dGgtbW91c2UtZHJhZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48
L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxl
dCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5p
bnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0g
ICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41
KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAg
fQotICAgIF0pOwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDMwMCk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUw
LCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQt
dHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3ZTg5ODhiYjgwOTU2ZGQ2MjQ1MzhkOTY4OGEzZGNmNDJlNDhkMTU5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92
ZXJsYXktZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWJvZHksIGh0bWwgewotICAgIG1h
cmdpbjogMDsKLX0KLQotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAw
OwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci19
Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dy
ZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qt
cm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDdiNjc3ZDIwMmNmYzFkOGJkZTZiYWVkMTZjMTdmOTEyOTgxOTEyZWYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJl
bnQtaW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLmJhY2sgewotICAgIGJhY2tn
cm91bmQtc2l6ZTogY29udGFpbjsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nKTsKLX0KLQotLmZyb250IHsKLSAgICBvcGFjaXR5OiAw
OwotfQotCi1ib2R5LCBodG1sIHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLS5mcm9udCwgLmJhY2sg
ewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAg
ICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXYgY2xhc3M9ImJhY2siPjwvZGl2PgotPGltZyBjbGFzcz0iZnJvbnQiIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxkaXYgY2xhc3M9
ImJhciI+PC9kaXY+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsK
LSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRl
cm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxLjUpLAotICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLjUsIDAuNSksCi0gICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDIsIDEpLAotICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDIpLAotICAgICAgICAgICAgY2hpbGRy
ZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVs
bG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC41LCAxLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEuNSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgyLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDIpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFn
ZS1vdmVybGF5LXRleHQiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3Zlcmxh
eS1leHBlY3RlZC1taXNtYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
N2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0YzcxNjI2MzVkOWE2NmI2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5
LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5w
bmciPjwvaW1nPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2Fi
bGUtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTNh
MDExZDM4YzQxNWYxYzI3YzU3ZmIzNzQ0MTFkNTc4MWI2ZDRlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0
b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpbWcg
ZHJhZ2dhYmxlPSJ0cnVlIiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+
PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBj
b25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFs
cy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAg
ICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAot
ICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAp
LAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAg
ICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50
ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRl
eHQiKSk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0
ZWQtbWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJjZGFiOTBj
ZGEwNmNiNGI1YWEwNDQxYmIyYjkzNDhjNjhmNDYwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVj
dGVkLW1pc21hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1ib2R5LCBodG1sIHsKLSAgICBtYXJn
aW46IDA7Ci19Ci0KLWRpdiB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsK
LSAgICBsZWZ0OiAwOwotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAg
IGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4v
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nKTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxkaXY+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQt
aW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMjEwZDJkOTdjZjBiNzg5YWE0NzZhZTQ0MzJmMDM4NDlhYTMxN2NkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWlt
YWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS5iYWNrIHsKLSAgICBiYWNrZ3JvdW5k
LXNpemU6IGNvbnRhaW47Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNl
cy9ncmVlbi00MDB4NDAwLnBuZyk7Ci19Ci0KLS5mcm9udCB7Ci0gICAgb3BhY2l0eTogMDsKLX0K
LQotYm9keSwgaHRtbCB7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0uZnJvbnQsIC5iYWNrIHsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lk
dGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJv
ZHk+Ci08ZGl2IGNsYXNzPSJiYWNrIj48L2Rpdj4KLTxpbWcgY2xhc3M9ImZyb250IiBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFn
ZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNl
bGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5x
dWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOwotfSk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWltYWdlLW92ZXJs
YXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM2MzkzYTlkMmJmZWMyZmIwYWZhNThjMDcyODFkZWIyMzYxYTc2ODkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jh
c2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApAQCAtMCwwICsxLDYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMv
Z3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTlhMGNlNjE4MDZlOGVhM2EzYjM4NGVlYzVmODY5MDY4MzhjNmM0NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1h
Z2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1n
PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGlt
YWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3Rh
bGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbeworICAg
ICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8iLAorICAgICAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgYm90dG9t
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICB9XSwKKyAg
ICAgICAgfQorICAgIF0pOworICAgIGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5nZXRFbGVt
ZW50QnlJZCgiaW1hZ2Utb3ZlcmxheSIpLnN0eWxlLmNvbG9yID0gImJsYWNrIjsKK30pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9jbGljay1s
aW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NDg3YmE0ZGYzNWE1YTZlZWIwNjEwODY5NDk3MmExNjBlY2Zl
OTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIGNsaWNrQ291bnQgYmVjYW1lIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxp
bmstd2l0aC1pbWFnZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEwZTg2ZWY4N2NkMTY3MzMy
YzBlYTYzNmQ1ZjE3YThiOTMwOTYzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXku
aHRtbApAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
Ij4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRv
cDogMDsKKyAgICBsZWZ0OiAwOworfQorCithIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0
OjU0MzIxIj4KKyAgICA8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48
L2ltZz4KKzwvYT4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2FkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgY2xpY2tDb3VudCA9IDA7CisKKyAgICBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJhIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoZXZl
bnQpID0+IHsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgY2xpY2tD
b3VudCsrOworICAgIH0pOworCisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiksIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisg
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwK
KyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjI1KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgIH0KKyAgICBdKTsKKworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRl
eHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4y
NSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4y
NSksCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQo
MTAwLCA1MCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckRvdWJsZVRhcERlbGF5KCk7Cisg
ICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgzMDAsIDMwMCk7CisKKyAgICBzaG91bGRCZWNv
bWVFcXVhbCgiY2xpY2tDb3VudCIsICIyIiwgZmluaXNoSlNUZXN0KTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5
LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3Rl
bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjNWU2NzMwNWExMDA5Njc3NzJlZjk3MmI1Y2Yy
NmNkOGRhMTBkNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIGludGVybmFscy5zaGFkb3dSb290KGltYWdl
KS5jaGlsZEVsZW1lbnRDb3VudCBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3Zlcmxh
eS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZjY2RmYjYzM2U5YjI0
ZTQzZjA0YzNmOThmZjMwMmY1M2ZkYjkyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1p
ZGVtcG90ZW50Lmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgor
PHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgaW1hZ2UgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEw
OyArK2kpIHsKKyAgICAgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiSGVsbG8i
LAorICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9CisgICAgICAgIF0pOwor
ICAgIH0KKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLmNoaWxkRWxl
bWVudENvdW50IiwgIjIiKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250
LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXpl
LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFjYTFiMzJkYmNjNTc1OGRiYTZm
MTgzMDllZTkzYWU1MmQzZjBmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8t
Zm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsKKyAgICBmb250LXNpemU6
IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVzb3VyY2Vz
L2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVy
bGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTRiMDU2
NDk5NjgxNGRmMzg1ZDBiOGVlMjIyYTk5ODlkYjU1MDE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAgIGZvbnQtc2l6ZTogMDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3Jl
ZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7
CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgewor
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogIkhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisgICAgaW50ZXJuYWxzLnNoYWRv
d1Jvb3QoaW1hZ2UpLmdldEVsZW1lbnRCeUlkKCJpbWFnZS1vdmVybGF5Iikuc3R5bGUuY29sb3Ig
PSAiYmxhY2siOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92
ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE1
MjQ1NjA5OTY0YWJjOTRkNzg2ZTgwOGE1NTg4YWVlNGJmNzg1YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13
aXRoLXNlbGVjdGlvbi1zdHlsZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKworOjpzZWxlY3Rpb24g
eworICAgIGNvbG9yOiByZWQ7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNy
Yz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXko
aW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwLjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BM
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRv
cFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAg
ICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfQorICAgIF0pOworCisgICAg
Z2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1h
Z2UpLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7Cit9KTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3Zlcmxh
eS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NTk1MmI1Y2IzNmYyMGFhMzVlYmUwYTRjY2ZhNTE3YTc0NjVhMTIwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9p
bWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sCkBAIC0wLDAgKzEsMzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBu
ZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAg
ICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBb
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwK
KyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAp
LAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVu
KGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3Zlcmxh
eS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zlcmxh
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzExZTRjNzMyNzhjNzVlNTYwN2E5MWQ0MTdkZjA4MmY4ZmQxYzQ5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0Fs
bC5sZW5ndGggaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1z
ZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NTYyYjYy
MGIzZDc1NzY1NGE0NmZiNWMyNjkyMDA4YTJhZGYyNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rp
b24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHksIGh0bWwgeworICAgIG1hcmdp
bjogMDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAg
ICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJp
bWciKSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC4xLCAwLjMpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjMsIDAuMSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuNCwgMC4yKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjIsIDAuNCksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJBQiIsCisgICAgICAgICAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjEsIDAuMyksCisgICAgICAgICAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjIpLAorICAg
ICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywg
MC4zKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAuMiwgMC40KSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJDRCIsCisgICAgICAgICAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMiksCisgICAgICAgICAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjEpLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC4yKSwKKyAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywg
MC4zKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBd
KTsKKworICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoODAsIDEyMCk7CisgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOworICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNl
bnRhdGlvblVwZGF0ZSgpOworICAgIHNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwgPSBh
d2FpdCBVSUhlbHBlci5nZXRVSVNlbGVjdGlvblZpZXdSZWN0cygpOworICAgIHNob3VsZEJlKCJz
ZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsLmxlbmd0aCIsICIxIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVj
dC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZTFhNzJi
MjM3M2JhNmNjYWUwZWRmZWMyNTYzOTM4YzE2OTk4ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWlu
LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBzZWxlY3Rp
b25SZWN0cy5sZW5ndGggaXMgMQorUEFTUyBEaXNtaXNzZWQgc2VsZWN0aW9uCitQQVNTIHNlbGVj
dGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODUwMmNmNDU1NmY4NjI2NTNmZmVh
ZjZhNzdiZmEyZTAwMTc0MDQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5
Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsK
KyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgoranNUZXN0
SXNBc3luYyA9IHRydWU7CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewor
ICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBb
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImZvbyIsCisg
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwK
KyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAg
ICAgICB9CisgICAgXSk7CisgICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAs
IDEwMCk7CisgICAgc2VsZWN0aW9uUmVjdHMgPSBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0
aW9uVG9BcHBlYXIoKTsKKyAgICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEi
KTsKKworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMjAwLCAzMDApOworICAgIGF3YWl0
IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0Rpc2FwcGVhcigpOworICAgIHRlc3RQYXNzZWQo
IkRpc21pc3NlZCBzZWxlY3Rpb24iKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0
UG9pbnQoMjAwLCAxMDApOworICAgIHNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2Fp
dEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxl
bmd0aCIsICIxIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4t
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNDFhYTQyZjZlNjkyNDNhYjc0MTJjMDhjMzY3OTZjMjYxNTZlM2I3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitQQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Ut
b3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lk
ZS1saW5rLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFhYTQyZjZlNjkyNDNhYjc0MTJjMDhj
MzY3OTZjMjYxNTZlM2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNp
ZGUtbGluay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHNlbGVjdGlvblJlY3Rz
Lmxlbmd0aCBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQt
aW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4ZjQ2YzlkNTk0
Mjg2NWZlNjA4OGM1ZDU3NzllZjQyM2IxNmRmMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFn
ZS1vdmVybGF5LWluc2lkZS1saW5rLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorCithIHsKKyAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8YSBocmVmPSJo
dHRwOi8vbG9jYWxob3N0OjU0MzIxIiBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpIj4K
KyAgICA8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4K
KzwvYT4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2FkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsK
KyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwK
KyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSks
CisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSks
CisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwKKyAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAgICBdKTsKKyAgICBhd2FpdCBV
SUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwgNTApOworICAgIHNlbGVjdGlvblJlY3RzID0g
YXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgc2hvdWxkQmUo
InNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9z
L3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMTYyMzdjYzg1ZDEyNGVkNjExNjJjYTc5Mzg0OTliNTM1NGM5Y2Y2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNjAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAw
eDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zlcmxh
eShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAsIDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAg
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICBj
aGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6
ICJ3b3JsZCIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJl
c3NBdFBvaW50KDIwMCwgMzAwKTsKKyAgICBzZWxlY3Rpb25SZWN0cyA9IGF3YWl0IFVJSGVscGVy
LndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOworICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0
cy5sZW5ndGgiLCAiMSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVj
dHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcyZDY0YzFmZTA1NTY4ODE3NGI1NmQ2YzA5NjE0ZjFi
OGFjMTJiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgaW5pdGlhbFNlbGVjdGlvblJlY3RzLmxlbmd0aCBp
cyAxCitQQVNTIHNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIGlzIDQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rp
b24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNDdiNTM0ZmYwZDNkZmI1OTNmYjBlMDlkNzI1Mjg0ZTAyZTJkNDJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDk3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVu
LTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdl
T3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4xLCAwLjI1KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4yNSwgMC4xKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC4zNSwgMC4yKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjIsIDAuMzUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAib25lIiwKKyAg
ICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4y
NSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC4yNSwgMC4xKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjM1LCAwLjIpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjM1KSwKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjQ1KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC40NSwgMC4zKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41NSwgMC40KSwKKyAgICAgICAgICAgIGJvdHRvbUxl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuNTUpLAorICAgICAgICAgICAgY2hpbGRy
ZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAidHdv
IiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
MywgMC40NSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC40NSwgMC4zKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjU1LCAwLjQpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjU1KSwKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB0b3BM
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjY1KSwKKyAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42NSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43NSwgMC42KSwKKyAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUpLAorICAgICAgICAgICAg
Y2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQg
OiAidGhyZWUiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAwLjY1KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjY1LCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNzUsIDAuNiksCisgICAgICAgICAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjYsIDAuNzUpLAorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjcsIDAuODUpLAorICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjg1LCAwLjcpLAorICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAwLjgpLAorICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuOCwgMC45NSksCisgICAg
ICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGV4dCA6ICJmb3VyIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuNywgMC44NSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC44NSwgMC43KSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjk1LCAwLjgpLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44LCAwLjk1KSwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisKKyAg
ICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDkwLCA5MCk7CisgICAgaW5pdGlhbFNl
bGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7
CisgICAgc2hvdWxkQmUoImluaXRpYWxTZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOworCisg
ICAgdGVzdFJ1bm5lci5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAgYXdhaXQgVUlIZWxw
ZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgc2VsZWN0aW9uUmVjdHNBZnRlclNl
bGVjdGluZ0FsbCA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1JlY3RzKCk7Cisg
ICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIiwgIjQi
KTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13
aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQt
bWVudS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAyMzRlYzFhYTQ3MDkzMDI3YWQ1ZWJiNjYw
MDc2YmY2ZDkxODg3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4
dC1tZW51LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgZWRpdG9yLnRleHRDb250
ZW50IGlzICJmb29iYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1h
Z2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIxZmQ4
MWUyM2ExZTIzY2RmMzEwMmVlMzg3OThjMTMyM2YzNDhkMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3Zl
cmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorCitkaXZbY29udGVudGVk
aXRhYmxlXSB7CisgICAgYm9yZGVyOiAxcHggc29saWQgdG9tYXRvOworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBu
ZyI+PC9pbWc+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KKzxzY3JpcHQ+CithZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdl
LCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAu
NSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICB0ZXh0IDogImZvb2JhciIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAxNTApOworCisgICAgZm9yIChsZXQgaXRlbSBvZiBldmVu
dFNlbmRlci5jb250ZXh0Q2xpY2soKSkgeworICAgICAgICBpZiAoaXRlbS50aXRsZSA9PT0gIkNv
cHkiKQorICAgICAgICAgICAgaXRlbS5jbGljaygpOworICAgIH0KKworICAgIGVkaXRvciA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdltjb250ZW50ZWRpdGFibGVdIik7CisgICAgZWRpdG9y
LmZvY3VzKCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0Q29udGVudCIsICJmb29iYXIiKTsKKyAgICBl
ZGl0b3IucmVtb3ZlKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGln
aGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdo
bGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhjMGU3YjM3MWRiYzFh
ZWY4Mjc4NTM2ZTZkMjBlZWUzZWU3YjI1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNh
Ymxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBA
QAorUEFTUyBmb3VuZFRpdGxlMSBpcyB0cnVlCitQQVNTIGZvdW5kVGl0bGUyIGlzIHRydWUKK1BB
U1MgU2VsZWN0ZWQgaW1hZ2Ugb3ZlcmxheQorUEFTUyBmb3VuZFRpdGxlMSBpcyBmYWxzZQorUEFT
UyBmb3VuZFRpdGxlMiBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxp
Z2h0LW1lbnUtaXRlbXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUt
aXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmJhYjU5ODRmMzg4MjQ1Mjc5MWQwOGI5MmJkN2E5NjVi
OTQ0NDcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQt
bWVudS1pdGVtcy5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGFwcEhpZ2hsaWdodHNFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCitw
IHsKKyAgICBmb250LXNpemU6IDMycHg7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVl
bi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8cD5IZWxsbyB3b3JsZCB0aGlzIGlzIGEgdGVzdC48L3A+
Cis8L2JvZHk+Cis8c2NyaXB0PgordmFyIGZvdW5kVGl0bGUxOwordmFyIGZvdW5kVGl0bGUyOwor
CitmdW5jdGlvbiBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRlbXMoKSB7CisgICAg
Zm91bmRUaXRsZTEgPSBmYWxzZTsKKyAgICBmb3VuZFRpdGxlMiA9IGZhbHNlOworCisgICAgbGV0
IFt0aXRsZTEsIHRpdGxlMl0gPSBpbnRlcm5hbHMuYXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVt
VGl0bGVzOworICAgIGZvciAobGV0IGl0ZW0gb2YgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKCkp
IHsKKyAgICAgICAgaWYgKGl0ZW0udGl0bGUgPT09IHRpdGxlMSkKKyAgICAgICAgICAgIGZvdW5k
VGl0bGUxID0gdHJ1ZTsKKworICAgICAgICBpZiAoaXRlbS50aXRsZSA9PT0gdGl0bGUyKQorICAg
ICAgICAgICAgZm91bmRUaXRsZTIgPSB0cnVlOworICAgIH0KK30KKworYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgdGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InAiKTsKKyAgICBsZXQgdGV4dFJlY3QgPSB0ZXh0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworCisgICAgaW50
ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAg
ICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb29iYXIiLAor
ICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCks
CisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAg
IH0KKyAgICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRleHQp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRleHRSZWN0LmxlZnQgKyB0ZXh0UmVjdC53
aWR0aCAvIDIsIHRleHRSZWN0LnRvcCArIHRleHRSZWN0LmhlaWdodCAvIDIpOworICAgIGNoZWNr
Rm9yQXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtcygpOworICAgIHNob3VsZEJlVHJ1ZSgiZm91
bmRUaXRsZTEiKTsKKyAgICBzaG91bGRCZVRydWUoImZvdW5kVGl0bGUyIik7CisKKyAgICBnZXRT
ZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSku
cXVlcnlTZWxlY3RvcigiZGl2I2ltYWdlLW92ZXJsYXkiKSk7CisgICAgdGVzdFBhc3NlZCgiU2Vs
ZWN0ZWQgaW1hZ2Ugb3ZlcmxheSIpCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAwLCAy
MDApOworICAgIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVtcygpOworICAgIHNo
b3VsZEJlRmFsc2UoImZvdW5kVGl0bGUxIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZm91bmRUaXRs
ZTIiKTsKKworICAgIHRleHQucmVtb3ZlKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0
aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1k
cmFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2U1ZWVlZGJmMWI0MzVmOTZjM2EyMGJmODE0
MDFhZWU0MzMxOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRoLW1v
dXNlLWRyYWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWlu
LWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0
LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2Ut
ZHJhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNGVkYzg5MDRhYTE3Yjg4Nzg1YjI3ODdjNDRhNzM5MTcx
NzM2NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJh
Zy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7Cisg
ICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxhIGhyZWY9Imh0dHA6
Ly9sb2NhbGhvc3Q6NTQzMjEiPgorICAgIDxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4t
NDAweDQwMC5wbmciPjwvaW1nPgorPC9hPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1n
Iik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAg
eworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAg
ICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRl
eHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBpbWFnZS5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIGV2ZW50ID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZCgiT2JzZXJ2ZWQgY2xp
Y2suIik7CisgICAgfSk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMzAwKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
bygzNTAsIDMwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1h
Z2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0
aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWY3ZjM2M2QyOTY0OGFl
ODgwMTY2MWRhNTkxMDkwMzc1YzVhZjZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0
aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1n
PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGlt
YWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3Rh
bGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDEiLAorICAg
ICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisg
ICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAw
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQyIiwKKyAgICAgICAgICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMCksCisgICAgICAg
ICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjUsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMyIsCisgICAgICAgICAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAg
ICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSks
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7CisK
KyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9v
dChpbWFnZSkucXVlcnlTZWxlY3RvcigiZGl2I2ltYWdlLW92ZXJsYXkiKSk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWctMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZmVjZTM0NjI0MjFlOTRkY2VkYWU4MmZmOTY5
MWEyNzhiMTI2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAg
ICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zlcmxh
eShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWworICAgICAgICB7CisgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjog
WworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dv
cmxkMSIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjUsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDIiLAor
ICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAw
KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQzIiwKKyAgICAgICAgICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAg
ICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAor
ICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMC41LCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0K
KyAgICBdKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCA1MCk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAz
NTApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJs
YXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92
ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQzZTVlZWVkYmYxYjQzNWY5NmMzYTIwYmY4MTQwMWFlZTQzMzE5ODEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21h
Yy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGlj
ay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3Vz
ZS1kcmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJh
Zy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE4NzNjOTgxOTIzMjNjMzEx
MDMyMGNiZDNlZWJlOGYwZjMyYmEyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgt
bW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBu
ZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAg
ICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5h
bHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisg
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUp
LAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAxKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAg
ICAgIH0KKyAgICBdKTsKKworICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZl
bnQgPT4geworICAgICAgICB0ZXN0RmFpbGVkKCJPYnNlcnZlZCBjbGljay4iKTsKKyAgICB9KTsK
KworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAzMDApOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzAwKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgt
bW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1k
cmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdmNGM3NzQ1MDI4MzZjMWQz
Yjc3NjFiNGM3MTYyNjM1ZDlhNjZiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgt
bW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+
PC9pbWc+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTRjMzYwNmFkNDljYWI0NjU0Zjg4YWU5ZWYxNGE4
M2EyYTllZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLmh0
bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxl
ZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
LjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUp
LAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwK
KyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oNTAsIDMwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMv
c2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdlODk4OGJiODA5NTZkZDYyNDUzOGQ5Njg4YTNkY2Y0MmU0OGQxNTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21h
Yy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCitpbWcgeworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICB3aWR0aDogNDAwcHg7
CisgICAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YjY3N2QyMDJjZmMxZDhiZGU2YmFlZDE2YzE3ZjkxMjk4MTkxMmVm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCkBA
IC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
Ky5iYWNrIHsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47CisgICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Cit9CisKKy5mcm9u
dCB7CisgICAgb3BhY2l0eTogMDsKK30KKworYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOwor
fQorCisuZnJvbnQsIC5iYWNrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAw
OworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7Cit9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJiYWNrIj48L2Rpdj4KKzxp
bWcgY2xhc3M9ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+
PC9pbWc+Cis8ZGl2IGNsYXNzPSJiYXIiPjwvZGl2PgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAg
ICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MS41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMS41LCAw
LjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgyLCAx
KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAyKSwK
KyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMS41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMiwgMSksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAyKSwKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdldFNl
bGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5x
dWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1p
bi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJh
Z2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
N2Y0Yzc3NDUwMjgzNmMxZDNiNzc2MWI0YzcxNjI2MzVkOWE2NmI2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApAQCAt
MCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citp
bWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
Z3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qt
d29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlM2EwMTFk
MzhjNDE1ZjFjMjdjNTdmYjM3NDQxMWQ1NzgxYjZkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1k
cmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGltZyBkcmFnZ2FibGU9InRydWUiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQw
MHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkg
PT4geworICAgIGNvbnN0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Cisg
ICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAg
ICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hp
bGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
aGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxD
aGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdl
LW92ZXJsYXktdGV4dCIpKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiY2RhYjkwY2RhMDZjYjRi
NWFhMDQ0MWJiMmI5MzQ4YzY4ZjQ2MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVu
dC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKQEAgLTAsMCArMSwyMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSwgaHRtbCB7Cisg
ICAgbWFyZ2luOiAwOworfQorCitkaXYgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0
b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBw
eDsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47CisgICAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjEw
ZDJkOTdjZjBiNzg5YWE0NzZhZTQ0MzJmMDM4NDlhYTMxN2NkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQt
aW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5iYWNrIHsKKyAgICBiYWNrZ3Jv
dW5kLXNpemU6IGNvbnRhaW47CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291
cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Cit9CisKKy5mcm9udCB7CisgICAgb3BhY2l0eTogMDsK
K30KKworYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCisuZnJvbnQsIC5iYWNrIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAg
d2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGNsYXNzPSJiYWNrIj48L2Rpdj4KKzxpbWcgY2xhc3M9ImZyb250IiBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShp
bWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGdl
dFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdl
KS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOworfSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430774</attachid>
            <date>2021-06-07 12:50:20 -0700</date>
            <delta_ts>2021-06-07 21:34:37 -0700</delta_ts>
            <desc>Fix test expectations</desc>
            <filename>bug-226706-20210607125019.patch</filename>
            <type>text/plain</type>
            <size>347075</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhNDVlZjMwMWIzY2Y3NzBlNjljYWI1
OTA5MGQ0YmE5ZDM5YWJiNWUuLjY1NDE1N2IyZDFhMDhlY2E4MjUwMGM3NTk2YjU4MmJiZjFlN2Ew
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9y
IExpdmUgVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODkzMzY4ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmg6CisKKyAgICAgICAgTW92ZSB0aGUgZmVhdHVyZSBmbGFnIG91dCBvZiBXZWJLaXRB
ZGRpdGlvbnMgYW5kIGludG8gT3BlblNvdXJjZSBhcyBJTUFHRV9BTkFMWVNJUy4KKwogMjAyMS0w
Ni0wNyAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1dURl1bR1N0cmVhbWVyXSBGaXggY2xhbmcgVFNBIHdhcm5pbmdzIGluIFdURjo6RGF0YU11dGV4
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzFjNzExZTA2NzA2MjczOWU3MmQ5YTBkMmZlZDVhYjkxZTQyMmNkNy4u
ODhmY2RiZGE5MGRhYzViOTRmMzY3N2JkNjU3MWRhZTFlODg4NWFlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEwMSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZvciB0
aGUgZmFtaWx5IG9mICJsaXZlIHRleHQiIGFuZCB2aXN1YWwgaW50ZWxsaWdlbmNlIGZlYXR1cmVz
IGZyb20gV2ViS2l0QWRkaXRpb25zLgorICAgICAgICBUaGlzIGVuY29tcGFzc2VzIHRoZSBmb2xs
b3dpbmcgZmVhdHVyZXMgb24gbWFjT1MgMTIgYW5kIGlPUyAxNToKKworICAgICAgICAtIFRleHQg
c2VsZWN0aW9uIGFuZCBpbnRlcmFjdGlvbiBpbiBpbWFnZXMuCisgICAgICAgIC0gRGF0YSBkZXRl
Y3RvcnMgaW4gaW1hZ2VzLgorICAgICAgICAtIFZpc3VhbCBzZWFyY2ggKExvb2sgVXApIHZpYSBj
b250ZXh0IG1lbnUgaW4gaW1hZ2VzLgorCisgICAgICAgIFRvIGRvIHRoaXMsIHdlIHJlbmFtZSB0
aGUgSU1BR0VfRVhUUkFDVElPTiBmZWF0dXJlIGZsYWcgKGFuZCBhbnkgb3RoZXIgc2ltaWxhciBz
eW1ib2wgbmFtZXMgdGhhdCByZWZlcmVuY2UKKyAgICAgICAgImltYWdlIGV4dHJhY3Rpb24iIGlu
IHNvbWUgY2FwYWNpdHkpIHRvIHRoZWlyIHJlYWwgbmFtZXMgaW4gbWFjT1MgYW5kIGlPUzoKKwor
ICAgICAgICAtICJUZXh0IHJlY29nbml0aW9uIiwgaW4gY29kZSB0aGF0IHN1cHBvcnRzIGF1dG9t
YXRpYyBPQ1IgYW5kIGRhdGEgZGV0ZWN0b3JzIGluIGltYWdlcy4KKyAgICAgICAgLSAiTG9vayBV
cCIsIGluIGNvZGUgdGhhdCByZWZlcmVuY2VzIHRoZSBjb250ZXh0IG1lbnUgYWN0aW9uIHRvIGlu
dm9rZSB2aXN1YWwgc2VhcmNoLgorICAgICAgICAtICJWaXN1YWwgU2VhcmNoIiwgaW4gY29kZSB0
aGF0IG1hbmFnZXMgUXVpY2tMb29rIGludGVncmF0aW9uIGZvciBpbnZva2luZyB2aXN1YWwgc2Vh
cmNoLgorICAgICAgICAtICJJbWFnZSBhbmFseXNpcyIsIGluIGNvZGUgdGhhdCBkaXJlY3RseSBp
bnRlZ3JhdGVzIHdpdGggVktJbWFnZUFuYWx5emVyIGFuZCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWlt
YWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRl
bXBvdGVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1z
ZWxlY3Rpb24tc3R5bGVzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2Vs
ZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lk
ZS1saW5rLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92
ZXJsYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10
ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1p
bi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWct
Mi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQt
aW1hZ2Utb3ZlcmxheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29n
bml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29y
ZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFE
ZXRlY3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVy
bGF5KToKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVw
ZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJs
ZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1v
dXNlRXZlbnRUYXJnZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bV90
ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAg
KiBwYWdlL1F1aXJrcy5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAq
IHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ltYWdlRXh0cmFjdGlvblJlc3Vs
dC5oLgorCisgICAgICAgIFJlbmFtZSB0aGUgZm9sbG93aW5nOgorICAgICAgICAtIEltYWdlRXh0
cmFjdGlvblJlc3VsdCA9PiBUZXh0UmVjb2duaXRpb25SZXN1bHQKKyAgICAgICAgLSBJbWFnZUV4
dHJhY3Rpb25UZXh0RGF0YSA9PiBUZXh0UmVjb2duaXRpb25Xb3JkRGF0YQorICAgICAgICAtIElt
YWdlRXh0cmFjdGlvbkxpbmVEYXRhID0+IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhCisgICAgICAg
IC0gSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyA9PiBUZXh0UmVjb2duaXRpb25EYXRh
RGV0ZWN0b3IKKworICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uV29yZERhdGE6OlRl
eHRSZWNvZ25pdGlvbldvcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
bldvcmREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0
aW9uV29yZERhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25M
aW5lRGF0YTo6VGV4dFJlY29nbml0aW9uTGluZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uTGluZURhdGE6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25MaW5lRGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQ6OmRlY29kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VEYXRhRm9yTGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omluc3RhbGxJbWFnZU92ZXJsYXkpOgorCiAyMDIx
LTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBvdmVy
bGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBmZjZhMWU4OTNhOThiMGM4YTIyYmY4MDdiM2RiNzllZDMyZDRkNzg5
Li43NTUzMTAyNzJiMWNkMzg1MjBkZGQ2YmUxMzUzMTc1MzVmZTAxNzcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5MSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2ZSBUZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRp
bGl0aWVzLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaC4KKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9U
ZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW06IEFkZGVkLgorCisgICAgICAgIFJlbmFtZSBJbWFn
ZUV4dHJhY3Rpb25VdGlsaXRpZXMgdG8gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLgorCisgICAg
ICAgIChXZWJLaXQ6OmZsb2F0UXVhZCk6CisgICAgICAgIChXZWJLaXQ6OmZsb2F0UXVhZHMpOgor
ICAgICAgICAoV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKFdl
YktpdDo6aXNMaXZlVGV4dEVuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAgICAgICAoV2ViS2l0Ojp0
b0ltcGwpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj46OmRlY29kZVBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz46OmVuY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0
YURldGVjdG9ySW5mbz46OmRlY29kZVBsYXRmb3JtRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
U2hhcmVkL1RleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmguCisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3Rvcklu
Zm8+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEltYWdl
RXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbToK
KyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOmN1c3Rv
bVRpdGxlOmFzc2lzdGFudDpdKToKKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBpbWFnZUZv
ckVsZW1lbnRBY3Rpb25UeXBlOl0pOgorCisgICAgICAgIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGtl
ZXAgdGhlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgU1BJIHN5bWJvbCwgdG8gYXZv
aWQgYnJlYWtpbmcgTW9iaWxlTWFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVD
b250ZXh0TWVudUxvb2tVcEltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpo
YW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUg
YGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2VgIHRvIGBoYW5kbGVDb250ZXh0TWVudUxvb2tV
cEltYWdlYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmVuc3VyZUltYWdlQW5hbHl6ZXIpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVJbWFnZUFuYWx5c2lzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNv
bXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKToKKworICAgICAgICBSZW5hbWUgYGNvbXB1dGVD
YW5SZXZlYWxJbWFnZWAgdG8gYGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzYC4KKworICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXB0c1ByZXZpZXdQYW5lbENvbnRyb2wpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnQ6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50Ojpjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb21wdXRlSGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUNhblJldmVhbEltYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0KTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHVwZGF0ZVdpdGhJ
bWFnZUV4dHJhY3Rpb25SZXN1bHRgIHRvIGB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
YC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFRleHRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKTogRGVsZXRlZC4KKworICAgICAgICBSZW5hbWUgYHJlcXVlc3RJbWFnZUV4
dHJhY3Rpb25gIHRvIGByZXF1ZXN0VGV4dFJlY29nbml0aW9uYC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFz
c2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDpdKToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6XSk6CisgICAgICAg
ICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOmVs
ZW1lbnQ6bmVlZHNJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlc10pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlY29nbml6ZVNpbXVsdGFu
ZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRC
ZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBoYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5BdFBvaW50Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNhblBlcmZvcm1BY3Rpb25Gb3JXZWJWaWV3OndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGFyZ2V0Rm9yQWN0aW9uOndpdGhT
ZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2hvdWxkRGVmZXJH
ZXN0dXJlRHVlVG9JbWFnZUFuYWx5c2lzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZHJhZ0ludGVyYWN0aW9uOnByZXBhcmVG
b3JTZXNzaW9uOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VuZElt
YWdlQW5hbHlzaXNHZXN0dXJlRGVmZXJyYWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlc2VudFZpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyRm9ySW1hZ2U6aW1hZ2VVUkw6dGl0bGU6aW1hZ2VCb3VuZHM6YXBwZWFyYW5jZUFjdGlv
bnM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXI6ZnJhbWVG
b3JQcmV2aWV3SXRlbTppblNvdXJjZVZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJldmlld0NvbnRyb2xsZXI6dHJhbnNpdGlvbkltYWdlRm9yUHJldmlld0l0ZW06Y29udGVudFJl
Y3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmlld0NvbnRyb2xsZXJEaWREaXNt
aXNzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG51bWJlck9mUHJldmlld0l0ZW1zSW5Q
cmV2aWV3Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2aWV3Q29u
dHJvbGxlcjpwcmV2aWV3SXRlbUF0SW5kZXg6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cHJvdmlkZURhdGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNo
ZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd1RleHRGb3JJ
bWFnZTppbWFnZVVSTDp0aXRsZTppbWFnZUJvdW5kczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25G
b3JFbGVtZW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0
YW50Omxvb2tVcEltYWdlOmltYWdlVVJMOnRpdGxlOmltYWdlQm91bmRzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGltYWdlQW5hbHl6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBoYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfc2V0VXBJbWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Rl
YXJEb3duSW1hZ2VBbmFseXNpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jYW5jZWxJ
bWFnZUFuYWx5c2lzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3JlYXRlSW1hZ2VBbmFs
eXNpc1JlcXVlc3Q6aW1hZ2U6aW1hZ2VVUkw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
Y3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6aW1hZ2U6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcmVxdWVzdFRleHRSZWNvZ25pdGlvbjppbWFnZURhdGE6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc0dl
c3R1cmVEaWRCZWdpbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFnZUFuYWx5c2lz
R2VzdHVyZURpZEZhaWw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNp
c0dlc3R1cmVEaWRUaW1lT3V0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnNlcnRU
ZXh0RnJvbUNhbWVyYUZvcldlYlZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2Fw
dHVyZVRleHRGcm9tQ2FtZXJhRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfY29udGV4dE1lbnVJbnRlcmFjdGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246
Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjb250aW51ZUNvbnRleHRN
ZW51SW50ZXJhY3Rpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjp3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjphbmltYXRvcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFjdGlvbjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZW5kSW1hZ2VFeHRyYWN0aW9u
R2VzdHVyZURlZmVycmFsOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9k
b0FmdGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlRXh0
cmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplci5tbS4KKyAgICAgICAgKC1bV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIgaW5pdFdpdGhJbWFnZUFuYWx5c2lzR2VzdHVyZURlbGVnYXRlOl0pOgorICAgICAgICAo
LVtXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciBzZXRTdGF0ZTpdKToKKworICAgICAg
ICBSZW5hbWUgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB0byBXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplciAoYWxvbmcgd2l0aCBhbGwgYWRqYWNlbnQgY2xhc3Nlcyku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb21wdXRlQ2FuUmV2ZWFsSW1h
Z2UpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2
aWV3Q29udHJvbGxlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW06IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJv
bGxlci5tbS4KKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBpbml0
V2l0aFBhZ2U6aW1hZ2VEYXRhOnRpdGxlOmltYWdlVVJMOl0pOgorICAgICAgICAoLVtXS1Zpc3Vh
bFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGJlZ2luQ29udHJvbDpdKToKKyAgICAgICAgKC1bV0tW
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBlbmRDb250cm9sOl0pOgorICAgICAgICAoLVtX
S1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGNsb3NlUGFuZWxJZk5lY2Vzc2FyeV0pOgor
ICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGlzQ29udHJvbGxpbmc6
XSk6CisgICAgICAgICgtW1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJvdmlkZURh
dGFGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVy
IG51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2aWV3UGFuZWw6XSk6CisgICAgICAgICgtW1dLVmlz
dWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgcHJldmlld1BhbmVsOnByZXZpZXdJdGVtQXRJbmRl
eDpdKToKKyAgICAgICAgKC1bV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBwcmV2aWV3
UGFuZWw6aW5pdGlhbEFjdGl2aXR5Rm9ySXRlbTpdKToKKworICAgICAgICBSZW5hbWUgYFdLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXJgIHRvIGBXS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6bWVudUl0ZW1JZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmJlZ2luUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW5kUHJldmlld1BhbmVsQ29udHJvbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFuZWxJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5WaXN1YWxTZWFy
Y2hQcmV2aWV3UGFuZWwpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29n
bml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VF
eHRyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEtMDYtMDcg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBGaW5kLWluLXBhZ2Ugc2hvdWxkIG1hdGNoIHRleHQgaW5zaWRlIGltYWdlIG92ZXJsYXlzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMGFjMDYzMTU4YzY5YjE2MDE2MGU4MTIwOWNj
ZjAwYzUxNjMyMWNlYi4uZGFjNDFhYzQ1OThlYjExOGQ1MDExOTkxOTdjZGJmOTM3MzIxY2MyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTA3
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3Ry
ZWFtIFdlYktpdCBzdXBwb3J0IGZvciBMaXZlIFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Nzg5MzM2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOiBSZXBsYWNlIElNQUdFX0VYVFJBQ1RJT04gd2l0
aCBJTUFHRV9BTkFMWVNJUy4KKwogMjAyMS0wNi0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBUdXJuIFRleHRJdGVyYXRvckJlaGF2aW9yRmxhZyBp
bnRvIGFuIGVudW0gY2xhc3MgYW5kIHdyYXAgaXQgaW4gT3B0aW9uU2V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggMDdlZDAzMjRmOGI3ZmMyMmUzZDY1NGIyNjU2ZGMzNzA5
ZjU4NzgzNi4uYzNmYmIyYmVlYTEzNzI4ZmU1ZWIxYWMzNjgyYmY2ZDljNmI0ZTQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtNjc4LDMgKzY3OCwxMCBAQAogI2lmICFk
ZWZpbmVkKEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQikKICNkZWZp
bmUgRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCIDEKICNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMjAwMDApIFwKKyAgICB8fCAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lNQUdFX0FOQUxZU0lTKQorI2RlZmluZSBFTkFCTEVfSU1BR0VfQU5B
TFlTSVMgMQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMTJmMTgyYzJmYjEyNTgxZTdiZjk3YWE5ZTA1
YTZjNDUzYTFlYzBiLi44YmJlNzI3N2IxYjM3ZDMxYzEzNmExY2QxZWU3ZDI2OWVhMjBjNjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01Mzc2LDcgKzUzNzYsNyBAQAogCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJz
dHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4MjQz
NEIyNjBDMzMwNjAwMjI0OTdDIC8qIEltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODI0MzQ4MjYwQzMyRjEwMDIy
NDk3QyAvKiBJbWFnZU92ZXJsYXlDb250cm9sbGVyLmggKi87IH07CiAJCUY0ODU3MEE1MjY0NEM3
NkQwMEMwNUY3MSAvKiBUcmFuc2xhdGlvbkNvbnRleHRNZW51SW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NTcwQTQyNjQ0Qzc2RDAwQzA1Rjcx
IC8qIFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIElt
YWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJl
c3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUY0OEI3RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1bHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEI3RDUyMjVDMzQx
RTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkE2QzIxNTYyM0I0MDBDNjc1MkIg
LyogRm9udFNoYWRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ4RDJBNkEyMTU2MjNCNDAwQzY3NTJCIC8qIEZvbnRTaGFkb3cuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkE3RTIxNTcxODI2
MDBDNjc1MkIgLyogRm9udEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTcxMjE1NkRDMEEwMEM2NzUyQiAvKiBGb250QXR0cmli
dXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY0OEQyQUE1MjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkFBMzIxNTk3NDBEMDBDNjc1MkIg
LyogQ29sb3JDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xNjg5Nyw3ICsxNjg5Nyw3IEBACiAJCUY0ODM4OTgzMUUxRERGMkIwMDc2QjdF
QSAvKiBEdW1wRWRpdGluZ0hpc3RvcnkuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBEdW1wRWRpdGluZ0hpc3RvcnkuanM7IHBhdGggPSBTY3JpcHRzL0R1bXBFZGl0
aW5nSGlzdG9yeS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4Mzg5ODQxRTFE
REYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVkaXRpbmdIaXN0b3J5VXRpbC5qczsgcGF0aCA9IFNjcmlw
dHMvRWRpdGluZ0hpc3RvcnlVdGlsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDg1NzBBNDI2NDRDNzZEMDBDMDVGNzEgLyogVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFj
dGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4QjdENTIyNUMzNDFFNjAwOUU3NUREIC8qIFRl
eHRSZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UmVjb2duaXRpb25SZXN1
bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBNkEyMTU2MjNCNDAwQzY3
NTJCIC8qIEZvbnRTaGFkb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNoYWRvdy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0
dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0dHJpYnV0ZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBNzUyMTU2RkU1NzAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1
dGVzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGb250QXR0cmlidXRlc0NvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgwNzEsNyArMjgwNzEsNiBAQAogCQkJ
CUNENjJGQjk0MUFGMDE4RTcwMDEyRUQ3RCAvKiBHZW5lcmljVGFza1F1ZXVlLmggKi8sCiAJCQkJ
QTg3NDhCREYxMkNCRjJEQzAwMUZCQTQxIC8qIEhhc2hUb29scy5oICovLAogCQkJCUJDM0JDMjlC
MEU5MUFCMEYwMDgzNTU4OCAvKiBIb3N0V2luZG93LmggKi8sCi0JCQkJRjQ4QjdENTIyNUMzNDFF
NjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oICovLAogCQkJCTFBRTAwRDU3MTgy
REFDOEQwMDA4N0RENyAvKiBLZXllZENvZGluZy5oICovLAogCQkJCUUxNUZGN0Q0MThDOTU1Mzgw
MEZFNEM4NyAvKiBLZXlwcmVzc0NvbW1hbmQuaCAqLywKIAkJCQlBM0Q0MkE4NDFGMzNCQTM2MDBB
NjRCNjIgLyogTGF5b3V0VW5pdC5jcHAgKi8sCkBAIC0yODIxMiw2ICsyODIxMSw3IEBACiAJCQkJ
RTNDMDQxMzIyNTRDQTcxMTAwMjFEMEU2IC8qIFN5c3RlbVNvdW5kTWFuYWdlci5jcHAgKi8sCiAJ
CQkJRTNDMDQxMkQyNTRDQTI5QjAwMjFEMEU2IC8qIFN5c3RlbVNvdW5kTWFuYWdlci5oICovLAog
CQkJCTdDQzU2NEI2MThCQUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rvci5o
ICovLAorCQkJCUY0OEI3RDUyMjVDMzQxRTYwMDlFNzVERCAvKiBUZXh0UmVjb2duaXRpb25SZXN1
bHQuaCAqLywKIAkJCQlCQ0U2NUQzMTBFQUQxMjExMDA3RTQ1MzMgLyogVGhlbWUuY3BwICovLAog
CQkJCUJDRTY1OEZFMEVBOTI0OEEwMDdFNDUzMyAvKiBUaGVtZS5oICovLAogCQkJCTBGMjgzQThE
MjM1NTgyRjgwMDQ3OTRDQSAvKiBUaGVtZVR5cGVzLmNwcCAqLywKQEAgLTMyNDcxLDcgKzMyNDcx
LDYgQEAKIAkJCQk0MUZBQkQyRDFGNERGRTRBMDA2QTZDOTcgLyogRE9NQ2FjaGVFbmdpbmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzgwQzI5MUYzNDM2QUMwMDE1NUZEQSAvKiBET01DYWNoZVN0
b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCREEzRkZFMjE1MUI2RjUwMEZENjYwNCAvKiBE
T01DU1NDdXN0b21Qcm9wZXJ0eURlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0NDdG
NUIzMjY2Q0Y2M0QwMDEzM0YwMCAvKiBUZXh0Qm94U2VsZWN0YWJsZVJhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGQzlBMEY3NTE2NDA5NENGMDAzRDZCOEQgLyogRE9NQ1NTTmFtZXNwYWNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0QjZCNUNCRDIxNjQwRUZGMDA2MDM4MTcgLyogRE9NQ1NTUGFp
bnRXb3JrbGV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRBM0ZGRjIxNTFCNkY1MDBGRDY2MDQg
LyogRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzEw
MCw3ICszMzA5OSw2IEBACiAJCQkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVj
b2RlckNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyog
SW1hZ2VEZWNvZGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQjYxMjM5
MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0OEI3
RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1NzZBNTY1MUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNTVCM0RDMjEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTY3Niw2ICszNTY3NCw3IEBACiAJCQkJQ0U3QjJE
QjUxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1NERDRTYxODgxMDUxRDAwM0VFREJCIC8qIFRleHRBdXRvU2l6aW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzNDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJvdW5k
YXJpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0NDdGNUIzMjY2Q0Y2M0QwMDEzM0YwMCAvKiBU
ZXh0Qm94U2VsZWN0YWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzE1MUJEODEyRjE1
NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
N0QwMDEyMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3REJGOERFMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzU3MTUsNiArMzU3MTQsNyBAQAogCQkJCTFDMThEQTU5MTgxQUY2QTUw
MEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRDOTFBMEUxODAy
MzQzMTAwQTE3RjZEIC8qIFRleHRQYWludFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTIx
MjE1ODI0MERCRUI5MDA2RUQ0NDMgLyogVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3NUREIC8qIFRleHRSZWNvZ25pdGlvblJl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8qIFRl
eHRSZXNvdXJjZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjRCNDY1MEUyRUYyRUEw
MDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDhCMUI3QTBGM0EyRjlC
MDA0N0E5RTIgLyogVGV4dFNpemVBZGp1c3RtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLmgKaW5kZXggNTQ3M2JiMDBjNDg2
OGI1NDkxMTQzYTNhZTg4OTcwOWI4ZWU4ZGZiZS4uNThhNjljYzc4NDMzMWYwYjQxNjgxZTA5MjM0
N2Q5NWY0MzFlYzZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9E
YXRhRGV0ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBIVE1MRWxl
bWVudDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwotc3RydWN0
IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm87CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9u
RGF0YURldGVjdG9yOwogCiBzdHJ1Y3QgRGV0ZWN0ZWRJdGVtIHsKICAgICBSZXRhaW5QdHI8RERB
Y3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0OwpAQCAtNjYsOCArNjYsOCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcmVxdWlyZXNFeHRlbmRlZENvbnRleHQoRWxl
bWVudCYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBzdGF0
aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50
JiwgY29uc3QgSW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOworI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVtZW50
Rm9ySW1hZ2VPdmVybGF5KERvY3VtZW50JiwgY29uc3QgVGV4dFJlY29nbml0aW9uRGF0YURldGVj
dG9yJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGRhdGFEZXRlY3RvclVS
TFByb3RvY29sKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Rh
dGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rp
b24ubW0KaW5kZXggMjUwNDM4OTI0OGQ2M2YwODZhZmRiY2E1ODU3MTZhYzQ1OTUyY2JmYi4uMmIx
OTkzZTczMmFhN2IxMmIwNTY0ZjhkMmVhNWJhMWU1NjU4YjU0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2lt
cG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IgogI2ltcG9ydCAiSGl0VGVzdFJlc3VsdC5oIgotI2ltcG9ydCAiSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0LmgiCiAjaW1wb3J0ICJOb2RlTGlzdC5oIgogI2ltcG9ydCAiTm9kZVRyYXZlcnNhbC5oIgog
I2ltcG9ydCAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNTEsNiArNTAsNyBAQAogI2ltcG9ydCAiU3R5
bGVQcm9wZXJ0aWVzLmgiCiAjaW1wb3J0ICJUZXh0LmgiCiAjaW1wb3J0ICJUZXh0SXRlcmF0b3Iu
aCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblJlc3VsdC5oIgogI2ltcG9ydCAiVmlzaWJsZVBv
c2l0aW9uLmgiCiAjaW1wb3J0ICJWaXNpYmxlVW5pdHMuaCIKICNpbXBvcnQgPHBhbC9zcGkvaW9z
L0RhdGFEZXRlY3RvcnNVSVNQSS5oPgpAQCAtNjg3LDkgKzY4Nyw5IEBAIGJvb2wgRGF0YURldGVj
dGlvbjo6aXNEYXRhRGV0ZWN0b3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAg
cmV0dXJuIGlzPEhUTUxBbmNob3JFbGVtZW50PihlbGVtZW50KSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih4X2FwcGxlX2Rh
dGFfZGV0ZWN0b3JzQXR0ciksICJ0cnVlIik7CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLVJlZjxIVE1MRWxlbWVudD4gRGF0
YURldGVjdGlvbjo6Y3JlYXRlRWxlbWVudEZvckltYWdlT3ZlcmxheShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8mIGluZm8pCitSZWY8SFRN
TEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImIGluZm8p
CiB7CiAgICAgYXV0byBjb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBpZiAoYXV0byBmcmFtZSA9IG1ha2VSZWZQdHIoZG9jdW1lbnQuZnJhbWUoKSkpIHsK
QEAgLTY5OSw3ICs2OTksNyBAQCBSZWY8SFRNTEVsZW1lbnQ+IERhdGFEZXRlY3Rpb246OmNyZWF0
ZUVsZW1lbnRGb3JJbWFnZU92ZXJsYXkoRG9jdW1lbnQmIGRvY3VtZW50LAogICAgIHJldHVybiBj
b250YWluZXI7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBi
L1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggYjc0ODVk
YTllY2ZjN2VhYTVlMzk5MzY2NTNjZDVkODA5OTI0ZDk3ZC4uOTY0OTIwOGExMjQwZjA4NjczMjA5
MTA4MWQ0NTkxZWFlM2UzNGRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzCkBAIC01NTMsNiArNTUzLDkgQEAKIC8qICdXZWJzaXRlJyBuYW1lIGRpc3Bs
YXllZCB3aGVuIGxvY2FsIGRvY3VtZW50cyBoYXZlIHN0b3JlZCBsb2NhbCBkYXRhICovCiAiTG9j
YWwgZG9jdW1lbnRzIG9uIHlvdXIgY29tcHV0ZXIiID0gIkxvY2FsIGRvY3VtZW50cyBvbiB5b3Vy
IGNvbXB1dGVyIjsKIAorLyogVGl0bGUgZm9yIExvb2sgVXAgYWN0aW9uIGJ1dHRvbiAqLworIkxv
b2sgVXAiID0gIkxvb2sgVXAiOworCiAvKiBMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBt
ZW51IGl0ZW0gKi8KICJMb29rIFVwIGluIERpY3Rpb25hcnkiID0gIkxvb2sgVXAgaW4gRGljdGlv
bmFyeSI7CiAKQEAgLTgyOSw2ICs4MzIsOSBAQAogLyogbWVudSBpdGVtIHRpdGxlICovCiAiU2hv
dyBTdWJzdGl0dXRpb25zIiA9ICJTaG93IFN1YnN0aXR1dGlvbnMiOwogCisvKiBUaXRsZSBmb3Ig
U2hvdyBUZXh0IGFjdGlvbiBidXR0b24gKi8KKyJTaG93IFRleHQiID0gIlNob3cgVGV4dCI7CisK
IC8qIFRpdGxlIG9mIHRoZSBjb250ZXh0IG1lbnUgaXRlbSB0byBzaG93IHdoZW4gUERGUGx1Z2lu
IHdhcyB1c2VkIGluc3RlYWQgb2YgYSBibG9ja2VkIHBsdWdpbiAqLwogIlNob3cgaW4gYmxvY2tl
ZCBwbHVnLWluIiA9ICJTaG93IGluIGJsb2NrZWQgcGx1Zy1pbiI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKaW5kZXggM2FjOGY5YjJmNmJjMGRkODYzMzZkNGNhZGZiYzYzZmQ3MTg3
YjZlZC4uNTI5NjZjNzg4NDdjM2Q5ODczOWJiZTU2MDY4NjUxZGNiOGNjNzc0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTgwLDggKzgwLDggQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0j
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0jaW5jbHVkZSAiSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0LmgiCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2luY2x1ZGUgIlRleHRSZWNvZ25p
dGlvblJlc3VsdC5oIgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTMy
OSw5ICsxMzI5LDkgQEAgYm9vbCBIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KGNvbnN0
IE5vZGUmIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIEhUTUxFbGVtZW50
Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYm
IHJlc3VsdCkKK3ZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1
bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYgcmVzdWx0KQogewogICAgIFJlZlB0cjxIVE1MRGl2
RWxlbWVudD4gcHJldmlvdXNDb250YWluZXI7CiAgICAgaWYgKGF1dG8gc2hhZG93Um9vdCA9IHVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKTsgc2hhZG93Um9vdCAmJiBoYXNJbWFnZU92ZXJsYXkoKSkgewpA
QCAtMTUxMSw3ICsxNTExLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aEltYWdlRXh0
cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQKICAgICAgICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLnNjaGVkdWxlQ3Vyc29yVXBkYXRlKCk7CiB9CiAKLSNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKaW5kZXggZjMxODNjZmEwZjczM2VjYTVjYjA3MmQ5NDhlZGE4OTI3NGQ2MTczMi4uMWFlMWZk
NmVjMjY1NTQ1YWExMDE4OTZkMjcwNjdmNjM1YzNhMDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaApAQCAtMzYsMTAgKzM2LDcgQEAgY2xhc3MgRm9ybU5hbWVkSXRlbTsKIGNsYXNzIEhU
TUxGb3JtRWxlbWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBzdHJ1Y3QgU2ltcGxlUmFu
Z2U7Ci0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rp
b25SZXN1bHQ7Ci0jZW5kaWYKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7CiAKIGVudW0g
Y2xhc3MgRW50ZXJLZXlIaW50IDogdWludDhfdDsKIApAQCAtMTQxLDggKzEzOCw4IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc0ltYWdlT3ZlcmxheVRleHQoY29u
c3QgTm9kZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzSW1hZ2VPdmVybGF5
VGV4dChjb25zdCBOb2RlKik7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VF
eHRyYWN0aW9uUmVzdWx0JiYpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29n
bml0aW9uUmVzdWx0JiYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYTc1ZTM5MDI1NGM3OTM4OTQxOGQ2MGFjMzY3
NmM3M2FjZmQwNWRlMy4uNmQ4NGY2OTQ0ZGY2MTc3NDA1YzFmYWYzYmFiZGUxMGQ5YmJmNTk5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01NzAsOCArNTcwLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VVbml2ZXJzYWxBY2Nlc3Nab29tRm9jdXMoY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSB7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oRWxl
bWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBs
ZXRpb24gPSB7IH0pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKEVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uID0geyB9KQogICAgIHsKICAgICAgICAg
aWYgKGNvbXBsZXRpb24pCiAgICAgICAgICAgICBjb21wbGV0aW9uKHsgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZWQyNmM5MzY1Njg4
ZDE4ZjE3OTE0Nzg2YjNhZjUxYjc0M2JhZDI5NC4uNzEwOTQ1MTQxMmFjMGM2MmI1ZWQ1OTc3Y2Ew
YThjN2E4MTc3MTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcApAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAg
ZnJhbWUtPmVkaXRvcigpLmFwcGx5RGljdGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CiAgICAgICAgIC8vIFRoaXMgc2hvdWxk
IGJlIGhhbmRsZWQgYXQgdGhlIGNsaWVudCBsYXllci4KICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtODMwLDggKzgzMCw4IEBAIHZvaWQgQ29udGV4dE1l
bnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgQ29udGV4dE1lbnVJdGVtIFNlbGVjdEFsbEl0
ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsLCBjb250ZXh0TWVudUl0
ZW1UYWdTZWxlY3RBbGwoKSk7CiAgICAgQ29udGV4dE1lbnVJdGVtIEluc2VydEVtb2ppSXRlbShB
Y3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRFbW9qaSwgY29udGV4dE1lbnVJdGVt
VGFnSW5zZXJ0RW1vamkoKSk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
LSAgICBDb250ZXh0TWVudUl0ZW0gUmV2ZWFsSW1hZ2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRN
ZW51SXRlbVRhZ1JldmVhbEltYWdlLCBjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpKTsK
KyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgQ29udGV4dE1lbnVJdGVtIExvb2tVcElt
YWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSwgY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2UoKSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV0lOKQpAQCAtOTA0LDkgKzkwNCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUo
KSB8fCBpbWFnZSkgewogICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oQ29weUltYWdlSXRlbSwg
bV9jb250ZXh0TWVudS5nZXQoKSk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgICAgICAgICAgICAgaWYgKGltYWdlICYmICFp
bWFnZS0+aXNBbmltYXRlZCgpKQotICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJldmVh
bEltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGFw
cGVuZEl0ZW0oTG9va1VwSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICNlbmRpZgog
ICAgICAgICAgICAgfQogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1l
bnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9jb250ZXh0
LmhpdFRlc3RSZXN1bHQoKS5tZWRpYUhhc0F1ZGlvKCk7CiAgICAgICAgICAgICBzaG91bGRDaGVj
ayA9IHNob3VsZEVuYWJsZSAmJiAgbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYU11dGVk
KCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdS
ZXZlYWxJbWFnZToKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZToK
ICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgICAgICBi
cmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGY2ZTE0
MzQwMzlhZTQ2NDIzNTRhYmM4ZDVjYTVlMzU5MmI2Zjg3Mi4uOTY5ODZiNTMwOTFiYzY5MGU2ZmNk
NGNiMDY3YWJhMDIxYTM1NjA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtMzI0LDggKzMyNCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3Vz
ZURyYWdnZWQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0CiBFdmVudEhhbmRsZXI6
OkV2ZW50SGFuZGxlcihGcmFtZSYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwg
bV9ob3ZlclRpbWVyKCp0aGlzLCAmRXZlbnRIYW5kbGVyOjpob3ZlclRpbWVyRmlyZWQpCi0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgLCBtX2ltYWdlRXh0cmFjdGlvblRpbWVyKCp0
aGlzLCAmRXZlbnRIYW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkLCAyNTBfbXMpCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICwgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRp
bWVyKCp0aGlzLCAmRXZlbnRIYW5kbGVyOjptX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXJGaXJl
ZCwgMjUwX21zKQogI2VuZGlmCiAgICAgLCBtX2F1dG9zY3JvbGxDb250cm9sbGVyKG1ha2VVbmlx
dWU8QXV0b3Njcm9sbENvbnRyb2xsZXI+KCkpCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQpAQCAtMzY3LDggKzM2Nyw4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAjaWYgRU5B
QkxFKENVUlNPUl9WSVNJQklMSVRZKQogICAgIGNhbmNlbEF1dG9IaWRlQ3Vyc29yVGltZXIoKTsK
ICNlbmRpZgotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIG1faW1hZ2VFeHRyYWN0
aW9uVGltZXIuc3RvcCgpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBtX3RleHRS
ZWNvZ25pdGlvbkhvdmVyVGltZXIuc3RvcCgpOwogI2VuZGlmCiAgICAgbV9yZXNpemVMYXllciA9
IG51bGxwdHI7CiAgICAgY2xlYXJFbGVtZW50VW5kZXJNb3VzZSgpOwpAQCAtMTkwNSw5ICsxOTA1
LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCkKICAgICBoaXRUZXN0UmVzdWx0LnNldFRvTm9uVXNlckFnZW50U2hhZG93QW5j
ZXN0b3IoKTsKICAgICBwYWdlLT5jaHJvbWUoKS5tb3VzZURpZE1vdmVPdmVyRWxlbWVudChoaXRU
ZXN0UmVzdWx0LCBldmVudC5tb2RpZmllckZsYWdzKCkpOwogCi0jaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCi0gICAgaWYgKGV2ZW50LnN5bnRoZXRpY0NsaWNrVHlwZSgpID09IE5vVGFwICYm
IG1faW1hZ2VFeHRyYWN0aW9uVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9pbWFnZUV4dHJh
Y3Rpb25UaW1lci5yZXN0YXJ0KCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGlm
IChldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSA9PSBOb1RhcCAmJiBtX3RleHRSZWNvZ25pdGlv
bkhvdmVyVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRp
bWVyLnJlc3RhcnQoKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTI1MzksMTQg
KzI1MzksMTQgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2Rl
KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKIAogICAgIG1fZWxlbWVudFVuZGVy
TW91c2UgPSB0YXJnZXRFbGVtZW50OwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIGlmIChwbGF0Zm9ybU1vdXNlRXZlbnQuc3lu
dGhldGljQ2xpY2tUeXBlKCkgPT0gTm9UYXApIHsKICAgICAgICAgaWYgKG1fZWxlbWVudFVuZGVy
TW91c2UgJiYgaXM8UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRlcmVyKCkp
KQotICAgICAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5yZXN0YXJ0KCk7CisgICAgICAg
ICAgICBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXIucmVzdGFydCgpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKKyAgICAgICAgICAg
IG1fdGV4dFJlY29nbml0aW9uSG92ZXJUaW1lci5zdG9wKCk7CiAgICAgfQotI2VuZGlmCisjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2Zy
YW1lLnBhZ2UoKSkKICAgICAgICAgcGFnZS0+aW1hZ2VPdmVybGF5Q29udHJvbGxlcigpLmVsZW1l
bnRVbmRlck1vdXNlRGlkQ2hhbmdlKG1fZnJhbWUsIG1fZWxlbWVudFVuZGVyTW91c2UuZ2V0KCkp
OwpAQCAtMjYwNyw4ICsyNjA3LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZl
bnRUYXJnZXROb2RlKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKIAogICAgICAg
ICAvLyBFdmVudCBoYW5kbGluZyBtYXkgaGF2ZSBtb3ZlZCB0aGUgZWxlbWVudCB0byBhIGRpZmZl
cmVudCBkb2N1bWVudC4KICAgICAgICAgaWYgKG1fZWxlbWVudFVuZGVyTW91c2UgJiYgJm1fZWxl
bWVudFVuZGVyTW91c2UtPmRvY3VtZW50KCkgIT0gbV9mcmFtZS5kb2N1bWVudCgpKSB7Ci0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRp
bWVyLnN0b3AoKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgICAgICAgICBtX3Rl
eHRSZWNvZ25pdGlvbkhvdmVyVGltZXIuc3RvcCgpOwogI2VuZGlmCiAgICAgICAgICAgICBjbGVh
ckVsZW1lbnRVbmRlck1vdXNlKCk7CiAgICAgICAgIH0KQEAgLTMzOTgsMTggKzMzOTgsMTggQEAg
dm9pZCBFdmVudEhhbmRsZXI6OmhvdmVyVGltZXJGaXJlZCgpCiAgICAgfQogfQogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lk
IEV2ZW50SGFuZGxlcjo6aW1hZ2VFeHRyYWN0aW9uVGltZXJGaXJlZCgpCit2b2lkIEV2ZW50SGFu
ZGxlcjo6bV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQoKQogewogICAgIGlmICghbV9l
bGVtZW50VW5kZXJNb3VzZSB8fCAhaXM8UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2Ut
PnJlbmRlcmVyKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYXV0byogcGFnZSA9IG1f
ZnJhbWUucGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKCptX2VsZW1lbnRVbmRlck1vdXNlKTsKKyAgICAgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbigqbV9lbGVtZW50VW5kZXJNb3VzZSk7
CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVBY2Nlc3NLZXko
Y29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBldmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCmluZGV4IGQ0MjZhMGMyZWY5NGViYjRhNThkNjZmZjUyN2Q2ZWI1MmQzNjY4YTgu
LjlmYjUyYjJlOWZiZDg1NzMxNTM0YTZiMjhhOTFhMzY5YzM3ODc3ZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaApAQCAtMzg4LDggKzM4OCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGhvdmVyVGltZXJGaXJlZCgpOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAg
dm9pZCBpbWFnZUV4dHJhY3Rpb25UaW1lckZpcmVkKCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQorICAgIHZvaWQgbV90ZXh0UmVjb2duaXRpb25Ib3ZlclRpbWVyRmlyZWQoKTsKICNlbmRp
ZgogCiAgICAgYm9vbCBsb2dpY2FsU2Nyb2xsT3ZlcmZsb3coU2Nyb2xsTG9naWNhbERpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIpOwpAQCAt
NTI5LDggKzUyOSw4IEBAIHByaXZhdGU6CiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAgUmVmUHRy
PE5vZGU+IG1fbW91c2VQcmVzc05vZGU7CiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOwotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIERlZmVycmFibGVPbmVTaG90VGltZXIgbV9pbWFn
ZUV4dHJhY3Rpb25UaW1lcjsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgRGVmZXJy
YWJsZU9uZVNob3RUaW1lciBtX3RleHRSZWNvZ25pdGlvbkhvdmVyVGltZXI7CiAjZW5kaWYKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXV0b3Njcm9sbENvbnRyb2xsZXI+IG1fYXV0b3Njcm9sbENvbnRy
b2xsZXI7CiAgICAgUmVuZGVyTGF5ZXIqIG1fcmVzaXplTGF5ZXIgeyBudWxscHRyIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5jcHAKaW5kZXggOTZkMjBkMmYyZjJmMDhhMmRiMDZjMDVkMzBmYTMzODI5M2Uy
ZmM2OC4uMTlhYzMzMjk5YzZhZmFkMmUzMDhlZmEyYjk1NjhkMWYwN2Y3ZTcwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUXVpcmtzLmNwcApAQCAtMTQ2Miw3ICsxNDYyLDcgQEAgYm9vbCBRdWlya3M6OnNob3VsZEJ5
cGFzc1VzZXJHZXN0dXJlUmVxdWlyZW1lbnRGb3JXZWJBdXRobigpIGNvbnN0CiB9CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKIAogYm9vbCBRdWlya3M6Om5lZWRzVG9Gb3JjZVVzZXJTZWxlY3RXaGVuSW5zdGFsbGluZ0lt
YWdlT3ZlcmxheSgpIGNvbnN0CiB7CkBAIC0xNDc2LDYgKzE0NzYsNiBAQCBib29sIFF1aXJrczo6
bmVlZHNUb0ZvcmNlVXNlclNlbGVjdFdoZW5JbnN0YWxsaW5nSW1hZ2VPdmVybGF5KCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5o
CmluZGV4IDM1MmMyYWZmMjE5NjlhMzU0OTg0NWY0NTc5M2FlOWEwZjkyNjdhMjIuLjM2NGMxNmY3
NGYwOWE0ZTg0NzlkNGE0MDAyYTUwN2NkYjRjZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAt
MTUyLDcgKzE1Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHNob3VsZE9taXRIVE1M
RG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgYm9vbCBuZWVkc1RvRm9y
Y2VVc2VyU2VsZWN0V2hlbkluc3RhbGxpbmdJbWFnZU92ZXJsYXkoKSBjb25zdDsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcAppbmRleCA1NDAw
ZWQzZmYyMDYwYTBlN2Y2MTVhOWYzNDI4MTg0YjhjMzAxYTZmLi5iNGFhODg5MmM0Mjg3NDI0NGIx
ZWI2ZDY3NDkyMjkyY2Y3YzU4YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRl
eHRNZW51SXRlbS5jcHAKQEAgLTI1OCw3ICsyNTgsNyBAQCBib29sIGlzVmFsaWRDb250ZXh0TWVu
dUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUFj
dGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9GdWxsc2NyZWVuOgogICAgIGNhc2Ug
Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICBjYXNl
IENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2Vk
RnVsbHNjcmVlbjoKLSAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbWFnZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVu
dUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1l
bnVJdGVtQmFzZUN1c3RvbVRhZzoKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0
TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uaAppbmRleCBkYWM1YzMzZjQ2ZWVmYzdhOTI4NDM4OTczOTMyN2QxOWMxZTgyNjZiLi5m
ZTIwMzI2ZDhjYzhiNzgyMDA3ZWE2ZWM2ODNmMGE5MzAyMDJiNTRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGVudW0gQ29u
dGV4dE1lbnVBY3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5j
ZWRGdWxsc2NyZWVuLAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVu
dEdyb3VwLAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3R3JvdXAsCi0g
ICAgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UsCisgICAgQ29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW1hZ2UsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlLAogICAgIENvbnRl
eHRNZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgIENvbnRleHRNZW51SXRlbUxhc3RD
dXN0b21UYWcgPSA1OTk5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSW1h
Z2VFeHRyYWN0aW9uUmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9JbWFnZUV4dHJh
Y3Rpb25SZXN1bHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY3ZmIzMzA0MGY5
Yzg5M2EzN2I0NDg0YWFlODVjMzVhZGE4N2YwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9JbWFnZUV4dHJhY3Rp
b25SZXN1bHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE4MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0KLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi1PQkpD
X0NMQVNTIEREU2Nhbm5lclJlc3VsdDsKLSNlbmRpZgotCi0jaW5jbHVkZSAiRmxvYXRRdWFkLmgi
Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25UZXh0
RGF0YSB7Ci0gICAgSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGEoY29uc3QgU3RyaW5nJiB0aGVUZXh0
LCBGbG9hdFF1YWQmJiBxdWFkKQotICAgICAgICA6IHRleHQodGhlVGV4dCkKLSAgICAgICAgLCBu
b3JtYWxpemVkUXVhZChXVEZNb3ZlKHF1YWQpKQotICAgIHsKLSAgICB9Ci0KLSAgICBTdHJpbmcg
dGV4dDsKLSAgICBGbG9hdFF1YWQgbm9ybWFsaXplZFF1YWQ7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+
IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIElt
YWdlRXh0cmFjdGlvblRleHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsK
LSAgICBlbmNvZGVyIDw8IHRleHQ7Ci0gICAgZW5jb2RlciA8PCBub3JtYWxpemVkUXVhZDsKLX0K
LQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxJbWFnZUV4dHJhY3Rpb25U
ZXh0RGF0YT4gSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQotewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB0ZXh0OwotICAgIGRlY29kZXIgPj4gdGV4
dDsKLSAgICBpZiAoIXRleHQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBz
dGQ6Om9wdGlvbmFsPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1YWQ7Ci0gICAgZGVjb2RlciA+PiBu
b3JtYWxpemVkUXVhZDsKLSAgICBpZiAoIW5vcm1hbGl6ZWRRdWFkKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKnRleHQpLCBXVEZNb3ZlKCpu
b3JtYWxpemVkUXVhZCkgfX07Ci19Ci0KLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YSB7
Ci0gICAgSW1hZ2VFeHRyYWN0aW9uTGluZURhdGEoRmxvYXRRdWFkJiYgcXVhZCwgVmVjdG9yPElt
YWdlRXh0cmFjdGlvblRleHREYXRhPiYmIHRoZUNoaWxkcmVuKQotICAgICAgICA6IG5vcm1hbGl6
ZWRRdWFkKFdURk1vdmUocXVhZCkpCi0gICAgICAgICwgY2hpbGRyZW4oV1RGTW92ZSh0aGVDaGls
ZHJlbikpCi0gICAgewotICAgIH0KLQotICAgIEZsb2F0UXVhZCBub3JtYWxpemVkUXVhZDsKLSAg
ICBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uVGV4dERhdGE+IGNoaWxkcmVuOwotCi0gICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvbkxp
bmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKLQotc3RydWN0IEltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8gewotICAgIEltYWdl
RXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8oKSA9IGRlZmF1bHQ7Ci0gICAgSW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbyhERFNjYW5uZXJSZXN1bHQgKnNjYW5uZXJSZXN1bHQsIFZlY3Rv
cjxGbG9hdFF1YWQ+JiYgcXVhZHMpCi0gICAgICAgIDogcmVzdWx0KHNjYW5uZXJSZXN1bHQpCi0g
ICAgICAgICwgbm9ybWFsaXplZFF1YWRzKFdURk1vdmUocXVhZHMpKQotICAgIHsKLSAgICB9Ci0K
LSAgICBSZXRhaW5QdHI8RERTY2FubmVyUmVzdWx0PiByZXN1bHQ7Ci0gICAgVmVjdG9yPEZsb2F0
UXVhZD4gbm9ybWFsaXplZFF1YWRzOwotfTsKLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKLQotdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBJbWFnZUV4dHJhY3Rpb25MaW5l
RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBu
b3JtYWxpemVkUXVhZDsKLSAgICBlbmNvZGVyIDw8IGNoaWxkcmVuOwotfQotCi10ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhPiBJbWFn
ZUV4dHJhY3Rpb25MaW5lRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3Rk
OjpvcHRpb25hbDxGbG9hdFF1YWQ+IG5vcm1hbGl6ZWRRdWFkOwotICAgIGRlY29kZXIgPj4gbm9y
bWFsaXplZFF1YWQ7Ci0gICAgaWYgKCFub3JtYWxpemVkUXVhZCkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEltYWdlRXh0cmFjdGlvblRl
eHREYXRhPj4gY2hpbGRyZW47Ci0gICAgZGVjb2RlciA+PiBjaGlsZHJlbjsKLSAgICBpZiAoIWNo
aWxkcmVuKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7IFdU
Rk1vdmUoKm5vcm1hbGl6ZWRRdWFkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OwotfQotCi1zdHJ1
Y3QgSW1hZ2VFeHRyYWN0aW9uUmVzdWx0IHsKLSAgICBWZWN0b3I8SW1hZ2VFeHRyYWN0aW9uTGlu
ZURhdGE+IGxpbmVzOwotCi0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgIFZlY3RvcjxJ
bWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPiBkYXRhRGV0ZWN0b3JzOwotI2VuZGlmCi0K
LSAgICBib29sIGlzRW1wdHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFsaW5lcy5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCi0gICAgICAgIGlmICghZGF0YURldGVjdG9ycy5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0K
LSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VF
eHRyYWN0aW9uUmVzdWx0PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbGluZXM7Ci0jaWYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQotICAgIGVuY29kZXIgPDwgZGF0YURldGVjdG9yczsKLSNlbmRpZgotfQotCi10ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPEltYWdlRXh0cmFjdGlvblJlc3VsdD4g
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25MaW5lRGF0YT4+IGxpbmVzOwotICAg
IGRlY29kZXIgPj4gbGluZXM7Ci0gICAgaWYgKCFsaW5lcykKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLQotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPj4gZGF0YURldGVjdG9yczsK
LSAgICBkZWNvZGVyID4+IGRhdGFEZXRlY3RvcnM7Ci0gICAgaWYgKCFkYXRhRGV0ZWN0b3JzKQot
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCi0KLSAgICByZXR1cm4ge3sKLSAg
ICAgICAgV1RGTW92ZSgqbGluZXMpLAotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKLSAgICAg
ICAgV1RGTW92ZSgqZGF0YURldGVjdG9ycyksCi0jZW5kaWYKLSAgICB9fTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggNGYzOTk0MjVj
NGY0NmQ0NDdiMDc0ZTNjYjFlYzE4MDVkNjA3NmIzNS4uYjM5ODYzY2FiYzY1MTRlYWQyNTA0MDk4
NThiZDM5ZjUwYWEyMzdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuaApAQCAtMzY2LDggKzM2Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgZ2VuZXJpY1RvdWNoSURQcm9tcHRUaXRsZSgpOwogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcElt
YWdlKCk7CiAjZW5kaWYKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHRSZWNvZ25pdGlvblJlc3VsdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhjMGMxZWUyNDczYjE4NGZmY2IyYWViOGViYzg3YTAxODU3NzNjMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaApA
QCAtMCwwICsxLDE4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKK09CSkNfQ0xBU1MgRERTY2FubmVyUmVzdWx0OworI2Vu
ZGlmCisKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IFRleHRSZWNvZ25pdGlvbldvcmREYXRhIHsKKyAgICBUZXh0UmVjb2duaXRpb25X
b3JkRGF0YShjb25zdCBTdHJpbmcmIHRoZVRleHQsIEZsb2F0UXVhZCYmIHF1YWQpCisgICAgICAg
IDogdGV4dCh0aGVUZXh0KQorICAgICAgICAsIG5vcm1hbGl6ZWRRdWFkKFdURk1vdmUocXVhZCkp
CisgICAgeworICAgIH0KKworICAgIFN0cmluZyB0ZXh0OworICAgIEZsb2F0UXVhZCBub3JtYWxp
emVkUXVhZDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxUZXh0UmVjb2duaXRpb25Xb3JkRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgVGV4dFJlY29nbml0aW9uV29yZERhdGE6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGV4dDsKKyAgICBl
bmNvZGVyIDw8IG5vcm1hbGl6ZWRRdWFkOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbldvcmREYXRhPiBUZXh0UmVjb2duaXRpb25Xb3Jk
RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IHRleHQ7CisgICAgZGVjb2RlciA+PiB0ZXh0OworICAgIGlmICghdGV4dCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRRdWFkPiBub3Jt
YWxpemVkUXVhZDsKKyAgICBkZWNvZGVyID4+IG5vcm1hbGl6ZWRRdWFkOworICAgIGlmICghbm9y
bWFsaXplZFF1YWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
e3sgV1RGTW92ZSgqdGV4dCksIFdURk1vdmUoKm5vcm1hbGl6ZWRRdWFkKSB9fTsKK30KKworc3Ry
dWN0IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhIHsKKyAgICBUZXh0UmVjb2duaXRpb25MaW5lRGF0
YShGbG9hdFF1YWQmJiBxdWFkLCBWZWN0b3I8VGV4dFJlY29nbml0aW9uV29yZERhdGE+JiYgdGhl
Q2hpbGRyZW4pCisgICAgICAgIDogbm9ybWFsaXplZFF1YWQoV1RGTW92ZShxdWFkKSkKKyAgICAg
ICAgLCBjaGlsZHJlbihXVEZNb3ZlKHRoZUNoaWxkcmVuKSkKKyAgICB7CisgICAgfQorCisgICAg
RmxvYXRRdWFkIG5vcm1hbGl6ZWRRdWFkOworICAgIFZlY3RvcjxUZXh0UmVjb2duaXRpb25Xb3Jk
RGF0YT4gY2hpbGRyZW47CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0aW9uTGluZURhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9
OworCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCitzdHJ1Y3QgVGV4dFJlY29nbml0aW9u
RGF0YURldGVjdG9yIHsKKyAgICBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IoKSA9IGRlZmF1
bHQ7CisgICAgVGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yKEREU2Nhbm5lclJlc3VsdCAqc2Nh
bm5lclJlc3VsdCwgVmVjdG9yPEZsb2F0UXVhZD4mJiBxdWFkcykKKyAgICAgICAgOiByZXN1bHQo
c2Nhbm5lclJlc3VsdCkKKyAgICAgICAgLCBub3JtYWxpemVkUXVhZHMoV1RGTW92ZShxdWFkcykp
CisgICAgeworICAgIH0KKworICAgIFJldGFpblB0cjxERFNjYW5uZXJSZXN1bHQ+IHJlc3VsdDsK
KyAgICBWZWN0b3I8RmxvYXRRdWFkPiBub3JtYWxpemVkUXVhZHM7Cit9OworCisjZW5kaWYgLy8g
RU5BQkxFKERBVEFfREVURUNUSU9OKQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIFRl
eHRSZWNvZ25pdGlvbkxpbmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG5vcm1hbGl6ZWRRdWFkOworICAgIGVuY29kZXIgPDwgY2hpbGRyZW47
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8VGV4dFJlY29nbml0
aW9uTGluZURhdGE+IFRleHRSZWNvZ25pdGlvbkxpbmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UXVhZD4gbm9ybWFsaXplZFF1YWQ7Cisg
ICAgZGVjb2RlciA+PiBub3JtYWxpemVkUXVhZDsKKyAgICBpZiAoIW5vcm1hbGl6ZWRRdWFkKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
VGV4dFJlY29nbml0aW9uV29yZERhdGE+PiBjaGlsZHJlbjsKKyAgICBkZWNvZGVyID4+IGNoaWxk
cmVuOworICAgIGlmICghY2hpbGRyZW4pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4ge3sgV1RGTW92ZSgqbm9ybWFsaXplZFF1YWQpLCBXVEZNb3ZlKCpjaGlsZHJl
bikgfX07Cit9CisKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQgeworICAgIFZlY3RvcjxU
ZXh0UmVjb2duaXRpb25MaW5lRGF0YT4gbGluZXM7CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisgICAgVmVjdG9yPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gZGF0YURldGVjdG9y
czsKKyNlbmRpZgorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlm
ICghbGluZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQorICAgICAgICBpZiAoIWRhdGFEZXRlY3RvcnMuaXNFbXB0eSgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFRleHRSZWNvZ25pdGlvblJlc3VsdD4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgVGV4dFJlY29nbml0aW9uUmVzdWx0OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGxpbmVzOworI2lmIEVO
QUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBlbmNvZGVyIDw8IGRhdGFEZXRlY3RvcnM7CisjZW5k
aWYKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxUZXh0UmVjb2du
aXRpb25SZXN1bHQ+IFRleHRSZWNvZ25pdGlvblJlc3VsdDo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8VGV4dFJlY29nbml0aW9uTGluZURhdGE+
PiBsaW5lczsKKyAgICBkZWNvZGVyID4+IGxpbmVzOworICAgIGlmICghbGluZXMpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPj4gZGF0YURl
dGVjdG9yczsKKyAgICBkZWNvZGVyID4+IGRhdGFEZXRlY3RvcnM7CisgICAgaWYgKCFkYXRhRGV0
ZWN0b3JzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisKKyAgICByZXR1
cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqbGluZXMpLAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKKyAgICAgICAgV1RGTW92ZSgqZGF0YURldGVjdG9ycyksCisjZW5kaWYKKyAgICB9fTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVk
U3RyaW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVk
U3RyaW5nc0NvY29hLm1tCmluZGV4IGY2OGNlNDViM2YzZjc5ZTY5MmUyMDZjZWY5ZTg4MmFiYjdh
ZTk1MzQuLmU5NWZiNjUyZGZmNzEzOWQ3MDQ1M2UxNjdiNzE0OTU3ZDQ3ZTZmMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29j
b2EubW0KQEAgLTMxMiwxMSArMzEyLDEzIEBAIFN0cmluZyBleGl0RnVsbFNjcmVlbkJ1dHRvbkFj
Y2Vzc2liaWxpdHlUaXRsZSgpCiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi1TdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1h
Z2UoKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEltYWdlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemVkTlNTdHJpbmcoQCJSZXZl
YWwgSW1hZ2UiKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCIsICJUaXRsZSBm
b3IgTG9vayBVcCBhY3Rpb24gYnV0dG9uIik7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYjAwYWI0ZWE5
MDkxNDc2N2E0YzYzMGZlMTViNGM1NThjMzhhZDI2ZS4uZjExMWMyNTM3OTVkMDc1OTA2ZWI1ZDc5
NDYyOGEwZjIyYWE0YTc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
MzQ1LDggKzM0NSw4IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgiCiAjZW5k
aWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2luY2x1ZGUgIkltYWdlRXh0cmFj
dGlvblJlc3VsdC5oIgorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyNpbmNsdWRlICJUZXh0
UmVjb2duaXRpb25SZXN1bHQuaCIKICNlbmRpZgogCiB1c2luZyBKU0M6OkNhbGxEYXRhOwpAQCAt
NTYwNSw3ICs1NjA1LDcgQEAgTW9ja1BheW1lbnRDb29yZGluYXRvciYgSW50ZXJuYWxzOjptb2Nr
UGF5bWVudENvb3JkaW5hdG9yKERvY3VtZW50JiBkb2N1bWVudCkKIEludGVybmFsczo6SW1hZ2VP
dmVybGF5TGluZTo6fkltYWdlT3ZlcmxheUxpbmUoKSA9IGRlZmF1bHQ7CiBJbnRlcm5hbHM6Oklt
YWdlT3ZlcmxheVRleHQ6On5JbWFnZU92ZXJsYXlUZXh0KCkgPSBkZWZhdWx0OwogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogc3RhdGljIEZsb2F0UXVhZCBnZXRRdWFkKGNvbnN0IFQmIG92ZXJs
YXlUZXh0T3JMaW5lKQpAQCAtNTYxOCwyNiArNTYxOCwyNiBAQCBzdGF0aWMgRmxvYXRRdWFkIGdl
dFF1YWQoY29uc3QgVCYgb3ZlcmxheVRleHRPckxpbmUpCiAgICAgfTsKIH0KIAotc3RhdGljIElt
YWdlRXh0cmFjdGlvbkxpbmVEYXRhIG1ha2VEYXRhRm9yTGluZShjb25zdCBJbnRlcm5hbHM6Oklt
YWdlT3ZlcmxheUxpbmUmIGxpbmUpCitzdGF0aWMgVGV4dFJlY29nbml0aW9uTGluZURhdGEgbWFr
ZURhdGFGb3JMaW5lKGNvbnN0IEludGVybmFsczo6SW1hZ2VPdmVybGF5TGluZSYgbGluZSkKIHsK
ICAgICByZXR1cm4gewogICAgICAgICBnZXRRdWFkPEludGVybmFsczo6SW1hZ2VPdmVybGF5TGlu
ZT4obGluZSksCi0gICAgICAgIGxpbmUuY2hpbGRyZW4ubWFwKFtdKGF1dG8mIHRleHRDaGlsZCkg
LT4gSW1hZ2VFeHRyYWN0aW9uVGV4dERhdGEgeworICAgICAgICBsaW5lLmNoaWxkcmVuLm1hcChb
XShhdXRvJiB0ZXh0Q2hpbGQpIC0+IFRleHRSZWNvZ25pdGlvbldvcmREYXRhIHsKICAgICAgICAg
ICAgIHJldHVybiB7IHRleHRDaGlsZC50ZXh0LCBnZXRRdWFkPEludGVybmFsczo6SW1hZ2VPdmVy
bGF5VGV4dD4odGV4dENoaWxkKSB9OwogICAgICAgICB9KQogICAgIH07CiB9CiAKLSNlbmRpZiAv
LyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCiAKIHZvaWQgSW50ZXJuYWxzOjppbnN0YWxsSW1hZ2VPdmVybGF5KEVsZW1lbnQmIGVsZW1l
bnQsIFZlY3RvcjxJbWFnZU92ZXJsYXlMaW5lPiYmIGxpbmVzKQogewogICAgIGlmICghaXM8SFRN
TEVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLSAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oZWxlbWVudCkudXBkYXRlV2l0
aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQgewotICAgICAgICBs
aW5lcy5tYXAoW10gKGF1dG8mIGxpbmUpIC0+IEltYWdlRXh0cmFjdGlvbkxpbmVEYXRhIHsKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KGVsZW1l
bnQpLnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29nbml0aW9uUmVzdWx0
IHsKKyAgICAgICAgbGluZXMubWFwKFtdIChhdXRvJiBsaW5lKSAtPiBUZXh0UmVjb2duaXRpb25M
aW5lRGF0YSB7CiAgICAgICAgICAgICByZXR1cm4gbWFrZURhdGFGb3JMaW5lKGxpbmUpOwogICAg
ICAgICB9KQogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDkwNGNiY2JmZTg2ZGU0OGQwZDRiYmNiNjI5ZjNjZmNmNGFiNzkwYjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDMw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0
aWVzQWRkaXRpb25zLmg+Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vY29jb2EvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQwZTU2ZmE1ZWM0Y2I1MDQ0N2FiYzYzY2UzOThhNGVlMmI4YWQzZDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMubW0KKysrIC9kZXYvbnVs
bApAQCAtMSwzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0ICJJbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMuaCIKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVz
QWRkaXRpb25zLm1tPgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzlmZTczNjY1
Njk0ZTRkMmQ4NTlkOTdmODRiYmRkYmI0MmZjOGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCisKK0BjbGFzcyBWS0ltYWdlQW5hbHlzaXM7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitib29sIGlzTGl2ZVRleHRFbmFibGVkKCk7CitXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25S
ZXN1bHQgbWFrZVRleHRSZWNvZ25pdGlvblJlc3VsdChWS0ltYWdlQW5hbHlzaXMgKik7CisKK30K
KworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTNhNmEzM2ViNjJkYzBmNGZjZWI0ZDc0YzA1YTVmZTkxMmNhNDNhNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRp
bGl0aWVzLm1tCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKworI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0ltYWdlQW5hbHlzaXNf
V2ViS2l0Lmg+CisjaW1wb3J0IDxWaXNpb25LaXRDb3JlL1ZLUXVhZC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRmVh
dHVyZUZsYWdzU1BJLmg+CisKKy8vIE5vdGUgdGhhdCB0aGlzIGlzIGFjdHVhbGx5IGRlY2xhcmVk
IGFzIGFuIE9iamVjdGl2ZS1DIGNsYXNzIGluIFZpc2lvbktpdCBoZWFkZXJzLgorLy8gSG93ZXZl
ciwgZm9yIHN0YWdpbmcgcHVycG9zZXMsIHdlIGRlZmluZSBpdCBhcyBhIHByb3RvY29sIGluc3Rl
YWQgdG8gYXZvaWQgc3ltYm9sCisvLyByZWRlZmluaXRpb24gZXJyb3JzIHRoYXQgd291bGQgYXJp
c2Ugd2hlbiBjb21waWxpbmcgd2l0aCBhbiBTREsgdGhhdCBjb250YWlucyB0aGUKKy8vIHJlYWwg
ZGVmaW5pdGlvbiBvZiBWS1dLRGF0YURldGVjdG9ySW5mby4KKy8vIE9uY2UgdGhlIGNoYW5nZXMg
aW4gcmRhcjovLzc3OTc4NzQ1IGhhdmUgYmVlbiBpbiB0aGUgU0RLIGZvciBhIHdoaWxlLCB3ZSBj
YW4gcmVtb3ZlCisvLyB0aGlzIHN0YWdpbmcgZGVjbGFyYXRpb24gYW5kIHVzZSB0aGUgcmVhbCBP
YmplY3RpdmUtQyBjbGFzcy4KK0Bwcm90b2NvbCBWS1dLRGF0YURldGVjdG9ySW5mbworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBERFNjYW5uZXJSZXN1bHQgKnJlc3VsdDsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxWS1F1YWQgKj4gKmJvdW5kaW5nUXVh
ZHM7CitAZW5kCisKK0BpbnRlcmZhY2UgVktJbWFnZUFuYWx5c2lzIChTdGFnaW5nXzc3OTc4NzQ1
KQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PGlkIDxWS1dLRGF0YURl
dGVjdG9ySW5mbz4+ICp0ZXh0RGF0YURldGVjdG9yczsKK0BlbmQKKworQGludGVyZmFjZSBWS1dL
VGV4dEluZm8gKFN0YWdpbmdfNzcwODYxMDUpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TQXJyYXk8VktXS1RleHRJbmZvICo+ICpjaGlsZHJlbjsKK0BlbmQKKworbmFtZXNwYWNl
IFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIEZsb2F0UXVhZCBm
bG9hdFF1YWQoVktRdWFkICpxdWFkKQoreworICAgIHJldHVybiB7IHF1YWQudG9wTGVmdCwgcXVh
ZC50b3BSaWdodCwgcXVhZC5ib3R0b21SaWdodCwgcXVhZC5ib3R0b21MZWZ0IH07Cit9CisKK3N0
YXRpYyBWZWN0b3I8RmxvYXRRdWFkPiBmbG9hdFF1YWRzKE5TQXJyYXk8VktRdWFkICo+ICp2a1F1
YWRzKQoreworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOworICAgIHF1YWRzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodmtRdWFkcy5jb3VudCk7CisgICAgZm9yIChWS1F1YWQgKnZrUXVhZCBp
biB2a1F1YWRzKQorICAgICAgICBxdWFkcy51bmNoZWNrZWRBcHBlbmQoZmxvYXRRdWFkKHZrUXVh
ZCkpOworICAgIHJldHVybiBxdWFkczsKK30KKworVGV4dFJlY29nbml0aW9uUmVzdWx0IG1ha2VU
ZXh0UmVjb2duaXRpb25SZXN1bHQoVktJbWFnZUFuYWx5c2lzICphbmFseXNpcykKK3sKKyAgICBO
U0FycmF5PFZLV0tUZXh0SW5mbyAqPiAqYWxsTGluZXMgPSBhbmFseXNpcy5hbGxMaW5lczsKKyAg
ICBUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdC5saW5lcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGFsbExpbmVzLmNvdW50KTsKKyAgICBmb3IgKFZLV0tUZXh0SW5mbyAq
bGluZSBpbiBhbGxMaW5lcykgeworICAgICAgICBWZWN0b3I8VGV4dFJlY29nbml0aW9uV29yZERh
dGE+IGNoaWxkcmVuOworICAgICAgICBpZiAoW2xpbmUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihjaGlsZHJlbildKSB7CisgICAgICAgICAgICBOU0FycmF5PFZLV0tUZXh0SW5mbyAqPiAq
dmtDaGlsZHJlbiA9IGxpbmUuY2hpbGRyZW47CisgICAgICAgICAgICBjaGlsZHJlbi5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHZrQ2hpbGRyZW4uY291bnQpOworICAgICAgICAgICAgZm9yIChWS1dL
VGV4dEluZm8gKmNoaWxkIGluIHZrQ2hpbGRyZW4pCisgICAgICAgICAgICAgICAgY2hpbGRyZW4u
dW5jaGVja2VkQXBwZW5kKHsgY2hpbGQuc3RyaW5nLCBmbG9hdFF1YWQoY2hpbGQucXVhZCkgfSk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKHsgbGluZS5zdHJp
bmcsIGZsb2F0UXVhZChsaW5lLnF1YWQpIH0pOworICAgICAgICByZXN1bHQubGluZXMudW5jaGVj
a2VkQXBwZW5kKHsgZmxvYXRRdWFkKGxpbmUucXVhZCksIFdURk1vdmUoY2hpbGRyZW4pIH0pOwor
ICAgIH0KKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBpZiAoW2FuYWx5c2lzIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IodGV4dERhdGFEZXRlY3RvcnMpXSkgeworICAgICAg
ICBhdXRvIGRhdGFEZXRlY3RvcnMgPSByZXRhaW5QdHIoYW5hbHlzaXMudGV4dERhdGFEZXRlY3Rv
cnMpOworICAgICAgICByZXN1bHQuZGF0YURldGVjdG9ycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KFtkYXRhRGV0ZWN0b3JzIGNvdW50XSk7CisgICAgICAgIGZvciAoaWQgPFZLV0tEYXRhRGV0ZWN0
b3JJbmZvPiBpbmZvIGluIGRhdGFEZXRlY3RvcnMuZ2V0KCkpCisgICAgICAgICAgICByZXN1bHQu
ZGF0YURldGVjdG9ycy51bmNoZWNrZWRBcHBlbmQoeyBpbmZvLnJlc3VsdCwgZmxvYXRRdWFkcyhp
bmZvLmJvdW5kaW5nUXVhZHMpIH0pOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVz
QWRkaXRpb25zLm1tPgorI2Vsc2UKKworYm9vbCBpc0xpdmVUZXh0RW5hYmxlZCgpCit7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggNjNhMmQ3OTg4MGRkMWM0OGMzZjgzNTBmMWRlYjY1
ZTUxMjA5YmNhYS4uNWQxMDQ5Mzk5MWMzZWJjNDBkYmEwMmIzOWE3Zjk1ZjBhMGM0M2I5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTU0Myw3
ICs1NDMsNyBAQCBpbmxpbmUgV0tDb250ZXh0TWVudUl0ZW1UYWcgdG9BUEkoV2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogI2VuZGlmCiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1U
YWdTaGFyZU1lbnU7Ci0gICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZToKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgog
ICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U7CiAgICAgY2Fz
ZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU6CiAgICAgICAgIHJldHVybiBr
V0tDb250ZXh0TWVudUl0ZW1UYWdUcmFuc2xhdGU7CkBAIC03NDYsNyArNzQ2LDcgQEAgaW5saW5l
IFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIHRvSW1wbChXS0NvbnRleHRNZW51SXRlbVRhZyB0
YWcpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdTaGFyZU1lbnU7
CiAjZW5kaWYKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZTsKICAgICBj
YXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbVRhZ1RyYW5zbGF0ZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCBlNTdkZTcx
ODRjODE5M2EwYWQzMmUwNTBjODk0MjVmNTdjOTcxNjg1Li4yYmIxMmMyNzhkNWFkZjIwOGYyNThi
YzJlZThlNDY4N2EyZGI2MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpAQCAtMzYsNiArMzYsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPHBh
bC9zcGkvY2YvQ29yZVRleHRTUEkuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01
MSwxMCArNTIsNiBAQAogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDb2NvYUFkZGl0aW9ucy5tbT4KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCi0jaW1wb3J0IDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oPgotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2lt
cG9ydCA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgpAQCAtNjg0LDE0ICs2
ODEsMTQgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY28KIH0KICNlbmRpZgogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAotdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRhdGFEZXRlY3RvckluZm8+OjplbmNvZGVQ
bGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbyYgaW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpU
ZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJiBpbmZv
KQogewogICAgIGVuY29kZXIgPDwgaW5mby5yZXN1bHQuZ2V0KCk7CiB9CiAKLWJvb2wgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2Rl
UGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRh
dGFEZXRlY3RvckluZm8mIHJlc3VsdCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVj
b2RlciwgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yJiByZXN1bHQpCiB7CiAg
ICAgYXV0byBzY2FubmVyUmVzdWx0ID0gSVBDOjpkZWNvZGU8RERTY2FubmVyUmVzdWx0PihkZWNv
ZGVyLCBAWyBQQUw6OmdldEREU2Nhbm5lclJlc3VsdENsYXNzKCkgXSk7CiAgICAgaWYgKCFzY2Fu
bmVyUmVzdWx0KQpAQCAtNzAxLDYgKzY5OCw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2RlUGxhdGZvcm1EYXRhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikg
JiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3N2I2NTVmYTljNmNmMGYxZmYwOWViY2ZiYTVm
NGU5MGYxNzMxYWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVw
ZGF0ZVJlc3VsdCA6IHVpbnQ4X3QgewotICAgIE5vVGV4dCwKLSAgICBUZXh0LAotICAgIERhdGFE
ZXRlY3RvciwKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1uYW1lc3BhY2UgV1RGIHsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVw
ZGF0ZVJlc3VsdD4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdl
YktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LAotICAgICAgICBXZWJLaXQ6OkltYWdl
RXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6Tm9UZXh0LAotICAgICAgICBXZWJLaXQ6OkltYWdlRXh0
cmFjdGlvblVwZGF0ZVJlc3VsdDo6VGV4dCwKLSAgICAgICAgV2ViS2l0OjpJbWFnZUV4dHJhY3Rp
b25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcgotICAgID47Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXVEYKLQotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9UZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYWFjZTQ3ZDZjNWM5ZTMyZjI0MjBmZWVhNWEyNGIzYmY4MzEwNGU2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmgK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDog
dWludDhfdCB7CisgICAgTm9UZXh0LAorICAgIFRleHQsCisgICAgRGF0YURldGVjdG9yLAorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0PiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViS2l0OjpUZXh0UmVj
b2duaXRpb25VcGRhdGVSZXN1bHQsCisgICAgICAgIFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBk
YXRlUmVzdWx0OjpOb1RleHQsCisgICAgICAgIFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRl
UmVzdWx0OjpUZXh0LAorICAgICAgICBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3Vs
dDo6RGF0YURldGVjdG9yCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMDg3ODhjODJmMmEzNjY2YmQxNTVkZmMzZTQ1
NmIwYmJlNTEwMmU0YS4uOTFkMjFkOGYyMzZiZDE4ODMyYjUwZDJjYWQzMTFjYzZmMjQ4OGNlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBA
IC0xMTYsOCArMTE2LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0jaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNlbmRpZgogCiAvLyBG
SVhNRTogU2VlbXMgbGlrZSB3ZSBjb3VsZCB1c2Ugc3RkOjp0dXBsZSB0byBjdXQgZG93biB0aGUg
Y29kZSBiZWxvdyBhIGxvdCEKQEAgLTMyMjUsMTcgKzMyMjUsMTcgQEAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6QWN0aXZlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpHcmEKIAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW1hZ2VFeHRyYWN0aW9uRGF0
YURldGVjdG9ySW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbWFnZUV4dHJh
Y3Rpb25EYXRhRGV0ZWN0b3JJbmZvJiBpbmZvKQordm9pZCBBcmd1bWVudENvZGVyPFRleHRSZWNv
Z25pdGlvbkRhdGFEZXRlY3Rvcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0
UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImIGluZm8pCiB7CiAgICAgZW5jb2RlUGxhdGZvcm1EYXRh
KGVuY29kZXIsIGluZm8pOwogICAgIGVuY29kZXIgPDwgaW5mby5ub3JtYWxpemVkUXVhZHM7CiB9
CiAKLXN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbz4gQXJndW1l
bnRDb2RlcjxJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCitzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJn
dW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKIHsKLSAgICBJbWFnZUV4dHJhY3Rpb25EYXRhRGV0ZWN0b3JJbmZvIHJlc3VsdDsK
KyAgICBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3IgcmVzdWx0OwogICAgIGlmICghZGVjb2Rl
UGxhdGZvcm1EYXRhKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKQEAgLTMyNDgsNiArMzI0OCw2IEBAIHN0ZDo6b3B0aW9uYWw8SW1hZ2VFeHRyYWN0aW9u
RGF0YURldGVjdG9ySW5mbz4gQXJndW1lbnRDb2RlcjxJbWFnZUV4dHJhY3Rpb25EYXRhCiAgICAg
cmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisjZW5kaWYgLy8gRU5BQkxFKElNQUdF
X0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKIH0gLy8gbmFtZXNwYWNlIElQ
QwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBk
YWU4MGZmN2RkMjU0Mjg5MTIxYjQxMzQwYjc3ZDBmOWM0ZjUwNjJkLi45Mzk3YjMyOGFiMTU2YmY2
YmJiMzgxMDUwN2QxMGYzZWFjOTUwNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTUwLDcgKzE1MCw3IEBAIHN0cnVjdCBFdmVudFRyYWNr
aW5nUmVnaW9uczsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IEZvbnRBdHRyaWJ1
dGVzOwogc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7Ci1zdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9u
RGF0YURldGVjdG9ySW5mbzsKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3I7CiBz
dHJ1Y3QgUmF3RmlsZTsKIHN0cnVjdCBTaGFyZURhdGE7CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBh
cnNlZFVSTDsKQEAgLTg0MiwxNiArODQyLDE2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OkFjdGl2ZUluZm8+IHsKIH07CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04p
CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uRGF0YURldGVjdG9ySW5mbyYpOwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbWFnZUV4dHJh
Y3Rpb25EYXRhRGV0ZWN0b3JJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwotICAgIHN0YXRpYyB2b2lk
IGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uRGF0YURldGVjdG9ySW5mbyYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvbkRh
dGFEZXRlY3RvckluZm8mKTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6VGV4dFJlY29nbml0aW9uRGF0YURldGVjdG9yPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25EYXRhRGV0ZWN0b3ImKTsK
KyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uRGF0YURldGVjdG9yPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dFJlY29n
bml0aW9uRGF0YURldGVjdG9yJik7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uRGF0
YURldGVjdG9yJik7CiB9OwogCi0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMp
ICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAogfSAvLyBuYW1lc3BhY2UgSVBDCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAppbmRleCBmMjNkMjFlYjgzYWQ1ZDFmNDQ4MjI4MjgwZjVmYmM2NTQwNzA5
MzgxLi44Y2ZjNjA3NGQwNTYyYWE1ODJjNWMwZDIzNDg4ZWU2MzZiMmM5YTljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC03NSwxMSArNzUsMTEgQEAgUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3Bw
CiBQbGF0Zm9ybS9jbGFzc2lmaWVyL2NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lm
aWVyQ29jb2EuY3BwCiBQbGF0Zm9ybS9jbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3ND
bGFzc2lmaWVyLmNwcAogCi1QbGF0Zm9ybS9jb2NvYS9JbWFnZUV4dHJhY3Rpb25VdGlsaXRpZXMu
bW0KIFBsYXRmb3JtL2NvY29hL0xheWVySG9zdGluZ0NvbnRleHQubW0KIFBsYXRmb3JtL2NvY29h
L1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50
QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9TaGFyZWRNZW1v
cnlDb2NvYS5jcHAKK1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbQog
UGxhdGZvcm0vY29jb2EvV0tDcmFzaFJlcG9ydGVyLm1tCiBQbGF0Zm9ybS9jb2NvYS9XS1BheW1l
bnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KIFBsYXRmb3JtL2NvY29hL1dlYktpdEFkZGl0aW9u
cy5tbSBAbm8tdW5pZnkKQEAgLTQ4NSw3ICs0ODUsNyBAQCBVSVByb2Nlc3MvaW9zL1dLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tCiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1
cml0eU9yaWdpbi5tbQogVUlQcm9jZXNzL2lvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyLm1tCi1VSVByb2Nlc3MvaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIubW0KK1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIu
bW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tCiBVSVByb2Nl
c3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW0KQEAgLTUyNCw3ICs1MjQsNiBAQCBVSVByb2Nlc3MvbWFjL1dlYlBv
cHVwTWVudVByb3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQog
VUlQcm9jZXNzL21hYy9XaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tCiBVSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KLVVJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJh
Y3Rpb25QcmV2aWV3Q29udHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KIFVJUHJvY2Vz
cy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tCkBAIC01MzIsNiArNTMxLDcgQEAgVUlQcm9j
ZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9tYWMv
V0tUZXh0RmluZGVyQ2xpZW50Lm1tCiBVSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29u
dHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQorVUlQcm9j
ZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLm1tCiAKIFVJUHJvY2Vzcy9N
ZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0KIFVJ
UHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCmlu
ZGV4IGVmY2M1MzU0Y2JkYjU5MTQ5YTMwNDZiYjM1MzAxNWUwNGI2YmI0ZDEuLmMzN2ZjODY5ZDgy
Yzc0ZDEwOGY3ZDY4NzM0YWE5OTJmNjliYjNkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCkBAIC0xNjIsMTYgKzE2
MiwxNiBAQCArIChpbnN0YW5jZXR5cGUpX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVu
dEFjdGlvblR5cGUpdHlwZSBjdXN0b21UaXRsZTooTgogICAgICAgICAvLyBUaGlzIGFjdGlvbiBt
dXN0IHN0aWxsIGV4aXN0IGZvciBjb21wYXRpYmlsaXR5LCBidXQgZG9lc24ndCBkbyBhbnl0aGlu
Zy4KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0
cmFjdGlvbjoKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgdGl0bGUgPSBX
ZWJDb3JlOjpsb2NhbGl6ZWROU1N0cmluZyhAIkdldCBJbmZvIik7CisjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQorICAgICAgICB0aXRsZSA9IFdFQl9VSV9TVFJJTkcoIlNob3cgVGV4dCIsICJU
aXRsZSBmb3IgU2hvdyBUZXh0IGFjdGlvbiBidXR0b24iKTsKICAgICAgICAgaGFuZGxlciA9IF4o
V0tBY3Rpb25TaGVldEFzc2lzdGFudCAqYXNzaXN0YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqYWN0aW9uSW5mbykgewogICAgICAgICAgICAgW2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0
aW9uV2l0aFR5cGU6dHlwZSBlbGVtZW50OmFjdGlvbkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNd
OwogICAgICAgICB9OwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxlbWVu
dEFjdGlvblR5cGVSZXZlYWxJbWFnZToKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSgpOwogICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlv
blNoZWV0QXNzaXN0YW50ICphc3Npc3RhbnQsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rp
b25JbmZvKSB7CiAgICAgICAgICAgICBbYXNzaXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRo
VHlwZTp0eXBlIGVsZW1lbnQ6YWN0aW9uSW5mbyBuZWVkc0ludGVyYWN0aW9uOllFU107CiAgICAg
ICAgIH07CkBAIC0yNDQsMTQgKzI0NCwxNCBAQCArIChVSUltYWdlICopaW1hZ2VGb3JFbGVtZW50
QWN0aW9uVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpYWN0aW9uVHlwZQogICAgIGNhc2UgX1dL
RWxlbWVudEFjdGlvblRvZ2dsZVNob3dMaW5rUHJldmlld3M6CiAgICAgICAgIHJldHVybiBuaWw7
IC8vIEludGVudGlvbmFsbHkgZW1wdHkuCiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUlt
YWdlRXh0cmFjdGlvbjoKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgcmV0
dXJuIFtfV0tFbGVtZW50QWN0aW9uIGltYWdlRm9yRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJh
Y3Rpb25dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgcmV0dXJuIFtVSUlt
YWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJ0ZXh0LnZpZXdmaW5kZXIiXTsKICNlbHNlCiAgICAgICAg
IHJldHVybiBuaWw7CiAjZW5kaWYKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFs
SW1hZ2U6Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHJldHVybiBbX1dL
RWxlbWVudEFjdGlvbiBpbWFnZUZvckVsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2VdOworI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgcmV0dXJuIFtVSUltYWdlIHN5c3RlbUlt
YWdlTmFtZWQ6QCJpbmZvLmNpcmNsZSJdOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG5pbDsKICNl
bmRpZgpAQCAtMzU4LDEwICszNTgsNiBAQCAtIChVSUFjdGlvbiAqKXVpQWN0aW9uRm9yRWxlbWVu
dEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8KIH0KICNlbmRpZiAv
LyBVU0UoVUlDT05URVhUTUVOVSkKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvX1dLRWxlbWVudEFjdGlvbkFkZGl0aW9ucy5tbT4KLSNlbmRp
ZgotCiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCA3ZjUz
OTAzNjUwMzBmYmYyYjQ1ZDIxMDY2ZmU5OGM4YWEzOGE5ZmU3Li41MTY3YmRiOGE1MGFmM2QzM2U5
OTcxZWZlMjg4ZmIyYzY4NDBlZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNzksMTAgKzc5LDcgQEAgU09GVF9MSU5L
X0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZhbHVhdG9yKTsKICNlbmRpZgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9X
ZWJQYWdlUHJveHlDb2NvYUFkZGl0aW9uc0JlZm9yZS5tbT4KLSNlbmRpZgotCi0jaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKy8vIEZJWE1FOiBUaGlzIGFkZGl0aW9ucyBmaWxlIHNob3VsZCBi
ZSByZW5hbWVkIHRvIFdlYlBhZ2VQcm94eUFkZGl0aW9ucy5tbS4KICNpbXBvcnQgPFdlYktpdEFk
ZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMuaD4KICNlbHNlCiAjZGVmaW5lIFdFQl9QQUdF
X1BST1hZX0FERElUSU9OUwpAQCAtNjE1LDE4ICs2MTIsMTggQEAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXkgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hF
eHRlbnMKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2UoKQordm9pZCBXZWJQYWdlUHJveHk6Omhh
bmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2UoKQogewogICAgIGF1dG8mIHJlc3VsdCA9IG1fYWN0
aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpOwogICAgIGlm
ICghcmVzdWx0LmltYWdlQml0bWFwKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXZlYWxFeHRy
YWN0ZWRJbWFnZUluUHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29s
VGlwVGV4dCwgVVJMIHsgVVJMIHsgfSwgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSk7CisgICAg
c2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQcmV2aWV3UGFuZWwoKnJlc3VsdC5pbWFnZUJpdG1hcCwg
cmVzdWx0LnRvb2xUaXBUZXh0LCBVUkwgeyBVUkwgeyB9LCByZXN1bHQuYWJzb2x1dGVJbWFnZVVS
TCB9KTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklD
RVMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4
IDdlYjdiMjNmNDQ0MjU1NmRiODVmZDA1NzczZTI0NmRhOGI5OWJhOGQuLmJiYzY4M2FjMDcxNTEz
OGE2MDFmOGQ4NTc5NmI5MDFmZGMxNzBiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaApAQCAtNTUsNiArNTUsNyBAQCBPQkpDX0NMQVNTIE5TTWVudTsK
IE9CSkNfQ0xBU1MgTlNUZXh0SW5wdXRDb250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpD
X0NMQVNTIFFMUHJldmlld1BhbmVsOworT0JKQ19DTEFTUyBWS0ltYWdlQW5hbHl6ZXI7CiBPQkpD
X0NMQVNTIFdLQWNjZXNzaWJpbGl0eVNldHRpbmdzT2JzZXJ2ZXI7CiBPQkpDX0NMQVNTIFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tET01QYXN0ZU1lbnVEZWxlZ2F0
ZTsKQEAgLTg0LDEwICs4NSw2IEBAIE9CSkNfQ0xBU1MgV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXI7CiBPQkpDX0NMQVNTIFdLUERGSFVEVmlldzsKICNlbmRpZgogCi0jaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFkZGl0aW9u
c0JlZm9yZS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgSGl0VGVzdFJlc3Vs
dDsKIGNsYXNzIE9iamVjdDsKQEAgLTk5LDE0ICs5NiwxMSBAQCBjbGFzcyBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U7CiBjbGFzcyBJbnRQb2ludDsKIHN0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5m
bzsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRSZWNvZ25pdGlv
blJlc3VsdDsKIAogI2lmIEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShD
T05URVhUX01FTlVTKQogc3RydWN0IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvOwogI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQ7Ci0jZW5kaWYKIH0KIAogQHByb3RvY29sIFdlYlZpZXdJbXBsRGVsZWdhdGUKQEAgLTYw
Miw5ICs1OTYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9y
VGVzdGluZygpOwogICAgIGJvb2wgc2hvdWxkUmVxdWVzdENhbmRpZGF0ZXMoKSBjb25zdDsKIAot
I2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFj
dGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlv
blJlc3VsdCYmKT4mJik7Ci0gICAgdm9pZCBjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJM
JiBpbWFnZVVSTCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQg
cmVxdWVzdFRleHRSZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBjb21wdXRlSGFzVmlz
dWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGlt
YWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAg
ICAgYm9vbCBhY2NlcHRzUHJldmlld1BhbmVsQ29udHJvbChRTFByZXZpZXdQYW5lbCAqKTsKQEAg
LTc1Myw2ICs3NDcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmREcmFnRW5kVG9QYWdlKENH
UG9pbnQgZW5kUG9pbnQsIE5TRHJhZ09wZXJhdGlvbik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBWS0ltYWdlQW5hbHl6ZXIgKmVuc3VyZUltYWdlQW5hbHl6ZXIo
KTsKKyNlbmRpZgorCiAgICAgV2Vha09iakNQdHI8TlNWaWV3PFdlYlZpZXdJbXBsRGVsZWdhdGU+
PiBtX3ZpZXc7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsK
ICAgICBSZWY8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CkBAIC05MDAsOCArODk4LDkgQEAgcHJpdmF0
ZToKICAgICBSZXRhaW5QdHI8V0tSZXZlYWxJdGVtUHJlc2VudGVyPiBtX3JldmVhbEl0ZW1QcmVz
ZW50ZXI7CiAjZW5kaWYKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxBZGRpdGlvbnNBZnRlci5oPgorI2lmIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKKyAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX2ltYWdlQW5hbHl6ZXJRdWV1
ZTsKKyAgICBSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyPiBtX2ltYWdlQW5hbHl6ZXI7CiAjZW5k
aWYKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCmluZGV4IGMzZmE2Y2FlMzNjNTM4YzExZTMwOTcxNDM4Yjc0MDk1NmUwMjcwMjYuLmUzMjIy
MWMzNTI0YThjNjYyY2MwYWM4NDg0N2IxODhiOWNjNDYzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0
ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJU
ZXh0Q2hlY2tlclN0YXRlLmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQg
IlVJR2FtZXBhZFByb3ZpZGVyLmgiCiAjaW1wb3J0ICJVbmRvT3JSZWRvLmgiCkBAIC02MCw3ICs2
MSw2IEBACiAjaW1wb3J0ICJXS0VkaXRDb21tYW5kLmgiCiAjaW1wb3J0ICJXS0Vycm9ySW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKLSNpbXBvcnQg
IldLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgogI2ltcG9y
dCAiV0tQREZIVURWaWV3LmgiCkBAIC03MCw2ICs3MCw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tT
aGFyZVNoZWV0Lmg+CiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIldLVmlld0xheW91dFN0cmF0ZWd5LmgiCisjaW1wb3J0ICJXS1Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJCYWNrRm9y
d2FyZExpc3QuaD4KQEAgLTk4LDcgKzk5LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZvbnRBdHRyaWJ1dGVzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJl
c3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9hZGVy
TlNVUkxFeHRyYXMuaD4KQEAgLTEwOCw2ICsxMDgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0
Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgorI2ltcG9ydCA8
V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFVu
ZG9JbnNlcnRpb25NYXJrdXBNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVHJhbnNsYXRpb25Db250
ZXh0TWVudUluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXll
ckRlbGVnYXRlLmg+CkBAIC0xNDUsNiArMTQ2LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eVByaXZhdGUuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0FO
QUxZU0lTKQorI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0ltYWdlQW5hbHlzaXNfV2ViS2l0Lmg+
CisjaW1wb3J0IDxWaXNpb25LaXRDb3JlL1ZLSW1hZ2VBbmFseXplci5oPgorI2ltcG9ydCA8Vmlz
aW9uS2l0Q29yZS9WS1F1YWQuaD4KKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisK
ICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKQogI2ltcG9ydCA8VHJhbnNsYXRpb25V
SVNlcnZpY2VzL0xUVUlUcmFuc2xhdGlvblZpZXdDb250cm9sbGVyLmg+CiAKQEAgLTE4Miw5ICsx
ODksODUgQEAgLSAodm9pZClzZXRDYW5TaG93TWVkaWFTZWxlY3Rpb25CdXR0b246KEJPT0wpY2Fu
U2hvd01lZGlhU2VsZWN0aW9uQnV0dG9uOwogQGVuZAogI2VuZGlmCiAKLSNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlZpZXdJbXBsQWRkaXRp
b25zLm1tPgotI2VuZGlmCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitTT0ZUX0xJTktf
UFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoVmlzaW9uS2l0Q29yZSkKK1NPRlRfTElOS19DTEFT
U19PUFRJT05BTChWaXNpb25LaXRDb3JlLCBWS0ltYWdlQW5hbHl6ZXIpCitTT0ZUX0xJTktfQ0xB
U1NfT1BUSU9OQUwoVmlzaW9uS2l0Q29yZSwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCkKKworLy8g
RklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgPHJkYXI6Ly83MjQ4MDQ1OT4gaXMgaW4gdGhlIFNESy4K
K0BpbnRlcmZhY2UgVktJbWFnZUFuYWx5emVyUmVxdWVzdCAoU3RhZ2luZ183MjQ4MDQ1OSkKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBOU1VSTCAqaW1hZ2VVUkw7CitAcHJvcGVydHkgKG5vbmF0b21p
YykgTlNVUkwgKnBhZ2VVUkw7CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitWS0ltYWdl
QW5hbHl6ZXIgKldlYlZpZXdJbXBsOjplbnN1cmVJbWFnZUFuYWx5emVyKCkKK3sKKyAgICBpZiAo
IW1faW1hZ2VBbmFseXplcikgeworICAgICAgICBtX2ltYWdlQW5hbHl6ZXJRdWV1ZSA9IFdvcmtR
dWV1ZTo6Y3JlYXRlKCJXZWJLaXQgaW1hZ2UgYW5hbHl6ZXIgcXVldWUiKTsKKyAgICAgICAgbV9p
bWFnZUFuYWx5emVyID0gYWRvcHROUyhbYWxsb2NWS0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGlu
aXRdKTsKKyAgICAgICAgW21faW1hZ2VBbmFseXplciBzZXRDYWxsYmFja1F1ZXVlOm1faW1hZ2VB
bmFseXplclF1ZXVlLT5kaXNwYXRjaFF1ZXVlKCldOworICAgIH0KKyAgICByZXR1cm4gbV9pbWFn
ZUFuYWx5emVyLmdldCgpOworfQorCitzdGF0aWMgUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJl
cXVlc3Q+IGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KENHSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0
IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFVSTCYgcGFnZVVSTCwgVktBbmFseXNpc1R5cGVzIHR5cGVz
KQoreworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW2FsbG9jVktJbWFnZUFuYWx5emVyUmVx
dWVzdEluc3RhbmNlKCkgaW5pdFdpdGhDR0ltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VP
cmllbnRhdGlvblVwIHJlcXVlc3RUeXBlOnR5cGVzXSk7CisgICAgW3JlcXVlc3Qgc2V0SW1hZ2VV
Ukw6aW1hZ2VVUkxdOworICAgIFtyZXF1ZXN0IHNldFBhZ2VVUkw6cGFnZVVSTF07CisgICAgcmV0
dXJuIHJlcXVlc3Q7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RUZXh0UmVjb2duaXRp
b24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25S
ZXN1bHQmJik+JiYgY29tcGxldGlvbikKK3sKKyAgICBpZiAoIWlzTGl2ZVRleHRFbmFibGVkKCkp
IHsKKyAgICAgICAgY29tcGxldGlvbih7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byBpbWFnZUJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlRGF0YSk7
CisgICAgaWYgKCFpbWFnZUJpdG1hcCkgeworICAgICAgICBjb21wbGV0aW9uKHsgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNnSW1hZ2UgPSBpbWFnZUJpdG1hcC0+bWFr
ZUNHSW1hZ2UoKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVz
dChjZ0ltYWdlLmdldCgpLCBpbWFnZVVSTCwgW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpt
X3BhZ2UtPmN1cnJlbnRVUkwoKV0sIFZLQW5hbHlzaXNUeXBlVGV4dCk7CisgICAgYXV0byBzdGFy
dFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBbZW5zdXJlSW1hZ2VBbmFseXplcigp
IHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0
aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24p
LCBzdGFydFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICopIG11dGFi
bGUgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbY29tcGxldGlvbiA9IFdURk1vdmUoY29t
cGxldGlvbiksIHJlc3VsdCA9IG1ha2VUZXh0UmVjb2duaXRpb25SZXN1bHQoYW5hbHlzaXMpLCBz
dGFydFRpbWVdICgpIG11dGFibGUgeworICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAi
SW1hZ2UgYW5hbHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKGZvdW5kIHRleHQ/ICVkKSIsIChN
b25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksICFyZXN1bHQu
aXNFbXB0eSgpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb24oV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRl
SGFzVmlzdWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRt
YXAmIGltYWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b24pCit7CisgICAgaWYgKCFpc0xpdmVUZXh0RW5hYmxlZCgpKSB7CisgICAgICAgIGNvbXBsZXRp
b24oZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjZ0ltYWdlID0g
aW1hZ2VCaXRtYXAubWFrZUNHSW1hZ2UoKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVJbWFn
ZUFuYWx5c2lzUmVxdWVzdChjZ0ltYWdlLmdldCgpLCBpbWFnZVVSTCwgW05TVVJMIF93ZWJfVVJM
V2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRVUkwoKV0sIFZLQW5hbHlzaXNUeXBlVmlzdWFs
U2VhcmNoKTsKKyAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAg
IFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQoKSBwcm9n
cmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlv
biA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZV0gKFZLSW1hZ2VBbmFseXNpcyAqYW5h
bHlzaXMsIE5TRXJyb3IgKikgbXV0YWJsZSB7CisgICAgICAgIEJPT0wgcmVzdWx0ID0gW2FuYWx5
c2lzIGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlVmlzdWFsU2VhcmNo
XTsKKyAgICAgICAgQ0ZSdW5Mb29wUGVyZm9ybUJsb2NrKENGUnVuTG9vcEdldE1haW4oKSwgKF9f
YnJpZGdlIENGU3RyaW5nUmVmKU5TRXZlbnRUcmFja2luZ1J1bkxvb3BNb2RlLCBtYWtlQmxvY2tQ
dHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCByZXN1bHQsIHN0YXJ0VGltZV0g
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFs
eXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAoZm91bmQgdmlzdWFsIHNlYXJjaCByZXN1bHRzPyAl
ZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpLCBy
ZXN1bHQpOworICAgICAgICAgICAgY29tcGxldGlvbihyZXN1bHQpOworICAgICAgICB9KS5nZXQo
KSk7CisgICAgICAgIENGUnVuTG9vcFdha2VVcChDRlJ1bkxvb3BHZXRNYWluKCkpOworICAgIH0p
LmdldCgpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKIEBpbnRlcmZhY2UgV0tBY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNl
cnZlciA6IE5TT2JqZWN0IHsKICAgICBXZWJLaXQ6OldlYlZpZXdJbXBsICpfaW1wbDsKQEAgLTU3
MTcsOCArNTgwMCw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNs
YXRpb24oY29uc3QgV2ViQ29yZTo6VHJhbnNsYXRpb25Db250ZXh0CiAKIGJvb2wgV2ViVmlld0lt
cGw6OmFjY2VwdHNQcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICopCiB7Ci0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgcmV0dXJuICEhbV9wYWdlLT5pbWFnZUV4dHJh
Y3Rpb25QcmV2aWV3Q29udHJvbGxlcigpOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICByZXR1cm4gISFtX3BhZ2UtPnZpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyKCk7CiAjZWxz
ZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCmluZGV4IGU3MjJiNDAzYTc3ZDNmYWZkODM2YzI4ZGRmY2U2YWU4YjM0YjVkNzguLjg3NzBh
ZDQ2MzgxNmJmZWY0YzRhOTkzNzQ2NTM5ZTAyZDIxY2Q1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKQEAgLTYyLDggKzYyLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3Bl
Y3Rvck92ZXJsYXkuaD4KICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0j
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4K
ICNlbmRpZgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CkBAIC01MzgsOSArNTM4LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgV2ViQ29yZTo6RGF0YU93bmVyVHlwZSBkYXRhT3duZXJGb3JQYXN0ZWJv
YXJkKFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQpIGNvbnN0IHsgcmV0dXJuIFdlYkNvcmU6OkRhdGFP
d25lclR5cGU6OlVuZGVmaW5lZDsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwm
IGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBj
b21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
Q2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oZmFsc2UpOyB9Cisj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0VGV4dFJl
Y29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29n
bml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pIHsgY29tcGxldGlvbih7IH0pOyB9CisgICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYsIFNo
YXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bikgeyBjb21wbGV0aW9uKGZhbHNlKTsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwYTkxNjI3ZmNhMjJkNDFkMDJmOTVlNWRm
ZGVjOWZhZmU0ZjQ2M2M3Li4zNWZjOTRiZmQ0ZTE0YmEzM2NkNjdiYTRjNmU3ODdmMzYxNzA5YWYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY2LDcgKzY2
LDYgQEAKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkZv
cm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5oIgotI2luY2x1ZGUg
IkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oIgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCkBAIC05NCw2ICs5Myw3IEBACiAjaW5jbHVkZSAiU3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0
YXRlLmgiCisjaW5jbHVkZSAiVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0LmgiCiAjaW5jbHVk
ZSAiVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJVbmRvT3JSZWRvLmgiCiAj
aW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgpAQCAtNjg5Niw5ICs2
ODk2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0
IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5P
cklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
LSAgICAgICAgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgpOworICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW1hZ2U6CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAg
ICAgICBoYW5kbGVDb250ZXh0TWVudUxvb2tVcEltYWdlKCk7CiAjZW5kaWYKICAgICAgICAgcmV0
dXJuOwogCkBAIC04NDg2LDI1ICs4NDg2LDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmCiAj
ZW5kaWYKIAogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi12b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFRleHRS
ZWNvZ25pdGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNv
Z25pdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBwYWdlQ2xpZW50
KCkucmVxdWVzdEltYWdlRXh0cmFjdGlvbihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RUZXh0UmVjb2duaXRp
b24oaW1hZ2VVUkwsIGltYWdlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1h
Z2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21wdXRlSGFzVmlz
dWFsU2VhcmNoUmVzdWx0cyhjb25zdCBVUkwmIGltYWdlVVJMLCBTaGFyZWFibGVCaXRtYXAmIGlt
YWdlQml0bWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb24pCiB7
Ci0gICAgcGFnZUNsaWVudCgpLmNvbXB1dGVDYW5SZXZlYWxJbWFnZShpbWFnZVVSTCwgaW1hZ2VC
aXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlSGFz
VmlzdWFsU2VhcmNoUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxl
dGlvbikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlv
blJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KFRl
eHRSZWNvZ25pdGlvblJlc3VsdCYmIHJlc3VsdHMsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChU
ZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJ
bWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6Tm9UZXh0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6
VXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdHMpLCBjb250ZXh0
LCBsb2NhdGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1
bHQoV1RGTW92ZShyZXN1bHRzKSwgY29udGV4dCwgbG9jYXRpb24pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA2NDU4Yjg4MWViMjhmZjU4MmVmZjM0YmI3ZDhkNmQ0Y2ZlYmJkZjY5Li42ZDA1
ZDZmYzc5MDhlNGIyZGI4NWE2NDIzYzRmY2U2OTY2NjAwYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjMxLDYgKzIzMSw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0
QWx0ZXJuYXRpdmVzOwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIFFMUHJldmlld1Bh
bmVsOwogT0JKQ19DTEFTUyBXS1FMVGh1bWJuYWlsTG9hZE9wZXJhdGlvbjsKK09CSkNfQ0xBU1Mg
V0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tXZWJWaWV3Owog
T0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeTsKICNlbmRpZgpAQCAtMjk3LDEzICsy
OTgsMTAgQEAgc3RydWN0IFNoYXJlRGF0YTsKIHN0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Owogc3RydWN0IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZTsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdS
ZXN1bHQ7CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXR0
cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQotc3RydWN0IEltYWdlRXh0cmFjdGlvblJlc3VsdDsKLSNlbmRpZgotCiAjaWYgSEFW
RShQQVNURUJPQVJEX0RBVEFfT1dORVIpCiBlbnVtIGNsYXNzIERhdGFPd25lclR5cGUgOiB1aW50
OF90OwogI2VuZGlmCkBAIC00MDcsNyArNDA1LDcgQEAgc3RydWN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwogc3RydWN0IFdlYlNwZWVjaFN5bnRoZXNpc1Zv
aWNlOwogCi1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7
CitlbnVtIGNsYXNzIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIE5lZ290aWF0ZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50IDogYm9vbDsKIGVudW0gY2xhc3MgVW5kb09yUmVkbyA6IGJvb2w7
CkBAIC0xNjY0LDEwICsxNjYyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBG
cmFtZUluZm9EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKICNl
bmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgdm9pZCByZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VF
eHRyYWN0aW9uUmVzdWx0JiYpPiYmKTsKLSAgICB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rp
b25SZXN1bHQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJik7Ci0g
ICAgdm9pZCBjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVh
YmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25p
dGlvbihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlv
blJlc3VsdCYmKT4mJik7CisgICAgdm9pZCB1cGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
KFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50
Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCk+JiYpOworICAgIHZvaWQg
Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiBpbWFnZVVSTCwgU2hhcmVh
YmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKQEAgLTE5MTEsOCArMTkwOSw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlzcGF0Y2hXaGVlbEV2ZW50V2l0aG91dFNjcm9sbGluZyhjb25zdCBXZWJXaGVlbEV2ZW50
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdm9pZCBoYW5kbGVDb250
ZXh0TWVudVJldmVhbEltYWdlKCk7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51TG9va1VwSW1hZ2Uo
KTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTE5NDQsNiArMTk0MiwxMCBAQCBwdWJs
aWM6CiAKICAgICBib29sIGlzUnVubmluZ01vZGFsSmF2YVNjcmlwdERpYWxvZygpIGNvbnN0IHsg
cmV0dXJuIG1faXNSdW5uaW5nTW9kYWxKYXZhU2NyaXB0RGlhbG9nOyB9CiAKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpICYmIFBMQVRGT1JNKE1BQykKKyAgICBXS1Zpc3VhbFNlYXJjaFByZXZp
ZXdDb250cm9sbGVyICp2aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0
dXJuIG1fdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5Jiwg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKCk7CkBAIC0yNDkyLDYgKzI0OTQsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcnVuTW9k
YWxKYXZhU2NyaXB0RGlhbG9nKFJlZlB0cjxXZWJGcmFtZVByb3h5PiYmLCBGcmFtZUluZm9EYXRh
JiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5KiwgRnJhbWVJbmZvRGF0YSYmLCBjb25zdCBTdHJpbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpPiYmKTsKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2hvd0ltYWdlSW5WaXN1YWxTZWFyY2hQ
cmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgY29uc3QgU3RyaW5nJiB0
b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJMKTsKKyNlbmRpZgorCiAgICAgY29uc3QgSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdl
SUQ7CiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7CkBAIC0zMDQyLDYgKzMw
NDgsMTAgQEAgcHJpdmF0ZToKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9uc0FmdGVyLmg+CiAjZW5kaWYKKwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIFJldGFpblB0
cjxXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyPiBtX3Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyOworI2VuZGlmCiB9OwogCiAjaWZkZWYgX19PQkpDX18KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3MGFhZjA3MGQz
Njc3OGViMTliN2U5YmVjYjkzZWRjNWRmZWQ1ZmY4Li5hYjMyNDgxMWUxNjg2MmQ0ZWFiMWU4YzZl
ZmQwMTgzZjljNjRiOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMjQsOCArMjI0LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBDb21wb3NpdGlvbldhc0NhbmNlbGVkKCkKICAgICBTZXRIYXNIYWRTZWxl
Y3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbihib29sIGhhc0hhZFVzZXJTZWxlY3Rpb25D
aGFuZ2VzKQogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgUmVxdWVzdEltYWdl
RXh0cmFjdGlvbihVUkwgaW1hZ2VVUkwsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUg
aW1hZ2VEYXRhKSAtPiAoc3RydWN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCByZXN1
bHQpIEFzeW5jCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFJlcXVlc3RUZXh0UmVj
b2duaXRpb24oVVJMIGltYWdlVVJMLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGlt
YWdlRGF0YSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0
KSBBc3luYwogI2VuZGlmCiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMjZiNzQxMjZlZjNjODAzNmQxOTMwOGM2NzFhYmE1MDg5
OWEwOWFmOS4uMDhmMjQ5NzhkMWEwMDEyOTYzNGE4MmI3NjE3NmZhNzhhYzEyNTQyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEy
MCw4ICsxMjAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZG9uZURlZmVycmluZ1RvdWNoRW5kKGJv
b2wgcHJldmVudE5hdGl2ZUdlc3R1cmVzKSBvdmVycmlkZTsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0
IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYp
PiYmKSBmaW5hbDsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0
VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgUmVmUHRyPFdl
YlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQppbmRleCBiYWRiZWZiNmNjYjU2MzRhZmViZThhMTI2YjlhNzg5YTViMjM3YTdjLi41NmIz
MjU5ODcwOGRiYWM4OTE1NjMzNmRjMTJlZjJkMTk0ZDU5N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NjUsMTQgKzQ2NSwx
NCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2
ZW50TmF0aXZlR2VzdHVyZXMpCiAKICNlbmRpZiAvLyBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
IAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
UykKIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBV
UkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4m
JiBjb21wbGV0aW9uKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFRleHRSZWNvZ25pdGlv
bihjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1h
Z2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJl
c3VsdCYmKT4mJiBjb21wbGV0aW9uKQogewotICAgIFttX2NvbnRlbnRWaWV3IHJlcXVlc3RJbWFn
ZUV4dHJhY3Rpb246aW1hZ2VVUkwgaW1hZ2VEYXRhOmltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxl
cjpXVEZNb3ZlKGNvbXBsZXRpb24pXTsKKyAgICBbbV9jb250ZW50VmlldyByZXF1ZXN0VGV4dFJl
Y29nbml0aW9uOmltYWdlVVJMIGltYWdlRGF0YTppbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6
V1RGTW92ZShjb21wbGV0aW9uKV07CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBIQVZFKFBBU1RF
Qk9BUkRfREFUQV9PV05FUikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggNDNhNDczNDU5MDM4ZjcyMGQ5OGFmMzAx
MWM0MDFlOTIxMzFmOTkyNy4uNmU4ZWUzZGEzMDkyZWFhMmE3NDQ3NmU1NmNlMzUxMzY2OTc5NGY3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVl
dEFzc2lzdGFudC5oCkBAIC03OSwxMSArNzksMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLRWxlbWVudEFjdGlvblR5cGUpOwogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERp
ZERpc21pc3NDb250ZXh0TWVudTooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsK
ICNlbmRpZgogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lz
dGFudCAqKWFzc2lzdGFudCBzaGFyZUVsZW1lbnRXaXRoSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBy
ZWN0OihDR1JlY3QpYm91bmRpbmdSZWN0OwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQot
LSAoQk9PTClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFz
c2lzdGFudCBzaG91bGRJbmNsdWRlSW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDooX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50OwotLSAodm9pZClhY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBoYW5kbGVJbWFnZUV4dHJh
Y3Rpb246KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZToo
TlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRzOwotLSAoQk9P
TClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dCBzaG91bGRJbmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWVsZW1lbnQ7Ci0tICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGhhbmRsZVJldmVhbEltYWdlOihVSUltYWdl
ICopaW1hZ2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0
bGUgaW1hZ2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kczsKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCistIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0
YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvd1RleHRGb3JJbWFn
ZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0
cmluZyAqKXRpdGxlIGltYWdlQm91bmRzOihDR1JlY3QpaW1hZ2VCb3VuZHM7CistIChCT09MKWFj
dGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNo
b3VsZEluY2x1ZGVMb29rVXBJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudDsKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9u
U2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgbG9va1VwSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBp
bWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJv
dW5kczooQ0dSZWN0KWltYWdlQm91bmRzOwogI2VuZGlmCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KaW5kZXgg
ZDE4ZDM1YTAzOGFmMzg3ZDFmNDUwZGJmYTk0MDIzZTQ1ZWY4MDdkYi4uZTA3ZThjM2NlYjhhNzkw
Y2RiZTEwM2M1ODAwZDViMmE0OTM3ODA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTU2OCwxMSArNTY4LDEx
IEBAIC0gKFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rp
b25zRm9yTGlua1NoZWV0OihfV0tBY3RpdmF0CiAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRP
YmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50
QWN0aW9uVHlwZVNoYXJlIGFzc2lzdGFudDpzZWxmXV07CiAgICAgfQogCi0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIGlmIChlbGVt
ZW50SW5mby50eXBlID09IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2UgfHwgW2VsZW1lbnRJ
bmZvIGltYWdlXSkgewotICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVJbWFnZUV4dHJhY3Rp
b25BY3Rpb25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6
c2VsZiBzaG91bGRJbmNsdWRlSW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDplbGVtZW50
SW5mb10pCisgICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZVNob3dUZXh0QWN0aW9uRm9yRWxl
bWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5j
bHVkZVNob3dUZXh0QWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCiAgICAgICAgICAgICBb
ZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9u
V2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb24gYXNzaXN0YW50OnNl
bGZdXTsKLSAgICAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JF
bGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJ
bmNsdWRlUmV2ZWFsSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKKyAgICAgICAg
aWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFz
c2lzdGFudDpzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OildICYmIFtf
ZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlTG9va1VwSW1h
Z2VBY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKICAgICAgICAgICAgIFtkZWZhdWx0QWN0
aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpf
V0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlIGFzc2lzdGFudDpzZWxmXV07CiAgICAgfQog
I2VuZGlmCkBAIC02MDAsMTAgKzYwMCwxMCBAQCAtIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVt
ZW50QWN0aW9uICo+PilkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2YQogCiAg
ICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFj
dGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weSBhc3Npc3RhbnQ6c2VsZl1dOwog
Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRl
SW1hZ2VFeHRyYWN0aW9uQWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNo
ZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVkZUltYWdlRXh0cmFjdGlvbkFjdGlvbkZvckVs
ZW1lbnQ6ZWxlbWVudEluZm9dKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAo
W19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0
YW50OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0
ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZv
ckVsZW1lbnQ6ZWxlbWVudEluZm9dKQogICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0
OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlv
blR5cGVJbWFnZUV4dHJhY3Rpb24gYXNzaXN0YW50OnNlbGZdXTsKLSAgICBpZiAoW19kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3Vs
ZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rp
b25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVs
ZW1lbnQ6ZWxlbWVudEluZm9dKQorICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZUxvb2tVcEltYWdl
QWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNl
bGYgc2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10p
CiAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2Vs
ZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlIGFzc2lz
dGFudDpzZWxmXV07CiAjZW5kaWYKIApAQCAtMTAyMywxMyArMTAyMywxMyBAQCAtICh2b2lkKWhh
bmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVt
ZW50OihfV0tBY3RpdgogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxl
bWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb246Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCi0gICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGhhbmRsZUlt
YWdlRXh0cmFjdGlvbjplbGVtZW50LmltYWdlIGltYWdlVVJMOmVsZW1lbnQuaW1hZ2VVUkwgdGl0
bGU6ZWxlbWVudC50aXRsZSBpbWFnZUJvdW5kczplbGVtZW50LmJvdW5kaW5nUmVjdF07CisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6c2VsZiBzaG93VGV4dEZvckltYWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVu
dC5pbWFnZVVSTCB0aXRsZTplbGVtZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRp
bmdSZWN0XTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rp
b25UeXBlUmV2ZWFsSW1hZ2U6Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAg
IFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGhhbmRsZVJldmVhbEltYWdlOmVs
ZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVudC5pbWFnZVVSTCB0aXRsZTplbGVtZW50LnRpdGxl
IGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGxvb2tV
cEltYWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVudC5pbWFnZVVSTCB0aXRsZTplbGVt
ZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKICNlbmRpZgogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGFlYjQ0NDI5MGRiNjc2
NTI4ODNkYTAwZTU1M2ZmYTFjNmU0NzliNDIuLjU4YWE0NmJiNjlkYjM4MGIxOGQwYTFkNjFjYzdl
YjkxNjMyODU3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTg3LDYgKzg3LDcgQEAgc3RydWN0IENvbnRh
Y3RJbmZvOwogc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRh
Y2htZW50SW5mbzsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworc3RydWN0IFRleHRS
ZWNvZ25pdGlvblJlc3VsdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwpAQCAtOTUsMTAgKzk2LDYgQEAgZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQogc3RydWN0IERyYWdJdGVtOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLXN0cnVjdCBJbWFnZUV4dHJhY3Rpb25SZXN1bHQ7Ci0jZW5kaWYK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMDksNiArMTA2LDggQEAgY2xhc3MgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIH0KIAorQGNs
YXNzIFFMUHJldmlld0NvbnRyb2xsZXI7CitAY2xhc3MgVktJbWFnZUFuYWx5emVyOwogQGNsYXNz
IFdlYkV2ZW50OwogQGNsYXNzIFdlYlRleHRJbmRpY2F0b3JMYXllcjsKIEBjbGFzcyBXS0FjdGlv
blNoZWV0QXNzaXN0YW50OwpAQCAtMTE4LDYgKzExNyw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IEBjbGFzcyBXS0Zvcm1JbnB1dFNlc3Npb247CiBAY2xhc3MgV0tGb3JtU2VsZWN0Q29udHJvbDsK
IEBjbGFzcyBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOworQGNsYXNzIFdL
SW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyOwogQGNsYXNzIFdLTW91c2VHZXN0dXJlUmVj
b2duaXplcjsKIEBjbGFzcyBXS0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0dXJlUmVjb2duaXplcjsK
IEBjbGFzcyBXS1RleHRSYW5nZTsKQEAgLTEzOSwxMCArMTM5LDYgQEAgY2xhc3MgV2ViUGFnZVBy
b3h5OwogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQmVm
b3JlLmg+Ci0jZW5kaWYKLQogdHlwZWRlZiB2b2lkICheVUlXS0F1dG9jb3JyZWN0aW9uQ29tcGxl
dGlvbkhhbmRsZXIpKFVJV0tBdXRvY29ycmVjdGlvblJlY3RzICpyZWN0c0ZvcklucHV0KTsKIHR5
cGVkZWYgdm9pZCAoXlVJV0tBdXRvY29ycmVjdGlvbkNvbnRleHRIYW5kbGVyKShVSVdLQXV0b2Nv
cnJlY3Rpb25Db250ZXh0ICphdXRvY29ycmVjdGlvbkNvbnRleHQpOwogdHlwZWRlZiB2b2lkIChe
VUlXS0RpY3RhdGlvbkNvbnRleHRIYW5kbGVyKShOU1N0cmluZyAqc2VsZWN0ZWRUZXh0LCBOU1N0
cmluZyAqYmVmb3JlVGV4dCwgTlNTdHJpbmcgKmFmdGVyVGV4dCk7CkBAIC0xNTIsMTIgKzE0OCwx
NiBAQCB0eXBlZGVmIHZvaWQgKF5VSVdLU2VsZWN0aW9uV2l0aERpcmVjdGlvbkNvbXBsZXRpb25I
YW5kbGVyKShCT09MIHNlbGVjdGlvbkVuZElzTQogdHlwZWRlZiBCbG9ja1B0cjx2b2lkKFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pPiBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQ2FsbGJhY2s7CiB0eXBlZGVmIHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2s+IEludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2s7CiAKLSNpZiAhZGVmaW5lZChGT1JfRUFDSF9B
RERJVElPTkFMX1dLQ09OVEVOVFZJRVdfQUNUSU9OKQotI2RlZmluZSBGT1JfRUFDSF9BRERJVElP
TkFMX1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
I2RlZmluZSBGT1JfRUFDSF9JTlNFUlRfVEVYVF9GUk9NX0NBTUVSQV9XS0NPTlRFTlRWSUVXX0FD
VElPTihNKSBcCisgICAgTShfaW5zZXJ0VGV4dEZyb21DYW1lcmEpIFwKKyAgICBNKGNhcHR1cmVU
ZXh0RnJvbUNhbWVyYSkKKyNlbHNlCisjZGVmaW5lIEZPUl9FQUNIX0lOU0VSVF9URVhUX0ZST01f
Q0FNRVJBX1dLQ09OVEVOVFZJRVdfQUNUSU9OKE0pCiAjZW5kaWYKIAogI2RlZmluZSBGT1JfRUFD
SF9XS0NPTlRFTlRWSUVXX0FDVElPTihNKSBcCi0gICAgRk9SX0VBQ0hfQURESVRJT05BTF9XS0NP
TlRFTlRWSUVXX0FDVElPTihNKSBcCisgICAgRk9SX0VBQ0hfSU5TRVJUX1RFWFRfRlJPTV9DQU1F
UkFfV0tDT05URU5UVklFV19BQ1RJT04oTSkgXAogICAgIE0oX2FkZFNob3J0Y3V0KSBcCiAgICAg
TShfZGVmaW5lKSBcCiAgICAgTShfbG9va3VwKSBcCkBAIC0yMjgsMTMgKzIyOCwxMyBAQCBzdHJ1
Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIENHUmVjdCB0ZXh0TGFzdFJlY3Q7CiB9Owog
Ci1lbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CitlbnVtIGNs
YXNzIFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgOiBib29sIHsKICAgICBObywKICAg
ICBZZXMKIH07CiAKLWVudW0gSW1hZ2VFeHRyYWN0aW9uUmVxdWVzdElkZW50aWZpZXJUeXBlIHsg
fTsKLXVzaW5nIEltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworZW51bSBJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEltYWdlQW5hbHlzaXNSZXF1
ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVu
dGlmaWVyVHlwZT47CiAKIH0KIApAQCAtMjU2LDggKzI1Niw4IEBAIHVzaW5nIEltYWdlRXh0cmFj
dGlvblJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUV4dHJhY3Rpb25S
ZXF1ZXN0CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3Vj
aEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2Vz
dHVyZXM7CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3Vj
aEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJl
czsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRW5k
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlczsKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcj4gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOwor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcj4gX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjsK
ICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlcj4gX2dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlcjsK
ICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hF
dmVudEdlc3R1cmVSZWNvZ25pemVyOwpAQCAtNDgzLDIyICs0ODMsMjggQEAgdXNpbmcgSW1hZ2VF
eHRyYWN0aW9uUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlRXh0cmFj
dGlvblJlcXVlc3QKIAogICAgIFZlY3RvcjxCbG9ja1B0cjx2b2lkKCk+PiBfYWN0aW9uc1RvUGVy
Zm9ybUFmdGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXI7CiAKLSNpZiBFTkFC
TEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBSZXRhaW5QdHI8V0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplcj4gX2ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyOwotICAgIFJl
dGFpblB0cjxVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VFeHRyYWN0aW9uVGlt
ZW91dEdlc3R1cmVSZWNvZ25pemVyOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpJbWFnZUV4
dHJhY3Rpb25SZXF1ZXN0SWRlbnRpZmllcj4gX3BlbmRpbmdJbWFnZUV4dHJhY3Rpb25SZXF1ZXN0
SWRlbnRpZmllcjsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBf
ZWxlbWVudFBlbmRpbmdJbWFnZUV4dHJhY3Rpb247Ci0gICAgVmVjdG9yPEJsb2NrUHRyPHZvaWQo
V2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbik+PiBfYWN0aW9uc1RvUGVyZm9ybUFm
dGVyUGVuZGluZ0ltYWdlRXh0cmFjdGlvbjsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisg
ICAgUmV0YWluUHRyPFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyPiBfaW1hZ2VBbmFs
eXNpc0dlc3R1cmVSZWNvZ25pemVyOworICAgIFJldGFpblB0cjxVSUxvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyPiBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplcjsKKyAgICBz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyPiBfcGVu
ZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkVsZW1lbnRDb250ZXh0PiBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzOworICAg
IFZlY3RvcjxCbG9ja1B0cjx2b2lkKFdlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5J
bWFnZSk+PiBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0ltYWdlQW5hbHlzaXM7CiAjaWYg
VVNFKFVJQ09OVEVYVE1FTlUpCi0gICAgUmV0YWluUHRyPFVJTWVudT4gX2ltYWdlRXh0cmFjdGlv
bkNvbnRleHRNZW51OwotICAgIEJPT0wgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4
dHJhY3Rpb25UaW1lb3V0OworICAgIFJldGFpblB0cjxVSU1lbnU+IF9jb250ZXh0TWVudUZvck1h
Y2hpbmVSZWFkYWJsZUNvZGU7CisgICAgQk9PTCBfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUlt
YWdlQW5hbHlzaXNUaW1lb3V0OwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQotICAgIEJP
T0wgX2lzUHJvY2VlZGluZ1dpdGhJbWFnZUV4dHJhY3Rpb247Ci0jZW5kaWYgLy8gRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9uc0FmdGVyLmg+
Ci0jZW5kaWYKKyAgICBCT09MIF9pc1Byb2NlZWRpbmdXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U7
CisgICAgUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplcj4gX2ltYWdlQW5hbHl6ZXI7CisjaWYgVVNF
KFFVSUNLX0xPT0spCisgICAgUmV0YWluUHRyPFFMUHJldmlld0NvbnRyb2xsZXI+IF92aXN1YWxT
ZWFyY2hQcmV2aWV3Q29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8VUlJbWFnZT4gX3Zpc3VhbFNl
YXJjaFByZXZpZXdJbWFnZTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IF92aXN1YWxTZWFyY2hQcmV2
aWV3SW1hZ2VVUkw7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfdmlzdWFsU2VhcmNoUHJldmll
d1RpdGxlOworICAgIENHUmVjdCBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlQm91bmRzOworICAg
IEJPT0wgX2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZTsKKyAgICBCT09MIF9oYXNWaXN1YWxTZWFy
Y2hSZXN1bHRzOworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQorI2VuZGlmIC8vIEVOQUJMRShJ
TUFHRV9BTkFMWVNJUykKIH0KIAogQGVuZApAQCAtNzI5LDkgKzczNSw5IEBAIEZPUl9FQUNIX1BS
SVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9G
T1JfV0VCX1ZJRVcpCiAtICh2b2lkKXNldFVwQXBwSGlnaGxpZ2h0TWVudXNJZk5lZWRlZDsKICNl
bmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0tICh2b2lkKV9lbmRJbWFnZUV4
dHJhY3Rpb25HZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6U2hvdWxkUHJldmVudEdlc3R1cmVzKXNo
b3VsZFByZXZlbnRHZXN0dXJlczsKLS0gKHZvaWQpcmVxdWVzdEltYWdlRXh0cmFjdGlvbjooTlNV
UkwgKilpbWFnZVVSTCBpbWFnZURhdGE6KGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmKWltYWdlRGF0YSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpY29tcGxldGlvbjsKKyNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCistICh2b2lkKV9lbmRJbWFnZUFuYWx5c2lzR2VzdHVyZURl
ZmVycmFsOihXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0dXJlcylzaG91bGRQcmV2ZW50R2VzdHVy
ZXM7CistICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRpb246KE5TVVJMICopaW1hZ2VVUkwgaW1h
Z2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJilpbWFnZURhdGEg
Y29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJl
Y29nbml0aW9uUmVzdWx0JiYpPiYmKWNvbXBsZXRpb247CiAjZW5kaWYKIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggZTAwYTZlMDExNGFhNDk5OTE1NDM1OTQyYzA2N2I4NDAxOTBiNjk1Ni4uN2E4
NDgxMGVhYWU4MjlkZTI0NTcxNjZkOTQ3OTg2Nzg2NTNlNTM0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC00Miw2ICs0Miw4IEBACiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgi
CiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCisjaW1w
b3J0ICJUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaCIKKyNpbXBvcnQgIlRleHRSZWNvZ25p
dGlvblV0aWxpdGllcy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIlVzZXJJbnRl
cmZhY2VJZGlvbS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgpAQCAtNTQs
NiArNTYsNyBAQAogI2ltcG9ydCAiV0tGb3JtU2VsZWN0Q29udHJvbC5oIgogI2ltcG9ydCAiV0tG
cmFtZUluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplci5oIgorI2ltcG9ydCAiV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIu
aCIKICNpbXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldL
SW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS01vdXNl
R2VzdHVyZVJlY29nbml6ZXIuaCIKQEAgLTkyLDYgKzk1LDcgQEAKICNpbXBvcnQgPENvcmVUZXh0
L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5oPgogI2ltcG9y
dCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CisjaW1wb3J0IDxVbmlmb3JtVHlw
ZUlkZW50aWZpZXJzL1VUQ29yZVR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcEhpZ2hsaWdo
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvcklP
Uy5oPgpAQCAtMTE3LDYgKzEyMSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2
ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dFJl
Y29nbml0aW9uUmVzdWx0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RvdWNoQWN0aW9uLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hl
Y2tzLmg+CkBAIC0xNDIsMTAgKzE0Nyw2IEBACiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29j
b2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAotI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uQWRkaXRpb25zQmVmb3JlLm1tPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFn
SXRlbS5oPgpAQCAtMTczLDcgKzE3NCwyNSBAQAogI2ltcG9ydCAiUGVwcGVyVUlDb3JlU1BJLmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKworLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIHB1bGxlZCBvdXQgaW50byBhIHNlcGFyYXRlIHNvZnRsaW5raW5nIGhlYWRlciAo
ZWl0aGVyIGluIFBBTCBvciBXZWJLaXQyKS4KKyNpbXBvcnQgPFZpc2lvbktpdENvcmUvVktJbWFn
ZUFuYWx5c2lzX1dlYktpdC5oPgorI2ltcG9ydCA8VmlzaW9uS2l0Q29yZS9WS0ltYWdlQW5hbHl6
ZXIuaD4KK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChWaXNpb25LaXRDb3Jl
KQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFZpc2lvbktpdENvcmUsIFZLSW1hZ2VBbmFseXpl
cikKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChWaXNpb25LaXRDb3JlLCBWS0ltYWdlQW5hbHl6
ZXJSZXF1ZXN0KQorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSA8cmRhcjovLzcyNDgwNDU5
PiBpcyBpbiB0aGUgU0RLLgorQGludGVyZmFjZSBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0IChTdGFn
aW5nXzcyNDgwNDU5KQorQHByb3BlcnR5IChub25hdG9taWMpIE5TVVJMICppbWFnZVVSTDsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBOU1VSTCAqcGFnZVVSTDsKK0BlbmQKKworI2VuZGlmIC8vIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKKwogI2ltcG9ydCA8cGFsL2lvcy9NYW5hZ2VkQ29uZmlndXJh
dGlvblNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvaW9zL1F1aWNrTG9va1NvZnRMaW5rLmg+CiAK
ICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiBzdGF0aWMgTlNT
dHJpbmcgKiBjb25zdCB3ZWJraXRTaG93TGlua1ByZXZpZXdzUHJlZmVyZW5jZUtleSA9IEAiV2Vi
S2l0U2hvd0xpbmtQcmV2aWV3cyI7CkBAIC0yMDQsNiArMjIzLDIwIEBAIEBlbmQKIAogc3RhdGlj
IHZvaWQgKldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0ID0gJldLQ29udGVudFZpZXdL
Vk9UcmFuc2Zvcm1Db250ZXh0OwogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitAaW50
ZXJmYWNlIFdLQ29udGVudFZpZXcgKEltYWdlQW5hbHlzaXMpIDxXS0ltYWdlQW5hbHlzaXNHZXN0
dXJlUmVjb2duaXplckRlbGVnYXRlPgorQGVuZAorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKK0Bp
bnRlcmZhY2UgV0tDb250ZW50VmlldyAoSW1hZ2VBbmFseXNpc1ByZXZpZXcpIDxRTFByZXZpZXdD
b250cm9sbGVyRGVsZWdhdGUsIFFMUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlLCBRTFByZXZp
ZXdJdGVtRGF0YVByb3ZpZGVyPgorQGVuZAorCisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMjkx
LDYgKzMyNCwzOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwg
Y29uc3QgV0tTZWxlY3Rpb25EcmF3aW5nSW5mbyYgaW5mbykKICAgICByZXR1cm4gc3RyZWFtOwog
fQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitjbGFzcyBJbWFnZUFuYWx5c2lzR2Vz
dHVyZURlZmVycmFsVG9rZW4gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUFuYWx5c2lz
R2VzdHVyZURlZmVycmFsVG9rZW4+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEltYWdl
QW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbj4gY3JlYXRlKFdLQ29udGVudFZpZXcgKnZpZXcp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZUFuYWx5c2lzR2VzdHVy
ZURlZmVycmFsVG9rZW4odmlldykpOworICAgIH0KKworICAgIH5JbWFnZUFuYWx5c2lzR2VzdHVy
ZURlZmVycmFsVG9rZW4oKQorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gdmlldyA9IG1fdmlldy5n
ZXQoKSkKKyAgICAgICAgICAgIFt2aWV3IF9lbmRJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFs
Om1fc2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24gPyBXZWJLaXQ6OlNob3VsZFByZXZlbnRHZXN0
dXJlczo6WWVzIDogV2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVyZXM6Ok5vXTsKKyAgICB9CisK
KyAgICB2b2lkIHNldFNob3VsZFByZXZlbnRUZXh0U2VsZWN0aW9uKCkKKyAgICB7CisgICAgICAg
IG1fc2hvdWxkUHJldmVudFRleHRTZWxlY3Rpb24gPSB0cnVlOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFsVG9rZW4oV0tDb250ZW50VmlldyAqdmll
dykKKyAgICAgICAgOiBtX3ZpZXcodmlldykKKyAgICB7CisgICAgfQorCisgICAgV2Vha09iakNQ
dHI8V0tDb250ZW50Vmlldz4gbV92aWV3OworICAgIGJvb2wgbV9zaG91bGRQcmV2ZW50VGV4dFNl
bGVjdGlvbiB7IGZhbHNlIH07Cit9OworCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogY29uc3RleHByIGZsb2F0IGhpZ2hsaWdodERl
bGF5ID0gMC4xMjsKQEAgLTgxMiwxMSArODc3LDExIEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlv
bgogICAgIF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFw
R2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10g
aW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hFbmRE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzIHNldE5hbWU6
QCJEZWZlcnJlciBmb3IgdG91Y2ggZW5kIChzeW50aGV0aWMgdGFwKSJdOwogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyID0gYWRvcHROUyhbW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgYWxsb2Nd
IGluaXRXaXRoRGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlOnNlbGZdKTsKLSAgICBbX2ltYWdlRXh0
cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldE5hbWU6QCJEZWZlcnJlciBmb3Ig
aW1hZ2UgZXh0cmFjdGlvbiJdOwotICAgIFtfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgc2V0SW1tZWRpYXRlbHlGYWlsc0FmdGVyVG91Y2hFbmQ6WUVTXTsKLSAgICBb
X2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6c2Vs
Zi5faW1hZ2VFeHRyYWN0aW9uRW5hYmxlZF07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
ICAgIF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtb
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0
dXJlRGVsZWdhdGU6c2VsZl0pOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyIHNldE5hbWU6QCJEZWZlcnJlciBmb3IgaW1hZ2UgYW5hbHlzaXMiXTsKKyAgICBb
X2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzZXRJbW1lZGlhdGVseUZh
aWxzQWZ0ZXJUb3VjaEVuZDpZRVNdOworICAgIFtfaW1hZ2VBbmFseXNpc0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6V2ViS2l0Ojppc0xpdmVUZXh0RW5hYmxlZCgpXTsKICNl
bmRpZgogCiAgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGlu
IHNlbGYuZGVmZXJyaW5nR2VzdHVyZXMpIHsKQEAgLTkyOSw4ICs5OTQsOCBAQCAtICh2b2lkKXNl
dFVwSW50ZXJhY3Rpb24KICAgICBfaXNDaGFuZ2luZ0ZvY3VzID0gTk87CiAgICAgX2lzQmx1cnJp
bmdGb2N1c2VkRWxlbWVudCA9IE5POwogCi0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VF
eHRyYWN0aW9uVGltZW91dCA9IE5POworI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCisgICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5
c2lzVGltZW91dCA9IE5POwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkK
QEAgLTk0NSw4ICsxMDEwLDggQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAgICAgX3BhZ2Ut
PnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgX3BhZ2UtPnNldFNjcmVl
bklzQmVpbmdDYXB0dXJlZChbW1tzZWxmIHdpbmRvd10gc2NyZWVuXSBpc0NhcHR1cmVkXSk7CiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfc2V0VXBJbWFnZUV4dHJh
Y3Rpb25dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBbc2VsZiBfc2V0VXBJbWFn
ZUFuYWx5c2lzXTsKICNlbmRpZgogCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25zID0gWUVTOwpA
QCAtOTg5LDggKzEwNTQsOCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogCiAgICAgX3Ry
ZWF0QXNDb250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0b3JTdGF0ZVVwZGF0ZSA9IE5POwogCi0j
aWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9j
b250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dCA9IE5POworI2lm
IFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgX2NvbnRl
eHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dCA9IE5POwogI2VuZGlmCiAK
ICAgICBpZiAoX2ludGVyYWN0aW9uVmlld3NDb250YWluZXJWaWV3KSB7CkBAIC0xMTExLDggKzEx
NzYsOCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9kYXRhTGlzdFRleHRTdWdn
ZXN0aW9ucyA9IG5pbDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0g
ICAgW3NlbGYgX3RlYXJEb3duSW1hZ2VFeHRyYWN0aW9uXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisgICAgW3NlbGYgX3RlYXJEb3duSW1hZ2VBbmFseXNpc107CiAjZW5kaWYKIAogICAg
IFtzZWxmIF9yZW1vdmVDb250YWluZXJGb3JDb250ZXh0TWVudUhpbnRQcmV2aWV3c107CkBAIC0x
ODI0LDggKzE4ODksOCBAQCAtIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIg
Kj4gKilkZWZlcnJpbmdHZXN0dXJlcwogICAgIGF1dG8gZ2VzdHVyZXMgPSBbTlNNdXRhYmxlQXJy
YXkgYXJyYXlXaXRoQ2FwYWNpdHk6N107CiAgICAgW2dlc3R1cmVzIGFkZE9iamVjdHNGcm9tQXJy
YXk6c2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzXTsKICAgICBbZ2VzdHVyZXMgYWRk
T2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVzXTsKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbZ2VzdHVyZXMgYWRkT2JqZWN0Ol9pbWFnZUV4
dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQorICAgIFtnZXN0dXJlcyBhZGRPYmplY3Q6X2ltYWdlQW5hbHlzaXNEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAjZW5kaWYKICAgICByZXR1cm4gZ2VzdHVy
ZXM7CiB9CkBAIC0yMjg5LDEyICsyMzU0LDEyIEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6
KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAg
ICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIuY2xhc3NdICYmIFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xh
c3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCiAgICAgICAgIHJldHVybiBZ
RVM7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBpZiAoZ2VzdHVyZVJlY29n
bml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyKQotICAg
ICAgICByZXR1cm4gIVtzZWxmIHNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VFeHRyYWN0aW9u
Om90aGVyR2VzdHVyZVJlY29nbml6ZXJdOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcikKKyAgICAgICAgcmV0dXJuICFbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVU
b0ltYWdlQW5hbHlzaXM6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CiAKLSAgICBpZiAob3RoZXJH
ZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIpCi0gICAgICAgIHJldHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFn
ZUV4dHJhY3Rpb246Z2VzdHVyZVJlY29nbml6ZXJdOworICAgIGlmIChvdGhlckdlc3R1cmVSZWNv
Z25pemVyID09IF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCisgICAg
ICAgIHJldHVybiAhW3NlbGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUFuYWx5c2lzOmdl
c3R1cmVSZWNvZ25pemVyXTsKICNlbmRpZgogCiAgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJl
Y29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9oaWdobGlnaHRMb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplci5nZXQoKSwgX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpKSkK
QEAgLTIzNTAsOCArMjQxNSw4IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVy
ZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAgICAgaWYgKGlz
U2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9kb3Vi
bGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVy
Rm9yRG91YmxlQ2xpY2suZ2V0KCkpKQogICAgICAgICByZXR1cm4gWUVTOwogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4
dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VF
eHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyKQorI2lmIEVOQUJMRShJTUFHRV9BTkFM
WVNJUykKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplciB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VBbmFseXNpc1RpbWVvdXRH
ZXN0dXJlUmVjb2duaXplcikKICAgICAgICAgcmV0dXJuIFlFUzsKICNlbmRpZgogCkBAIC0yMzY2
LDggKzI0MzEsOCBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZQogICAgIGlmIChbb3RoZXJHZXN0
dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIu
Y2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICop
b3RoZXJHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOmdlc3R1
cmVSZWNvZ25pemVyXTsKIAotI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKLSAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlv
blRpbWVvdXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IFtf
Y29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1cmVSZWxhdGlv
bnNoaXBzXSkKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0
dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IFtfY29udGV4dE1lbnVJ
bnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1cmVSZWxhdGlvbnNoaXBzXSkKICAg
ICAgICAgcmV0dXJuIFlFUzsKICNlbmRpZgogCkBAIC0yMzc5LDggKzI0NDQsOCBAQCAtIChCT09M
KWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6
ZXIgc2hvdWxkQmVSZXF1aQogICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFz
czpXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKICAgICAgICAgcmV0dXJuIFso
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZERl
ZmVyR2VzdHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CiAKLSNpZiBVU0Uo
VUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKGdlc3R1
cmVSZWNvZ25pemVyID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXpl
ckZvckZhaWx1cmVSZWxhdGlvbnNoaXBzXSAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVyID09IF9p
bWFnZUV4dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIpCisjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpICYmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6
ZXIgPT0gW19jb250ZXh0TWVudUludGVyYWN0aW9uIGdlc3R1cmVSZWNvZ25pemVyRm9yRmFpbHVy
ZVJlbGF0aW9uc2hpcHNdICYmIG90aGVyR2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlQW5hbHlz
aXNUaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIpCiAgICAgICAgIHJldHVybiBZRVM7CiAjZW5kaWYK
IApAQCAtMjc1NCw4ICsyODE5LDggQEAgLSAoQk9PTCloYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBv
aW50OihDR1BvaW50KXBvaW50CiAgICAgaWYgKCFbc2VsZiBlbnN1cmVQb3NpdGlvbkluZm9ybWF0
aW9uSXNVcFRvRGF0ZTpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuIE5POwogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlv
biAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09IF9lbGVtZW50
UGVuZGluZ0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAg
aWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24u
aW1hZ2VFbGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzKQogICAg
ICAgICByZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTI4MzIsOCArMjg5Nyw4IEBAIC0gKEJPT0wp
dGV4dEludGVyYWN0aW9uR2VzdHVyZTooVUlXS0dlc3R1cmVUeXBlKWdlc3R1cmUgc2hvdWxkQmVn
aW5BdFBvaW50OihDR1BvCiAgICAgICAgIHJldHVybiBOTzsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgaWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlv
biAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZUVsZW1lbnRDb250ZXh0ID09IF9lbGVtZW50
UGVuZGluZ0ltYWdlRXh0cmFjdGlvbikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAg
aWYgKF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24u
aW1hZ2VFbGVtZW50Q29udGV4dCA9PSBfZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzKQogICAg
ICAgICByZXR1cm4gWUVTOwogI2VuZGlmCiAKQEAgLTM3ODQsOCArMzg0OSw4IEBAIC0gKEJPT0wp
Y2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQpc2Vu
ZGVyCiAgICAgICAgIHJldHVybiBiYXNlV3JpdGluZ0RpcmVjdGlvbiAhPSBXZWJDb3JlOjpXcml0
aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdDsKICAgICB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKLSAgICBpZiAoV2ViS2l0Ojppc0ltYWdlRXh0cmFjdGlvbkFjdGlvbihhY3Rpb24p
ICYmICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCisgICAgaWYgKChhY3Rpb24gPT0gQHNlbGVjdG9yKGNhcHR1cmVUZXh0RnJvbUNhbWVy
YTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2luc2VydFRleHRGcm9tQ2FtZXJhOikpICYmICFl
ZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuIE5POwogI2VuZGlm
CiAKQEAgLTM3OTksNyArMzg2NCw2IEBAIC0gKGlkKXRhcmdldEZvckFjdGlvbjooU0VMKWFjdGlv
biB3aXRoU2VuZGVyOihpZClzZW5kZXIKICAgICAgICAgcmV0dXJuIHNlbGYuc2hvdWxkQWxsb3dB
cHBIaWdobGlnaHRDcmVhdGlvbiAmJiBfcGFnZS0+YXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/
IHNlbGYgOiBuaWw7CiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY3JlYXRlSGlnaGxpZ2h0
SW5OZXdHcm91cFdpdGhSYW5nZTopKQogICAgICAgICByZXR1cm4gc2VsZi5zaG91bGRBbGxvd0Fw
cEhpZ2hsaWdodENyZWF0aW9uICYmICFfcGFnZS0+YXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/
IHNlbGYgOiBuaWw7Ci0gICAgCiAjZW5kaWYKICAgICByZXR1cm4gW193ZWJWaWV3IHRhcmdldEZv
ckFjdGlvbjphY3Rpb24gd2l0aFNlbmRlcjpzZW5kZXJdOwogfQpAQCAtNDU3Niw4ICs0NjQwLDgg
QEAgLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUKICAgICAvLyBp
biB0aGUgc2FtZSBsb2NhdGlvbiB0byB0cmlnZ2VyIGRvdWJsZS10YXAgcmVjb2duaXRpb24uCiAg
ICAgW3NlbGYgX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDpOT107CiAgICAgW190d29GaW5n
ZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBfd2tfY2FuY2VsXTsKLSNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKLSAgICBbc2VsZiBfY2FuY2VsSW1hZ2VFeHRyYWN0aW9uXTsKKyNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2NhbmNlbEltYWdlQW5hbHlzaXNdOwog
I2VuZGlmCiB9CiAKQEAgLTc2MTIsMTQgKzc2NzYsMTQgQEAgLSAoQk9PTClfc2hvdWxkVXNlTGVn
YWN5U2VsZWN0UG9wb3ZlckRpc21pc3NhbEJlaGF2aW9yCiAgICAgcmV0dXJuIFdlYkNvcmU6OklP
U0FwcGxpY2F0aW9uOjppc0RhdGFBY3RpdmF0aW9uKCk7CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLS0gKEJPT0wpc2hvdWxk
RGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246KFVJR2VzdHVyZVJlY29nbml6ZXIgKiln
ZXN0dXJlCistIChCT09MKXNob3VsZERlZmVyR2VzdHVyZUR1ZVRvSW1hZ2VBbmFseXNpczooVUlH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmUKIHsKICAgICByZXR1cm4gZ2VzdHVyZSA9PSBbX3Rl
eHRJbnRlcmFjdGlvbkFzc2lzdGFudCBsb3VwZUdlc3R1cmVdIHx8IGdlc3R1cmUuX3drX2lzVGFw
QW5kQUhhbGYgfHwgZ2VzdHVyZSA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBmb3JjZVBy
ZXNzR2VzdHVyZV07CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNpZiBIQVZFKFBBU1RFQk9BUkRfREFU
QV9PV05FUikKIApAQCAtNzgyOCw5ICs3ODkyLDkgQEAgLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3QK
ICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXpl
cikKICAgICAgICAgcmV0dXJuIE5POwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0g
ICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25EZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcikKLSAgICAgICAgcmV0dXJuIFtzZWxmIHNob3VsZERlZmVy
R2VzdHVyZUR1ZVRvSW1hZ2VFeHRyYWN0aW9uOmdlc3R1cmVSZWNvZ25pemVyXTsKKyNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCisgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09
IF9pbWFnZUFuYWx5c2lzRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVy
biBbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlQW5hbHlzaXM6Z2VzdHVyZVJlY29n
bml6ZXJdOwogI2VuZGlmCiAKICAgICBhdXRvIG1heURlbGF5UmVzZXRPZkNvbnRhaW5pbmdTdWJn
cmFwaCA9IFsmXShVSUdlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlKSAtPiBCT09MIHsKQEAgLTg3
MjQsOSArODc4OCw5IEBAIC0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lvbjooaWQKIAogICAgIFtzZWxmIGNsZWFu
VXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKIAotICAgIGF1dG8gcHJlcGFyZUZvclNlc3Npb24g
PSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgc2Vzc2lvbiA9
IHJldGFpblB0cihzZXNzaW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
KV0gKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gcHJvY2VlZFdpdGhJbWFnZUV4
dHJhY3Rpb24pIHsKKyAgICBhdXRvIHByZXBhcmVGb3JTZXNzaW9uID0gW3dlYWtTZWxmID0gV2Vh
a09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIHNlc3Npb24gPSByZXRhaW5QdHIoc2Vzc2lv
biksIGNvbXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbildIChXZWJLaXQ6OlByb2Nl
ZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFn
ZSkgewogICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKLSAgICAgICAg
aWYgKCFzdHJvbmdTZWxmIHx8IHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uID09IFdlYktpdDo6
UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246OlllcykKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxm
IHx8IFByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPT0gV2ViS2l0OjpQcm9jZWVkV2l0
aFRleHRTZWxlY3Rpb25JbkltYWdlOjpZZXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgYXV0byBkcmFnT3JpZ2luID0gW3Nlc3Npb24gbG9jYXRpb25JblZpZXc6c3Ryb25nU2VsZi5n
ZXQoKV07CkBAIC04NzM1LDEwICs4Nzk5LDEwIEBAIC0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjoo
VUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lvbjooaWQKICAg
ICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb24gcmVxdWVzdGVkOiAl
cCBhdCBvcmlnaW46IHslLjBmLCAlLjBmfSIsIHNlc3Npb24uZ2V0KCksIGRyYWdPcmlnaW4ueCwg
ZHJhZ09yaWdpbi55KTsKICAgICB9OwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0g
ICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOnByZXBhcmVGb3JTZXNzaW9u
XTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYgX2RvQWZ0ZXJQZW5kaW5n
SW1hZ2VBbmFseXNpczpwcmVwYXJlRm9yU2Vzc2lvbl07CiAjZWxzZQotICAgIHByZXBhcmVGb3JT
ZXNzaW9uKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246Ok5vKTsKKyAgICBwcmVw
YXJlRm9yU2Vzc2lvbihXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5v
KTsKICNlbmRpZgogfQogCkBAIC05NjQ0LDMwICs5NzA4LDMwIEBAIC0gKHZvaWQpX3dyaXRlUHJv
bWlzZWRBdHRhY2htZW50VG9QYXN0ZWJvYXJkOihXZWJDb3JlOjpQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvJiYpCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCi0jaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi0tICh2
b2lkKV9lbmRJbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGVmZXJyYWw6KFdlYktpdDo6U2hvdWxkUHJl
dmVudEdlc3R1cmVzKXNob3VsZFByZXZlbnRHZXN0dXJlcworLSAodm9pZClfZW5kSW1hZ2VBbmFs
eXNpc0dlc3R1cmVEZWZlcnJhbDooV2ViS2l0OjpTaG91bGRQcmV2ZW50R2VzdHVyZXMpc2hvdWxk
UHJldmVudEdlc3R1cmVzCiB7Ci0gICAgW19pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciBlbmREZWZlcnJhbDpzaG91bGRQcmV2ZW50R2VzdHVyZXNdOworICAgIFtfaW1h
Z2VBbmFseXNpc0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGVuZERlZmVycmFsOnNob3VsZFBy
ZXZlbnRHZXN0dXJlc107CiB9CiAKLS0gKHZvaWQpX2RvQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0
aW9uOih2b2lkKF4pKFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gcHJvY2VlZFdp
dGhJbWFnZUV4dHJhY3Rpb24pKWJsb2NrCistICh2b2lkKV9kb0FmdGVyUGVuZGluZ0ltYWdlQW5h
bHlzaXM6KHZvaWQoXikoV2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlIFBy
b2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UpKWJsb2NrCiB7Ci0gICAgaWYgKHNlbGYuaGFz
UGVuZGluZ0ltYWdlRXh0cmFjdGlvblJlcXVlc3QpCi0gICAgICAgIF9hY3Rpb25zVG9QZXJmb3Jt
QWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLmFwcGVuZChtYWtlQmxvY2tQdHIoYmxvY2spKTsK
KyAgICBpZiAoc2VsZi5oYXNQZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3QpCisgICAgICAgIF9h
Y3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpcy5hcHBlbmQobWFrZUJsb2Nr
UHRyKGJsb2NrKSk7CiAgICAgZWxzZQotICAgICAgICBibG9jayhXZWJLaXQ6OlByb2NlZWRXaXRo
SW1hZ2VFeHRyYWN0aW9uOjpObyk7CisgICAgICAgIGJsb2NrKFdlYktpdDo6UHJvY2VlZFdpdGhU
ZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm8pOwogfQogCi0tICh2b2lkKV9pbnZva2VBbGxBY3Rpb25z
VG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOihXZWJLaXQ6OlByb2NlZWRXaXRo
SW1hZ2VFeHRyYWN0aW9uKXByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uCistICh2b2lkKV9pbnZv
a2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczooV2ViS2l0OjpQ
cm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlKVByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbklu
SW1hZ2UKIHsKLSAgICBfcGVuZGluZ0ltYWdlRXh0cmFjdGlvblJlcXVlc3RJZGVudGlmaWVyID0g
c3RkOjpudWxsb3B0OwotICAgIF9lbGVtZW50UGVuZGluZ0ltYWdlRXh0cmFjdGlvbiA9IHN0ZDo6
bnVsbG9wdDsKLSAgICBmb3IgKGF1dG8gYmxvY2sgOiBzdGQ6OmV4Y2hhbmdlKF9hY3Rpb25zVG9Q
ZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uLCB7IH0pKQotICAgICAgICBibG9jayhw
cm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbik7CisgICAgX3BlbmRpbmdJbWFnZUFuYWx5c2lzUmVx
dWVzdElkZW50aWZpZXIgPSBzdGQ6Om51bGxvcHQ7CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VB
bmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBmb3IgKGF1dG8gYmxvY2sgOiBzdGQ6OmV4Y2hh
bmdlKF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpcywgeyB9KSkKKyAg
ICAgICAgYmxvY2soUHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSk7CiB9CiAKLSNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCiAKIC0gKHZvaWQpc2V0VXBUZXh0SW5kaWNhdG9yOihSZWY8V2ViQ29yZTo6VGV4dElu
ZGljYXRvcj4pdGV4dEluZGljYXRvcgogewpAQCAtOTczMCw2ICs5Nzk0LDQ0NyBAQCAtICh2b2lk
KXN0YXJ0RmFkZU91dAogICAgIH1dOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
CisjaWYgVVNFKFFVSUNLX0xPT0spCisKKy0gKHZvaWQpcHJlc2VudFZpc3VhbFNlYXJjaFByZXZp
ZXdDb250cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilp
bWFnZVVSTCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdl
Qm91bmRzIGFwcGVhcmFuY2VBY3Rpb25zOihRTFByZXZpZXdDb250cm9sbGVyRmlyc3RUaW1lQXBw
ZWFyYW5jZUFjdGlvbnMpYXBwZWFyYW5jZUFjdGlvbnMKK3sKKyAgICBBU1NFUlQoX2hhc1NlbGVj
dGFibGVUZXh0SW5JbWFnZSB8fCBfaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyk7CisKKyAgICBBU1NF
UlQoIV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgX3Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbUEFMOjphbGxvY1FMUHJldmlld0NvbnRyb2xsZXJJ
bnN0YW5jZSgpIGluaXRdKTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHNl
dERlbGVnYXRlOnNlbGZdOworICAgIFtfdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgc2V0
RGF0YVNvdXJjZTpzZWxmXTsKKyAgICBbX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIHNl
dEFwcGVhcmFuY2VBY3Rpb25zOmFwcGVhcmFuY2VBY3Rpb25zXTsKKyAgICBbX3Zpc3VhbFNlYXJj
aFByZXZpZXdDb250cm9sbGVyIHNldE1vZGFsUHJlc2VudGF0aW9uU3R5bGU6VUlNb2RhbFByZXNl
bnRhdGlvbk92ZXJGdWxsU2NyZWVuXTsKKworICAgIEFTU0VSVCghX3Zpc3VhbFNlYXJjaFByZXZp
ZXdJbWFnZSk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZSA9IGltYWdlOworCisgICAg
QVNTRVJUKCFfdmlzdWFsU2VhcmNoUHJldmlld1RpdGxlKTsKKyAgICBfdmlzdWFsU2VhcmNoUHJl
dmlld1RpdGxlID0gdGl0bGU7CisKKyAgICBBU1NFUlQoIV92aXN1YWxTZWFyY2hQcmV2aWV3SW1h
Z2VVUkwpOworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwgPSBpbWFnZVVSTDsKKwor
ICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VCb3VuZHMgPSBpbWFnZUJvdW5kczsKKworICAg
IFVJVmlld0NvbnRyb2xsZXIgKmN1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgPSBbVUlW
aWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJv
bVZpZXc6c2VsZl07CisgICAgW2N1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgcHJlc2Vu
dFZpZXdDb250cm9sbGVyOl92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5nZXQoKSBhbmlt
YXRlZDpZRVMgY29tcGxldGlvbjpuaWxdOworfQorCisjcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdD
b250cm9sbGVyRGVsZWdhdGUKKworLSAoQ0dSZWN0KXByZXZpZXdDb250cm9sbGVyOihRTFByZXZp
ZXdDb250cm9sbGVyICopY29udHJvbGxlciBmcmFtZUZvclByZXZpZXdJdGVtOihpZCA8UUxQcmV2
aWV3SXRlbT4paXRlbSBpblNvdXJjZVZpZXc6KFVJVmlldyAqKilvdXRWaWV3Cit7CisgICAgKm91
dFZpZXcgPSBzZWxmOworICAgIHJldHVybiBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlQm91bmRz
OworfQorCistIChVSUltYWdlICopcHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xs
ZXIgKiljb250cm9sbGVyIHRyYW5zaXRpb25JbWFnZUZvclByZXZpZXdJdGVtOihpZCA8UUxQcmV2
aWV3SXRlbT4paXRlbSBjb250ZW50UmVjdDooQ0dSZWN0ICopb3V0Q29udGVudFJlY3QKK3sKKyAg
ICAqb3V0Q29udGVudFJlY3QgPSBDR1JlY3QgeyBDR1BvaW50WmVybywgX3Zpc3VhbFNlYXJjaFBy
ZXZpZXdJbWFnZUJvdW5kcy5zaXplIH07CisgICAgcmV0dXJuIF92aXN1YWxTZWFyY2hQcmV2aWV3
SW1hZ2UuZ2V0KCk7Cit9CisKKy0gKHZvaWQpcHJldmlld0NvbnRyb2xsZXJEaWREaXNtaXNzOihR
TFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlcgoreworICAgIEFTU0VSVChjb250cm9sbGVy
ID09IF92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgX3Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyLmNsZWFyKCk7CisgICAgX3Zpc3VhbFNlYXJjaFByZXZpZXdJbWFnZS5j
bGVhcigpOworICAgIF92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUuY2xlYXIoKTsKKyAgICBfdmlz
dWFsU2VhcmNoUHJldmlld0ltYWdlVVJMLmNsZWFyKCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFFM
UHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlCisKKy0gKE5TSW50ZWdlciludW1iZXJPZlByZXZp
ZXdJdGVtc0luUHJldmlld0NvbnRyb2xsZXI6KFFMUHJldmlld0NvbnRyb2xsZXIgKiljb250cm9s
bGVyCit7CisgICAgQVNTRVJUKGNvbnRyb2xsZXIgPT0gX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250
cm9sbGVyKTsKKyAgICByZXR1cm4gMTsKK30KKworLSAoaWQgPFFMUHJldmlld0l0ZW0+KXByZXZp
ZXdDb250cm9sbGVyOihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBwcmV2aWV3SXRl
bUF0SW5kZXg6KE5TSW50ZWdlcilpbmRleAoreworICAgIEFTU0VSVChjb250cm9sbGVyID09IF92
aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlcik7CisgICAgQVNTRVJUKCFpbmRleCk7CisgICAg
YXV0byBpdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1FMSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhE
YXRhUHJvdmlkZXI6c2VsZiBjb250ZW50VHlwZTpVVFR5cGVUSUZGLmlkZW50aWZpZXIgcHJldmll
d1RpdGxlOl92aXN1YWxTZWFyY2hQcmV2aWV3VGl0bGUuZ2V0KCldKTsKKyAgICBpZiAoW2l0ZW0g
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRQcmV2aWV3T3B0aW9uczopXSkgeworICAg
ICAgICBhdXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml0pOworICAgICAgICBpZiAoX3Zpc3VhbFNlYXJjaFBy
ZXZpZXdJbWFnZVVSTCkKKyAgICAgICAgICAgIFtwcmV2aWV3T3B0aW9ucyBzZXRPYmplY3Q6X3Zp
c3VhbFNlYXJjaFByZXZpZXdJbWFnZVVSTC5nZXQoKSBmb3JLZXk6QCJpbWFnZVVSTCJdOworICAg
ICAgICBpZiAoYXV0byBwYWdlVVJMID0gVVJMIHsgVVJMIHsgfSwgX3BhZ2UtPmN1cnJlbnRVUkwo
KSB9OyAhcGFnZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0
T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVSTCJdOworICAgICAgICBpZiAoW3ByZXZpZXdP
cHRpb25zIGNvdW50XSkKKyAgICAgICAgICAgIFtpdGVtIHNldFByZXZpZXdPcHRpb25zOnByZXZp
ZXdPcHRpb25zLmdldCgpXTsKKyAgICB9CisgICAgcmV0dXJuIGl0ZW0uYXV0b3JlbGVhc2UoKTsK
K30KKworI3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRlbURhdGFQcm92aWRlcgorCistIChOU0Rh
dGEgKilwcm92aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAqKWl0ZW0KK3sKKyAgICBBU1NFUlQoX3Zp
c3VhbFNlYXJjaFByZXZpZXdJbWFnZSk7CisKKyAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENGRGF0
YUNyZWF0ZU11dGFibGUoTlVMTCwgMCkpOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdENG
KENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKGRhdGEuZ2V0KCksIChfX2JyaWRnZSBD
RlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIsIDEsIE5VTEwpKTsKKyAgICBDR0ltYWdl
RGVzdGluYXRpb25BZGRJbWFnZShkZXN0aW5hdGlvbi5nZXQoKSwgW192aXN1YWxTZWFyY2hQcmV2
aWV3SW1hZ2UgQ0dJbWFnZV0sIG5pbCk7CisgICAgaWYgKCFDR0ltYWdlRGVzdGluYXRpb25GaW5h
bGl6ZShkZXN0aW5hdGlvbi5nZXQoKSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICByZXR1
cm4gZGF0YS5icmlkZ2luZ0F1dG9yZWxlYXNlKCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZQorCistIChib29sKWFjdGlvblNoZWV0QXNzaXN0YW50
OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVTaG93VGV4
dEFjdGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudAorewor
ICAgIHJldHVybiBXZWJLaXQ6OmlzTGl2ZVRleHRFbmFibGVkKCkgJiYgX2hhc1NlbGVjdGFibGVU
ZXh0SW5JbWFnZTsKK30KKworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25T
aGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaG93VGV4dEZvckltYWdlOihVSUltYWdlICopaW1h
Z2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1h
Z2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kcworeworICAgIFtzZWxmIHByZXNlbnRWaXN1YWxT
ZWFyY2hQcmV2aWV3Q29udHJvbGxlckZvckltYWdlOmltYWdlIGltYWdlVVJMOmltYWdlVVJMIHRp
dGxlOnRpdGxlIGltYWdlQm91bmRzOmltYWdlQm91bmRzIGFwcGVhcmFuY2VBY3Rpb25zOlFMUHJl
dmlld0NvbnRyb2xsZXJGaXJzdFRpbWVBcHBlYXJhbmNlQWN0aW9uRW5hYmxlVmlzdWFsU2VhcmNo
RGF0YURldGVjdGlvbl07Cit9CisKKy0gKGJvb2wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0
aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50Cit7CisgICAg
cmV0dXJuIFdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSAmJiBfaGFzVmlzdWFsU2VhcmNoUmVz
dWx0czsKK30KKworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqKWFzc2lzdGFudCBsb29rVXBJbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJM
OihOU1VSTCAqKWltYWdlVVJMIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlQm91bmRzOihD
R1JlY3QpaW1hZ2VCb3VuZHMKK3sKKyAgICBbc2VsZiBwcmVzZW50VmlzdWFsU2VhcmNoUHJldmll
d0NvbnRyb2xsZXJGb3JJbWFnZTppbWFnZSBpbWFnZVVSTDppbWFnZVVSTCB0aXRsZTp0aXRsZSBp
bWFnZUJvdW5kczppbWFnZUJvdW5kcyBhcHBlYXJhbmNlQWN0aW9uczpRTFByZXZpZXdDb250cm9s
bGVyRmlyc3RUaW1lQXBwZWFyYW5jZUFjdGlvbkVuYWJsZVZpc3VhbFNlYXJjaE1vZGVdOworfQor
CisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCisKKyNwcmFnbWEgbWFyayAtIEltYWdlIEV4dHJh
Y3Rpb24KKworLSAoVktJbWFnZUFuYWx5emVyICopaW1hZ2VBbmFseXplcgoreworICAgIGlmICgh
X2ltYWdlQW5hbHl6ZXIpCisgICAgICAgIF9pbWFnZUFuYWx5emVyID0gYWRvcHROUyhbYWxsb2NW
S0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICByZXR1cm4gX2ltYWdlQW5hbHl6
ZXIuZ2V0KCk7Cit9CisKKy0gKEJPT0wpaGFzUGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0Cit7
CisgICAgcmV0dXJuICEhX3BlbmRpbmdJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI7Cit9
CisKKy0gKHZvaWQpX3NldFVwSW1hZ2VBbmFseXNpcworeworICAgIGlmICghV2ViS2l0Ojppc0xp
dmVUZXh0RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBfcGVuZGluZ0ltYWdlQW5h
bHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5n
V2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VB
bmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyID0gYWRvcHROUyhbW1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBp
bml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOworICAgIFtzZWxmIGFk
ZEdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCld
OworICAgIF9pbWFnZUFuYWx5c2lzVGltZW91dEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhb
W1VJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYg
YWN0aW9uOkBzZWxlY3RvcihpbWFnZUFuYWx5c2lzR2VzdHVyZURpZFRpbWVPdXQ6KV0pOworICAg
IFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXRNaW5pbXVtUHJlc3NE
dXJhdGlvbjoyLjBdOworICAgIFtfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXpl
ciBzZXROYW1lOkAiSW1hZ2UgYW5hbHlzaXMgdGltZW91dCJdOworICAgIFtfaW1hZ2VBbmFseXNp
c1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbc2VsZiBh
ZGRHZXN0dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXpl
ci5nZXQoKV07CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgX2hhc1NlbGVjdGFibGVUZXh0SW5J
bWFnZSA9IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gTk87CisjZW5kaWYgLy8g
VVNFKFFVSUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2NvbnRleHRNZW51
Rm9yTWFjaGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOworI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRN
RU5VKQorfQorCistICh2b2lkKV90ZWFyRG93bkltYWdlQW5hbHlzaXMKK3sKKyAgICBpZiAoIVdl
YktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW19pbWFn
ZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmdl
dCgpXTsKKyAgICBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyID0gbmlsOworICAgIFtf
aW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwor
ICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9pbWFnZUFuYWx5c2lzVGltZW91dEdl
c3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBfaW1hZ2VBbmFseXNpc1RpbWVvdXRHZXN0dXJl
UmVjb2duaXplciA9IG5pbDsKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRp
ZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25J
bkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVs
bG9wdDsKKyAgICBbc3RkOjpleGNoYW5nZShfaW1hZ2VBbmFseXplciwgbmlsKSBjYW5jZWxBbGxS
ZXF1ZXN0c107CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgX2hhc1NlbGVjdGFibGVUZXh0SW5J
bWFnZSA9IE5POworICAgIF9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gTk87CisjZW5kaWYgLy8g
VVNFKFFVSUNLX0xPT0spCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgX2NvbnRleHRNZW51
Rm9yTWFjaGluZVJlYWRhYmxlQ29kZS5jbGVhcigpOworI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRN
RU5VKQorICAgIFtzZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1h
Z2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vXTsK
K30KKworLSAodm9pZClfY2FuY2VsSW1hZ2VBbmFseXNpcworeworICAgIFtfaW1hZ2VBbmFseXpl
ciBjYW5jZWxBbGxSZXF1ZXN0c107CisgICAgUkVMRUFTRV9MT0dfSUYoc2VsZi5oYXNQZW5kaW5n
SW1hZ2VBbmFseXNpc1JlcXVlc3QsIEltYWdlcywgIkltYWdlIGFuYWx5c2lzIHJlcXVlc3QgJSIg
UFJJdTY0ICIgY2FuY2VsbGVkLiIsIF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlm
aWVyLT50b1VJbnQ2NCgpKTsKKyAgICBfcGVuZGluZ0ltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRp
ZmllciA9IHN0ZDo6bnVsbG9wdDsKKyAgICBfaXNQcm9jZWVkaW5nV2l0aFRleHRTZWxlY3Rpb25J
bkltYWdlID0gTk87CisgICAgX2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVs
bG9wdDsKK30KKworLSAoUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNyZWF0ZUlt
YWdlQW5hbHlzaXNSZXF1ZXN0OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBpbWFnZToo
VUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCit7CisgICAgYXV0byBy
ZXF1ZXN0ID0gYWRvcHROUyhbYWxsb2NWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0SW5zdGFuY2UoKSBp
bml0V2l0aEltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VPcmllbnRhdGlvblVwIHJlcXVl
c3RUeXBlOmFuYWx5c2lzVHlwZXNdKTsKKyAgICBbcmVxdWVzdCBzZXRJbWFnZVVSTDppbWFnZVVS
TF07CisgICAgW3JlcXVlc3Qgc2V0UGFnZVVSTDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5n
Ol9wYWdlLT5jdXJyZW50VVJMKCldXTsKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworLSAoUmV0
YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0
OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBpbWFnZTooVUlJbWFnZSAqKWltYWdlCit7
CisgICAgcmV0dXJuIFtzZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OmFuYWx5c2lzVHlw
ZXMgaW1hZ2U6aW1hZ2UgaW1hZ2VVUkw6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VVUkxdOwor
fQorCistIChCT09MKXZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyOihXZWJL
aXQ6OkltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcilpZGVudGlmaWVyCit7CisgICAgaWYg
KF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID09IGlkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybiBZRVM7CisKKyAgICBpZiAoIXNlbGYuaGFzUGVuZGluZ0ltYWdlQW5hbHlz
aXNSZXF1ZXN0KSB7CisgICAgICAgIC8vIE9ubHkgaW52b2tlIGRlZmVycmVkIGltYWdlIGFuYWx5
c2lzIGJsb2NrcyBpZiB0aGVyZSBpcyBubyBvbmdvaW5nIHJlcXVlc3Q7IG90aGVyd2lzZSwgdGhp
cyB3b3VsZAorICAgICAgICAvLyBjYXVzZSB0aGVzZSBibG9ja3MgdG8gYmUgaW52b2tlZCB0b28g
ZWFybHkgKGkuZS4gaW4gdGhlIG1pZGRsZSBvZiB0aGUgbmV3IGltYWdlIGFuYWx5c2lzIHJlcXVl
c3QpLgorICAgICAgICBbc2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGlu
Z0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpO
b107CisgICAgfQorCisgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgcmVx
dWVzdCAlIiBQUkl1NjQgIiBpbnZhbGlkYXRlZC4iLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOwor
ICAgIHJldHVybiBOTzsKK30KKworI3ByYWdtYSBtYXJrIC0gV0tJbWFnZUFuYWx5c2lzR2VzdHVy
ZVJlY29nbml6ZXJEZWxlZ2F0ZQorCistICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRpb246KE5T
VVJMICopaW1hZ2VVUkwgaW1hZ2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJilpbWFnZURhdGEgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKWNvbXBsZXRpb24KK3sKKyAg
ICBhdXRvIGltYWdlQml0bWFwID0gV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFn
ZURhdGEpOworICAgIGlmICghaW1hZ2VCaXRtYXApIHsKKyAgICAgICAgY29tcGxldGlvbih7IH0p
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRt
YXAtPm1ha2VDR0ltYWdlKCk7CisgICAgaWYgKCFjZ0ltYWdlKSB7CisgICAgICAgIGNvbXBsZXRp
b24oeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gaW1hZ2UgPSBhZG9w
dE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAg
ICBpZiAoIWltYWdlKSB7CisgICAgICAgIGNvbXBsZXRpb24oeyB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gcmVxdWVzdCA9IFtzZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNS
ZXF1ZXN0OlZLQW5hbHlzaXNUeXBlVGV4dCBpbWFnZTppbWFnZS5nZXQoKV07CisgICAgW1tzZWxm
IGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJvZ3Jlc3NIYW5k
bGVyOm5pbCBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZN
b3ZlKGNvbXBsZXRpb24pXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKikgbXV0
YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb24oV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVz
dWx0KHJlc3VsdCkpOworICAgIH0pLmdldCgpXTsKK30KKworLSAodm9pZClpbWFnZUFuYWx5c2lz
R2VzdHVyZURpZEJlZ2luOihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1
cmVSZWNvZ25pemVyCit7CisgICAgQVNTRVJUKFdlYktpdDo6aXNMaXZlVGV4dEVuYWJsZWQoKSk7
CisKKyAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gV2ViS2l0OjpJbWFnZUFuYWx5c2lzUmVx
dWVzdElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisKKyAgICBbX2ltYWdlQW5hbHl6ZXIgY2FuY2Vs
QWxsUmVxdWVzdHNdOworICAgIF9wZW5kaW5nSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVy
ID0gcmVxdWVzdElkZW50aWZpZXI7CisgICAgX2lzUHJvY2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9u
SW5JbWFnZSA9IE5POworICAgIF9lbGVtZW50UGVuZGluZ0ltYWdlQW5hbHlzaXMgPSBzdGQ6Om51
bGxvcHQ7CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICBfaGFzU2VsZWN0YWJsZVRleHRJbklt
YWdlID0gTk87CisgICAgX2hhc1Zpc3VhbFNlYXJjaFJlc3VsdHMgPSBOTzsKKyNlbmRpZiAvLyBV
U0UoUVVJQ0tfTE9PSykKKworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIF9jb250ZXh0TWVu
dUZvck1hY2hpbmVSZWFkYWJsZUNvZGUuY2xlYXIoKTsKKyNlbmRpZiAvLyBVU0UoVUlDT05URVhU
TUVOVSkKKworICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVz
dCB7IFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChbZ2VzdHVyZVJlY29nbml6ZXIgbG9jYXRpb25J
blZpZXc6c2VsZl0pIH07CisgICAgcmVxdWVzdC5pbmNsdWRlSW1hZ2VEYXRhID0gdHJ1ZTsKKyAg
ICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbcmVxdWVzdElkZW50aWZp
ZXIgPSBXVEZNb3ZlKHJlcXVlc3RJZGVudGlmaWVyKSwgd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0NvbnRlbnRWaWV3PihzZWxmKSwgZ2VzdHVyZURlZmVycmFsVG9rZW4gPSBXZWJLaXQ6OkltYWdl
QW5hbHlzaXNHZXN0dXJlRGVmZXJyYWxUb2tlbjo6Y3JlYXRlKHNlbGYpXSAoV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgbXV0YWJsZSB7CisgICAg
ICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIVtzdHJv
bmdTZWxmIHZhbGlkYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyOnJlcXVlc3RJZGVu
dGlmaWVyXSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBib29sIHNob3VsZEFuYWx5
emVJbWFnZUF0TG9jYXRpb24gPSBpbmZvcm1hdGlvbi5pc0ltYWdlICYmIGluZm9ybWF0aW9uLmlt
YWdlICYmIGluZm9ybWF0aW9uLmltYWdlRWxlbWVudENvbnRleHQgJiYgIWluZm9ybWF0aW9uLmlz
QW5pbWF0ZWRJbWFnZTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmLT5fcGVuZGluZ0ltYWdlQW5h
bHlzaXNSZXF1ZXN0SWRlbnRpZmllciB8fCAhc2hvdWxkQW5hbHl6ZUltYWdlQXRMb2NhdGlvbikg
eworICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRl
clBlbmRpbmdJbWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5J
bWFnZTo6Tm9dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0
byBjZ0ltYWdlID0gaW5mb3JtYXRpb24uaW1hZ2UtPm1ha2VDR0ltYWdlQ29weSgpOworICAgICAg
ICBpZiAoIWNnSW1hZ2UpIHsKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rp
b25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRo
VGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gaW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdp
dGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgaWYgKCFpbWFnZSkgeworICAgICAg
ICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJ
bWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9d
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUkVMRUFTRV9MT0co
SW1hZ2VzLCAiSW1hZ2UgYW5hbHlzaXMgcHJlZmxpZ2h0IGdlc3R1cmUgaW5pdGlhdGVkIChyZXF1
ZXN0ICUiIFBSSXU2NCAiKS4iLCByZXF1ZXN0SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKworICAg
ICAgICBzdHJvbmdTZWxmLT5fZWxlbWVudFBlbmRpbmdJbWFnZUFuYWx5c2lzID0gaW5mb3JtYXRp
b24uaW1hZ2VFbGVtZW50Q29udGV4dDsKKworICAgICAgICBhdXRvIHJlcXVlc3RMb2NhdGlvbiA9
IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgICAgIFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0IGVsZW1lbnRDb250ZXh0ID0gKmluZm9ybWF0aW9uLmltYWdlRWxlbWVudENvbnRleHQ7CisK
KyAgICAgICAgYXV0byByZXF1ZXN0Rm9yVGV4dFNlbGVjdGlvbiA9IFtzdHJvbmdTZWxmIGNyZWF0
ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlzaXNUeXBlVGV4dCBpbWFnZTppbWFnZS5nZXQo
KV07CisgICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0gW3N0cm9uZ1NlbGYgY3Jl
YXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggfCBWS0Fu
YWx5c2lzVHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgaW1hZ2U6aW1hZ2UuZ2V0KCldOworCisgICAg
ICAgIGF1dG8gdGV4dEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cisg
ICAgICAgIFtbc3Ryb25nU2VsZiBpbWFnZUFuYWx5emVyXSBwcm9jZXNzUmVxdWVzdDpyZXF1ZXN0
Rm9yVGV4dFNlbGVjdGlvbi5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5k
bGVyOltyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFr
U2VsZiwgZWxlbWVudENvbnRleHQsIHJlcXVlc3RMb2NhdGlvbiwgcmVxdWVzdEZvckNvbnRleHRN
ZW51LCBnZXN0dXJlRGVmZXJyYWxUb2tlbiwgdGV4dEFuYWx5c2lzU3RhcnRUaW1lXSAoVktJbWFn
ZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgaWYgKCFbc3Ry
b25nU2VsZiB2YWxpZGF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllcjpyZXF1ZXN0SWRl
bnRpZmllcl0pCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBCT09MIGhh
c1RleHRSZXN1bHRzID0gW3Jlc3VsdCBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBlczpWS0FuYWx5
c2lzVHlwZVRleHRdOworICAgICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5h
bHlzaXMgY29tcGxldGVkIGluICUuMGYgbXMgKHJlcXVlc3QgJSIgUFJJdTY0ICI7IGZvdW5kIHRl
eHQ/ICVkKSIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHRleHRBbmFseXNpc1N0YXJ0VGltZSku
bWlsbGlzZWNvbmRzKCksIHJlcXVlc3RJZGVudGlmaWVyLnRvVUludDY0KCksIGhhc1RleHRSZXN1
bHRzKTsKKworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X3BhZ2UtPnVwZGF0ZVdpdGhUZXh0UmVj
b2duaXRpb25SZXN1bHQoV2ViS2l0OjptYWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCks
IGVsZW1lbnRDb250ZXh0LCByZXF1ZXN0TG9jYXRpb24sIFtyZXF1ZXN0SWRlbnRpZmllciA9IFdU
Rk1vdmUocmVxdWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwgaGFzVGV4dFJlc3VsdHMsIHJlcXVl
c3RGb3JDb250ZXh0TWVudSwgZ2VzdHVyZURlZmVycmFsVG9rZW5dIChXZWJLaXQ6OlRleHRSZWNv
Z25pdGlvblVwZGF0ZVJlc3VsdCB1cGRhdGVSZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgICAgIGlm
ICghW3N0cm9uZ1NlbGYgdmFsaWRhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6cmVx
dWVzdElkZW50aWZpZXJdKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgICAgICBpZiAodXBkYXRlUmVzdWx0ID09IFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRl
UmVzdWx0OjpUZXh0KSB7CisgICAgICAgICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9pc1Byb2Nl
ZWRpbmdXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2UgPSBZRVM7CisgICAgICAgICAgICAgICAgICAg
IFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5nSW1hZ2VB
bmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Olllc107Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBnZXN0dXJlRGVmZXJyYWxUb2tlbi0+c2V0U2hvdWxkUHJldmVudFRleHRTZWxlY3Rp
b24oKTsKKworICAgICAgICAgICAgICAgIGlmICh1cGRhdGVSZXN1bHQgPT0gV2ViS2l0OjpUZXh0
UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcikgeworICAgICAgICAgICAgICAg
ICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVuZGluZ0lt
YWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlOjpOb107
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBhdXRvIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CisgICAgICAgICAgICAgICAgW1tzdHJvbmdTZWxmIGltYWdlQW5hbHl6ZXJd
IHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3RGb3JDb250ZXh0TWVudS5nZXQoKSBwcm9ncmVzc0hhbmRs
ZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOltyZXF1ZXN0SWRlbnRpZmllciA9IFdURk1vdmUocmVx
dWVzdElkZW50aWZpZXIpLCB3ZWFrU2VsZiwgaGFzVGV4dFJlc3VsdHMsIHZpc3VhbFNlYXJjaEFu
YWx5c2lzU3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9y
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghW3N0cm9uZ1NlbGYgdmFsaWRhdGVJ
bWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXI6cmVxdWVzdElkZW50aWZpZXJdKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgICAg
ICAgICAgICAgICAgIEJPT0wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cyA9IFtyZXN1bHQgaGFzUmVz
dWx0c0ZvckFuYWx5c2lzVHlwZXM6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2hdOworICAgICAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0
ZWQgaW4gJS4wZiBtcyAocmVxdWVzdCAlIiBQUkl1NjQgIjsgZm91bmQgdmlzdWFsIHNlYXJjaCBy
ZXN1bHRzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSB2aXN1YWxTZWFyY2hBbmFseXNp
c1N0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIHJlcXVlc3RJZGVudGlmaWVyLnRvVUludDY0KCks
IGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpOworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgVU5V
U0VEX1BBUkFNKHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lKTsKKyNlbmRpZgorICAgICAg
ICAgICAgICAgICAgICBpZiAoIXJlc3VsdCB8fCBlcnJvcikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgW3N0cm9uZ1NlbGYgX2ludm9rZUFsbEFjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJ
bWFnZUFuYWx5c2lzOldlYktpdDo6UHJvY2VlZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6Tm9d
OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9
CisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKyAgICAgICAgICAgICAgICAgICAgc3Ryb25nU2VsZi0+
X2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9IGhhc1RleHRSZXN1bHRzOworICAgICAgICAgICAg
ICAgICAgICBzdHJvbmdTZWxmLT5faGFzVmlzdWFsU2VhcmNoUmVzdWx0cyA9IGhhc1Zpc3VhbFNl
YXJjaFJlc3VsdHM7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICBVTlVTRURfUEFSQU0oaGFz
VGV4dFJlc3VsdHMpOworI2VuZGlmCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgICAgICAg
ICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudUZvck1hY2hpbmVSZWFkYWJsZUNvZGUg
PSBbcmVzdWx0IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlzaXNUeXBlTWFjaGlu
ZVJlYWRhYmxlQ29kZV0gPyByZXN1bHQubXJjTWVudSA6IG5pbDsKKyNlbmRpZgorICAgICAgICAg
ICAgICAgICAgICBbc3Ryb25nU2VsZiBfaW52b2tlQWxsQWN0aW9uc1RvUGVyZm9ybUFmdGVyUGVu
ZGluZ0ltYWdlQW5hbHlzaXM6V2ViS2l0OjpQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdl
OjpOb107CisgICAgICAgICAgICAgICAgfV07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfV07
CisgICAgfSBmb3JSZXF1ZXN0OnJlcXVlc3RdOworfQorCistICh2b2lkKWltYWdlQW5hbHlzaXNH
ZXN0dXJlRGlkRmFpbDooV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmVjb2duaXplcgoreworICAgIFtzZWxmIF9lbmRJbWFnZUFuYWx5c2lzR2VzdHVyZURlZmVycmFs
OldlYktpdDo6U2hvdWxkUHJldmVudEdlc3R1cmVzOjpOb107Cit9CisKKy0gKHZvaWQpaW1hZ2VB
bmFseXNpc0dlc3R1cmVEaWRUaW1lT3V0OihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXpl
ciAqKWdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgaWYgKCFzZWxmLl9zaG91bGRVc2VDb250ZXh0
TWVudXMpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzZWxmLmhhc1BlbmRpbmdJbWFnZUFu
YWx5c2lzUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdlc3R1cmVSZWNvZ25p
emVyLnN0YXRlICE9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUJlZ2FuKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIGxvY2F0aW9uID0gV2ViQ29yZTo6cm91bmRlZEludFBvaW50KFtnZXN0
dXJlUmVjb2duaXplciBsb2NhdGlvbkluVmlldzpzZWxmXSk7CisgICAgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgbG9jYXRpb24gfTsKKyAgICByZXF1ZXN0
LmluY2x1ZGVJbWFnZURhdGEgPSB0cnVlOworICAgIFtzZWxmIGRvQWZ0ZXJQb3NpdGlvbkluZm9y
bWF0aW9uVXBkYXRlOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYp
LCBsb2NhdGlvbl0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5m
bykgeworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAg
aWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghaW5m
by5pbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoKCFpbmZvLmlzSW1h
Z2VPdmVybGF5VGV4dCB8fCAhaW5mby5pc1NlbGVjdGVkKSAmJiAhc3Ryb25nU2VsZi0+X2lzUHJv
Y2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBhdXRvIGNnSW1hZ2UgPSBpbmZvLmltYWdlLT5tYWtlQ0dJbWFnZUNvcHkoKTsKKyAg
ICAgICAgaWYgKCFjZ0ltYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8g
aW1hZ2UgPSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmNnSW1hZ2Uu
Z2V0KCldKTsKKyAgICAgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBSRUxFQVNFX0xPRyhJbWFnZXMsICJJbWFnZSBhbmFseXNpcyB0aW1lb3V0IGdlc3R1cmUg
aW5pdGlhdGVkLiIpOworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgc29t
ZSB3YXkgdG8gY2FjaGUgaW1hZ2UgYW5hbHlzaXMgcmVzdWx0cyBwZXIgZWxlbWVudCwgc28gdGhh
dCB3ZSBkb24ndCBlbmQgdXAKKyAgICAgICAgLy8gbWFraW5nIHJlZHVuZGFudCBpbWFnZSBhbmFs
eXNpcyByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgaW1hZ2UgZGF0YS4KKworICAgICAgICBhdXRvIHZp
c3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAg
ICAgIGF1dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0gW3N0cm9uZ1NlbGYgY3JlYXRlSW1hZ2VB
bmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1YWxTZWFyY2ggfCBWS0FuYWx5c2lzVHlw
ZU1hY2hpbmVSZWFkYWJsZUNvZGUgaW1hZ2U6aW1hZ2UuZ2V0KCldOworICAgICAgICBbW3N0cm9u
Z1NlbGYgaW1hZ2VBbmFseXplcl0gcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdEZvckNvbnRleHRNZW51
LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtTZWxmLCBs
b2NhdGlvbiwgdmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWVdIChWS0ltYWdlQW5hbHlzaXMg
KnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9
IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworI2lmIFVTRShRVUlDS19MT09LKQorICAgICAgICAgICAgQk9PTCBo
YXNWaXN1YWxTZWFyY2hSZXN1bHRzID0gW3Jlc3VsdCBoYXNSZXN1bHRzRm9yQW5hbHlzaXNUeXBl
czpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaF07CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhJ
bWFnZXMsICJJbWFnZSBhbmFseXNpcyBjb21wbGV0ZWQgaW4gJS4wZiBtcyAoZm91bmQgdmlzdWFs
IHNlYXJjaCByZXN1bHRzPyAlZCkiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSB2aXN1YWxTZWFy
Y2hBbmFseXNpc1N0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksIGhhc1Zpc3VhbFNlYXJjaFJlc3Vs
dHMpOworICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2hhc1NlbGVjdGFibGVUZXh0SW5JbWFnZSA9
IFlFUzsKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9oYXNWaXN1YWxTZWFyY2hSZXN1bHRzID0g
aGFzVmlzdWFsU2VhcmNoUmVzdWx0czsKKyNlbHNlCisgICAgICAgICAgICBVTlVTRURfUEFSQU0o
dmlzdWFsU2VhcmNoQW5hbHlzaXNTdGFydFRpbWUpOworI2VuZGlmCisKKyNpZiBVU0UoVUlDT05U
RVhUTUVOVSkKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudUZvck1hY2hpbmVS
ZWFkYWJsZUNvZGUgPSBbcmVzdWx0IGhhc1Jlc3VsdHNGb3JBbmFseXNpc1R5cGVzOlZLQW5hbHlz
aXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZV0gPyByZXN1bHQubXJjTWVudSA6IG5pbDsKKyAgICAg
ICAgICAgIHN0cm9uZ1NlbGYtPl9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VBbmFseXNp
c1RpbWVvdXQgPSBZRVM7CisgICAgICAgICAgICBbc3Ryb25nU2VsZi0+X2NvbnRleHRNZW51SW50
ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpsb2NhdGlvbl07CisjZWxzZQorICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKGxvY2F0aW9uKTsKKyNlbmRpZgorICAgICAgICB9XTsKKyAgICB9
IGZvclJlcXVlc3Q6cmVxdWVzdF07Cit9CisKKy0gKHZvaWQpX2luc2VydFRleHRGcm9tQ2FtZXJh
Rm9yV2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgW3N1cGVyIF9pbnNlcnRUZXh0RnJvbUNhbWVy
YTpzZW5kZXJdOworfQorCistICh2b2lkKWNhcHR1cmVUZXh0RnJvbUNhbWVyYUZvcldlYlZpZXc6
KGlkKXNlbmRlcgoreworICAgIFtzdXBlciBjYXB0dXJlVGV4dEZyb21DYW1lcmE6c2VuZGVyXTsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKwogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uQWRkaXRpb25zQWZ0ZXIubW0+CiAjZW5kaWYKQEAgLTEwMjM2LDEwICsxMDc0MSwxMCBA
QCAtIChVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246
KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbgogCiAtICh2b2lkKV9jb250ZXh0TWVudUludGVyYWN0
aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cmF0aW9u
Rm9yTWVudUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gY29tcGxldGlvbjoodm9pZCheKShV
SUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKSljb21wbGV0aW9uCiB7Ci0jaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi0gICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVv
dXQgPSBzdGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0
aW9uVGltZW91dCwgTk8pOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBCT09MIHRy
aWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBzdGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVu
dVdhc1RyaWdnZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQsIE5PKTsKICNlbHNlCi0gICAgQk9P
TCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQgPSBOTzsKKyAgICBCT09MIHRyaWdn
ZXJlZEJ5SW1hZ2VBbmFseXNpc1RpbWVvdXQgPSBOTzsKICNlbmRpZgogCiAgICAgaWYgKCFfd2Vi
VmlldykKQEAgLTEwMjQ4LDkgKzEwNzUzLDkgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFj
dGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAg
ICBpZiAoIXNlbGYud2ViVmlldy5jb25maWd1cmF0aW9uLl9sb25nUHJlc3NBY3Rpb25zRW5hYmxl
ZCkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24obmlsKTsKIAotICAgIGF1dG8gZ2V0Q29uZmln
dXJhdGlvbkFuZENvbnRpbnVlID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmll
dz4oc2VsZiksIGludGVyYWN0aW9uID0gcmV0YWluUHRyKGludGVyYWN0aW9uKSwgY29tcGxldGlv
biA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgdHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25U
aW1lb3V0XSAoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiBwcm9jZWVkV2l0aElt
YWdlRXh0cmFjdGlvbikgeworICAgIGF1dG8gZ2V0Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlID0g
W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIGludGVyYWN0aW9u
ID0gcmV0YWluUHRyKGludGVyYWN0aW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uKSwgdHJpZ2dlcmVkQnlJbWFnZUFuYWx5c2lzVGltZW91dF0gKFdlYktpdDo6UHJvY2Vl
ZFdpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZSBQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdl
KSB7CiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwotICAgICAgICBp
ZiAoIXN0cm9uZ1NlbGYgfHwgcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gPT0gV2ViS2l0OjpQ
cm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbjo6WWVzKSB7CisgICAgICAgIGlmICghc3Ryb25nU2Vs
ZiB8fCBQcm9jZWVkV2l0aFRleHRTZWxlY3Rpb25JbkltYWdlID09IFdlYktpdDo6UHJvY2VlZFdp
dGhUZXh0U2VsZWN0aW9uSW5JbWFnZTo6WWVzKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uKG5p
bCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwMjY0LDcgKzEwNzY5LDcg
QEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0
aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KFtpbnRl
cmFjdGlvbiBsb2NhdGlvbkluVmlldzpzdHJvbmdTZWxmLmdldCgpXSkgfTsKICAgICAgICAgcmVx
dWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOwogICAgICAgICByZXF1ZXN0LmluY2x1ZGVMaW5r
SW5kaWNhdG9yID0gdHJ1ZTsKLSAgICAgICAgcmVxdWVzdC5kaXNhbGxvd1VzZXJBZ2VudFNoYWRv
d0NvbnRlbnQgPSB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQ7CisgICAgICAgIHJl
cXVlc3QuZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50ID0gdHJpZ2dlcmVkQnlJbWFnZUFu
YWx5c2lzVGltZW91dDsKICAgICAgICAgcmVxdWVzdC5saW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxl
Z2FjeU1hcmdpbnMgPSAhW3N0cm9uZ1NlbGYgX3Nob3VsZFVzZUNvbnRleHRNZW51c107CiAKICAg
ICAgICAgW3N0cm9uZ1NlbGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6W3dlYWtT
ZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc3Ryb25nU2VsZi5nZXQoKSksIGNvbXBs
ZXRpb25dIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSB7CkBAIC0x
MDI3NSwxMCArMTA3ODAsMTAgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlD
b250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAgICAgfSBm
b3JSZXF1ZXN0OnJlcXVlc3RdOwogICAgIH07CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKLSAgICBbc2VsZiBfZG9BZnRlclBlbmRpbmdJbWFnZUV4dHJhY3Rpb246Z2V0Q29uZmlndXJh
dGlvbkFuZENvbnRpbnVlXTsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW3NlbGYg
X2RvQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWVd
OwogI2Vsc2UKLSAgICBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUoV2ViS2l0OjpQcm9jZWVk
V2l0aEltYWdlRXh0cmFjdGlvbjo6Tm8pOworICAgIGdldENvbmZpZ3VyYXRpb25BbmRDb250aW51
ZShXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6Ok5vKTsKICNlbmRpZgog
fQogCkBAIC0xMDQwMCwxMCArMTA5MDUsMTAgQEAgLSAodm9pZCljb250aW51ZUNvbnRleHRNZW51
SW50ZXJhY3Rpb246KHZvaWQoXikoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKikpY28KIAog
ICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+IGRl
ZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFudCA9IFtzdHJvbmdTZWxmLT5fYWN0aW9uU2hlZXRBc3Np
c3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKICAg
ICAgICAgICAgICAgICBhdXRvIGFjdGlvbnMgPSBtZW51RWxlbWVudHNGcm9tRGVmYXVsdEFjdGlv
bnMoZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBlbGVtZW50SW5mbyk7Ci0jaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAgICAgICAgaWYgKFVJTWVudSAqaW1hZ2VFeHRy
YWN0aW9uQ29udGV4dE1lbnUgPSBzdHJvbmdTZWxmLT5faW1hZ2VFeHRyYWN0aW9uQ29udGV4dE1l
bnUuZ2V0KCkpCi0gICAgICAgICAgICAgICAgICAgIFthY3Rpb25zIGFkZE9iamVjdDppbWFnZUV4
dHJhY3Rpb25Db250ZXh0TWVudV07Ci0jZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgICAgICAgICAgICAgIGlmIChVSU1lbnUg
Km1lbnUgPSBzdHJvbmdTZWxmLT5fY29udGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFibGVDb2RlLmdl
dCgpKQorICAgICAgICAgICAgICAgICAgICBbYWN0aW9ucyBhZGRPYmplY3Q6bWVudV07CisjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgICAgICAgICAgICAgIHJldHVybiBbVUlN
ZW51IG1lbnVXaXRoVGl0bGU6c3Ryb25nU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUg
Y2hpbGRyZW46YWN0aW9uc107CiAgICAgICAgICAgICB9OwogCkBAIC0xMDY2Nyw5ICsxMTE3Miw5
IEBAIC0gKHZvaWQpY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0
aW9uICopaW50ZXJhY3Rpb24gd2lsbEVuZEZvCiAgICAgX2NvbnRleHRNZW51SGFzUmVxdWVzdGVk
TGVnYWN5RGF0YSA9IE5POwogICAgIF9jb250ZXh0TWVudUVsZW1lbnRJbmZvID0gbnVsbHB0cjsK
IAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAgIF9pbWFnZUV4dHJhY3Rpb25Db250
ZXh0TWVudS5jbGVhcigpOwotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lm
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICBfY29udGV4dE1lbnVGb3JNYWNoaW5lUmVhZGFi
bGVDb2RlLmNsZWFyKCk7CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiAgICAg
W2FuaW1hdG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50
Vmlldz4oc2VsZildICgpIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0lt
YWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZTY5NTBlNGNkMWQy
M2YwNjZjZTY1YmY3ZTU2OTY0Y2IwMDcxNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNpbmNsdWRlIDxVSUtpdC9V
SUtpdC5oPgorCitAY2xhc3MgV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXI7CisKK0Bw
cm90b2NvbCBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlIDxVSUdlc3R1
cmVSZWNvZ25pemVyRGVsZWdhdGU+CistICh2b2lkKWltYWdlQW5hbHlzaXNHZXN0dXJlRGlkQmVn
aW46KFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZTsKKy0gKHZvaWQp
aW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRGYWlsOihXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2du
aXplciAqKWdlc3R1cmU7CitAZW5kCisKK0BpbnRlcmZhY2UgV0tJbWFnZUFuYWx5c2lzR2VzdHVy
ZVJlY29nbml6ZXIgOiBVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyCisKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEltYWdlQW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8V0tJbWFn
ZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZTsKKworQGVuZAor
CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNp
c0dlc3R1cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1YjZmNTllMzJhYjgy
NDEyZTYzNzI0NzBmNzZkMmU0YzUyZDgwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0KQEAg
LTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oIgorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCitAaW1wbGVtZW50YXRpb24gV0tJ
bWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgeworICAgIF9fd2VhayBVSVZpZXcgPFdLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+ICpfaW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyRGVsZWdhdGU7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEltYWdl
QW5hbHlzaXNHZXN0dXJlRGVsZWdhdGU6KFVJVmlldyA8V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJl
Y29nbml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplckRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgc2VsZi5kZWxlZ2F0ZSA9IGRlbGVn
YXRlOworICAgIHNlbGYubWluaW11bVByZXNzRHVyYXRpb24gPSAwLjE7CisgICAgc2VsZi5hbGxv
d2FibGVNb3ZlbWVudCA9IDA7CisgICAgc2VsZi5uYW1lID0gQCJJbWFnZSBhbmFseXNpcyI7Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0U3RhdGU6KFVJR2VzdHVyZVJlY29nbml6
ZXJTdGF0ZSlzdGF0ZQoreworICAgIGF1dG8gcHJldmlvdXNTdGF0ZSA9IHNlbGYuc3RhdGU7Cisg
ICAgc3VwZXIuc3RhdGUgPSBzdGF0ZTsKKworICAgIGF1dG8gbmV3U3RhdGUgPSBzZWxmLnN0YXRl
OworICAgIGlmIChwcmV2aW91c1N0YXRlID09IG5ld1N0YXRlKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAobmV3U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlQmVnYW4pCisgICAg
ICAgIFtfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUgaW1hZ2VBbmFseXNp
c0dlc3R1cmVEaWRCZWdpbjpzZWxmXTsKKyAgICBlbHNlIGlmIChuZXdTdGF0ZSA9PSBVSUdlc3R1
cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQpCisgICAgICAgIFtfaW1hZ2VBbmFseXNpc0dlc3R1cmVS
ZWNvZ25pemVyRGVsZWdhdGUgaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRGYWlsOnNlbGZdOworfQor
CitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMjlkYTBhMGUzMGM2ZTZiOWRmMzlmYmMzMDlhY2YwZGM5N2U5MWJkOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oCisr
KyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0K
LSNpbmNsdWRlIDxVSUtpdC9VSUtpdC5oPgotCi1AY2xhc3MgV0tJbWFnZUV4dHJhY3Rpb25HZXN0
dXJlUmVjb2duaXplcjsKLQotQHByb3RvY29sIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXJEZWxlZ2F0ZSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPgotLSAodm9pZClpbWFn
ZUV4dHJhY3Rpb25HZXN0dXJlRGlkQmVnaW46KFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIgKilnZXN0dXJlOwotLSAodm9pZClpbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkRmFpbDoo
V0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmU7Ci1AZW5kCi0KLUBp
bnRlcmZhY2UgV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplciA6IFVJTG9uZ1ByZXNz
R2VzdHVyZVJlY29nbml6ZXIKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW1hZ2VFeHRyYWN0
aW9uR2VzdHVyZURlbGVnYXRlOihVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXJEZWxlZ2F0ZT4gKilkZWxlZ2F0ZTsKLQotQGVuZAotCi0jZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXpl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMGU4MzQzMjBj
ZjkxZjAyZDU0YTk5NGU3NzUxNTMxNGJiNDlhN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0ltYWdl
RXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS0ltYWdl
RXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmgiCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotQGltcGxlbWVudGF0aW9uIFdLSW1hZ2VF
eHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgewotICAgIF9fd2VhayBVSVZpZXcgPFdLSW1hZ2VF
eHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gKl9pbWFnZUV4dHJhY3Rpb25EZWxl
Z2F0ZTsKLX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW1hZ2VFeHRyYWN0aW9uR2VzdHVy
ZURlbGVnYXRlOihVSVZpZXcgPFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxl
Z2F0ZT4gKilkZWxlZ2F0ZQotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAg
ICAgICByZXR1cm4gbmlsOwotCi0gICAgX2ltYWdlRXh0cmFjdGlvbkRlbGVnYXRlID0gZGVsZWdh
dGU7Ci0gICAgc2VsZi5kZWxlZ2F0ZSA9IGRlbGVnYXRlOwotICAgIHNlbGYubWluaW11bVByZXNz
RHVyYXRpb24gPSAwLjE7Ci0gICAgc2VsZi5hbGxvd2FibGVNb3ZlbWVudCA9IDA7Ci0gICAgc2Vs
Zi5uYW1lID0gQCJJbWFnZSBleHRyYWN0aW9uIjsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAo
dm9pZClzZXRTdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0YXRlKXN0YXRlCi17Ci0gICAgYXV0
byBwcmV2aW91c1N0YXRlID0gc2VsZi5zdGF0ZTsKLSAgICBzdXBlci5zdGF0ZSA9IHN0YXRlOwot
Ci0gICAgYXV0byBuZXdTdGF0ZSA9IHNlbGYuc3RhdGU7Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUg
PT0gbmV3U3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChuZXdTdGF0ZSA9PSBVSUdl
c3R1cmVSZWNvZ25pemVyU3RhdGVCZWdhbikKLSAgICAgICAgW19pbWFnZUV4dHJhY3Rpb25EZWxl
Z2F0ZSBpbWFnZUV4dHJhY3Rpb25HZXN0dXJlRGlkQmVnaW46c2VsZl07Ci0gICAgZWxzZSBpZiAo
bmV3U3RhdGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkKQotICAgICAgICBbX2lt
YWdlRXh0cmFjdGlvbkRlbGVnYXRlIGltYWdlRXh0cmFjdGlvbkdlc3R1cmVEaWRGYWlsOnNlbGZd
OwotfQotCi1AZW5kCi0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmgKaW5kZXggODk0NDJjZDkyMzMyNjRkMDliZTBlMzgwY2M2NjAxM2YzZGQ5
MjBhZi4uZGQ3YjQ5N2FhNjRiZjdhMjNlZWYxODQ4NmViY2I0NDNhMzU4NzFlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTEzMCw5
ICsxMzAsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgb3ZlcnJpZGU7CiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJh
Y3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
IGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rp
b25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcHV0ZUNhblJldmVhbEltYWdl
KGNvbnN0IFVSTCYsIFNoYXJlYWJsZUJpdG1hcCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICB2b2lkIHJl
cXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpUZXh0UmVjb2duaXRpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0
ZUhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMoY29uc3QgVVJMJiwgU2hhcmVhYmxlQml0bWFwJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFJl
ZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5
Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMubW0KaW5kZXggYzRjMDU0ZmQ1ZGIzZjdhYzg3OGY5OGQzMWVkOTkyZjQ1OGEwMTI4
My4uYzJkZThkNmVhN2MwYmNhZmEwOTE0YzFmNTJhZTRkNjQ1ZGY4NjlkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNDc4LDE2
ICs0NzgsMTYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50JiBldmVudCwgYm9vbAogICAgIG1faW1wbC0+ZG9uZVdpdGhL
ZXlFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudFdhc0hhbmRsZWQpOwogfQogCi0jaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1h
Z2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKGNvbnN0IFVSTCYgaW1h
Z2VVUkwsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCiB7
Ci0gICAgbV9pbXBsLT5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGltYWdlVVJMLCBpbWFnZURhdGEs
IFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+cmVxdWVzdFRleHRSZWNvZ25pdGlv
bihpbWFnZVVSTCwgaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6Y29tcHV0ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1hZ2VVUkws
IFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNvbXB1dGVIYXNWaXN1YWxT
ZWFyY2hSZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1hZ2VC
aXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbikKIHsKLSAg
ICBtX2ltcGwtPmNvbXB1dGVDYW5SZXZlYWxJbWFnZShpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdU
Rk1vdmUoY29tcGxldGlvbikpOworICAgIG1faW1wbC0+Y29tcHV0ZUhhc1Zpc3VhbFNlYXJjaFJl
c3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4
dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTM1ODAyZGI4MmM2MGM0NzE4MTk5YzQ4NmQ0NTg3ZmNhOGE3ODI4Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLQotI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2Vi
UGFnZVByb3h5OwotfQotCi1AY2xhc3MgUUxQcmV2aWV3UGFuZWw7Ci0KLUBpbnRlcmZhY2UgV0tJ
bWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlciA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSBpbWFnZURhdGE6KE5T
RGF0YSAqKWRhdGEgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1hZ2VVUkw6KE5TVVJMICopaW1h
Z2VVUkw7Ci0tICh2b2lkKWJlZ2luQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0g
KEJPT0wpaXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0gKHZvaWQpZW5k
Q29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbDsKLS0gKHZvaWQpY2xvc2VQYW5lbElmTmVj
ZXNzYXJ5OwotQGVuZAotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0lt
YWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI4NGMzZGUwZmYyYWM5OGFkYWU5NGFlZmM4MGEyZmQwZjQwMzVi
ZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIu
bW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5o
IgotCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIFBMQVRGT1JNKE1BQykKLQotI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJU29mdExp
bmsuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLQotQGludGVyZmFjZSBXS0ltYWdlRXh0
cmFjdGlvblByZXZpZXdDb250cm9sbGVyICgpIDxRTFByZXZpZXdQYW5lbERlbGVnYXRlLCBRTFBy
ZXZpZXdQYW5lbERhdGFTb3VyY2U+Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS0ltYWdlRXh0
cmFjdGlvblByZXZpZXdDb250cm9sbGVyIHsKLSAgICBSZXRhaW5QdHI8UUxJdGVtPiBfaXRlbTsK
LSAgICBSZXRhaW5QdHI8TlNEYXRhPiBfaW1hZ2VEYXRhOwotfQotCi0tIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSBpbWFnZURhdGE6KE5TRGF0
YSAqKWltYWdlRGF0YSB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZVVSTDooTlNVUkwgKilp
bWFnZVVSTAotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1
cm4gbmlsOwotCi0gICAgX2ltYWdlRGF0YSA9IGltYWdlRGF0YTsKLSAgICBfaXRlbSA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NRTEl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoRGF0YVByb3ZpZGVyOihpZClz
ZWxmIGNvbnRlbnRUeXBlOlVUVHlwZVBORyBwcmV2aWV3VGl0bGU6dGl0bGVdKTsKLSAgICBpZiAo
W19pdGVtIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0UHJldmlld09wdGlvbnM6KV0p
IHsKLSAgICAgICAgYXV0byBwcmV2aWV3T3B0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0
aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdKTsKLSAgICAgICAgaWYgKGltYWdlVVJM
KQotICAgICAgICAgICAgW3ByZXZpZXdPcHRpb25zIHNldE9iamVjdDppbWFnZVVSTCBmb3JLZXk6
QCJpbWFnZVVSTCJdOwotICAgICAgICBpZiAoTlNVUkwgKnBhZ2VVUkwgPSBVUkwgeyBVUkwgeyB9
LCBwYWdlLmN1cnJlbnRVUkwoKSB9KQotICAgICAgICAgICAgW3ByZXZpZXdPcHRpb25zIHNldE9i
amVjdDpwYWdlVVJMIGZvcktleTpAInBhZ2VVUkwiXTsKLSAgICAgICAgW19pdGVtIHNldFByZXZp
ZXdPcHRpb25zOnByZXZpZXdPcHRpb25zLmdldCgpXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2Vs
ZjsKLX0KLQotLSAodm9pZCliZWdpbkNvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWwKLXsK
LSAgICBwYW5lbC5kYXRhU291cmNlID0gc2VsZjsKLSAgICBwYW5lbC5kZWxlZ2F0ZSA9IHNlbGY7
Ci19Ci0KLS0gKHZvaWQpZW5kQ29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAotewotICAg
IGlmIChwYW5lbC5kYXRhU291cmNlID09IHNlbGYpCi0gICAgICAgIHBhbmVsLmRhdGFTb3VyY2Ug
PSBuaWw7Ci0KLSAgICBpZiAocGFuZWwuZGVsZWdhdGUgPT0gc2VsZikKLSAgICAgICAgcGFuZWwu
ZGVsZWdhdGUgPSBuaWw7Ci19Ci0KLS0gKHZvaWQpY2xvc2VQYW5lbElmTmVjZXNzYXJ5Ci17Ci0g
ICAgaWYgKCFQQUw6OmlzUXVpY2tMb29rVUlGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhW1BBTDo6
Z2V0UUxQcmV2aWV3UGFuZWxDbGFzcygpIHNoYXJlZFByZXZpZXdQYW5lbEV4aXN0c10pCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChhdXRvIHBhbmVsID0gW1BBTDo6Z2V0UUxQcmV2aWV3UGFu
ZWxDbGFzcygpIHNoYXJlZFByZXZpZXdQYW5lbF07IFtzZWxmIGlzQ29udHJvbGxpbmc6cGFuZWxd
KQotICAgICAgICBbcGFuZWwgY2xvc2VdOwotfQotCi0tIChCT09MKWlzQ29udHJvbGxpbmc6KFFM
UHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICByZXR1cm4gcGFuZWwuZGF0YVNvdXJjZSA9PSBz
ZWxmICYmIHBhbmVsLmRlbGVnYXRlID09IHNlbGY7Ci19Ci0KLSNwcmFnbWEgbWFyayAtIFFMUHJl
dmlld0l0ZW1EYXRhUHJvdmlkZXIKLQotLSAoTlNEYXRhICopcHJvdmlkZURhdGFGb3JJdGVtOihR
TEl0ZW0gKilpdGVtCi17Ci0gICAgQVNTRVJUKGl0ZW0gPT0gX2l0ZW0pOwotICAgIHJldHVybiBf
aW1hZ2VEYXRhLmdldCgpOwotfQotCi0jcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdQYW5lbERhdGFT
b3VyY2UKLQotLSAoTlNJbnRlZ2VyKW51bWJlck9mUHJldmlld0l0ZW1zSW5QcmV2aWV3UGFuZWw6
KFFMUHJldmlld1BhbmVsICopcGFuZWwKLXsKLSAgICByZXR1cm4gMTsKLX0KLQotLSAoaWQgPFFM
UHJldmlld0l0ZW0+KXByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbCBwcmV2aWV3
SXRlbUF0SW5kZXg6KE5TSW50ZWdlcilpbmRleAotewotICAgIEFTU0VSVCghaW5kZXgpOwotICAg
IHJldHVybiBfaXRlbS5nZXQoKTsKLX0KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0j
aW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxl
ckFkZGl0aW9ucy5tbT4KLSNlbmRpZgotCi1AZW5kCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzdlOTdiM2E3YTc4ODJhMDc0ZmQ0NGI0ZTdhYWU4NzU1OGRhODk2YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2Ns
YXNzIFdlYlBhZ2VQcm94eTsKK30KKworQGNsYXNzIFFMUHJldmlld1BhbmVsOworCitAaW50ZXJm
YWNlIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgOiBOU09iamVjdAorLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgaW1hZ2VEYXRh
OihOU0RhdGEgKilkYXRhIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGltYWdlVVJMOihOU1VSTCAq
KWltYWdlVVJMOworLSAodm9pZCliZWdpbkNvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWw7
CistIChCT09MKWlzQ29udHJvbGxpbmc6KFFMUHJldmlld1BhbmVsICopcGFuZWw7CistICh2b2lk
KWVuZENvbnRyb2w6KFFMUHJldmlld1BhbmVsICopcGFuZWw7CistICh2b2lkKWNsb3NlUGFuZWxJ
Zk5lY2Vzc2FyeTsKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWI5
ZjJkNDc1YTUwN2E1OGUwMzljNDg2YTQxMzU3ODM5OTljYjM2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xs
ZXIubW0KQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJXZWJQYWdlUHJv
eHkuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHBhbC9tYWMvUXVpY2tM
b29rVUlTb2Z0TGluay5oPgorCitAaW50ZXJmYWNlIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRy
b2xsZXIgKCkgPFFMUHJldmlld1BhbmVsRGVsZWdhdGUsIFFMUHJldmlld1BhbmVsRGF0YVNvdXJj
ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xs
ZXIgeworICAgIFJldGFpblB0cjxRTEl0ZW0+IF9pdGVtOworICAgIFJldGFpblB0cjxOU0RhdGE+
IF9pbWFnZURhdGE7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6
V2ViUGFnZVByb3h5JilwYWdlIGltYWdlRGF0YTooTlNEYXRhICopaW1hZ2VEYXRhIHRpdGxlOihO
U1N0cmluZyAqKXRpdGxlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCit7CisgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfaW1hZ2VE
YXRhID0gaW1hZ2VEYXRhOworICAgIF9pdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1FMSXRlbUlu
c3RhbmNlKCkgaW5pdFdpdGhEYXRhUHJvdmlkZXI6KGlkKXNlbGYgY29udGVudFR5cGU6VVRUeXBl
UE5HIHByZXZpZXdUaXRsZTp0aXRsZV0pOworICAgIGlmIChbX2l0ZW0gcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihzZXRQcmV2aWV3T3B0aW9uczopXSkgeworICAgICAgICBhdXRvIHByZXZp
ZXdPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6Ml0pOworICAgICAgICBpZiAoaW1hZ2VVUkwpCisgICAgICAgICAgICBbcHJldmll
d09wdGlvbnMgc2V0T2JqZWN0OmltYWdlVVJMIGZvcktleTpAImltYWdlVVJMIl07CisgICAgICAg
IGlmIChOU1VSTCAqcGFnZVVSTCA9IFVSTCB7IFVSTCB7IH0sIHBhZ2UuY3VycmVudFVSTCgpIH0p
CisgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAi
cGFnZVVSTCJdOworICAgICAgICBbX2l0ZW0gc2V0UHJldmlld09wdGlvbnM6cHJldmlld09wdGlv
bnMuZ2V0KCldOworICAgIH0KKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWJlZ2lu
Q29udHJvbDooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAoreworICAgIHBhbmVsLmRhdGFTb3VyY2Ug
PSBzZWxmOworICAgIHBhbmVsLmRlbGVnYXRlID0gc2VsZjsKK30KKworLSAodm9pZCllbmRDb250
cm9sOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsCit7CisgICAgaWYgKHBhbmVsLmRhdGFTb3VyY2Ug
PT0gc2VsZikKKyAgICAgICAgcGFuZWwuZGF0YVNvdXJjZSA9IG5pbDsKKworICAgIGlmIChwYW5l
bC5kZWxlZ2F0ZSA9PSBzZWxmKQorICAgICAgICBwYW5lbC5kZWxlZ2F0ZSA9IG5pbDsKK30KKwor
LSAodm9pZCljbG9zZVBhbmVsSWZOZWNlc3NhcnkKK3sKKyAgICBpZiAoIVBBTDo6aXNRdWlja0xv
b2tVSUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNz
KCkgc2hhcmVkUHJldmlld1BhbmVsRXhpc3RzXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGF1dG8gcGFuZWwgPSBbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmll
d1BhbmVsXTsgW3NlbGYgaXNDb250cm9sbGluZzpwYW5lbF0pCisgICAgICAgIFtwYW5lbCBjbG9z
ZV07Cit9CisKKy0gKEJPT0wpaXNDb250cm9sbGluZzooUUxQcmV2aWV3UGFuZWwgKilwYW5lbAor
eworICAgIHJldHVybiBwYW5lbC5kYXRhU291cmNlID09IHNlbGYgJiYgcGFuZWwuZGVsZWdhdGUg
PT0gc2VsZjsKK30KKworI3ByYWdtYSBtYXJrIC0gUUxQcmV2aWV3SXRlbURhdGFQcm92aWRlcgor
CistIChOU0RhdGEgKilwcm92aWRlRGF0YUZvckl0ZW06KFFMSXRlbSAqKWl0ZW0KK3sKKyAgICBB
U1NFUlQoaXRlbSA9PSBfaXRlbSk7CisgICAgcmV0dXJuIF9pbWFnZURhdGEuZ2V0KCk7Cit9CisK
KyNwcmFnbWEgbWFyayAtIFFMUHJldmlld1BhbmVsRGF0YVNvdXJjZQorCistIChOU0ludGVnZXIp
bnVtYmVyT2ZQcmV2aWV3SXRlbXNJblByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwYW5l
bAoreworICAgIHJldHVybiAxOworfQorCistIChpZCA8UUxQcmV2aWV3SXRlbT4pcHJldmlld1Bh
bmVsOihRTFByZXZpZXdQYW5lbCAqKXBhbmVsIHByZXZpZXdJdGVtQXRJbmRleDooTlNJbnRlZ2Vy
KWluZGV4Cit7CisgICAgQVNTRVJUKCFpbmRleCk7CisgICAgcmV0dXJuIF9pdGVtLmdldCgpOwor
fQorCisjcHJhZ21hIG1hcmsgLSBRTFByZXZpZXdQYW5lbERlbGVnYXRlCisKKy0gKFFMUHJldmll
d0FjdGl2aXR5KXByZXZpZXdQYW5lbDooUUxQcmV2aWV3UGFuZWwgKilwcmV2aWV3UGFuZWwgaW5p
dGlhbEFjdGl2aXR5Rm9ySXRlbTooaWQgPFFMUHJldmlld0l0ZW0+KWl0ZW0KK3sKKyAgICByZXR1
cm4gUUxQcmV2aWV3QWN0aXZpdHlWaXN1YWxTZWFyY2g7Cit9CisKK0BlbmQKKworI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCAz
MjNiZDM1OTdmNDk0NmViNzFlMDQ2MmQxOTcyMmVhZTViYWIwNzY3Li5mODA5MGFkMTZkZDNkNjk2
ZDBkYWYzYmFhNDE2MDRjODY4ZDA4Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDM2LDcgKzQzNiw3IEBA
IHN0YXRpYyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNvbnN0IFdlYkNvcmU6OkNvbnRl
eHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JlbG9hZDoK
ICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZDsKIAotICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdMb29rVXBJbWFnZToKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVh
bEltYWdlOwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWI6CkBAIC01MDcs
MTQgKzUwNywxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51
RnJvbUl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgICAgICB9KTsKICAgICB9
CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IHJldmVhbEltYWdl
SXRlbTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvbnRleHRNZW51SXRlbURhdGE+IGxvb2tVcElt
YWdlSXRlbTsKIAotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKICAgICBmaWx0ZXJlZEl0ZW1zLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZdIChh
dXRvJiBpdGVtKSB7Ci0gICAgICAgIGlmIChpdGVtLmFjdGlvbigpICE9IFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKQorICAgICAgICBpZiAoaXRlbS5hY3Rpb24oKSAhPSBX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbWFnZSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgICAgICByZXZlYWxJbWFnZUl0ZW0gPSB7IGl0ZW0gfTsKKyAgICAgICAg
bG9va1VwSW1hZ2VJdGVtID0geyBpdGVtIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0p
OwogI2VuZGlmCkBAIC01MzEsNyArNTMxLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFj
OjpnZXRDb250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnUKICAg
ICBhdXRvIGltYWdlQml0bWFwID0gbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCkuaW1h
Z2VCaXRtYXA7CiAKICAgICBhdXRvIHNwYXJzZU1lbnVJdGVtcyA9IHJldGFpblB0cihbTlNQb2lu
dGVyQXJyYXkgc3Ryb25nT2JqZWN0c1BvaW50ZXJBcnJheV0pOwotICAgIGF1dG8gaW5zZXJ0TWVu
dUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vh
a1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwp
LCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCByZXZlYWxJbWFnZUl0ZW0gPSBX
VEZNb3ZlKHJldmVhbEltYWdlSXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1l
bnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5T
VUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtl
QmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vha1BhZ2UgPSBtYWtl
V2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1h
cCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBsb29rVXBJbWFnZUl0ZW0gPSBXVEZNb3ZlKGxvb2tV
cEltYWdlSXRlbSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3Zl
KG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5k
ZXgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaW5kZXggPCBbc3BhcnNlTWVudUl0ZW1zIGNv
dW50XSk7CiAgICAgICAgIEFTU0VSVCghW3NwYXJzZU1lbnVJdGVtcyBwb2ludGVyQXRJbmRleDpp
bmRleF0pOwogICAgICAgICBbc3BhcnNlTWVudUl0ZW1zIHJlcGxhY2VQb2ludGVyQXRJbmRleDpp
bmRleCB3aXRoUG9pbnRlcjppdGVtXTsKQEAgLTU0MSwxMSArNTQxLDExIEBAIHZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdl
YkNvbnRleHRNZW51CiAgICAgICAgIFttZW51IHNldEl0ZW1BcnJheTpbc3BhcnNlTWVudUl0ZW1z
IGFsbE9iamVjdHNdXTsKIAogICAgICAgICBhdXRvIHBhZ2UgPSBtYWtlUmVmUHRyKHdlYWtQYWdl
LmdldCgpKTsKLSAgICAgICAgaWYgKHJldmVhbEltYWdlSXRlbSAmJiBwYWdlICYmIGltYWdlQml0
bWFwKSB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgICAgICBwYWdlLT5j
b21wdXRlQ2FuUmV2ZWFsSW1hZ2UoaW1hZ2VVUkwsICppbWFnZUJpdG1hcCwgW3Byb3RlY3RlZFRo
aXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCByZXZlYWxJbWFnZUl0ZW0gPSBXVEZNb3ZlKCpy
ZXZlYWxJbWFnZUl0ZW0pXSAoYm9vbCBjYW5SZXZlYWxJbWFnZSkgbXV0YWJsZSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGNhblJldmVhbEltYWdlKQotICAgICAgICAgICAgICAgICAgICBbcHJvdGVj
dGVkVGhpcy0+bV9tZW51IGFkZEl0ZW06Y3JlYXRlTWVudUFjdGlvbkl0ZW0ocmV2ZWFsSW1hZ2VJ
dGVtKS5nZXQoKV07CisgICAgICAgIGlmIChsb29rVXBJbWFnZUl0ZW0gJiYgcGFnZSAmJiBpbWFn
ZUJpdG1hcCkgeworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAgICAgICAgICAgIHBhZ2Ut
PmNvbXB1dGVIYXNWaXN1YWxTZWFyY2hSZXN1bHRzKGltYWdlVVJMLCAqaW1hZ2VCaXRtYXAsIFtw
cm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgbG9va1VwSW1hZ2VJdGVtID0g
V1RGTW92ZSgqbG9va1VwSW1hZ2VJdGVtKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykg
bXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpCisg
ICAgICAgICAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpjcmVhdGVN
ZW51QWN0aW9uSXRlbShsb29rVXBJbWFnZUl0ZW0pLmdldCgpXTsKICAgICAgICAgICAgIH0pOwog
I2Vsc2UKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShpbWFnZVVSTCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCAwODM5NGVkOTcyNGMx
YjVhYzI2NzVmYjhmZmNiYWUwNzAxZTYzNTBjLi40MzM3NzM5ZTc0YTA2MjQ4YTU0MzYxNzc2Yjcx
ZmQyOTMyMjcyZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0KQEAgLTQ1LDggKzQ1LDggQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5o
IgogI2ltcG9ydCAiVGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckludGVybmFsLmgiCi0jaW1wb3J0ICJXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250
cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCIKKyNp
bXBvcnQgIldLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYkNv
bnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9y
dCAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCkBAIC0xMTAsNiArMTEwLDggQEAgLSAodm9pZCljb250
ZXh0TWVudUFjdGlvbjooTlNNZW51SXRlbSAqKXNlbmRlcgogQGVuZCAvLyBpbXBsZW1lbnRhdGlv
biBXS1BERk1lbnVUYXJnZXQKICNlbmRpZgogCisjaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJ
U29mdExpbmsuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKICAgICAKQEAgLTcyMiwyNiArNzI0LDY2IEBAIENvbG9yIFdlYlBhZ2VQcm94eTo6cGxhdGZv
cm1VbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
YmVnaW5QcmV2aWV3UGFuZWxDb250cm9sKFFMUHJldmlld1BhbmVsICpwYW5lbCkKIHsKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBbbV9pbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29u
dHJvbGxlciBiZWdpbkNvbnRyb2w6cGFuZWxdOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
KyAgICBbbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciBiZWdpbkNvbnRyb2w6cGFuZWxd
OwogI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjplbmRQcmV2aWV3UGFuZWxDb250cm9s
KFFMUHJldmlld1BhbmVsICpwYW5lbCkKIHsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
LSAgICBpZiAoYXV0byBjb250cm9sbGVyID0gc3RkOjpleGNoYW5nZShtX2ltYWdlRXh0cmFjdGlv
blByZXZpZXdDb250cm9sbGVyLCBuaWwpKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKKyAg
ICBpZiAoYXV0byBjb250cm9sbGVyID0gc3RkOjpleGNoYW5nZShtX3Zpc3VhbFNlYXJjaFByZXZp
ZXdDb250cm9sbGVyLCBuaWwpKQogICAgICAgICBbY29udHJvbGxlciBlbmRDb250cm9sOnBhbmVs
XTsKICNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2VTaGFyZWRQcmV2aWV3UGFu
ZWxJZk5lY2Vzc2FyeSgpCiB7Ci0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgW21f
aW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIgY2xvc2VQYW5lbElmTmVjZXNzYXJ5XTsK
KyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgW21fdmlzdWFsU2VhcmNoUHJldmlld0Nv
bnRyb2xsZXIgY2xvc2VQYW5lbElmTmVjZXNzYXJ5XTsKICNlbmRpZgogfQogCisjaWYgRU5BQkxF
KElNQUdFX0FOQUxZU0lTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5WaXN1YWxT
ZWFyY2hQcmV2aWV3UGFuZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgY29uc3QgU3Ry
aW5nJiB0b29sdGlwLCBjb25zdCBVUkwmIGltYWdlVVJMKQoreworICAgIGlmICghUEFMOjppc1F1
aWNrTG9va1VJRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Z2V0UUxQcmV2aWV3UGFuZWxD
bGFzcygpIHx8ICFbUEFMOjpnZXRRTEl0ZW1DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVj
dG9yOkBzZWxlY3Rvcihpbml0V2l0aERhdGFQcm92aWRlcjpjb250ZW50VHlwZTpwcmV2aWV3VGl0
bGU6KV0pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW1hZ2UgPSBpbWFnZUJpdG1hcC5t
YWtlQ0dJbWFnZSgpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gaW1hZ2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIDApKTsKKyAgICBhdXRvIGRlc3RpbmF0aW9uID0gYWRvcHRDRihDR0ltYWdlRGVzdGlu
YXRpb25DcmVhdGVXaXRoRGF0YShpbWFnZURhdGEuZ2V0KCksIChfX2JyaWRnZSBDRlN0cmluZ1Jl
ZilVVFR5cGVQTkcuaWRlbnRpZmllciwgMSwgbnVsbHB0cikpOworICAgIGlmICghZGVzdGluYXRp
b24pCisgICAgICAgIHJldHVybjsKKworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRl
c3RpbmF0aW9uLmdldCgpLCBpbWFnZS5nZXQoKSwgbmlsKTsKKyAgICBpZiAoIUNHSW1hZ2VEZXN0
aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1Zpc3VhbFNl
YXJjaFByZXZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFBhZ2U6KnRoaXMgaW1hZ2VEYXRh
OihfX2JyaWRnZSBOU0RhdGEgKilpbWFnZURhdGEuZ2V0KCkgdGl0bGU6dG9vbHRpcCBpbWFnZVVS
TDppbWFnZVVSTF0pOworCisgICAgLy8gV2hlbiBwcmVzZW50aW5nIHRoZSBzaGFyZWQgUUxQcmV2
aWV3UGFuZWwsIFF1aWNrTG9vayB3aWxsIHNlYXJjaCB0aGUgcmVzcG9uZGVyIGNoYWluIGZvciBh
IHN1aXRhYmxlIHBhbmVsIGNvbnRyb2xsZXIuCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgd2UgKGJ5
IGRlZmF1bHQpIHN0YXJ0IHRoZSBzZWFyY2ggYXQgdGhlIHdlYiB2aWV3LCB3aGljaCBrbm93cyBo
b3cgdG8gdmVuZCB0aGUgVmlzdWFsIFNlYXJjaCBwcmV2aWV3CisgICAgLy8gY29udHJvbGxlciBh
cyBhIGRlbGVnYXRlIGFuZCBkYXRhIHNvdXJjZSBmb3IgdGhlIHByZXZpZXcgcGFuZWwuCisgICAg
cGFnZUNsaWVudCgpLm1ha2VGaXJzdFJlc3BvbmRlcigpOworCisgICAgYXV0byBwcmV2aWV3UGFu
ZWwgPSBbUEFMOjpnZXRRTFByZXZpZXdQYW5lbENsYXNzKCkgc2hhcmVkUHJldmlld1BhbmVsXTsK
KyAgICBbcHJldmlld1BhbmVsIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CisKKyAgICBpZiAo
IVttX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyIGlzQ29udHJvbGxpbmc6cHJldmlld1Bh
bmVsXSkgeworICAgICAgICAvLyBUaGUgV2ViS2l0IGNsaWVudCBtYXkgaGF2ZSBvdmVycmlkZGVu
IFFMUHJldmlld1BhbmVsQ29udHJvbGxlciBtZXRob2RzIG9uIHRoZSB2aWV3IHdpdGhvdXQgY2Fs
bGluZyBpbnRvIHRoZSBzdXBlcmNsYXNzLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIGhhbmQg
b3ZlciBjb250cm9sIHRvIHRoZSBjbGllbnQgYW5kIGNsZWFyIG91dCBvdXIgc3RhdGUgZWFnZXJs
eSwgc2luY2Ugd2UgZG9uJ3QgZXhwZWN0IGFueSBmdXJ0aGVyIGRlbGVnYXRlCisgICAgICAgIC8v
IGNhbGxzIG9uY2UgdGhlIHByZXZpZXcgcGFuZWwgaXMgZGlzbWlzc2VkLgorICAgICAgICBtX3Zp
c3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmNsZWFyKCk7CisgICAgfQorfQorCisjZW5kaWYg
Ly8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDc1ZmUyZWQxNTU3ZWMyNDBmNDVhYmRiMTY1YjZlMDYwMzhm
MjExY2QuLjdlMzE2YTViM2FmOTU5MTllNjYzMzQyYzM4Y2UzOGE5YzU0N2VjN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAxNiw3
ICsyMDE2LDcgQEAKIAkJRjQyRDYzNDEyMkEwRUZERjAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0
aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQyRDYzM0YyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovOyB9
OwogCQlGNDMwRTk0MjIyNDczMzVGMDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGlj
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzMEU5
NDEyMjQ3MzJBOTAwNUZFMDUzIC8qIFdlYnNpdGVNZXRhVmlld3BvcnRQb2xpY3kuaCAqLzsgfTsK
IAkJRjQzMEU5NDQyMjQ3M0RGRjAwNUZFMDUzIC8qIFdlYkNvbnRlbnRNb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMwRTk0MzIyNDczREI4MDA1
RkUwNTMgLyogV2ViQ29udGVudE1vZGUuaCAqLzsgfTsKLQkJRjQzNTFCOUUyNUVFQzg0QzAwRDYz
ODkyIC8qIEltYWdlRXh0cmFjdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzNTFCOUQyNUVFQzg0QzAwRDYzODkyIC8qIEltYWdl
RXh0cmFjdGlvblV0aWxpdGllcy5oICovOyB9OworCQlGNDM1MUI5RTI1RUVDODRDMDBENjM4OTIg
LyogVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29n
bml0aW9uVXRpbGl0aWVzLmggKi87IH07CiAJCUY0MzhDRDFDMjI0MTQyMTQwMERFNkREQSAvKiBX
S1dlYnBhZ2VQcmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQzOENEMUIyMjQxNDBBNjAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVu
Y2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlG
NDM4Q0QxRjIyNDE0RDQwMDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENEMUUy
MjQxNEQ0MDAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaCAqLzsgfTsK
IAkJRjQzOENEMjEyMjQxRjY5NTAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzOENE
MjAyMjQxRjY5NTAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMDMwLDkgKzIw
MzAsOSBAQAogCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE4NDIxNTgzQTAy
MDBDNjc1MkIgLyogQXBwS2l0U1BJLmggKi87IH07CiAJCUY0OTZBNDMxMUY1OEEyNzIwMDRDMTc1
NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTZBNDJGMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJv
cEludGVyYWN0aW9uU3RhdGUuaCAqLzsgfTsKIAkJRjQ5NzRFNzYyNjVFQ0JCQzAwQjQ5QjhDIC8q
IFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ0NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVBy
ZXNlbnRlci5oICovOyB9OwotCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4
dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRy
YWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKKwkJRjQ5NzVDRjIyNjI0QjgwQTAwM0M2
MjZFIC8qIFdLVmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAv
KiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUY0QTZENkJDMjU0
Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFB
IC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi87IH07Ci0JCUY0QkEzM0YyMjU3NTdFODkw
MDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEJBMzNGMDI1NzU3RTg5MDAw
QTNDRTggLyogV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovOyB9OworCQlG
NEJBMzNGMjI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkEz
M0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5o
ICovOyB9OwogCQlGNENCMDlFNTIyNUQ1QTA5MDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNl
UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NENCMDlFNDIyNUQ1QTAzMDA4OTE0ODcgLyogV2Vic2l0ZU1lZGlhU291cmNlUG9saWN5LmggKi87
IH07CiAJCUY0Q0YxRTlEMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNp
c3RlbmN5RW5mb3JjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0Q0YxRTlCMjVFNDBEQ0MwMDBGOUQ3MyAvKiBHZXN0dXJlUmVjb2duaXplckNvbnNp
c3RlbmN5RW5mb3JjZXIuaCAqLzsgfTsKIAkJRjRENUY1MUQyMDYwODdBMTAwMzhCQkE4IC8qIFdL
VGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ1RjUxOTIwNjA4N0EwMDAzOEJCQTggLyogV0tUZXh0SW5w
dXRMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKQEAgLTU5NjQsOCArNTk2NCw4IEBACiAJCUY0
MkQ2MzQwMjJBMEVGRDMwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEu
bW07IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDMwRTk0MTIyNDczMkE5MDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3
cG9ydFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTWV0YVZpZXdwb3J0UG9saWN5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzBFOTQzMjI0NzNEQjgwMDVGRTA1MyAv
KiBXZWJDb250ZW50TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZW50TW9kZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogSW1h
Z2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRXh0cmFjdGlvblV0
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDM1MUI5RjI1RUVDODc4
MDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogVGV4dFJlY29nbml0aW9uVXRpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNDM1MUI5RjI1RUVDODc4MDBENjM4OTIgLyogVGV4dFJl
Y29nbml0aW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dFJlY29nbml0
aW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDM4Q0QxQjIy
NDE0MEE2MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tXZWJwYWdlUHJlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQz
OENEMUQyMjQxNEFENjAwREU2RERBIC8qIFdLV2VicGFnZVByZWZlcmVuY2VzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tXZWJwYWdlUHJlZmVyZW5jZXMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0MzhDRDFFMjI0MTRENDAwMERFNkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJl
bmNlc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5ODYsMTQgKzU5ODYsMTQgQEAK
IAkJRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5NkE0MkYxRjU4
QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgcGF0aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0
aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5NkE0MzAxRjU4QTI3
MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbTsgcGF0aCA9IGlvcy9EcmFnRHJvcElu
dGVyYWN0aW9uU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0OTc1Q0Yx
MjYyNEI4MEEwMDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ5NzVDRjMyNjI0QjkxODAwM0M2MjZFIC8qIFdL
SW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNDk3NUNGMTI2MjRCODBBMDAzQzYyNkUgLyogV0tWaXN1YWxTZWFyY2hQ
cmV2aWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Zpc3VhbFNlYXJjaFByZXZpZXdD
b250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OTc1Q0YzMjYyNEI5
MTgwMDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERpc3BsYXlMaXN0SGFu
ZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QTdDRTg0MjY2N0VCNEUwMDIy
ODY4NSAvKiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1h
Z2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0QTdDRTg0MjY2N0VCNEUwMDIyODY4NSAvKiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QUM2NTVFMjJBMzE0MEUwMEEwNTYwNyAvKiBXZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW07IHBhdGggPSBpb3Mv
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNEIzNzhEMDIxRERCQkFCMDA5NUEzNzggLyogV2ViVW5kb1N0ZXBJRC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJVbmRvU3RlcElELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6
ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBX
S0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0lt
YWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVy
ZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIuaDsgcGF0aCA9IGlvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEJBMzNGMTI1NzU3RTg5MDAwQTNDRTggLyog
V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0ltYWdl
QW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRDQjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjRDRjFFOUIyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBHZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgcGF0aCA9IGlvcy9H
ZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRDRjFFOUMyNUU0MERDQzAwMEY5RDczIC8qIEdlc3R1cmVSZWNvZ25pemVy
Q29uc2lzdGVuY3lFbmZvcmNlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbTsgcGF0aCA9IGlv
cy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02NzI0LDcgKzY3MjQsNiBAQAogCQkJCTQ2QUM1MzI0MjVERUQ4MUUw
MDNCNTdFQyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJCQlGNDBC
QkI0MDI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMu
aCAqLywKIAkJCQkxQUM3NUExQTFCMzM2ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVjdGlvbkRpc2Fi
bGVyLmggKi8sCi0JCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIEltYWdlRXh0cmFjdGlv
blVwZGF0ZVJlc3VsdC5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFn
ZU9wdGlvbnMuaCAqLywKIAkJCQk5OTlCN0VEODI1NTBFNEE4MDBGNDUwQTQgLyogSW5zcGVjdG9y
RXh0ZW5zaW9uVHlwZXMuY3BwICovLAogCQkJCTk5QkUzQjE2MjU0MzNCOTQwMEM2NTUxQyAvKiBJ
bnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oICovLApAQCAtNjc3Nyw2ICs2Nzc2LDcgQEAKIAkJCQk4
M0Y5NjQ0QjFGQTBGNzYyMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHku
Y3BwICovLAogCQkJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNo
VGFibGVSZWFkT25seS5oICovLAogCQkJCTFBNUU0REEzMTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0
Q2hlY2tlclN0YXRlLmggKi8sCisJCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIFRleHRS
ZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oICovLAogCQkJCTJGRDQzQjkyMUZBMDA2QTMwMDgzRjUx
QyAvKiBUb3VjaEJhck1lbnVEYXRhLmNwcCAqLywKIAkJCQkyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1
MUMgLyogVG91Y2hCYXJNZW51RGF0YS5oICovLAogCQkJCTJGODA5REQ1MUZCRDFCQzkwMDVGRTYz
QSAvKiBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgKi8sCkBAIC03NzY4LDggKzc3NjgsOCBAQAog
CQkJCTBGQ0I0RTQxMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NP
YmpDU2VjdXJpdHlPcmlnaW4ubW0gKi8sCiAJCQkJRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1IC8q
IFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQlGNERCNTRF
NTIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
ci5tbSAqLywKLQkJCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUV4dHJhY3Rp
b25HZXN0dXJlUmVjb2duaXplci5oICovLAotCQkJCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAv
KiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovLAorCQkJCUY0QkEzM0Yw
MjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oICov
LAorCQkJCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplci5tbSAqLywKIAkJCQk5MzNERjgyRDFCM0JDMDkwMDBBRUE5RTMgLyogV0tJbWFn
ZVByZXZpZXdWaWV3Q29udHJvbGxlci5oICovLAogCQkJCTkzM0RGODJGMUIzQkMwQjQwMEFFQTlF
MyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJERDVFMTI3MjEw
QURDN0EwMERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAqLywKQEAgLTg1
MTEsOCArODUxMSw2IEBACiAJCQkJRjRGRTBBM0EyNDYzMkIxMDAwMjYzMUUxIC8qIENvY29hQ29s
b3IuaCAqLywKIAkJCQlGNEZFMEEzQzI0NjM1NjY3MDAyNjMxRTEgLyogQ29jb2FGb250LmggKi8s
CiAJCQkJNDQ4MjczNDYyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCAqLywKLQkJCQlG
NDM1MUI5RDI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmggKi8s
Ci0JCQkJRjQzNTFCOUYyNUVFQzg3ODAwRDYzODkyIC8qIEltYWdlRXh0cmFjdGlvblV0aWxpdGll
cy5tbSAqLywKIAkJCQlCQ0UwOTM3NjE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oICovLAogCQkJCUJDRTA5Mzc1MTRGQjEyOEIwMDExMzhEOSAvKiBMYXllckhvc3RpbmdD
b250ZXh0Lm1tICovLAogCQkJCUExNzk4QjNEMjIyRDk3QTIwMDA3NjRCRCAvKiBQYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlci5oICovLApAQCAtODUyMCw2ICs4NTE4LDggQEAKIAkJCQlBMTc5
OEIzRjIyMkQ5OEI2MDAwNzY0QkQgLyogUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxl
ci5oICovLAogCQkJCUExNzk4QjQwMjIyRDk4QjYwMDA3NjRCRCAvKiBQYXltZW50QXV0aG9yaXph
dGlvblZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAv
KiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8sCisJCQkJRjQzNTFCOUQyNUVFQzg0QzAwRDYzODky
IC8qIFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oICovLAorCQkJCUY0MzUxQjlGMjVFRUM4Nzgw
MEQ2Mzg5MiAvKiBUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0gKi8sCiAJCQkJQTE4MUE3OTcy
MUFDQUM2MTAwNTlBMzE2IC8qIFdlYktpdEFkZGl0aW9ucy5tbSAqLywKIAkJCQlBMUZCNjgyMjFG
NkU1MTgyMDBDNDNGOUYgLyogV0tDcmFzaFJlcG9ydGVyLmggKi8sCiAJCQkJQTFGQjY4MjMxRjZF
NTE4MjAwQzQzRjlGIC8qIFdLQ3Jhc2hSZXBvcnRlci5tbSAqLywKQEAgLTEwODU3LDggKzEwODU3
LDYgQEAKIAkJCQk4NjgxNjBDRjE4NzY0NTM3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVj
dGlvbi5tbSAqLywKIAkJCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5oICovLAogCQkJCUNEQ0E4NUM2MTMyQUJBNEUwMEU5NjFERiAvKiBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovLAotCQkJCUY0OTc1Q0YxMjYyNEI4MEEw
MDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggKi8sCi0JCQkJ
RjQ5NzVDRjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmlld0NvbnRy
b2xsZXIubW0gKi8sCiAJCQkJOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5oICovLAogCQkJCTkzMjFENTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8sCiAJCQkJMEZDQjRFNUMxOEJCRTNEOTAw
MEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3LmggKi8sCkBAIC0xMDg3Myw2ICsxMDg3MSw4IEBACiAJ
CQkJMEZDQjRFNUYxOEJCRTNEOTAwMEZDRkM5IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxl
ci5tbSAqLywKIAkJCQkyRDI4QTQ5NTFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3Ry
YXRlZ3kuaCAqLywKIAkJCQkyRDI4QTQ5NjFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0
U3RyYXRlZ3kubW0gKi8sCisJCQkJRjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLVmlzdWFs
U2VhcmNoUHJldmlld0NvbnRyb2xsZXIuaCAqLywKKwkJCQlGNDk3NUNGMzI2MjRCOTE4MDAzQzYy
NkUgLyogV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5tbSAqLywKIAkJCSk7CiAJCQlw
YXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExOTc0LDcgKzExOTc0
LDYgQEAKIAkJCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3Jh
cGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzBDOTc0MURERDc2MDAw
MDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUz
NTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlGNDM1MUI5RTI1RUVDODRDMDBENjM4OTIgLyogSW1hZ2VFeHRyYWN0aW9uVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTFFQzY5RTE4NzIwOTIxMDBCOTUxRjAgLyogSW1w
b3J0YW5jZUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMDRFRTMxMUM4M0U5ODAw
OEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMzM0LDYgKzEy
MzMzLDcgQEAKIAkJCQk1M0NGQkJDODIyMjREMUI1MDAyNjY1NDYgLyogVGV4dENoZWNrZXJDb21w
bGV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVFNERBNDEyRDNCRDNEMDA5OUEyQkIgLyog
VGV4dENoZWNrZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxQTBCRDcxQTQ4RTZDNjAw
NTRFRjc0IC8qIFRleHRJbnB1dFNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQzNTFCOUUyNUVF
Qzg0QzAwRDYzODkyIC8qIFRleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFBRjI2MzkxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUYwNUQ4NzE0Njg4MzQ4MDA4QjFFODEgLyog
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjQ4NTcwQTMyNjQ0QkVDNTAwQzA1RjcxIC8qIFRpbWVvdXQuaCBpbiBIZWFkZXJzICovLApAQCAt
MTI3OTIsOSArMTI3OTIsOCBAQAogCQkJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0lj
b25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyM0NGMUMxMzNEMjYwQTAwNTZGODAw
IC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0Y2QUMzMTJDOTFG
MzQwMDhGOUMzNSAvKiBXS0ltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEJBMzNGMjI1NzU3
RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQ0Y2QUNBMTJDOTFGNTkwMDhGOUMzNSAvKiBXS0ltYWdlQ0cuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDk3NUNGMjI2MjRC
ODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzREY4MkUxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3
Vmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMjFENTg2MUEzOEVFM0MwMDgw
NTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMjFENThBMUEzOEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggaW4g
SGVhZGVycyAqLywKQEAgLTEyOTg2LDYgKzEyOTg1LDcgQEAKIAkJCQlCQzg2OTlCNzExNkFBREFB
MDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjhBNDk3
MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1ByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUY0OTc1Q0YyMjYyNEI4MEEwMDNDNjI2RSAvKiBXS1Zpc3VhbFNlYXJjaFBy
ZXZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTM2RTUxNjIzNkE2MjExMDA3
NEZENUQgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTM2RTUxNDIzNkE2
MERDMDA3NEZENUQgLyogV0tXZWJBcmNoaXZlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUx
QUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBkY2ZkN2M3NTY5N2Y5MDE3ZGU4ZmY5MWJj
N2RhYWI1MWZhMWQyYjZmLi43ZDYyZTVlOWEzOWQxNWNhYTM3NWExMWM5OTY3NDU2NzY0ZGY4OTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ2OSwxMSArMTQ2OSwxMSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6Y2hhbmdlVW5pdmVyc2FsQWNjZXNzWm9vbUZvY3VzKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHZpZQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVmUHRyPEVsZW1lbnQ+JiYpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uKQogewotICAgIG1f
cGFnZS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGVsZW1lbnQsIFdURk1vdmUoY29tcGxldGlvbikp
OworICAgIG1fcGFnZS5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGVsZW1lbnQsIFdURk1vdmUoY29t
cGxldGlvbikpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MWQ4OWE3YTY3
ZGQzOWMyYmU5Y2FlMmY2YmFkNjI0MzgwZTcxN2ZlLi42Mjg2MjAyODQyNGZiYmJlZDEzMjgxNjM1
NzRiNzA1ZDNiYzE4MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00MjMsOCArNDIzLDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNoYW5nZVVuaXZlcnNhbEFjY2Vzc1pvb21Gb2N1cyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4
dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRy
PFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmID0geyB9KSBmaW5hbDsKKyNpZiBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVMpCisgICAgdm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1l
bnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4m
JiA9IHsgfSkgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgbmVlZHNJbWFnZU92ZXJsYXlDb250
cm9sbGVyRm9yU2VsZWN0aW9uUGFpbnRpbmcoKSBjb25zdCBmaW5hbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmMDAxYTZjY2ZhZDJkZThmNGRi
MDViODE1ZTFlMTdiNTM4OTNmNjJiLi4xZjJhYzM5YzZmMTZiMjU3NTQ1MjNiMmJiMGY4N2Q2ZTcw
NTk0NmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiRnJhbWVUcmVlTm9kZURhdGEuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oIgotI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3Vs
dC5oIgogI2luY2x1ZGUgIkluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oIgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5o
IgpAQCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1
ZGUgIlNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaCIK
ICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtU
YWJsZUNvbnRyb2xsZXIuaCIKQEAgLTM2MCw4ICszNjAsOCBAQAogI2VuZGlmCiAjZW5kaWYKIAot
I2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VFeHRy
YWN0aW9uUmVzdWx0Lmg+CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorI2luY2x1ZGUgPFdl
YkNvcmUvVGV4dFJlY29nbml0aW9uUmVzdWx0Lmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQpAQCAtNjI4MSwxMyArNjI4MSwxMyBAQCB2b2lkIFdlYlBh
Z2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIEFTU0VSVCghZnJhbWUtPmNv
cmVGcmFtZSgpLT5sb2FkZXIoKS5zdGF0ZU1hY2hpbmUoKS5jcmVhdGluZ0luaXRpYWxFbXB0eURv
Y3VtZW50KCkpOwogICAgIHVuZnJlZXplTGF5ZXJUcmVlKExheWVyVHJlZUZyZWV6ZVJlYXNvbjo6
UHJvY2Vzc1N3YXApOwogCi0jaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgZm9yIChh
dXRvJiBbZWxlbWVudCwgY29tcGxldGlvbkhhbmRsZXJzXSA6IG1fZWxlbWVudHNQZW5kaW5nSW1h
Z2VFeHRyYWN0aW9uKSB7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIGZvciAoYXV0
byYgW2VsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyc10gOiBtX2VsZW1lbnRzUGVuZGluZ1RleHRS
ZWNvZ25pdGlvbikgewogICAgICAgICBmb3IgKGF1dG8mIGNvbXBsZXRpb25IYW5kbGVyIDogY29t
cGxldGlvbkhhbmRsZXJzKQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAg
ICB9Ci0gICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24uY2xlYXIoKTsKLSAgICBt
X2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jbGVhcigpOworICAgIG1fZWxlbWVudHNQZW5k
aW5nVGV4dFJlY29nbml0aW9uLmNsZWFyKCk7CisgICAgbV9lbGVtZW50c1dpdGhUZXh0UmVjb2du
aXRpb25SZXN1bHRzLmNsZWFyKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCkBAIC03MzgzLDkgKzczODMsOSBAQCB2b2lkIFdlYlBhZ2U6OnJlbW92ZU1l
ZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIp
CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1VTQUdFKQogCi0jaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lkIFdlYlBhZ2U6OnJl
cXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYgY29tcGxldGlvbikK
K3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50JiBl
bGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYm
KT4mJiBjb21wbGV0aW9uKQogewogICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpKSB7
CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQpAQCAtNzM5Myw3ICs3MzkzLDcgQEAgdm9pZCBXZWJQ
YWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENv
bXBsZXRpb25IYW5kbGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2VsZW1l
bnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jb250YWlucyhlbGVtZW50KSkgeworICAgIGlmIChtX2Vs
ZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMoZWxlbWVudCkpIHsKICAg
ICAgICAgaWYgKGNvbXBsZXRpb24pIHsKICAgICAgICAgICAgIEFTU0VSVChpczxIVE1MRWxlbWVu
dD4oZWxlbWVudCkpOwogICAgICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlT3ZlcmxheUhv
c3Q7CkBAIC03NDA0LDEzICs3NDA0LDEzIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0
cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIG1hdGNoSW5kZXggPSBtX2VsZW1lbnRzUGVu
ZGluZ0ltYWdlRXh0cmFjdGlvbi5maW5kTWF0Y2hpbmcoWyZdIChhdXRvJiBlbGVtZW50QW5kQ29t
cGxldGlvbkhhbmRsZXJzKSB7CisgICAgYXV0byBtYXRjaEluZGV4ID0gbV9lbGVtZW50c1BlbmRp
bmdUZXh0UmVjb2duaXRpb24uZmluZE1hdGNoaW5nKFsmXSAoYXV0byYgZWxlbWVudEFuZENvbXBs
ZXRpb25IYW5kbGVycykgewogICAgICAgICByZXR1cm4gZWxlbWVudEFuZENvbXBsZXRpb25IYW5k
bGVycy5maXJzdCA9PSAmZWxlbWVudDsKICAgICB9KTsKIAogICAgIGlmIChtYXRjaEluZGV4ICE9
IG5vdEZvdW5kKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uKQotICAgICAgICAgICAgbV9lbGVt
ZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb25bbWF0Y2hJbmRleF0uc2Vjb25kLmFwcGVuZChXVEZN
b3ZlKGNvbXBsZXRpb24pKTsKKyAgICAgICAgICAgIG1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29n
bml0aW9uW21hdGNoSW5kZXhdLnNlY29uZC5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc0NDAsMTUgKzc0NDAsMTUgQEAgdm9pZCBXZWJQ
YWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENv
bXBsZXRpb25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8
RWxlbWVudD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNvbXBsZXRpb24pCiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0g
ICAgbV9lbGVtZW50c1BlbmRpbmdJbWFnZUV4dHJhY3Rpb24uYXBwZW5kKHsgbWFrZVdlYWtQdHIo
ZWxlbWVudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAgICBtX2VsZW1lbnRz
UGVuZGluZ1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBtYWtlV2Vha1B0cihlbGVtZW50KSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcnMpIH0pOwogCiAgICAgYXV0byBpbWFnZVVSTCA9IGVsZW1l
bnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChyZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT51cmwo
KS5zdHJpbmcoKSk7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0
bWFwSGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9
IG1ha2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdU
Rk1vdmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFnZSA9IG1ha2VX
ZWFrUHRyKCp0aGlzKSwgd2Vha0VsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50KV0gKGF1dG8m
JiByZXN1bHQpIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRQYWdlID0gbWFrZVJlZlB0cih3ZWJQ
YWdlLmdldCgpKTsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRQYWdlKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRy
YWN0aW9uLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYgZWxlbWVudEFuZENvbXBsZXRpb25I
YW5kbGVycykgeworICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVuZGluZ1RleHRS
ZWNvZ25pdGlvbi5yZW1vdmVBbGxNYXRjaGluZyhbJl0gKGF1dG8mIGVsZW1lbnRBbmRDb21wbGV0
aW9uSGFuZGxlcnMpIHsKICAgICAgICAgICAgIGF1dG8mIFtlbGVtZW50LCBjb21wbGV0aW9uSGFu
ZGxlcnNdID0gZWxlbWVudEFuZENvbXBsZXRpb25IYW5kbGVyczsKICAgICAgICAgICAgIGlmIChl
bGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc0NjMsMTAgKzc0NjMs
MTAgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1l
bnQmIGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBhdXRvJiBodG1sRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbGVtZW50PigqcHJvdGVjdGVk
RWxlbWVudCk7Ci0gICAgICAgIGh0bWxFbGVtZW50LnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQoV1RGTW92ZShyZXN1bHQpKTsKLSAgICAgICAgcHJvdGVjdGVkUGFnZS0+bV9lbGVtZW50
c1dpdGhFeHRyYWN0ZWRJbWFnZXMuYWRkKGh0bWxFbGVtZW50KTsKKyAgICAgICAgaHRtbEVsZW1l
bnQudXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdCkpOworICAg
ICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdHMu
YWRkKGh0bWxFbGVtZW50KTsKIAotICAgICAgICBhdXRvIG1hdGNoSW5kZXggPSBwcm90ZWN0ZWRQ
YWdlLT5tX2VsZW1lbnRzUGVuZGluZ0ltYWdlRXh0cmFjdGlvbi5maW5kTWF0Y2hpbmcoWyZdIChh
dXRvJiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzKSB7CisgICAgICAgIGF1dG8gbWF0Y2hJ
bmRleCA9IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLmZp
bmRNYXRjaGluZyhbJl0gKGF1dG8mIGVsZW1lbnRBbmRDb21wbGV0aW9uSGFuZGxlcnMpIHsKICAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50QW5kQ29tcGxldGlvbkhhbmRsZXJzLmZpcnN0ID09ICZo
dG1sRWxlbWVudDsKICAgICAgICAgfSk7CiAKQEAgLTc0NzQsMjIgKzc0NzQsMjIgQEAgdm9pZCBX
ZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQs
IENvbXBsZXRpb25IYW5kbGUKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlt
YWdlT3ZlcmxheUhvc3QgPSBodG1sRWxlbWVudC5oYXNJbWFnZU92ZXJsYXkoKSA/IG1ha2VSZWZQ
dHIoaHRtbEVsZW1lbnQpIDogbnVsbHB0cjsKLSAgICAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9u
SGFuZGxlciA6IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9u
W21hdGNoSW5kZXhdLnNlY29uZCkKKyAgICAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxl
ciA6IHByb3RlY3RlZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uW21hdGNo
SW5kZXhdLnNlY29uZCkKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGltYWdlT3Zlcmxh
eUhvc3QuY29weVJlZigpKTsKIAotICAgICAgICBwcm90ZWN0ZWRQYWdlLT5tX2VsZW1lbnRzUGVu
ZGluZ0ltYWdlRXh0cmFjdGlvbi5yZW1vdmUobWF0Y2hJbmRleCk7CisgICAgICAgIHByb3RlY3Rl
ZFBhZ2UtPm1fZWxlbWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLnJlbW92ZShtYXRjaEluZGV4
KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlOjp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9u
UmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJlc3VsdCwgY29uc3QgRWxlbWVudENvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFdlYlBhZ2U6OnVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoVGV4dFJlY29n
bml0aW9uUmVzdWx0JiYgcmVzdWx0LCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVGV4dFJlY29n
bml0aW9uVXBkYXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGVs
ZW1lbnRUb1VwZGF0ZSA9IGVsZW1lbnRGb3JDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghaXM8
SFRNTEVsZW1lbnQ+KGVsZW1lbnRUb1VwZGF0ZSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmVsZW1lbnRUb1Vw
ZGF0ZSkudXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXVEZNb3ZlKHJlc3VsdCkpOwor
ICAgIGRvd25jYXN0PEhUTUxFbGVtZW50PigqZWxlbWVudFRvVXBkYXRlKS51cGRhdGVXaXRoVGV4
dFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUocmVzdWx0KSk7CiAgICAgYXV0byBoaXRUZXN0UmVz
dWx0ID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3Vs
dEF0UG9pbnQocm91bmRlZEludFBvaW50KGxvY2F0aW9uKSwgewogICAgICAgICBIaXRUZXN0UmVx
dWVzdDo6VHlwZTo6UmVhZE9ubHksCiAgICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpBY3Rp
dmUsCkBAIC03NDk5LDIzICs3NDk5LDIzIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlV2l0aEltYWdl
RXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQsIGNvCiAgICAg
YXV0byBub2RlQXRMb2NhdGlvbiA9IG1ha2VSZWZQdHIoaGl0VGVzdFJlc3VsdC5pbm5lck5vblNo
YXJlZE5vZGUoKSk7CiAgICAgYXV0byB1cGRhdGVSZXN1bHQgPSAoWyZdIHsKICAgICAgICAgaWYg
KCFub2RlQXRMb2NhdGlvbiB8fCBub2RlQXRMb2NhdGlvbi0+c2hhZG93SG9zdCgpICE9IGVsZW1l
bnRUb1VwZGF0ZSB8fCAhSFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCpub2RlQXRM
b2NhdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0
OjpOb1RleHQ7CisgICAgICAgICAgICByZXR1cm4gVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0
OjpOb1RleHQ7CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgICAgIGlmIChmaW5k
RGF0YURldGVjdGlvblJlc3VsdEVsZW1lbnRJbkltYWdlT3ZlcmxheShsb2NhdGlvbiwgZG93bmNh
c3Q8SFRNTEVsZW1lbnQ+KCplbGVtZW50VG9VcGRhdGUpKSkKLSAgICAgICAgICAgIHJldHVybiBJ
bWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcjsKKyAgICAgICAgICAgIHJl
dHVybiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcjsKICNlbmRpZgog
CiAgICAgICAgIGlmIChIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCpub2RlQXRMb2Nh
dGlvbikpCi0gICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpU
ZXh0OworICAgICAgICAgICAgcmV0dXJuIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdDo6VGV4
dDsKIAotICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQ7
CisgICAgICAgIHJldHVybiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dDsKICAg
ICB9KSgpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIodXBkYXRlUmVzdWx0KTsKIH0KIAotI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9B
TkFMWVNJUykKIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKIHZvaWQgV2ViUGFnZTo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0
TWVudShGbG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9yPE1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQ0ZDMzZTM3Nzc5Nzg0NjQyYzRjYzdm
ZWZhZjJkMzIzM2NjOGY4ZmEuLjBlMzQxYjYwY2M4Mjk1MTQ1ZGJmYTViNTNlNDA4ODliNWQzZDk4
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMx
MCw3ICszMTAsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIAogZW51bSBj
bGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OwogZW51bSBjbGFzcyBEcmFnQ29udHJvbGxlckFj
dGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6
IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSA6IHVpbnQ4X3Q7CiAK
IHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CkBAIC0xNDAzLDkgKzE0MDMsOSBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKLSAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmKTsKLSAg
ICB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoV2ViQ29yZTo6SW1hZ2VFeHRy
YWN0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VF
eHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJik7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQor
ICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYpOworICAgIHZv
aWQgdXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25SZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2du
aXRpb25VcGRhdGVSZXN1bHQpPiYmKTsKICNlbmRpZgogCiAjaWYgSEFWRShUUkFOU0xBVElPTl9V
SV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMzQ3LDkgKzIzNDcsOSBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk+IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFdlYWtQdHI8V2ViQ29yZTo6
SFRNTEVsZW1lbnQ+LCBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29y
ZTo6RWxlbWVudD4mJik+Pj4+IG1fZWxlbWVudHNQZW5kaW5nSW1hZ2VFeHRyYWN0aW9uOwotICAg
IFdlYWtIYXNoU2V0PFdlYkNvcmU6OkhUTUxFbGVtZW50PiBtX2VsZW1lbnRzV2l0aEV4dHJhY3Rl
ZEltYWdlczsKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCisgICAgVmVjdG9yPHN0ZDo6cGFp
cjxXZWFrUHRyPFdlYkNvcmU6OkhUTUxFbGVtZW50PiwgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPj4+PiBtX2VsZW1lbnRzUGVuZGluZ1Rl
eHRSZWNvZ25pdGlvbjsKKyAgICBXZWFrSGFzaFNldDxXZWJDb3JlOjpIVE1MRWxlbWVudD4gbV9l
bGVtZW50c1dpdGhUZXh0UmVjb2duaXRpb25SZXN1bHRzOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0VCWFIpICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggODNmZTU1YjBjNDA0YTA5ZWI2
ZjQ3NzgzOGY4NmYxODA1NmNlYjhlYi4uNTYxOGEzNDNkZTRhNTc0NmI1OWNiYjBmMTcxNGFmOGM3
NTJmYzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02NDIsNyArNjQyLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKICAgICBJbnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICBVcGRhdGVXaXRoSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0LCBz
dHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudCwgV2ViQ29yZTo6RmxvYXRQb2lu
dCBsb2NhdGlvbikgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0
ZVJlc3VsdCByZXN1bHQpIEFzeW5jCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQorICAgIFVw
ZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OlRleHRSZWNvZ25p
dGlvblJlc3VsdCByZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVtZW50
LCBXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6
VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IHJlc3VsdCkgQXN5bmMKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMzg4
OWQyNjcwOWM2N2RhNDA0Mjc1MjVhY2NmZjQ3MjJjMjBiMzc0Ni4uZTNjNzFhZmMzMzFmYWU3NWMx
Y2JhZTM3MGE5NDRlMzFiNjhiOGQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MTYsNyArNjE2LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8TlNJbnRlZ2VyPiB0b1RhZyhXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24p
CiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2Ny
ZWVuOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVHJhbnNsYXRlOgogICAgICAgICByZXR1
cm4gV2ViTWVudUl0ZW1UYWdUcmFuc2xhdGU7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdS
ZXZlYWxJbWFnZToKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEltYWdlOgogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1CYXNl
Q3VzdG9tVGFnIC4uLiBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY3MDhhMzkzZDEwNWE1NThj
YjBlNjQ0NmRiMGQyNTFlZTY3MzQwNTkuLjNmYWExYzllNDQwOWY3OGEzZDM4NzhlYjc3MzA2NTYx
MTIzMGU2NmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBmb3IgTGl2
ZSBUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjY3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTMzNjg0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgSU1BR0VfRVhUUkFDVElP
TiB3aXRoIElNQUdFX0FOQUxZU0lTLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW06CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW06
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRpYXRlQWN0aW9uVGVzdHMu
bW06CisKIDIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBGaW5kLWluLXBhZ2Ugc2hvdWxkIG1hdGNoIHRleHQgaW5zaWRl
IGltYWdlIG92ZXJsYXlzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9JbmplY3RlZEJ1bmRsZUhpdFRlc3QubW0KaW5kZXggNmNiZmM4NTdmY2VmNDM0NWYy
ZTVlN2Q4NzQ2ZjI1NWNkYTJhNWYxOC4uN2IyNTAyNmU5ZmJlMmQxMzhlYWEzNWJhYWU0ZTE1MGFk
Y2MxMGNjNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0luamVjdGVkQnVuZGxlSGl0VGVzdC5tbQpAQCAtNzcsNyArNzcsNyBAQCBURVNUKEluamVj
dGVkQnVuZGxlSGl0VGVzdCwgVGV4dFBhcmFncmFwaCkKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgaGFzU2VsZWN0YWJsZVRleHRBdDpDR1BvaW50TWFrZSgzMDAsIDMwMCldKTsKIH0KIAotI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAog
VEVTVChJbmplY3RlZEJ1bmRsZUhpdFRlc3QsIEltYWdlT3ZlcmxheSkKIHsKQEAgLTg5LDYgKzg5
LDYgQEAgVEVTVChJbmplY3RlZEJ1bmRsZUhpdFRlc3QsIEltYWdlT3ZlcmxheSkKICAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgaGFzU2VsZWN0YWJsZVRleHRBdDpDR1BvaW50TWFrZSg0MDAsIDMw
MCldKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5k
RHJvcFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFn
QW5kRHJvcFRlc3RzLm1tCmluZGV4IGU5MzljZGQ2OWU5OGMzNjJhOGRhODdmNWI1M2IwZjU4NDY0
YTUyYjYuLjgxYTVlZGMwNGRkNGY3ZmRmNTFhYTkzZDk4MTAxYjY3MDdjNjQ1MWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0
cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmRE
cm9wVGVzdHMubW0KQEAgLTM4NSw3ICszODUsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIENv
bG9ySW5wdXRFdmVudHMpCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIAot
I2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
IAogVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBEcmFnRWxlbWVudFdpdGhJbWFnZU92ZXJsYXkpCiB7
CkBAIC00MzIsNiArNDMyLDYgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBEcmFnU2VsZWN0ZWRU
ZXh0SW5JbWFnZU92ZXJsYXkpCiAgICAgRVhQRUNUX1dLX1NUUkVRKGRyYWdnZWRUZXh0LmdldCgp
LCAiZm9vYmFyIik7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KaW5kZXggMjhmOThiOTE3ZGYx
NTY1NGIwZjcxNTU3MWQ4YzIwYmVhMjg1NWU2ZS4uZmM1YjI0ZmMyYmNlMTI2ZTU4ZTQwMjE4YjJh
OWU1MDk3OTY4ODJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9GaW5kSW5QYWdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRmluZEluUGFnZS5tbQpAQCAtMjk2LDcgKzI5Niw3IEBAIFRFU1QoV2ViS2l0LCBG
aW5kQW5kUmVwbGFjZSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoImhpIGhpIiwgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkudGV4dENvbnRlbnQiXSk7
CiB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5B
TFlTSVMpCiAKIFRFU1QoV2ViS2l0LCBGaW5kVGV4dEluSW1hZ2VPdmVybGF5KQogewpAQCAtMzE4
LDYgKzMxOCw2IEBAIFRFU1QoV2ViS2l0LCBGaW5kVGV4dEluSW1hZ2VPdmVybGF5KQogICAgIH0K
IH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKIAogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRW
aWV3RWRpdGluZ0FjdGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbQppbmRleCBiYjU3M2UzOWRlY2Q0MjM3
OTFkYTRiN2M1NjMyYmM2MDlhZjNjNTRiLi4zNDk4MjEzMjI4YjI0OGY1NWE5MmZlNjU2ZDRhMTk3
ZTVkNTc4ZTY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbQpAQCAt
NzMsNyArNzMsNyBAQCBURVNUKFdlYktpdCwgSW52b2tlU2hhcmVXaXRob3V0U2VsZWN0aW9uKQog
ICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIH0KIAotI2lmIEVO
QUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAKIFRFU1QoV2Vi
S2l0LCBBcHBIaWdobGlnaHRzSW5JbWFnZU92ZXJsYXlzKQogewpAQCAtOTksNiArOTksNiBAQCBU
RVNUKFdlYktpdCwgQXBwSGlnaGxpZ2h0c0luSW1hZ2VPdmVybGF5cykKICAgICBFWFBFQ1RfRVEo
W2NvbnRlbnRWaWV3IHRhcmdldEZvckFjdGlvbjpjcmVhdGVIaWdobGlnaHRJbk5ld0dyb3VwV2l0
aFJhbmdlU2VsZWN0b3Igd2l0aFNlbmRlcjpuaWxdLCBjb250ZW50Vmlldyk7CiB9CiAKLSNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQor
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykgJiYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ltbWVkaWF0ZUFjdGlvblRlc3RzLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0KaW5kZXggOWQ0NjJh
MDEwYTgzZmRkODlhZTA0MjlmNjg4MjhhMzhhODcyZDkwNi4uNmQ5ZGZkYjZhNzEwM2Q2YjZiNWNh
MGEwNmYxYmFhZWM2OWUwOGIwZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0KQEAgLTEyNSw3ICsxMjUsNyBAQCBURVNU
KEltbWVkaWF0ZUFjdGlvblRlc3RzLCBJbW1lZGlhdGVBY3Rpb25PdmVyQm9keSkKICAgICBFWFBF
Q1RfRVEoW2hpdFRlc3RSZXN1bHQgbG9va3VwVGV4dF0ubGVuZ3RoLCAwVSk7CiB9CiAKLSNpZiBF
TkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKIFRF
U1QoSW1tZWRpYXRlQWN0aW9uVGVzdHMsIEltbWVkaWF0ZUFjdGlvbk92ZXJJbWFnZU92ZXJsYXkp
CiB7CkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVChJbW1lZGlhdGVBY3Rpb25UZXN0cywgSW1tZWRp
YXRlQWN0aW9uT3ZlckltYWdlT3ZlcmxheSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoW2hpdFRlc3RS
ZXN1bHQgbG9va3VwVGV4dF0sICJmb29iYXIiKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2M3YjgzNzkwY2YzYmZhYzU3OTEwNWM2
Yzk4MzNhNzhmMWE2YTM0MC4uNDhiZGRiNzMyNjY4OTRmZmY3YjhmNDYxOTYxMzdlOTU3MDZhZGU5
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZv
ciBMaXZlIFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNjcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzg5MzM2ODQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIGBmYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uYCB0byBgZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbmAuCisK
KyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNp
Yy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisgICAgICAgICogZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2Jhc2ljLWltYWdl
LW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Ns
aWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRo
LWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdl
LW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC1leHBlY3RlZC50eHQuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlk
ZW1wb3RlbnQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3Zlcmxh
eS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWlt
YWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXpl
cm8tZm9udC1zaXplLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1v
dmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1z
dHlsZXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24t
cmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24t
cmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdl
LW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW9zL2NvYWxlc2NlLXNlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5
Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVzZWxl
Y3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4t
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdl
LW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Ut
b3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
dGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUt
bGluay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1s
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRt
bC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24t
cmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4t
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Nl
bGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250
ZXh0LW1lbnUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250
ZXh0LW1lbnUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51Lmh0bWw6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21h
Yy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1k
aXNhYmxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3Zl
cmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvaW1hZ2Utb3Zlcmxh
eS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3Zl
cmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVudS1pdGVtcy5odG1sLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5
LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVy
bGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5r
LXdpdGgtbW91c2UtZHJhZy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13aXRo
LW1vdXNlLWRyYWcuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi1leHBlY3RlZC5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9t
YWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbC4K
KyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0
aC1tb3VzZS1kcmFnLTIuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmly
ZS1jbGljay1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRy
YWctZG9lcy1ub3QtZmlyZS1jbGljay1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1k
cmFnLWRvZXMtbm90LWZpcmUtY2xpY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgt
bW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1k
cmFnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1v
dXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1v
dmVybGF5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0
bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3Nl
bGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0
bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLWRyYWdn
YWJsZS1pbWFnZS1vdmVybGF5Lmh0bWwuCisgICAgICAgICogZmFzdC9pbWFnZXMvdGV4dC1yZWNv
Z25pdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC1taXNtYXRjaC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXku
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbC4KKwog
MjAyMS0wNi0wNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2lPU10gVW5leHBlY3RlZCBzY3JvbGxpbmcgd2hlbiBzd2l0Y2hpbmcgZm9jdXMgZnJvbSBh
IHRleHQgaW5wdXQgdG8gYSBzZWxlY3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTc3
NDgyYjI0MGRlOTEzNDNhY2M3Yjg4M2JiNDNjNGY1MTE3YjgwMC4uYmM3MmVjM2UzZDRhYWI4ZGM3
ZWNmYjM3ODBiOWRlMjMxZGNjYzJhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zOCw3ICszOCw3
IEBAIGZhc3QvZG9tL1dpbmRvdy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL3NlbGVjdC9t
YWMtd2syIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL3RleHRhcmVhL2lvcyBbIFNraXAgXQogZmFzdC9m
b3Jtcy93YXRjaG9zIFsgU2tpcCBdCi1mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uIFsgU2tp
cCBdCitmYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uIFsgU2tpcCBdCiBmYXN0L3NhbmRib3gv
aW9zIFsgU2tpcCBdCiBmYXN0L3NhbmRib3gvbWFjIFsgU2tpcCBdCiBmYXN0L3ZpZXdwb3J0L3dh
dGNob3MgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVy
bGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGM2MzkzYTlkMmJmZWMyZmIwYWZhNThjMDcyODFkZWIyMzYxYTc2ODkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1n
PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vYmFzaWMtaW1hZ2Ut
b3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9i
YXNpYy1pbWFnZS1vdmVybGF5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5
YTBjZTYxODA2ZThlYTNhM2IzODRlZWM1Zjg2OTA2ODM4YzZjNDcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08aW1nIHNyYz0i
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdl
LCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjUsIDAuNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDEpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
NSwgMSksCi0gICAgICAgICAgICBjaGlsZHJlbjogW3sKLSAgICAgICAgICAgICAgICB0ZXh0IDog
IkhlbGxvIiwKLSAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MC41LCAwLjUpLAotICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgfV0sCi0gICAgICAgIH0KLSAgICBdKTsKLSAg
ICBpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkuZ2V0RWxlbWVudEJ5SWQoImltYWdlLW92ZXJs
YXkiKS5zdHlsZS5jb2xvciA9ICJibGFjayI7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJs
YXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ0ODdiYTRkZjM1YTVhNmVlYjA2MTA4Njk0OTcyYTE2MGVjZmU5
NzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBBU1Mg
Y2xpY2tDb3VudCBiZWNhbWUgMgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92
ZXJsYXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjEwZTg2ZWY4N2NkMTY3
MzMyYzBlYTYzNmQ1ZjE3YThiOTMwOTYzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9u
L2NsaWNrLWxpbmstd2l0aC1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sPgotPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxz
dHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBs
ZWZ0OiAwOwotfQotCi1hIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci19Ci08L3N0eWxl
PgotPC9oZWFkPgotPGJvZHk+Ci08YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjU0MzIxIj4KLSAg
ICA8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYT4K
LTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBhc3luYyAoKSA9PiB7Ci0gICAgY2xpY2tDb3VudCA9IDA7Ci0KLSAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJhIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKLSAg
ICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgY2xpY2tDb3VudCsrOwotICAg
IH0pOwotCi0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiaW1nIiksIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC4yNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC4yNSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAg
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjI1KSwK
LSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDAuMjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0KLSAg
ICBdKTsKLQotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImltZyIpLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRleHQgOiAiaGVsbG8i
LAotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCi0gICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC4yNSksCi0gICAgICAg
IH0KLSAgICBdKTsKLQotICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMTAwLCA1MCk7Ci0g
ICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckRvdWJsZVRhcERlbGF5KCk7Ci0gICAgYXdhaXQgVUlI
ZWxwZXIuYWN0aXZhdGVBdCgzMDAsIDMwMCk7Ci0KLSAgICBzaG91bGRCZWNvbWVFcXVhbCgiY2xp
Y2tDb3VudCIsICIyIiwgZmluaXNoSlNUZXN0KTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlz
LWlkZW1wb3RlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlkZW1wb3RlbnQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzVlNjczMDVhMTAwOTY3NzcyZWY5
NzJiNWNmMjZjZDhkYTEwZDUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Ut
b3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDUgKzAsMCBAQAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkuY2hpbGRF
bGVtZW50Q291bnQgaXMgMgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktY3JlYXRp
b24taXMtaWRlbXBvdGVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmNj
ZGZiNjMzZTliMjRlNDNmMDRjM2Y5OGZmMzAyZjUzZmRiOTI4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxib2R5
PgotPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2Ny
aXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBpbWFnZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7ICsr
aSkgewotICAgICAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41
LCAwLjUpLAotICAgICAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRv
bUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSk7Ci0gICAg
fQotICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkuY2hpbGRFbGVtZW50
Q291bnQiLCAiMiIpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6
ZS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUtZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFjYTFi
MzJkYmNjNTc1OGRiYTZmMTgzMDllZTkzYWU1MmQzZjBmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS1leHBl
Y3RlZC1taXNtYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBmb250LXNpemU6
IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2Vz
L2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVy
bGF5LWluLWltYWdlLXdpdGgtemVyby1mb250LXNpemUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDE0YjA1NjQ5OTY4MTRkZjM4NWQwYjhlZTIyMmE5OTg5ZGI1NTAxNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16
ZXJvLWZvbnQtc2l6ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBmb250LXNpemU6
IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vcmVzb3VyY2Vz
L2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlt
ZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSks
Ci0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0g
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAg
ICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAg
ICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGV4dCA6ICJIZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9t
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCi0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotICAgIGludGVybmFscy5z
aGFkb3dSb290KGltYWdlKS5nZXRFbGVtZW50QnlJZCgiaW1hZ2Utb3ZlcmxheSIpLnN0eWxlLmNv
bG9yID0gImJsYWNrIjsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFn
ZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlYTUyNDU2MDk5NjRhYmM5NGQ3ODZlODA4YTU1ODhhZWU0YmY3
ODVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNl
bGVjdGlvbi1zdHlsZXMtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWltZyB7Ci0gICAg
cG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotCi06OnNl
bGVjdGlvbiB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlw
dD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgY29uc3QgaW1hZ2UgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdl
T3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAg
ICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAg
ICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAg
ICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41
KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7
Ci0KLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93
Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKLX0pOwot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFn
ZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxl
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTk1MmI1Y2IzNmYyMGFhMzVl
YmUwYTRjY2ZhNTE3YTc0NjVhMTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW1h
Z2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWlt
ZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwot
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVl
bi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
ICgpID0+IHsKLSAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIp
OwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAg
IGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0
IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVj
dEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIu
aW1hZ2Utb3ZlcmxheS10ZXh0IikpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4t
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zlcmxh
eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMWU0YzczMjc4
Yzc1ZTU2MDdhOTFkNDE3ZGYwODJmOGZkMWM0OWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1QQVNTIHNlbGVjdGlvblJlY3Rz
QWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIGlzIDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1h
Z2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjQ1NjJiNjIwYjNkNzU3NjU0YTQ2ZmI1YzI2OTIw
MDhhMmFkZjI3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9jb2FsZXNjZS1z
ZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotYm9k
eSwgaHRtbCB7Ci0gICAgbWFyZ2luOiAwOwotfQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgot
PHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgYXN5bmMgKCkgPT4gewotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjEsIDAuMyksCi0gICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4xKSwKLSAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjIpLAotICAgICAgICAgICAgYm90dG9t
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC40KSwKLSAgICAgICAgICAgIGNoaWxk
cmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkFC
IiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
MSwgMC4zKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjIsIDAuMiksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4zLCAwLjMpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjQpLAotICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIkNEIiwKLSAgICAg
ICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC4yKSwK
LSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMs
IDAuMSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC40LCAwLjIpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4zLCAwLjMpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQ
b2ludCg4MCwgMTIwKTsKLSAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBl
YXIoKTsKLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Ci0gICAgYXdhaXQg
VUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7Ci0gICAgc2VsZWN0aW9uUmVjdHNB
ZnRlclNlbGVjdGluZ0FsbCA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1JlY3Rz
KCk7Ci0gICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3Ro
IiwgIjEiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFn
ZS1vdmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkZTFhNzJiMjM3M2JhNmNjYWUwZWRmZWMy
NTYzOTM4YzE2OTk4ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvcmVzZWxl
Y3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDcgKzAsMCBAQAotUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQotUEFTUyBEaXNtaXNz
ZWQgc2VsZWN0aW9uCi1QQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3MvcmVzZWxlY3Qtd29yZC1p
bi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDg1MDJjZjQ1NTZmODYyNjUzZmZlYWY2YTc3YmZhMmUwMDE3
NDA0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWlu
LWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLX0KLTwvc3R5bGU+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5w
bmciPjwvaW1nPgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJpbWciKTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFn
ZSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJmb28iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotICAgIGF3YWl0IFVJ
SGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAwLCAxMDApOwotICAgIHNlbGVjdGlvblJlY3RzID0g
YXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUo
InNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIxIik7Ci0KLSAgICBhd2FpdCBVSUhlbHBlci5hY3Rp
dmF0ZUF0KDIwMCwgMzAwKTsKLSAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9E
aXNhcHBlYXIoKTsKLSAgICB0ZXN0UGFzc2VkKCJEaXNtaXNzZWQgc2VsZWN0aW9uIik7Ci0KLSAg
ICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDIwMCwgMTAwKTsKLSAgICBzZWxlY3Rp
b25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwotICAg
IHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOwotCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4
dHJhY3Rpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQt
aW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGM0MWFhNDJmNmU2OTI0M2FiNzQxMmMwOGMzNjc5NmMyNjE1NmUzYjcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVBBU1Mgc2VsZWN0aW9uUmVj
dHMubGVuZ3RoIGlzIDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWluc2lkZS1saW5rLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3Nl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDFhYTQyZjZlNjkyNDNhYjc0MTJjMDhjMzY3OTZj
MjYxNTZlM2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdC13b3Jk
LWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi1QQVNTIHNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQt
aW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNp
ZGUtbGluay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOGY0NmM5ZDU5NDI4
NjVmZTYwODhjNWQ1Nzc5ZWY0MjNiMTZkZjAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmsuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Ci08c3R5bGU+Ci1pbWcgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6
IDA7Ci0gICAgbGVmdDogMDsKLX0KLQotYSB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwot
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo1
NDMyMSIgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKSI+Ci0gICAgPGltZyBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2E+Ci08c2NyaXB0Pgot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci1hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkg
PT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAg
IGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUpLAotICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAotICAgICAgICAgICAgY2hp
bGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAi
aGVsbG8iLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMCksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC4yNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdLAotICAgICAgICB9Ci0gICAgXSk7Ci0gICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNz
QXRQb2ludCgyMDAsIDUwKTsKLSAgICBzZWxlY3Rpb25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndh
aXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwotICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0cy5s
ZW5ndGgiLCAiMSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1p
bWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0
aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGMxNjIzN2NjODVkMTI0ZWQ2MTE2MmNhNzkzODQ5OWI1MzU0YzljZjYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Ut
b3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFi
c29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4KLTwvaGVhZD4K
LTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9p
bWc+Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci1hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgYXN5bmMgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0g
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0g
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIndvcmxkIiwKLSAg
ICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSks
Ci0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAg
ICAgIH0KLSAgICBdKTsKLQotICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVzc0F0UG9pbnQoMjAw
LCAzMDApOwotICAgIHNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVj
dGlvblRvQXBwZWFyKCk7Ci0gICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3RzLmxlbmd0aCIsICIx
Iik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJh
Y3Rpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTcyZDY0YzFmZTA1NTY4ODE3NGI1NmQ2YzA5
NjE0ZjFiOGFjMTJiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rp
b24tcmVjdHMtaW4taW1hZ2Utb3ZlcmxheS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw2ICswLDAgQEAKLVBBU1MgaW5pdGlhbFNlbGVjdGlvblJlY3RzLmxlbmd0aCBpcyAxCi1QQVNT
IHNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIGlzIDQKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMt
aW4taW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQ3YjUzNGZmMGQzZGZiNTkzZmIwZTA5ZDcyNTI4NGUw
MmUyZDQyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL2lvcy9zZWxlY3Rpb24tcmVj
dHMtaW4taW1hZ2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAg
cG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHls
ZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4
NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJs
YXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuMSwgMC4yNSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuMjUsIDAuMSksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuMzUsIDAuMiksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC4yLCAwLjM1KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIm9uZSIsCi0gICAgICAg
ICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjEsIDAuMjUpLAot
ICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMjUs
IDAuMSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC4zNSwgMC4yKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuMiwgMC4zNSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuMywgMC40NSksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNDUsIDAuMyksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNTUsIDAuNCksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjU1KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBb
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogInR3byIsCi0g
ICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjMsIDAu
NDUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNDUsIDAuMyksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41NSwgMC40KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC41NSksCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC42NSksCi0gICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNjUsIDAuNSksCi0gICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNzUsIDAuNiksCi0gICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42LCAwLjc1KSwKLSAgICAgICAgICAgIGNoaWxk
cmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogInRo
cmVlIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAuNSwgMC42NSksCi0gICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMC42NSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjc1LCAwLjYpLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42LCAwLjc1KSwKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB0
b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43LCAwLjg1KSwKLSAgICAgICAgICAgIHRv
cFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44NSwgMC43KSwKLSAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC45NSwgMC44KSwKLSAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjgsIDAuOTUpLAotICAgICAgICAg
ICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRl
eHQgOiAiZm91ciIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjcsIDAuODUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuODUsIDAuNyksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC45NSwgMC44KSwKLSAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuOCwgMC45NSksCi0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgYXdh
aXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCg5MCwgOTApOwotICAgIGluaXRpYWxTZWxlY3Rp
b25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwotICAg
IHNob3VsZEJlKCJpbml0aWFsU2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKLQotICAgIHRl
c3RSdW5uZXIuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwotICAgIGF3YWl0IFVJSGVscGVyLmVu
c3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOwotICAgIHNlbGVjdGlvblJlY3RzQWZ0ZXJTZWxlY3Rp
bmdBbGwgPSBhd2FpdCBVSUhlbHBlci5nZXRVSVNlbGVjdGlvblZpZXdSZWN0cygpOwotICAgIHNo
b3VsZEJlKCJzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsLmxlbmd0aCIsICI0Iik7Ci0K
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1j
b250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDIzNGVjMWFhNDcw
OTMwMjdhZDVlYmI2NjAwNzZiZjZkOTE4ODc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rp
b24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29udGV4dC1tZW51LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotUEFTUyBlZGl0b3IudGV4dENvbnRl
bnQgaXMgImZvb2JhciIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvY29weS1pbWFn
ZS1vdmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGIxZmQ4MWUyM2ExZTIzY2RmMzEwMmVlMzg3OThjMTMyM2YzNDhkMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13
aXRoLWNvbnRleHQtbWVudS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRp
b246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotCi1kaXZbY29udGVu
dGVkaXRhYmxlXSB7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgdG9tYXRvOwotfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyI+PC9pbWc+Ci08ZGl2IGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KLTxzY3JpcHQ+Ci1hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGlt
YWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMCksCi0gICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwg
MC41KSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICB0ZXh0IDogImZvb2JhciIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9w
UmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAg
ICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAxNTApOwotCi0gICAgZm9yIChsZXQgaXRlbSBvZiBl
dmVudFNlbmRlci5jb250ZXh0Q2xpY2soKSkgewotICAgICAgICBpZiAoaXRlbS50aXRsZSA9PT0g
IkNvcHkiKQotICAgICAgICAgICAgaXRlbS5jbGljaygpOwotICAgIH0KLQotICAgIGVkaXRvciA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdltjb250ZW50ZWRpdGFibGVdIik7Ci0gICAgZWRp
dG9yLmZvY3VzKCk7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7Ci0KLSAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0Q29udGVudCIsICJmb29iYXIiKTsKLSAg
ICBlZGl0b3IucmVtb3ZlKCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1hcHAt
aGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1o
aWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM4YzBlN2IzNzFkYmMxYWVmODI3ODUzNmU2ZDIwZWVlM2VlN2IyNTkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFw
cC1oaWdobGlnaHQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5
ICswLDAgQEAKLVBBU1MgZm91bmRUaXRsZTEgaXMgdHJ1ZQotUEFTUyBmb3VuZFRpdGxlMiBpcyB0
cnVlCi1QQVNTIFNlbGVjdGVkIGltYWdlIG92ZXJsYXkKLVBBU1MgZm91bmRUaXRsZTEgaXMgZmFs
c2UKLVBBU1MgZm91bmRUaXRsZTIgaXMgZmFsc2UKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBw
LWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdo
dC1tZW51LWl0ZW1zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyYmFiNTk4
NGYzODgyNDUyNzkxZDA4YjkyYmQ3YTk2NWI5NDQ0NzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9tYWMvaW1hZ2Utb3ZlcmxheS10ZXh0LWRpc2FibGVzLWFwcC1oaWdobGlnaHQtbWVu
dS1pdGVtcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgYXBwSGlnaGxpZ2h0c0VuYWJsZWQ9dHJ1ZSBd
IC0tPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1ib2R5LCBodG1sIHsKLSAgICBtYXJnaW46
IDA7Ci19Ci0KLXAgewotICAgIGZvbnQtc2l6ZTogMzJweDsKLSAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxwPkhlbGxvIHdvcmxkIHRoaXMgaXMg
YSB0ZXN0LjwvcD4KLTwvYm9keT4KLTxzY3JpcHQ+Ci12YXIgZm91bmRUaXRsZTE7Ci12YXIgZm91
bmRUaXRsZTI7Ci0KLWZ1bmN0aW9uIGNoZWNrRm9yQXBwSGlnaGxpZ2h0Q29udGV4dE1lbnVJdGVt
cygpIHsKLSAgICBmb3VuZFRpdGxlMSA9IGZhbHNlOwotICAgIGZvdW5kVGl0bGUyID0gZmFsc2U7
Ci0KLSAgICBsZXQgW3RpdGxlMSwgdGl0bGUyXSA9IGludGVybmFscy5hcHBIaWdobGlnaHRDb250
ZXh0TWVudUl0ZW1UaXRsZXM7Ci0gICAgZm9yIChsZXQgaXRlbSBvZiBldmVudFNlbmRlci5jb250
ZXh0Q2xpY2soKSkgewotICAgICAgICBpZiAoaXRlbS50aXRsZSA9PT0gdGl0bGUxKQotICAgICAg
ICAgICAgZm91bmRUaXRsZTEgPSB0cnVlOwotCi0gICAgICAgIGlmIChpdGVtLnRpdGxlID09PSB0
aXRsZTIpCi0gICAgICAgICAgICBmb3VuZFRpdGxlMiA9IHRydWU7Ci0gICAgfQotfQotCi1hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCB0ZXh0ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigicCIpOwotICAgIGxldCB0ZXh0UmVjdCA9IHRleHQuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7
Ci0KLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7
Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKLSAgICAgICAgICAgIGNo
aWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDog
ImZvb2JhciIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hp
bGRyZW4odGV4dCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGV4dFJlY3QubGVmdCAr
IHRleHRSZWN0LndpZHRoIC8gMiwgdGV4dFJlY3QudG9wICsgdGV4dFJlY3QuaGVpZ2h0IC8gMik7
Ci0gICAgY2hlY2tGb3JBcHBIaWdobGlnaHRDb250ZXh0TWVudUl0ZW1zKCk7Ci0gICAgc2hvdWxk
QmVUcnVlKCJmb3VuZFRpdGxlMSIpOwotICAgIHNob3VsZEJlVHJ1ZSgiZm91bmRUaXRsZTIiKTsK
LQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dS
b290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCJkaXYjaW1hZ2Utb3ZlcmxheSIpKTsKLSAgICB0ZXN0
UGFzc2VkKCJTZWxlY3RlZCBpbWFnZSBvdmVybGF5IikKLSAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbygyMDAsIDIwMCk7Ci0gICAgY2hlY2tGb3JBcHBIaWdobGlnaHRDb250ZXh0TWVudUl0ZW1z
KCk7Ci0gICAgc2hvdWxkQmVGYWxzZSgiZm91bmRUaXRsZTEiKTsKLSAgICBzaG91bGRCZUZhbHNl
KCJmb3VuZFRpdGxlMiIpOwotCi0gICAgdGV4dC5yZW1vdmUoKTsKLX0pOwotPC9zY3JpcHQ+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXkt
aW4tbGluay13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13
aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0M2U1ZWVlZGJmMWI0MzVmOTZjM2EyMGJmODE0MDFhZWU0MzMxOTgxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1t
b3VzZS1kcmFnLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1p
bWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3VzZS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1s
aW5rLXdpdGgtbW91c2UtZHJhZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
YTRlZGM4OTA0YWExN2I4ODc4NWIyNzg3YzQ0YTczOTE3MTczNjc2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWluLWxpbmstd2l0aC1tb3Vz
ZS1kcmFnLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJv
ZHk+Ci08YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjU0MzIxIj4KLSAgICA8aW1nIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYT4KLTxzY3JpcHQ+Ci1h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5
KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAg
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAg
aW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBldmVudCA9PiB7Ci0gICAgICAgIHRlc3RG
YWlsZWQoIk9ic2VydmVkIGNsaWNrLiIpOwotICAgIH0pOwotCi0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlZjdmMzYzZDI5NjQ4YWU4ODAxNjYxZGE1OTEwOTAzNzVj
NWFmNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92
ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDYxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWlt
ZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwot
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9n
cmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsICgpID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKLSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7
Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAg
ICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4
dCA6ICJoZWxsb3dvcmxkMSIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVs
bG93b3JsZDIiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMC41LCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgIHRvcFJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvd29ybGQzIiwK
LSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBd
Ci0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxk
cmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCJkaXYjaW1hZ2Ut
b3ZlcmxheSIpKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTIu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU2ZmVjZTM0NjI0MjFlOTRkY2VkYWU4MmZmOTY5MWEyNzhiMTI2OTUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0
aC1tb3VzZS1kcmFnLTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246
IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4KLTwvaGVh
ZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+
PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKLSAgICBp
bnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KSwgWwotICAgICAgICB7Ci0gICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMCksCi0gICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDApLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAw
LjUpLAotICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCi0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMSIsCi0gICAgICAgICAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAg
dG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDApLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAg
ICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSks
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRleHQgOiAiaGVsbG93b3JsZDIiLAotICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90
dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAg
ICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgIGNo
aWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0IDog
ImhlbGxvd29ybGQzIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMC41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAotICAgICAgICAgICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDUwLCA1MCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzNTApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90LWZp
cmUtY2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0
cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMtbm90
LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
M2U1ZWVlZGJmMWI0MzVmOTZjM2EyMGJmODE0MDFhZWU0MzMxOTgxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1k
b2VzLW5vdC1maXJlLWNsaWNrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAs
MCBAQAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNr
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTg3M2M5ODE5MjMyM2MzMTEwMzIwY2Jk
M2VlYmU4ZjBmMzJiYTIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9w
OiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTxzY3JpcHQ+Ci1h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewotICAgIGxldCBpbWFnZSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImltZyIpOwotICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5
KGltYWdlLCBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAwLjUpLAotICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgxLCAxKSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAxKSwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICAgICAgICAg
IHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgICAg
ICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKLSAgICAgICAg
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAg
aW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBldmVudCA9PiB7Ci0gICAgICAgIHRlc3RG
YWlsZWQoIk9ic2VydmVkIGNsaWNrLiIpOwotICAgIH0pOwotCi0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oNTAsIDMwMCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFj
dGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLW1p
c21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21h
Yy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzdmNGM3NzQ1MDI4MzZjMWQzYjc3
NjFiNGM3MTYyNjM1ZDlhNjZiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9z
ZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzdHlsZT4KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRv
cDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXkt
d2l0aC1tb3VzZS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRy
YWN0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU0YzM2MDZhZDQ5Y2FiNDY1NGY4OGFlOWVmMTRh
ODNhMmE5ZWZiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3QtaW1h
Z2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWltZyB7Ci0g
ICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotfQotPC9z
dHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00
MDB4NDAwLnBuZyI+PC9pbWc+Ci08c2NyaXB0PgotYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgp
ID0+IHsKLSAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKLSAg
ICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0gICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAg
IGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCi0gICAgICAgICAgICBjaGls
ZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJo
ZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUw
LCAzMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDM1MCwgMzAwKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19KTsKLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3Nl
bGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVk
LXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2U4OTg4YmI4MDk1NmRkNjI0NTM4ZDk2ODhhM2RjZjQyZTQ4ZDE1OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3Bh
cmVudC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1ib2R5LCBo
dG1sIHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLWltZyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWln
aHQ6IDQwMHB4OwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGltZyBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Ci08L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1h
Z2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlv
bi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjY3N2QyMDJjZmMxZDhiZGU2YmFlZDE2YzE3Zjkx
Mjk4MTkxMmVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3Rh
dGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS5iYWNr
IHsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47Ci0gICAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Ci19Ci0KLS5mcm9udCB7Ci0g
ICAgb3BhY2l0eTogMDsKLX0KLQotYm9keSwgaHRtbCB7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0u
ZnJvbnQsIC5iYWNrIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAg
IGxlZnQ6IDA7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci19Ci08L3N0
eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGNsYXNzPSJiYWNrIj48L2Rpdj4KLTxpbWcgY2xh
c3M9ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+
Ci08ZGl2IGNsYXNzPSJiYXIiPjwvZGl2PgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1n
Iik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAg
ewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMS41KSwK
LSAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMS41LCAwLjUpLAot
ICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgyLCAxKSwKLSAg
ICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAyKSwKLSAgICAg
ICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB0ZXh0IDogImhlbGxvIiwKLSAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuNSwgMS41KSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgxLjUsIDAuNSksCi0gICAgICAgICAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMiwgMSksCi0gICAgICAgICAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAyKSwKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNlbGVjdGlv
bigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNl
bGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFn
Z2FibGUtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxl
LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzdmNGM3NzQ1MDI4MzZjMWQzYjc3NjFiNGM3MTYyNjM1ZDlhNjZiNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUt
aW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1n
IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19
Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dy
ZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1hZ2Utb3ZlcmxheS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdv
cmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggN2UzYTAxMWQzOGM0MTVmMWMyN2M1N2ZiMzc0NDExZDU3ODFiNmQ0ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1h
Z2Utb3ZlcmxheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotaW1nIHsKLSAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHk+Ci08aW1nIGRyYWdnYWJsZT0idHJ1ZSIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4t
NDAweDQwMC5wbmciPjwvaW1nPgotPHNjcmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAo
KSA9PiB7Ci0gICAgY29uc3QgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsK
LSAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWwotICAgICAgICB7Ci0g
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAg
ICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAotICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCi0gICAgICAgICAgICBj
aGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA6
ICJoZWxsbyIsCi0gICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwLjUpLAotICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdCi0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFs
bENoaWxkcmVuKGludGVybmFscy5zaGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1h
Z2Utb3ZlcmxheS10ZXh0IikpOwotfSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFn
ZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1v
dmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZiY2RhYjkwY2RhMDZjYjRiNWFhMDQ0MWJiMmI5MzQ4YzY4ZjQ2MDQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXdvcmQtaW4tdHJhbnNwYXJlbnQtaW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotYm9keSwgaHRt
bCB7Ci0gICAgbWFyZ2luOiAwOwotfQotCi1kaXYgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
LSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0
OiA0MDBweDsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47Ci0gICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyk7Ci19Ci08L3N0eWxl
PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2PjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92
ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFj
L3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTIxMGQyZDk3Y2YwYjc4OWFhNDc2YWU0NDMyZjAzODQ5YWEz
MTdjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10
cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0uYmFjayB7Ci0g
ICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOwotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgu
Li8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcpOwotfQotCi0uZnJvbnQgewotICAgIG9w
YWNpdHk6IDA7Ci19Ci0KLWJvZHksIGh0bWwgewotICAgIG1hcmdpbjogMDsKLX0KLQotLmZyb250
LCAuYmFjayB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0
OiAwOwotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5PgotPGRpdiBjbGFzcz0iYmFjayI+PC9kaXY+Ci08aW1nIGNsYXNzPSJm
cm9udCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgotPHNj
cmlwdD4KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7Ci0gICAgbGV0IGltYWdlID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7Ci0gICAgaW50ZXJuYWxzLmluc3RhbGxJbWFn
ZU92ZXJsYXkoaW1hZ2UsIFsKLSAgICAgICAgewotICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAotICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMC41KSwKLSAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwLjUpLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAotICAgICAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCi0gICAgICAgICAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCi0gICAgICAgICAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKLSAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXSk7
Ci0KLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93
Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKLX0pOwot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9iYXNp
Yy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlz
bWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjM5M2E5ZDJiZmVjMmZiMGFmYTU4YzA3MjgxZGViMjM2
MWE3Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9iYXNpYy1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKQEAg
LTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8aW1nIHNyYz0i
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vYmFzaWMtaW1hZ2Utb3ZlcmxheS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk5YTBjZTYxODA2ZThlYTNhM2IzODRlZWM1Zjg2OTA2ODM4YzZjNDcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL2Jhc2ljLWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0
MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4g
eworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGlu
dGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgYm90
dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICBjaGls
ZHJlbjogW3sKKyAgICAgICAgICAgICAgICB0ZXh0IDogIkhlbGxvIiwKKyAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAg
ICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEpLAorICAgICAg
ICAgICAgfV0sCisgICAgICAgIH0KKyAgICBdKTsKKyAgICBpbnRlcm5hbHMuc2hhZG93Um9vdChp
bWFnZSkuZ2V0RWxlbWVudEJ5SWQoImltYWdlLW92ZXJsYXkiKS5zdHlsZS5jb2xvciA9ICJibGFj
ayI7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Ut
b3ZlcmxheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4N2JhNGRmMzVhNWE2ZWViMDYxMDg2
OTQ5NzJhMTYwZWNmZTk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vY2xpY2stbGluay13aXRoLWltYWdlLW92ZXJsYXktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBjbGlja0NvdW50IGJlY2FtZSAyCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9jbGljay1saW5rLXdpdGgt
aW1hZ2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9jbGljay1saW5rLXdpdGgtaW1hZ2Utb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMGU4
NmVmODdjZDE2NzMzMmMwZWE2MzZkNWYxN2E4YjkzMDk2MzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2NsaWNrLWxpbmstd2l0aC1p
bWFnZS1vdmVybGF5Lmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRt
bD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKworYSB7CisgICAgZGlzcGxheTog
aW5saW5lLWJsb2NrOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGEgaHJlZj0iaHR0
cDovL2xvY2FsaG9zdDo1NDMyMSI+CisgICAgPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00
MDB4NDAwLnBuZyI+PC9pbWc+Cis8L2E+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7
CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGNsaWNrQ291bnQg
PSAwOworCisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYSIpLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgKGV2ZW50KSA9PiB7CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgICAgIGNsaWNrQ291bnQrKzsKKyAgICB9KTsKKworICAgIGludGVybmFscy5pbnN0YWxsSW1h
Z2VPdmVybGF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpLCBbCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBi
b3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuMjUpLAorICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuMjUpLAorICAgICAgICAgICAg
Y2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQg
OiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1KSwKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisKKyAgICBpbnRlcm5hbHMuaW5zdGFsbElt
YWdlT3ZlcmxheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSwgWworICAgICAgICB7Cisg
ICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuMjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDAuMjUpLAorICAgICAgICB9CisgICAgXSk7CisKKyAgICBhd2FpdCBVSUhlbHBl
ci5hY3RpdmF0ZUF0KDEwMCwgNTApOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JEb3VibGVU
YXBEZWxheSgpOworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMzAwLCAzMDApOworCisg
ICAgc2hvdWxkQmVjb21lRXF1YWwoImNsaWNrQ291bnQiLCAiMiIsIGZpbmlzaEpTVGVzdCk7Cit9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
aW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1pZGVtcG90ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlv
bi1pcy1pZGVtcG90ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzVlNjczMDVhMTAwOTY3
NzcyZWY5NzJiNWNmMjZjZDhkYTEwZDUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWNyZWF0aW9uLWlzLWlk
ZW1wb3RlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBpbnRlcm5hbHMuc2hh
ZG93Um9vdChpbWFnZSkuY2hpbGRFbGVtZW50Q291bnQgaXMgMgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1jcmVhdGlvbi1pcy1p
ZGVtcG90ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2ltYWdlLW92ZXJsYXktY3JlYXRpb24taXMtaWRlbXBvdGVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2
Y2NkZmI2MzNlOWIyNGU0M2YwNGMzZjk4ZmYzMDJmNTNmZGI5MjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXkt
Y3JlYXRpb24taXMtaWRlbXBvdGVudC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAu
cG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewor
ICAgIGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVy
bGF5KGltYWdlLCBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAxKSwKKyAgICAgICAgICAgICAgICBjaGls
ZHJlbjogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0IDogIkhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAgICAgICB0b3BSaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfQor
ICAgICAgICBdKTsKKyAgICB9CisgICAgc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGlt
YWdlKS5jaGlsZEVsZW1lbnRDb3VudCIsICIyIik7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13
aXRoLXplcm8tZm9udC1zaXplLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1hZ2Utd2l0aC16
ZXJvLWZvbnQtc2l6ZS1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhY2ExYjMy
ZGJjYzU3NThkYmE2ZjE4MzA5ZWU5M2FlNTJkM2YwZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktaW4taW1h
Z2Utd2l0aC16ZXJvLWZvbnQtc2l6ZS1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEs
MTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7Cisg
ICAgZm9udC1zaXplOiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9
Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LWluLWltYWdlLXdpdGgtemVy
by1mb250LXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRp
b24vaW1hZ2Utb3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDE0YjA1NjQ5OTY4MTRkZjM4NWQwYjhlZTIyMmE5OTg5ZGI1NTAxNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW1hZ2Ut
b3ZlcmxheS1pbi1pbWFnZS13aXRoLXplcm8tZm9udC1zaXplLmh0bWwKQEAgLTAsMCArMSwzNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsKKyAgICBm
b250LXNpemU6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4v
cmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBb
CisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjUsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEs
IDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwg
MSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dCA6ICJIZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIHRv
cFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAg
ICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfQorICAgIF0pOworICAgIGlu
dGVybmFscy5zaGFkb3dSb290KGltYWdlKS5nZXRFbGVtZW50QnlJZCgiaW1hZ2Utb3ZlcmxheSIp
LnN0eWxlLmNvbG9yID0gImJsYWNrIjsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0
eWxlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25p
dGlvbi9pbWFnZS1vdmVybGF5LXdpdGgtc2VsZWN0aW9uLXN0eWxlcy1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVhNTI0NTYwOTk2NGFiYzk0ZDc4NmU4MDhhNTU4OGFlZTRiZjc4NWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lt
YWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9CisK
Kzo6c2VsZWN0aW9uIHsKKyAgICBjb2xvcjogcmVkOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8
c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBjb25zdCBpbWFn
ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxs
SW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAg
ICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAg
ICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSks
CisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LCAwLjUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgIH0KKyAg
ICBdKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5z
aGFkb3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOwor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24tc3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2ltYWdlLW92ZXJsYXktd2l0aC1zZWxlY3Rpb24t
c3R5bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU5NTJiNWNiMzZmMjBhYTM1ZWJlMGE0Y2NmYTUxN2E3
NDY1YTEyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQt
cmVjb2duaXRpb24vaW1hZ2Utb3ZlcmxheS13aXRoLXNlbGVjdGlvbi1zdHlsZXMuaHRtbApAQCAt
MCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citp
bWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvZ3Jl
ZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCAoKSA9PiB7CisgICAgY29uc3QgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7
CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4
dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxl
Y3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3Rvcigi
LmltYWdlLW92ZXJsYXktdGV4dCIpKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWlu
LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4
dC1yZWNvZ25pdGlvbi9pb3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJs
YXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxMWU0YzczMjc4Yzc1ZTU2MDdhOTFkNDE3ZGYw
ODJmOGZkMWM0OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90
ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHNlbGVjdGlvblJlY3RzQWZ0
ZXJTZWxlY3RpbmdBbGwubGVuZ3RoIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL2lvcy9jb2FsZXNjZS1zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Ut
b3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9p
b3MvY29hbGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNDU2MmI2MjBiM2Q3NTc2NTRhNDZmYjVjMjY5MjAwOGEyYWRmMjc4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvY29h
bGVzY2Utc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDUz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5LCBodG1s
IHsKKyAgICBtYXJnaW46IDA7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlt
ZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0
PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3lu
YyAoKSA9PiB7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiaW1nIiksIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4zKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC4zLCAwLjEpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBu
ZXcgRE9NUG9pbnRSZWFkT25seSgwLjQsIDAuMiksCisgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjQpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiQUIiLAorICAg
ICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4xLCAwLjMp
LAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
MiwgMC4yKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjMsIDAuMyksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgwLjIsIDAuNCksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiQ0QiLAorICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjIpLAorICAgICAg
ICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC4xKSwK
KyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjQsIDAuMiksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjMsIDAuMyksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9CisgICAgXSk7CisKKyAgICBhd2FpdCBVSUhlbHBlci5sb25nUHJlc3NBdFBvaW50KDgw
LCAxMjApOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwor
ICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKKyAgICBhd2FpdCBVSUhlbHBl
ci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKyAgICBzZWxlY3Rpb25SZWN0c0FmdGVyU2Vs
ZWN0aW5nQWxsID0gYXdhaXQgVUlIZWxwZXIuZ2V0VUlTZWxlY3Rpb25WaWV3UmVjdHMoKTsKKyAg
ICBzaG91bGRCZSgic2VsZWN0aW9uUmVjdHNBZnRlclNlbGVjdGluZ0FsbC5sZW5ndGgiLCAiMSIp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9yZXNlbGVjdC13b3JkLWluLWltYWdlLW92ZXJs
YXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pb3MvcmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZGUxYTcyYjIzNzNiYTZjY2FlMGVkZmVjMjU2MzkzOGMxNjk5OGY4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3MvcmVz
ZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K1BBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDEKK1BBU1MgRGlzbWlzc2VkIHNlbGVjdGlv
bgorUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zl
cmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mv
cmVzZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg1MDJjZjQ1
NTZmODYyNjUzZmZlYWY2YTc3YmZhMmUwMDE3NDA0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Jlc2VsZWN0LXdvcmQtaW4t
aW1hZ2Utb3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNj
cmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFz
eW5jICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3ZlcmxheShpbWFnZSwgWworICAgICAgICB7
CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4
dCA6ICJmb28iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgXSwKKyAgICAgICAgfQorICAgIF0pOworICAgIGF3YWl0IFVJSGVscGVyLmxvbmdQcmVz
c0F0UG9pbnQoMjAwLCAxMDApOworICAgIHNlbGVjdGlvblJlY3RzID0gYXdhaXQgVUlIZWxwZXIu
d2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgc2hvdWxkQmUoInNlbGVjdGlvblJlY3Rz
Lmxlbmd0aCIsICIxIik7CisKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDIwMCwgMzAw
KTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9EaXNhcHBlYXIoKTsKKyAg
ICB0ZXN0UGFzc2VkKCJEaXNtaXNzZWQgc2VsZWN0aW9uIik7CisKKyAgICBhd2FpdCBVSUhlbHBl
ci5sb25nUHJlc3NBdFBvaW50KDIwMCwgMTAwKTsKKyAgICBzZWxlY3Rpb25SZWN0cyA9IGF3YWl0
IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOworICAgIHNob3VsZEJlKCJzZWxl
Y3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3Nl
bGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Utb3Zlcmxh
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQxYWE0MmY2ZTY5MjQzYWI3NDEyYzA4YzM2Nzk2
YzI2MTU2ZTNiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13
b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0LXdvcmQtaW4taW1hZ2Ut
b3ZlcmxheS1pbnNpZGUtbGluay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQxYWE0MmY2ZTY5
MjQzYWI3NDEyYzA4YzM2Nzk2YzI2MTU2ZTNiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdl
LW92ZXJsYXktaW5zaWRlLWxpbmstZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
ZWxlY3Rpb25SZWN0cy5sZW5ndGggaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRl
LWxpbmsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9z
L3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXktaW5zaWRlLWxpbmsuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mOGY0NmM5ZDU5NDI4NjVmZTYwODhjNWQ1Nzc5ZWY0MjNiMTZkZjAwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0
LXdvcmQtaW4taW1hZ2Utb3ZlcmxheS1pbnNpZGUtbGluay5odG1sCkBAIC0wLDAgKzEsNTAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgeworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKworYSB7
CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo1NDMyMSIgb25jbGljaz0iZXZlbnQucHJldmVu
dERlZmF1bHQoKSI+CisgICAgPGltZyBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAw
LnBuZyI+PC9pbWc+Cis8L2E+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CithZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVy
bGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDEsIDAuMjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDAuMjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAg
ICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAg
ICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC4yNSksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjI1
KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9CisgICAgXSk7
CisgICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDUwKTsKKyAgICBzZWxl
Y3Rpb25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwor
ICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0cy5sZW5ndGgiLCAiMSIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJl
Y29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Qtd29yZC1pbi1pbWFn
ZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE2MjM3Y2M4NWQxMjRlZDYxMTYyY2E3OTM4NDk5
YjUzNTRjOWNmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdC13b3JkLWluLWltYWdlLW92ZXJsYXkuaHRtbApAQCAt
MCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6
IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgbGV0IGlt
YWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3Rh
bGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcg
RE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAg
ICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41
KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDAsIDAuNSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAu
NSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEp
LAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAor
ICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgIHRleHQgOiAid29ybGQiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAg
ICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfQorICAgIF0pOworCisgICAgYXdhaXQgVUlI
ZWxwZXIubG9uZ1ByZXNzQXRQb2ludCgyMDAsIDMwMCk7CisgICAgc2VsZWN0aW9uUmVjdHMgPSBh
d2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKKyAgICBzaG91bGRCZSgi
c2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mv
c2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWlt
YWdlLW92ZXJsYXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MmQ2NGMxZmUwNTU2ODgxNzRi
NTZkNmMwOTYxNGYxYjhhYzEyYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL2lvcy9zZWxlY3Rpb24tcmVjdHMtaW4taW1hZ2Utb3Zl
cmxheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIGluaXRpYWxTZWxlY3Rpb25S
ZWN0cy5sZW5ndGggaXMgMQorUEFTUyBzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxsLmxl
bmd0aCBpcyA0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9pb3Mvc2VsZWN0aW9uLXJlY3RzLWluLWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFn
ZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ3YjUzNGZmMGQzZGZiNTkzZmIwZTA5ZDcyNTI4
NGUwMmUyZDQyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Rl
eHQtcmVjb2duaXRpb24vaW9zL3NlbGVjdGlvbi1yZWN0cy1pbi1pbWFnZS1vdmVybGF5Lmh0bWwK
QEAgLTAsMCArMSw5NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBs
ZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgoranNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAg
bGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxz
Lmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9w
TGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMSwgMC4yNSksCisgICAgICAgICAgICB0b3BS
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMjUsIDAuMSksCisgICAgICAgICAgICBib3R0
b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMzUsIDAuMiksCisgICAgICAgICAgICBi
b3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4yLCAwLjM1KSwKKyAgICAgICAgICAg
IGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0
IDogIm9uZSIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjEsIDAuMjUpLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Q
b2ludFJlYWRPbmx5KDAuMjUsIDAuMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC4zNSwgMC4yKSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMiwgMC4zNSksCisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuMywgMC40NSksCisgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNDUsIDAuMyksCisgICAgICAgICAg
ICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNTUsIDAuNCksCisgICAgICAg
ICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC40LCAwLjU1KSwKKyAgICAg
ICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICB0ZXh0IDogInR3byIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLjMsIDAuNDUpLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNDUsIDAuMyksCisgICAgICAgICAgICAgICAgICAgIGJvdHRv
bVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41NSwgMC40KSwKKyAgICAgICAgICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNCwgMC41NSksCisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC42NSksCisgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNjUsIDAuNSksCisgICAg
ICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNzUsIDAuNiksCisg
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42LCAwLjc1KSwK
KyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICB0ZXh0IDogInRocmVlIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC42NSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42NSwgMC41KSwKKyAgICAgICAgICAgICAgICAg
ICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjc1LCAwLjYpLAorICAgICAg
ICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC42LCAwLjc1
KSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC43LCAwLjg1
KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC44NSwgMC43
KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC45NSwg
MC44KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjgs
IDAuOTUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIHRleHQgOiAiZm91ciIsCisgICAgICAgICAgICAgICAgICAgIHRvcExl
ZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjcsIDAuODUpLAorICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuODUsIDAuNyksCisgICAgICAgICAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC45NSwgMC44KSwK
KyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAu
OCwgMC45NSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgfQor
ICAgIF0pOworCisgICAgYXdhaXQgVUlIZWxwZXIubG9uZ1ByZXNzQXRQb2ludCg5MCwgOTApOwor
ICAgIGluaXRpYWxTZWxlY3Rpb25SZWN0cyA9IGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rp
b25Ub0FwcGVhcigpOworICAgIHNob3VsZEJlKCJpbml0aWFsU2VsZWN0aW9uUmVjdHMubGVuZ3Ro
IiwgIjEiKTsKKworICAgIHRlc3RSdW5uZXIuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOworICAg
IGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgIHNlbGVjdGlv
blJlY3RzQWZ0ZXJTZWxlY3RpbmdBbGwgPSBhd2FpdCBVSUhlbHBlci5nZXRVSVNlbGVjdGlvblZp
ZXdSZWN0cygpOworICAgIHNob3VsZEJlKCJzZWxlY3Rpb25SZWN0c0FmdGVyU2VsZWN0aW5nQWxs
Lmxlbmd0aCIsICI0Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1v
dmVybGF5LXRleHQtd2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvY29weS1pbWFnZS1vdmVybGF5LXRleHQt
d2l0aC1jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMjM0ZWMxYWE0NzA5
MzAyN2FkNWViYjY2MDA3NmJmNmQ5MTg4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4
dC13aXRoLWNvbnRleHQtbWVudS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIGVk
aXRvci50ZXh0Q29udGVudCBpcyAiZm9vYmFyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2NvcHktaW1hZ2Utb3ZlcmxheS10ZXh0LXdpdGgtY29u
dGV4dC1tZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9u
L21hYy9jb3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiMWZkODFlMjNhMWUyM2NkZjMxMDJlZTM4Nzk4YzEzMjNmMzQ4ZDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9j
b3B5LWltYWdlLW92ZXJsYXktdGV4dC13aXRoLWNvbnRleHQtbWVudS5odG1sCkBAIC0wLDAgKzEs
NTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcgewor
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKwor
ZGl2W2NvbnRlbnRlZGl0YWJsZV0geworICAgIGJvcmRlcjogMXB4IHNvbGlkIHRvbWF0bzsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3Jl
ZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPGRpdiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Cis8c2Ny
aXB0PgorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdl
T3ZlcmxheShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJmb29iYXIiLAorICAgICAgICAgICAgICAg
ICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAg
ICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAg
ICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAu
NSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7
CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMTUwKTsKKworICAgIGZvciAobGV0
IGl0ZW0gb2YgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKCkpIHsKKyAgICAgICAgaWYgKGl0ZW0u
dGl0bGUgPT09ICJDb3B5IikKKyAgICAgICAgICAgIGl0ZW0uY2xpY2soKTsKKyAgICB9CisKKyAg
ICBlZGl0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXZbY29udGVudGVkaXRhYmxlXSIp
OworICAgIGVkaXRvci5mb2N1cygpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIp
OworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAiZm9v
YmFyIik7CisgICAgZWRpdG9yLnJlbW92ZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlz
YWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNh
Ymxlcy1hcHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4
YzBlN2IzNzFkYmMxYWVmODI3ODUzNmU2ZDIwZWVlM2VlN2IyNTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVy
bGF5LXRleHQtZGlzYWJsZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1BBU1MgZm91bmRUaXRsZTEgaXMgdHJ1ZQorUEFTUyBmb3VuZFRpdGxl
MiBpcyB0cnVlCitQQVNTIFNlbGVjdGVkIGltYWdlIG92ZXJsYXkKK1BBU1MgZm91bmRUaXRsZTEg
aXMgZmFsc2UKK1BBU1MgZm91bmRUaXRsZTIgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJs
ZXMtYXBwLWhpZ2hsaWdodC1tZW51LWl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy90ZXh0LXJlY29nbml0aW9uL21hYy9pbWFnZS1vdmVybGF5LXRleHQtZGlzYWJsZXMtYXBwLWhp
Z2hsaWdodC1tZW51LWl0ZW1zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJiYWI1OTg0ZjM4ODI0NTI3OTFk
MDhiOTJiZDdhOTY1Yjk0NDQ3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL2ltYWdlLW92ZXJsYXktdGV4dC1kaXNhYmxlcy1h
cHAtaGlnaGxpZ2h0LW1lbnUtaXRlbXMuaHRtbApAQCAtMCwwICsxLDc3IEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBhcHBIaWdobGlnaHRzRW5hYmxlZD10cnVl
IF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHksIGh0bWwgeworICAgIG1hcmdp
bjogMDsKK30KKworcCB7CisgICAgZm9udC1zaXplOiAzMnB4OworICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHA+SGVsbG8gd29ybGQgdGhpcyBp
cyBhIHRlc3QuPC9wPgorPC9ib2R5PgorPHNjcmlwdD4KK3ZhciBmb3VuZFRpdGxlMTsKK3ZhciBm
b3VuZFRpdGxlMjsKKworZnVuY3Rpb24gY2hlY2tGb3JBcHBIaWdobGlnaHRDb250ZXh0TWVudUl0
ZW1zKCkgeworICAgIGZvdW5kVGl0bGUxID0gZmFsc2U7CisgICAgZm91bmRUaXRsZTIgPSBmYWxz
ZTsKKworICAgIGxldCBbdGl0bGUxLCB0aXRsZTJdID0gaW50ZXJuYWxzLmFwcEhpZ2hsaWdodENv
bnRleHRNZW51SXRlbVRpdGxlczsKKyAgICBmb3IgKGxldCBpdGVtIG9mIGV2ZW50U2VuZGVyLmNv
bnRleHRDbGljaygpKSB7CisgICAgICAgIGlmIChpdGVtLnRpdGxlID09PSB0aXRsZTEpCisgICAg
ICAgICAgICBmb3VuZFRpdGxlMSA9IHRydWU7CisKKyAgICAgICAgaWYgKGl0ZW0udGl0bGUgPT09
IHRpdGxlMikKKyAgICAgICAgICAgIGZvdW5kVGl0bGUyID0gdHJ1ZTsKKyAgICB9Cit9CisKK2Fk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IHRleHQgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJwIik7CisgICAgbGV0IHRleHRSZWN0ID0gdGV4dC5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAg
IHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAgICAg
Y2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQg
OiAiZm9vYmFyIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxD
aGlsZHJlbih0ZXh0KTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0ZXh0UmVjdC5sZWZ0
ICsgdGV4dFJlY3Qud2lkdGggLyAyLCB0ZXh0UmVjdC50b3AgKyB0ZXh0UmVjdC5oZWlnaHQgLyAy
KTsKKyAgICBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRlbXMoKTsKKyAgICBzaG91
bGRCZVRydWUoImZvdW5kVGl0bGUxIik7CisgICAgc2hvdWxkQmVUcnVlKCJmb3VuZFRpdGxlMiIp
OworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRv
d1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoImRpdiNpbWFnZS1vdmVybGF5IikpOworICAgIHRl
c3RQYXNzZWQoIlNlbGVjdGVkIGltYWdlIG92ZXJsYXkiKQorICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDIwMCwgMjAwKTsKKyAgICBjaGVja0ZvckFwcEhpZ2hsaWdodENvbnRleHRNZW51SXRl
bXMoKTsKKyAgICBzaG91bGRCZUZhbHNlKCJmb3VuZFRpdGxlMSIpOworICAgIHNob3VsZEJlRmFs
c2UoImZvdW5kVGl0bGUyIik7CisKKyAgICB0ZXh0LnJlbW92ZSgpOworfSk7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3Zlcmxh
eS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS1pbi1saW5r
LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNlNWVlZWRiZjFiNDM1
Zjk2YzNhMjBiZjgxNDAxYWVlNDMzMTk4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LWlu
LWxpbmstd2l0aC1tb3VzZS1kcmFnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1h
Z2Utb3ZlcmxheS1pbi1saW5rLXdpdGgtbW91c2UtZHJhZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGlu
ay13aXRoLW1vdXNlLWRyYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTRlZGM4OTA0YWExN2I4ODc4NWIy
Nzg3YzQ0YTczOTE3MTczNjc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktaW4tbGluay13
aXRoLW1vdXNlLWRyYWcuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjU0MzIxIj4KKyAgICA8aW1nIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYT4KKzxzY3JpcHQ+CithZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdl
LCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25s
eSgwLCAwLjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAx
KSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAg
Ym90dG9tUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAg
ICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisgICAgaW1hZ2Uu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBldmVudCA9PiB7CisgICAgICAgIHRlc3RGYWlsZWQo
Ik9ic2VydmVkIGNsaWNrLiIpOworICAgIH0pOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oNTAsIDMwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oMzUwLCAzMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30p
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9t
YWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTItZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVm
N2YzNjNkMjk2NDhhZTg4MDE2NjFkYTU5MTA5MDM3NWM1YWY2YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFn
ZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy0yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2MSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0
MDAucG5nIj48L2ltZz4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4g
eworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGlu
dGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwKSwKKyAgICAgICAgICAgIHRv
cFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICBib3R0b21S
aWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21M
ZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIGNoaWxkcmVu
OiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxv
d29ybGQxIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRP
bmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuNSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMiIs
CisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUs
IDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5
KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
XQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDEpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG93b3JsZDMiLAorICAgICAgICAg
ICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMC41LCAwLjUpLAorICAg
ICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSks
CisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHko
MSwgMSksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFk
T25seSgwLjUsIDEpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fQorICAgIF0pOworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJu
YWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2VsZWN0b3IoImRpdiNpbWFnZS1vdmVybGF5Iikp
OworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13aXRoLW1vdXNlLWRyYWctMi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92
ZXJsYXktd2l0aC1tb3VzZS1kcmFnLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmZlY2UzNDYyNDIxZTk0
ZGNlZGFlODJmZjk2OTFhMjc4YjEyNjk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0
aC1tb3VzZS1kcmFnLTIuaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxp
bWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlw
dD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgaW50ZXJuYWxzLmluc3Rh
bGxJbWFnZU92ZXJsYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIiksIFsKKyAgICAgICAg
eworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAg
ICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAg
ICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAg
ICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRl
eHQgOiAiaGVsbG93b3JsZDEiLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERP
TVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMC41LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmln
aHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICAgICAgICAg
IGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhl
bGxvd29ybGQyIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDAuNSwgMCksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMCksCisgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3
IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVm
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMC41KSwKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQg
OiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDAuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICBib3R0b21SaWdodCA6
IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsb3dvcmxkMyIs
CisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUs
IDAuNSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMSwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAuNSwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
XQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwg
NTApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDM1MCwgMzUwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3Nl
bGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2U1ZWVlZGJmMWI0MzVmOTZjM2EyMGJmODE0MDFhZWU0
MzMxOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92ZXJsYXktd2l0aC1tb3VzZS1kcmFnLWRvZXMt
bm90LWZpcmUtY2xpY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVy
bGF5LXdpdGgtbW91c2UtZHJhZy1kb2VzLW5vdC1maXJlLWNsaWNrLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Utb3ZlcmxheS13
aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExODcz
Yzk4MTkyMzIzYzMxMTAzMjBjYmQzZWViZThmMGYzMmJhMjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZG9lcy1ub3QtZmlyZS1jbGljay5odG1sCkBAIC0wLDAg
KzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbWcg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3Jl
ZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7
CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgewor
ICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDAuNSksCisgICAg
ICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAg
ICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAg
ICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAsIDEpLAorICAgICAgICAgICAg
Y2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQg
OiAiaGVsbG8iLAorICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgxLCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0
IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMSksCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIGV2ZW50ID0+IHsKKyAgICAgICAgdGVzdEZhaWxlZCgiT2JzZXJ2ZWQgY2xpY2su
Iik7CisgICAgfSk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgMzAwKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygz
NTAsIDMwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5
LXdpdGgtbW91c2UtZHJhZy1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZjRj
Nzc0NTAyODM2YzFkM2I3NzYxYjRjNzE2MjYzNWQ5YTY2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3QtaW1hZ2Ut
b3ZlcmxheS13aXRoLW1vdXNlLWRyYWctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApAQCAtMCwwICsx
LDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgewor
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4t
NDAweDQwMC5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2du
aXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgtbW91c2UtZHJhZy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LWltYWdlLW92
ZXJsYXktd2l0aC1tb3VzZS1kcmFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU0YzM2MDZhZDQ5Y2FiNDY1
NGY4OGFlOWVmMTRhODNhMmE5ZWZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1pbWFnZS1vdmVybGF5LXdpdGgt
bW91c2UtZHJhZy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KK2ltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRv
cDogMDsKKyAgICBsZWZ0OiAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0Pgor
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IHsKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbnRlcm5hbHMuaW5zdGFsbEltYWdlT3Zlcmxh
eShpbWFnZSwgWworICAgICAgICB7CisgICAgICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMCwgMC41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9u
bHkoMCwgMSksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAgIHRv
cExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAg
ICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMSksCisgICAgICAg
ICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAxKSwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdKTsKKworICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCAzMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzAwKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdl
LW92ZXJsYXktZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVj
b2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTg5ODhiYjgwOTU2ZGQ2MjQ1MzhkOTY4OGEzZGNmNDJl
NDhkMTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1y
ZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2JvZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30KKworaW1nIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAg
d2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2lt
Zz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qt
cm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1p
bWFnZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2NzdkMjAyY2ZjMWQ4YmRlNmJhZWQxNmMx
N2Y5MTI5ODE5MTJlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92
ZXJsYXkuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CisuYmFjayB7CisgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOworICAg
IGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcp
OworfQorCisuZnJvbnQgeworICAgIG9wYWNpdHk6IDA7Cit9CisKK2JvZHksIGh0bWwgeworICAg
IG1hcmdpbjogMDsKK30KKworLmZyb250LCAuYmFjayB7CisgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWln
aHQ6IDQwMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iYmFj
ayI+PC9kaXY+Cis8aW1nIGNsYXNzPSJmcm9udCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4t
NDAweDQwMC5wbmciPjwvaW1nPgorPGRpdiBjbGFzcz0iYmFyIj48L2Rpdj4KKzxzY3JpcHQ+Cith
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGxldCBpbWFnZSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5
KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgwLjUsIDEuNSksCisgICAgICAgICAgICB0b3BSaWdodCA6IG5ldyBET01Qb2ludFJl
YWRPbmx5KDEuNSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMiwgMSksCisgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMSwgMiksCisgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxsbyIsCisgICAgICAgICAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEuNSksCisgICAgICAgICAgICAg
ICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMS41LCAwLjUpLAorICAgICAg
ICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDIsIDEpLAor
ICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwg
MiksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSk7
CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hhZG93
Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKK30pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMv
c2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVj
dC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzdmNGM3NzQ1MDI4MzZjMWQzYjc3NjFiNGM3MTYyNjM1ZDlhNjZiNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24v
bWFjL3NlbGVjdC13b3JkLWluLWRyYWdnYWJsZS1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLW1pc21h
dGNoLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgoraW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOwor
ICAgIGxlZnQ6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi1kcmFnZ2FibGUtaW1h
Z2Utb3ZlcmxheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlv
bi9tYWMvc2VsZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43ZTNhMDExZDM4YzQxNWYxYzI3YzU3ZmIzNzQ0MTFkNTc4MWI2ZDRlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2Vs
ZWN0LXdvcmQtaW4tZHJhZ2dhYmxlLWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDM5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbWcgZHJhZ2dhYmxlPSJ0cnVlIiBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9ncmVlbi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8c2NyaXB0PgorYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsICgpID0+IHsKKyAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImltZyIpOworICAgIGludGVybmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAw
KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisg
ICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisg
ICAgICAgICAgICBib3R0b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMC41KSwKKyAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgICAgICAgICB0b3BSaWdodCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDEsIDApLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdo
dCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEsIDAuNSksCisgICAgICAgICAgICAgICAgICAgIGJv
dHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0pOworCisgICAgZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4oaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpLnF1ZXJ5U2Vs
ZWN0b3IoIi5pbWFnZS1vdmVybGF5LXRleHQiKSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFjL3NlbGVjdC13b3JkLWluLXRyYW5zcGFy
ZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmNk
YWI5MGNkYTA2Y2I0YjVhYTA0NDFiYjJiOTM0OGM2OGY0NjA0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvdGV4dC1yZWNvZ25pdGlvbi9tYWMvc2VsZWN0LXdvcmQt
aW4tdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0w
LDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Jv
ZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30KKworZGl2IHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAg
IGhlaWdodDogNDAwcHg7CisgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOworICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybCguLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcpOworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy90ZXh0LXJlY29nbml0aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1p
bWFnZS1vdmVybGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy90ZXh0LXJlY29nbml0
aW9uL21hYy9zZWxlY3Qtd29yZC1pbi10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTIxMGQyZDk3Y2YwYjc4OWFhNDc2YWU0NDMyZjAzODQ5YWEzMTdjZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3RleHQtcmVjb2duaXRpb24vbWFj
L3NlbGVjdC13b3JkLWluLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsx
LDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuYmFjayB7
CisgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVy
bCguLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcpOworfQorCisuZnJvbnQgeworICAg
IG9wYWNpdHk6IDA7Cit9CisKK2JvZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30KKworLmZy
b250LCAuYmFjayB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBs
ZWZ0OiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iYmFjayI+PC9kaXY+Cis8aW1nIGNsYXNz
PSJmcm9udCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgor
PHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdl
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJ
bWFnZU92ZXJsYXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5l
dyBET01Qb2ludFJlYWRPbmx5KDAsIDApLAorICAgICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9N
UG9pbnRSZWFkT25seSgxLCAwKSwKKyAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBv
aW50UmVhZE9ubHkoMSwgMC41KSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgwLCAwLjUpLAorICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRleHQgOiAiaGVsbG8iLAorICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMCwgMCksCisgICAgICAgICAg
ICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMCksCisgICAgICAg
ICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMC41KSwK
KyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAs
IDAuNSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAg
XSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihpbnRlcm5hbHMuc2hh
ZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdlLW92ZXJsYXktdGV4dCIpKTsKK30p
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQo=
</data>
<flag name="commit-queue"
          id="452394"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>