<?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>158465</bug_id>
          
          <creation_ts>2016-06-06 22:58:42 -0700</creation_ts>
          <short_desc>REGRESSION(r201735): fast/events/AddEventListenerOptions-once-recursive.html fails on all bots (Requested by ap on #webkit).</short_desc>
          <delta_ts>2016-06-06 23:05:05 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149466</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dino</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1199930</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 22:58:42 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/201735 broke the build:
fast/events/AddEventListenerOptions-once-recursive.html fails on all bots (Requested by ap on #webkit).

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>1199934</commentid>
    <comment_count>1</comment_count>
      <attachid>280679</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 22:59:24 -0700</bug_when>
    <thetext>Created attachment 280679
ROLLOUT of r201735

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 rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout 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>1199938</commentid>
    <comment_count>2</comment_count>
      <attachid>280679</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 23:05:00 -0700</bug_when>
    <thetext>Comment on attachment 280679
ROLLOUT of r201735

Clearing flags on attachment: 280679

Committed r201743: &lt;http://trac.webkit.org/changeset/201743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199939</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 23:05:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280679</attachid>
            <date>2016-06-06 22:59:24 -0700</date>
            <delta_ts>2016-06-06 23:05:00 -0700</delta_ts>
            <desc>ROLLOUT of r201735</desc>
            <filename>bug-158465-20160606230049.patch</filename>
            <type>text/plain</type>
            <size>73186</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTgxMjBkZmM2OGU2OWE4
NjdlNTlhOWEyYmRlODBmMmMxN2Y3YWY4NC4uZGQ3MjVmMjZjYjg1ODk0ODQwNzNjNjg1NTk4OGU0
ZGIwYjdjMTZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA2LTA2ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjAxNzM1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4NDY1CisKKyAgICAgICAgZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0
ZW5lck9wdGlvbnMtb25jZS1yZWN1cnNpdmUuaHRtbCBmYWlscworICAgICAgICBvbiBhbGwgYm90
cyAoUmVxdWVzdGVkIGJ5IGFwIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5n
ZXNldDoKKworICAgICAgICAiSW1wbGVtZW50IEV2ZW50TGlzdGVuZXJPcHRpb25zIGFyZ3VtZW50
IHRvIGFkZEV2ZW50TGlzdGVuZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDk0NjYKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMjAxNzM1CisKIDIwMTYtMDYtMDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBVUkxzIGNvbnRhaW5pbmcgdGFicyBvciBuZXdsaW5lcyBhcmUgcGFy
c2VkIGluY29ycmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXggMzRkNWQwZjI3Mzdj
ZDcxNTIyNDM1NDhhZTgyNzRmZGI0NDIzZjNlMy4uNGNhNmEwNDQyZmQzYTkzMTU3YzcyNTE0ZjM0
N2ExZmFjNzgzNjRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAtMjAxLDE3ICsyMDEs
MTcgQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OmZpbmlzaCgpCiAgICAgfQogfQog
Ci1ib29sIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNv
bnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBBdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGU6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7Ci0g
ICAgYm9vbCBzdWNjZXNzID0gQXVkaW9Ob2RlOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwg
V1RGTW92ZShsaXN0ZW5lciksIG9wdGlvbnMpOworICAgIGJvb2wgc3VjY2VzcyA9IEF1ZGlvTm9k
ZTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCB1c2VDYXB0
dXJlKTsKICAgICBpZiAoc3VjY2VzcyAmJiBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmVuZGVk
RXZlbnQpCiAgICAgICAgIG1faGFzRW5kZWRMaXN0ZW5lciA9IGhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5lbmRlZEV2ZW50KTsKICAgICByZXR1cm4gc3VjY2VzczsKIH0KIAotYm9vbCBB
dWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBjb25zdCBMaXN0ZW5l
ck9wdGlvbnMmIG9wdGlvbnMpCitib29sIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6cmVtb3Zl
RXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5l
ciYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKLSAgICBib29sIHN1Y2Nlc3MgPSBBdWRp
b05vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7
CisgICAgYm9vbCBzdWNjZXNzID0gQXVkaW9Ob2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50
VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOwogICAgIGlmIChzdWNjZXNzICYmIGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkuZW5kZWRFdmVudCkKICAgICAgICAgbV9oYXNFbmRlZExpc3RlbmVy
ID0gaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmVuZGVkRXZlbnQpOwogICAgIHJldHVy
biBzdWNjZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKaW5kZXggZDViYzY5NmY1YzIxNDNkMzQxNzk2
MGZhMjk0NTBiMjljN2JhNjY4MS4uY2I0ZGQzY2RlODIxNzVjZDE2NTYzZDBkODhmZmNjMTE3Y2Ex
ZDA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCkBAIC0xMDEsOCArMTAxLDggQEAgcHJvdGVjdGVk
OgogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVW5rbm93blRpbWU7CiAKIHByaXZhdGU6Ci0gICAg
Ym9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8
RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlk
ZTsKLSAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsK
KyAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IFJlZjxFdmVudExpc3RlbmVyPiYmLCBib29sIHVzZUNhcHR1cmUpIG92ZXJyaWRlOworICAgIGJv
b2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZl
bnRMaXN0ZW5lciYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVB
bGxFdmVudExpc3RlbmVycygpIG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggOGJj
Y2JiYzFjZjMzZDJmYTE3YjJmNTc3MzdjMWEyZTQ2NjhmMzgwYi4uMGNjNDFiNzU2OGJiMDUxMGUx
NTVlZTljZWMxMDA1NjFlYjc0YmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC0yNzMsMTcgKzI3Mywx
NyBAQCBkb3VibGUgU2NyaXB0UHJvY2Vzc29yTm9kZTo6bGF0ZW5jeVRpbWUoKSBjb25zdAogICAg
IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CiB9CiAKLWJv
b2wgU2NyaXB0UHJvY2Vzc29yTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IEFkZEV2
ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBTY3JpcHRQcm9jZXNzb3JOb2RlOjph
ZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRM
aXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewotICAgIGJvb2wgc3VjY2Vz
cyA9IEF1ZGlvTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVu
ZXIpLCBvcHRpb25zKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBBdWRpb05vZGU6OmFkZEV2ZW50TGlz
dGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgdXNlQ2FwdHVyZSk7CiAgICAgaWYg
KHN1Y2Nlc3MgJiYgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5hdWRpb3Byb2Nlc3NFdmVudCkK
ICAgICAgICAgbV9oYXNBdWRpb1Byb2Nlc3NMaXN0ZW5lciA9IGhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5hdWRpb3Byb2Nlc3NFdmVudCk7CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAK
LWJvb2wgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGNvbnN0IExpc3Rl
bmVyT3B0aW9ucyYgb3B0aW9ucykKK2Jvb2wgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYg
bGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKLSAgICBib29sIHN1Y2Nlc3MgPSBBdWRpb05v
ZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7Cisg
ICAgYm9vbCBzdWNjZXNzID0gQXVkaW9Ob2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlw
ZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOwogICAgIGlmIChzdWNjZXNzICYmIGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuYXVkaW9wcm9jZXNzRXZlbnQpCiAgICAgICAgIG1faGFzQXVkaW9Qcm9j
ZXNzTGlzdGVuZXIgPSBoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuYXVkaW9wcm9jZXNz
RXZlbnQpOwogICAgIHJldHVybiBzdWNjZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaAppbmRleCBiNGM3M2JiOWNjMmI4
Mjg5Y2UzOTYxMmE1NDJlZjIyYzJjNmE3YmZjLi4xMzA2MjU5MDkwYWQ0M2IyYWY1ZDYzNzIyZDU1
ZTI0MzNkODNiYjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaApAQCAtNzMsOCArNzMsOCBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBmaXJlUHJvY2Vzc0V2ZW50KCk7CiAKLSAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25z
dCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVtb3ZlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYs
IGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIGJvb2wgYWRkRXZlbnRMaXN0
ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYs
IGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CisgICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVy
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCB1c2VD
YXB0dXJlKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgb3Zl
cnJpZGU7CiAKICAgICAvLyBEb3VibGUgYnVmZmVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDZmMWE4YzE2Y2IwZjI4
ZTJmYjU5NTVhNWMyMDYwMmQxZWMwYmZiM2IuLjM1NWU3OTYxMTQ0YWM3NzYzMWZmNTBhNDQ1YjYz
YTcxYWQ5MjZmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCkBAIC0xNjc4LDEwICsxNjc4LDcgQEAgc3ViIEdlbmVyYXRlUGFy
YW1ldGVyc0NoZWNrRXhwcmVzc2lvbgogICAgICAgICAgICAgICAgIHB1c2goQGFuZEV4cHJlc3Np
b24sICIoJHt2YWx1ZX0uaXNOdWxsKCkgfHwgJHt2YWx1ZX0uaXNPYmplY3QoKSkiKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICR1c2VkQXJndW1lbnRzeyRwYXJhbWV0ZXJJbmRleH0gPSAx
OwotICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkcGFy
YW1ldGVyLT50eXBlKSkgewotICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3Zh
bHVlfS5pc1VuZGVmaW5lZE9yTnVsbCgpIHx8ICR7dmFsdWV9LmlzT2JqZWN0KCkpIik7Ci0gICAg
ICAgICAgICAkdXNlZEFyZ3VtZW50c3skcGFyYW1ldGVySW5kZXh9ID0gMTsKLSAgICAgICAgfSBl
bHNpZiAoKCRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheU9yU2VxdWVuY2VUeXBlKCR0eXBlKSB8fCAk
Y29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3It
PklzV3JhcHBlclR5cGUoJHR5cGUpKSAmJiAkdHlwZSBuZSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAg
ICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkdldEFycmF5T3JTZXF1ZW5jZVR5cGUoJHR5
cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgIG15ICRjb25kaXRp
b24gPSAiIjsKIAogICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXItPmlzTnVsbGFibGUpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKaW5kZXggZTgxZmZjNGVkOTU5MzNjOGQ5NDNlMjllM2ZlZGNkYjE5YzhlYzM4My4u
MTVjMzM1ZDc0NzRlODExZjJlY2U0MGZjZDJlOGM0YjUxMzUxYzMwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgK
QEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkZWZhdWx0UHJldmVudGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9kZWZhdWx0UHJldmVudGVkOyB9CiAgICAgdm9pZCBwcmV2ZW50RGVm
YXVsdCgpCiAgICAgewotICAgICAgICBpZiAobV9jYW5jZWxhYmxlICYmICFtX2lzRXhlY3V0aW5n
UGFzc2l2ZUV2ZW50TGlzdGVuZXIpCisgICAgICAgIGlmIChtX2NhbmNlbGFibGUpCiAgICAgICAg
ICAgICBtX2RlZmF1bHRQcmV2ZW50ZWQgPSB0cnVlOwogICAgIH0KICAgICB2b2lkIHNldERlZmF1
bHRQcmV2ZW50ZWQoYm9vbCBkZWZhdWx0UHJldmVudGVkKSB7IG1fZGVmYXVsdFByZXZlbnRlZCA9
IGRlZmF1bHRQcmV2ZW50ZWQ7IH0KQEAgLTE4MCw4ICsxODAsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBkZWZhdWx0SGFuZGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdEhhbmRsZWQ7IH0KICAg
ICB2b2lkIHNldERlZmF1bHRIYW5kbGVkKCkgeyBtX2RlZmF1bHRIYW5kbGVkID0gdHJ1ZTsgfQog
Ci0gICAgdm9pZCBzZXRJblBhc3NpdmVMaXN0ZW5lcihib29sIHZhbHVlKSB7IG1faXNFeGVjdXRp
bmdQYXNzaXZlRXZlbnRMaXN0ZW5lciA9IHZhbHVlOyB9Ci0KICAgICBib29sIGNhbmNlbEJ1YmJs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuY2VsQnViYmxlOyB9CiAgICAgdm9pZCBzZXRDYW5jZWxC
dWJibGUoYm9vbCBjYW5jZWwpIHsgbV9jYW5jZWxCdWJibGUgPSBjYW5jZWw7IH0KIApAQCAtMjE5
LDcgKzIxNyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RlZmF1bHRIYW5kbGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fY2FuY2VsQnViYmxlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNUcnVz
dGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNFeGVjdXRpbmdQYXNzaXZlRXZlbnRMaXN0ZW5l
ciB7IGZhbHNlIH07CiAKICAgICB1bnNpZ25lZCBzaG9ydCBtX2V2ZW50UGhhc2UgeyAwIH07CiAg
ICAgRXZlbnRUYXJnZXQqIG1fY3VycmVudFRhcmdldCB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudExpc3RlbmVyTWFwLmNwcAppbmRleCA1YTUxNTZmODViNmMxNmE0ZTJjYzc2YTNm
MzcwMjQ2NTI0ZDI1N2U5Li5iMDRlMTIxM2E1NWNiNjVjMmYyZTUyMzg5ZWU0NjRkN2Y4NDVlZWQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwCkBAIC05NSw5ICs5NSw5
IEBAIFZlY3RvcjxBdG9taWNTdHJpbmc+IEV2ZW50TGlzdGVuZXJNYXA6OmV2ZW50VHlwZXMoKSBj
b25zdAogICAgIHJldHVybiB0eXBlczsKIH0KIAotc3RhdGljIGJvb2wgYWRkTGlzdGVuZXJUb1Zl
Y3RvcihFdmVudExpc3RlbmVyVmVjdG9yKiB2ZWN0b3IsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxp
c3RlbmVyLCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcjo6T3B0aW9ucyYgb3B0aW9ucykK
K3N0YXRpYyBib29sIGFkZExpc3RlbmVyVG9WZWN0b3IoRXZlbnRMaXN0ZW5lclZlY3RvciogdmVj
dG9yLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewot
ICAgIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyIHJlZ2lzdGVyZWRMaXN0ZW5lcihXVEZNb3ZlKGxp
c3RlbmVyKSwgb3B0aW9ucyk7CisgICAgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIgcmVnaXN0ZXJl
ZExpc3RlbmVyKFdURk1vdmUobGlzdGVuZXIpLCB1c2VDYXB0dXJlKTsKIAogICAgIGlmICh2ZWN0
b3ItPmZpbmQocmVnaXN0ZXJlZExpc3RlbmVyKSAhPSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOyAvLyBEdXBsaWNhdGUgbGlzdGVuZXIuCkBAIC0xMDYsMTcgKzEwNiwxNyBAQCBzdGF0
aWMgYm9vbCBhZGRMaXN0ZW5lclRvVmVjdG9yKEV2ZW50TGlzdGVuZXJWZWN0b3IqIHZlY3Rvciwg
UmVmPEV2ZW50TGlzdGVuZXI+JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEV2ZW50TGlz
dGVuZXJNYXA6OmFkZChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlz
dGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyOjpPcHRpb25z
JiBvcHRpb25zKQorYm9vbCBFdmVudExpc3RlbmVyTWFwOjphZGQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1
cmUpCiB7CiAgICAgYXNzZXJ0Tm9BY3RpdmVJdGVyYXRvcnMoKTsKIAogICAgIGZvciAoYXV0byYg
ZW50cnkgOiBtX2VudHJpZXMpIHsKICAgICAgICAgaWYgKGVudHJ5LmZpcnN0ID09IGV2ZW50VHlw
ZSkKLSAgICAgICAgICAgIHJldHVybiBhZGRMaXN0ZW5lclRvVmVjdG9yKGVudHJ5LnNlY29uZC5n
ZXQoKSwgV1RGTW92ZShsaXN0ZW5lciksIG9wdGlvbnMpOworICAgICAgICAgICAgcmV0dXJuIGFk
ZExpc3RlbmVyVG9WZWN0b3IoZW50cnkuc2Vjb25kLmdldCgpLCBXVEZNb3ZlKGxpc3RlbmVyKSwg
dXNlQ2FwdHVyZSk7CiAgICAgfQogCiAgICAgbV9lbnRyaWVzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihldmVudFR5cGUsIHN0ZDo6bWFrZV91bmlxdWU8RXZlbnRMaXN0ZW5lclZlY3Rvcj4oKSkpOwot
ICAgIHJldHVybiBhZGRMaXN0ZW5lclRvVmVjdG9yKG1fZW50cmllcy5sYXN0KCkuc2Vjb25kLmdl
dCgpLCBXVEZNb3ZlKGxpc3RlbmVyKSwgb3B0aW9ucyk7CisgICAgcmV0dXJuIGFkZExpc3RlbmVy
VG9WZWN0b3IobV9lbnRyaWVzLmxhc3QoKS5zZWNvbmQuZ2V0KCksIFdURk1vdmUobGlzdGVuZXIp
LCB1c2VDYXB0dXJlKTsKIH0KIAogc3RhdGljIGJvb2wgcmVtb3ZlTGlzdGVuZXJGcm9tVmVjdG9y
KEV2ZW50TGlzdGVuZXJWZWN0b3IqIGxpc3RlbmVyVmVjdG9yLCBFdmVudExpc3RlbmVyJiBsaXN0
ZW5lciwgYm9vbCB1c2VDYXB0dXJlLCBzaXplX3QmIGluZGV4T2ZSZW1vdmVkTGlzdGVuZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuaAppbmRleCBkNDM0YmQ3Yjg4MTUyNzZiYzQ2
NDcwMTc2ODVhMTJlN2RhYTk0NzQzLi4xZWZlNmFiZjhjZWVkMmQ5NjNhYzc2MzE5MWMwYTJhOGZm
OWI2MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmgKQEAgLTU0LDggKzU0
LDcgQEAgcHVibGljOgogICAgIGJvb2wgY29udGFpbnNDYXB0dXJpbmcoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUpIGNvbnN0OwogCiAgICAgdm9pZCBjbGVhcigpOwotCi0gICAgYm9vbCBh
ZGQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBj
b25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcjo6T3B0aW9ucyYpOworICAgIGJvb2wgYWRkKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgYm9vbCB1
c2VDYXB0dXJlKTsKICAgICBib29sIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgdXNlQ2FwdHVyZSwgc2l6ZV90JiBpbmRleE9mUmVtb3Zl
ZExpc3RlbmVyKTsKICAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBmaW5kKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlKTsKICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBldmVudFR5cGVzKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCBiNjdhNDk5MDhjZjc3MjU5
MjAyNmYwNTUxZDgyYjQ1MzU2MWEyMTRkLi5kMjQ4Mzg1OTNkMTdmNmFiNTZkNmQ5MDk5NTg1OTI5
MDU2YjBlMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTc1LDI2ICs3NSwy
OCBAQCBib29sIEV2ZW50VGFyZ2V0Ojppc01lc3NhZ2VQb3J0KCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLWJvb2wgRXZlbnRUYXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBjb25z
dCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYgb3B0aW9ucykKK2Jvb2wgRXZlbnRUYXJnZXQ6OmFk
ZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExp
c3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7Ci0gICAgcmV0dXJuIGVuc3Vy
ZUV2ZW50VGFyZ2V0RGF0YSgpLmV2ZW50TGlzdGVuZXJNYXAuYWRkKGV2ZW50VHlwZSwgV1RGTW92
ZShsaXN0ZW5lciksIHsgb3B0aW9ucy5jYXB0dXJlLCBvcHRpb25zLnBhc3NpdmUsIG9wdGlvbnMu
b25jZSB9KTsKKyAgICByZXR1cm4gZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkuZXZlbnRMaXN0ZW5l
ck1hcC5hZGQoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgdXNlQ2FwdHVyZSk7CiB9CiAK
LXZvaWQgRXZlbnRUYXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXJGb3JCaW5kaW5ncyhjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmUHRyPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNv
bnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQordm9pZCBFdmVudFRhcmdldDo6
YWRkRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewor
ICAgIC8vIEZJWE1FOiBsaXN0ZW5lciBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgbnVsbGFibGUuCiAg
ICAgaWYgKCFsaXN0ZW5lcikKICAgICAgICAgcmV0dXJuOwotICAgIGFkZEV2ZW50TGlzdGVuZXIo
ZXZlbnRUeXBlLCBsaXN0ZW5lci5yZWxlYXNlTm9uTnVsbCgpLCBvcHRpb25zKTsKKyAgICBhZGRF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIucmVsZWFzZU5vbk51bGwoKSwgdXNlQ2Fw
dHVyZSk7CiB9CiAKLXZvaWQgRXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXJGb3JCaW5k
aW5ncyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmUHRyPEV2ZW50TGlzdGVuZXI+
JiYgbGlzdGVuZXIsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgRXZlbnRU
YXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXJGb3JCaW5kaW5ncyhjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgUmVmUHRyPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGJvb2wgdXNlQ2Fw
dHVyZSkKIHsKKyAgICAvLyBGSVhNRTogbGlzdGVuZXIgaXMgbm90IHN1cHBvc2VkIHRvIGJlIG51
bGxhYmxlLgogICAgIGlmICghbGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKLSAgICByZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSwgKmxpc3RlbmVyLCBvcHRpb25zKTsKKyAgICByZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSwgKmxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKIH0KIAotYm9v
bCBFdmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYg
b3B0aW9ucykKK2Jvb2wgRXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBib29sIHVzZUNh
cHR1cmUpCiB7CiAgICAgRXZlbnRUYXJnZXREYXRhKiBkID0gZXZlbnRUYXJnZXREYXRhKCk7CiAg
ICAgaWYgKCFkKQpAQCAtMTAyLDcgKzEwNCw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OnJlbW92ZUV2
ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuCiAK
ICAgICBzaXplX3QgaW5kZXhPZlJlbW92ZWRMaXN0ZW5lcjsKIAotICAgIGlmICghZC0+ZXZlbnRM
aXN0ZW5lck1hcC5yZW1vdmUoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucy5jYXB0dXJlLCBp
bmRleE9mUmVtb3ZlZExpc3RlbmVyKSkKKyAgICBpZiAoIWQtPmV2ZW50TGlzdGVuZXJNYXAucmVt
b3ZlKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUsIGluZGV4T2ZSZW1vdmVkTGlzdGVu
ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBOb3RpZnkgZmlyaW5nIGV2ZW50
cyBwbGFubmluZyB0byBpbnZva2UgdGhlIGxpc3RlbmVyIGF0ICdpbmRleCcgdGhhdApAQCAtMTI5
LDcgKzEzMSw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0CiAgICAgY2xlYXJBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSk7CiAgICAgaWYgKCFsaXN0ZW5lcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJldHVybiBhZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVu
ZXIucmVsZWFzZU5vbk51bGwoKSk7CisgICAgcmV0dXJuIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnRU
eXBlLCBsaXN0ZW5lci5yZWxlYXNlTm9uTnVsbCgpLCBmYWxzZSk7CiB9CiAKIEV2ZW50TGlzdGVu
ZXIqIEV2ZW50VGFyZ2V0OjpnZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlKQpAQCAtMjU3LDExICsyNTksNyBAQCB2b2lkIEV2ZW50VGFyZ2V0Ojpm
aXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50LCBFdmVudFRhcmdldERhdGEqIGQsIEV2ZW50
TGlzdAogICAgIH0KIAogICAgIGZvciAoOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFJlZ2lz
dGVyZWRFdmVudExpc3RlbmVyIHJlZ2lzdGVyZWRMaXN0ZW5lciA9IGVudHJ5W2ldOwotCi0gICAg
ICAgIGlmIChyZWdpc3RlcmVkTGlzdGVuZXIuaXNNYXJrZWRGb3JSZW1vdmFsKQotICAgICAgICAg
ICAgY29udGludWU7Ci0KKyAgICAgICAgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIHJlZ2lzdGVy
ZWRMaXN0ZW5lciA9IGVudHJ5W2ldOwogICAgICAgICBpZiAoZXZlbnQuZXZlbnRQaGFzZSgpID09
IEV2ZW50OjpDQVBUVVJJTkdfUEhBU0UgJiYgIXJlZ2lzdGVyZWRMaXN0ZW5lci51c2VDYXB0dXJl
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChldmVudC5ldmVudFBoYXNlKCkg
PT0gRXZlbnQ6OkJVQkJMSU5HX1BIQVNFICYmIHJlZ2lzdGVyZWRMaXN0ZW5lci51c2VDYXB0dXJl
KQpAQCAtMjcyLDI3ICsyNzAsMTIgQEAgdm9pZCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVu
ZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBkLCBFdmVudExpc3QKICAgICAgICAg
aWYgKGV2ZW50LmltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKQogICAgICAgICAgICAgYnJl
YWs7CiAKLSAgICAgICAgaWYgKHJlZ2lzdGVyZWRMaXN0ZW5lci5pc1Bhc3NpdmUpCi0gICAgICAg
ICAgICBldmVudC5zZXRJblBhc3NpdmVMaXN0ZW5lcih0cnVlKTsKLQotICAgICAgICAvLyBNYXJr
IGxpc3RlbmVyIGZvciByZW1vdmFsIGJlZm9yZSBleGVjdXRpbmcgdGhlIGxpc3RlbmVyLCBpbiBj
YXNlIHRoZSBsaXN0ZW5lciB0cmllcyB0bwotICAgICAgICAvLyBkaXNwYXRjaCBhbiBldmVudCB0
aGF0IHdvdWxkIGNhdXNlIGl0IHRvIGdldCBleGVjdXRlZCBhZ2Fpbi4KLSAgICAgICAgaWYgKHJl
Z2lzdGVyZWRMaXN0ZW5lci5pc09uY2UpCi0gICAgICAgICAgICByZWdpc3RlcmVkTGlzdGVuZXIu
aXNNYXJrZWRGb3JSZW1vdmFsID0gdHJ1ZTsKLQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFuZGxl
RXZlbnQoY29udGV4dCwgZXZlbnQpOwogICAgICAgICAvLyBUbyBtYXRjaCBNb3ppbGxhLCB0aGUg
QVRfVEFSR0VUIHBoYXNlIGZpcmVzIGJvdGggY2FwdHVyaW5nIGFuZCBidWJibGluZwogICAgICAg
ICAvLyBldmVudCBsaXN0ZW5lcnMsIGV2ZW4gdGhvdWdoIHRoYXQgdmlvbGF0ZXMgc29tZSB2ZXJz
aW9ucyBvZiB0aGUgRE9NIHNwZWMuCiAgICAgICAgIHJlZ2lzdGVyZWRMaXN0ZW5lci5saXN0ZW5l
ci0+aGFuZGxlRXZlbnQoY29udGV4dCwgJmV2ZW50KTsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRIYW5kbGVFdmVudChjb29raWUpOwotCi0gICAgICAgIGlmIChyZWdpc3Rl
cmVkTGlzdGVuZXIuaXNQYXNzaXZlKQotICAgICAgICAgICAgZXZlbnQuc2V0SW5QYXNzaXZlTGlz
dGVuZXIoZmFsc2UpOwotCi0gICAgICAgIGlmIChyZWdpc3RlcmVkTGlzdGVuZXIuaXNPbmNlKQot
ICAgICAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudC50eXBlKCksICpyZWdpc3RlcmVk
TGlzdGVuZXIubGlzdGVuZXIsIExpc3RlbmVyT3B0aW9ucyhyZWdpc3RlcmVkTGlzdGVuZXIudXNl
Q2FwdHVyZSkpOwogICAgIH0KLQogICAgIGQtPmZpcmluZ0V2ZW50SXRlcmF0b3JzLT5yZW1vdmVM
YXN0KCk7CiAKICAgICBpZiAoZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCmluZGV4
IGI2NWExNDQ4ZDJkZjJiMGYzZGViODBmMGQ5MTMyMmNkM2I5Zjg1MDMuLjFiMWRlZDE5YTVkOWNh
NTY2NGU1MGE5OTlkNmMzZWZiOTJhN2VlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCkBA
IC0xMjEsMzEgKzEyMSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBET01XaW5kb3cqIHRvRE9N
V2luZG93KCk7CiAgICAgdmlydHVhbCBib29sIGlzTWVzc2FnZVBvcnQoKSBjb25zdDsKIAotICAg
IHN0cnVjdCBMaXN0ZW5lck9wdGlvbnMgewotICAgICAgICBMaXN0ZW5lck9wdGlvbnMoYm9vbCBj
YXB0dXJlID0gZmFsc2UpCi0gICAgICAgICAgICA6IGNhcHR1cmUoY2FwdHVyZSkKLSAgICAgICAg
eyB9Ci0KLSAgICAgICAgYm9vbCBjYXB0dXJlOwotICAgIH07Ci0KLSAgICBzdHJ1Y3QgQWRkRXZl
bnRMaXN0ZW5lck9wdGlvbnMgOiBwdWJsaWMgTGlzdGVuZXJPcHRpb25zIHsKLSAgICAgICAgQWRk
RXZlbnRMaXN0ZW5lck9wdGlvbnMoYm9vbCBjYXB0dXJlID0gZmFsc2UsIGJvb2wgcGFzc2l2ZSA9
IGZhbHNlLCBib29sIG9uY2UgPSBmYWxzZSkKLSAgICAgICAgICAgIDogTGlzdGVuZXJPcHRpb25z
KGNhcHR1cmUpCi0gICAgICAgICAgICAsIHBhc3NpdmUocGFzc2l2ZSkKLSAgICAgICAgICAgICwg
b25jZShvbmNlKQotICAgICAgICB7IH0KLQotICAgICAgICBib29sIHBhc3NpdmU7Ci0gICAgICAg
IGJvb2wgb25jZTsKLSAgICB9OwotCiAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyRm9yQmluZGlu
Z3MoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVudExpc3RlbmVyPiYm
LCBib29sIHVzZUNhcHR1cmUpOwogICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lckZvckJpbmRp
bmdzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4m
JiwgYm9vbCB1c2VDYXB0dXJlKTsKLSAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXJGb3JCaW5kaW5n
cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmUHRyPEV2ZW50TGlzdGVuZXI+JiYs
IGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJik7Ci0gICAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyRm9yQmluZGluZ3MoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxF
dmVudExpc3RlbmVyPiYmLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKTsKLSAgICB2aXJ0dWFsIGJv
b2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2
ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiA9IHsgfSk7Ci0g
ICAgdmlydHVhbCBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGJvb2wgdXNlQ2FwdHVyZSk7CisgICAgdmlydHVhbCBi
b29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2
ZW50TGlzdGVuZXImLCBib29sIHVzZUNhcHR1cmUpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZl
bnQmKTsKQEAgLTIzMCwxNiArMjA5LDYgQEAgaW5saW5lIGJvb2wgRXZlbnRUYXJnZXQ6Omhhc0Nh
cHR1cmluZ0V2ZW50TGlzdGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXAKICAgICBy
ZXR1cm4gZC0+ZXZlbnRMaXN0ZW5lck1hcC5jb250YWluc0NhcHR1cmluZyhldmVudFR5cGUpOwog
fQogCi1pbmxpbmUgdm9pZCBFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdz
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBs
aXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQotewotICAgIGFkZEV2ZW50TGlzdGVuZXJGb3JCaW5k
aW5ncyhldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBBZGRFdmVudExpc3RlbmVyT3B0aW9u
cyh1c2VDYXB0dXJlKSk7Ci19Ci0KLWlubGluZSB2b2lkIEV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVu
dExpc3RlbmVyRm9yQmluZGluZ3MoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0
cjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCi17Ci0gICAgcmVt
b3ZlRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdzKGV2ZW50VHlwZSwgV1RGTW92ZShsaXN0ZW5lciks
IExpc3RlbmVyT3B0aW9ucyh1c2VDYXB0dXJlKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEV2ZW50VGFyZ2V0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaWRs
CmluZGV4IDlkOTAxNmYzOWFjOWUxOTM4NDEyZDM2Mzk3OWViOTEzYWNlMDc3MWEuLmM1OTQ1ODk2
ZTAwYTY2NzU2MzkwMzlhMDg2MWZmNjY1NzVlZGJlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmlkbApAQCAtMjUsMTEgKzI1LDYgQEAKICAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAog
ICAgIE9iakNQcm90b2NvbCwKIF0gaW50ZXJmYWNlIEV2ZW50VGFyZ2V0IHsKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICBbSW1wbGVt
ZW50ZWRBcz1hZGRFdmVudExpc3RlbmVyRm9yQmluZGluZ3NdIHZvaWQgYWRkRXZlbnRMaXN0ZW5l
cihbQXRvbWljU3RyaW5nXSBET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lcj8gbGlzdGVuZXIs
IG9wdGlvbmFsIEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIG9wdGlvbnMpOwotICAgIFtJbXBsZW1l
bnRlZEFzPXJlbW92ZUV2ZW50TGlzdGVuZXJGb3JCaW5kaW5nc10gdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKFtBdG9taWNTdHJpbmddIERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyPyBsaXN0
ZW5lciwgb3B0aW9uYWwgRXZlbnRMaXN0ZW5lck9wdGlvbnMgb3B0aW9ucyk7Ci0jZW5kaWYKLQog
ICAgIC8vIEZJWE1FOiBUaGUgJ3R5cGUnIGFuZCAnbGlzdGVuZXInIHBhcmFtZXRlcnMgc2hvdWxk
IG5vdCBiZSBvcHRpb25hbC4KICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBJbXBs
ZW1lbnRlZEFzPWFkZEV2ZW50TGlzdGVuZXJGb3JCaW5kaW5nc10gdm9pZCBhZGRFdmVudExpc3Rl
bmVyKFtBdG9taWNTdHJpbmddIG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gInVuZGVmaW5lZCIs
IG9wdGlvbmFsIEV2ZW50TGlzdGVuZXI/IGxpc3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNh
cHR1cmUgPSBmYWxzZSk7CiAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgSW1wbGVt
ZW50ZWRBcz1yZW1vdmVFdmVudExpc3RlbmVyRm9yQmluZGluZ3NdIHZvaWQgcmVtb3ZlRXZlbnRM
aXN0ZW5lcihbQXRvbWljU3RyaW5nXSBvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICJ1bmRlZmlu
ZWQiLCBvcHRpb25hbCBFdmVudExpc3RlbmVyPyBsaXN0ZW5lciwgb3B0aW9uYWwgYm9vbGVhbiB1
c2VDYXB0dXJlID0gZmFsc2UpOwpAQCAtMzcsMTMgKzMyLDMgQEAKICAgICAvLyBGSVhNRTogZXZl
bnQgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KICAgICBbSW1wbGVtZW50ZWRBcz1kaXNwYXRjaEV2
ZW50Rm9yQmluZGluZ3MsIFJhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiBkaXNwYXRjaEV2ZW50KEV2
ZW50PyBldmVudCk7CiB9OwotCi1kaWN0aW9uYXJ5IEV2ZW50TGlzdGVuZXJPcHRpb25zIHsKLSAg
ICBib29sZWFuIGNhcHR1cmUgPSBmYWxzZTsKLX07Ci0KLWRpY3Rpb25hcnkgQWRkRXZlbnRMaXN0
ZW5lck9wdGlvbnMgewotICAgIGJvb2xlYW4gY2FwdHVyZSA9IGZhbHNlOwotICAgIGJvb2xlYW4g
cGFzc2l2ZSA9IGZhbHNlOwotICAgIGJvb2xlYW4gb25jZSA9IGZhbHNlOwotfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnQuY3BwCmluZGV4IGZkZTJjOTI1MTYzNzlhZDg2MzkyOWJmYjllMjkwMTli
OTVkMDZhMTMuLjNkNzg0N2NhZWRiMjkyMGUzYjI2NGI2NTJiYzU0Y2JjMzQ3OGEzYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtMjIxLDExICsyMjEsMTEgQEAgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VQb3J0QXJyYXk+IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKFNjcmlw
dEV4ZWN1dGlvbkNvbnQKICAgICByZXR1cm4gcG9ydEFycmF5OwogfQogCi1ib29sIE1lc3NhZ2VQ
b3J0OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8
RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMm
IG9wdGlvbnMpCitib29sIE1lc3NhZ2VQb3J0OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1
c2VDYXB0dXJlKQogewogICAgIGlmIChsaXN0ZW5lci0+aXNBdHRyaWJ1dGUoKSAmJiBldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLm1lc3NhZ2VFdmVudCkKICAgICAgICAgc3RhcnQoKTsKLSAgICBy
ZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5
cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKTsKKyAgICByZXR1cm4gRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVu
ZXIpLCB1c2VDYXB0dXJlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuaAppbmRleCA2MzE4YWE0MTBhYmVkMjA1YzczODMzYTFlNmZmMDVlZDkzNzYz
ZDQ4Li45Y2ExMjRmNGEyZWZjOTgxZGY1NTYzYmJiYjc1MDQ2Zjc5Y2ZjZGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnQuaApAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIEEgcG9ydCBnZXRzIG5ldXRlcmVkIHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8g
YSBuZXcgb3duZXIgdmlhIHBvc3RNZXNzYWdlKCkuCiAgICAgICAgIGJvb2wgaXNOZXV0ZXJlZCgp
IHsgcmV0dXJuICFtX2VudGFuZ2xlZENoYW5uZWw7IH0KIAotICAgICAgICBib29sIGFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVy
PiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOworICAgICAgICBi
b29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxF
dmVudExpc3RlbmVyPiYmLCBib29sIHVzZUNhcHR1cmUpIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgZXhwbGljaXQgTWVzc2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IDRmODE0NWI5MzU4MTk2ZDZlNjM3Y2MxOTJkOTlhNDUzNjkx
YzNkOWIuLmY2ZjA5ZTgwNDEzYTdhMGYyMjIyNjU2ZDFiZWIyMTFmYzgxZTM4YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTE5MDcsOSArMTkwNyw5IEBAIHZvaWQgTm9kZTo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBi
b29sIHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBjb25zdCBFdmVu
dFRhcmdldDo6QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmIG9wdGlvbnMpCitzdGF0aWMgaW5saW5l
IGJvb2wgdHJ5QWRkRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGJvb2wgdXNl
Q2FwdHVyZSkKIHsKLSAgICBpZiAoIXRhcmdldE5vZGUtPkV2ZW50VGFyZ2V0OjphZGRFdmVudExp
c3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIuY29weVJlZigpLCBvcHRpb25zKSkKKyAgICBpZiAo
IXRhcmdldE5vZGUtPkV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlz
dGVuZXIuY29weVJlZigpLCB1c2VDYXB0dXJlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5hZGRMaXN0ZW5lclR5cGVJZk5lZWRlZChldmVudFR5
cGUpOwpAQCAtMTkyNyw3ICsxOTI3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHRyeUFkZEV2ZW50
TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmUKICAgICAv
LyBUaGlzIGNvZGUgd2FzIGFkZGVkIHRvIGFkZHJlc3MgPHJkYXI6Ly9wcm9ibGVtLzU4NDY0OTI+
IE9ub3JpZW50YXRpb25jaGFuZ2UgZXZlbnQgbm90IHdvcmtpbmcgZm9yIGRvY3VtZW50LmJvZHku
CiAgICAgLy8gRm9yd2FyZCB0aGlzIGNhbGwgdG8gYWRkRXZlbnRMaXN0ZW5lcigpIHRvIHRoZSB3
aW5kb3cgc2luY2UgdGhlc2UgYXJlIHdpbmRvdy1vbmx5IGV2ZW50cy4KICAgICBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50IHx8IGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkucmVzaXplRXZlbnQpCi0gICAgICAgIHRhcmdldE5vZGUtPmRvY3VtZW50
KCkuZG9tV2luZG93KCktPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3Rl
bmVyKSwgb3B0aW9ucyk7CisgICAgICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuZG9tV2luZG93
KCktPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgdXNlQ2Fw
dHVyZSk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGlmIChldmVudE5hbWVzKCku
aXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQpAQCAtMTk0MywxNCArMTk0MywxNCBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgdHJ5QWRkRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE5vZGU6OmFk
ZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExp
c3RlbmVyPiYmIGxpc3RlbmVyLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYgb3B0aW9u
cykKK2Jvb2wgTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsK
LSAgICByZXR1cm4gdHJ5QWRkRXZlbnRMaXN0ZW5lcih0aGlzLCBldmVudFR5cGUsIFdURk1vdmUo
bGlzdGVuZXIpLCBvcHRpb25zKTsKKyAgICByZXR1cm4gdHJ5QWRkRXZlbnRMaXN0ZW5lcih0aGlz
LCBldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCB1c2VDYXB0dXJlKTsKIH0KIAotc3RhdGlj
IGlubGluZSBib29sIHRyeVJlbW92ZUV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBjb25z
dCBFdmVudFRhcmdldDo6TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorc3RhdGljIGlubGluZSBi
b29sIHRyeVJlbW92ZUV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1
cmUpCiB7Ci0gICAgaWYgKCF0YXJnZXROb2RlLT5FdmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0
ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSkKKyAgICBpZiAoIXRhcmdldE5vZGUt
PkV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVz
ZUNhcHR1cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBGSVhNRTogTm90aWZ5
IERvY3VtZW50IHRoYXQgdGhlIGxpc3RlbmVyIGhhcyB2YW5pc2hlZC4gV2UgbmVlZCB0byBrZWVw
IHRyYWNrIG9mIGEgbnVtYmVyIG9mCkBAIC0xOTY4LDcgKzE5NjgsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgdHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9t
aWNTdHJpbmcmCiAgICAgLy8gVGhpcyBjb2RlIHdhcyBhZGRlZCB0byBhZGRyZXNzIDxyZGFyOi8v
cHJvYmxlbS81ODQ2NDkyPiBPbm9yaWVudGF0aW9uY2hhbmdlIGV2ZW50IG5vdCB3b3JraW5nIGZv
ciBkb2N1bWVudC5ib2R5LgogICAgIC8vIEZvcndhcmQgdGhpcyBjYWxsIHRvIHJlbW92ZUV2ZW50
TGlzdGVuZXIoKSB0byB0aGUgd2luZG93IHNpbmNlIHRoZXNlIGFyZSB3aW5kb3ctb25seSBldmVu
dHMuCiAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VF
dmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnJlc2l6ZUV2ZW50KQotICAgICAgICB0
YXJnZXROb2RlLT5kb2N1bWVudCgpLmRvbVdpbmRvdygpLT5yZW1vdmVFdmVudExpc3RlbmVyKGV2
ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpOworICAgICAgICB0YXJnZXROb2RlLT5kb2N1bWVu
dCgpLmRvbVdpbmRvdygpLT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIs
IHVzZUNhcHR1cmUpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBpZiAoZXZlbnRO
YW1lcygpLmlzVG91Y2hFdmVudFR5cGUoZXZlbnRUeXBlKSkKQEAgLTE5ODQsOSArMTk4NCw5IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlSZW1vdmVFdmVudExpc3RlbmVyKE5vZGUqIHRhcmdldE5v
ZGUsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBOb2Rl
OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVu
dExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgTGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9v
bCBOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewotICAgIHJldHVy
biB0cnlSZW1vdmVFdmVudExpc3RlbmVyKHRoaXMsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlv
bnMpOworICAgIHJldHVybiB0cnlSZW1vdmVFdmVudExpc3RlbmVyKHRoaXMsIGV2ZW50VHlwZSwg
bGlzdGVuZXIsIHVzZUNhcHR1cmUpOwogfQogCiB0eXBlZGVmIEhhc2hNYXA8Tm9kZSosIHN0ZDo6
dW5pcXVlX3B0cjxFdmVudFRhcmdldERhdGE+PiBFdmVudFRhcmdldERhdGFNYXA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAppbmRleCBmOGQxMjJkMzIyOTcxMzk1Zjc1NGM5YjE5YmEwZTU0ZTNkNTNlZGE4Li4zZjQ4ZmM1
MjZhZmEzNWU0Y2I0MzRlODIwZGJlNzhhMjc5YzUyYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTUwNyw4
ICs1MDcsOCBAQCBwdWJsaWM6CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWw7IC8vIEltcGxlbWVudGVkIGluIERv
Y3VtZW50LmgKIAotICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJP
cHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgY29uc3QgTGlzdGVuZXJPcHRp
b25zJikgb3ZlcnJpZGU7CisgICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgYm9vbCB1c2VDYXB0dXJlKSBv
dmVycmlkZTsKKyAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIHVzZUNhcHR1cmUpIG92ZXJyaWRlOwog
CiAgICAgdXNpbmcgRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQ7CiAgICAgYm9vbCBkaXNwYXRj
aEV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVk
RXZlbnRMaXN0ZW5lci5oCmluZGV4IGUyYjRlOWQ2YzZlNWVkYWI2MDdhMDkwMmIyNjM4ZjA0YTQ1
MzAyZDMuLjNmMjIyNjQ0NzgyMzFiMWRhZDUyZWFmNWNiMWY4ODAxODIwZjRkMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oCkBAIC0zMSwyNiArMzEs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lciB7CiAgICAgcHVibGljOgotICAgICAgICBzdHJ1Y3QgT3B0aW9ucyB7Ci0gICAgICAgICAg
ICBPcHRpb25zKGJvb2wgY2FwdHVyZSA9IGZhbHNlLCBib29sIHBhc3NpdmUgPSBmYWxzZSwgYm9v
bCBvbmNlID0gZmFsc2UpCi0gICAgICAgICAgICAgICAgOiBjYXB0dXJlKGNhcHR1cmUpCi0gICAg
ICAgICAgICAgICAgLCBwYXNzaXZlKHBhc3NpdmUpCi0gICAgICAgICAgICAgICAgLCBvbmNlKG9u
Y2UpCi0gICAgICAgICAgICB7IH0KLQotICAgICAgICAgICAgYm9vbCBjYXB0dXJlOwotICAgICAg
ICAgICAgYm9vbCBwYXNzaXZlOwotICAgICAgICAgICAgYm9vbCBvbmNlOwotICAgICAgICB9Owot
Ci0gICAgICAgIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyKFJlZjxFdmVudExpc3RlbmVyPiYmIGxp
c3RlbmVyLCBjb25zdCBPcHRpb25zJiBvcHRpb25zKQotICAgICAgICAgICAgOiBsaXN0ZW5lcihX
VEZNb3ZlKGxpc3RlbmVyKSkKLSAgICAgICAgICAgICwgdXNlQ2FwdHVyZShvcHRpb25zLmNhcHR1
cmUpCi0gICAgICAgICAgICAsIGlzUGFzc2l2ZShvcHRpb25zLnBhc3NpdmUpCi0gICAgICAgICAg
ICAsIGlzT25jZShvcHRpb25zLm9uY2UpCi0gICAgICAgIHsKLSAgICAgICAgfQotCiAgICAgICAg
IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyKFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBi
b29sIHVzZUNhcHR1cmUpCiAgICAgICAgICAgICA6IGxpc3RlbmVyKFdURk1vdmUobGlzdGVuZXIp
KQogICAgICAgICAgICAgLCB1c2VDYXB0dXJlKHVzZUNhcHR1cmUpCkBAIC01OCwxNiArMzgsMTEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAKICAgICAgICAgUmVmUHRyPEV2ZW50
TGlzdGVuZXI+IGxpc3RlbmVyOwotICAgICAgICBib29sIHVzZUNhcHR1cmUgeyBmYWxzZSB9Owot
ICAgICAgICBib29sIGlzUGFzc2l2ZSB7IGZhbHNlIH07Ci0gICAgICAgIGJvb2wgaXNPbmNlIHsg
ZmFsc2UgfTsKLSAgICAgICAgYm9vbCBpc01hcmtlZEZvclJlbW92YWwgeyBmYWxzZSB9OworICAg
ICAgICBib29sIHVzZUNhcHR1cmU7CiAgICAgfTsKICAgICAKICAgICBpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiBhLCBjb25zdCBSZWdpc3RlcmVk
RXZlbnRMaXN0ZW5lciYgYikKICAgICB7Ci0gICAgICAgIC8vIE90aGVyIGRhdGEgbWVtYmVycyBh
cmUgcHVycG9zZWZ1bGx5IG5vdCBjaGVja2VkLiBUaGUgRE9NIHNwZWNpZmljYXRpb24gc2F5cyB0
aGF0IHVwb24gYWRkaW5nIC8gcmVtb3ZpbmcKLSAgICAgICAgLy8gRXZlbnRMaXN0ZW5lcnMsIHdl
IHNob3VsZCBvbmx5IGNoZWNrIHRoZSB0eXBlIGFuZCB0aGUgY2FwdHVyZSBmbGFnLgogICAgICAg
ICByZXR1cm4gKmEubGlzdGVuZXIgPT0gKmIubGlzdGVuZXIgJiYgYS51c2VDYXB0dXJlID09IGIu
dXNlQ2FwdHVyZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGExYTYwZmMxYzYyYzNiNzBlYjhmZTQ4ODUwZGM3NGU1NzVjYWRiMWUuLjg5M2Nl
MDZlYWViMjZiNzc5YTNmMTdhMDUyNGZmYWFmMDY3MmI4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTIyOCwxMyArNTIyOCwxMyBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBIVE1M
RWxlbWVudDo6ZGlzcGF0Y2hFdmVudChldmVudCk7CiB9CiAKLWJvb2wgSFRNTE1lZGlhRWxlbWVu
dDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2
ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBv
cHRpb25zKQorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9v
bCB1c2VDYXB0dXJlKQogewogICAgIGlmIChldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLndlYmtp
dHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5Y2hhbmdlZEV2ZW50KQotICAgICAgICByZXR1cm4g
Tm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRp
b25zKTsKKyAgICAgICAgcmV0dXJuIE5vZGU6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBX
VEZNb3ZlKGxpc3RlbmVyKSwgdXNlQ2FwdHVyZSk7CiAKICAgICBib29sIGlzRmlyc3RBdmFpbGFi
aWxpdHlDaGFuZ2VkTGlzdGVuZXIgPSAhaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLndl
YmtpdHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5Y2hhbmdlZEV2ZW50KTsKLSAgICBpZiAoIU5v
ZGU6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgb3B0aW9u
cykpCisgICAgaWYgKCFOb2RlOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgV1RGTW92ZShs
aXN0ZW5lciksIHVzZUNhcHR1cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAo
aXNGaXJzdEF2YWlsYWJpbGl0eUNoYW5nZWRMaXN0ZW5lcikgewpAQCAtNTI0OCwxMiArNTI0OCwx
MiBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBjb25zdCBMaXN0ZW5lck9wdGlv
bnMmIG9wdGlvbnMpCitib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBi
b29sIHVzZUNhcHR1cmUpCiB7CiAgICAgaWYgKGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkud2Vi
a2l0cGxheWJhY2t0YXJnZXRhdmFpbGFiaWxpdHljaGFuZ2VkRXZlbnQpCi0gICAgICAgIHJldHVy
biBOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMp
OworICAgICAgICByZXR1cm4gTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxp
c3RlbmVyLCB1c2VDYXB0dXJlKTsKIAotICAgIGlmICghTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSkKKyAgICBpZiAoIU5vZGU6OnJlbW92ZUV2
ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGJvb2wgZGlkUmVtb3ZlTGFzdEF2YWlsYWJpbGl0eUNoYW5nZWRM
aXN0ZW5lciA9ICFoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkud2Via2l0cGxheWJhY2t0
YXJnZXRhdmFpbGFiaWxpdHljaGFuZ2VkRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAppbmRleCA1MTc4ZTdhNWUzYTFhN2FkODlmOThlMzkzMjJiMjBlODA4MzU4YThi
Li41Y2QwZTQxY2QwYzliYmJmM2I2ZWI0YzFjZTE4NDE1M2I0MGI1N2U4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzQyLDggKzM0Miw4IEBAIHB1YmxpYzoKIAog
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCB3ZWJraXRTaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoKTsKLSAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRF
dmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0
ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0
IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGJvb2wg
dXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CisgICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCB1c2VDYXB0dXJl
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgd2lyZWxlc3NSb3V0ZXNBdmFpbGFibGVEaWRDaGFuZ2Uo
KSBvdmVycmlkZTsKICAgICBib29sIGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBmZjU3MDBjNmE5
ODg4Yzc2MWE0ZjVlM2VlMjI0ZWVjYWEyYTM4OGRmLi5mYjMwNGI0ZDUzODMxYzUzZDE2MTA4NzA4
MDVmY2EyOTdlMWY0OTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNzIyLDkg
KzE3MjIsOSBAQCBib29sIERPTVdpbmRvdzo6aXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFt
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERPTVdpbmRvdzo6YWRkRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVu
ZXI+JiYgbGlzdGVuZXIsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQor
Ym9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7
Ci0gICAgaWYgKCFFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1v
dmUobGlzdGVuZXIpLCBvcHRpb25zKSkKKyAgICBpZiAoIUV2ZW50VGFyZ2V0OjphZGRFdmVudExp
c3RlbmVyKGV2ZW50VHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHVzZUNhcHR1cmUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKSkgewpAQCAtMTgyNSw5ICsxODI1LDkgQEAgdm9pZCBET01XaW5kb3c6OnJlc2V0QWxs
R2VvbG9jYXRpb25QZXJtaXNzaW9uKCkKICNlbmRpZgogfQogCi1ib29sIERPTVdpbmRvdzo6cmVt
b3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0
ZW5lciYgbGlzdGVuZXIsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYgb3B0aW9ucykKK2Jvb2wgRE9N
V2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewotICAgIGlmICgh
RXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0
aW9ucy5jYXB0dXJlKSkKKyAgICBpZiAoIUV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVy
KGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKaW5kZXggOWI3YjdmODFjNWM5ZjM2NTUyYTg5YjNjMGNhM2VhMjVh
OTkzNzdlOC4uMDE1OGUxNDA2NjI3NDhmYzg5NGY5MjU4MTRkNDYyNDgxYmZhZjQxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0yNzksOCArMjc5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIC8vIEV2ZW50cwogICAgICAgICAvLyBFdmVudFRhcmdldCBBUEkKLSAgICAg
ICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBS
ZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVy
cmlkZTsKLSAgICAgICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgY29uc3QgTGlzdGVuZXJPcHRpb25zJikgb3Zl
cnJpZGU7CisgICAgICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJp
ZGU7CisgICAgICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CiAg
ICAgICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsKIAogICAgICAg
ICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmNwcAppbmRleCA1YWE5MTdlYzBmYjQwNTA2NWEyMzk0YWE1N2FkMmNiOWIwMDRkNDhlLi5hYjI0
NWQ1N2Y1ODliZGJkMDU0MTRhNzg4NDI5N2I4MjJkMGNkNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuY3BwCkBAIC01MjgsMTAgKzUyOCwxMCBAQCBib29sIFNWR0VsZW1lbnQ6OmhhdmVMb2Fk
ZWRSZXF1aXJlZFJlc291cmNlcygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU1ZHRWxl
bWVudDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVm
PEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25z
JiBvcHRpb25zKQorYm9vbCBTVkdFbGVtZW50OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1
c2VDYXB0dXJlKQogeyAgIAogICAgIC8vIEFkZCBldmVudCBsaXN0ZW5lciB0byByZWd1bGFyIERP
TSBlbGVtZW50Ci0gICAgaWYgKCFOb2RlOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlz
dGVuZXIuY29weVJlZigpLCBvcHRpb25zKSkKKyAgICBpZiAoIU5vZGU6OmFkZEV2ZW50TGlzdGVu
ZXIoZXZlbnRUeXBlLCBsaXN0ZW5lci5jb3B5UmVmKCksIHVzZUNhcHR1cmUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoY29udGFpbmluZ1NoYWRvd1Jvb3QoKSkKQEAgLTU0MSwx
NyArNTQxLDE3IEBAIGJvb2wgU1ZHRWxlbWVudDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuCiAgICAgQVNTRVJUKCFpbnN0YW5j
ZVVwZGF0ZXNCbG9ja2VkKCkpOwogICAgIGZvciAoYXV0byogaW5zdGFuY2UgOiBpbnN0YW5jZXMo
KSkgewogICAgICAgICBBU1NFUlQoaW5zdGFuY2UtPmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgPT0g
dGhpcyk7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0gaW5zdGFuY2UtPk5vZGU6OmFkZEV2ZW50TGlz
dGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lci5jb3B5UmVmKCksIG9wdGlvbnMpOworICAgICAgICBi
b29sIHJlc3VsdCA9IGluc3RhbmNlLT5Ob2RlOjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwg
bGlzdGVuZXIuY29weVJlZigpLCB1c2VDYXB0dXJlKTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChy
ZXN1bHQsIHJlc3VsdCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU1ZH
RWxlbWVudDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYgb3B0aW9u
cykKK2Jvb2wgU1ZHRWxlbWVudDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkK
IHsKICAgICBpZiAoY29udGFpbmluZ1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIE5vZGU6
OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7CisgICAg
ICAgIHJldHVybiBOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIs
IHVzZUNhcHR1cmUpOwogCiAgICAgLy8gRXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIg
Y3JlYXRlcyBhIFBhc3NSZWZQdHIgYXJvdW5kIHRoZSBnaXZlbiBFdmVudExpc3RlbmVyCiAgICAg
Ly8gb2JqZWN0IHdoZW4gY3JlYXRpbmcgYSB0ZW1wb3JhcnkgUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXIgb2JqZWN0IHVzZWQgdG8gbG9vayB1cCB0aGUKQEAgLTU2MSw3ICs1NjEsNyBAQCBib29sIFNW
R0VsZW1lbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEV2ZW50TGlzdGVuZQogICAgIFJlZjxFdmVudExpc3RlbmVyPiBwcm90ZWN0b3IobGlzdGVu
ZXIpOwogCiAgICAgLy8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyIGZyb20gcmVndWxhciBET00gZWxl
bWVudAotICAgIGlmICghTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3Rl
bmVyLCBvcHRpb25zKSkKKyAgICBpZiAoIU5vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRU
eXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IC8vIFJlbW92ZSBldmVudCBsaXN0ZW5lciBmcm9tIGFsbCBzaGFkb3cgdHJlZSBET00gZWxlbWVu
dCBpbnN0YW5jZXMKQEAgLTU2OSw3ICs1NjksNyBAQCBib29sIFNWR0VsZW1lbnQ6OnJlbW92ZUV2
ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZQog
ICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBpbnN0YW5jZXMoKSkgewogICAgICAgICBBU1NFUlQo
aW5zdGFuY2UtPmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgPT0gdGhpcyk7CiAKLSAgICAgICAgaWYg
KGluc3RhbmNlLT5Ob2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIs
IG9wdGlvbnMpKQorICAgICAgICBpZiAoaW5zdGFuY2UtPk5vZGU6OnJlbW92ZUV2ZW50TGlzdGVu
ZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAogICAgICAgICAvLyBUaGlzIGNhc2UgY2FuIG9ubHkgYmUgaGl0IGZvciBldmVudCBsaXN0
ZW5lcnMgY3JlYXRlZCBmcm9tIG1hcmt1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggMWVm
NjhiMGJiNDQ1N2FjMTdiZmFmYTJiOTE1Mjk1MTc0YTFkYThkZC4uOTZkNmM5MDQ2MzFhYjA5NDg4
ZmI1YjZhYWJhZWUyMGZjNjJjMzdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC0xMzMs
OCArMTMzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJl
ZFJlc291cmNlcygpOwogCi0gICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0
ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKLSAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5l
ck9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBib29sIHVzZUNhcHR1
cmUpIG92ZXJyaWRlOworICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBoYXNGb2N1c0V2ZW50TGlzdGVuZXJzKCkgY29uc3Q7CiAKICNpZiBFTkFC
TEUoQ1NTX1JFR0lPTlMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODE3NzczZGZkOWViYzE3M2UwOTVkZWIzMGI3NjJmNzM5
OWU1ZTA2Mi4uNmFhYWNmNWY2ZGU3MzM2ZWU3YThmNGNkYTRlMTZlYWUxMGY4ZTI0YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE2LTA2LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAxNzM1Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDY1CisK
KyAgICAgICAgZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25jZS1yZWN1cnNp
dmUuaHRtbCBmYWlscworICAgICAgICBvbiBhbGwgYm90cyAoUmVxdWVzdGVkIGJ5IGFwIG9uICN3
ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiSW1wbGVt
ZW50IEV2ZW50TGlzdGVuZXJPcHRpb25zIGFyZ3VtZW50IHRvIGFkZEV2ZW50TGlzdGVuZXIiCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk0NjYKKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjAxNzM1CisKIDIwMTYtMDYt
MDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVUkxzIGNv
bnRhaW5pbmcgdGFicyBvciBuZXdsaW5lcyBhcmUgcGFyc2VkIGluY29ycmVjdGx5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjNjUxMWNkNjdjMDNkNWY1MmM4Yjg1MDc5OWVmNGJj
NjI3Nzc4ZThiLi4xNzc4ZmZlMzg0NWEzZGZlMTJhMzRkZDRmOWQ3NzU3MjU4YTk1ZDJiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wNi0wNiAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIwMTczNS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODQ2NQorCisgICAgICAgIGZhc3QvZXZlbnRzL0FkZEV2ZW50
TGlzdGVuZXJPcHRpb25zLW9uY2UtcmVjdXJzaXZlLmh0bWwgZmFpbHMKKyAgICAgICAgb24gYWxs
IGJvdHMgKFJlcXVlc3RlZCBieSBhcCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBj
aGFuZ2VzZXQ6CisKKyAgICAgICAgIkltcGxlbWVudCBFdmVudExpc3RlbmVyT3B0aW9ucyBhcmd1
bWVudCB0byBhZGRFdmVudExpc3RlbmVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NDY2CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzIwMTczNQorCiAyMDE2LTA2LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IEV2ZW50TGlzdGVuZXJPcHRpb25zIGFyZ3VtZW50
IHRvIGFkZEV2ZW50TGlzdGVuZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLW9uY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25jZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwMDI5YWZjZjA3YjZkOGIyMGFkMDRhMDU3MDkx
ZTgwZDM4NWNhZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25jZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0cyBzdXBwb3J0
IGZvciAnb25jZScgbWVtYmVyIGluIEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCd0
ZXN0JywgbGlzdGVuZXJGdW5jdGlvbiwgeyAnb25jZSc6IHRydWUgfSkKLVBBU1MgbGlzdGVuZXJD
YWxsQ291bnQgaXMgMAotZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVz
dCcpKQotUEFTUyBsaXN0ZW5lckNhbGxDb3VudCBpcyAxCi1kb2N1bWVudC5ib2R5LmRpc3BhdGNo
RXZlbnQobmV3IEV2ZW50KCd0ZXN0JykpCi1QQVNTIGxpc3RlbmVyQ2FsbENvdW50IGlzIDEKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1vbmNl
LXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9BZGRFdmVu
dExpc3RlbmVyT3B0aW9ucy1vbmNlLXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIwMDI5YWZjZjA3YjZkOGIyMGFkMDRhMDU3MDkxZTgwZDM4NWNh
ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25jZS1yZWN1cnNpdmUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdHMgc3VwcG9y
dCBmb3IgJ29uY2UnIG1lbWJlciBpbiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucy4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLWRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcign
dGVzdCcsIGxpc3RlbmVyRnVuY3Rpb24sIHsgJ29uY2UnOiB0cnVlIH0pCi1QQVNTIGxpc3RlbmVy
Q2FsbENvdW50IGlzIDAKLWRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rl
c3QnKSkKLVBBU1MgbGlzdGVuZXJDYWxsQ291bnQgaXMgMQotZG9jdW1lbnQuYm9keS5kaXNwYXRj
aEV2ZW50KG5ldyBFdmVudCgndGVzdCcpKQotUEFTUyBsaXN0ZW5lckNhbGxDb3VudCBpcyAxCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25j
ZS1yZWN1cnNpdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL0FkZEV2ZW50TGlzdGVu
ZXJPcHRpb25zLW9uY2UtcmVjdXJzaXZlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRjMmZiNGU5YTlmM2IwZTUwZTQ1MmNjNzdlZDdhZjVjMjEzMjI1OGMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25jZS1yZWN1cnNpdmUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzdXBwb3J0IGZvciAnb25jZScgbWVtYmVyIGluIEFk
ZEV2ZW50TGlzdGVuZXJPcHRpb25zLiIpOwotCi12YXIgbGlzdGVuZXJDYWxsQ291bnQgPSAwOwot
ZnVuY3Rpb24gbGlzdGVuZXJGdW5jdGlvbigpCi17Ci0gICAgKytsaXN0ZW5lckNhbGxDb3VudDsK
LQotICAgIGlmIChsaXN0ZW5lckNhbGxDb3VudCA9PSAxKQotICAgICAgICBkb2N1bWVudC5ib2R5
LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0ZXN0JykpOwotfQotCi1ldmFsQW5kTG9nKCJkb2N1
bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBsaXN0ZW5lckZ1bmN0aW9uLCB7ICdv
bmNlJzogdHJ1ZSB9KSIpOwotc2hvdWxkQmUoImxpc3RlbmVyQ2FsbENvdW50IiwgIjAiKTsKLWV2
YWxBbmRMb2coImRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnKSki
KTsKLXNob3VsZEJlKCJsaXN0ZW5lckNhbGxDb3VudCIsICIxIik7Ci1ldmFsQW5kTG9nKCJkb2N1
bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0ZXN0JykpIik7Ci1zaG91bGRCZSgi
bGlzdGVuZXJDYWxsQ291bnQiLCAiMSIpOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRp
b25zLW9uY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJP
cHRpb25zLW9uY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTY2NDI3YmM5
ZmI4MmUyOThmNDZkMjQwNjY5YjhiYmFkOThlZDAxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9BZGRFdmVudExp
c3RlbmVyT3B0aW9ucy1vbmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dHMgc3VwcG9ydCBmb3IgJ29uY2UnIG1lbWJlciBpbiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucy4i
KTsKLQotdmFyIGxpc3RlbmVyQ2FsbENvdW50ID0gMDsKLWZ1bmN0aW9uIGxpc3RlbmVyRnVuY3Rp
b24oKQotewotICAgICsrbGlzdGVuZXJDYWxsQ291bnQ7Ci19Ci0KLWV2YWxBbmRMb2coImRvY3Vt
ZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIGxpc3RlbmVyRnVuY3Rpb24sIHsgJ29u
Y2UnOiB0cnVlIH0pIik7Ci1zaG91bGRCZSgibGlzdGVuZXJDYWxsQ291bnQiLCAiMCIpOwotZXZh
bEFuZExvZygiZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcpKSIp
Owotc2hvdWxkQmUoImxpc3RlbmVyQ2FsbENvdW50IiwgIjEiKTsKLWV2YWxBbmRMb2coImRvY3Vt
ZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnKSkiKTsKLXNob3VsZEJlKCJs
aXN0ZW5lckNhbGxDb3VudCIsICIxIik7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlv
bnMtcGFzc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9BZGRFdmVu
dExpc3RlbmVyT3B0aW9ucy1wYXNzaXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTc2MDhjM2U3OTgxNDAyZGFmMGQ3MjVjMzZiNzA5NDBlNzIzZjEzNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1wYXNzaXZlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRlc3RzIHN1cHBvcnQgZm9yICdwYXNzaXZl
JyBtZW1iZXIgaW4gQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1kb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBwYXNz
aXZlTGlzdGVuZXJGdW5jdGlvbiwgeyAncGFzc2l2ZSc6IHRydWUgfSkKLWRvY3VtZW50LmJvZHku
ZGlzcGF0Y2hFdmVudCh0ZXN0RXZlbnQxKQotUEFTUyBsaXN0ZW5lckNhbGxDb3VudCBpcyAxCi1Q
QVNTIHRlc3RFdmVudDEuZGVmYXVsdFByZXZlbnRlZCBpcyBmYWxzZQotCi1kb2N1bWVudC5ib2R5
LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBhY3RpdmVMaXN0ZW5lckZ1bmN0aW9uLCB7IH0pCi1k
b2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQodGVzdEV2ZW50MikKLVBBU1MgbGlzdGVuZXJDYWxs
Q291bnQgaXMgMgotUEFTUyB0ZXN0RXZlbnQyLmRlZmF1bHRQcmV2ZW50ZWQgaXMgdHJ1ZQotCi1k
b2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBhY3RpdmVMaXN0ZW5lckZ1bmN0
aW9uLCB7ICdwYXNzaXZlJzogZmFsc2UgfSkKLWRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudCh0
ZXN0RXZlbnQyKQotUEFTUyBsaXN0ZW5lckNhbGxDb3VudCBpcyAyCi1QQVNTIHRlc3RFdmVudDIu
ZGVmYXVsdFByZXZlbnRlZCBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtcGFzc2l2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtcGFzc2l2ZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkMGI2MDYxOTg1NzMyN2FlMDgxYzM3NjQxNGE0ZGRhM2U2N2RjMGRi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLXBhc3NpdmUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9k
eT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzdXBwb3J0IGZvciAncGFzc2l2ZScgbWVt
YmVyIGluIEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zLiIpOwotCi12YXIgbGlzdGVuZXJDYWxsQ291
bnQgPSAwOwotZnVuY3Rpb24gcGFzc2l2ZUxpc3RlbmVyRnVuY3Rpb24oZXYpCi17Ci0gICAgKyts
aXN0ZW5lckNhbGxDb3VudDsKLSAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwotfQotCi1mdW5jdGlv
biBhY3RpdmVMaXN0ZW5lckZ1bmN0aW9uKGV2KQotewotICAgICsrbGlzdGVuZXJDYWxsQ291bnQ7
Ci0gICAgZXYucHJldmVudERlZmF1bHQoKTsKLX0KLQotZXZhbEFuZExvZygiZG9jdW1lbnQuYm9k
eS5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgcGFzc2l2ZUxpc3RlbmVyRnVuY3Rpb24sIHsgJ3Bh
c3NpdmUnOiB0cnVlIH0pIik7Ci12YXIgdGVzdEV2ZW50MSA9IG5ldyBFdmVudCgndGVzdCcsIHsg
J2NhbmNlbGFibGUnOiB0cnVlIH0pOwotZXZhbEFuZExvZygiZG9jdW1lbnQuYm9keS5kaXNwYXRj
aEV2ZW50KHRlc3RFdmVudDEpIik7Ci1zaG91bGRCZSgibGlzdGVuZXJDYWxsQ291bnQiLCAiMSIp
Owotc2hvdWxkQmVGYWxzZSgidGVzdEV2ZW50MS5kZWZhdWx0UHJldmVudGVkIik7Ci0KLWRlYnVn
KCIiKTsKLWxpc3RlbmVyQ2FsbENvdW50ID0gMDsKLS8vICdwYXNzaXZlIHNob3VsZCBiZSBmYWxz
ZSBieSBkZWZhdWx0LgotZXZhbEFuZExvZygiZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVy
KCd0ZXN0JywgYWN0aXZlTGlzdGVuZXJGdW5jdGlvbiwgeyB9KSIpOwotdmFyIHRlc3RFdmVudDIg
PSBuZXcgRXZlbnQoJ3Rlc3QnLCB7ICdjYW5jZWxhYmxlJzogdHJ1ZSB9KTsKLWV2YWxBbmRMb2co
ImRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudCh0ZXN0RXZlbnQyKSIpOwotc2hvdWxkQmUoImxp
c3RlbmVyQ2FsbENvdW50IiwgIjIiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEV2ZW50Mi5kZWZhdWx0
UHJldmVudGVkIik7Ci1kb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBh
Y3RpdmVMaXN0ZW5lckZ1bmN0aW9uKTsKLQotZGVidWcoIiIpOwotbGlzdGVuZXJDYWxsQ291bnQg
PSAwOwotZXZhbEFuZExvZygiZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCd0ZXN0Jywg
YWN0aXZlTGlzdGVuZXJGdW5jdGlvbiwgeyAncGFzc2l2ZSc6IGZhbHNlIH0pIik7Ci12YXIgdGVz
dEV2ZW50MiA9IG5ldyBFdmVudCgndGVzdCcsIHsgJ2NhbmNlbGFibGUnOiB0cnVlIH0pOwotZXZh
bEFuZExvZygiZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KHRlc3RFdmVudDIpIik7Ci1zaG91
bGRCZSgibGlzdGVuZXJDYWxsQ291bnQiLCAiMiIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0RXZlbnQy
LmRlZmF1bHRQcmV2ZW50ZWQiKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmVFdmVudExpc3RlbmVyLUV2ZW50
TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcmVtb3ZlRXZlbnRMaXN0ZW5lci1FdmVudExpc3RlbmVyT3B0aW9ucy1jYXB0dXJlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRmZDA3NmRjNjJkYjlj
Njk1MmE4OTUxZjhkM2YwYzQ3ZmU3ZWU3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmVFdmVudExpc3Rl
bmVyLUV2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNTAgKzAsMCBAQAotVGVzdHMgc3VwcG9ydCBmb3IgY2FsbGluZyByZW1vdmVFdmVu
dExpc3RlbmVyKCkgd2l0aCBhbiBFdmVudExpc3RlbmVyT3B0aW9ucyBkaWN0aW9uYXJ5Ci0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHVuZGVm
aW5lZCwgZmFsc2UpIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUodW5kZWZpbmVkLCB7
ICdjYXB0dXJlJzogZmFsc2UgfSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh1bmRl
ZmluZWQsIHsgfSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIHVu
ZGVmaW5lZCkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIHRydWUp
IGlzIGZhbHNlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHVuZGVmaW5lZCwgeyAnY2FwdHVyZSc6
IHRydWUgfSkgaXMgZmFsc2UKLQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZShmYWxzZSwgZmFsc2Up
IGlzIHRydWUKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoZmFsc2UsIHsgJ2NhcHR1cmUnOiBmYWxz
ZSB9KSBpcyB0cnVlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKGZhbHNlLCB7IH0pIGlzIHRydWUK
LVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoZmFsc2UsIHVuZGVmaW5lZCkgaXMgdHJ1ZQotUEFTUyB0
ZXN0QWRkVGhlblJlbW92ZShmYWxzZSwgdHJ1ZSkgaXMgZmFsc2UKLVBBU1MgdGVzdEFkZFRoZW5S
ZW1vdmUoZmFsc2UsIHsgJ2NhcHR1cmUnOiB0cnVlIH0pIGlzIGZhbHNlCi0KLVBBU1MgdGVzdEFk
ZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IGZhbHNlIH0sIGZhbHNlKSBpcyB0cnVlCi1QQVNTIHRl
c3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiBmYWxzZSB9LCB7ICdjYXB0dXJlJzogZmFsc2Ug
fSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogZmFsc2UgfSwg
eyB9KSBpcyB0cnVlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiBmYWxzZSB9
LCB1bmRlZmluZWQpIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6
IGZhbHNlIH0sIHRydWUpIGlzIGZhbHNlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1
cmUnOiBmYWxzZSB9LCB7ICdjYXB0dXJlJzogdHJ1ZSB9KSBpcyBmYWxzZQotCi1QQVNTIHRlc3RB
ZGRUaGVuUmVtb3ZlKHsgfSwgZmFsc2UpIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUo
eyB9LCB7ICdjYXB0dXJlJzogZmFsc2UgfSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92
ZSh7IH0sIHsgfSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHVuZGVmaW5l
ZCkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHRydWUpIGlzIGZhbHNlCi1Q
QVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHsgfSwgeyAnY2FwdHVyZSc6IHRydWUgfSkgaXMgZmFsc2UK
LQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh0cnVlLCB0cnVlKSBpcyB0cnVlCi1QQVNTIHRlc3RB
ZGRUaGVuUmVtb3ZlKHRydWUsIHsgJ2NhcHR1cmUnOiB0cnVlIH0pIGlzIHRydWUKLVBBU1MgdGVz
dEFkZFRoZW5SZW1vdmUodHJ1ZSwgeyB9KSBpcyBmYWxzZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92
ZSh0cnVlLCB1bmRlZmluZWQpIGlzIGZhbHNlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHRydWUs
IGZhbHNlKSBpcyBmYWxzZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh0cnVlLCB7ICdjYXB0dXJl
JzogZmFsc2UgfSkgaXMgZmFsc2UKLQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJl
JzogdHJ1ZSB9ICwgdHJ1ZSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0
dXJlJzogdHJ1ZSB9LCB7ICdjYXB0dXJlJzogdHJ1ZSB9KSBpcyB0cnVlCi1QQVNTIHRlc3RBZGRU
aGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiB0cnVlIH0sIHsgfSkgaXMgZmFsc2UKLVBBU1MgdGVzdEFk
ZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IHRydWUgfSwgdW5kZWZpbmVkKSBpcyBmYWxzZQotUEFT
UyB0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9LCBmYWxzZSkgaXMgZmFsc2UK
LVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IHRydWUgfSwgeyAnY2FwdHVyZSc6
IGZhbHNlIH0pIGlzIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3Zl
RXZlbnRMaXN0ZW5lci1FdmVudExpc3RlbmVyT3B0aW9ucy1jYXB0dXJlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmVFdmVudExpc3RlbmVyLUV2ZW50TGlzdGVuZXJPcHRpb25z
LWNhcHR1cmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM4ZDNiNTRhNWEz
Yzc5OWUyNzE4OWI5YjYxYzY1NWUwYThlZGVlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmVFdmVudExp
c3RlbmVyLUV2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDkzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUZXN0cyBzdXBwb3J0IGZvciBjYWxsaW5nIHJlbW92ZUV2ZW50TGlzdGVu
ZXIoKSB3aXRoIGFuIEV2ZW50TGlzdGVuZXJPcHRpb25zIGRpY3Rpb25hcnkiKTsKLQotdmFyIHdh
c0xpc3RlbmVyQ2FsbGVkID0gZmFsc2U7Ci1mdW5jdGlvbiBsaXN0ZW5lckZ1bmN0aW9uKGV2KQot
ewotICAgIHdhc0xpc3RlbmVyQ2FsbGVkID0gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gaXNMaXN0ZW5l
clJlZ2lzdGVyZWQoKQotewotICAgIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZl
bnQoJ3Rlc3QnKSk7Ci0gICAgdmFyIHJlc3VsdCA9IHdhc0xpc3RlbmVyQ2FsbGVkOwotICAgIHdh
c0xpc3RlbmVyQ2FsbGVkID0gZmFsc2U7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rp
b24gdGVzdEFkZFRoZW5SZW1vdmUoYWRkT3B0aW9ucywgcmVtb3ZlT3B0aW9ucykKLXsKLSAgICBk
b2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBsaXN0ZW5lckZ1bmN0aW9uLCBh
ZGRPcHRpb25zKTsKLSAgICBpZiAoIWlzTGlzdGVuZXJSZWdpc3RlcmVkKCkpCi0gICAgICAgIHRl
c3RGYWlsZWQoIkZhaWxlZCB0byBhZGQgZXZlbnQgbGlzdGVuZXIgd2l0aCBnaXZlbiBvcHRpb25z
Iik7Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0JywgbGlzdGVu
ZXJGdW5jdGlvbiwgcmVtb3ZlT3B0aW9ucyk7Ci0gICAgdmFyIHJlc3VsdCA9ICFpc0xpc3RlbmVy
UmVnaXN0ZXJlZCgpOwotCi0gICAgLy8gY2xlYW4gdXAuCi0gICAgY2FwdHVyZSA9IGZhbHNlOwot
ICAgIGlmICh0eXBlb2YoYWRkT3B0aW9ucykgPT09ICJib29sZWFuIikKLSAgICAgICAgY2FwdHVy
ZSA9IGFkZE9wdGlvbnM7Ci0gICAgZWxzZSBpZiAodHlwZW9mKGFkZE9wdGlvbnMpID09PSAib2Jq
ZWN0IikKLSAgICAgICAgY2FwdHVyZSA9IGFkZE9wdGlvbnMuY2FwdHVyZTsKLSAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBsaXN0ZW5lckZ1bmN0aW9uLCBjYXB0
dXJlKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXRlc3RBZGRUaGVuUmVtb3ZlKHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB0cnVlKTsKLQotLy8gY2FwdHVyZSBpcyBmYWxzZSBieSBkZWZhdWx0
Lgotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIGZhbHNlKSIpOwot
c2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIHsgJ2NhcHR1cmUnOiBm
YWxzZSB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIHsg
fSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUodW5kZWZpbmVkLCB1bmRlZmlu
ZWQpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIHRydWUp
Iik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIHsgJ2NhcHR1
cmUnOiB0cnVlIH0pIik7Ci0KLWRlYnVnKCIiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5S
ZW1vdmUoZmFsc2UsIGZhbHNlKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZShm
YWxzZSwgeyAnY2FwdHVyZSc6IGZhbHNlIH0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RBZGRUaGVu
UmVtb3ZlKGZhbHNlLCB7IH0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RBZGRUaGVuUmVtb3ZlKGZh
bHNlLCB1bmRlZmluZWQpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZShmYWxz
ZSwgdHJ1ZSkiKTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3ZlKGZhbHNlLCB7ICdj
YXB0dXJlJzogdHJ1ZSB9KSIpOwotCi1kZWJ1ZygiIik7Ci1zaG91bGRCZVRydWUoInRlc3RBZGRU
aGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiBmYWxzZSB9LCBmYWxzZSkiKTsKLXNob3VsZEJlVHJ1ZSgi
dGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IGZhbHNlIH0sIHsgJ2NhcHR1cmUnOiBmYWxz
ZSB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogZmFs
c2UgfSwgeyB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJl
JzogZmFsc2UgfSwgdW5kZWZpbmVkKSIpOwotc2hvdWxkQmVGYWxzZSgidGVzdEFkZFRoZW5SZW1v
dmUoeyAnY2FwdHVyZSc6IGZhbHNlIH0sIHRydWUpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRk
VGhlblJlbW92ZSh7ICdjYXB0dXJlJzogZmFsc2UgfSwgeyAnY2FwdHVyZSc6IHRydWUgfSkiKTsK
LQotZGVidWcoIiIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIGZhbHNl
KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHsgJ2NhcHR1cmUnOiBm
YWxzZSB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHsgfSkiKTsK
LXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUoeyB9LCB1bmRlZmluZWQpIik7Ci1zaG91
bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHRydWUpIik7Ci1zaG91bGRCZUZhbHNl
KCJ0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHsgJ2NhcHR1cmUnOiB0cnVlIH0pIik7Ci0KLWRlYnVn
KCIiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUodHJ1ZSwgdHJ1ZSkiKTsKLXNo
b3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUodHJ1ZSwgeyAnY2FwdHVyZSc6IHRydWUgfSki
KTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3ZlKHRydWUsIHsgfSkiKTsKLXNob3Vs
ZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3ZlKHRydWUsIHVuZGVmaW5lZCkiKTsKLXNob3VsZEJl
RmFsc2UoInRlc3RBZGRUaGVuUmVtb3ZlKHRydWUsIGZhbHNlKSIpOwotc2hvdWxkQmVGYWxzZSgi
dGVzdEFkZFRoZW5SZW1vdmUodHJ1ZSwgeyAnY2FwdHVyZSc6IGZhbHNlIH0pIik7Ci0KLWRlYnVn
KCIiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IHRydWUg
fSAsIHRydWUpIik7Ci1zaG91bGRCZVRydWUoInRlc3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUn
OiB0cnVlIH0sIHsgJ2NhcHR1cmUnOiB0cnVlIH0pIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRk
VGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9LCB7IH0pIik7Ci1zaG91bGRCZUZhbHNlKCJ0
ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9LCB1bmRlZmluZWQpIik7Ci1zaG91
bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9LCBmYWxzZSki
KTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiB0cnVlIH0s
IHsgJ2NhcHR1cmUnOiBmYWxzZSB9KSIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxp
c3RlbmVyb3B0aW9ucy9jYXB0dXJlX2RlZmF1bHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvY2FwdHVyZV9k
ZWZhdWx0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhiZjFl
ODE2YjFlMWVhODM0NDUzNzg0Y2I1OWFiZjM4M2VhNzQwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0
L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX2RlZmF1bHQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotCi1QQVNTIFRydWUgdmFsdWUgCi1QQVNT
IEZhbHNlIHZhbHVlIAotUEFTUyBFbXB0eSBvYmplY3QgCi1QQVNTIE51bGwgb2JqZWN0IAotUEFT
UyBVbmRlZmluZWQgb2JqZWN0IAotUEFTUyBQb3NpdGl2ZSB2YWx1ZSAKLVBBU1MgTmVnYXRpdmUg
dmFsdWUgCi1QQVNTIE5hTiB2YWx1ZSAKLVBBU1MgUG9zdGl2ZSB6ZXJvIHZhbHVlIAotUEFTUyBO
ZWdhdGl2ZSB6ZXJvIHZhbHVlIAotUEFTUyBFbXB0eSBzdHJpbmcgdmFsdWUgCi1QQVNTIE5vbiBl
bXB0eSBzdHJpbmcgdmFsdWUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2Js
aW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfZGVmYXVsdC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9w
dGlvbnMvY2FwdHVyZV9kZWZhdWx0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAyOTRmODQ1MTFjZGU4Yjc5Y2I4ZDIwMTBiZDUxNTNlZTJhNDk2MGMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxp
bmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvY2FwdHVyZV9kZWZhdWx0Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxib2R5Lz4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RDYXB0dXJl
VmFsdWUoY2FwdHVyZVZhbHVlLCBleHBlY3RlZFZhbHVlLCB0ZXN0KSB7Ci0gIHZhciBoYW5kbGVy
UGhhc2UgPSB1bmRlZmluZWQ7Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7
Ci0gICAgICBhc3NlcnRfZXF1YWxzKGhhbmRsZXJQaGFzZSwgdW5kZWZpbmVkKTsKLSAgICAgIGhh
bmRsZXJQaGFzZSA9IGUuZXZlbnRQaGFzZTsKLSAgfQotICBkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCd0ZXN0JywgaGFuZGxlciwgY2FwdHVyZVZhbHVlKTsKLSAgZG9jdW1lbnQuYm9keS5kaXNw
YXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxlcyc6IHRydWV9KSk7Ci0gIGRvY3Vt
ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCBjYXB0dXJlVmFsdWUpOwot
ICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0ZXN0JywgeydidWJibGVz
JzogdHJ1ZX0pKTsKLSAgYXNzZXJ0X2VxdWFscyhoYW5kbGVyUGhhc2UsIGV4cGVjdGVkVmFsdWUp
OwotICB0ZXN0LmRvbmUoKTsKLX0KLQotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFs
dWUodHJ1ZSwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFLCB0KTsgfSwgIlRydWUgdmFsdWUiKTsKLXRl
c3QoZnVuY3Rpb24odCkgeyB0ZXN0Q2FwdHVyZVZhbHVlKGZhbHNlLCBFdmVudC5CVUJCTElOR19Q
SEFTRSwgdCk7IH0sICJGYWxzZSB2YWx1ZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0
dXJlVmFsdWUoe30sIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCB0KTsgfSwgIkVtcHR5IG9iamVjdCIp
OwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFsdWUobnVsbCwgRXZlbnQuQlVCQkxJ
TkdfUEhBU0UsIHQpOyB9LCAiTnVsbCBvYmplY3QiKTsKLXRlc3QoZnVuY3Rpb24odCkgeyB0ZXN0
Q2FwdHVyZVZhbHVlKHVuZGVmaW5lZCwgRXZlbnQuQlVCQkxJTkdfUEhBU0UsIHQpOyB9LCAiVW5k
ZWZpbmVkIG9iamVjdCIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFsdWUoMi4z
LCBFdmVudC5DQVBUVVJJTkdfUEhBU0UsIHQpOyB9LCAiUG9zaXRpdmUgdmFsdWUiKTsKLXRlc3Qo
ZnVuY3Rpb24odCkgeyB0ZXN0Q2FwdHVyZVZhbHVlKC0xMDAwLjMsIEV2ZW50LkNBUFRVUklOR19Q
SEFTRSwgdCk7IH0sICJOZWdhdGl2ZSB2YWx1ZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RD
YXB0dXJlVmFsdWUoTmFOLCBFdmVudC5CVUJCTElOR19QSEFTRSwgdCk7IH0sICJOYU4gdmFsdWUi
KTsKLXRlc3QoZnVuY3Rpb24odCkgeyB0ZXN0Q2FwdHVyZVZhbHVlKCswLjAsIEV2ZW50LkJVQkJM
SU5HX1BIQVNFLCB0KTsgfSwgIlBvc3RpdmUgemVybyB2YWx1ZSIpOwotdGVzdChmdW5jdGlvbih0
KSB7IHRlc3RDYXB0dXJlVmFsdWUoLTAuMCwgRXZlbnQuQlVCQkxJTkdfUEhBU0UsIHQpOyB9LCAi
TmVnYXRpdmUgemVybyB2YWx1ZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFs
dWUoIiIsIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCB0KTsgfSwgIkVtcHR5IHN0cmluZyB2YWx1ZSIp
OwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFsdWUoIkFBQUEiLCBFdmVudC5DQVBU
VVJJTkdfUEhBU0UsIHQpOyB9LCAiTm9uIGVtcHR5IHN0cmluZyB2YWx1ZSIpOwotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVu
dGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX2VxdWFsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1
cmVfZXF1YWxpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
MmNmYWMyNzE3Njk1NmFiN2U1Zjk4MDhmYzNlNzAwZDMwZGJlZTIyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5r
L2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfZXF1YWxpdHktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgRW1wdHkgb2JqZWN0
IAotUEFTUyBDYXB0dXJlIGZhbHNlIAotUEFTUyBDYXB0dXJlIHRydWUgCi1QQVNTIE5vbi1lbXB0
eSBvYmplY3QgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3Qv
ZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfZXF1YWxpdHkuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2Nh
cHR1cmVfZXF1YWxpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWMzZmYx
MTEzMzE4OTc0ZmIwYTAyNWU2NWIyNDEwNGE1NGUzNWJmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0
L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX2VxdWFsaXR5Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxib2R5Lz4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0T3B0aW9uRXF1YWxpdHko
YWRkT3B0aW9uVmFsdWUsIHJlbW92ZU9wdGlvblZhbHVlLCB0ZXN0KSB7Ci0gIHZhciBoYW5kbGVy
ID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCJkdW1teSB2
YWx1ZSBnZXR0ZXIgaW52b2tlZCIpOwotICB9Ci0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
J3Rlc3QnLCBoYW5kbGVyLCBhZGRPcHRpb25WYWx1ZSk7Ci0gIGRvY3VtZW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCByZW1vdmVPcHRpb25WYWx1ZSk7Ci0gIGRvY3VtZW50
LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnLCB7J2J1YmJsZXMnOiB0cnVlfSkp
OwotICB0ZXN0LmRvbmUoKTsKLX0KLQotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RPcHRpb25FcXVh
bGl0eSh7fSwgZmFsc2UsIHQpOyB9LCAiRW1wdHkgb2JqZWN0Iik7Ci10ZXN0KGZ1bmN0aW9uKHQp
IHsgdGVzdE9wdGlvbkVxdWFsaXR5KHsnY2FwdHVyZSc6IGZhbHNlfSwgZmFsc2UsIHQpOyB9LCAi
Q2FwdHVyZSBmYWxzZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RPcHRpb25FcXVhbGl0eSh7
J2NhcHR1cmUnOiB0cnVlfSwgdHJ1ZSwgdCk7IH0sICJDYXB0dXJlIHRydWUiKTsKLXRlc3QoZnVu
Y3Rpb24odCkgeyB0ZXN0T3B0aW9uRXF1YWxpdHkoeydkdW1teSc6IHRydWV9LCBmYWxzZSwgdCk7
IH0sICJOb24tZW1wdHkgb2JqZWN0Iik7Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvY2Fw
dHVyZV9xdWVyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0
L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX3F1ZXJ5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFhM2M2ODE5NjVhMDcxMTk2MDgxMjcwMWY0
ZjVmZTFmMDgwYTZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVy
b3B0aW9ucy9jYXB0dXJlX3F1ZXJ5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotCi1QQVNTIFN1cHBvcnRzIENhcHR1cmUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1
cmVfcXVlcnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2
ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfcXVlcnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjM3YWMxMzI2M2QwYjViMjU4Y2FjMzAyMDE2ZGNkMTZmMTYwYzA5MS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX3F1
ZXJ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4K
LTxib2R5Lz4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci10ZXN0KGZ1bmN0aW9u
KHQpIHsKLSAgICB2YXIgc3VwcG9ydHNDYXB0dXJlID0gZmFsc2U7Ci0gICAgdmFyIHF1ZXJ5X2Z1
bmN0aW9uID0gZnVuY3Rpb24oZSkge307Ci0gICAgdmFyIHF1ZXJ5X29wdGlvbnMgPSB7Ci0gICAg
ICAgIGdldCBjYXB0dXJlKCkgewotICAgICAgICAgICAgc3VwcG9ydHNDYXB0dXJlID0gdHJ1ZTsK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfSwKLSAgICAgICAgZ2V0IGR1bW15
KCkgewotICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiZHVtbXkgdmFsdWUgZ2V0dGVyIGlu
dm9rZWQiKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH07Ci0K
LSAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0X2V2ZW50JywgcXVlcnlfZnVuY3Rp
b24sIHF1ZXJ5X29wdGlvbnMpOwotICAgIGFzc2VydF90cnVlKHN1cHBvcnRzQ2FwdHVyZSk7Ci0g
ICAgc3VwcG9ydHNDYXB0dXJlID0gZmFsc2U7Ci0gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0
ZW5lcigndGVzdF9ldmVudCcsIHF1ZXJ5X2Z1bmN0aW9uLCBxdWVyeV9vcHRpb25zKTsKLSAgICBh
c3NlcnRfdHJ1ZShzdXBwb3J0c0NhcHR1cmUpOwotICAgIHQuZG9uZSgpOwotfSwgIlN1cHBvcnRz
IENhcHR1cmUiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
YmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvcGFzc2l2ZV9kaXNwYXRjaC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVu
dGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZlX2Rpc3BhdGNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzI0N2JjZWE3ODUwOGYxM2E1OGE0NDBlZWY3YmM3NDljMGQ4
MWY4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9w
YXNzaXZlX2Rpc3BhdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBA
QAotCi1QQVNTIFR3byBhcmd1bWVudCByZWdpc3RlciAKLVBBU1MgUHJldmVudCBkZWZhdWx0IGNh
cHR1cmUgZmFsc2UgCi1QQVNTIFByZXZlbnQgZGVmYXVsdCBjYXB0dXJlIHRydWUgCi1QQVNTIFBy
ZXZlbnQgZGVmYXVsdCB3aXRoIGVtcHR5IG9iamVjdCAKLVBBU1MgUHJldmVudCBkZWZhdWx0IHdp
dGggcGFzc2l2ZSBmYWxzZSAKLVBBU1MgUHJldmVudCBkZWZhdWx0IHdpdGggcGFzc2l2ZSB0cnVl
ICAKLVBBU1MgUGFzc2l2ZSBhbmQgQmxvY2tpbmcgUmVnaXN0ZXJlZCBIYW5kbGVycyAKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0
ZW5lcm9wdGlvbnMvcGFzc2l2ZV9kaXNwYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
YmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvcGFzc2l2ZV9kaXNwYXRjaC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWVmOWVjZjc2MTFlZWU4N2I5ZTVl
YjYwZjEwYzZiMDgxYjhkMzMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlz
dGVuZXJvcHRpb25zL3Bhc3NpdmVfZGlzcGF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYy
ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPgotPGJvZHkvPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LQotPCEtLSBUaGlzIHRlc3QgaXMgcnVuIHdpdGggbm9ybWFsIGxheW91dCB0ZXN0cyB3aXRoIHBh
c3NpdmVFdmVudExpc3RlbmVycwotICAgICBlbmFibGVkIGFuZCBpbiB2aXJ0dWFsL3N0YWJsZSB3
aXRoIHBhc3NpdmVFdmVudExpc3RlbmVycyBkaXNhYmxlZCAtLT4KLTxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIHRlc3RUd29Bcmd1bWVudFJlZ2lzdGVyKCkgewotICB2YXIgaGFuZGxlciA9IGZ1bmN0aW9u
IGhhbmRsZXIoZSkgewotICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgfQotICBkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgaGFuZGxlcik7Ci0gIGFzc2VydF9lcXVhbHMoZmFsc2Us
IGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnLCB7J2J1YmJsZXMn
OiB0cnVlLCAnY2FuY2VsYWJsZSc6IHRydWV9KSkpOwotICBkb2N1bWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKCd0ZXN0JywgaGFuZGxlcik7Ci0gIGFzc2VydF9lcXVhbHModHJ1ZSwgZG9jdW1lbnQu
Ym9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxlcyc6IHRydWUsICdj
YW5jZWxhYmxlJzogdHJ1ZX0pKSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RQYXNzaXZlVmFsdWUocmVn
aXN0ZXJWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdGVzdCkgewotICB2YXIgaGFuZGxlciA9IGZ1bmN0
aW9uIGhhbmRsZXIoZSkgewotICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgfQotICBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgaGFuZGxlciwgcmVnaXN0ZXJWYWx1ZSk7Ci0gIHZh
ciBldmVudCA9IG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxlcyc6IHRydWUsICdjYW5jZWxhYmxl
JzogdHJ1ZX0pOwotICBhc3NlcnRfZXF1YWxzKGV4cGVjdGVkVmFsdWUsIGRvY3VtZW50LmJvZHku
ZGlzcGF0Y2hFdmVudChldmVudCkpOwotICBhc3NlcnRfZXF1YWxzKCFleHBlY3RlZFZhbHVlLCBl
dmVudC5kZWZhdWx0UHJldmVudGVkKTsKLSAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcign
dGVzdCcsIGhhbmRsZXIsIHJlZ2lzdGVyVmFsdWUpOwotICBhc3NlcnRfZXF1YWxzKHRydWUsIGRv
Y3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnLCB7J2J1YmJsZXMnOiB0
cnVlLCAnY2FuY2VsYWJsZSc6IHRydWV9KSkpOwotICB0ZXN0LmRvbmUoKTsKLX0KLQotZnVuY3Rp
b24gdGVzdFR3b0hhbmRsZXJzKCkgewotICB2YXIgcGFzc2l2ZV9jYWxsZWQgPSB1bmRlZmluZWQ7
Ci0gIHZhciBibG9ja2luZ19jYWxsZWQgPSB1bmRlZmluZWQ7Ci0gIHZhciBwYXNzaXZlX2hhbmRs
ZXIgPSBmdW5jdGlvbiBoYW5kbGVyKGUpIHsKLSAgICBwYXNzaXZlX2NhbGxlZCA9IHRydWU7Ci0g
IH0KLSAgdmFyIGJsb2NraW5nX2hhbmRsZXIgPSBmdW5jdGlvbiBoYW5kbGVyKGUpIHsKLSAgICBi
bG9ja2luZ19jYWxsZWQgPSB0cnVlOwotICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgfQotICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgcGFzc2l2ZV9oYW5kbGVyLCB7InBhc3Np
dmUiIDogdHJ1ZX0pOwotICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgYmxvY2tp
bmdfaGFuZGxlciwgeyJwYXNzaXZlIiA6IGZhbHNlfSk7Ci0gIHZhciBldmVudCA9IG5ldyBFdmVu
dCgndGVzdCcsIHsnYnViYmxlcyc6IHRydWUsICdjYW5jZWxhYmxlJzogdHJ1ZX0pOwotICBkb2N1
bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICBhc3NlcnRfdHJ1ZShwYXNzaXZlX2Nh
bGxlZCk7Ci0gIGFzc2VydF90cnVlKGJsb2NraW5nX2NhbGxlZCk7Ci0gIGFzc2VydF90cnVlKGV2
ZW50LmRlZmF1bHRQcmV2ZW50ZWQpOwotICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0
ZXN0JywgcGFzc2l2ZV9oYW5kbGVyLCB7fSk7Ci0gIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoJ3Rlc3QnLCBibG9ja2luZ19oYW5kbGVyLCB7fSk7Ci19Ci0KLXRlc3QodGVzdFR3b0FyZ3Vt
ZW50UmVnaXN0ZXIsICJUd28gYXJndW1lbnQgcmVnaXN0ZXIiKTsKLXRlc3QoZnVuY3Rpb24odCkg
eyB0ZXN0UGFzc2l2ZVZhbHVlKGZhbHNlLCBmYWxzZSwgdCk7IH0sICJQcmV2ZW50IGRlZmF1bHQg
Y2FwdHVyZSBmYWxzZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RQYXNzaXZlVmFsdWUodHJ1
ZSwgZmFsc2UsIHQpOyB9LCAiUHJldmVudCBkZWZhdWx0IGNhcHR1cmUgdHJ1ZSIpOwotdGVzdChm
dW5jdGlvbih0KSB7IHRlc3RQYXNzaXZlVmFsdWUoe30sIGZhbHNlLCB0KTsgfSwgIlByZXZlbnQg
ZGVmYXVsdCB3aXRoIGVtcHR5IG9iamVjdCIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RQYXNz
aXZlVmFsdWUoe3Bhc3NpdmU6IGZhbHNlfSwgZmFsc2UsIHQpOyB9LCAiUHJldmVudCBkZWZhdWx0
IHdpdGggcGFzc2l2ZSBmYWxzZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RQYXNzaXZlVmFs
dWUoe3Bhc3NpdmU6IHRydWV9LCB0cnVlLCB0KTsgfSwgIlByZXZlbnQgZGVmYXVsdCB3aXRoIHBh
c3NpdmUgdHJ1ZSAiKTsKLXRlc3QodGVzdFR3b0hhbmRsZXJzLCAiUGFzc2l2ZSBhbmQgQmxvY2tp
bmcgUmVnaXN0ZXJlZCBIYW5kbGVycyIpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL3Bh
c3NpdmVfaW5lcXVhbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGlu
ay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZlX2luZXF1YWxpdHktZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDQ1MzQyMWNhNjk4MDlk
MjcxY2Y2MTA1YjE0MjNiYzU0N2YwYWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2
ZW50bGlzdGVuZXJvcHRpb25zL3Bhc3NpdmVfaW5lcXVhbGl0eS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBQYXNzaXZlIEhhbmRsZXIgCi1QQVNTIE5v
biBQYXNzaXZlIEhhbmRsZXIgCi1QQVNTIFBhc3NpdmUgSGFuZGxlciBBbmQgTm9uIFBhc3NpdmUg
Q2FwdHVyaW5nIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0
L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZlX2luZXF1YWxpdHkuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25z
L3Bhc3NpdmVfaW5lcXVhbGl0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
ODlmMzE1YzVlMTU3ZTRhNWRhNmIxY2MyMmIzNWQxZmFlZjBhZDBiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5r
L2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL3Bhc3NpdmVfaW5lcXVhbGl0eS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08Ym9keS8+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi1mdW5jdGlvbiBwYXNzaXZlSGFu
ZGxlckFkZE5vblBhc3NpdmUoKSB7Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihl
KSB7Ci0gICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIGFzc2VydF9mYWxzZShlLmRlZmF1bHRQ
cmV2ZW50ZWQpOwotICB9Ci0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5k
bGVyLCB7InBhc3NpdmUiOiB0cnVlfSk7Ci0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rl
c3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiBmYWxzZX0pOwotICBkb2N1bWVudC5ib2R5LmRpc3Bh
dGNoRXZlbnQobmV3IEV2ZW50KCd0ZXN0JywgeydidWJibGVzJzogdHJ1ZSwgJ2NhbmNlbGFibGUn
OiB0cnVlfSkpOwotfQotCi1mdW5jdGlvbiBub25QYXNzaXZlSGFuZGxlckFkZFBhc3NpdmUoKSB7
Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAgZS5wcmV2ZW50RGVm
YXVsdCgpOwotICAgIGFzc2VydF90cnVlKGUuZGVmYXVsdFByZXZlbnRlZCk7Ci0gIH0KLSAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIGhhbmRsZXIsIHsicGFzc2l2ZSI6IGZhbHNl
fSk7Ci0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCB7InBhc3Np
dmUiOiB0cnVlfSk7Ci0gIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rl
c3QnLCB7J2J1YmJsZXMnOiB0cnVlLCAnY2FuY2VsYWJsZSc6IHRydWV9KSk7Ci19Ci0KLWZ1bmN0
aW9uIHBhc3NpdmVIYW5kbGVyQWRkTm9uUGFzc2l2ZUNhcHR1cmluZygpIHsKLSAgdmFyIGhhbmRs
ZXJzQ2FsbGVkID0gMDsKLSAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbiBoYW5kbGVyKGUpIHsKLSAg
ICBoYW5kbGVyc0NhbGxlZCsrOwotICB9Ci0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rl
c3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiB0cnVlfSk7Ci0gIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiBmYWxzZSwgImNhcHR1cmUiOiB0cnVl
fSk7Ci0gIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnLCB7J2J1
YmJsZXMnOiB0cnVlLCAnY2FuY2VsYWJsZSc6IHRydWV9KSk7Ci0gIGFzc2VydF9lcXVhbHMoaGFu
ZGxlcnNDYWxsZWQsIDIsICJIYW5kbGVycyBjYWxsZWQgY29ycmVjdCBudW1iZXIgb2YgdGltZXMi
KTsKLX0KLQotdGVzdChwYXNzaXZlSGFuZGxlckFkZE5vblBhc3NpdmUsICJQYXNzaXZlIEhhbmRs
ZXIiKTsKLXRlc3Qobm9uUGFzc2l2ZUhhbmRsZXJBZGRQYXNzaXZlLCAiTm9uIFBhc3NpdmUgSGFu
ZGxlciIpOwotdGVzdChwYXNzaXZlSGFuZGxlckFkZE5vblBhc3NpdmVDYXB0dXJpbmcsICJQYXNz
aXZlIEhhbmRsZXIgQW5kIE5vbiBQYXNzaXZlIENhcHR1cmluZyIpOwotCi08L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlz
dGVuZXJvcHRpb25zL3Bhc3NpdmVfcXVlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvcGFzc2l2ZV9xdWVy
eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiOTFkOGQ0OGJk
MmZlM2FlNmY3N2MwOWNmNjdhOTZiZWUzZGJiNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVu
dHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvcGFzc2l2ZV9xdWVyeS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBTdXBwb3J0cyBQYXNzaXZlIAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3Rl
bmVyb3B0aW9ucy9wYXNzaXZlX3F1ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGlu
ay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZlX3F1ZXJ5Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMzc5MDdhZDRiM2Q0NWU4MTZlNTczMDZiMDc2
YTcxZjFjMTcxZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9w
dGlvbnMvcGFzc2l2ZV9xdWVyeS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAot
PCFET0NUWVBFIEhUTUw+Ci08Ym9keS8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08IS0tIFRo
aXMgdGVzdCBpcyBydW4gd2l0aCBub3JtYWwgbGF5b3V0IHRlc3RzIHdpdGggcGFzc2l2ZUV2ZW50
TGlzdGVuZXJzCi0gICAgIGVuYWJsZWQgYW5kIGluIHZpcnR1YWwvc3RhYmxlIHdpdGggcGFzc2l2
ZUV2ZW50TGlzdGVuZXJzIGRpc2FibGVkIC0tPgotPHNjcmlwdD4KLXRlc3QoZnVuY3Rpb24odCkg
ewotICAgIHZhciBzdXBwb3J0c1Bhc3NpdmUgPSBmYWxzZTsKLSAgICB2YXIgcXVlcnlfZnVuY3Rp
b24gPSBmdW5jdGlvbihlKSB7fTsKLSAgICB2YXIgcXVlcnlfb3B0aW9ucyA9IHsKLSAgICAgICAg
Z2V0IHBhc3NpdmUoKSB7Ci0gICAgICAgICAgICBzdXBwb3J0c1Bhc3NpdmUgPSB0cnVlOwotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9LAotICAgICAgICBnZXQgZHVtbXkoKSB7
Ci0gICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJkdW1teSB2YWx1ZSBnZXR0ZXIgaW52b2tl
ZCIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfTsKLQotICAg
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3RfZXZlbnQnLCBxdWVyeV9mdW5jdGlvbiwg
cXVlcnlfb3B0aW9ucyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzdXBwb3J0c1Bhc3NpdmUsIHRydWUp
OwotICAgIHQuZG9uZSgpOwotfSwgIlN1cHBvcnRzIFBhc3NpdmUiKTsKLTwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL0V2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50TGlz
dGVuZXJPcHRpb25zLWNhcHR1cmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3YmZhNDdjMmZmMGJhMTUyY2FhOWMyZTQ3YmFjNDJlY2RkMjVhOTA0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudExpc3RlbmVyT3B0aW9u
cy1jYXB0dXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1Q
QVNTIENhcHR1cmUgYm9vbGVhbiBzaG91bGQgYmUgaG9ub3JlZCBjb3JyZWN0bHkgCi1QQVNTIENh
cHR1cmUgb3B0aW9uIHNob3VsZCBiZSBob25vcmVkIGNvcnJlY3RseSAKLVBBU1MgU3VwcG9ydHMg
Y2FwdHVyZSBvcHRpb24gCi1QQVNTIEVxdWl2YWxlbmNlIG9mIG9wdGlvbiB2YWx1ZXMgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2V2ZW50cy9FdmVudExpc3RlbmVyT3B0aW9ucy1jYXB0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnRMaXN0ZW5lck9w
dGlvbnMtY2FwdHVyZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzdiNmM3
N2UzMTc3NWZiNTA4YzhlODcxMzU2NjA5MzRlNzZjYzkyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudExpc3RlbmVyT3B0aW9ucy1jYXB0dXJlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5FdmVudExpc3RlbmVyT3B0aW9ucy5jYXB0dXJlPC90aXRs
ZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUmljayBCeWVycyIgaHJlZj0ibWFpbHRvOnJi
eWVyc0BjaHJvbWl1bS5vcmciPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5z
cGVjLndoYXR3Zy5vcmcvI2RvbS1ldmVudGxpc3RlbmVyb3B0aW9ucy1jYXB0dXJlIj4KLTxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RDYXB0dXJlVmFsdWUoY2FwdHVy
ZVZhbHVlLCBleHBlY3RlZFZhbHVlKSB7Ci0gIHZhciBoYW5kbGVyUGhhc2UgPSB1bmRlZmluZWQ7
Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAgYXNzZXJ0X2VxdWFs
cyhoYW5kbGVyUGhhc2UsIHVuZGVmaW5lZCwgIkhhbmRsZXIgaW52b2tlZCBhZnRlciByZW1vdmUi
KTsKLSAgICBoYW5kbGVyUGhhc2UgPSBlLmV2ZW50UGhhc2U7Ci0gIH0KLSAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigndGVzdCcsIGhhbmRsZXIsIGNhcHR1cmVWYWx1ZSk7Ci0gIGRvY3VtZW50
LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnLCB7J2J1YmJsZXMnOiB0cnVlfSkp
OwotICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0JywgaGFuZGxlciwgY2FwdHVy
ZVZhbHVlKTsKLSAgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcs
IHsnYnViYmxlcyc6IHRydWV9KSk7Ci0gIGFzc2VydF9lcXVhbHMoaGFuZGxlclBoYXNlLCBleHBl
Y3RlZFZhbHVlLCAiSW5jb3JyZWN0IGV2ZW50IHBoYXNlIGZvciB2YWx1ZTogIiArIEpTT04uc3Ry
aW5naWZ5KGNhcHR1cmVWYWx1ZSkpOwotfQotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0ZXN0Q2Fw
dHVyZVZhbHVlKHRydWUsIEV2ZW50LkNBUFRVUklOR19QSEFTRSk7Ci0gIHRlc3RDYXB0dXJlVmFs
dWUoZmFsc2UsIEV2ZW50LkJVQkJMSU5HX1BIQVNFKTsKLSAgdGVzdENhcHR1cmVWYWx1ZShudWxs
LCBFdmVudC5CVUJCTElOR19QSEFTRSk7Ci0gIHRlc3RDYXB0dXJlVmFsdWUodW5kZWZpbmVkLCBF
dmVudC5CVUJCTElOR19QSEFTRSk7Ci0gIHRlc3RDYXB0dXJlVmFsdWUoMi4zLCBFdmVudC5DQVBU
VVJJTkdfUEhBU0UpOwotICB0ZXN0Q2FwdHVyZVZhbHVlKC0xMDAwLjMsIEV2ZW50LkNBUFRVUklO
R19QSEFTRSk7Ci0gIHRlc3RDYXB0dXJlVmFsdWUoTmFOLCBFdmVudC5CVUJCTElOR19QSEFTRSk7
Ci0gIHRlc3RDYXB0dXJlVmFsdWUoKzAuMCwgRXZlbnQuQlVCQkxJTkdfUEhBU0UpOwotICB0ZXN0
Q2FwdHVyZVZhbHVlKC0wLjAsIEV2ZW50LkJVQkJMSU5HX1BIQVNFKTsKLSAgdGVzdENhcHR1cmVW
YWx1ZSgiIiwgRXZlbnQuQlVCQkxJTkdfUEhBU0UpOwotICB0ZXN0Q2FwdHVyZVZhbHVlKCJBQUFB
IiwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFKTsKLX0sICJDYXB0dXJlIGJvb2xlYW4gc2hvdWxkIGJl
IGhvbm9yZWQgY29ycmVjdGx5Iik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gIHRlc3RDYXB0dXJl
VmFsdWUoe30sIEV2ZW50LkJVQkJMSU5HX1BIQVNFKTsKLSAgdGVzdENhcHR1cmVWYWx1ZSh7Y2Fw
dHVyZTp0cnVlfSwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFKTsKLSAgdGVzdENhcHR1cmVWYWx1ZSh7
Y2FwdHVyZTpmYWxzZX0sIEV2ZW50LkJVQkJMSU5HX1BIQVNFKTsKLSAgdGVzdENhcHR1cmVWYWx1
ZSh7Y2FwdHVyZToyfSwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFKTsKLSAgdGVzdENhcHR1cmVWYWx1
ZSh7Y2FwdHVyZTowfSwgRXZlbnQuQlVCQkxJTkdfUEhBU0UpOwotfSwgIkNhcHR1cmUgb3B0aW9u
IHNob3VsZCBiZSBob25vcmVkIGNvcnJlY3RseSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB2
YXIgc3VwcG9ydHNDYXB0dXJlID0gZmFsc2U7Ci0gIHZhciBxdWVyeV9vcHRpb25zID0gewotICAg
IGdldCBjYXB0dXJlKCkgewotICAgICAgc3VwcG9ydHNDYXB0dXJlID0gdHJ1ZTsKLSAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9LAotICAgIGdldCBkdW1teSgpIHsKLSAgICAgIGFzc2VydF91bnJl
YWNoZWQoImR1bW15IHZhbHVlIGdldHRlciBpbnZva2VkIik7Ci0gICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotICB9OwotCi0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3RfZXZlbnQn
LCBudWxsLCBxdWVyeV9vcHRpb25zKTsKLSAgYXNzZXJ0X3RydWUoc3VwcG9ydHNDYXB0dXJlLCAi
YWRkRXZlbnRMaXN0ZW5lciBkb2Vzbid0IHN1cHBvcnQgdGhlIGNhcHR1cmUgb3B0aW9uIik7Ci0g
IHN1cHBvcnRzQ2FwdHVyZSA9IGZhbHNlOwotICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVy
KCd0ZXN0X2V2ZW50JywgbnVsbCwgcXVlcnlfb3B0aW9ucyk7Ci0gIGFzc2VydF90cnVlKHN1cHBv
cnRzQ2FwdHVyZSwgInJlbW92ZUV2ZW50TGlzdGVuZXIgZG9lc24ndCBzdXBwb3J0IHRoZSBjYXB0
dXJlIG9wdGlvbiIpOwotfSwgIlN1cHBvcnRzIGNhcHR1cmUgb3B0aW9uIik7Ci0KLWZ1bmN0aW9u
IHRlc3RPcHRpb25FcXVhbGl0eShhZGRPcHRpb25WYWx1ZSwgcmVtb3ZlT3B0aW9uVmFsdWUsIGV4
cGVjdGVkRXF1YWxpdHkpIHsKLSAgdmFyIGhhbmRsZXJJbnZva2VkID0gZmFsc2U7Ci0gIHZhciBo
YW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhoYW5kbGVy
SW52b2tlZCwgZmFsc2UsICJIYW5kbGVyIGludm9rZWQgbXVsdGlwbGUgdGltZXMiKTsKLSAgICBo
YW5kbGVySW52b2tlZCA9IHRydWU7Ci0gIH0KLSAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcign
dGVzdCcsIGhhbmRsZXIsIGFkZE9wdGlvblZhbHVlKTsKLSAgZG9jdW1lbnQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigndGVzdCcsIGhhbmRsZXIsIHJlbW92ZU9wdGlvblZhbHVlKTsKLSAgZG9jdW1lbnQu
Ym9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxlcyc6IHRydWV9KSk7
Ci0gIGFzc2VydF9lcXVhbHMoIWhhbmRsZXJJbnZva2VkLCBleHBlY3RlZEVxdWFsaXR5LCAiZXF1
aXZhbGVuY2Ugb2Ygb3B0aW9ucyAiICsKLSAgICBKU09OLnN0cmluZ2lmeShhZGRPcHRpb25WYWx1
ZSkgKyAiIGFuZCAiICsgSlNPTi5zdHJpbmdpZnkocmVtb3ZlT3B0aW9uVmFsdWUpKTsKLSAgaWYg
KGhhbmRsZXJJbnZva2VkKQotICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3Qn
LCBoYW5kbGVyLCBhZGRPcHRpb25WYWx1ZSk7Ci19Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gIC8v
IE9wdGlvbiB2YWx1ZXMgdGhhdCBzaG91bGQgYmUgdHJlYXRlZCBhcyBlcXVpdmFsZW50Ci0gIHRl
c3RPcHRpb25FcXVhbGl0eSh7fSwgZmFsc2UsIHRydWUpOwotICB0ZXN0T3B0aW9uRXF1YWxpdHko
e2NhcHR1cmU6IGZhbHNlfSwgZmFsc2UsIHRydWUpOwotICB0ZXN0T3B0aW9uRXF1YWxpdHkodHJ1
ZSwge2NhcHR1cmU6IHRydWV9LCB0cnVlKTsKLSAgdGVzdE9wdGlvbkVxdWFsaXR5KHtjYXB0dXJl
OiBudWxsfSwgdW5kZWZpbmVkLCB0cnVlKTsKLSAgdGVzdE9wdGlvbkVxdWFsaXR5KHtjYXB0dXJl
OiB0cnVlfSwge2R1bW15OiBmYWxzZSwgY2FwdHVyZTogMX0sIHRydWUpOwotICB0ZXN0T3B0aW9u
RXF1YWxpdHkoe2R1bW15OiB0cnVlfSwgZmFsc2UsIHRydWUpOwotCi0gIC8vIE9wdGlvbiB2YWx1
ZXMgdGhhdCBzaG91bGQgYmUgdHJlYXRlZCBhcyBkaXN0aW5jdAotICB0ZXN0T3B0aW9uRXF1YWxp
dHkodHJ1ZSwgZmFsc2UsIGZhbHNlKTsKLSAgdGVzdE9wdGlvbkVxdWFsaXR5KHRydWUsIHtjYXB0
dXJlOmZhbHNlfSwgZmFsc2UpOwotICB0ZXN0T3B0aW9uRXF1YWxpdHkoe30sIHRydWUsIGZhbHNl
KTsKLQotfSwgIkVxdWl2YWxlbmNlIG9mIG9wdGlvbiB2YWx1ZXMiKTsKLQotPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>