<?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>276846</bug_id>
          
          <creation_ts>2024-07-19 22:26:14 -0700</creation_ts>
          <short_desc>REGRESSION(281119@main): JS3 iOS 2% perf regression</short_desc>
          <delta_ts>2024-07-19 22:30:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>276788</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2047326</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-07-19 22:26:14 -0700</bug_when>
    <thetext>https://commits.webkit.org/281119@main introduced a regression:
JS3 iOS 2% perf regression

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2047328</commentid>
    <comment_count>1</comment_count>
      <attachid>471918</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-07-19 22:26:23 -0700</bug_when>
    <thetext>Created attachment 471918
REVERT of 281119@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2047329</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-07-19 22:29:34 -0700</bug_when>
    <thetext>Committed 281163@main (2e9217544448): &lt;https://commits.webkit.org/281163@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 471918.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2047330</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-07-19 22:30:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/132136419&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>471918</attachid>
            <date>2024-07-19 22:26:23 -0700</date>
            <delta_ts>2024-07-19 22:29:34 -0700</delta_ts>
            <desc>REVERT of 281119@main</desc>
            <filename>bug-276846-20240720052622.patch</filename>
            <type>text/plain</type>
            <size>103789</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSAzMzRjZTU4NDc5ODJhOTgxMGMwMzkxNzdkZDhjY2EwYjFiYmQ1YzA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBTYXQsIDIwIEp1bCAyMDI0IDA1OjI2OjE5ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI4MTExOUBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI3Njg0NgoKSlMzIGlPUyAyJSBwZXJmIHJlZ3Jlc3Npb24KClJl
dmVydGVkIGNoYW5nZXNldDoKCiJbSlNDXSBJbnRyb2R1Y2UgVGFpbnRlZEJ5V2l0aFNjb3BlTGV4
aWNhbGx5U2NvcGVkRmVhdHVyZSIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3Njc4OApodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8yODExMTlAbWFpbgotLS0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwICAgICB8ICAyICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5jcHAgfCAgNCArLQogLi4uL2J1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgICB8ICAyICstCiAuLi4vYnl0ZWNv
ZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwICAgfCAgNiArLQogLi4uL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgICAgICAgIHwgMTYgKy0tLS0KIC4uLi9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCAgICAgICAgICB8ICAyIC0KIC4uLi9kZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHAgICAgICAgICAgICB8ICA0ICstCiAuLi4vZGVidWdnZXIvRGVi
dWdnZXJQYXJzZURhdGEuY3BwICAgICAgICAgICAgfCAgOCArLS0KIC4uLi9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaCAgICAgICAgICAgfCAgOCArLS0KIC4uLi9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAgICAgICAgICAgICB8ICAyICstCiAuLi4vZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwICAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwIHwgIDQgKy0KIC4uLi9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAgICAgICAgICAgICAgICB8ICA5ICstLQogLi4uL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmggIHwgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbC5jcHAgICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwICAgfCAyNiArLS0tLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmggICAgIHwgMTggLS0tLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuY3BwICAgICAgIHwgMTUgKystLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmggICAgICAgICB8IDIyICsrKystLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyTW9kZXMuaCAgICB8ICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1NvdXJjZUNvZGVLZXkuaCAgfCAyMCArKystLS0tCiAuLi4vcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyQ2FjaGVJdGVtLmggICAgICAgICAgfCAgNCAtLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29kZUNhY2hlLmNwcCAgIHwgNjAgKysrKysrKysrKy0tLS0tLS0tLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmggICAgIHwgMTYgKystLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwICB8IDE2ICsrLS0tCiAuLi4vcnVu
dGltZS9EaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAgICAgICAgICAgfCAxMSArKy0tCiAuLi4vcnVu
dGltZS9EaXJlY3RFdmFsRXhlY3V0YWJsZS5oICAgICAgICAgICAgfCAgNCArLQogLi4uL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuY3BwIHwgIDQgKy0KIC4uLi9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V2YWxFeGVjdXRhYmxlLmggICB8ICAyICstCiAuLi4vSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmggfCAgNCArLQogLi4uL3J1bnRpbWUvSW5k
aXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAgICAgICAgIHwgMTkgKysrLS0tCiAuLi4vcnVudGltZS9J
bmRpcmVjdEV2YWxFeGVjdXRhYmxlLmggICAgICAgICAgfCAgOCArLS0KIC4uLi9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCAgICAgICB8ICAzICstCiAuLi4vSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAgfCAgMiArLQogLi4uL3J1bnRpbWUvTW9kdWxl
UHJvZ3JhbUV4ZWN1dGFibGUuY3BwICAgICAgIHwgIDIgKy0KIC4uLi9ydW50aW1lL1Byb2dyYW1F
eGVjdXRhYmxlLmNwcCAgICAgICAgICAgICB8ICA1ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TY3JpcHRFeGVjdXRhYmxlLmggfCAgMiAtCiAuLi4vcnVudGltZS9TaGFkb3dSZWFsbVBy
b3RvdHlwZS5jcHAgICAgICAgICAgfCAgMyArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0pTRG9sbGFyVk0uY3BwICAgIHwgMjcgLS0tLS0tLS0tCiA0MiBmaWxlcyBjaGFuZ2VkLCAxMzgg
aW5zZXJ0aW9ucygrKSwgMjQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1NjcmlwdFJlZi5jcHAKaW5kZXggY2Y4ZWRiN2FiYjRhLi5hYjIzNzJjMDEyYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCkBAIC03NCw3ICs3NCw3IEBA
IHN0YXRpYyBib29sIHBhcnNlU2NyaXB0KFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNl
LCBQYXJzZXJFcnJvciYgZXJyb3IpCiB7CiAgICAgcmV0dXJuICEhcGFyc2VSb290Tm9kZTxQcm9n
cmFtTm9kZT4oCiAgICAgICAgIHZtLCBzb3VyY2UsIEltcGxlbWVudGF0aW9uVmlzaWJpbGl0eTo6
UHVibGljLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLAotICAgICAgICBOb0xleGlj
YWxseVNjb3BlZEZlYXR1cmVzLCBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWMsIFNvdXJjZVBh
cnNlTW9kZTo6UHJvZ3JhbU1vZGUsIGVycm9yKTsKKyAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2Rl
OjpOb3RTdHJpY3QsIEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3NpYywgU291cmNlUGFyc2VNb2Rl
OjpQcm9ncmFtTW9kZSwgZXJyb3IpOwogfQogCiBleHRlcm4gIkMiIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcAppbmRleCBlYzc1ZGQ1NjQ2MzcuLjdi
NGMwMjdhOWQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pT
Q0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250
ZXh0LmNwcApAQCAtOTgxLDExICs5ODEsMTEgQEAgSlNDQ2hlY2tTeW50YXhSZXN1bHQganNjX2Nv
bnRleHRfY2hlY2tfc3ludGF4KEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGMKICAg
ICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIEpTQ19DSEVDS19TWU5UQVhfTU9ERV9TQ1JJUFQ6
CiAgICAgICAgIHN1Y2Nlc3MgPSAhIUpTQzo6cGFyc2U8SlNDOjpQcm9ncmFtTm9kZT4odm0sIHNv
dXJjZSwgSlNDOjpJZGVudGlmaWVyKCksIEpTQzo6SW1wbGVtZW50YXRpb25WaXNpYmlsaXR5OjpQ
dWJsaWMsIEpTQzo6SlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwKLSAgICAgICAgICAg
IEpTQzo6Tm9MZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgSlNDOjpKU1BhcnNlclNjcmlwdE1vZGU6
OkNsYXNzaWMsIEpTQzo6U291cmNlUGFyc2VNb2RlOjpQcm9ncmFtTW9kZSwgSlNDOjpGdW5jdGlv
bk1vZGU6Ok5vbmUsIEpTQzo6U3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIGVycm9yKTsKKyAgICAg
ICAgICAgIEpTQzo6SlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3QsIEpTQzo6SlNQYXJzZXJT
Y3JpcHRNb2RlOjpDbGFzc2ljLCBKU0M6OlNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIEpT
Qzo6RnVuY3Rpb25Nb2RlOjpOb25lLCBKU0M6OlN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBlcnJv
cik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSlNDX0NIRUNLX1NZTlRBWF9NT0RFX01PRFVM
RToKICAgICAgICAgc3VjY2VzcyA9ICEhSlNDOjpwYXJzZTxKU0M6Ok1vZHVsZVByb2dyYW1Ob2Rl
Pih2bSwgc291cmNlLCBKU0M6OklkZW50aWZpZXIoKSwgSlNDOjpJbXBsZW1lbnRhdGlvblZpc2li
aWxpdHk6OlB1YmxpYywgSlNDOjpKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLAotICAg
ICAgICAgICAgSlNDOjpTdHJpY3RNb2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZSwgSlNDOjpKU1Bh
cnNlclNjcmlwdE1vZGU6Ok1vZHVsZSwgSlNDOjpTb3VyY2VQYXJzZU1vZGU6Ok1vZHVsZUFuYWx5
emVNb2RlLCBKU0M6OkZ1bmN0aW9uTW9kZTo6Tm9uZSwgSlNDOjpTdXBlckJpbmRpbmc6Ok5vdE5l
ZWRlZCwgZXJyb3IpOworICAgICAgICAgICAgSlNDOjpKU1BhcnNlclN0cmljdE1vZGU6OlN0cmlj
dCwgSlNDOjpKU1BhcnNlclNjcmlwdE1vZGU6Ok1vZHVsZSwgSlNDOjpTb3VyY2VQYXJzZU1vZGU6
Ok1vZHVsZUFuYWx5emVNb2RlLCBKU0M6OkZ1bmN0aW9uTW9kZTo6Tm9uZSwgSlNDOjpTdXBlckJp
bmRpbmc6Ok5vdE5lZWRlZCwgZXJyb3IpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5j
cHAKaW5kZXggMDYxNDM0ZDhlYjBjLi40NGM0MDg2YzgyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCkBAIC0yMjEs
NyArMjIxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxl
czo6Y3JlYXRlRXhlY3V0YWJsZShWTSYgdm0sIGNvbnN0IFMKICAgICAgICAgSlNQYXJzZXJCdWls
dGluTW9kZSBidWlsdGluTW9kZSA9IGlzQnVpbHRpbkRlZmF1bHRDbGFzc0NvbnN0cnVjdG9yID8g
SlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiA6IEpTUGFyc2VyQnVpbHRpbk1vZGU6OkJ1
aWx0aW47CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbSA9IHBh
cnNlUm9vdE5vZGU8UHJvZ3JhbU5vZGU+KAogICAgICAgICAgICAgdm0sIHNvdXJjZSwgaW1wbGVt
ZW50YXRpb25WaXNpYmlsaXR5LCBidWlsdGluTW9kZSwKLSAgICAgICAgICAgIE5vTGV4aWNhbGx5
U2NvcGVkRmVhdHVyZXMsIEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3NpYywgU291cmNlUGFyc2VN
b2RlOjpQcm9ncmFtTW9kZSwgZXJyb3IsCisgICAgICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6
Ok5vdFN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljLCBTb3VyY2VQYXJzZU1vZGU6
OlByb2dyYW1Nb2RlLCBlcnJvciwKICAgICAgICAgICAgIGNvbnN0cnVjdG9yS2luZCwgJnBvc2l0
aW9uQmVmb3JlTGFzdE5ld2xpbmVGcm9tUGFyc2VyKTsKIAogICAgICAgICBpZiAocHJvZ3JhbSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlz
dC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKaW5k
ZXggYjdhZjhmOGFlOTdhLi5mNzcxZDg4YjIyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgpAQCAtMjcwLDcgKzI3MCw3IEBAIG9wIDpjYWxs
X2RpcmVjdF9ldmFsLAogICAgICAgICBhcmd2OiB1bnNpZ25lZCwKICAgICAgICAgdGhpc1ZhbHVl
OiBWaXJ0dWFsUmVnaXN0ZXIsCiAgICAgICAgIHNjb3BlOiBWaXJ0dWFsUmVnaXN0ZXIsCi0gICAg
ICAgIGxleGljYWxseVNjb3BlZEZlYXR1cmVzOiB1bnNpZ25lZCwKKyAgICAgICAgZWNtYU1vZGU6
IEVDTUFNb2RlLAogICAgICAgICB2YWx1ZVByb2ZpbGU6IHVuc2lnbmVkLAogICAgIH0sCiAgICAg
bWV0YWRhdGE6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCmluZGV4IDc1ZWI3NjhkZDMzNS4u
NTIwMDdlYWM4ZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKQEAgLTUyLDExICs1Miwx
MiBAQCBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogZ2VuZXJhdGVVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKAogICAgIFVubGlua2VkRnVuY3Rpb25LaW5kIGZ1bmN0aW9uS2luZCwg
UGFyc2VyRXJyb3ImIGVycm9yLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKQogewogICAgIEpT
UGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUgPSBleGVjdXRhYmxlLT5pc0J1aWx0aW5GdW5j
dGlvbigpID8gSlNQYXJzZXJCdWlsdGluTW9kZTo6QnVpbHRpbiA6IEpTUGFyc2VyQnVpbHRpbk1v
ZGU6Ok5vdEJ1aWx0aW47CisgICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBleGVj
dXRhYmxlLT5pc0luU3RyaWN0Q29udGV4dCgpID8gSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3Qg
OiBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdDsKICAgICBKU1BhcnNlclNjcmlwdE1vZGUg
c2NyaXB0TW9kZSA9IGV4ZWN1dGFibGUtPnNjcmlwdE1vZGUoKTsKICAgICBBU1NFUlQoaXNGdW5j
dGlvblBhcnNlTW9kZShleGVjdXRhYmxlLT5wYXJzZU1vZGUoKSkpOwogICAgIGF1dG8qIGNsYXNz
RWxlbWVudERlZmluaXRpb25zID0gZXhlY3V0YWJsZS0+Y2xhc3NFbGVtZW50RGVmaW5pdGlvbnMo
KTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RnVuY3Rpb25Ob2RlPiBmdW5jdGlvbiA9IHBhcnNlPEZ1
bmN0aW9uTm9kZT4oCi0gICAgICAgIHZtLCBzb3VyY2UsIGV4ZWN1dGFibGUtPm5hbWUoKSwgZXhl
Y3V0YWJsZS0+aW1wbGVtZW50YXRpb25WaXNpYmlsaXR5KCksIGJ1aWx0aW5Nb2RlLCBleGVjdXRh
YmxlLT5sZXhpY2FsbHlTY29wZWRGZWF0dXJlcygpLCBzY3JpcHRNb2RlLCBleGVjdXRhYmxlLT5w
YXJzZU1vZGUoKSwgZXhlY3V0YWJsZS0+ZnVuY3Rpb25Nb2RlKCksIGV4ZWN1dGFibGUtPnN1cGVy
QmluZGluZygpLCBlcnJvciwgZXhlY3V0YWJsZS0+Y29uc3RydWN0b3JLaW5kKCksIGV4ZWN1dGFi
bGUtPmRlcml2ZWRDb250ZXh0VHlwZSgpLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsIG51bGxwdHIs
IGNsYXNzRWxlbWVudERlZmluaXRpb25zKTsKKyAgICAgICAgdm0sIHNvdXJjZSwgZXhlY3V0YWJs
ZS0+bmFtZSgpLCBleGVjdXRhYmxlLT5pbXBsZW1lbnRhdGlvblZpc2liaWxpdHkoKSwgYnVpbHRp
bk1vZGUsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGV4ZWN1dGFibGUtPnBhcnNlTW9kZSgpLCBl
eGVjdXRhYmxlLT5mdW5jdGlvbk1vZGUoKSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5kaW5nKCksIGVy
cm9yLCBleGVjdXRhYmxlLT5jb25zdHJ1Y3RvcktpbmQoKSwgZXhlY3V0YWJsZS0+ZGVyaXZlZENv
bnRleHRUeXBlKCksIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgbnVsbHB0ciwgY2xhc3NFbGVtZW50
RGVmaW5pdGlvbnMpOwogCiAgICAgaWYgKCFmdW5jdGlvbikgewogICAgICAgICBBU1NFUlQoZXJy
b3IuaXNWYWxpZCgpKTsKQEAgLTIwOSw5ICsyMTAsOCBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmZyb21HbG9iYWxDb2RlKAogICAgIFBh
cnNlckVycm9yIGVycm9yOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
b2RlQ2FjaGUqIGNvZGVDYWNoZSA9IHZtLmNvZGVDYWNoZSgpOwotICAgIExleGljYWxseVNjb3Bl
ZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxT
Y29wZUV4dGVuc2lvbigpID8gVGFpbnRlZEJ5V2l0aFNjb3BlTGV4aWNhbGx5U2NvcGVkRmVhdHVy
ZSA6IE5vTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXM7CiAgICAgT3B0aW9uU2V0PENvZGVHZW5lcmF0
aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlID0gZ2xvYmFsT2JqZWN0LT5kZWZhdWx0Q29kZUdl
bmVyYXRpb25Nb2RlKCk7Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBjb2RlQ2FjaGUtPmdldFVubGlua2VkR2xvYmFsRnVuY3Rpb25FeGVjdXRhYmxlKHZtLCBu
YW1lLCBzb3VyY2UsIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBjb2RlR2VuZXJhdGlvbk1vZGUs
IGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24sIGVycm9yKTsKKyAgICBV
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGNvZGVDYWNoZS0+Z2V0VW5s
aW5rZWRHbG9iYWxGdW5jdGlvbkV4ZWN1dGFibGUodm0sIG5hbWUsIHNvdXJjZSwgY29kZUdlbmVy
YXRpb25Nb2RlLCBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uLCBlcnJv
cik7CiAKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5oYXNEZWJ1Z2dlcigpKQogICAgICAgICBnbG9i
YWxPYmplY3QtPmRlYnVnZ2VyKCktPnNvdXJjZVBhcnNlZChnbG9iYWxPYmplY3QsIHNvdXJjZS5w
cm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CmluZGV4IDRkOWJhZjUwZDFmNC4uODUwMDQ4ZGRjYjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAt
MzY0MiwyMCArMzY0Miw2IEBAIEV4cGVjdGVkRnVuY3Rpb24gQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRFeHBlY3RlZEZ1bmN0aW9uU25pcHBldChSZWdpc3RlcklEKiBkc3QsCiAgICAgcmV0dXJuIGV4
cGVjdGVkRnVuY3Rpb247CiB9CiAKLUxleGljYWxseVNjb3BlZEZlYXR1cmVzIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjpjb21wdXRlRmVhdHVyZXNGb3JDYWxsRGlyZWN0RXZhbCgpCi17Ci0gICAgTGV4aWNh
bGx5U2NvcGVkRmVhdHVyZXMgZmVhdHVyZXMgPSBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcygpOwot
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gbV9sZXhpY2FsU2NvcGVTdGFjay5zaXplKCk7IGktLTsg
KSB7Ci0gICAgICAgIGlmIChtX2xleGljYWxTY29wZVN0YWNrW2ldLm1faXNXaXRoU2NvcGUpIHsK
LSAgICAgICAgICAgIGZlYXR1cmVzIHw9IFRhaW50ZWRCeVdpdGhTY29wZUxleGljYWxseVNjb3Bl
ZEZlYXR1cmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJl
dHVybiBmZWF0dXJlczsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgQ2FsbE9wPgogUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogZnVuYywgRXhwZWN0ZWRGdW5jdGlvbiBleHBlY3RlZEZ1bmN0aW9uLCBDYWxsQXJndW1lbnRz
JiBjYWxsQXJndW1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQsIERl
YnVnZ2FibGVDYWxsIGRlYnVnZ2FibGVDYWxsKQogewpAQCAtMzcxMCw3ICszNjk2LDcgQEAgUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKFJlZ2lzdGVySUQqIGRzdCwgUmVn
aXN0ZXJJRCogZnVuYywgRXhwZWMKICAgICBBU1NFUlQoZHN0KTsKICAgICBBU1NFUlQoZHN0ICE9
IGlnbm9yZWRSZXN1bHQoKSk7CiAgICAgaWYgY29uc3RleHByIChvcGNvZGVJRCA9PSBvcF9jYWxs
X2RpcmVjdF9ldmFsKQotICAgICAgICBDYWxsT3A6OmVtaXQodGhpcywgZHN0LCBmdW5jLCBjYWxs
QXJndW1lbnRzLmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCksIGNhbGxBcmd1bWVudHMuc3Rh
Y2tPZmZzZXQoKSwgdGhpc1JlZ2lzdGVyKCksIHNjb3BlUmVnaXN0ZXIoKSwgY29tcHV0ZUZlYXR1
cmVzRm9yQ2FsbERpcmVjdEV2YWwoKSwgbmV4dFZhbHVlUHJvZmlsZUluZGV4KCkpOworICAgICAg
ICBDYWxsT3A6OmVtaXQodGhpcywgZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLmFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzKCksIGNhbGxBcmd1bWVudHMuc3RhY2tPZmZzZXQoKSwgdGhpc1JlZ2lz
dGVyKCksIHNjb3BlUmVnaXN0ZXIoKSwgZWNtYU1vZGUoKSwgbmV4dFZhbHVlUHJvZmlsZUluZGV4
KCkpOwogICAgIGVsc2UgaWYgY29uc3RleHByIChvcGNvZGVJRCA9PSBvcF9jYWxsX2lnbm9yZV9y
ZXN1bHQpIHsKICAgICAgICAgQ2FsbE9wOjplbWl0KHRoaXMsIGZ1bmMsIGNhbGxBcmd1bWVudHMu
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSwgY2FsbEFyZ3VtZW50cy5zdGFja09mZnNldCgp
KTsKICAgICAgICAgaWYgKHNob3VsZEVtaXRUeXBlUHJvZmlsZXJIb29rcygpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CmluZGV4IGVkMWZmYWNiMGQxMC4uZDZkZmY3MDYwNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC0xMTQ1
LDggKzExNDUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLy8gZXhwZWN0ZWQgZnVuY3Rp
b25zIGhhdmUgaWRlbnRpY2FsIGJlaGF2aW9yIGZvciBib3RoIGNhbGwgYW5kIGNvbnN0cnVjdAog
ICAgICAgICAvLyAoaS5lLiAiT2JqZWN0KCkiIGlzIGlkZW50aWNhbCB0byAibmV3IE9iamVjdCgp
IikuCiAgICAgICAgIEV4cGVjdGVkRnVuY3Rpb24gZW1pdEV4cGVjdGVkRnVuY3Rpb25TbmlwcGV0
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgRXhwZWN0ZWRGdW5jdGlvbiwgQ2Fs
bEFyZ3VtZW50cyYsIExhYmVsJiBkb25lKTsKLQotICAgICAgICBMZXhpY2FsbHlTY29wZWRGZWF0
dXJlcyBjb21wdXRlRmVhdHVyZXNGb3JDYWxsRGlyZWN0RXZhbCgpOwogICAgICAgICAKICAgICAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2FsbE9wPgogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2Fs
bChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEV4cGVjdGVkRnVuY3Rpb24sIENh
bGxBcmd1bWVudHMmLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQsIERlYnVn
Z2FibGVDYWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJDYWxsRnJhbWUuY3BwCmluZGV4IGNlYzY4OGZhZDI2NC4uNTNjOWFlNzM3MjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFt
ZS5jcHAKQEAgLTI0OSw3ICsyNDksOCBAQCBKU1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjpldmFs
dWF0ZVdpdGhTY29wZUV4dGVuc2lvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgc2NyaQogICAgIFBy
aXZhdGVOYW1lRW52aXJvbm1lbnQgcHJpdmF0ZU5hbWVFbnZpcm9ubWVudDsKICAgICBKU1Njb3Bl
Ojpjb2xsZWN0Q2xvc3VyZVZhcmlhYmxlc1VuZGVyVERaKHNjb3BlKHZtKS0+anNTY29wZSgpLCB2
YXJpYWJsZXNVbmRlclREWiwgcHJpdmF0ZU5hbWVFbnZpcm9ubWVudCk7CiAKLSAgICBhdXRvKiBl
dmFsID0gRGlyZWN0RXZhbEV4ZWN1dGFibGU6OmNyZWF0ZShnbG9iYWxPYmplY3QsIG1ha2VTb3Vy
Y2Uoc2NyaXB0LCBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSksIFNvdXJjZVRhaW50
ZWRPcmlnaW46OlVudGFpbnRlZCksIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPmxleGlj
YWxseVNjb3BlZEZlYXR1cmVzKCksIGNvZGVCbG9jay0+dW5saW5rZWRDb2RlQmxvY2soKS0+ZGVy
aXZlZENvbnRleHRUeXBlKCksIGNvZGVCbG9jay0+dW5saW5rZWRDb2RlQmxvY2soKS0+bmVlZHND
bGFzc0ZpZWxkSW5pdGlhbGl6ZXIoKSwgY29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygpLT5w
cml2YXRlQnJhbmRSZXF1aXJlbWVudCgpLCBjb2RlQmxvY2stPnVubGlua2VkQ29kZUJsb2NrKCkt
PmlzQXJyb3dGdW5jdGlvbigpLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5pc0luc2lk
ZU9yZGluYXJ5RnVuY3Rpb24oKSwgZXZhbENvbnRleHRUeXBlLCAmdmFyaWFibGVzVW5kZXJURFos
ICZwcml2YXRlTmFtZUVudmlyb25tZW50KTsKKyAgICBFQ01BTW9kZSBlY21hTW9kZSA9IGNvZGVC
bG9jay0+b3duZXJFeGVjdXRhYmxlKCktPmlzSW5TdHJpY3RDb250ZXh0KCkgPyBFQ01BTW9kZTo6
c3RyaWN0KCkgOiBFQ01BTW9kZTo6c2xvcHB5KCk7CisgICAgYXV0byogZXZhbCA9IERpcmVjdEV2
YWxFeGVjdXRhYmxlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBtYWtlU291cmNlKHNjcmlwdCwgY2Fs
bEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pLCBTb3VyY2VUYWludGVkT3JpZ2luOjpVbnRh
aW50ZWQpLCBjb2RlQmxvY2stPnVubGlua2VkQ29kZUJsb2NrKCktPmRlcml2ZWRDb250ZXh0VHlw
ZSgpLCBjb2RlQmxvY2stPnVubGlua2VkQ29kZUJsb2NrKCktPm5lZWRzQ2xhc3NGaWVsZEluaXRp
YWxpemVyKCksIGNvZGVCbG9jay0+dW5saW5rZWRDb2RlQmxvY2soKS0+cHJpdmF0ZUJyYW5kUmVx
dWlyZW1lbnQoKSwgY29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygpLT5pc0Fycm93RnVuY3Rp
b24oKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+aXNJbnNpZGVPcmRpbmFyeUZ1bmN0
aW9uKCksIGV2YWxDb250ZXh0VHlwZSwgJnZhcmlhYmxlc1VuZGVyVERaLCAmcHJpdmF0ZU5hbWVF
bnZpcm9ubWVudCwgZWNtYU1vZGUpOwogICAgIGlmIChVTkxJS0VMWShjYXRjaFNjb3BlLmV4Y2Vw
dGlvbigpKSkgewogICAgICAgICBleGNlcHRpb24gPSBjYXRjaFNjb3BlLmV4Y2VwdGlvbigpOwog
ICAgICAgICBjYXRjaFNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CkBAIC0yNTksNyArMjYwLDYgQEAg
SlNWYWx1ZSBEZWJ1Z2dlckNhbGxGcmFtZTo6ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oVk0m
IHZtLCBjb25zdCBTdHJpbmcmIHNjcmkKICAgICBpZiAoc2NvcGVFeHRlbnNpb25PYmplY3QpIHsK
ICAgICAgICAgSlNTY29wZSogaWdub3JlZFByZXZpb3VzU2NvcGUgPSBnbG9iYWxPYmplY3QtPmds
b2JhbFNjb3BlKCk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0R2xvYmFsU2NvcGVFeHRlbnNp
b24oSlNXaXRoU2NvcGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBpZ25vcmVkUHJldmlvdXNT
Y29wZSwgc2NvcGVFeHRlbnNpb25PYmplY3QpKTsKLSAgICAgICAgZXZhbC0+c2V0VGFpbnRlZEJ5
V2l0aFNjb3BlKCk7CiAgICAgfQogCiAgICAgSlNWYWx1ZSByZXN1bHQgPSB2bS5pbnRlcnByZXRl
ci5leGVjdXRlRXZhbChldmFsLCBkZWJ1Z2dlckNhbGxGcmFtZS0+dGhpc1ZhbHVlKHZtKSwgZGVi
dWdnZXJDYWxsRnJhbWUtPnNjb3BlKHZtKS0+anNTY29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCmluZGV4IGQ4ZWIx
OWU5ODg2Zi4uNjJjN2EzYTZjOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAKQEAgLTE1NSwxNSArMTU1LDE1IEBAIHRl
bXBsYXRlIDxEZWJ1Z2dlclBhcnNlSW5mb1RhZyBUPiBzdHJ1Y3QgRGVidWdnZXJQYXJzZUluZm8g
eyB9OwogCiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRGVidWdnZXJQYXJzZUluZm88UHJvZ3JhbT4gewog
ICAgIHR5cGVkZWYgSlNDOjpQcm9ncmFtTm9kZSBSb290Tm9kZTsKLSAgICBzdGF0aWMgY29uc3Rl
eHByIExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzID0gTm9M
ZXhpY2FsbHlTY29wZWRGZWF0dXJlczsKICAgICBzdGF0aWMgY29uc3RleHByIFNvdXJjZVBhcnNl
TW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBKU1BhcnNlclN0cmlj
dE1vZGU6Ok5vdFN0cmljdDsKICAgICBzdGF0aWMgY29uc3RleHByIEpTUGFyc2VyU2NyaXB0TW9k
ZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljOwogfTsKIAogdGVtcGxh
dGUgPD4gc3RydWN0IERlYnVnZ2VyUGFyc2VJbmZvPE1vZHVsZT4gewogICAgIHR5cGVkZWYgSlND
OjpNb2R1bGVQcm9ncmFtTm9kZSBSb290Tm9kZTsKLSAgICBzdGF0aWMgY29uc3RleHByIExleGlj
YWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzID0gU3RyaWN0TW9kZUxl
eGljYWxseVNjb3BlZEZlYXR1cmU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBTb3VyY2VQYXJzZU1v
ZGUgcGFyc2VNb2RlID0gU291cmNlUGFyc2VNb2RlOjpNb2R1bGVFdmFsdWF0ZU1vZGU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IEpTUGFyc2Vy
U3RyaWN0TW9kZTo6U3RyaWN0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgSlNQYXJzZXJTY3JpcHRN
b2RlIHNjcmlwdE1vZGUgPSBKU1BhcnNlclNjcmlwdE1vZGU6Ok1vZHVsZTsKIH07CiAKQEAgLTE3
MSwxMyArMTcxLDEzIEBAIHRlbXBsYXRlIDxEZWJ1Z2dlclBhcnNlSW5mb1RhZyBUPgogYm9vbCBn
YXRoZXJEZWJ1Z2dlclBhcnNlRGF0YShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
RGVidWdnZXJQYXJzZURhdGEmIGRlYnVnZ2VyUGFyc2VEYXRhKQogewogICAgIHR5cGVkZWYgdHlw
ZW5hbWUgRGVidWdnZXJQYXJzZUluZm88VD46OlJvb3ROb2RlIFJvb3ROb2RlOwotICAgIExleGlj
YWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzID0gRGVidWdnZXJQYXJz
ZUluZm88VD46OmxleGljYWxseVNjb3BlZEZlYXR1cmVzOwogICAgIFNvdXJjZVBhcnNlTW9kZSBw
YXJzZU1vZGUgPSBEZWJ1Z2dlclBhcnNlSW5mbzxUPjo6cGFyc2VNb2RlOworICAgIEpTUGFyc2Vy
U3RyaWN0TW9kZSBzdHJpY3RNb2RlID0gRGVidWdnZXJQYXJzZUluZm88VD46OnN0cmljdE1vZGU7
CiAgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUgPSBEZWJ1Z2dlclBhcnNlSW5mbzxU
Pjo6c2NyaXB0TW9kZTsKIAogICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSb290Tm9kZT4gcm9vdE5vZGUgPSBwYXJzZVJvb3ROb2RlPFJvb3ROb2RlPih2bSwgc291
cmNlLCBJbXBsZW1lbnRhdGlvblZpc2liaWxpdHk6OlB1YmxpYywKLSAgICAgICAgSlNQYXJzZXJC
dWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIHNjcmlwdE1v
ZGUsIHBhcnNlTW9kZSwKKyAgICAgICAgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwg
c3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgcGFyc2VNb2RlLAogICAgICAgICBlcnJvciwgQ29uc3Ry
dWN0b3JLaW5kOjpOb25lLCBudWxscHRyLCAmZGVidWdnZXJQYXJzZURhdGEpOwogICAgIGlmICgh
cm9vdE5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYzE1NjEyNDQ0ZDVhLi4zZTMwZDEz
ZGI1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCkBAIC04MTkzLDcgKzgxOTMsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJs
b2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICBjYXNlIG9wX2NhbGxfZGlyZWN0X2V2YWw6IHsK
ICAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wQ2Fs
bERpcmVjdEV2YWw+KCk7CiAgICAgICAgICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSAtYnl0ZWNv
ZGUubV9hcmd2OwotICAgICAgICAgICAgYWRkQ2FsbChieXRlY29kZS5tX2RzdCwgQ2FsbERpcmVj
dEV2YWwsIE9wSW5mbyhieXRlY29kZS5tX2xleGljYWxseVNjb3BlZEZlYXR1cmVzKSwgZ2V0KGJ5
dGVjb2RlLm1fY2FsbGVlKSwgYnl0ZWNvZGUubV9hcmdjLCByZWdpc3Rlck9mZnNldCwgZ2V0UHJl
ZGljdGlvbigpLCBnZXQoYnl0ZWNvZGUubV90aGlzVmFsdWUpLCBnZXQoYnl0ZWNvZGUubV9zY29w
ZSkpOworICAgICAgICAgICAgYWRkQ2FsbChieXRlY29kZS5tX2RzdCwgQ2FsbERpcmVjdEV2YWws
IE9wSW5mbyhieXRlY29kZS5tX2VjbWFNb2RlKSwgZ2V0KGJ5dGVjb2RlLm1fY2FsbGVlKSwgYnl0
ZWNvZGUubV9hcmdjLCByZWdpc3Rlck9mZnNldCwgZ2V0UHJlZGljdGlvbigpLCBnZXQoYnl0ZWNv
ZGUubV90aGlzVmFsdWUpLCBnZXQoYnl0ZWNvZGUubV9zY29wZSkpOwogICAgICAgICAgICAgTkVY
VF9PUENPREUob3BfY2FsbF9kaXJlY3RfZXZhbCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAppbmRleCA3NDFhM2ZhNTZlZjYuLjNlYjA1MGM4YWYzOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTI1NTEsNiArMjU1MSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0VDTUFNb2RlKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewor
ICAgICAgICBjYXNlIENhbGxEaXJlY3RFdmFsOgogICAgICAgICBjYXNlIERlbGV0ZUJ5SWQ6CiAg
ICAgICAgIGNhc2UgRGVsZXRlQnlWYWw6CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKQEAgLTI1NzYs
NiArMjU3Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXNFQ01BTW9kZSgp
KTsKICAgICAgICAgc3dpdGNoIChvcCgpKSB7CisgICAgICAgIGNhc2UgQ2FsbERpcmVjdEV2YWw6
CiAgICAgICAgIGNhc2UgRGVsZXRlQnlWYWw6CiAgICAgICAgIGNhc2UgUHV0QnlWYWxXaXRoVGhp
czoKICAgICAgICAgY2FzZSBUb1RoaXM6CkBAIC0yNzA0LDEyICsyNzA2LDYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8dW5zaWduZWQ+KCk7CiAgICAgfQogCi0gICAgTGV4
aWNhbGx5U2NvcGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMoKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wKCkgPT0gQ2FsbERpcmVjdEV2YWwpOwotICAgICAgICByZXR1cm4gbV9v
cEluZm8uYXM8dWludDhfdD4oKTsKLSAgICB9Ci0KICAgICBEYXRhVmlld0RhdGEgZGF0YVZpZXdE
YXRhKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChvcCgpID09IERhdGFWaWV3R2V0SW50IHx8IG9w
KCkgPT0gRGF0YVZpZXdHZXRGbG9hdCB8fCBvcCgpID09IERhdGFWaWV3U2V0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmlu
ZGV4IDYyMjNhNWZkNmQ5Ni4uMTg1Njk0YzU4NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTg4OSw3ICs4ODks
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlKQogICAgICAgICBz
dWJQdHIoVHJ1c3RlZEltbTMyKHJlcXVpcmVkQnl0ZXMpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CiAgICAgICAgIHNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFs
U2xvcHB5KT4oY2FsbGVlRnJhbWVHUFIsIGV2YWxTY29wZUdQUiwgZXZhbFRoaXNWYWx1ZUpTUik7
CiAgICAgICAgIHByZXBhcmVGb3JFeHRlcm5hbENhbGwoKTsKLSAgICAgICAgYXBwZW5kQ2FsbChz
ZWxlY3RDYWxsRGlyZWN0RXZhbE9wZXJhdGlvbihub2RlLT5sZXhpY2FsbHlTY29wZWRGZWF0dXJl
cygpKSk7CisgICAgICAgIGFwcGVuZENhbGwobm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8g
b3BlcmF0aW9uQ2FsbERpcmVjdEV2YWxTdHJpY3QgOiBvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFNs
b3BweSk7CiAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIEp1bXAgZG9uZSA9IGJy
YW5jaElmTm90RW1wdHkoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyKTsKICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRl
eCBhOTI2NGYyYzYyMzMuLjI4MWQyMmU4MTcwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xMDA2LDcgKzEwMDYsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlKQogICAgICAgICBzdWJQdHIo
VHJ1c3RlZEltbTMyKHJlcXVpcmVkQnl0ZXMpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
ICAgIHNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5
KT4oY2FsbGVlRnJhbWVHUFIsIGV2YWxTY29wZUdQUiwgZXZhbFRoaXNWYWx1ZUdQUik7CiAgICAg
ICAgIHByZXBhcmVGb3JFeHRlcm5hbENhbGwoKTsKLSAgICAgICAgYXBwZW5kQ2FsbChzZWxlY3RD
YWxsRGlyZWN0RXZhbE9wZXJhdGlvbihub2RlLT5sZXhpY2FsbHlTY29wZWRGZWF0dXJlcygpKSk7
CisgICAgICAgIGFwcGVuZENhbGwobm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0
aW9uQ2FsbERpcmVjdEV2YWxTdHJpY3QgOiBvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFNsb3BweSk7
CiAgICAgICAgIGV4Y2VwdGlvbkNoZWNrKCk7CiAgICAgICAgIEp1bXAgZG9uZSA9IGJyYW5jaElm
Tm90RW1wdHkoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogICAgICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBlMDc1MDczYzQ4NDAu
LjY3YzhmZTYwNTJhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcApAQCAtMTIzODAsNyArMTIzODAsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOwogICAgICAgICBWTSYgdm0g
PSB0aGlzLT52bSgpOwogICAgICAgICBDb2RlT3JpZ2luIHNlbWFudGljTm9kZU9yaWdpbiA9IG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYzsKLSAgICAgICAgYXV0byBsZXhpY2FsbHlTY29wZWRGZWF0dXJl
cyA9IG5vZGUtPmxleGljYWxseVNjb3BlZEZlYXR1cmVzKCk7CisgICAgICAgIGF1dG8gZWNtYU1v
ZGUgPSBub2RlLT5lY21hTW9kZSgpOwogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3Io
CiAgICAgICAgICAgICBbPSwgJnZtXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1Nj
cmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpAQCAtMTI0MDgsNyArMTI0MDgs
NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgaml0LnN1YlB0
cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXF1aXJlZEJ5dGVzKSwgQ0NhbGxIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1l
bnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5KT4oR1BSSW5mbzo6cmVn
VDEsIEdQUkluZm86OnJlZ1QyLCBHUFJJbmZvOjpyZWdUMyk7CiAgICAgICAgICAgICAgICAgaml0
LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsKLSAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uPE9wZXJhdGlvblB0clRhZz4oc2Vs
ZWN0Q2FsbERpcmVjdEV2YWxPcGVyYXRpb24obGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMpKSksIEdQ
UkluZm86Om5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BSMCk7CisgICAgICAgICAgICAgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRhZ0NGdW5jdGlvbjxPcGVyYXRpb25Q
dHJUYWc+KGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFN0cmlj
dCA6IG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5KSksIEdQUkluZm86Om5vblByZXNlcnZl
ZE5vbkFyZ3VtZW50R1BSMCk7CiAgICAgICAgICAgICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9u
UHJlc2VydmVkTm9uQXJndW1lbnRHUFIwLCBPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbnMtPmFwcGVuZChqaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKHN0YXRlLT52bSgp
LCBBc3NlbWJseUhlbHBlcnM6Ok5vcm1hbEV4Y2VwdGlvbkNoZWNrLCBBc3NlbWJseUhlbHBlcnM6
OkZhckp1bXBXaWR0aCwgQ0NhbGxIZWxwZXJzOjpvcGVyYXRpb25FeGNlcHRpb25SZWdpc3Rlcjx0
eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFNs
b3BweSk+OjpSZXN1bHRUeXBlPigpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDI4NmYyODc5M2FiYS4uYzM2YWQ4ODk0
NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKQEAgLTkyLDcgKzkyLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUpTVmFsdWUg
ZXZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB0aGlzVmFsdWUsIEpTU2NvcGUqIGNh
bGxlclNjb3BlQ2hhaW4sIExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZl
YXR1cmVzKQorSlNWYWx1ZSBldmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHRoaXNW
YWx1ZSwgSlNTY29wZSogY2FsbGVyU2NvcGVDaGFpbiwgRUNNQU1vZGUgZWNtYU1vZGUpCiB7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKICAg
ICBDYWxsU2l0ZUluZGV4IGNhbGxlckNhbGxTaXRlSW5kZXggPSBjYWxsZXJGcmFtZS0+Y2FsbFNp
dGVJbmRleCgpOwpAQCAtMTcxLDcgKzE3MSw3IEBAIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSB0aGlzVmFsdWUsIEpTU2NvcGUqIGNhbGxlclNjb3BlQ2hhaW4sCiAK
ICAgICBEaXJlY3RFdmFsRXhlY3V0YWJsZSogZXZhbCA9IGNhbGxlckJhc2VsaW5lQ29kZUJsb2Nr
LT5kaXJlY3RFdmFsQ29kZUNhY2hlKCkudHJ5R2V0KHByb2dyYW1Tb3VyY2UsIGJ5dGVjb2RlSW5k
ZXgpOwogICAgIGlmICghZXZhbCkgewotICAgICAgICBpZiAoIShsZXhpY2FsbHlTY29wZWRGZWF0
dXJlcyAmIFN0cmljdE1vZGVMZXhpY2FsbHlTY29wZWRGZWF0dXJlKSkgeworICAgICAgICBpZiAo
IWVjbWFNb2RlLmlzU3RyaWN0KCkpIHsKICAgICAgICAgICAgIGlmIChwcm9ncmFtU291cmNlLT5p
czhCaXQoKSkgewogICAgICAgICAgICAgICAgIExpdGVyYWxQYXJzZXIgcHJlcGFyc2VyKGdsb2Jh
bE9iamVjdCwgcHJvZ3JhbVNvdXJjZS0+c3BhbjgoKSwgU2xvcHB5SlNPTiwgY2FsbGVyQmFzZWxp
bmVDb2RlQmxvY2spOwogICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHBhcnNlZE9iamVjdCA9
IHByZXBhcnNlci50cnlMaXRlcmFsUGFyc2UoKSkKQEAgLTE5MCw3ICsxOTAsNyBAQCBKU1ZhbHVl
IGV2YWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1Njb3BlKiBj
YWxsZXJTY29wZUNoYWluLAogICAgICAgICBQcml2YXRlTmFtZUVudmlyb25tZW50IHByaXZhdGVO
YW1lRW52aXJvbm1lbnQ7CiAgICAgICAgIEpTU2NvcGU6OmNvbGxlY3RDbG9zdXJlVmFyaWFibGVz
VW5kZXJURFooY2FsbGVyU2NvcGVDaGFpbiwgdmFyaWFibGVzVW5kZXJURFosIHByaXZhdGVOYW1l
RW52aXJvbm1lbnQpOwogICAgICAgICBTb3VyY2VUYWludGVkT3JpZ2luIHNvdXJjZVRhaW50ZWRP
cmlnaW4gPSBjb21wdXRlTmV3U291cmNlVGFpbnRlZE9yaWdpbkZyb21TdGFjayh2bSwgY2FsbEZy
YW1lKTsKLSAgICAgICAgZXZhbCA9IERpcmVjdEV2YWxFeGVjdXRhYmxlOjpjcmVhdGUoZ2xvYmFs
T2JqZWN0LCBtYWtlU291cmNlKHByb2dyYW1Tb3VyY2UsIGNhbGxlckJhc2VsaW5lQ29kZUJsb2Nr
LT5zb3VyY2UoKS5wcm92aWRlcigpLT5zb3VyY2VPcmlnaW4oKSwgc291cmNlVGFpbnRlZE9yaWdp
biksIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBkZXJpdmVkQ29udGV4dFR5cGUsIGNhbGxlclVu
bGlua2VkQ29kZUJsb2NrLT5uZWVkc0NsYXNzRmllbGRJbml0aWFsaXplcigpLCBjYWxsZXJVbmxp
bmtlZENvZGVCbG9jay0+cHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQoKSwgaXNBcnJvd0Z1bmN0aW9u
Q29udGV4dCwgY2FsbGVyQmFzZWxpbmVDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5pc0lu
c2lkZU9yZGluYXJ5RnVuY3Rpb24oKSwgZXZhbENvbnRleHRUeXBlLCAmdmFyaWFibGVzVW5kZXJU
RFosICZwcml2YXRlTmFtZUVudmlyb25tZW50KTsKKyAgICAgICAgZXZhbCA9IERpcmVjdEV2YWxF
eGVjdXRhYmxlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBtYWtlU291cmNlKHByb2dyYW1Tb3VyY2Us
IGNhbGxlckJhc2VsaW5lQ29kZUJsb2NrLT5zb3VyY2UoKS5wcm92aWRlcigpLT5zb3VyY2VPcmln
aW4oKSwgc291cmNlVGFpbnRlZE9yaWdpbiksIGRlcml2ZWRDb250ZXh0VHlwZSwgY2FsbGVyVW5s
aW5rZWRDb2RlQmxvY2stPm5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyKCksIGNhbGxlclVubGlu
a2VkQ29kZUJsb2NrLT5wcml2YXRlQnJhbmRSZXF1aXJlbWVudCgpLCBpc0Fycm93RnVuY3Rpb25D
b250ZXh0LCBjYWxsZXJCYXNlbGluZUNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPmlzSW5z
aWRlT3JkaW5hcnlGdW5jdGlvbigpLCBldmFsQ29udGV4dFR5cGUsICZ2YXJpYWJsZXNVbmRlclRE
WiwgJnByaXZhdGVOYW1lRW52aXJvbm1lbnQsIGVjbWFNb2RlKTsKICAgICAgICAgRVhDRVBUSU9O
X0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigpID09ICFldmFsKTsKICAgICAgICAgaWYgKCFldmFs
KQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk0OSw5ICs5NDksNiBAQCBKU1ZhbHVlIElu
dGVycHJldGVyOjpleGVjdXRlUHJvZ3JhbShjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTR2xv
YmFsT2JqZWN0KiwgSgogICAgIEVYQ0VQVElPTl9BU1NFUlQodGhyb3dTY29wZS5leGNlcHRpb24o
KSB8fCBwcm9ncmFtKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7
CiAKLSAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxTY29wZUV4dGVuc2lvbigpKQotICAgICAg
ICBwcm9ncmFtLT5zZXRUYWludGVkQnlXaXRoU2NvcGUoKTsKLQogICAgIEFTU0VSVCghdm0uaXND
b2xsZWN0b3JCdXN5T25DdXJyZW50VGhyZWFkKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKHZtLmN1
cnJlbnRUaHJlYWRJc0hvbGRpbmdBUElMb2NrKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCmluZGV4IDhmNjhjNjQxZWZhZi4uZTkyODA0
M2VhYjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuaApAQCAtMTIxLDggKzEyMSw2IEBAIHVzaW5nIEpTT3JXYXNtSW5zdHJ1Y3Rpb24gPSBz
dGQ6OnZhcmlhbnQ8Y29uc3QgSlNJbnN0cnVjdGlvbiosIGNvbnN0IFdhc21JbnN0cnVjCiAgICAg
ICAgIHVpbnQzMl90IG1fdHJ5RGVwdGhGb3JUaHJvdyB7IDAgfTsKICAgICB9OwogCi0gICAgdHlw
ZWRlZiB1aW50OF90IExleGljYWxseVNjb3BlZEZlYXR1cmVzOwotCiAgICAgY2xhc3MgSW50ZXJw
cmV0ZXIgewogICAgICAgICBXVEZfTUFLRV9UWk9ORV9BTExPQ0FURUQoSW50ZXJwcmV0ZXIpOwog
ICAgICAgICBmcmllbmQgY2xhc3MgQ2FjaGVkQ2FsbDsKQEAgLTE5MCw3ICsxODgsNyBAQCB1c2lu
ZyBKU09yV2FzbUluc3RydWN0aW9uID0gc3RkOjp2YXJpYW50PGNvbnN0IEpTSW5zdHJ1Y3Rpb24q
LCBjb25zdCBXYXNtSW5zdHJ1YwogI2VuZGlmIC8vIEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09E
RVMpCiAgICAgfTsKIAotICAgIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqLCBKU1ZhbHVlIHRoaXNW
YWx1ZSwgSlNTY29wZSosIExleGljYWxseVNjb3BlZEZlYXR1cmVzKTsKKyAgICBKU1ZhbHVlIGV2
YWwoQ2FsbEZyYW1lKiwgSlNWYWx1ZSB0aGlzVmFsdWUsIEpTU2NvcGUqLCBFQ01BTW9kZSk7CiAK
ICAgICBpbmxpbmUgQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZUZvclZhcmFyZ3MoQ2FsbEZyYW1lKiwg
dW5zaWduZWQgbnVtVXNlZFN0YWNrU2xvdHMsIHVuc2lnbmVkIGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKaW5kZXggNjAwYzg4
NTFmMTM1Li4zYjNmMDY1YmM0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNw
cApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgSklUOjpjb21waWxlQ2FsbERpcmVjdEV2YWwoY29u
c3QgT3BDYWxsRGlyZWN0RXZhbCYgYnl0ZWNvZGUpCiAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKGJ5dGVjb2RlLm1fdGhpc1ZhbHVlLCB0aGlzVmFsdWVKU1IpOwogICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXJQYXlsb2FkKGJ5dGVjb2RlLm1fc2NvcGUsIHNjb3BlR1BSKTsKLSAgICBjYWxs
T3BlcmF0aW9uKHNlbGVjdENhbGxEaXJlY3RFdmFsT3BlcmF0aW9uKGJ5dGVjb2RlLm1fbGV4aWNh
bGx5U2NvcGVkRmVhdHVyZXMpLCBjYWxsZWVGcmFtZUdQUiwgc2NvcGVHUFIsIHRoaXNWYWx1ZUpT
Uik7CisgICAgY2FsbE9wZXJhdGlvbihieXRlY29kZS5tX2VjbWFNb2RlLmlzU3RyaWN0KCkgPyBv
cGVyYXRpb25DYWxsRGlyZWN0RXZhbFN0cmljdCA6IG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xv
cHB5LCBjYWxsZWVGcmFtZUdQUiwgc2NvcGVHUFIsIHRoaXNWYWx1ZUpTUik7CiAgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoSWZFbXB0eShyZXR1cm5WYWx1ZUpTUikpOwogCiAgICAgc2V0RmFzdFBhdGhS
ZXN1bWVQb2ludCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKaW5kZXggZmMxOTYwNWMzMjUwLi4yNDI5NTFhYWZjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjM4Nyw3ICsyMzg3LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5LCBFbmNvZGVk
SlNWYWx1ZSwgKHZvaWQqIGYKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgY2FsbGVlRnJhbWUtPnNldENvZGVCbG9jayhudWxscHRyKTsKIAotICAgIE9QRVJB
VElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShldmFsKGNhbGxlZUZyYW1lLCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFRoaXNWYWx1ZSksIGNhbGxlclNjb3BlQ2hhaW4sIE5vTGV4aWNh
bGx5U2NvcGVkRmVhdHVyZXMpKSk7CisgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGV2YWwoY2FsbGVlRnJhbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVGhpc1Zh
bHVlKSwgY2FsbGVyU2NvcGVDaGFpbiwgRUNNQU1vZGU6OnNsb3BweSgpKSkpOwogfQogCiBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbERpcmVjdEV2YWxTdHJpY3QsIEVuY29k
ZWRKU1ZhbHVlLCAodm9pZCogZnJhbWUsIEpTU2NvcGUqIGNhbGxlclNjb3BlQ2hhaW4sIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRUaGlzVmFsdWUpKQpAQCAtMjM5OCwyOSArMjM5OCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFN0cmljdCwgRW5jb2Rl
ZEpTVmFsdWUsICh2b2lkKiBmCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIGNhbGxlZUZyYW1lLT5zZXRDb2RlQmxvY2sobnVsbHB0cik7CiAKLSAgICBPUEVS
QVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZXZhbChjYWxsZWVGcmFtZSwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRUaGlzVmFsdWUpLCBjYWxsZXJTY29wZUNoYWluLCBTdHJpY3RN
b2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZSkpKTsKLX0KLQotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU2xvcHB5VGFpbnRlZEJ5V2l0aFNjb3BlLCBFbmNv
ZGVkSlNWYWx1ZSwgKHZvaWQqIGZyYW1lLCBKU1Njb3BlKiBjYWxsZXJTY29wZUNoYWluLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVGhpc1ZhbHVlKSkKLXsKLSAgICBDYWxsRnJhbWUqIGNhbGxlZUZy
YW1lID0gcmVpbnRlcnByZXRfY2FzdDxDYWxsRnJhbWUqPihmcmFtZSk7Ci0gICAgLy8gV2UgY2Fu
J3QgdHJ1c3Qgb3VyIGNhbGxlZSBzaW5jZSBpdCBjb3VsZCBiZSBnYXJiYWdlIGJ1dCBvdXIgY2Fs
bGVyJ3Mgc2hvdWxkIGJlIG9rLgotICAgIFZNJiB2bSA9IGNhbGxlZUZyYW1lLT5jYWxsZXJGcmFt
ZSgpLT5kZXByZWNhdGVkVk0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgY2FsbGVlRnJhbWUtPnNldENvZGVCbG9jayhudWxscHRyKTsKLQotICAgIE9Q
RVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShldmFsKGNhbGxlZUZyYW1lLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFRoaXNWYWx1ZSksIGNhbGxlclNjb3BlQ2hhaW4sIFRhaW50
ZWRCeVdpdGhTY29wZUxleGljYWxseVNjb3BlZEZlYXR1cmUpKSk7Ci19Ci0KLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFN0cmljdFRhaW50ZWRCeVdpdGhT
Y29wZSwgRW5jb2RlZEpTVmFsdWUsICh2b2lkKiBmcmFtZSwgSlNTY29wZSogY2FsbGVyU2NvcGVD
aGFpbiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXNWYWx1ZSkpCi17Ci0gICAgQ2FsbEZyYW1l
KiBjYWxsZWVGcmFtZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q2FsbEZyYW1lKj4oZnJhbWUpOwotICAg
IC8vIFdlIGNhbid0IHRydXN0IG91ciBjYWxsZWUgc2luY2UgaXQgY291bGQgYmUgZ2FyYmFnZSBi
dXQgb3VyIGNhbGxlcidzIHNob3VsZCBiZSBvay4KLSAgICBWTSYgdm0gPSBjYWxsZWVGcmFtZS0+
Y2FsbGVyRnJhbWUoKS0+ZGVwcmVjYXRlZFZNKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIGNhbGxlZUZyYW1lLT5zZXRDb2RlQmxvY2sobnVsbHB0cik7
Ci0KLSAgICBPUEVSQVRJT05fUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZXZhbChjYWxs
ZWVGcmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRUaGlzVmFsdWUpLCBjYWxsZXJTY29wZUNo
YWluLCBTdHJpY3RNb2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZSB8IFRhaW50ZWRCeVdpdGhTY29w
ZUxleGljYWxseVNjb3BlZEZlYXR1cmUpKSk7CisgICAgT1BFUkFUSU9OX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGV2YWwoY2FsbGVlRnJhbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VGhpc1ZhbHVlKSwgY2FsbGVyU2NvcGVDaGFpbiwgRUNNQU1vZGU6OnN0cmljdCgpKSkpOwogfQog
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9seW1vcnBoaWNDYWxsLCBVQ1BV
UmVnaXN0ZXIsIChDYWxsRnJhbWUqIGNhbGxlZUZyYW1lLCBDYWxsTGlua0luZm8qIGNhbGxMaW5r
SW5mbykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IGJi
NThhZmEyMmIxNS4uMTc4NmM5ODI1ZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkpJVE9wZXJhdGlvblZh
bGlkYXRpb24uaCIKICNpbmNsdWRlICJNZWdhbW9ycGhpY0NhY2hlLmgiCiAjaW5jbHVkZSAiT3Bl
cmF0aW9uUmVzdWx0LmgiCi0jaW5jbHVkZSAiUGFyc2VyTW9kZXMuaCIKICNpbmNsdWRlICJQcml2
YXRlRmllbGRQdXRLaW5kLmgiCiAjaW5jbHVkZSAiVUdQUlBhaXIuaCIKICNpbmNsdWRlIDx3dGYv
UGxhdGZvcm0uaD4KQEAgLTMxNyw4ICszMTYsNiBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSgog
Ly8gVGhlc2UgdXNlIHZvaWQqIGluc3RlYWQgb2YgQ2FsbEZyYW1lKiB0byBwcmV2ZW50IHNldHVw
QXJndW1lbnRzIGZyb20gYXNzdW1pbmcgd2Ugd2FudCB0aGUgY3VycmVudCBjYWxsIGZyYW1lLgog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFNsb3BweSwg
RW5jb2RlZEpTVmFsdWUsICh2b2lkKiwgSlNTY29wZSosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxEaXJlY3RFdmFsU3RyaWN0LCBFbmNv
ZGVkSlNWYWx1ZSwgKHZvaWQqLCBKU1Njb3BlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbERpcmVjdEV2YWxTbG9wcHlUYWludGVkQnlX
aXRoU2NvcGUsIEVuY29kZWRKU1ZhbHVlLCAodm9pZCosIEpTU2NvcGUqLCBFbmNvZGVkSlNWYWx1
ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFN0
cmljdFRhaW50ZWRCeVdpdGhTY29wZSwgRW5jb2RlZEpTVmFsdWUsICh2b2lkKiwgSlNTY29wZSos
IEVuY29kZWRKU1ZhbHVlKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UG9seW1vcnBoaWNDYWxsLCBVQ1BVUmVnaXN0ZXIsIChDYWxsRnJhbWUqLCBDYWxsTGlua0luZm8q
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1YWxDYWxsLCBVQ1BV
UmVnaXN0ZXIsIChDYWxsRnJhbWUqLCBDYWxsTGlua0luZm8qKSk7CkBAIC00NjksMjEgKzQ2Niw2
IEBAIGlubGluZSBkZWNsdHlwZShhdXRvKSBzZWxlY3ROZXdGdW5jdGlvbldpdGhJbnZhbGlkYXRl
ZFJlYWxsb2NhdGlvbldhdGNocG9pbnRPcGVyCiAgICAgcmV0dXJuIGZ1bmN0aW9uOwogfQogCi1p
bmxpbmUgZGVjbHR5cGUoYXV0bykgc2VsZWN0Q2FsbERpcmVjdEV2YWxPcGVyYXRpb24oTGV4aWNh
bGx5U2NvcGVkRmVhdHVyZXMgZmVhdHVyZXMpCi17Ci0gICAgYm9vbCBpc1N0cmljdE1vZGUgPSBm
ZWF0dXJlcyAmIFN0cmljdE1vZGVMZXhpY2FsbHlTY29wZWRGZWF0dXJlOwotICAgIGJvb2wgaXNU
YWludGVkQnlXaXRoU2NvcGUgPSBmZWF0dXJlcyAmIFRhaW50ZWRCeVdpdGhTY29wZUxleGljYWxs
eVNjb3BlZEZlYXR1cmU7Ci0KLSAgICBhdXRvIGZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbERpcmVj
dEV2YWxTbG9wcHk7Ci0gICAgaWYgKGlzU3RyaWN0TW9kZSAmJiBpc1RhaW50ZWRCeVdpdGhTY29w
ZSkKLSAgICAgICAgZnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFN0cmljdFRhaW50
ZWRCeVdpdGhTY29wZTsKLSAgICBlbHNlIGlmIChpc1RhaW50ZWRCeVdpdGhTY29wZSkKLSAgICAg
ICAgZnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsRGlyZWN0RXZhbFNsb3BweVRhaW50ZWRCeVdpdGhT
Y29wZTsKLSAgICBlbHNlIGlmIChpc1N0cmljdE1vZGUpCi0gICAgICAgIGZ1bmN0aW9uID0gb3Bl
cmF0aW9uQ2FsbERpcmVjdEV2YWxTdHJpY3Q7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBmMTgzMmEzNTkwZTgu
LmJiMGQ1MTU3ZTc0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwCkBAIC0yMjE5LDcgKzIyMTksNyBAQCBzdGF0aWMgaW5saW5lIFVHUFJQYWly
IGNvbW1vbkNhbGxEaXJlY3RFdmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBKU0luc3Ry
dQogICAgIAogICAgIEpTU2NvcGUqIGNhbGxlclNjb3BlQ2hhaW4gPSBqc0Nhc3Q8SlNTY29wZSo+
KGdldE9wZXJhbmQoY2FsbEZyYW1lLCBieXRlY29kZS5tX3Njb3BlKSk7CiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBnZXRPcGVyYW5kKGNhbGxGcmFtZSwgYnl0ZWNvZGUubV90aGlzVmFsdWUpOwot
ICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbChjYWxsZWVGcmFtZSwgdGhpc1ZhbHVlLCBjYWxsZXJT
Y29wZUNoYWluLCBieXRlY29kZS5tX2xleGljYWxseVNjb3BlZEZlYXR1cmVzKTsKKyAgICBKU1Zh
bHVlIHJlc3VsdCA9IGV2YWwoY2FsbGVlRnJhbWUsIHRoaXNWYWx1ZSwgY2FsbGVyU2NvcGVDaGFp
biwgYnl0ZWNvZGUubV9lY21hTW9kZSk7CiAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04o
Z2xvYmFsT2JqZWN0KTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIHNldFVwQ2FsbChjYWxsZWVGcmFtZSwgQ29kZUZvckNhbGwsIGNhbGxl
ZUFzVmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA1
Zjg5NTM1ZWFlNzIuLjliMmQyYzY4NmQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgUGFyc2VyPExleGVyVHlwZT46Omxv
Z0Vycm9yKGJvb2wgc2hvdWxkUHJpbnRUb2tlbiwgQXJncyYmLi4uIGFyZ3MpCiB9CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Ci1QYXJzZXI8TGV4ZXJUeXBlPjo6UGFyc2VyKFZNJiB2
bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBJbXBsZW1lbnRhdGlvblZpc2liaWxpdHkgaW1w
bGVtZW50YXRpb25WaXNpYmlsaXR5LCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBM
ZXhpY2FsbHlTY29wZWRGZWF0dXJlcyBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJT
Y3JpcHRNb2RlIHNjcmlwdE1vZGUsIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUsIEZ1bmN0aW9u
TW9kZSBmdW5jdGlvbk1vZGUsIFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmcsIENvbnN0cnVjdG9y
S2luZCBjb25zdHJ1Y3RvcktpbmQsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5
cGUsIGJvb2wgaXNFdmFsQ29udGV4dCwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwg
RGVidWdnZXJQYXJzZURhdGEqIGRlYnVnZ2VyUGFyc2VEYXRhLCBib29sIGlzSW5zaWRlT3JkaW5h
cnlGdW5jdGlvbikKK1BhcnNlcjxMZXhlclR5cGU+OjpQYXJzZXIoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIEltcGxlbWVudGF0aW9uVmlzaWJpbGl0eSBpbXBsZW1lbnRhdGlvblZp
c2liaWxpdHksIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0
TW9kZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgU291cmNlUGFy
c2VNb2RlIHBhcnNlTW9kZSwgRnVuY3Rpb25Nb2RlIGZ1bmN0aW9uTW9kZSwgU3VwZXJCaW5kaW5n
IHN1cGVyQmluZGluZywgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgRGVyaXZlZENv
bnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0V2YWxDb250ZXh0LCBFdmFsQ29u
dGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBEZWJ1Z2dlclBhcnNlRGF0YSogZGVidWdnZXJQYXJz
ZURhdGEsIGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1bmN0aW9uKQogICAgIDogbV92bSh2bSkKICAg
ICAsIG1fc291cmNlKCZzb3VyY2UpCiAgICAgLCBtX2hhc1N0YWNrT3ZlcmZsb3coZmFsc2UpCkBA
IC0xNTcsNyArMTU3LDYgQEAgUGFyc2VyPExleGVyVHlwZT46OlBhcnNlcihWTSYgdm0sIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSwgSW1wbGVtZW50YXRpb25WaXNpYmkKICAgICBtX2V4cHJlc3Np
b25FcnJvckNsYXNzaWZpZXIgPSBudWxscHRyOwogCiAgICAgU2NvcGVSZWYgc2NvcGUgPSBwdXNo
U2NvcGUoKTsKLSAgICBzY29wZS0+c2V0TGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMobGV4aWNhbGx5
U2NvcGVkRmVhdHVyZXMpOwogICAgIHNjb3BlLT5zZXRTb3VyY2VQYXJzZU1vZGUocGFyc2VNb2Rl
KTsKICAgICBzY29wZS0+c2V0SXNFdmFsQ29udGV4dChpc0V2YWxDb250ZXh0KTsKICAgICBpZiAo
aXNFdmFsQ29udGV4dCkKQEAgLTE3Miw2ICsxNzEsOSBAQCBQYXJzZXI8TGV4ZXJUeXBlPjo6UGFy
c2VyKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBJbXBsZW1lbnRhdGlvblZpc2li
aQogICAgIGlmIChkZXJpdmVkQ29udGV4dFR5cGUgIT0gRGVyaXZlZENvbnRleHRUeXBlOjpOb25l
KQogICAgICAgICBzY29wZS0+c2V0RXhwZWN0ZWRTdXBlckJpbmRpbmcoU3VwZXJCaW5kaW5nOjpO
ZWVkZWQpOwogCisgICAgaWYgKHN0cmljdE1vZGUgPT0gSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJp
Y3QpCisgICAgICAgIHNjb3BlLT5zZXRTdHJpY3RNb2RlKCk7CisKICAgICBpZiAoaXNNb2R1bGVQ
YXJzZU1vZGUocGFyc2VNb2RlKSkKICAgICAgICAgbV9tb2R1bGVTY29wZURhdGEgPSBNb2R1bGVT
Y29wZURhdGE6OmNyZWF0ZSgpOwogCkBAIC0xNzU2LDE4ICsxNzU4LDExIEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VX
aXRoU3RhdGVtZW50CiAgICAgSlNUZXh0UG9zaXRpb24gZW5kID0gbGFzdFRva2VuRW5kUG9zaXRp
b24oKTsKICAgICBpbnQgZW5kTGluZSA9IHRva2VuTGluZSgpOwogICAgIGhhbmRsZVByb2R1Y3Rp
b25PckZhaWwoQ0xPU0VQQVJFTiwgIikiLCAic3RhcnQiLCAic3ViamVjdCBvZiBhICd3aXRoJyBz
dGF0ZW1lbnQiKTsKLQotICAgIEF1dG9Qb3BTY29wZVJlZiB3aXRoU2NvcGUodGhpcywgcHVzaFNj
b3BlKCkpOwotICAgIHdpdGhTY29wZS0+c2V0VGFpbnRlZEJ5V2l0aFNjb3BlKCk7Ci0gICAgd2l0
aFNjb3BlLT5wcmV2ZW50QWxsVmFyaWFibGVEZWNsYXJhdGlvbnMoKTsKLQogICAgIGNvbnN0IElk
ZW50aWZpZXIqIHVudXNlZCA9IG51bGxwdHI7CiAgICAgVHJlZVN0YXRlbWVudCBzdGF0ZW1lbnQg
PSBwYXJzZVN0YXRlbWVudChjb250ZXh0LCB1bnVzZWQpOwogICAgIGZhaWxJZkZhbHNlKHN0YXRl
bWVudCwgIkEgJ3dpdGgnIHN0YXRlbWVudCBtdXN0IGhhdmUgYSBib2R5Iik7CiAgICAgCi0gICAg
VHJlZVN0YXRlbWVudCByZXN1bHQgPSBjb250ZXh0LmNyZWF0ZVdpdGhTdGF0ZW1lbnQobG9jYXRp
b24sIGV4cHIsIHN0YXRlbWVudCwgc3RhcnQsIGVuZCwgc3RhcnRMaW5lLCBlbmRMaW5lKTsKLSAg
ICBwb3BTY29wZSh3aXRoU2NvcGUsIFRyZWVCdWlsZGVyOjpOZWVkc0ZyZWVWYXJpYWJsZUluZm8p
OwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlV2l0aFN0YXRl
bWVudChsb2NhdGlvbiwgZXhwciwgc3RhdGVtZW50LCBzdGFydCwgZW5kLCBzdGFydExpbmUsIGVu
ZExpbmUpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggZDBjYjQ4MDgyYTFlLi4wMzcwNjk3NmMxMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaApAQCAtNzkxLDkgKzc5MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgfQogICAgIH0KICAgICBMZXhpY2FsbHlTY29wZWRGZWF0dXJlcyBsZXhp
Y2FsbHlTY29wZWRGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fbGV4aWNhbGx5U2NvcGVkRmVh
dHVyZXM7IH0KLSAgICB2b2lkIHNldExleGljYWxseVNjb3BlZEZlYXR1cmVzKExleGljYWxseVNj
b3BlZEZlYXR1cmVzIGZlYXR1cmVzKSB7IG1fbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMgPSBmZWF0
dXJlczsgfQogICAgIHZvaWQgc2V0U3RyaWN0TW9kZSgpIHsgbV9sZXhpY2FsbHlTY29wZWRGZWF0
dXJlcyB8PSBTdHJpY3RNb2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZTsgfQotICAgIHZvaWQgc2V0
VGFpbnRlZEJ5V2l0aFNjb3BlKCkgeyBtX2xleGljYWxseVNjb3BlZEZlYXR1cmVzIHw9IFRhaW50
ZWRCeVdpdGhTY29wZUxleGljYWxseVNjb3BlZEZlYXR1cmU7IH0KICAgICBib29sIHN0cmljdE1v
ZGUoKSBjb25zdCB7IHJldHVybiBtX2xleGljYWxseVNjb3BlZEZlYXR1cmVzICYgU3RyaWN0TW9k
ZUxleGljYWxseVNjb3BlZEZlYXR1cmU7IH0KICAgICBib29sIGlzVmFsaWRTdHJpY3RNb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1ZhbGlkU3RyaWN0TW9kZTsgfQogICAgIGJvb2wgc2hhZG93c0Fy
Z3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hhZG93c0FyZ3VtZW50czsgfQpAQCAtMTA0Myw3
ICsxMDQxLDcgQEAgY2xhc3MgUGFyc2VyIHsKICAgICBXVEZfTUFLRV9UWk9ORV9BTExPQ0FURUQo
UGFyc2VyKTsKIAogcHVibGljOgotICAgIFBhcnNlcihWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBJ
bXBsZW1lbnRhdGlvblZpc2liaWxpdHksIEpTUGFyc2VyQnVpbHRpbk1vZGUsIExleGljYWxseVNj
b3BlZEZlYXR1cmVzLCBKU1BhcnNlclNjcmlwdE1vZGUsIFNvdXJjZVBhcnNlTW9kZSwgRnVuY3Rp
b25Nb2RlLCBTdXBlckJpbmRpbmcsIENvbnN0cnVjdG9yS2luZCA9IENvbnN0cnVjdG9yS2luZDo6
Tm9uZSwgRGVyaXZlZENvbnRleHRUeXBlID0gRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBib29s
IGlzRXZhbENvbnRleHQgPSBmYWxzZSwgRXZhbENvbnRleHRUeXBlID0gRXZhbENvbnRleHRUeXBl
OjpOb25lLCBEZWJ1Z2dlclBhcnNlRGF0YSogPSBudWxscHRyLCBib29sIGlzSW5zaWRlT3JkaW5h
cnlGdW5jdGlvbiA9IGZhbHNlKTsKKyAgICBQYXJzZXIoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwg
SW1wbGVtZW50YXRpb25WaXNpYmlsaXR5LCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0
cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSwgU291cmNlUGFyc2VNb2RlLCBGdW5jdGlvbk1v
ZGUsIFN1cGVyQmluZGluZywgQ29uc3RydWN0b3JLaW5kID0gQ29uc3RydWN0b3JLaW5kOjpOb25l
LCBEZXJpdmVkQ29udGV4dFR5cGUgPSBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsIGJvb2wgaXNF
dmFsQ29udGV4dCA9IGZhbHNlLCBFdmFsQ29udGV4dFR5cGUgPSBFdmFsQ29udGV4dFR5cGU6Ok5v
bmUsIERlYnVnZ2VyUGFyc2VEYXRhKiA9IG51bGxwdHIsIGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1
bmN0aW9uID0gZmFsc2UpOwogICAgIH5QYXJzZXIoKTsKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBQ
YXJzZWROb2RlPgpAQCAtMjI2NSw3ICsyMjYzLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFBhcnNlZE5v
ZGU+CiBzdGQ6OnVuaXF1ZV9wdHI8UGFyc2VkTm9kZT4gcGFyc2UoCiAgICAgVk0mIHZtLCBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsCiAgICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgSW1wbGVt
ZW50YXRpb25WaXNpYmlsaXR5IGltcGxlbWVudGF0aW9uVmlzaWJpbGl0eSwgSlNQYXJzZXJCdWls
dGluTW9kZSBidWlsdGluTW9kZSwKLSAgICBMZXhpY2FsbHlTY29wZWRGZWF0dXJlcyBsZXhpY2Fs
bHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIFNvdXJjZVBh
cnNlTW9kZSBwYXJzZU1vZGUsIEZ1bmN0aW9uTW9kZSBmdW5jdGlvbk1vZGUsIFN1cGVyQmluZGlu
ZyBzdXBlckJpbmRpbmcsCisgICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFy
c2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlLCBGdW5j
dGlvbk1vZGUgZnVuY3Rpb25Nb2RlLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nLAogICAgIFBh
cnNlckVycm9yJiBlcnJvciwKICAgICBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kID0g
Q29uc3RydWN0b3JLaW5kOjpOb25lLAogICAgIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29u
dGV4dFR5cGUgPSBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsCkBAIC0yMjgyLDcgKzIyODAsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8UGFyc2VkTm9kZT4gcGFyc2UoCiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGFyc2VkTm9kZT4gcmVzdWx0OwogICAgIGlmIChzb3VyY2UucHJvdmlkZXIoKS0+c291cmNl
KCkuaXM4Qml0KCkpIHsKLSAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4gcGFyc2VyKHZtLCBz
b3VyY2UsIGltcGxlbWVudGF0aW9uVmlzaWJpbGl0eSwgYnVpbHRpbk1vZGUsIGxleGljYWxseVNj
b3BlZEZlYXR1cmVzLCBzY3JpcHRNb2RlLCBwYXJzZU1vZGUsIGZ1bmN0aW9uTW9kZSwgc3VwZXJC
aW5kaW5nLCBjb25zdHJ1Y3RvcktpbmQsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNFdmFsTm9kZTxQ
YXJzZWROb2RlPigpLCBldmFsQ29udGV4dFR5cGUsIG51bGxwdHIsIGlzSW5zaWRlT3JkaW5hcnlG
dW5jdGlvbik7CisgICAgICAgIFBhcnNlcjxMZXhlcjxMQ2hhcj4+IHBhcnNlcih2bSwgc291cmNl
LCBpbXBsZW1lbnRhdGlvblZpc2liaWxpdHksIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBzY3Jp
cHRNb2RlLCBwYXJzZU1vZGUsIGZ1bmN0aW9uTW9kZSwgc3VwZXJCaW5kaW5nLCBjb25zdHJ1Y3Rv
cktpbmQsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNFdmFsTm9kZTxQYXJzZWROb2RlPigpLCBldmFs
Q29udGV4dFR5cGUsIG51bGxwdHIsIGlzSW5zaWRlT3JkaW5hcnlGdW5jdGlvbik7CiAgICAgICAg
IHJlc3VsdCA9IHBhcnNlci5wYXJzZTxQYXJzZWROb2RlPihlcnJvciwgbmFtZSwgUGFyc2luZ0Nv
bnRleHQ6Ok5vcm1hbCwgc3RkOjpudWxsb3B0LCBwYXJlbnRTY29wZVByaXZhdGVOYW1lcywgY2xh
c3NFbGVtZW50RGVmaW5pdGlvbnMpOwogICAgICAgICBpZiAoYnVpbHRpbk1vZGUgPT0gSlNQYXJz
ZXJCdWlsdGluTW9kZTo6QnVpbHRpbikgewogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKQEAg
LTIyOTIsNyArMjI5MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYXJzZWROb2RlPiBwYXJzZSgKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIFBhcnNlcjxMZXhl
cjxVQ2hhcj4+IHBhcnNlcih2bSwgc291cmNlLCBpbXBsZW1lbnRhdGlvblZpc2liaWxpdHksIGJ1
aWx0aW5Nb2RlLCBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgc2NyaXB0TW9kZSwgcGFyc2VNb2Rl
LCBmdW5jdGlvbk1vZGUsIHN1cGVyQmluZGluZywgY29uc3RydWN0b3JLaW5kLCBkZXJpdmVkQ29u
dGV4dFR5cGUsIGlzRXZhbE5vZGU8UGFyc2VkTm9kZT4oKSwgZXZhbENvbnRleHRUeXBlLCBudWxs
cHRyLCBpc0luc2lkZU9yZGluYXJ5RnVuY3Rpb24pOworICAgICAgICBQYXJzZXI8TGV4ZXI8VUNo
YXI+PiBwYXJzZXIodm0sIHNvdXJjZSwgaW1wbGVtZW50YXRpb25WaXNpYmlsaXR5LCBidWlsdGlu
TW9kZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgcGFyc2VNb2RlLCBmdW5jdGlvbk1vZGUsIHN1
cGVyQmluZGluZywgY29uc3RydWN0b3JLaW5kLCBkZXJpdmVkQ29udGV4dFR5cGUsIGlzRXZhbE5v
ZGU8UGFyc2VkTm9kZT4oKSwgZXZhbENvbnRleHRUeXBlLCBudWxscHRyLCBpc0luc2lkZU9yZGlu
YXJ5RnVuY3Rpb24pOwogICAgICAgICByZXN1bHQgPSBwYXJzZXIucGFyc2U8UGFyc2VkTm9kZT4o
ZXJyb3IsIG5hbWUsIFBhcnNpbmdDb250ZXh0OjpOb3JtYWwsIHN0ZDo6bnVsbG9wdCwgcGFyZW50
U2NvcGVQcml2YXRlTmFtZXMsIGNsYXNzRWxlbWVudERlZmluaXRpb25zKTsKICAgICB9CiAKQEAg
LTIzMTIsNyArMjMxMCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBQYXJzZWROb2RlPgogc3RkOjp1bmlx
dWVfcHRyPFBhcnNlZE5vZGU+IHBhcnNlUm9vdE5vZGUoCiAgICAgVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsCiAgICAgSW1wbGVtZW50YXRpb25WaXNpYmlsaXR5IGltcGxlbWVudGF0
aW9uVmlzaWJpbGl0eSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwKLSAgICBMZXhp
Y2FsbHlTY29wZWRGZWF0dXJlcyBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJTY3Jp
cHRNb2RlIHNjcmlwdE1vZGUsIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUsCisgICAgSlNQYXJz
ZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBT
b3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlLAogICAgIFBhcnNlckVycm9yJiBlcnJvciwKICAgICBD
b25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kRm9yVG9wTGV2ZWxGdW5jdGlvbkV4cHJlc3Np
b25zID0gQ29uc3RydWN0b3JLaW5kOjpOb25lLAogICAgIEpTVGV4dFBvc2l0aW9uKiBwb3NpdGlv
bkJlZm9yZUxhc3ROZXdsaW5lID0gbnVsbHB0ciwKQEAgLTIzMzAsNyArMjMyOCw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxQYXJzZWROb2RlPiBwYXJzZVJvb3ROb2RlKAogICAgIGJvb2wgaXNJbnNpZGVP
cmRpbmFyeUZ1bmN0aW9uID0gZmFsc2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhcnNlZE5vZGU+
IHJlc3VsdDsKICAgICBpZiAoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZSgpLmlzOEJpdCgpKSB7
Ci0gICAgICAgIFBhcnNlcjxMZXhlcjxMQ2hhcj4+IHBhcnNlcih2bSwgc291cmNlLCBpbXBsZW1l
bnRhdGlvblZpc2liaWxpdHksIGJ1aWx0aW5Nb2RlLCBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywg
c2NyaXB0TW9kZSwgcGFyc2VNb2RlLCBGdW5jdGlvbk1vZGU6Ok5vbmUsIFN1cGVyQmluZGluZzo6
Tm90TmVlZGVkLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIERlcml2ZWRDb250ZXh0VHlwZTo6Tm9u
ZSwgaXNFdmFsTm9kZSwgRXZhbENvbnRleHRUeXBlOjpOb25lLCBkZWJ1Z2dlclBhcnNlRGF0YSwg
aXNJbnNpZGVPcmRpbmFyeUZ1bmN0aW9uKTsKKyAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4g
cGFyc2VyKHZtLCBzb3VyY2UsIGltcGxlbWVudGF0aW9uVmlzaWJpbGl0eSwgYnVpbHRpbk1vZGUs
IHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIHBhcnNlTW9kZSwgRnVuY3Rpb25Nb2RlOjpOb25lLCBT
dXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBEZXJpdmVkQ29u
dGV4dFR5cGU6Ok5vbmUsIGlzRXZhbE5vZGUsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgZGVidWdn
ZXJQYXJzZURhdGEsIGlzSW5zaWRlT3JkaW5hcnlGdW5jdGlvbik7CiAgICAgICAgIHBhcnNlci5v
dmVycmlkZUNvbnN0cnVjdG9yS2luZEZvclRvcExldmVsRnVuY3Rpb25FeHByZXNzaW9ucyhjb25z
dHJ1Y3RvcktpbmRGb3JUb3BMZXZlbEZ1bmN0aW9uRXhwcmVzc2lvbnMpOwogICAgICAgICByZXN1
bHQgPSBwYXJzZXIucGFyc2U8UGFyc2VkTm9kZT4oZXJyb3IsIG5hbWUsIFBhcnNpbmdDb250ZXh0
OjpOb3JtYWwpOwogICAgICAgICBpZiAocG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSkKQEAgLTIz
MzgsNyArMjMzNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYXJzZWROb2RlPiBwYXJzZVJvb3ROb2Rl
KAogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXBvc2l0aW9uQmVm
b3JlTGFzdE5ld2xpbmUsICJCdWlsdGluRXhlY3V0YWJsZXMgc2hvdWxkIGFsd2F5cyB1c2UgYSA4
LWJpdCBzdHJpbmciKTsKICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShjb25zdHJ1Y3Rvcktp
bmRGb3JUb3BMZXZlbEZ1bmN0aW9uRXhwcmVzc2lvbnMgPT0gQ29uc3RydWN0b3JLaW5kOjpOb25l
LCAiQnVpbHRpbkV4ZWN1dGFibGVzJyBzcGVjaWFsIGNvbnN0cnVjdG9ycyBzaG91bGQgYWx3YXlz
IHVzZSBhIDgtYml0IHN0cmluZyIpOwotICAgICAgICBQYXJzZXI8TGV4ZXI8VUNoYXI+PiBwYXJz
ZXIodm0sIHNvdXJjZSwgaW1wbGVtZW50YXRpb25WaXNpYmlsaXR5LCBidWlsdGluTW9kZSwgbGV4
aWNhbGx5U2NvcGVkRmVhdHVyZXMsIHNjcmlwdE1vZGUsIHBhcnNlTW9kZSwgRnVuY3Rpb25Nb2Rl
OjpOb25lLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBE
ZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsIGlzRXZhbE5vZGUsIEV2YWxDb250ZXh0VHlwZTo6Tm9u
ZSwgZGVidWdnZXJQYXJzZURhdGEsIGlzSW5zaWRlT3JkaW5hcnlGdW5jdGlvbik7CisgICAgICAg
IFBhcnNlcjxMZXhlcjxVQ2hhcj4+IHBhcnNlcih2bSwgc291cmNlLCBpbXBsZW1lbnRhdGlvblZp
c2liaWxpdHksIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBwYXJzZU1vZGUs
IEZ1bmN0aW9uTW9kZTo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIENvbnN0cnVjdG9y
S2luZDo6Tm9uZSwgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBpc0V2YWxOb2RlLCBFdmFsQ29u
dGV4dFR5cGU6Ok5vbmUsIGRlYnVnZ2VyUGFyc2VEYXRhLCBpc0luc2lkZU9yZGluYXJ5RnVuY3Rp
b24pOwogICAgICAgICByZXN1bHQgPSBwYXJzZXIucGFyc2U8UGFyc2VkTm9kZT4oZXJyb3IsIG5h
bWUsIFBhcnNpbmdDb250ZXh0OjpOb3JtYWwpOwogICAgIH0KIApAQCAtMjM1NCw3ICsyMzUyLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFBhcnNlZE5vZGU+IHBhcnNlUm9vdE5vZGUoCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmFtTm9kZT4gcGFyc2VG
dW5jdGlvbkZvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2UsIExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBQ
YXJzZXJFcnJvciYgZXJyb3IsIEpTVGV4dFBvc2l0aW9uKiBwb3NpdGlvbkJlZm9yZUxhc3ROZXds
aW5lLCBzdGQ6Om9wdGlvbmFsPGludD4gZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQ
b3NpdGlvbikKK2lubGluZSBzdGQ6OnVuaXF1ZV9wdHI8UHJvZ3JhbU5vZGU+IHBhcnNlRnVuY3Rp
b25Gb3JGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNl
LCBQYXJzZXJFcnJvciYgZXJyb3IsIEpTVGV4dFBvc2l0aW9uKiBwb3NpdGlvbkJlZm9yZUxhc3RO
ZXdsaW5lLCBzdGQ6Om9wdGlvbmFsPGludD4gZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNF
bmRQb3NpdGlvbikKIHsKICAgICBBU1NFUlQoIXNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2UoKS5p
c051bGwoKSk7CiAKQEAgLTIzNjYsMTIgKzIzNjQsMTIgQEAgaW5saW5lIHN0ZDo6dW5pcXVlX3B0
cjxQcm9ncmFtTm9kZT4gcGFyc2VGdW5jdGlvbkZvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZt
LAogICAgIGJvb2wgaXNFdmFsTm9kZSA9IGZhbHNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9n
cmFtTm9kZT4gcmVzdWx0OwogICAgIGlmIChzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlKCkuaXM4
Qml0KCkpIHsKLSAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4gcGFyc2VyKHZtLCBzb3VyY2Us
IEltcGxlbWVudGF0aW9uVmlzaWJpbGl0eTo6UHVibGljLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpO
b3RCdWlsdGluLCBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJTY3JpcHRNb2RlOjpD
bGFzc2ljLCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBGdW5jdGlvbk1vZGU6Ok5vbmUs
IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIERlcml2ZWRD
b250ZXh0VHlwZTo6Tm9uZSwgaXNFdmFsTm9kZSwgRXZhbENvbnRleHRUeXBlOjpOb25lLCBudWxs
cHRyKTsKKyAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4gcGFyc2VyKHZtLCBzb3VyY2UsIElt
cGxlbWVudGF0aW9uVmlzaWJpbGl0eTo6UHVibGljLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RC
dWlsdGluLCBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2Rl
OjpDbGFzc2ljLCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBGdW5jdGlvbk1vZGU6Ok5v
bmUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIERlcml2
ZWRDb250ZXh0VHlwZTo6Tm9uZSwgaXNFdmFsTm9kZSwgRXZhbENvbnRleHRUeXBlOjpOb25lLCBu
dWxscHRyKTsKICAgICAgICAgcmVzdWx0ID0gcGFyc2VyLnBhcnNlPFByb2dyYW1Ob2RlPihlcnJv
ciwgbmFtZSwgUGFyc2luZ0NvbnRleHQ6OkZ1bmN0aW9uQ29uc3RydWN0b3IsIGZ1bmN0aW9uQ29u
c3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24pOwogICAgICAgICBpZiAocG9zaXRpb25CZWZv
cmVMYXN0TmV3bGluZSkKICAgICAgICAgICAgICpwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lID0g
cGFyc2VyLnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUoKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBQYXJzZXI8TGV4ZXI8VUNoYXI+PiBwYXJzZXIodm0sIHNvdXJjZSwgSW1wbGVtZW50YXRpb25W
aXNpYmlsaXR5OjpQdWJsaWMsIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIGxleGlj
YWxseVNjb3BlZEZlYXR1cmVzLCBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWMsIFNvdXJjZVBh
cnNlTW9kZTo6UHJvZ3JhbU1vZGUsIEZ1bmN0aW9uTW9kZTo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpO
b3ROZWVkZWQsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgRGVyaXZlZENvbnRleHRUeXBlOjpOb25l
LCBpc0V2YWxOb2RlLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsIG51bGxwdHIpOworICAgICAgICBQ
YXJzZXI8TGV4ZXI8VUNoYXI+PiBwYXJzZXIodm0sIHNvdXJjZSwgSW1wbGVtZW50YXRpb25WaXNp
YmlsaXR5OjpQdWJsaWMsIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIEpTUGFyc2Vy
U3RyaWN0TW9kZTo6Tm90U3RyaWN0LCBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWMsIFNvdXJj
ZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIEZ1bmN0aW9uTW9kZTo6Tm9uZSwgU3VwZXJCaW5kaW5n
OjpOb3ROZWVkZWQsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgRGVyaXZlZENvbnRleHRUeXBlOjpO
b25lLCBpc0V2YWxOb2RlLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsIG51bGxwdHIpOwogICAgICAg
ICByZXN1bHQgPSBwYXJzZXIucGFyc2U8UHJvZ3JhbU5vZGU+KGVycm9yLCBuYW1lLCBQYXJzaW5n
Q29udGV4dDo6RnVuY3Rpb25Db25zdHJ1Y3RvciwgZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRl
cnNFbmRQb3NpdGlvbik7CiAgICAgICAgIGlmIChwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKQog
ICAgICAgICAgICAgKnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUgPSBwYXJzZXIucG9zaXRpb25C
ZWZvcmVMYXN0TmV3bGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJNb2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJN
b2Rlcy5oCmluZGV4IDBjZjVlNWYzNTlkZS4uN2EwZjlmZTc1YWVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCkBAIC0zMiw2ICszMiw3IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCitlbnVtIGNsYXNzIEpTUGFyc2VyU3RyaWN0TW9kZSB7IE5vdFN0cmljdCwg
U3RyaWN0IH07CiBlbnVtIGNsYXNzIEpTUGFyc2VyQnVpbHRpbk1vZGUgeyBOb3RCdWlsdGluLCBC
dWlsdGluIH07CiBlbnVtIGNsYXNzIEpTUGFyc2VyU2NyaXB0TW9kZSB7IENsYXNzaWMsIE1vZHVs
ZSB9OwogCkBAIC0zMjIsOSArMzIzLDggQEAgdHlwZWRlZiB1aW50OF90IExleGljYWxseVNjb3Bl
ZEZlYXR1cmVzOwogCiBjb25zdCBMZXhpY2FsbHlTY29wZWRGZWF0dXJlcyBOb0xleGljYWxseVNj
b3BlZEZlYXR1cmVzICAgICAgICAgICAgICAgICAgICAgPSAwOwogY29uc3QgTGV4aWNhbGx5U2Nv
cGVkRmVhdHVyZXMgU3RyaWN0TW9kZUxleGljYWxseVNjb3BlZEZlYXR1cmUgICAgICAgICA9IDEg
PDwgMDsKLWNvbnN0IExleGljYWxseVNjb3BlZEZlYXR1cmVzIFRhaW50ZWRCeVdpdGhTY29wZUxl
eGljYWxseVNjb3BlZEZlYXR1cmUgPSAxIDw8IDE7CiAKLWNvbnN0IExleGljYWxseVNjb3BlZEZl
YXR1cmVzIEFsbExleGljYWxseVNjb3BlZEZlYXR1cmVzID0gTm9MZXhpY2FsbHlTY29wZWRGZWF0
dXJlcyB8IFN0cmljdE1vZGVMZXhpY2FsbHlTY29wZWRGZWF0dXJlIHwgVGFpbnRlZEJ5V2l0aFNj
b3BlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZTsKK2NvbnN0IExleGljYWxseVNjb3BlZEZlYXR1cmVz
IEFsbExleGljYWxseVNjb3BlZEZlYXR1cmVzID0gTm9MZXhpY2FsbHlTY29wZWRGZWF0dXJlcyB8
IFN0cmljdE1vZGVMZXhpY2FsbHlTY29wZWRGZWF0dXJlOwogc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBiaXRXaWR0aE9mTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMgPSAyOwogc3RhdGljX2Fzc2Vy
dChBbGxMZXhpY2FsbHlTY29wZWRGZWF0dXJlcyA8PSAoMSA8PCBiaXRXaWR0aE9mTGV4aWNhbGx5
U2NvcGVkRmVhdHVyZXMpIC0gMSwgIkxleGljYWxseVNjb3BlZEZlYXR1cmVzIG11c3QgYmUgMmJp
dHMiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VD
b2RlS2V5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaApp
bmRleCA0YjY0MmI5NzExMWUuLjFhYWYwYmJjZmQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmgKQEAgLTQxLDE3ICs0MSwxNyBAQCBwdWJsaWM6CiAg
ICAgU291cmNlQ29kZUZsYWdzKCkgPSBkZWZhdWx0OwogCiAgICAgU291cmNlQ29kZUZsYWdzKAot
ICAgICAgICBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSwgTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMg
bGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLAor
ICAgICAgICBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmlj
dE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCAKICAgICAgICAgRGVyaXZlZENv
bnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0
VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LAogICAgICAgICBPcHRpb25TZXQ8Q29k
ZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUpCiAgICAgICAgIDogbV9mbGFncygK
LSAgICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUdlbmVyYXRpb25Nb2RlLnRv
UmF3KCkpIDw8IDEwKSB8Ci0gICAgICAgICAgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGlzQXJy
b3dGdW5jdGlvbkNvbnRleHQpIDw8IDkpIHwKLSAgICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oZXZhbENvbnRleHRUeXBlKSA8PCA3KSB8Ci0gICAgICAgICAgICAoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGRlcml2ZWRDb250ZXh0VHlwZSkgPDwgNSkgfAotICAgICAgICAgICAgKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzY3JpcHRNb2RlKSA8PCA0KSB8Ci0gICAgICAgICAgICAoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGxleGljYWxseVNjb3BlZEZlYXR1cmVzKSA8PCAyKSB8Ci0gICAgICAg
ICAgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVUeXBlKSkKKyAgICAgICAgICAgIChzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oY29kZUdlbmVyYXRpb25Nb2RlLnRvUmF3KCkpIDw8IDYpIHwKKyAg
ICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyaXB0TW9kZSkgPDwgNSkgfAorICAg
ICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpc0Fycm93RnVuY3Rpb25Db250ZXh0KSA8
PCA0KSB8CisgICAgICAgICAgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGV2YWxDb250ZXh0VHlw
ZSkgPDwgMykgfAorICAgICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXJpdmVkQ29u
dGV4dFR5cGUpIDw8IDIpIHwKKyAgICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29k
ZVR5cGUpIDw8IDEpIHwKKyAgICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RyaWN0
TW9kZSkpCiAgICAgICAgICkKICAgICB7CiAgICAgfQpAQCAtNzMsMTIgKzczLDEyIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBTb3VyY2VDb2RlS2V5KAotICAgICAgICBjb25zdCBVbmxpbmtlZFNv
dXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgU291cmNlQ29kZVR5cGUg
Y29kZVR5cGUsIExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVz
LAorICAgICAgICBjb25zdCBVbmxpbmtlZFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFN0
cmluZyYgbmFtZSwgU291cmNlQ29kZVR5cGUgY29kZVR5cGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBz
dHJpY3RNb2RlLCAKICAgICAgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIERlcml2
ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29u
dGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwKICAgICAgICAgT3B0aW9uU2V0
PENvZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlLCBzdGQ6Om9wdGlvbmFsPGlu
dD4gZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbikKICAgICAgICAgICAg
IDogbV9zb3VyY2VDb2RlKHNvdXJjZUNvZGUpCiAgICAgICAgICAgICAsIG1fbmFtZShuYW1lKQot
ICAgICAgICAgICAgLCBtX2ZsYWdzKGNvZGVUeXBlLCBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywg
c2NyaXB0TW9kZSwgZGVyaXZlZENvbnRleHRUeXBlLCBldmFsQ29udGV4dFR5cGUsIGlzQXJyb3dG
dW5jdGlvbkNvbnRleHQsIGNvZGVHZW5lcmF0aW9uTW9kZSkKKyAgICAgICAgICAgICwgbV9mbGFn
cyhjb2RlVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgZGVyaXZlZENvbnRleHRUeXBlLCBl
dmFsQ29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGNvZGVHZW5lcmF0aW9uTW9k
ZSkKICAgICAgICAgICAgICwgbV9mdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0
aW9uKGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24udmFsdWVfb3IoLTEp
KQogICAgICAgICAgICAgLCBtX2hhc2goc291cmNlQ29kZS5oYXNoKCkgXiBtX2ZsYWdzLmJpdHMo
KSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZVByb3ZpZGVyQ2FjaGVJdGVtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZVByb3ZpZGVyQ2FjaGVJdGVtLmgKaW5kZXggM2Q5ZTZhNjYyZTc0Li5mYzU4MmNlNjQ2MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNo
ZUl0ZW0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVy
Q2FjaGVJdGVtLmgKQEAgLTc5LDggKzc5LDYgQEAgcHVibGljOgogICAgICAgICBMZXhpY2FsbHlT
Y29wZWRGZWF0dXJlcyBmZWF0dXJlcyA9IE5vTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXM7CiAgICAg
ICAgIGlmIChzdHJpY3RNb2RlKQogICAgICAgICAgICAgZmVhdHVyZXMgfD0gU3RyaWN0TW9kZUxl
eGljYWxseVNjb3BlZEZlYXR1cmU7Ci0gICAgICAgIGlmICh0YWludGVkQnlXaXRoU2NvcGUpCi0g
ICAgICAgICAgICBmZWF0dXJlcyB8PSBUYWludGVkQnlXaXRoU2NvcGVMZXhpY2FsbHlTY29wZWRG
ZWF0dXJlOwogICAgICAgICByZXR1cm4gZmVhdHVyZXM7CiAgICAgfQogCkBAIC05NCw3ICs5Miw2
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsYXN0VG9rZW5FbmRPZmZzZXQ6IDMxOwogICAgIGJv
b2wgbmVlZHNTdXBlckJpbmRpbmc6IDE7CiAgICAgdW5zaWduZWQgcGFyYW1ldGVyQ291bnQgOiAz
MTsKLSAgICBib29sIHRhaW50ZWRCeVdpdGhTY29wZSA6IDE7CiAgICAgdW5zaWduZWQgbGFzdFRv
a2VuTGluZVN0YXJ0T2Zmc2V0IDogMzE7CiAgICAgYm9vbCBpc0JvZHlBcnJvd0V4cHJlc3Npb24g
OiAxOwogICAgIHVuc2lnbmVkIHVzZWRWYXJpYWJsZXNDb3VudDsKQEAgLTEzNiw3ICsxMzMsNiBA
QCBpbmxpbmUgU291cmNlUHJvdmlkZXJDYWNoZUl0ZW06OlNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVt
KGNvbnN0IFNvdXJjZVByb3ZpZGVyQ2FjaAogICAgICwgbGFzdFRva2VuRW5kT2Zmc2V0KHBhcmFt
ZXRlcnMubGFzdFRva2VuRW5kT2Zmc2V0KQogICAgICwgbmVlZHNTdXBlckJpbmRpbmcocGFyYW1l
dGVycy5uZWVkc1N1cGVyQmluZGluZykKICAgICAsIHBhcmFtZXRlckNvdW50KHBhcmFtZXRlcnMu
cGFyYW1ldGVyQ291bnQpCi0gICAgLCB0YWludGVkQnlXaXRoU2NvcGUocGFyYW1ldGVycy5sZXhp
Y2FsbHlTY29wZWRGZWF0dXJlcyAmIFRhaW50ZWRCeVdpdGhTY29wZUxleGljYWxseVNjb3BlZEZl
YXR1cmUpCiAgICAgLCBsYXN0VG9rZW5MaW5lU3RhcnRPZmZzZXQocGFyYW1ldGVycy5sYXN0VG9r
ZW5MaW5lU3RhcnRPZmZzZXQpCiAgICAgLCBpc0JvZHlBcnJvd0V4cHJlc3Npb24ocGFyYW1ldGVy
cy5pc0JvZHlBcnJvd0V4cHJlc3Npb24pCiAgICAgLCB1c2VkVmFyaWFibGVzQ291bnQocGFyYW1l
dGVycy51c2VkVmFyaWFibGVzLnNpemUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db2RlQ2FjaGUuY3BwCmluZGV4IDQ1ZTY5ZGUxNDAyMC4uZThmYjM1ODYzNGExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKQEAgLTc0LDEzICs3NCwx
MyBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yRnVuY3Rpb25zKFZN
JiB2bSwgVW5saW5rZWRDb2RlQmxvY2sqIHVubAogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgVW5saW5r
ZWRDb2RlQmxvY2tUeXBlLCBjbGFzcyBFeGVjdXRhYmxlVHlwZSA9IFNjcmlwdEV4ZWN1dGFibGU+
Ci1VbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2tJbXBsKFZN
JiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBMZXhpY2FsbHlTY29wZWRGZWF0dXJlcyBs
ZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIE9w
dGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2VyRXJy
b3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBEZXJpdmVkQ29udGV4
dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGNv
bnN0IFREWkVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWiA9IG51bGxwdHIsIGNvbnN0IFBy
aXZhdGVOYW1lRW52aXJvbm1lbnQqIHByaXZhdGVOYW1lRW52aXJvbm1lbnQgPSBudWxscHRyLCBF
eGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSA9IG51bGxwdHIpCitVbmxpbmtlZENvZGVCbG9ja1R5
cGUqIGdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2tJbXBsKFZNJiB2bSwgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRN
b2RlIHNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0
aW9uTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRU
eXBlLCBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dG
dW5jdGlvbkNvbnRleHQsIGNvbnN0IFREWkVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWiA9
IG51bGxwdHIsIGNvbnN0IFByaXZhdGVOYW1lRW52aXJvbm1lbnQqIHByaXZhdGVOYW1lRW52aXJv
bm1lbnQgPSBudWxscHRyLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSA9IG51bGxwdHIpCiB7
CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBDYWNoZVR5cGVzPFVubGlua2VkQ29kZUJsb2NrVHlwZT46
OlJvb3ROb2RlIFJvb3ROb2RlOwogICAgIGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1bmN0aW9uID0g
ZXhlY3V0YWJsZSAmJiBleGVjdXRhYmxlLT5pc0luc2lkZU9yZGluYXJ5RnVuY3Rpb24oKTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSb290Tm9kZT4gcm9vdE5vZGUgPSBwYXJzZTxSb290Tm9kZT4o
Ci0gICAgICAgIHZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwgSW1wbGVtZW50YXRpb25WaXNpYmls
aXR5OjpQdWJsaWMsIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIGxleGljYWxseVNj
b3BlZEZlYXR1cmVzLCBzY3JpcHRNb2RlLCBDYWNoZVR5cGVzPFVubGlua2VkQ29kZUJsb2NrVHlw
ZT46OnBhcnNlTW9kZSwgRnVuY3Rpb25Nb2RlOjpOb25lLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRl
ZCwgZXJyb3IsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgZGVyaXZlZENvbnRleHRUeXBlLCBldmFs
Q29udGV4dFR5cGUsIHByaXZhdGVOYW1lRW52aXJvbm1lbnQsIG51bGxwdHIsIGlzSW5zaWRlT3Jk
aW5hcnlGdW5jdGlvbik7CisgICAgICAgIHZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwgSW1wbGVt
ZW50YXRpb25WaXNpYmlsaXR5OjpQdWJsaWMsIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0
aW4sIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIENhY2hlVHlwZXM8VW5saW5rZWRDb2RlQmxvY2tU
eXBlPjo6cGFyc2VNb2RlLCBGdW5jdGlvbk1vZGU6Ok5vbmUsIFN1cGVyQmluZGluZzo6Tm90TmVl
ZGVkLCBlcnJvciwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBkZXJpdmVkQ29udGV4dFR5cGUsIGV2
YWxDb250ZXh0VHlwZSwgcHJpdmF0ZU5hbWVFbnZpcm9ubWVudCwgbnVsbHB0ciwgaXNJbnNpZGVP
cmRpbmFyeUZ1bmN0aW9uKTsKIAogICAgIGlmICghcm9vdE5vZGUpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtMTIwLDIyICsxMjAsMjIgQEAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZW5l
cmF0ZVVubGlua2VkQ29kZUJsb2NrSW1wbChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHMKIH0K
IAogdGVtcGxhdGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJs
ZVR5cGU+Ci1VbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2so
Vk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgT3B0aW9uU2V0PENvZGVHZW5lcmF0
aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250
ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFREWkVudmlyb25tZW50KiB2YXJpYWJsZXNV
bmRlclREWiA9IG51bGxwdHIsIGNvbnN0IFByaXZhdGVOYW1lRW52aXJvbm1lbnQqIHByaXZhdGVO
YW1lRW52aXJvbm1lbnQgPSBudWxscHRyKQorVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZW5lcmF0
ZVVubGlua2VkQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpT
UGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2Rl
PiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBl
IGV2YWxDb250ZXh0VHlwZSwgY29uc3QgVERaRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERa
ID0gbnVsbHB0ciwgY29uc3QgUHJpdmF0ZU5hbWVFbnZpcm9ubWVudCogcHJpdmF0ZU5hbWVFbnZp
cm9ubWVudCA9IG51bGxwdHIpCiB7Ci0gICAgcmV0dXJuIGdlbmVyYXRlVW5saW5rZWRDb2RlQmxv
Y2tJbXBsPFVubGlua2VkQ29kZUJsb2NrVHlwZSwgRXhlY3V0YWJsZVR5cGU+KHZtLCBzb3VyY2Us
IGV4ZWN1dGFibGUtPmxleGljYWxseVNjb3BlZEZlYXR1cmVzKCksIHNjcmlwdE1vZGUsIGNvZGVH
ZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgZXhlY3V0YWJsZS0+ZGVyaXZl
ZENvbnRleHRUeXBlKCksIGV4ZWN1dGFibGUtPmlzQXJyb3dGdW5jdGlvbkNvbnRleHQoKSwgdmFy
aWFibGVzVW5kZXJURFosIHByaXZhdGVOYW1lRW52aXJvbm1lbnQsIGV4ZWN1dGFibGUpOworICAg
IHJldHVybiBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrSW1wbDxVbmxpbmtlZENvZGVCbG9ja1R5
cGUsIEV4ZWN1dGFibGVUeXBlPih2bSwgc291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBj
b2RlR2VuZXJhdGlvbk1vZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIGV4ZWN1dGFibGUtPmRl
cml2ZWRDb250ZXh0VHlwZSgpLCBleGVjdXRhYmxlLT5pc0Fycm93RnVuY3Rpb25Db250ZXh0KCks
IHZhcmlhYmxlc1VuZGVyVERaLCBwcml2YXRlTmFtZUVudmlyb25tZW50LCBleGVjdXRhYmxlKTsK
IH0KIAotVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9y
RGlyZWN0RXZhbChWTSYgdm0sIERpcmVjdEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRp
b25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNlckVycm9y
JiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgY29uc3QgVERaRW52aXJv
bm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaLCBjb25zdCBQcml2YXRlTmFtZUVudmlyb25tZW50KiBw
cml2YXRlTmFtZUVudmlyb25tZW50KQorVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBnZW5lcmF0ZVVu
bGlua2VkQ29kZUJsb2NrRm9yRGlyZWN0RXZhbChWTSYgdm0sIERpcmVjdEV2YWxFeGVjdXRhYmxl
KiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyU3RyaWN0TW9k
ZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgT3B0aW9uU2V0PENv
ZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlLCBQYXJzZXJFcnJvciYgZXJyb3Is
IEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFREWkVudmlyb25tZW50KiB2
YXJpYWJsZXNVbmRlclREWiwgY29uc3QgUHJpdmF0ZU5hbWVFbnZpcm9ubWVudCogcHJpdmF0ZU5h
bWVFbnZpcm9ubWVudCkKIHsKLSAgICByZXR1cm4gZ2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jazxV
bmxpbmtlZEV2YWxDb2RlQmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIHNjcmlwdE1vZGUs
IGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5k
ZXJURFosIHByaXZhdGVOYW1lRW52aXJvbm1lbnQpOworICAgIHJldHVybiBnZW5lcmF0ZVVubGlu
a2VkQ29kZUJsb2NrPFVubGlua2VkRXZhbENvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJj
ZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgY29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvciwgZXZh
bENvbnRleHRUeXBlLCB2YXJpYWJsZXNVbmRlclREWiwgcHJpdmF0ZU5hbWVFbnZpcm9ubWVudCk7
CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5cGU+CiBzdGQ6OmVuYWJs
ZV9pZl90PCFzdGQ6OmlzX3NhbWU8VW5saW5rZWRDb2RlQmxvY2tUeXBlLCBVbmxpbmtlZEV2YWxD
b2RlQmxvY2s+Ojp2YWx1ZSwgVW5saW5rZWRDb2RlQmxvY2tUeXBlKj4KLXJlY3Vyc2l2ZWx5R2Vu
ZXJhdGVVbmxpbmtlZENvZGVCbG9jayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
TGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIEpTUGFyc2Vy
U2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2Rl
R2VuZXJhdGlvbk1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxD
b250ZXh0VHlwZSkKK3JlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jayhWTSYgdm0s
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUs
IEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25N
b2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRU
eXBlIGV2YWxDb250ZXh0VHlwZSkKIHsKICAgICBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQg
PSBmYWxzZTsKLSAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIHVubGlua2VkQ29kZUJsb2NrID0g
Z2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ltcGw8VW5saW5rZWRDb2RlQmxvY2tUeXBlPih2bSwg
c291cmNlLCBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgc2NyaXB0TW9kZSwgY29kZUdlbmVyYXRp
b25Nb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUs
IGlzQXJyb3dGdW5jdGlvbkNvbnRleHQpOworICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogdW5s
aW5rZWRDb2RlQmxvY2sgPSBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrSW1wbDxVbmxpbmtlZENv
ZGVCbG9ja1R5cGU+KHZtLCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5l
cmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgRGVyaXZlZENvbnRleHRUeXBlOjpO
b25lLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0KTsKICAgICBpZiAoIXVubGlua2VkQ29kZUJsb2Nr
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMTQzLDIzICsxNDMsMjMgQEAgcmVjdXJz
aXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlLCBMZXhpY2FsbHkKICAgICByZXR1cm4gdW5saW5rZWRDb2RlQmxvY2s7CiB9CiAKLVVu
bGlua2VkUHJvZ3JhbUNvZGVCbG9jayogcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJs
b2NrRm9yUHJvZ3JhbShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgTGV4aWNhbGx5
U2NvcGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIEpTUGFyc2VyU2NyaXB0TW9k
ZSBzY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlv
bk1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlw
ZSkKK1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2Vk
Q29kZUJsb2NrRm9yUHJvZ3JhbShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQ
YXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2Rl
LCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNl
ckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkKIHsKLSAgICBy
ZXR1cm4gcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrPFVubGlua2VkUHJvZ3Jh
bUNvZGVCbG9jaz4odm0sIHNvdXJjZSwgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIHNjcmlwdE1v
ZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSk7CisgICAgcmV0
dXJuIHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jazxVbmxpbmtlZFByb2dyYW1D
b2RlQmxvY2s+KHZtLCBzb3VyY2UsIHN0cmljdE1vZGUsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0
aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSk7CiB9CiAKLVVubGlua2VkTW9kdWxlUHJv
Z3JhbUNvZGVCbG9jayogcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yTW9k
dWxlUHJvZ3JhbShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgTGV4aWNhbGx5U2Nv
cGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIEpTUGFyc2VyU2NyaXB0TW9kZSBz
Y3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1v
ZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkK
K1VubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlu
a2VkQ29kZUJsb2NrRm9yTW9kdWxlUHJvZ3JhbShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNv
dXJjZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBz
Y3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1v
ZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkK
IHsKLSAgICByZXR1cm4gcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrPFVubGlu
a2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4odm0sIHNvdXJjZSwgbGV4aWNhbGx5U2NvcGVkRmVh
dHVyZXMsIHNjcmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0
VHlwZSk7CisgICAgcmV0dXJuIHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9jazxV
bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+KHZtLCBzb3VyY2UsIHN0cmljdE1vZGUsIHNj
cmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSk7CiB9
CiAKIHRlbXBsYXRlIDxjbGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5cGUsIGNsYXNzIEV4ZWN1dGFi
bGVUeXBlPgotVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldFVubGlua2VkR2xv
YmFsQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIE9wdGlvblNl
dDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2VyRXJyb3ImIGVy
cm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlKQorVW5saW5rZWRDb2RlQmxvY2tU
eXBlKiBDb2RlQ2FjaGU6OmdldFVubGlua2VkR2xvYmFsQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0
YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJT
dHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRp
b25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNlckVycm9y
JiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkKIHsKICAgICBEZXJpdmVk
Q29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlID0gZXhlY3V0YWJsZS0+ZGVyaXZlZENvbnRl
eHRUeXBlKCk7CiAgICAgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0ID0gZXhlY3V0YWJsZS0+
aXNBcnJvd0Z1bmN0aW9uQ29udGV4dCgpOwogICAgIFNvdXJjZUNvZGVLZXkga2V5KAotICAgICAg
ICBzb3VyY2UsIFN0cmluZygpLCBDYWNoZVR5cGVzPFVubGlua2VkQ29kZUJsb2NrVHlwZT46OmNv
ZGVUeXBlLCBleGVjdXRhYmxlLT5sZXhpY2FsbHlTY29wZWRGZWF0dXJlcygpLCBzY3JpcHRNb2Rl
LAorICAgICAgICBzb3VyY2UsIFN0cmluZygpLCBDYWNoZVR5cGVzPFVubGlua2VkQ29kZUJsb2Nr
VHlwZT46OmNvZGVUeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCAKICAgICAgICAgZGVyaXZl
ZENvbnRleHRUeXBlLCBldmFsQ29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGNv
ZGVHZW5lcmF0aW9uTW9kZSwKICAgICAgICAgc3RkOjpudWxsb3B0KTsKICAgICBVbmxpbmtlZENv
ZGVCbG9ja1R5cGUqIHVubGlua2VkQ29kZUJsb2NrID0gbV9zb3VyY2VDb2RlLmZpbmRDYWNoZUFu
ZFVwZGF0ZUFnZTxVbmxpbmtlZENvZGVCbG9ja1R5cGU+KHZtLCBrZXkpOwpAQCAtMTc2LDcgKzE3
Niw3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRVbmxpbmtlZEdsb2Jh
bENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUCiAgICAgICAgIHJldHVybiB1bmxpbmtlZENv
ZGVCbG9jazsKICAgICB9CiAKLSAgICB1bmxpbmtlZENvZGVCbG9jayA9IGdlbmVyYXRlVW5saW5r
ZWRDb2RlQmxvY2s8VW5saW5rZWRDb2RlQmxvY2tUeXBlLCBFeGVjdXRhYmxlVHlwZT4odm0sIGV4
ZWN1dGFibGUsIHNvdXJjZSwgc2NyaXB0TW9kZSwgY29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvciwg
ZXZhbENvbnRleHRUeXBlKTsKKyAgICB1bmxpbmtlZENvZGVCbG9jayA9IGdlbmVyYXRlVW5saW5r
ZWRDb2RlQmxvY2s8VW5saW5rZWRDb2RlQmxvY2tUeXBlLCBFeGVjdXRhYmxlVHlwZT4odm0sIGV4
ZWN1dGFibGUsIHNvdXJjZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgY29kZUdlbmVyYXRpb25N
b2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlKTsKIAogICAgIGlmICh1bmxpbmtlZENvZGVCbG9j
ayAmJiBPcHRpb25zOjp1c2VDb2RlQ2FjaGUoKSkgewogICAgICAgICBtX3NvdXJjZUNvZGUuYWRk
Q2FjaGUoa2V5LCBTb3VyY2VDb2RlVmFsdWUodm0sIHVubGlua2VkQ29kZUJsb2NrLCBtX3NvdXJj
ZUNvZGUuYWdlKCkpKTsKQEAgLTE4OSwyNyArMTg5LDI3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlw
ZSogQ29kZUNhY2hlOjpnZXRVbmxpbmtlZEdsb2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFi
bGVUCiAgICAgcmV0dXJuIHVubGlua2VkQ29kZUJsb2NrOwogfQogCi1VbmxpbmtlZFByb2dyYW1D
b2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwg
UHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
T3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlLCBQYXJzZXJF
cnJvciYgZXJyb3IpCitVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0VW5s
aW5rZWRQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1v
ZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFy
c2VyRXJyb3ImIGVycm9yKQogewotICAgIHJldHVybiBnZXRVbmxpbmtlZEdsb2JhbENvZGVCbG9j
azxVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIEpTUGFy
c2VyU2NyaXB0TW9kZTo6Q2xhc3NpYywgY29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvciwgRXZhbENv
bnRleHRUeXBlOjpOb25lKTsKKyAgICByZXR1cm4gZ2V0VW5saW5rZWRHbG9iYWxDb2RlQmxvY2s8
VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBzdHJpY3RN
b2RlLCBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWMsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJy
b3IsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSk7CiB9CiAKLVVubGlua2VkRXZhbENvZGVCbG9jayog
Q29kZUNhY2hlOjpnZXRVbmxpbmtlZEV2YWxDb2RlQmxvY2soVk0mIHZtLCBJbmRpcmVjdEV2YWxF
eGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIE9wdGlvblNl
dDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2VyRXJyb3ImIGVy
cm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlKQorVW5saW5rZWRFdmFsQ29kZUJs
b2NrKiBDb2RlQ2FjaGU6OmdldFVubGlua2VkRXZhbENvZGVCbG9jayhWTSYgdm0sIEluZGlyZWN0
RXZhbEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQ
YXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+
IGNvZGVHZW5lcmF0aW9uTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUg
ZXZhbENvbnRleHRUeXBlKQogewotICAgIHJldHVybiBnZXRVbmxpbmtlZEdsb2JhbENvZGVCbG9j
azxVbmxpbmtlZEV2YWxDb2RlQmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIEpTUGFyc2Vy
U2NyaXB0TW9kZTo6Q2xhc3NpYywgY29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvciwgZXZhbENvbnRl
eHRUeXBlKTsKKyAgICByZXR1cm4gZ2V0VW5saW5rZWRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRF
dmFsQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBzdHJpY3RNb2RlLCBKU1BhcnNl
clNjcmlwdE1vZGU6OkNsYXNzaWMsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250
ZXh0VHlwZSk7CiB9CiAKIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hl
OjpnZXRVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2soVk0mIHZtLCBNb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBPcHRpb25T
ZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUsIFBhcnNlckVycm9yJiBl
cnJvcikKIHsKLSAgICByZXR1cm4gZ2V0VW5saW5rZWRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRN
b2R1bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBKU1BhcnNlclNj
cmlwdE1vZGU6Ok1vZHVsZSwgY29kZUdlbmVyYXRpb25Nb2RlLCBlcnJvciwgRXZhbENvbnRleHRU
eXBlOjpOb25lKTsKKyAgICByZXR1cm4gZ2V0VW5saW5rZWRHbG9iYWxDb2RlQmxvY2s8VW5saW5r
ZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBKU1BhcnNl
clN0cmljdE1vZGU6OlN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2RlOjpNb2R1bGUsIGNvZGVHZW5l
cmF0aW9uTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSk7CiB9CiAKLVVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2FjaGU6OmdldFVubGlua2VkR2xvYmFsRnVuY3Rpb25F
eGVjdXRhYmxlKFZNJiB2bSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlLCBMZXhpY2FsbHlTY29wZWRGZWF0dXJlcyBsZXhpY2FsbHlTY29wZWRGZWF0dXJl
cywgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlLCBzdGQ6
Om9wdGlvbmFsPGludD4gZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbiwg
UGFyc2VyRXJyb3ImIGVycm9yKQorVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIENvZGVDYWNo
ZTo6Z2V0VW5saW5rZWRHbG9iYWxGdW5jdGlvbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIE9wdGlvblNldDxDb2RlR2Vu
ZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0
aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24sIFBhcnNlckVycm9yJiBlcnJvcikK
IHsKICAgICBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQgPSBmYWxzZTsKICAgICBTb3VyY2VD
b2RlS2V5IGtleSgKICAgICAgICAgc291cmNlLCBuYW1lLnN0cmluZygpLCBTb3VyY2VDb2RlVHlw
ZTo6RnVuY3Rpb25UeXBlLAotICAgICAgICBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywKKyAgICAg
ICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3QsCiAgICAgICAgIEpTUGFyc2VyU2NyaXB0
TW9kZTo6Q2xhc3NpYywKICAgICAgICAgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLAogICAgICAg
ICBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsCkBAIC0yMjYsNyArMjI2LDcgQEAgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqIENvZGVDYWNoZTo6Z2V0VW5saW5rZWRHbG9iYWxGdW5jdGlvbkV4ZWN1
dGFibGUoVk0mIHYKICAgICB9CiAKICAgICBKU1RleHRQb3NpdGlvbiBwb3NpdGlvbkJlZm9yZUxh
c3ROZXdsaW5lOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbSA9IHBh
cnNlRnVuY3Rpb25Gb3JGdW5jdGlvbkNvbnN0cnVjdG9yKHZtLCBzb3VyY2UsIGxleGljYWxseVNj
b3BlZEZlYXR1cmVzLCBlcnJvciwgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUsIGZ1bmN0aW9u
Q29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24pOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
cm9ncmFtTm9kZT4gcHJvZ3JhbSA9IHBhcnNlRnVuY3Rpb25Gb3JGdW5jdGlvbkNvbnN0cnVjdG9y
KHZtLCBzb3VyY2UsIGVycm9yLCAmcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSwgZnVuY3Rpb25D
b25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbik7CiAgICAgaWYgKCFwcm9ncmFtKSB7CiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGVycm9yLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtMjgzLDMwICsyODMsMzIgQEAgdm9pZCB3cml0ZUNvZGVCbG9jayhjb25zdCBT
b3VyY2VDb2RlS2V5JiBrZXksIGNvbnN0IFNvdXJjZUNvZGVWYWx1ZSYgdmFsdWUpCiAgICAga2V5
LnNvdXJjZSgpLnByb3ZpZGVyKCkuY29tbWl0Q2FjaGVkQnl0ZWNvZGUoKTsKIH0KIAotc3RhdGlj
IFNvdXJjZUNvZGVLZXkgc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRCeXRlY29kZShWTSYsIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIFNvdXJjZUNvZGVUeXBlIGNvZGVUeXBlLCBMZXhp
Y2FsbHlTY29wZWRGZWF0dXJlcyBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJTY3Jp
cHRNb2RlIHNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5l
cmF0aW9uTW9kZSkKK3N0YXRpYyBTb3VyY2VDb2RlS2V5IHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxp
emVkQnl0ZWNvZGUoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTb3VyY2VDb2Rl
VHlwZSBjb2RlVHlwZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIEpTUGFyc2VyU2Ny
aXB0TW9kZSBzY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2Vu
ZXJhdGlvbk1vZGUpCiB7CiAgICAgcmV0dXJuIFNvdXJjZUNvZGVLZXkoCi0gICAgICAgIHNvdXJj
ZUNvZGUsIFN0cmluZygpLCBjb2RlVHlwZSwgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIHNjcmlw
dE1vZGUsCisgICAgICAgIHNvdXJjZUNvZGUsIFN0cmluZygpLCBjb2RlVHlwZSwgc3RyaWN0TW9k
ZSwgc2NyaXB0TW9kZSwKICAgICAgICAgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBFdmFsQ29u
dGV4dFR5cGU6Ok5vbmUsIGZhbHNlLCBjb2RlR2VuZXJhdGlvbk1vZGUsCiAgICAgICAgIHN0ZDo6
bnVsbG9wdCk7CiB9CiAKIFNvdXJjZUNvZGVLZXkgc291cmNlQ29kZUtleUZvclNlcmlhbGl6ZWRQ
cm9ncmFtKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlQ29kZSkKIHsKKyAgICBKU1Bh
cnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0
OwogICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3JpcHRNb2Rl
OjpDbGFzc2ljOwotICAgIHJldHVybiBzb3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZEJ5dGVjb2Rl
KHZtLCBzb3VyY2VDb2RlLCBTb3VyY2VDb2RlVHlwZTo6UHJvZ3JhbVR5cGUsIE5vTGV4aWNhbGx5
U2NvcGVkRmVhdHVyZXMsIHNjcmlwdE1vZGUsIHsgfSk7CisgICAgcmV0dXJuIHNvdXJjZUNvZGVL
ZXlGb3JTZXJpYWxpemVkQnl0ZWNvZGUodm0sIHNvdXJjZUNvZGUsIFNvdXJjZUNvZGVUeXBlOjpQ
cm9ncmFtVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgeyB9KTsKIH0KIAogU291cmNlQ29k
ZUtleSBzb3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZE1vZHVsZShWTSYgdm0sIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZUNvZGUpCiB7CisgICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUg
PSBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdDsKICAgICBKU1BhcnNlclNjcmlwdE1vZGUgc2Ny
aXB0TW9kZSA9IEpTUGFyc2VyU2NyaXB0TW9kZTo6TW9kdWxlOwotICAgIHJldHVybiBzb3VyY2VD
b2RlS2V5Rm9yU2VyaWFsaXplZEJ5dGVjb2RlKHZtLCBzb3VyY2VDb2RlLCBTb3VyY2VDb2RlVHlw
ZTo6TW9kdWxlVHlwZSwgU3RyaWN0TW9kZUxleGljYWxseVNjb3BlZEZlYXR1cmUsIHNjcmlwdE1v
ZGUsIHsgfSk7CisgICAgcmV0dXJuIHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkQnl0ZWNvZGUo
dm0sIHNvdXJjZUNvZGUsIFNvdXJjZUNvZGVUeXBlOjpNb2R1bGVUeXBlLCBzdHJpY3RNb2RlLCBz
Y3JpcHRNb2RlLCB7IH0pOwogfQogCi1SZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IHNlcmlhbGl6ZUJ5
dGVjb2RlKFZNJiB2bSwgVW5saW5rZWRDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSwgTGV4aWNhbGx5U2NvcGVkRmVh
dHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRN
b2RlLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJv
ciYgZXJyb3IsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9k
ZSkKK1JlZlB0cjxDYWNoZWRCeXRlY29kZT4gc2VyaWFsaXplQnl0ZWNvZGUoVk0mIHZtLCBVbmxp
bmtlZENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFNvdXJj
ZUNvZGVUeXBlIGNvZGVUeXBlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgSlNQYXJz
ZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBm
ZCwgQnl0ZWNvZGVDYWNoZUVycm9yJiBlcnJvciwgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9k
ZT4gY29kZUdlbmVyYXRpb25Nb2RlKQogewogICAgIHJldHVybiBlbmNvZGVDb2RlQmxvY2sodm0s
Ci0gICAgICAgIHNvdXJjZUNvZGVLZXlGb3JTZXJpYWxpemVkQnl0ZWNvZGUodm0sIHNvdXJjZSwg
Y29kZVR5cGUsIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBzY3JpcHRNb2RlLCBjb2RlR2VuZXJh
dGlvbk1vZGUpLCBjb2RlQmxvY2ssIGZkLCBlcnJvcik7CisgICAgICAgIHNvdXJjZUNvZGVLZXlG
b3JTZXJpYWxpemVkQnl0ZWNvZGUodm0sIHNvdXJjZSwgY29kZVR5cGUsIHN0cmljdE1vZGUsIHNj
cmlwdE1vZGUsIGNvZGVHZW5lcmF0aW9uTW9kZSksIGNvZGVCbG9jaywgZmQsIGVycm9yKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAppbmRleCAzM2Nj
NDAwZjk2ZDUuLjc3MjUzMDkxODg1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29kZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29kZUNhY2hlLmgKQEAgLTIyMywxMCArMjIzLDEwIEBAIHByaXZhdGU6CiBjbGFzcyBDb2RlQ2Fj
aGUgewogICAgIFdURl9NQUtFX1RaT05FX0FMTE9DQVRFRChDb2RlQ2FjaGUpOwogcHVibGljOgot
ICAgIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogZ2V0VW5saW5rZWRQcm9ncmFtQ29kZUJsb2Nr
KFZNJiwgUHJvZ3JhbUV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgT3B0aW9uU2V0PENv
ZGVHZW5lcmF0aW9uTW9kZT4sIFBhcnNlckVycm9yJik7Ci0gICAgVW5saW5rZWRFdmFsQ29kZUJs
b2NrKiBnZXRVbmxpbmtlZEV2YWxDb2RlQmxvY2soVk0mLCBJbmRpcmVjdEV2YWxFeGVjdXRhYmxl
KiwgY29uc3QgU291cmNlQ29kZSYsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+LCBQYXJz
ZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSk7CisgICAgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2Nr
KiBnZXRVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2soVk0mLCBQcm9ncmFtRXhlY3V0YWJsZSosIGNv
bnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlclN0cmljdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJh
dGlvbk1vZGU+LCBQYXJzZXJFcnJvciYpOworICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogZ2V0
VW5saW5rZWRFdmFsQ29kZUJsb2NrKFZNJiwgSW5kaXJlY3RFdmFsRXhlY3V0YWJsZSosIGNvbnN0
IFNvdXJjZUNvZGUmLCBKU1BhcnNlclN0cmljdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlv
bk1vZGU+LCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSk7CiAgICAgVW5saW5rZWRNb2R1
bGVQcm9ncmFtQ29kZUJsb2NrKiBnZXRVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2soVk0m
LCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBPcHRpb25TZXQ8
Q29kZUdlbmVyYXRpb25Nb2RlPiwgUGFyc2VyRXJyb3ImKTsKLSAgICBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSogZ2V0VW5saW5rZWRHbG9iYWxGdW5jdGlvbkV4ZWN1dGFibGUoVk0mLCBjb25z
dCBJZGVudGlmaWVyJiwgY29uc3QgU291cmNlQ29kZSYsIExleGljYWxseVNjb3BlZEZlYXR1cmVz
LCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0
aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24sIFBhcnNlckVycm9yJik7CisgICAg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGdldFVubGlua2VkR2xvYmFsRnVuY3Rpb25FeGVj
dXRhYmxlKFZNJiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFNvdXJjZUNvZGUmLCBPcHRpb25T
ZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29uc3Ry
dWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24sIFBhcnNlckVycm9yJik7CiAKICAgICB2b2lkIHVw
ZGF0ZUNhY2hlKGNvbnN0IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiwgY29uc3QgU291cmNl
Q29kZSYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIGNvbnN0IFVubGlua2VkRnVuY3Rpb25Db2Rl
QmxvY2sqKTsKIApAQCAtMjM1LDcgKzIzNSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgVW5saW5rZWRDb2RlQmxvY2tUeXBlLCBjbGFzcyBFeGVjdXRhYmxlVHlw
ZT4gCi0gICAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZXRVbmxpbmtlZEdsb2JhbENvZGVCbG9j
ayhWTSYsIEV4ZWN1dGFibGVUeXBlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyU2NyaXB0
TW9kZSwgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4sIFBhcnNlckVycm9yJiwgRXZhbENv
bnRleHRUeXBlKTsKKyAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdldFVubGlua2VkR2xvYmFs
Q29kZUJsb2NrKFZNJiwgRXhlY3V0YWJsZVR5cGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJz
ZXJTdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlv
bk1vZGU+LCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSk7CiAKICAgICBDb2RlQ2FjaGVN
YXAgbV9zb3VyY2VDb2RlOwogfTsKQEAgLTI2MCwxMiArMjYwLDEyIEBAIHRlbXBsYXRlIDw+IHN0
cnVjdCBDYWNoZVR5cGVzPFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4gewogICAgIHN0
YXRpYyBjb25zdGV4cHIgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9k
ZTo6TW9kdWxlRXZhbHVhdGVNb2RlOwogfTsKIAotVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBnZW5l
cmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yRGlyZWN0RXZhbChWTSYsIERpcmVjdEV2YWxFeGVjdXRh
YmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyU2NyaXB0TW9kZSwgT3B0aW9uU2V0PENv
ZGVHZW5lcmF0aW9uTW9kZT4sIFBhcnNlckVycm9yJiwgRXZhbENvbnRleHRUeXBlLCBjb25zdCBU
RFpFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJURFosIGNvbnN0IFByaXZhdGVOYW1lRW52aXJv
bm1lbnQqKTsKLVVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogcmVjdXJzaXZlbHlHZW5lcmF0ZVVu
bGlua2VkQ29kZUJsb2NrRm9yUHJvZ3JhbShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBMZXhpY2Fs
bHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJTY3JpcHRNb2RlLCBPcHRpb25TZXQ8Q29kZUdlbmVy
YXRpb25Nb2RlPiwgUGFyc2VyRXJyb3ImLCBFdmFsQ29udGV4dFR5cGUpOwotVW5saW5rZWRNb2R1
bGVQcm9ncmFtQ29kZUJsb2NrKiByZWN1cnNpdmVseUdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2tG
b3JNb2R1bGVQcm9ncmFtKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIExleGljYWxseVNjb3BlZEZl
YXR1cmVzLCBKU1BhcnNlclNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+
LCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSk7CitVbmxpbmtlZEV2YWxDb2RlQmxvY2sq
IGdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2tGb3JEaXJlY3RFdmFsKFZNJiwgRGlyZWN0RXZhbEV4
ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJTdHJpY3RNb2RlLCBKU1BhcnNl
clNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+LCBQYXJzZXJFcnJvciYs
IEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVERaRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERa
LCBjb25zdCBQcml2YXRlTmFtZUVudmlyb25tZW50Kik7CitVbmxpbmtlZFByb2dyYW1Db2RlQmxv
Y2sqIHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ZvclByb2dyYW0oVk0mLCBj
b25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJTdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUs
IE9wdGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+LCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0
VHlwZSk7CitVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIHJlY3Vyc2l2ZWx5R2VuZXJh
dGVVbmxpbmtlZENvZGVCbG9ja0Zvck1vZHVsZVByb2dyYW0oVk0mLCBjb25zdCBTb3VyY2VDb2Rl
JiwgSlNQYXJzZXJTdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUsIE9wdGlvblNldDxDb2Rl
R2VuZXJhdGlvbk1vZGU+LCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSk7CiAKIHZvaWQg
d3JpdGVDb2RlQmxvY2soY29uc3QgU291cmNlQ29kZUtleSYsIGNvbnN0IFNvdXJjZUNvZGVWYWx1
ZSYpOwotUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBzZXJpYWxpemVCeXRlY29kZShWTSYsIFVubGlu
a2VkQ29kZUJsb2NrKiwgY29uc3QgU291cmNlQ29kZSYsIFNvdXJjZUNvZGVUeXBlLCBMZXhpY2Fs
bHlTY29wZWRGZWF0dXJlcywgSlNQYXJzZXJTY3JpcHRNb2RlLCBGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYW5kbGUgZmQsIEJ5dGVjb2RlQ2FjaGVFcnJvciYsIE9wdGlvblNldDxDb2RlR2VuZXJh
dGlvbk1vZGU+KTsKK1JlZlB0cjxDYWNoZWRCeXRlY29kZT4gc2VyaWFsaXplQnl0ZWNvZGUoVk0m
LCBVbmxpbmtlZENvZGVCbG9jayosIGNvbnN0IFNvdXJjZUNvZGUmLCBTb3VyY2VDb2RlVHlwZSwg
SlNQYXJzZXJTdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUsIEZpbGVTeXN0ZW06OlBsYXRm
b3JtRmlsZUhhbmRsZSBmZCwgQnl0ZWNvZGVDYWNoZUVycm9yJiwgT3B0aW9uU2V0PENvZGVHZW5l
cmF0aW9uTW9kZT4pOwogU291cmNlQ29kZUtleSBzb3VyY2VDb2RlS2V5Rm9yU2VyaWFsaXplZFBy
b2dyYW0oVk0mLCBjb25zdCBTb3VyY2VDb2RlJik7CiBTb3VyY2VDb2RlS2V5IHNvdXJjZUNvZGVL
ZXlGb3JTZXJpYWxpemVkTW9kdWxlKFZNJiwgY29uc3QgU291cmNlQ29kZSYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCmluZGV4IGI5NTc5MjMzMDMw
ZC4uMDE2NWVkNWE3ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21wbGV0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21w
bGV0aW9uLmNwcApAQCAtNDYsNyArNDYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tTeW50
YXhJbnRlcm5hbChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFyc2VyRQogewog
ICAgIHJldHVybiAhIXBhcnNlUm9vdE5vZGU8UHJvZ3JhbU5vZGU+KAogICAgICAgICB2bSwgc291
cmNlLCBJbXBsZW1lbnRhdGlvblZpc2liaWxpdHk6OlB1YmxpYywgSlNQYXJzZXJCdWlsdGluTW9k
ZTo6Tm90QnVpbHRpbiwKLSAgICAgICAgTm9MZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgSlNQYXJz
ZXJTY3JpcHRNb2RlOjpDbGFzc2ljLCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBlcnJv
cik7CisgICAgICAgIEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0LCBKU1BhcnNlclNjcmlw
dE1vZGU6OkNsYXNzaWMsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIGVycm9yKTsKIH0K
IAogYm9vbCBjaGVja1N5bnRheChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIEpTVmFsdWUqIHJldHVybmVkRXhjZXB0aW9uKQpAQCAtNzgsNyAr
NzgsNyBAQCBib29sIGNoZWNrTW9kdWxlU3ludGF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUAogICAgIFJFTEVBU0VfQVNTRVJUKHZtLmF0
b21TdHJpbmdUYWJsZSgpID09IFRocmVhZDo6Y3VycmVudCgpLmF0b21TdHJpbmdUYWJsZSgpKTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlUHJvZ3JhbU5vZGU+IG1vZHVsZVByb2dyYW1Ob2Rl
ID0gcGFyc2VSb290Tm9kZTxNb2R1bGVQcm9ncmFtTm9kZT4oCiAgICAgICAgIHZtLCBzb3VyY2Us
IEltcGxlbWVudGF0aW9uVmlzaWJpbGl0eTo6UHVibGljLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpO
b3RCdWlsdGluLAotICAgICAgICBTdHJpY3RNb2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZSwgSlNQ
YXJzZXJTY3JpcHRNb2RlOjpNb2R1bGUsIFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlQW5hbHl6ZU1v
ZGUsIGVycm9yKTsKKyAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QsIEpTUGFyc2Vy
U2NyaXB0TW9kZTo6TW9kdWxlLCBTb3VyY2VQYXJzZU1vZGU6Ok1vZHVsZUFuYWx5emVNb2RlLCBl
cnJvcik7CiAgICAgaWYgKCFtb2R1bGVQcm9ncmFtTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCkBAIC05MiwxOCArOTIsMTggQEAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBnZW5lcmF0ZVBy
b2dyYW1CeXRlY29kZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwKICAgICBKU0xv
Y2tIb2xkZXIgbG9jayh2bSk7CiAgICAgUkVMRUFTRV9BU1NFUlQodm0uYXRvbVN0cmluZ1RhYmxl
KCkgPT0gVGhyZWFkOjpjdXJyZW50KCkuYXRvbVN0cmluZ1RhYmxlKCkpOwogCi0gICAgTGV4aWNh
bGx5U2NvcGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMgPSBOb0xleGljYWxseVNj
b3BlZEZlYXR1cmVzOworICAgIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlID0gSlNQYXJz
ZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3Q7CiAgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1v
ZGUgPSBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWM7CiAgICAgRXZhbENvbnRleHRUeXBlIGV2
YWxDb250ZXh0VHlwZSA9IEV2YWxDb250ZXh0VHlwZTo6Tm9uZTsKIAogICAgIFBhcnNlckVycm9y
IHBhcnNlckVycm9yOwotICAgIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9
IHJlY3Vyc2l2ZWx5R2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ZvclByb2dyYW0odm0sIHNvdXJj
ZSwgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIHNjcmlwdE1vZGUsIHsgfSwgcGFyc2VyRXJyb3Is
IGV2YWxDb250ZXh0VHlwZSk7CisgICAgVW5saW5rZWRDb2RlQmxvY2sqIHVubGlua2VkQ29kZUJs
b2NrID0gcmVjdXJzaXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yUHJvZ3JhbSh2bSwg
c291cmNlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7IH0sIHBhcnNlckVycm9yLCBldmFsQ29u
dGV4dFR5cGUpOwogICAgIGlmIChwYXJzZXJFcnJvci5pc1ZhbGlkKCkpCiAgICAgICAgIGVycm9y
ID0gcGFyc2VyRXJyb3I7CiAgICAgaWYgKCF1bmxpbmtlZENvZGVCbG9jaykKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gc2VyaWFsaXplQnl0ZWNvZGUodm0sIHVubGlua2Vk
Q29kZUJsb2NrLCBzb3VyY2UsIFNvdXJjZUNvZGVUeXBlOjpQcm9ncmFtVHlwZSwgbGV4aWNhbGx5
U2NvcGVkRmVhdHVyZXMsIHNjcmlwdE1vZGUsIGZkLCBlcnJvciwgeyB9KTsKKyAgICByZXR1cm4g
c2VyaWFsaXplQnl0ZWNvZGUodm0sIHVubGlua2VkQ29kZUJsb2NrLCBzb3VyY2UsIFNvdXJjZUNv
ZGVUeXBlOjpQcm9ncmFtVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgZmQsIGVycm9yLCB7
IH0pOwogfQogCiBSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IGdlbmVyYXRlTW9kdWxlQnl0ZWNvZGUo
Vk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmls
ZUhhbmRsZSBmZCwgQnl0ZWNvZGVDYWNoZUVycm9yJiBlcnJvcikKQEAgLTExMSwxNyArMTExLDE3
IEBAIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gZ2VuZXJhdGVNb2R1bGVCeXRlY29kZShWTSYgdm0s
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAg
ICAgUkVMRUFTRV9BU1NFUlQodm0uYXRvbVN0cmluZ1RhYmxlKCkgPT0gVGhyZWFkOjpjdXJyZW50
KCkuYXRvbVN0cmluZ1RhYmxlKCkpOwogCi0gICAgTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMgbGV4
aWNhbGx5U2NvcGVkRmVhdHVyZXMgPSBTdHJpY3RNb2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZTsK
KyAgICBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IEpTUGFyc2VyU3RyaWN0TW9kZTo6
U3RyaWN0OwogICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3Jp
cHRNb2RlOjpNb2R1bGU7CiAgICAgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSA9IEV2
YWxDb250ZXh0VHlwZTo6Tm9uZTsKIAogICAgIFBhcnNlckVycm9yIHBhcnNlckVycm9yOwotICAg
IFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHJlY3Vyc2l2ZWx5R2VuZXJh
dGVVbmxpbmtlZENvZGVCbG9ja0Zvck1vZHVsZVByb2dyYW0odm0sIHNvdXJjZSwgbGV4aWNhbGx5
U2NvcGVkRmVhdHVyZXMsIHNjcmlwdE1vZGUsIHsgfSwgcGFyc2VyRXJyb3IsIGV2YWxDb250ZXh0
VHlwZSk7CisgICAgVW5saW5rZWRDb2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gcmVjdXJz
aXZlbHlHZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yTW9kdWxlUHJvZ3JhbSh2bSwgc291cmNl
LCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCB7IH0sIHBhcnNlckVycm9yLCBldmFsQ29udGV4dFR5
cGUpOwogICAgIGlmIChwYXJzZXJFcnJvci5pc1ZhbGlkKCkpCiAgICAgICAgIGVycm9yID0gcGFy
c2VyRXJyb3I7CiAgICAgaWYgKCF1bmxpbmtlZENvZGVCbG9jaykKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgcmV0dXJuIHNlcmlhbGl6ZUJ5dGVjb2RlKHZtLCB1bmxpbmtlZENvZGVCbG9j
aywgc291cmNlLCBTb3VyY2VDb2RlVHlwZTo6TW9kdWxlVHlwZSwgbGV4aWNhbGx5U2NvcGVkRmVh
dHVyZXMsIHNjcmlwdE1vZGUsIGZkLCBlcnJvciwgeyB9KTsKKyAgICByZXR1cm4gc2VyaWFsaXpl
Qnl0ZWNvZGUodm0sIHVubGlua2VkQ29kZUJsb2NrLCBzb3VyY2UsIFNvdXJjZUNvZGVUeXBlOjpN
b2R1bGVUeXBlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBmZCwgZXJyb3IsIHsgfSk7CiB9CiAK
IEpTVmFsdWUgZXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgTmFrZWRQdHI8RXhjZXB0aW9uPiYg
cmV0dXJuZWRFeGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAKaW5kZXggNzI3OTYyNmNjOTQ1Li40ZDg4NTY2
NGM1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEV2
YWxFeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJl
Y3RFdmFsRXhlY3V0YWJsZS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLURpcmVjdEV2YWxFeGVjdXRhYmxlKiBEaXJlY3RFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgTGV4
aWNhbGx5U2NvcGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIERlcml2ZWRDb250
ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIE5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyIG5l
ZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyLCBQcml2YXRlQnJhbmRSZXF1aXJlbWVudCBwcml2YXRl
QnJhbmRSZXF1aXJlbWVudCwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBib29sIGlzSW5z
aWRlT3JkaW5hcnlGdW5jdGlvbiwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgY29u
c3QgVERaRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaLCBjb25zdCBQcml2YXRlTmFtZUVu
dmlyb25tZW50KiBwcml2YXRlTmFtZUVudmlyb25tZW50KQorRGlyZWN0RXZhbEV4ZWN1dGFibGUq
IERpcmVjdEV2YWxFeGVjdXRhYmxlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENv
bnRleHRUeXBlLCBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciBuZWVkc0NsYXNzRmllbGRJbml0
aWFsaXplciwgUHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQgcHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQs
IGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgYm9vbCBpc0luc2lkZU9yZGluYXJ5RnVuY3Rp
b24sIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFREWkVudmlyb25tZW50
KiB2YXJpYWJsZXNVbmRlclREWiwgY29uc3QgUHJpdmF0ZU5hbWVFbnZpcm9ubWVudCogcHJpdmF0
ZU5hbWVFbnZpcm9ubWVudCwgRUNNQU1vZGUgZWNtYU1vZGUpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQ2LDE0ICs0NiwxNSBAQCBEaXJlY3RFdmFsRXhlY3V0YWJsZSogRGlyZWN0RXZhbEV4
ZWN1dGFibGU6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRvKiBleGVjdXRhYmxlID0gbmV3IChOb3RO
dWxsLCBhbGxvY2F0ZUNlbGw8RGlyZWN0RXZhbEV4ZWN1dGFibGU+KHZtKSkgRGlyZWN0RXZhbEV4
ZWN1dGFibGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2UsIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBk
ZXJpdmVkQ29udGV4dFR5cGUsIG5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyLCBwcml2YXRlQnJh
bmRSZXF1aXJlbWVudCwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgaXNJbnNpZGVPcmRpbmFyeUZ1
bmN0aW9uLCBldmFsQ29udGV4dFR5cGUpOworICAgIGF1dG8qIGV4ZWN1dGFibGUgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxEaXJlY3RFdmFsRXhlY3V0YWJsZT4odm0pKSBEaXJlY3RFdmFs
RXhlY3V0YWJsZShnbG9iYWxPYmplY3QsIHNvdXJjZSwgZWNtYU1vZGUuaXNTdHJpY3QoKSwgZGVy
aXZlZENvbnRleHRUeXBlLCBuZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciwgcHJpdmF0ZUJyYW5k
UmVxdWlyZW1lbnQsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGlzSW5zaWRlT3JkaW5hcnlGdW5j
dGlvbiwgZXZhbENvbnRleHRUeXBlKTsKICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbih2
bSk7CiAKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKKyAgICBKU1BhcnNlclN0cmljdE1vZGUgc3Ry
aWN0TW9kZSA9IGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmlj
dCA6IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0OwogICAgIE9wdGlvblNldDxDb2RlR2Vu
ZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSA9IGdsb2JhbE9iamVjdC0+ZGVmYXVsdENv
ZGVHZW5lcmF0aW9uTW9kZSgpOwogCiAgICAgLy8gV2UgZG9uJ3QgYm90aGVyIHdpdGggQ29kZUNh
Y2hlIGhlcmUgYmVjYXVzZSBkaXJlY3QgZXZhbCB1c2VzIGEgc3BlY2lhbGl6ZWQgRGlyZWN0RXZh
bENvZGVDYWNoZS4KLSAgICBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIHVubGlua2VkRXZhbENvZGUg
PSBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrRm9yRGlyZWN0RXZhbCh2bSwgZXhlY3V0YWJsZSwg
ZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3NpYywgY29kZUdl
bmVyYXRpb25Nb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCB2YXJpYWJsZXNVbmRlclREWiwg
cHJpdmF0ZU5hbWVFbnZpcm9ubWVudCk7CisgICAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiB1bmxp
bmtlZEV2YWxDb2RlID0gZ2VuZXJhdGVVbmxpbmtlZENvZGVCbG9ja0ZvckRpcmVjdEV2YWwodm0s
IGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBzdHJpY3RNb2RlLCBKU1BhcnNlclNj
cmlwdE1vZGU6OkNsYXNzaWMsIGNvZGVHZW5lcmF0aW9uTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0
VHlwZSwgdmFyaWFibGVzVW5kZXJURFosIHByaXZhdGVOYW1lRW52aXJvbm1lbnQpOwogCiAgICAg
aWYgKGdsb2JhbE9iamVjdC0+aGFzRGVidWdnZXIoKSkKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5k
ZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoZ2xvYmFsT2JqZWN0LCBleGVjdXRhYmxlLT5zb3VyY2Uo
KS5wcm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CkBAIC02OCw4ICs2
OSw4IEBAIERpcmVjdEV2YWxFeGVjdXRhYmxlKiBEaXJlY3RFdmFsRXhlY3V0YWJsZTo6Y3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiB9
CiAKLURpcmVjdEV2YWxFeGVjdXRhYmxlOjpEaXJlY3RFdmFsRXhlY3V0YWJsZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIExleGljYWxseVNj
b3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBEZXJpdmVkQ29udGV4dFR5cGUg
ZGVyaXZlZENvbnRleHRUeXBlLCBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciBuZWVkc0NsYXNz
RmllbGRJbml0aWFsaXplciwgUHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQgcHJpdmF0ZUJyYW5kUmVx
dWlyZW1lbnQsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgYm9vbCBpc0luc2lkZU9yZGlu
YXJ5RnVuY3Rpb24sIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUpCi0gICAgOiBFdmFs
RXhlY3V0YWJsZShnbG9iYWxPYmplY3QsIHNvdXJjZSwgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMs
IGRlcml2ZWRDb250ZXh0VHlwZSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgaXNJbnNpZGVPcmRp
bmFyeUZ1bmN0aW9uLCBldmFsQ29udGV4dFR5cGUsIG5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVy
LCBwcml2YXRlQnJhbmRSZXF1aXJlbWVudCkKK0RpcmVjdEV2YWxFeGVjdXRhYmxlOjpEaXJlY3RF
dmFsRXhlY3V0YWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTb3VyY2VD
b2RlJiBzb3VyY2UsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCBEZXJpdmVkQ29udGV4dFR5cGUgZGVy
aXZlZENvbnRleHRUeXBlLCBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciBuZWVkc0NsYXNzRmll
bGRJbml0aWFsaXplciwgUHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQgcHJpdmF0ZUJyYW5kUmVxdWly
ZW1lbnQsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgYm9vbCBpc0luc2lkZU9yZGluYXJ5
RnVuY3Rpb24sIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUpCisgICAgOiBFdmFsRXhl
Y3V0YWJsZShnbG9iYWxPYmplY3QsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0LCBkZXJpdmVkQ29u
dGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGlzSW5zaWRlT3JkaW5hcnlGdW5jdGlv
biwgZXZhbENvbnRleHRUeXBlLCBuZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciwgcHJpdmF0ZUJy
YW5kUmVxdWlyZW1lbnQpCiB7CiAgICAgQVNTRVJUKChuZWVkc0NsYXNzRmllbGRJbml0aWFsaXpl
ciA9PSBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplcjo6Tm8gJiYgcHJpdmF0ZUJyYW5kUmVxdWly
ZW1lbnQgPT0gUHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQ6Ok5vbmUpIHx8IGRlcml2ZWRDb250ZXh0
VHlwZSA9PSBEZXJpdmVkQ29udGV4dFR5cGU6OkRlcml2ZWRDb25zdHJ1Y3RvckNvbnRleHQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0RXZhbEV4
ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEV2YWxFeGVj
dXRhYmxlLmgKaW5kZXggMDgxMzI1ZmM4MTQwLi5iZTMzNzVlMTM4MjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUuaApAQCAt
MzEsOSArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRGlyZWN0RXZhbEV4ZWN1dGFi
bGUgZmluYWwgOiBwdWJsaWMgRXZhbEV4ZWN1dGFibGUgewogcHVibGljOgotICAgIHN0YXRpYyBE
aXJlY3RFdmFsRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU291cmNl
Q29kZSYsIExleGljYWxseVNjb3BlZEZlYXR1cmVzLCBEZXJpdmVkQ29udGV4dFR5cGUsIE5lZWRz
Q2xhc3NGaWVsZEluaXRpYWxpemVyLCBQcml2YXRlQnJhbmRSZXF1aXJlbWVudCwgYm9vbCBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0LCBib29sIGlzSW5zaWRlT3JkaW5hcnlGdW5jdGlvbiwgRXZhbENv
bnRleHRUeXBlLCBjb25zdCBURFpFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMs
IGNvbnN0IFByaXZhdGVOYW1lRW52aXJvbm1lbnQqKTsKKyAgICBzdGF0aWMgRGlyZWN0RXZhbEV4
ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIGNvbnN0IFNvdXJjZUNvZGUmLCBEZXJp
dmVkQ29udGV4dFR5cGUsIE5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyLCBQcml2YXRlQnJhbmRS
ZXF1aXJlbWVudCwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBib29sIGlzSW5zaWRlT3Jk
aW5hcnlGdW5jdGlvbiwgRXZhbENvbnRleHRUeXBlLCBjb25zdCBURFpFbnZpcm9ubWVudCogcGFy
ZW50U2NvcGVURFpWYXJpYWJsZXMsIGNvbnN0IFByaXZhdGVOYW1lRW52aXJvbm1lbnQqLCBFQ01B
TW9kZSk7CiBwcml2YXRlOgotICAgIERpcmVjdEV2YWxFeGVjdXRhYmxlKEpTR2xvYmFsT2JqZWN0
KiwgY29uc3QgU291cmNlQ29kZSYsIExleGljYWxseVNjb3BlZEZlYXR1cmVzLCBEZXJpdmVkQ29u
dGV4dFR5cGUsIE5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyLCBQcml2YXRlQnJhbmRSZXF1aXJl
bWVudCwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBib29sIGlzSW5zaWRlT3JkaW5hcnlG
dW5jdGlvbiwgRXZhbENvbnRleHRUeXBlKTsKKyAgICBEaXJlY3RFdmFsRXhlY3V0YWJsZShKU0ds
b2JhbE9iamVjdCosIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGluU3RyaWN0Q29udGV4dCwgRGVy
aXZlZENvbnRleHRUeXBlLCBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciwgUHJpdmF0ZUJyYW5k
UmVxdWlyZW1lbnQsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgYm9vbCBpc0luc2lkZU9y
ZGluYXJ5RnVuY3Rpb24sIEV2YWxDb250ZXh0VHlwZSk7CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNp
emVvZihEaXJlY3RFdmFsRXhlY3V0YWJsZSkgPT0gc2l6ZW9mKEV2YWxFeGVjdXRhYmxlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5jcHAKaW5k
ZXggNzUyMjI2Y2NmZmU2Li5iODg0OWNjZTExNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V2YWxFeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5jcHAKQEAgLTMyLDggKzMyLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBFdmFsRXhlY3V0YWJsZTo6c19pbmZvID0geyAi
RXZhbEV4ZWN1dGFibGUiX3MsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoRXZhbEV4ZWN1dGFibGUpIH07CiAKLUV2YWxFeGVjdXRhYmxlOjpFdmFs
RXhlY3V0YWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVz
LCBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5j
dGlvbkNvbnRleHQsIGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1bmN0aW9uLCBFdmFsQ29udGV4dFR5
cGUgZXZhbENvbnRleHRUeXBlLCBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciBuZWVkc0NsYXNz
RmllbGRJbml0aWFsaXplciwgUHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQgcHJpdmF0ZUJyYW5kUmVx
dWlyZW1lbnQpCi0gICAgOiBCYXNlKGdsb2JhbE9iamVjdC0+dm0oKS5ldmFsRXhlY3V0YWJsZVN0
cnVjdHVyZS5nZXQoKSwgZ2xvYmFsT2JqZWN0LT52bSgpLCBzb3VyY2UsIGxleGljYWxseVNjb3Bl
ZEZlYXR1cmVzLCBkZXJpdmVkQ29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGlz
SW5zaWRlT3JkaW5hcnlGdW5jdGlvbiwgZXZhbENvbnRleHRUeXBlLCBOb0ludHJpbnNpYykKK0V2
YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCBEZXJpdmVk
Q29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRl
eHQsIGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1bmN0aW9uLCBFdmFsQ29udGV4dFR5cGUgZXZhbENv
bnRleHRUeXBlLCBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciBuZWVkc0NsYXNzRmllbGRJbml0
aWFsaXplciwgUHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQgcHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQp
CisgICAgOiBCYXNlKGdsb2JhbE9iamVjdC0+dm0oKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVyZS5n
ZXQoKSwgZ2xvYmFsT2JqZWN0LT52bSgpLCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCwgZGVyaXZl
ZENvbnRleHRUeXBlLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBpc0luc2lkZU9yZGluYXJ5RnVu
Y3Rpb24sIGV2YWxDb250ZXh0VHlwZSwgTm9JbnRyaW5zaWMpCiAgICAgLCBtX25lZWRzQ2xhc3NG
aWVsZEluaXRpYWxpemVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihuZWVkc0NsYXNzRmllbGRJbml0
aWFsaXplcikpCiAgICAgLCBtX3ByaXZhdGVCcmFuZFJlcXVpcmVtZW50KHN0YXRpY19jYXN0PHVu
c2lnbmVkPihwcml2YXRlQnJhbmRSZXF1aXJlbWVudCkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuaAppbmRleCBhYTE1Njk4N2FkYWEuLjJiOTRj
YmQ4OTQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4
ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0
YWJsZS5oCkBAIC03Niw3ICs3Niw3IEBAIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgU2Ny
aXB0RXhlY3V0YWJsZTsKIAogICAgIHVzaW5nIEJhc2U6OmZpbmlzaENyZWF0aW9uOwotICAgIEV2
YWxFeGVjdXRhYmxlKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU291cmNlQ29kZSYsIExleGljYWxs
eVNjb3BlZEZlYXR1cmVzLCBEZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9u
Q29udGV4dCwgYm9vbCBpc0luc2lkZU9yZGluYXJ5RnVuY3Rpb24sIEV2YWxDb250ZXh0VHlwZSwg
TmVlZHNDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIsIFByaXZhdGVCcmFuZFJlcXVpcmVtZW50KTsKKyAg
ICBFdmFsRXhlY3V0YWJsZShKU0dsb2JhbE9iamVjdCosIGNvbnN0IFNvdXJjZUNvZGUmLCBib29s
IGluU3RyaWN0Q29udGV4dCwgRGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5jdGlv
bkNvbnRleHQsIGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1bmN0aW9uLCBFdmFsQ29udGV4dFR5cGUs
IE5lZWRzQ2xhc3NGaWVsZEluaXRpYWxpemVyLCBQcml2YXRlQnJhbmRSZXF1aXJlbWVudCk7CiAK
ICAgICBERUNMQVJFX1ZJU0lUX0NISUxEUkVOOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmgKaW5kZXggMDc0OGRlN2Q0ZWI2Li4zMTk2N2Yw
ZDJhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4
ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HbG9iYWxFeGVj
dXRhYmxlLmgKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgZnJp
ZW5kIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7Ci0gICAgR2xvYmFsRXhlY3V0YWJsZShTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBMZXhp
Y2FsbHlTY29wZWRGZWF0dXJlcyBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgRGVyaXZlZENvbnRl
eHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0luQXJyb3dGdW5jdGlvbkNvbnRleHQs
IGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1bmN0aW9uLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRl
eHRUeXBlLCBJbnRyaW5zaWMgaW50cmluc2ljKQotICAgICAgICA6IEJhc2Uoc3RydWN0dXJlLCB2
bSwgc291cmNlQ29kZSwgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIGRlcml2ZWRDb250ZXh0VHlw
ZSwgaXNJbkFycm93RnVuY3Rpb25Db250ZXh0LCBpc0luc2lkZU9yZGluYXJ5RnVuY3Rpb24sIGV2
YWxDb250ZXh0VHlwZSwgaW50cmluc2ljKQorICAgIEdsb2JhbEV4ZWN1dGFibGUoU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlQ29kZSwgYm9vbCBp
c0luU3RyaWN0Q29udGV4dCwgRGVyaXZlZENvbnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwg
Ym9vbCBpc0luQXJyb3dGdW5jdGlvbkNvbnRleHQsIGJvb2wgaXNJbnNpZGVPcmRpbmFyeUZ1bmN0
aW9uLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBJbnRyaW5zaWMgaW50cmluc2lj
KQorICAgICAgICA6IEJhc2Uoc3RydWN0dXJlLCB2bSwgc291cmNlQ29kZSwgaXNJblN0cmljdENv
bnRleHQgPyBTdHJpY3RNb2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZSA6IE5vTGV4aWNhbGx5U2Nv
cGVkRmVhdHVyZXMsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNJbkFycm93RnVuY3Rpb25Db250ZXh0
LCBpc0luc2lkZU9yZGluYXJ5RnVuY3Rpb24sIGV2YWxDb250ZXh0VHlwZSwgaW50cmluc2ljKQog
ICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0luZGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAKaW5kZXggYzdlYmE4NzA3NjE0Li5jYTAwNGMz
NjVkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZGlyZWN0
RXZhbEV4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
ZGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgSlND
IHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRXJyb3JIYW5kbGVyRnVuY3Rvcj4KLWlubGluZSBJbmRp
cmVjdEV2YWxFeGVjdXRhYmxlKiBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlOjpjcmVhdGVJbXBsKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgTGV4
aWNhbGx5U2NvcGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIERlcml2ZWRDb250
ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwg
RXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgRXJyb3JIYW5kbGVyRnVuY3RvciBlcnJv
ckhhbmRsZXIpCitpbmxpbmUgSW5kaXJlY3RFdmFsRXhlY3V0YWJsZSogSW5kaXJlY3RFdmFsRXhl
Y3V0YWJsZTo6Y3JlYXRlSW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUs
IGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0
VHlwZSwgRXJyb3JIYW5kbGVyRnVuY3RvciBlcnJvckhhbmRsZXIpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTQ3LDE0ICs0NywxNCBAQCBpbmxpbmUgSW5kaXJlY3RFdmFsRXhlY3V0YWJsZSog
SW5kaXJlY3RFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlSW1wbChKU0dsb2JhbE9iamVjdAogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRvKiBleGVjdXRhYmxlID0gbmV3IChO
b3ROdWxsLCBhbGxvY2F0ZUNlbGw8SW5kaXJlY3RFdmFsRXhlY3V0YWJsZT4odm0pKSBJbmRpcmVj
dEV2YWxFeGVjdXRhYmxlKGdsb2JhbE9iamVjdCwgc291cmNlLCBsZXhpY2FsbHlTY29wZWRGZWF0
dXJlcywgZGVyaXZlZENvbnRleHRUeXBlLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBldmFsQ29u
dGV4dFR5cGUpOworICAgIGF1dG8qIGV4ZWN1dGFibGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRl
Q2VsbDxJbmRpcmVjdEV2YWxFeGVjdXRhYmxlPih2bSkpIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUo
Z2xvYmFsT2JqZWN0LCBzb3VyY2UsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNBcnJvd0Z1bmN0aW9u
Q29udGV4dCwgZXZhbENvbnRleHRUeXBlKTsKICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlv
bih2bSk7CiAKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBPcHRpb25TZXQ8Q29kZUdlbmVy
YXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUgPSBnbG9iYWxPYmplY3QtPmRlZmF1bHRDb2Rl
R2VuZXJhdGlvbk1vZGUoKTsKIAogICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogdW5saW5rZWRF
dmFsQ29kZSA9IHZtLmNvZGVDYWNoZSgpLT5nZXRVbmxpbmtlZEV2YWxDb2RlQmxvY2soCi0gICAg
ICAgIHZtLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2UoKSwgY29kZUdlbmVyYXRpb25N
b2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlKTsKKyAgICAgICAgdm0sIGV4ZWN1dGFibGUsIGV4
ZWN1dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwgY29kZUdl
bmVyYXRpb25Nb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlKTsKIAogICAgIGlmIChnbG9iYWxP
YmplY3QtPmhhc0RlYnVnZ2VyKCkpCiAgICAgICAgIGdsb2JhbE9iamVjdC0+ZGVidWdnZXIoKS0+
c291cmNlUGFyc2VkKGdsb2JhbE9iamVjdCwgZXhlY3V0YWJsZS0+c291cmNlKCkucHJvdmlkZXIo
KSwgZXJyb3IubGluZSgpLCBlcnJvci5tZXNzYWdlKCkpOwpAQCAtNzAsMjcgKzcwLDI4IEBAIGlu
bGluZSBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKiBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlOjpjcmVh
dGVJbXBsKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiB9CiAKLUluZGly
ZWN0RXZhbEV4ZWN1dGFibGUqIEluZGlyZWN0RXZhbEV4ZWN1dGFibGU6OmNyZWF0ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIExleGljYWxs
eVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBEZXJpdmVkQ29udGV4dFR5
cGUgZGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIEV2YWxD
b250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIE5ha2VkUHRyPEpTT2JqZWN0PiYgcmVzdWx0aW5n
RXJyb3IpCitJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKiBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlOjpj
cmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dG
dW5jdGlvbkNvbnRleHQsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIE5ha2VkUHRy
PEpTT2JqZWN0PiYgcmVzdWx0aW5nRXJyb3IpCiB7CiAgICAgYXV0byBoYW5kbGVFcnJvciA9IFsm
XShjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcnNlckVycm9yKiBlcnJvcikgewogICAgICAg
ICByZXN1bHRpbmdFcnJvciA9IGVycm9yLT50b0Vycm9yT2JqZWN0KGdsb2JhbE9iamVjdCwgc291
cmNlKTsKICAgICB9OwotICAgIHJldHVybiBjcmVhdGVJbXBsKGdsb2JhbE9iamVjdCwgc291cmNl
LCBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgZGVyaXZlZENvbnRleHRUeXBlLCBpc0Fycm93RnVu
Y3Rpb25Db250ZXh0LCBldmFsQ29udGV4dFR5cGUsIGhhbmRsZUVycm9yKTsKKyAgICByZXR1cm4g
Y3JlYXRlSW1wbChnbG9iYWxPYmplY3QsIHNvdXJjZSwgZGVyaXZlZENvbnRleHRUeXBlLCBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0LCBldmFsQ29udGV4dFR5cGUsIGhhbmRsZUVycm9yKTsKIH0KIAot
SW5kaXJlY3RFdmFsRXhlY3V0YWJsZSogSW5kaXJlY3RFdmFsRXhlY3V0YWJsZTo6dHJ5Q3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
TGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIERlcml2ZWRD
b250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4
dCwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkKK0luZGlyZWN0RXZhbEV4ZWN1dGFi
bGUqIEluZGlyZWN0RXZhbEV4ZWN1dGFibGU6OnRyeUNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIERlcml2ZWRDb250ZXh0VHlwZSBk
ZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgRXZhbENvbnRl
eHRUeXBlIGV2YWxDb250ZXh0VHlwZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBoYW5kbGVFcnJvciA9IFsmXShjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IFBhcnNlckVycm9yKiBlcnJvcikgewogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgICAgIHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBl
cnJvci0+dG9FcnJvck9iamVjdChnbG9iYWxPYmplY3QsIHNvdXJjZSkpOwogICAgIH07Ci0gICAg
cmV0dXJuIGNyZWF0ZUltcGwoZ2xvYmFsT2JqZWN0LCBzb3VyY2UsIGxleGljYWxseVNjb3BlZEZl
YXR1cmVzLCBkZXJpdmVkQ29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGV2YWxD
b250ZXh0VHlwZSwgaGFuZGxlRXJyb3IpOworICAgIHJldHVybiBjcmVhdGVJbXBsKGdsb2JhbE9i
amVjdCwgc291cmNlLCBkZXJpdmVkQ29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQs
IGV2YWxDb250ZXh0VHlwZSwgaGFuZGxlRXJyb3IpOwogfQogCitjb25zdGV4cHIgYm9vbCBpblN0
cmljdENvbnRleHQgPSBmYWxzZTsKIGNvbnN0ZXhwciBib29sIGluc2lkZU9yZGluYXJ5RnVuY3Rp
b24gPSBmYWxzZTsKLUluZGlyZWN0RXZhbEV4ZWN1dGFibGU6OkluZGlyZWN0RXZhbEV4ZWN1dGFi
bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYgc291cmNl
LCBMZXhpY2FsbHlTY29wZWRGZWF0dXJlcyBsZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgRGVyaXZl
ZENvbnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250
ZXh0LCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlKQotICAgIDogRXZhbEV4ZWN1dGFi
bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2UsIGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBkZXJpdmVk
Q29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGluc2lkZU9yZGluYXJ5RnVuY3Rp
b24sIGV2YWxDb250ZXh0VHlwZSwgTmVlZHNDbGFzc0ZpZWxkSW5pdGlhbGl6ZXI6Ok5vLCBQcml2
YXRlQnJhbmRSZXF1aXJlbWVudDo6Tm9uZSkKK0luZGlyZWN0RXZhbEV4ZWN1dGFibGU6OkluZGly
ZWN0RXZhbEV4ZWN1dGFibGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBi
b29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5
cGUpCisgICAgOiBFdmFsRXhlY3V0YWJsZShnbG9iYWxPYmplY3QsIHNvdXJjZSwgaW5TdHJpY3RD
b250ZXh0LCBkZXJpdmVkQ29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGluc2lk
ZU9yZGluYXJ5RnVuY3Rpb24sIGV2YWxDb250ZXh0VHlwZSwgTmVlZHNDbGFzc0ZpZWxkSW5pdGlh
bGl6ZXI6Ok5vLCBQcml2YXRlQnJhbmRSZXF1aXJlbWVudDo6Tm9uZSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kaXJlY3RFdmFsRXhlY3V0YWJs
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kaXJlY3RFdmFsRXhlY3V0YWJs
ZS5oCmluZGV4IDNiMDg5YjE1YjhiNi4uMDAyM2Q5ZjdlZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRpcmVjdEV2YWxFeGVjdXRhYmxlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5oCkBAIC0z
MSwxMyArMzEsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEluZGlyZWN0RXZhbEV4ZWN1
dGFibGUgZmluYWwgOiBwdWJsaWMgRXZhbEV4ZWN1dGFibGUgewogcHVibGljOgotICAgIHN0YXRp
YyBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKiB0cnlDcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBjb25z
dCBTb3VyY2VDb2RlJiwgTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIERlcml2ZWRDb250ZXh0VHlw
ZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBFdmFsQ29udGV4dFR5cGUpOwotICAgIHN0
YXRpYyBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBjb25z
dCBTb3VyY2VDb2RlJiwgTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIERlcml2ZWRDb250ZXh0VHlw
ZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBFdmFsQ29udGV4dFR5cGUsIE5ha2VkUHRy
PEpTT2JqZWN0PiYpOworICAgIHN0YXRpYyBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKiB0cnlDcmVh
dGUoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTb3VyY2VDb2RlJiwgRGVyaXZlZENvbnRleHRUeXBl
LCBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIEV2YWxDb250ZXh0VHlwZSk7CisgICAgc3Rh
dGljIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIGNvbnN0
IFNvdXJjZUNvZGUmLCBEZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29u
dGV4dCwgRXZhbENvbnRleHRUeXBlLCBOYWtlZFB0cjxKU09iamVjdD4mKTsKIHByaXZhdGU6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRXJyb3JIYW5kbGVyRnVuY3Rvcj4KLSAgICBpbmxpbmUgc3Rh
dGljIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUqIGNyZWF0ZUltcGwoSlNHbG9iYWxPYmplY3QqLCBj
b25zdCBTb3VyY2VDb2RlJiwgTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIERlcml2ZWRDb250ZXh0
VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBFdmFsQ29udGV4dFR5cGUsIEVycm9y
SGFuZGxlckZ1bmN0b3IpOworICAgIGlubGluZSBzdGF0aWMgSW5kaXJlY3RFdmFsRXhlY3V0YWJs
ZSogY3JlYXRlSW1wbChKU0dsb2JhbE9iamVjdCosIGNvbnN0IFNvdXJjZUNvZGUmLCBEZXJpdmVk
Q29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgRXZhbENvbnRleHRUeXBl
LCBFcnJvckhhbmRsZXJGdW5jdG9yKTsKIAotICAgIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUoSlNH
bG9iYWxPYmplY3QqLCBjb25zdCBTb3VyY2VDb2RlJiwgTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMs
IERlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBFdmFsQ29u
dGV4dFR5cGUpOworICAgIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUoSlNHbG9iYWxPYmplY3QqLCBj
b25zdCBTb3VyY2VDb2RlJiwgRGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5jdGlv
bkNvbnRleHQsIEV2YWxDb250ZXh0VHlwZSk7CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihJ
bmRpcmVjdEV2YWxFeGVjdXRhYmxlKSA9PSBzaXplb2YoRXZhbEV4ZWN1dGFibGUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAppbmRleCBlZjFlMDkzYTVjOWEuLjRmMzU0MWE5ZTI1NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmNwcApAQCAtNTE2LDggKzUxNiw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9i
YWxGdW5jRXZhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtCiAKICAg
ICBTb3VyY2VPcmlnaW4gc291cmNlT3JpZ2luID0gY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmln
aW4odm0pOwogICAgIFNvdXJjZVRhaW50ZWRPcmlnaW4gc291cmNlVGFpbnRlZE9yaWdpbiA9IGNv
bXB1dGVOZXdTb3VyY2VUYWludGVkT3JpZ2luRnJvbVN0YWNrKHZtLCBjYWxsRnJhbWUpOwotICAg
IExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1cmVzID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxTY29wZUV4dGVuc2lvbigpID8gVGFpbnRlZEJ5V2l0aFNjb3BlTGV4aWNh
bGx5U2NvcGVkRmVhdHVyZSA6IE5vTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXM7Ci0gICAgRXZhbEV4
ZWN1dGFibGUqIGV2YWwgPSBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlOjp0cnlDcmVhdGUoZ2xvYmFs
T2JqZWN0LCBtYWtlU291cmNlKHMsIHNvdXJjZU9yaWdpbiwgc291cmNlVGFpbnRlZE9yaWdpbiks
IGxleGljYWxseVNjb3BlZEZlYXR1cmVzLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsIGZhbHNl
LCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUpOworICAgIEV2YWxFeGVjdXRhYmxlKiBldmFsID0gSW5k
aXJlY3RFdmFsRXhlY3V0YWJsZTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgbWFrZVNvdXJjZShz
LCBzb3VyY2VPcmlnaW4sIHNvdXJjZVRhaW50ZWRPcmlnaW4pLCBEZXJpdmVkQ29udGV4dFR5cGU6
Ok5vbmUsIGZhbHNlLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUpOwogICAgIEVYQ0VQVElPTl9BU1NF
UlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhZXZhbCk7CiAgICAgaWYgKCFldmFsKQogICAgICAg
ICByZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcAppbmRleCBiNzY5NjFjOGNmNjQuLmU0NjIzOWQ4MTUx
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVy
LmNwcApAQCAtMzY0LDcgKzM2NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVM
b2FkZXJQYXJzZU1vZHVsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgUGFy
c2VyRXJyb3IgZXJyb3I7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1vZHVsZVByb2dyYW1Ob2RlPiBt
b2R1bGVQcm9ncmFtTm9kZSA9IHBhcnNlUm9vdE5vZGU8TW9kdWxlUHJvZ3JhbU5vZGU+KAogICAg
ICAgICB2bSwgc291cmNlQ29kZSwgSW1wbGVtZW50YXRpb25WaXNpYmlsaXR5OjpQdWJsaWMsIEpT
UGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sCi0gICAgICAgIFN0cmljdE1vZGVMZXhpY2Fs
bHlTY29wZWRGZWF0dXJlLCBKU1BhcnNlclNjcmlwdE1vZGU6Ok1vZHVsZSwgU291cmNlUGFyc2VN
b2RlOjpNb2R1bGVBbmFseXplTW9kZSwgZXJyb3IpOworICAgICAgICBKU1BhcnNlclN0cmljdE1v
ZGU6OlN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2RlOjpNb2R1bGUsIFNvdXJjZVBhcnNlTW9kZTo6
TW9kdWxlQW5hbHl6ZU1vZGUsIGVycm9yKTsKICAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQogICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZWplY3RXaXRo
RXJyb3IoZXJyb3IudG9FcnJvck9iamVjdChnbG9iYWxPYmplY3QsIHNvdXJjZUNvZGUpKSkpOwog
ICAgIEFTU0VSVChtb2R1bGVQcm9ncmFtTm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHAKaW5kZXggZGZm
YmY4MDYwMzBhLi5lZGY3OWUwNDg1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHAKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjb25zdCBDbGFzc0luZm8gTW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGU6OnNfaW5mbyA9IHsgIk1vZHVsZVByb2dyYW1FeGVjdXRhYmxlIl9zLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE1vZHVsZVByb2dyYW1F
eGVjdXRhYmxlKSB9OwogCiBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTo6TW9kdWxlUHJvZ3JhbUV4
ZWN1dGFibGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlKQotICAgIDogQmFzZShnbG9iYWxPYmplY3QtPnZtKCkubW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGdsb2JhbE9iamVjdC0+dm0oKSwgc291cmNlLCBTdHJpY3RN
b2RlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZSwgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBmYWxz
ZSwgZmFsc2UsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgTm9JbnRyaW5zaWMpCisgICAgOiBCYXNl
KGdsb2JhbE9iamVjdC0+dm0oKS5tb2R1bGVQcm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQo
KSwgZ2xvYmFsT2JqZWN0LT52bSgpLCBzb3VyY2UsIGZhbHNlLCBEZXJpdmVkQ29udGV4dFR5cGU6
Ok5vbmUsIGZhbHNlLCBmYWxzZSwgRXZhbENvbnRleHRUeXBlOjpOb25lLCBOb0ludHJpbnNpYykK
IHsKICAgICBBU1NFUlQoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZVR5cGUoKSA9PSBTb3VyY2VQ
cm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3JhbUV4
ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3JhbUV4ZWN1
dGFibGUuY3BwCmluZGV4IGRjMjZkMjRiYWRjYi4uNGE5ZDg4NzBmNDkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3JhbUV4ZWN1dGFibGUuY3BwCkBAIC00
MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVj
dXRhYmxlOjpzX2luZm8gPSB7ICJQcm9ncmFtRXhlY3V0YWJsZSJfcywgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShQcm9ncmFtRXhlY3V0YWJsZSkg
fTsKIAogUHJvZ3JhbUV4ZWN1dGFibGU6OlByb2dyYW1FeGVjdXRhYmxlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKLSAgICA6IEJhc2UoZ2xv
YmFsT2JqZWN0LT52bSgpLnByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBnbG9iYWxP
YmplY3QtPnZtKCksIHNvdXJjZSwgTm9MZXhpY2FsbHlTY29wZWRGZWF0dXJlcywgRGVyaXZlZENv
bnRleHRUeXBlOjpOb25lLCBmYWxzZSwgZmFsc2UsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgTm9J
bnRyaW5zaWMpCisgICAgOiBCYXNlKGdsb2JhbE9iamVjdC0+dm0oKS5wcm9ncmFtRXhlY3V0YWJs
ZVN0cnVjdHVyZS5nZXQoKSwgZ2xvYmFsT2JqZWN0LT52bSgpLCBzb3VyY2UsIGZhbHNlLCBEZXJp
dmVkQ29udGV4dFR5cGU6Ok5vbmUsIGZhbHNlLCBmYWxzZSwgRXZhbENvbnRleHRUeXBlOjpOb25l
LCBOb0ludHJpbnNpYykKIHsKICAgICBBU1NFUlQoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZVR5
cGUoKSA9PSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pOwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTkwLDkgKzkwLDEwIEBAIEpTT2JqZWN0KiBQcm9ncmFt
RXhlY3V0YWJsZTo6aW5pdGlhbGl6ZUdsb2JhbFByb3BlcnRpZXMoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCoKICAgICBBU1NFUlQoJmdsb2JhbE9iamVjdC0+dm0oKSA9PSAmdm0pOwogCiAgICAgUGFy
c2VyRXJyb3IgZXJyb3I7CisgICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBpc0lu
U3RyaWN0Q29udGV4dCgpID8gSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QgOiBKU1BhcnNlclN0
cmljdE1vZGU6Ok5vdFN0cmljdDsKICAgICBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBj
b2RlR2VuZXJhdGlvbk1vZGUgPSBnbG9iYWxPYmplY3QtPmRlZmF1bHRDb2RlR2VuZXJhdGlvbk1v
ZGUoKTsKICAgICBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0g
dm0uY29kZUNhY2hlKCktPmdldFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jaygKLSAgICAgICAgdm0s
IHRoaXMsIHNvdXJjZSgpLCBjb2RlR2VuZXJhdGlvbk1vZGUsIGVycm9yKTsKKyAgICAgICAgdm0s
IHRoaXMsIHNvdXJjZSgpLCBzdHJpY3RNb2RlLCBjb2RlR2VuZXJhdGlvbk1vZGUsIGVycm9yKTsK
IAogICAgIGlmIChnbG9iYWxPYmplY3QtPmhhc0RlYnVnZ2VyKCkpCiAgICAgICAgIGdsb2JhbE9i
amVjdC0+ZGVidWdnZXIoKS0+c291cmNlUGFyc2VkKGdsb2JhbE9iamVjdCwgc291cmNlKCkucHJv
dmlkZXIoKSwgZXJyb3IubGluZSgpLCBlcnJvci5tZXNzYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCmluZGV4IGQyNDAyNzI0YWM2
MC4uYzNhNzcxNzFhMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY3JpcHRFeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NyaXB0RXhlY3V0YWJsZS5oCkBAIC04Niw4ICs4Niw2IEBAIHB1YmxpYzoKICAgICBib29sKiBh
ZGRyZXNzT2ZEaWRUcnlUb0VudGVySW5Mb29wKCkgeyByZXR1cm4gJm1fZGlkVHJ5VG9FbnRlcklu
TG9vcDsgfQogCiAgICAgQ29kZUZlYXR1cmVzIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9m
ZWF0dXJlczsgfQotICAgIExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZl
YXR1cmVzKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGV4aWNhbGx5U2NvcGVkRmVhdHVyZXM+KG1f
bGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMpOyB9Ci0gICAgdm9pZCBzZXRUYWludGVkQnlXaXRoU2Nv
cGUoKSB7IG1fbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMgfD0gVGFpbnRlZEJ5V2l0aFNjb3BlTGV4
aWNhbGx5U2NvcGVkRmVhdHVyZTsgfQogICAgICAgICAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZP
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFs
bVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFs
bVByb3RvdHlwZS5jcHAKaW5kZXggYTYwMmVmNzlhNWFjLi4yZTNmNTEzYWJjOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlw
ZS5jcHAKQEAgLTEwNCw4ICsxMDQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZXZhbElu
UmVhbG0sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqCiAgICAgTmFr
ZWRQdHI8SlNPYmplY3Q+IGV4ZWN1dGFibGVFcnJvcjsKICAgICBTb3VyY2VUYWludGVkT3JpZ2lu
IHNvdXJjZVRhaW50ZWRPcmlnaW4gPSBjb21wdXRlTmV3U291cmNlVGFpbnRlZE9yaWdpbkZyb21T
dGFjayh2bSwgY2FsbEZyYW1lKTsKICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uo
c2NyaXB0LCBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSksIHNvdXJjZVRhaW50ZWRP
cmlnaW4pOwotICAgIExleGljYWxseVNjb3BlZEZlYXR1cmVzIGxleGljYWxseVNjb3BlZEZlYXR1
cmVzID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxTY29wZUV4dGVuc2lvbigpID8gVGFpbnRlZEJ5V2l0
aFNjb3BlTGV4aWNhbGx5U2NvcGVkRmVhdHVyZSA6IE5vTGV4aWNhbGx5U2NvcGVkRmVhdHVyZXM7
Ci0gICAgRXZhbEV4ZWN1dGFibGUqIGV2YWwgPSBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlOjpjcmVh
dGUocmVhbG1HbG9iYWxPYmplY3QsIHNvdXJjZSwgbGV4aWNhbGx5U2NvcGVkRmVhdHVyZXMsIERl
cml2ZWRDb250ZXh0VHlwZTo6Tm9uZSwgZmFsc2UsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgZXhl
Y3V0YWJsZUVycm9yKTsKKyAgICBFdmFsRXhlY3V0YWJsZSogZXZhbCA9IEluZGlyZWN0RXZhbEV4
ZWN1dGFibGU6OmNyZWF0ZShyZWFsbUdsb2JhbE9iamVjdCwgc291cmNlLCBEZXJpdmVkQ29udGV4
dFR5cGU6Ok5vbmUsIGZhbHNlLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsIGV4ZWN1dGFibGVFcnJv
cik7CiAgICAgaWYgKGV4ZWN1dGFibGVFcnJvcikgewogICAgICAgICBKU1ZhbHVlIGVycm9yID0g
ZXhlY3V0YWJsZUVycm9yLmdldCgpOwogICAgICAgICBFcnJvckluc3RhbmNlKiBlcnJvckluc3Rh
bmNlID0ganNEeW5hbWljQ2FzdDxFcnJvckluc3RhbmNlKj4oZXJyb3IpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IDg1MjBlYmJhZTZlYy4uMmJhNWYz
YmZkM2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJW
TS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBA
IC0yMjQ0LDcgKzIyNDQsNiBAQCBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkR1bXBBbmRSZXNldFBhc0RlYnVnU3BlY3RydW0pOwogc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25Nb25vdG9uaWNUaW1lTm93KTsKIHN0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2FsbFRpbWVOb3cpOwogc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25BcHByb3hpbWF0ZVRpbWVOb3cpOwotc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbik7
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhlYXBFeHRyYU1lbW9y
eVNpemUpOwogI2lmIEVOQUJMRShKSVQpCiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkpJVFNpemVTdGF0aXN0aWNzKTsKQEAgLTM5NzksMzAgKzM5NzgsNiBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25BcHByb3hpbWF0ZVRpbWVOb3csIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
QXBwcm94aW1hdGVUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygp
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQotewotICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLQotICAgIEpTVmFsdWUgc2NyaXB0VmFsdWUgPSBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApOwotICAgIGlmICghc2NyaXB0VmFsdWUuaXNTdHJpbmcoKSkKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkV4cGVjdGVkIGZpcnN0
IGFyZ3VtZW50IHRvIGJlIGEgc3RyaW5nIl9zKTsKLQotICAgIFN0cmluZyBwcm9ncmFtID0gYXNT
dHJpbmcoc2NyaXB0VmFsdWUpLT52YWx1ZShnbG9iYWxPYmplY3QpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3Vy
Y2UoV1RGTW92ZShwcm9ncmFtKSwgY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pLCBT
b3VyY2VUYWludGVkT3JpZ2luOjpVbnRhaW50ZWQpOwotICAgIEpTT2JqZWN0KiBzY29wZUV4dGVu
c2lvbiA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSkuZ2V0T2JqZWN0KCk7Ci0KLSAgICBOYWtlZFB0
cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlV2l0
aFNjb3BlRXh0ZW5zaW9uKGdsb2JhbE9iamVjdCwgc291cmNlLCBzY29wZUV4dGVuc2lvbiwgZXhj
ZXB0aW9uKTsKLSAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb24pOwotCi0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwotfQotCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25IZWFwRXh0cmFNZW1vcnlTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKQEAgLTQz
NjEsOCArNDMzNiw2IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
ICAgIGFkZEZ1bmN0aW9uKHZtLCAid2FsbFRpbWVOb3ciX3MsIGZ1bmN0aW9uV2FsbFRpbWVOb3cs
IDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiYXBwcm94aW1hdGVUaW1lTm93Il9zLCBmdW5jdGlv
bkFwcHJveGltYXRlVGltZU5vdywgMCk7CiAKLSAgICBhZGRGdW5jdGlvbih2bSwgImV2YWx1YXRl
V2l0aFNjb3BlRXh0ZW5zaW9uIl9zLCBmdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9u
LCAxKTsKLQogICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGVhcEV4dHJhTWVtb3J5U2l6ZSJfcywgZnVu
Y3Rpb25IZWFwRXh0cmFNZW1vcnlTaXplLCAwKTsKIAogI2lmIEVOQUJMRShKSVQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>