<?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>109111</bug_id>
          
          <creation_ts>2013-02-06 17:45:26 -0800</creation_ts>
          <short_desc>Add WebGL Conformance Tests texture folder.</short_desc>
          <delta_ts>2013-02-07 03:59:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (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>94643</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gregg Tavares">gman</reporter>
          <assigned_to name="Gregg Tavares">gman</assigned_to>
          <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826923</commentid>
    <comment_count>0</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 17:45:26 -0800</bug_when>
    <thetext>Add WebGL Conformance Tests texture folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826925</commentid>
    <comment_count>1</comment_count>
      <attachid>186958</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 17:46:19 -0800</bug_when>
    <thetext>Created attachment 186958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826964</commentid>
    <comment_count>2</comment_count>
      <attachid>186958</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-06 18:30:38 -0800</bug_when>
    <thetext>Comment on attachment 186958
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827280</commentid>
    <comment_count>3</comment_count>
      <attachid>186958</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 03:59:20 -0800</bug_when>
    <thetext>Comment on attachment 186958
Patch

Clearing flags on attachment: 186958

Committed r142092: &lt;http://trac.webkit.org/changeset/142092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827281</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 03:59:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186958</attachid>
            <date>2013-02-06 17:46:19 -0800</date>
            <delta_ts>2013-02-07 03:59:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109111-20130206174256.patch</filename>
            <type>text/plain</type>
            <size>257795</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDU4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTg1YzNmODI2ZjFlY2EwZDY4NmNl
OTY2MDM2ZmZkNjliMWMyYmQ4My4uZmYyYzVmNTIxMGE4MmVlZDgxZjU3ZjdlNzkyMWEzNzkzNWNk
MGRlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk4IEBACiAyMDEzLTAyLTA2ICBHcmVnZyBUYXZhcmVzICA8
Z21hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQWRkIFdlYkdMIENvbmZvcm1hbmNlIFRlc3Rz
IHRleHR1cmUgZm9sZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb21wcmVzc2VkLXRleC1pbWFn
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1
cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5
LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdldC10ZXgtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtZ2V0LXRleC1w
YXJhbWV0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvZ2wtdGV4aW1hZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25m
b3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWlt
YWdlLWRhdGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdi
NTY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYjU2NS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtZGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC11bmlm
b3JtLWJpbmRpbmctYnVncy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2ViZ2wtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2ViZ2wuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtZm9y
bWF0LWFuZC10eXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWlu
dmFsaWQtZGF0YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWludmFsaWQtZGF0YS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5wdXQtdmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdl
LTJkLWJhZC1hcmdzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHBhcmFtZXRlci10ZXN0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4cGFyYW1ldGVyLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1hdHRhY2htZW50LWZvcm1hdHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1l
bnQtZm9ybWF0cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLWNsZWFyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jbGVhci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNvbXBsZXRlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1j
b21wbGV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXh0dXJlLWZvcm1hdHMtdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBpLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4dHVyZS1oZC1kcGkuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS1ucG90LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJlLW1hcHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLXNpemUtY3ViZS1tYXBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3Vi
LWltYWdlLWN1YmUtbWFwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtdHJhbnNwYXJlbnQtcGl4ZWxzLWluaXRpYWxpemVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy8wMF90ZXN0X2xpc3Qu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy9jb21wcmVzc2VkLXRleC1pbWFnZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L2dsLWdldC10ZXgtcGFyYW1ldGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXRleGltYWdlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pcG1hcC1mYm8uaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiNTY1
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtZGF0YS1yZ2JhNDQ0NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTU1NTEuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLXdlYmdsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWZv
cm1hdC1hbmQtdHlwZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZhbGlk
LWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtc3ViLWltYWdlLTJkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHBhcmFtZXRlci10ZXN0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtY2xlYXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1j
b21wbGV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWZvcm1hdHMtdGVzdC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLWhkLWRwaS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJl
LW5wb3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLXN1Yi1pbWFnZS1jdWJlLW1hcHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0bWw6IEFkZGVkLgorCisyMDEzLTAy
LTA2ICBHcmVnZyBUYXZhcmVzICA8Z21hbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgQWRkcyBm
YWlsaW5nIFdlYkdMIENvbmZvcm1hbmNlIFRlc3RzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDc1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQt
dGV4LWltYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWQ1MjkyZGNmYjAyMjY4NTAwZmU0
OTEyMzJmZjA3MzRjNjU4ZmM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvY29tcHJlc3NlZC10ZXgtaW1hZ2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQt
dGV4LWltYWdlLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvY29tcHJlc3NlZC10ZXgtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTAzNzA1MmE5YjIwMzM1YzNiYzYzNmRhOWNiNjNjOGExZGJmYWJlYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXBy
ZXNzZWQtdGV4LWltYWdlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMg
YXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgY29tcHJlc3NlZC10
ZXgtaW1hZ2UuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWlt
YWdlLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb21wcmVzc2VkLXRleC1pbWFnZS5o
dG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1
cmVzL2NvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRkYjkxYTVjNGZjYzYyNzYwMTIxNTAx
ZmViMjUxZGZhMjY3YmRiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2Nv
cHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJl
cy9jb3B5LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM1NDIz
OWU2ZjRkYjU4Y2IwYWYyYWM3Yjc2ODhjZjg2ZTAxYWU1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBjb3B5LXRleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQu
aHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlm
cmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQuaHRtbCIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBh
cmFtZXRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0
dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM4ZWI4
MjE3OTI0YWJhYTdjYjQ1Mzc3ZTBjODRmODkzNDE4ZDIxOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdldC10ZXgtcGFyYW1ldGVy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgor
CitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdldC10ZXgtcGFyYW1ldGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBh
cmFtZXRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYzNkZTBiYTRmY2ZjNGJkMmU2ODMwOTI1NDg5M2M2
N2JmNWQ2NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5
LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIGdsLWdldC10ZXgtcGFyYW1ldGVyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVm
PSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9n
bC1nZXQtdGV4LXBhcmFtZXRlci5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sPC9hPgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtZ2V0
LXRleC1wYXJhbWV0ZXIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDZmMDJhYTRkYjlmYmM0OWQ2ZDU2OTMxYTk0NmQ2NTNmYmVmNmNhMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXRl
eGltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXRleGltYWdlLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQxNzU1YTZiMDIzMTAxZTY2OTNkN2E0NmIxMWE0NzI0NWI5ZjcyZjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFn
ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVk
IGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGdsLXRleGltYWdlLmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48
L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sPC9hPgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtdGV4
aW1hZ2UuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXBtYXAtZmJvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pcG1hcC1mYm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJj
YjU1ZjA0MjY0OWI5YzJmNmIyNWZjNmRhYzM2MmY2YWQ5ODgzYTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXBtYXAtZmJvLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMTM3NTAwMTRl
NTk4ZDBjNzY0ODc1MjAzMDNmZGVlYTgyYjBjZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2Vi
Z2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgbWlwbWFwLWZiby5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
L3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJl
Zj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlwbWFwLWZiby5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLmh0bWwiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YjU0ODgyMmFjODVmOWI5ODUyYTZiY2VmYjUwMWQxOTE1ZGFhYjc4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJy
YXktYnVmZmVyLXZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjQ2ZjQ1ZWQxNWUzMjVjYjg5NWZlMmJk
NzRhMzczMTc2N2JlZjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1i
dWZmZXItdmlldy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6
IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcu
aHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1s
PC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1l
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1s
IiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjYTc1
MWYyY2EzNjc3NDhhOWFmNmQ3YjE2OTAwMGQxZTllYmY0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtZGF0YS5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtZGF0YS1yZ2I1NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJn
YjU2NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDIyYjYyYjMxYzE1YmNlN2ZmNDNiZTgxYzIz
MjdmMzYxNzNhZGJlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0
YS1yZ2I1NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1y
Z2I1NjUuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEt
cmdiNTY1Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiNTY1Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWY5YjBhNWM3MGE2M2MyNmY5M2M1YzI4ZDRiYmNjNzBmZTFhYWViYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJn
bC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVz
dCBXcmFwcGVyIGZvciB0ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEt
cmdiNTY1Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13
ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiNTY1Lmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1kYXRhLXJnYmE0NDQ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmFjZWU2MWEwZmJl
ZDQxMWZjMmY5YmM4ZmFhZmQxYjhhMDI3NWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1pbWFnZS1kYXRhLXJnYmE0NDQ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Ro
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0
YS1yZ2JhNDQ0NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZTI1OWVjMzBkYzQxNjNmODg3ZjJkYTBlMmZl
Njg4NjgwZmI0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEt
cmdiYTQ0NDQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6
IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0
NC5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQu
aHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlm
cmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0
NC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTU1NTEtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlZTIyZGU3MWI4N2Y3NWQ5NzY4MmQ3M2YxZWE1Yjc2ZmVmMTQy
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTU1NTEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5o
dG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1
MS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzFkZmJhY2E5Y2NmNjY3ZjhhZjQ0YjE2NDJhMTQwNWJkMjIwOThjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sCkBAIC0wLDAgKzEs
MTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmds
LXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0
IFdyYXBwZXIgZm9yIHRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1y
Z2JhNTU1MS5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdo
dD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNWIyOTAzMjRmMWJhZWZhNGY4YTFhZTQ1MTJiYzAxN2NlYTM0OTVl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwKQEAgLTAs
MCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUt
d2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1k
YXRhLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1kYXRhLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRh
dGEuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtdW5p
Zm9ybS1iaW5kaW5nLWJ1Z3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmNzgxMmI4ODIyNmNk
OTczMzg2MDFjZjk0NjQwZWM5YjI4NTI0ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGlu
Zy1idWdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwKK1BBU1MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVncy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJlZGIyZTk0MGFkZjI4Yzk2Y2M1NjU3OThkZDU3MmIyZDE0OTkwMDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVz
dHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3Jh
cHBlciBmb3IgdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVncy5odG1sPC90aXRsZT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVncy5odG1s
Ij4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXVu
aWZvcm0tYmluZGluZy1idWdzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFt
ZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13ZWJnbC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDIyNjBkOTM5NGMzMzMzMmU0ZDZmNWEyYmIxNmNiNjZjOTEz
MjA1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS13ZWJnbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWwKK1BBU1MKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2Utd2ViZ2wuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjBlYjFhNmIwZDA2NTA5ZTI4NzNjNjcy
OTU4NGE0Y2E5ZTM0N2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMu
cHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgdGV4LWltYWdlLXdlYmdsLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2Utd2ViZ2wuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2ViZ2wuaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10
eXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDU0MmI1ZGRhZDA5NzRjZWM2NDdjOTNiNDc1
OTdmZjJhN2ZhNjhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1h
Z2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5k
LXR5cGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1p
bWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ODZkNzVlNWMwYjhl
MTVkZmYzMzgxMGU1MDkyZDc1NDk1MDUwOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5
cGUuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5k
LXR5cGUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWZvcm1h
dC1hbmQtdHlwZS5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbDwvYT4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1p
bWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+
PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWludmFsaWQtZGF0
YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2Utd2l0aC1pbnZhbGlkLWRhdGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZmRj
MTY4MTk4ZTAxYmQ3NzIyNGZjZGI5N2E5OGQ4NTI2NzhhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZh
bGlkLWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWludmFsaWQtZGF0YS5odG1sCitQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS13aXRoLWludmFsaWQtZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtaW52YWxpZC1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVk
ZTA5ZDVhZjJmYmU2N2IzMGY0NzRiYTc1M2FmMjhkNzFhYjE4MQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWlu
dmFsaWQtZGF0YS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleC1pbWFnZS13aXRoLWlu
dmFsaWQtZGF0YS5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgt
aW52YWxpZC1kYXRhLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWludmFsaWQtZGF0YS5odG1sPC9hPgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLXdpdGgtaW52YWxpZC1kYXRhLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lm
cmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZh
bGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZjhhODliYzVmODk0Mzg0ZGVmMTgx
YmIwOWVmNDY5NzQ5MGFmMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5wdXQtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZh
bGlkYXRpb24uaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5wdXQtdmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xOGQxZThjMjY5M2EwOGU1MjEzY2RkMmMyMTgwZTA0Zjc5YWY0MmM3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlu
cHV0LXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXgtaW5wdXQtdmFs
aWRhdGlvbi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRp
b24uaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRpb24uaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbnB1dC12YWxpZGF0aW9uLmh0
bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLWJhZC1hcmdzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NjFlNDMxOTliNWNiODhlYjJmYWVlYTJhNjViNWE4NWQ1NzU2
MmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQt
YXJncy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xOGM3MzQwMzEyODM2OWQ1MWMwMjhjNTk4OGYyMGQ3ZjEyYWYxYjUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBO
T1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRl
eC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1s
PC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1l
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYw
MCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1p
bWFnZS0yZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM3Yzg3ZDIzNGNlZThiOWI5MjIwN2E1
ZGY2N2UxNmI1YmM1ZmYyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQu
aHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFhNjE2MjFi
YzAxNzRlMzA5YzFlYTI5ODRiMGIzMTdiNDEzN2YxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBnZW5l
cmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9y
bWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXgtc3ViLWltYWdlLTJkLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+
CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQuaHRtbDwv
YT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1zdWItaW1hZ2UtMmQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJhYzM2ZmNjNDQyMGUxNTNmNzQyZmU3ZGVmMDM3M2Ix
NTMwOTIwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHBhcmFtZXRlci10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sCitQ
QVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleHBhcmFtZXRlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYzdmNWMwZGQ5NWE4
OTU1ODczMWQ1OTFkOTNiMjg5M2I5OTY4NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRl
LXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIHRleHBhcmFtZXRlci10ZXN0Lmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitU
ZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sPC9h
PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4cGFyYW1ldGVyLXRlc3QuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0
dGFjaG1lbnQtZm9ybWF0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJlMWExNDdjZjYzNmUw
YzZhM2MzYzhjMDU4OTMyNGRmMTg3YjM4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitU
ZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1m
b3JtYXRzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0
dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxOWI5ZjhkYzdhZmIxM2U1
Yjg5YjY5MWZkZjBhOGNjMjNhMzI0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdl
bmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25m
b3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1s
Ij4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hdHRhY2htZW50LWZvcm1h
dHMuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY2xlYXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkNGE0NzY1ZThiNGM3NGQzZjg4MGI1Y2Q0MmEyMTRkMDE3OGUwYzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgor
CitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jbGVhci5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jbGVhci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE0Zjk5NDc3ZjFjODQ2MmIyNjgzMWRmZjViNGM2OWU2NTZmOTQxOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNs
ZWFyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0
ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4dHVyZS1jbGVhci5odG1sPC90aXRs
ZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jbGVhci5odG1sIj4uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWw8
L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXh0dXJlLWNsZWFyLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNvbXBsZXRlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yNzk4MmI3ZmEwMjg0ZWUwMGNkOGZiYzhhNGQwMDg1NzYxMjE5
ZDYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS5odG1sCitQQVNTCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtY29tcGxldGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleHR1cmUtY29tcGxldGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTdiZjU5OGQ2MGYzYmYxZWRlYWM3
M2M2MWFlYjViMTMzYWMxYTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRl
c3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdy
YXBwZXIgZm9yIHRleHR1cmUtY29tcGxldGUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleHR1cmUtY29tcGxldGUuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS5odG1sPC9hPgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21w
bGV0ZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xN2I2NzRkOWEzNTBhNDlkNjI5ODUyOWRiYzI4MzMzMTBjOTY4MTZi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4dHVyZS1mb3JtYXRzLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwKK1BB
U1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4dHVyZS1mb3JtYXRzLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM3OTc2MGNj
NmEyMTJiMDYwNTZjMDljZDYzNzA4YTJlNDA4MDRkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkg
Z2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4dHVyZS1mb3JtYXRzLXRlc3QuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwiPi4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9y
bWF0cy10ZXN0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWZvcm1hdHMtdGVzdC5odG1sIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBp
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtaGQtZHBpLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmI4ZjljZTJlYjMxNzJmMGFk
Y2UzNWUwOGYzMjE5M2M1ZWExYzA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1oZC1kcGktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBp
Lmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS1oZC1kcGkuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM4ZjE4YjZlNDhk
MTk2NzFjNDBmYjcxOTY1NTQ4OTQ3YzhlYWQyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBpLmh0bWwKQEAgLTAs
MCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUt
d2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgdGV4dHVyZS1oZC1kcGkuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6
IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleHR1cmUtaGQtZHBpLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBpLmh0bWw8L2E+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWhk
LWRwaS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtbnBvdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcxMmFhOWYxNDQ0NmRlZjYwNGYxNzM5NjhmZDhiYTQ1OWQ0YzQ1YjIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleHR1cmUtbnBvdC5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWYxMDZjZWIxMmZlZDk3N2U3NWJhOTY0NjEwNDgzOTU0NjhhZTE1ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBD
b25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleHR1cmUtbnBvdC5odG1sPC90aXRsZT4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90Lmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC5odG1sPC9hPgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVy
ZS1ucG90Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtY3ViZS1tYXBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjE3Njg5NjQ1Yzk2OGFhMjYyZmZmOTUyNjc0ZTJiMzk5
Njg4ZTMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFw
cy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NTFlMGYyY2VmNzg4Y2M3NzE3ODc1YmViZTk3ZDM4MmNiYWNhNjYxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1z
aXplLWN1YmUtbWFwcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1
dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4K
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleHR1cmUtc2l6ZS1j
dWJlLW1hcHMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJl
LW1hcHMuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUt
bWFwcy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXN1Yi1pbWFnZS1jdWJl
LW1hcHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwM2Y2YWI2Zjg4YmU2YmFkY2I3MTlmMWEy
OWExNjc1MTFjODBiMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXN1Yi1pbWFnZS1jdWJlLW1hcHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUt
c3ViLWltYWdlLWN1YmUtbWFwcy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWIt
aW1hZ2UtY3ViZS1tYXBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ4N2VmNGNjYzY5MTgxNzgyNTdlNmMz
Y2QzZjQ2NDM3MTM2YjViOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRl
LXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIHRleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sPC90aXRs
ZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWItaW1hZ2UtY3ViZS1tYXBzLmh0bWwiPi4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4K
KzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWItaW1hZ2UtY3ViZS1tYXBz
Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3Bh
cmVudC1waXhlbHMtaW5pdGlhbGl6ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxNzkzZjgx
YWQxNzA4ODA1ZDViZDhkNTQwYjc0YjlkZTQ4OTQzMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5zcGFyZW50LXBp
eGVscy1pbml0aWFsaXplZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6
ZWQuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVu
dC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjdjMThlNWQzZjExYmRiMTU2
NjE5OTE2MjgyYmJiMmYwOGJlYTMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlh
bGl6ZWQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXh0dXJlLXRyYW5zcGFyZW50LXBp
eGVscy1pbml0aWFsaXplZC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS10
cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhl
bHMtaW5pdGlhbGl6ZWQuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlk
PSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxzLWluaXRpYWxp
emVkLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQxZjFhNDgyZDhmNTM3YjMwYzVkY2RmYWEzMTU4YWFk
MmViN2Q2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3Vi
ZS1tYXBzLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMTM5MzJhMjc3MmJkNWZlZGRjNDAzMjgxNzJiYmFjY2Q2ZThlODBmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5P
VCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4
dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0
dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0bWw8L2E+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy8w
MF90ZXN0X2xpc3QudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvMDBfdGVzdF9saXN0LnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NjlhMjY4MDhmYWYxYzQ2NWViNGIzZTQ1NDIzOTJjMWJiYTNmNjliCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvMDBfdGVzdF9saXN0LnR4dApAQCAtMCwwICsxLDUwIEBACitjb21wcmVzc2Vk
LXRleC1pbWFnZS5odG1sCitjb3B5LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWwKKy0t
bWluLXZlcnNpb24gMS4wLjIgY29weS10ZXgtaW1hZ2UtMmQtZm9ybWF0cy5odG1sCistLW1pbi12
ZXJzaW9uIDEuMC4yIGdsLWdldC10ZXgtcGFyYW1ldGVyLmh0bWwKK2dsLXBpeGVsc3RvcmVpLmh0
bWwKK2dsLXRleGltYWdlLmh0bWwKK29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCit0ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3Lmh0bWwKK3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmh0bWwKK3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYjU2NS5odG1sCit0ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sCit0ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWNhbnZhcy1yZ2JhNTU1MS5odG1sCit0ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWltYWdlLWRhdGEuaHRtbAordGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFn
ZS1kYXRhLXJnYjU2NS5odG1sCit0ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdl
LWRhdGEtcmdiYTQ0NDQuaHRtbAordGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFn
ZS1kYXRhLXJnYmE1NTUxLmh0bWwKK3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UuaHRtbAordGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2I1NjUuaHRt
bAordGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNDQ0NC5odG1sCit0
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE1NTUxLmh0bWwKK3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbAordGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRtbAordGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC12aWRlby1yZ2JhNDQ0NC5odG1sCit0ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLXZpZGVvLXJnYmE1NTUxLmh0bWwKK3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1
Z3MuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXgtaW1hZ2Utd2ViZ2wuaHRtbAordGV4LWlt
YWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwKK3RleC1pbWFnZS13aXRoLWludmFsaWQtZGF0
YS5odG1sCit0ZXgtaW5wdXQtdmFsaWRhdGlvbi5odG1sCit0ZXgtc3ViLWltYWdlLTJkLWJhZC1h
cmdzLmh0bWwKK3RleC1zdWItaW1hZ2UtMmQuaHRtbAordGV4cGFyYW1ldGVyLXRlc3QuaHRtbAor
dGV4dHVyZS1hY3RpdmUtYmluZC0yLmh0bWwKK3RleHR1cmUtYWN0aXZlLWJpbmQuaHRtbAorLS1t
aW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1sCistLW1pbi12
ZXJzaW9uIDEuMC4yIHRleHR1cmUtY2xlYXIuaHRtbAordGV4dHVyZS1jb21wbGV0ZS5odG1sCist
LW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtaGQtZHBpLmh0bWwKKy0tbWluLXZlcnNpb24gMS4w
LjIgdGV4dHVyZS1mb3JtYXRzLXRlc3QuaHRtbAordGV4dHVyZS1taXBzLmh0bWwKK3RleHR1cmUt
bnBvdC12aWRlby5odG1sCit0ZXh0dXJlLW5wb3QuaHRtbAordGV4dHVyZS1zaXplLmh0bWwKK3Rl
eHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLXNp
emUtbGltaXQuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLXN1Yi1pbWFnZS1jdWJl
LW1hcHMuaHRtbAordGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbAor
LS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbAorLS1taW4t
dmVyc2lvbiAxLjAuMiBtaXBtYXAtZmJvLmh0bWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29t
cHJlc3NlZC10ZXgtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGU3YjkyYzg0NWI4MmMyZjg0ODU4OWQxZGUxMTU0YTk1NWM3M2VkNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWwKQEAg
LTAsMCArMSw4MyBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisq
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
CisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29tcHJlc3NlZFRleEltYWdlIGFuZCBDb21wcmVzc2VkVGV4U3ViSW1hZ2Ug
VGVzdHM8L3RpdGxlPgorPExJTksgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0
IjsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMg
Y29ycmVjdGx5IGltcGxlbWVudCBjb21wcmVzc2VkVGV4SW1hZ2UyRCBhbmQgY29tcHJlc3NlZFRl
eFN1YkltYWdlMkQuIik7CisKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOworCit2YXIgQ09NUFJFU1NFRF9SR0Jf
UzNUQ19EWFQxX0VYVCAgICAgICAgPSAweDgzRjA7Cit2YXIgQ09NUFJFU1NFRF9SR0JBX1MzVENf
RFhUMV9FWFQgICAgICAgPSAweDgzRjE7Cit2YXIgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9F
WFQgICAgICAgPSAweDgzRjM7Cit2YXIgRVRDMV9SR0I4X09FUyAgICAgICAgICAgICAgICAgICAg
ICAgPSAweDhENjQ7Cit2YXIgQ09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYxX0lNRyAgICAgPSAw
eDhDMDA7Cit2YXIgQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUcgICAgPSAweDhDMDI7
CisKK3ZhciBmb3JtYXRzID0gbnVsbDsKKworaWYgKCFnbCkgeworICB0ZXN0RmFpbGVkKCJjb250
ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4
aXN0cyIpOworCisgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhULCA0LCA0LCAwLCBuZXcgVWludDhBcnJheSg4
KSkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJnbC5j
b21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JHQkFfUzNU
Q19EWFQxX0VYVCwgNCwgNCwgMCwgbmV3IFVpbnQ4QXJyYXkoOCkpIik7CisgIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiZ2wuY29tcHJlc3NlZFRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQsIDQsIDQsIDAs
IG5ldyBVaW50OEFycmF5KDE2KSkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5J
TlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBF
VEMxX1JHQjhfT0VTLCA0LCA0LCAwLCBuZXcgVWludDhBcnJheSg4KSkiKTsKKyAgc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HLCA4LCA4
LCAwLCBuZXcgVWludDhBcnJheSg4KSkiKTsKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRywgOCwgOCwgMCwgbmV3IFVpbnQ4QXJy
YXkoOCkpIik7CisKKyAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImZv
cm1hdHMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMpIik7
CisgIHNob3VsZEJlTm9uTnVsbCgiZm9ybWF0cyIpOworICBzaG91bGRCZSgiZm9ybWF0cy5sZW5n
dGgiLCAiMCIpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjZGYwNmFhYTZlMWMzNTdmN2FkNjg3NGI3NzljYTlj
MmVhMThkODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLmh0bWwKQEAgLTAsMCArMSwxNTcgQEAKKzwhLS0KKworLyoKKyoqIENvcHly
aWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBp
cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n
IGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxz
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRo
ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJp
YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFu
ZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoq
CisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0
aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoq
IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS
SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRF
UklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Cit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7CisKK2Z1bmN0aW9uIGluaXQoKQoreworICAgIGlu
aXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUoKTsKKworICAgIGRlc2NyaXB0aW9uKCdWZXJp
ZnkgY29weVRleEltYWdlMkQgYW5kIGNvcHlUZXhTdWJJbWFnZTJEJyk7CisKKyAgICBydW5UZXN0
KCk7Cit9CisKK3ZhciBnbCA9IG51bGw7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisKK2Z1
bmN0aW9uIHJ1blRlc3RJdGVyYXRpb24oYW50aWFsaWFzKQoreworICAgIHZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgKKyAgICAgICAgYW50aWFsaWFzID8gImFudGlhbGlhc09u
IiA6ICJhbnRpYWxpYXNPZmYiKTsKKyAgICB2YXIgYXR0cmlicyA9IGFudGlhbGlhcyA/IHsgYW50
aWFsaWFzOiBmYWxzZSB9IDogdW5kZWZpbmVkOworICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4
dChjYW52YXMsIGF0dHJpYnMpOworICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRR
dWFkKGdsKTsKKyAgICB2YXIgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9n
cmFtLCAidGV4Iik7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIkR1cmlu
ZyBJbml0aWFsaXphdGlvbiIpOworCisgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDEpOworICAg
IGdsLmRpc2FibGUoZ2wuQkxFTkQpOworICAgIGRlYnVnKCdUZXN0aW5nIGNvcHlUZXhJbWFnZTJE
Jyk7CisKKyAgICAvLyBSZWQgY2FudmFzCisgICAgZ2wuY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsK
KyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7
CisKKyAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAvLyBCaW5kIHRo
ZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgdGV4dHVyZSk7CisgICAgLy8gU2V0IHVwIHRleHR1cmUKKyAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDIsIDIsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIG51bGwpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wudW5p
Zm9ybTFpKHRleHR1cmVMb2MsIDApOworCisgICAgdmFyIGNvbG9ycyA9IFsKKyAgICAgIFsxLCAw
LCAwLCAxXSwKKyAgICAgIFswLCAxLCAwLCAxXSwKKyAgICAgIFswLCAwLCAxLCAxXSwKKyAgICAg
IFswLjUsIDAuNSwgMC41LCAwLjVdLAorICAgIF07CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICBm
b3IgKHZhciB5eSA9IC0yOyB5eSA8PSAyOyArK3l5KSB7CisgICAgICBmb3IgKHZhciB4eCA9IC0y
OyB4eCA8PSAyOyArK3h4KSB7CisgICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjsgKytp
aSkgeworICAgICAgICAgIHZhciB0ZXhDb2xvciA9IGNvbG9yc1tjb3VudF07CisgICAgICAgICAg
dmFyIGNsZWFyQ29sb3IgPSBjb2xvcnNbKGNvdW50ICsgMSkgJSBjb2xvcnMubGVuZ3RoXTsKKyAg
ICAgICAgICAvLyBjbGVhciB0byBzb21lIGNvbG9yCisgICAgICAgICAgZ2wuY2xlYXJDb2xvcih0
ZXhDb2xvclswXSwgdGV4Q29sb3JbMV0sIHRleENvbG9yWzJdLCB0ZXhDb2xvclszXSk7CisgICAg
ICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQp
OworCisgICAgICAgICAgLy8gY29weSB0aGF0IGNvbG9yIHRvIHRoZSB0ZXh0dXJlLgorICAgICAg
ICAgIHN3aXRjaCAoaWkpIHsKKyAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBnbC5jb3B5
VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB4eCwgeXksIDIsIDIsIDApOwor
ICAgICAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAg
ICAgICAidXNpbmcgY29weVRleEltYWdlMkQ6IHggPSIgKyB4eCArICIsIHkgPSAiICsgeXkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgZ2wuY29w
eVRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgeHgsIHl5LCAyLCAyKTsKKyAg
ICAgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAg
ICAgInVzaW5nIGNvcHlUZXhTdWJJbWFnZTJEOiB4ID0iICsgeHggKyAiLCB5ID0gIiArIHl5KTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKworICAgICAgICAgIC8vIGNsZWFyIHRv
IHNvbWUgb3RoZXIgY29sb3IuCisgICAgICAgICAgZ2wuY2xlYXJDb2xvcihjbGVhckNvbG9yWzBd
LCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVhckNvbG9yWzNdKTsKKyAgICAgICAg
ICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisK
KyAgICAgICAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKKyAgICAgICAgICB3dHUuZHJhd1F1YWQo
Z2wpOworCisgICAgICAgICAgLy8gY2hlY2sgdGhlIHJlbmRlcmluZyByZXN1bHRzCisgICAgICAg
ICAgZm9yICh2YXIgaXkgPSAwOyBpeSA8IDI7ICsraXkpIHsKKyAgICAgICAgICAgIGZvciAodmFy
IGl4ID0gMDsgaXggPCAyOyArK2l4KSB7CisgICAgICAgICAgICAgIHZhciB4ID0geHggKyBpeDsK
KyAgICAgICAgICAgICAgdmFyIHkgPSB5eSArIGl5OworICAgICAgICAgICAgICB2YXIgZXhwZWN0
ZWRDb2xvciA9ICh4IDwgMCB8fCB5IDwgMCB8fCB4ID49IDIgfHwgeSA+PSAyKSA/CisgICAgICAg
ICAgICAgICAgICBbMCwwLDAsMF0gOgorICAgICAgICAgICAgICAgICAgW01hdGguZmxvb3IoMjU1
ICogdGV4Q29sb3JbMF0pLAorICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoMjU1ICogdGV4
Q29sb3JbMV0pLAorICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoMjU1ICogdGV4Q29sb3Jb
Ml0pLAorICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoMjU1ICogdGV4Q29sb3JbM10pXTsK
KyAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgaXgsIGl5LCAxLCAxLCBleHBl
Y3RlZENvbG9yLAorICAgICAgICAgICAgICAgICAgIiIgKyBpeCArICIsICIgKyBpeSArICIgc2hv
dWxkIHJlbmRlciAiICsgZXhwZWN0ZWRDb2xvciArICIgKCsvLTEpIiwgMSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgfQorICAgICAgICAgIGNvdW50ID0gKGNvdW50ICsgMSkgJSBjb2xvcnMu
bGVuZ3RoOworICAgICAgICB9CisgICAgICB9CisgICAgfQorCisgICAgZGVidWcoIiIpOworfQor
CitmdW5jdGlvbiBydW5UZXN0KGFudGlhbGlhcykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyB3aXRo
IGFudGlhbGlhcyBvbiIpOworICAgIHJ1blRlc3RJdGVyYXRpb24odHJ1ZSk7CisgICAgZGVidWco
IlRlc3Rpbmcgd2l0aCBhbnRpYWxpYXMgb2ZmIik7CisgICAgcnVuVGVzdEl0ZXJhdGlvbihmYWxz
ZSk7CisKKyAgICBmaW5pc2hUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0iaW5pdCgpIj4KKzxjYW52YXMgaWQ9ImFudGlhbGlhc09uIiB3aWR0aD0iMiIgaGVpZ2h0
PSIyIj48L2NhbnZhcz4KKzxjYW52YXMgaWQ9ImFudGlhbGlhc09mZiIgd2lkdGg9IjIiIGhlaWdo
dD0iMiI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2ds
LWdldC10ZXgtcGFyYW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU5Y2RmNWQ1NGZkNzQyOWJmNmRmYjk3ZmRiYTQ1MWU4NzIxMWIyYTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sCkBA
IC0wLDAgKzEsMTM1IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAi
TWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQK
KyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFs
cy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBnZXRUZXhQYXJhbWV0ZXIgdGVzdDwvdGl0bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBzdHls
ZT0id2lkdGg6IDQwcHg7IGhlaWdodDogMzBweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorInVzZSBz
dHJpY3QiOworZGVzY3JpcHRpb24oKTsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBn
bCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKKworLy8gTk9URTogV2UgZXhwbGlj
aXRseSBkbyB0aGlzIGluIGEgZnVua3kgb3JkZXIKKy8vIHRvIGhvcGVmdWxseSBmaW5kIHN1YnRs
ZSBidWdzLgorCit2YXIgdGFyZ2V0cyA9IFsKKyAgJ1RFWFRVUkVfMkQnLAorICAnVEVYVFVSRV8y
RCcsCisgICdURVhUVVJFX0NVQkVfTUFQJywKKyAgJ1RFWFRVUkVfQ1VCRV9NQVAnCitdOworLy8g
Q3JlYXRlIHRleHR1cmVzIG9uIGRpZmZlcmVudCBhY3RpdmUgdGV4dHVyZXMuCitmb3IgKHZhciBp
aSA9IDA7IGlpIDwgdGFyZ2V0cy5sZW5ndGg7ICsraWkpIHsKKyAgdmFyIHRhcmdldCA9IHRhcmdl
dHNbaWldOworICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBnbC5hY3RpdmVUZXh0
dXJlKGdsLlRFWFRVUkUwICsgaWkpOworICBnbC5iaW5kVGV4dHVyZShnbFt0YXJnZXRdLCB0ZXgp
OworfQorCitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVy
cm9ycyIpOworCit2YXIgc3RhdGVzID0gWworICB7IHN0YXRlOidURVhUVVJFX1dSQVBfUycsICAg
ICBkZWZhdWx0OiAnUkVQRUFUJywgICAgICAgICAgICAgICAgdmFsdWUxOiAnQ0xBTVBfVE9fRURH
RScsICAgICAgICB2YWx1ZTI6ICdSRVBFQVQnICAgICAgICB9LAorICB7IHN0YXRlOidURVhUVVJF
X1dSQVBfVCcsICAgICBkZWZhdWx0OiAnUkVQRUFUJywgICAgICAgICAgICAgICAgdmFsdWUxOiAn
Q0xBTVBfVE9fRURHRScsICAgICAgICB2YWx1ZTI6ICdSRVBFQVQnICAgICAgICB9LAorICB7IHN0
YXRlOidURVhUVVJFX01BR19GSUxURVInLCBkZWZhdWx0OiAnTElORUFSJywgICAgICAgICAgICAg
ICAgdmFsdWUxOiAnTkVBUkVTVCcsICAgICAgICAgICAgICB2YWx1ZTI6ICdMSU5FQVInICAgICAg
ICB9LAorICB7IHN0YXRlOidURVhUVVJFX01JTl9GSUxURVInLCBkZWZhdWx0OiAnTkVBUkVTVF9N
SVBNQVBfTElORUFSJywgdmFsdWUxOiAnTElORUFSX01JUE1BUF9MSU5FQVInLCB2YWx1ZTI6ICdO
RUFSRVNUJyAgICAgICB9CitdOworCitmdW5jdGlvbiBhcHBseVN0YXRlcyhmbikgeworICBmb3Ig
KHZhciBzcyA9IDA7IHNzIDwgc3RhdGVzLmxlbmd0aDsgKytzcykgeworICAgIHZhciBzdGF0ZUlu
Zm8gPSBzdGF0ZXNbc3NdOworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCB0YXJnZXRzLmxlbmd0
aDsgKytpaSkgeworCSAgdmFyIHRhcmdldCA9IHRhcmdldHNbaWldOworICAgICAgZ2wuYWN0aXZl
VGV4dHVyZShnbC5URVhUVVJFMCArIGlpKTsKKyAgICAgIGZuKHRhcmdldCwgc3RhdGVJbmZvKTsK
KyAgICB9CisgIH0KK30KKworLy8gdGVzdCB0aGUgZGVmYXVsdCBzdGF0ZS4KK2FwcGx5U3RhdGVz
KGZ1bmN0aW9uKHRhcmdldCwgc3RhdGVJbmZvKSB7CisgIHZhciBhID0gJ2dsLmdldFRleFBhcmFt
ZXRlcihnbFsiJyArIHRhcmdldCArICciXSwgZ2xbIicgKyBzdGF0ZUluZm8uc3RhdGUgKyAnIl0p
JzsKKyAgdmFyIGIgPSAnZ2xbIicgKyBzdGF0ZUluZm8uZGVmYXVsdCArICciXSc7CisgIHNob3Vs
ZEJlKGEsIGIpOworfSk7CisKKy8vIHRlc3QgbmV3IHN0YXRlCithcHBseVN0YXRlcyhmdW5jdGlv
bih0YXJnZXQsIHN0YXRlSW5mbykgeworICBnbC50ZXhQYXJhbWV0ZXJpKGdsW3RhcmdldF0sIGds
W3N0YXRlSW5mby5zdGF0ZV0sIGdsW3N0YXRlSW5mby52YWx1ZTFdKTsKK30pOworCithcHBseVN0
YXRlcyhmdW5jdGlvbih0YXJnZXQsIHN0YXRlSW5mbykgeworICB2YXIgYSA9ICdnbC5nZXRUZXhQ
YXJhbWV0ZXIoZ2xbIicgKyB0YXJnZXQgKyAnIl0sIGdsWyInICsgc3RhdGVJbmZvLnN0YXRlICsg
JyJdKSc7CisgIHZhciBiID0gJ2dsWyInICsgc3RhdGVJbmZvLnZhbHVlMSArICciXSc7CisgIHNo
b3VsZEJlKGEsIGIpOworfSk7CisKKy8vIHRlc3QgZGlmZmVyZW50IHN0YXRlcyBvbiBlYWNoIHRh
cmdldC4KK2Z1bmN0aW9uIGdldFN0YXRlVmFsdWUoY291bnQsIHN0YXRlSW5mbykgeworICByZXR1
cm4gKGNvdW50ICUgMikgPyBzdGF0ZUluZm8udmFsdWUyIDogc3RhdGVJbmZvLnZhbHVlMTsKK30K
KworYXBwbHlTdGF0ZXMoZnVuY3Rpb24oKSB7CisgIHZhciBjb3VudCA9IDA7CisgIHJldHVybiBm
dW5jdGlvbih0YXJnZXQsIHN0YXRlSW5mbykgeworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2xbdGFy
Z2V0XSwgZ2xbc3RhdGVJbmZvLnN0YXRlXSwgZ2xbZ2V0U3RhdGVWYWx1ZShjb3VudCwgc3RhdGVJ
bmZvKV0pOworICAgICsrY291bnQ7CisgIH0KK30oKSk7CisKK2FwcGx5U3RhdGVzKGZ1bmN0aW9u
KCkgeworICB2YXIgY291bnQgPSAwOworICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBzdGF0ZUlu
Zm8pIHsKKyAgICB2YXIgYSA9ICdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2xbIicgKyB0YXJnZXQgKyAn
Il0sIGdsWyInICsgc3RhdGVJbmZvLnN0YXRlICsgJyJdKSc7CisgICAgdmFyIGIgPSAnZ2xbIicg
KyBnZXRTdGF0ZVZhbHVlKGNvdW50LCBzdGF0ZUluZm8pICsgJyJdJzsKKyAgICBzaG91bGRCZShh
LCBiKTsKKyAgICArK2NvdW50OworICB9OworfSgpKTsKKworZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL2dsLXRleGltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmViMTI5MTMzMTdiNTYyODYxMjRlYTY3N2FkZjg3YjBkZDAxYzc2MzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sCkBAIC0wLDAgKzEsNDQ2
IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
KyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQor
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCB0ZXhJbWFnZTJEIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMTYiIHN0eWxl
PSJ3aWR0aDogMjU2cHg7IGhlaWdodDogNDhweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorInVzZSBz
dHJpY3QiOworZGVzY3JpcHRpb24oIlRlc3QgdGV4SW1hZ2UyRCBjb252ZXJzaW9ucy4iKTsKK3Zh
ciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4
YW1wbGUiKTsKK2dsLmRpc2FibGUoZ2wuRElUSEVSKTsKK3ZhciBwcm9ncmFtID0gd3R1LnNldHVw
VGV4dHVyZWRRdWFkKGdsKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQ7CisKK2dsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7
CisKK3ZhciBpbWdVUkxzID0gWworICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0x
MjgtYWxwaGEucG5nJywKKyAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LnBuZycsCisgICcu
Li9yZXNvdXJjZXMvZ3JheS1yYW1wLWRlZmF1bHQtZ2FtbWEucG5nJywKKyAgJy4uL3Jlc291cmNl
cy9ncmF5LXJhbXAtZ2FtbWEwLjEucG5nJywKKyAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2Ft
bWExLjAucG5nJywKKyAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEyLjAucG5nJywKKyAg
Jy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAucG5nJywKKyAgJy4uL3Jlc291cmNlcy9n
cmF5LXJhbXAtZ2FtbWE5LjAucG5nJywKKyAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAucG5nJywK
KyAgJy4uL3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZycsCisgICcuLi9yZXNvdXJjZXMvM3gzLnBu
ZycsCisgICcuLi9yZXNvdXJjZXMvYmx1ZS0xeDEuanBnJywKKyAgJy4uL3Jlc291cmNlcy9yZWQt
aW5kZXhlZC5wbmcnLAorICAnLi4vcmVzb3VyY2VzL2dyZWVuLTJ4Mi0xNmJpdC5wbmcnLAorICAn
Li4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLmpwZycsCisg
ICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUucG5nJywK
KyAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jaWUtcmdiLXByb2ZpbGUucG5nJywK
KyAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcm1hdGNoLXByb2ZpbGUucG5n
JywKKyAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1lLXNyZ2ItcHJvZmlsZS5wbmcn
LAorICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNtcHRlLWMtcHJvZmlsZS5wbmcn
LAorICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNyZ2ItaWVjNjE5NjYtMi4xLXBy
b2ZpbGUucG5nJ107CisKKword3R1LmxvYWRJbWFnZXNBc3luYyhpbWdVUkxzLCBydW5UZXN0cyk7
CisKK2Z1bmN0aW9uIHJ1blRlc3RzKGltZ3MpIHsKKyAgdmFyIGxvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAidGV4Iik7CisgIGdsLnVuaWZvcm0xaShsb2MsIDApOworCisgIGds
LmRpc2FibGUoZ2wuQkxFTkQpOworICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOworCisgIHZh
ciB3aWR0aCA9IGdsLmNhbnZhcy53aWR0aDsKKyAgdmFyIGhlaWdodCA9IGdsLmNhbnZhcy5oZWln
aHQ7CisKKyAgZnVuY3Rpb24gY2hlY2tQaXhlbChidWYsIHgsIHksIGNvbG9yKSB7CisgICAgdmFy
IG9mZiA9ICh5ICogd2lkdGggKyB4KSAqIDQ7CisgICAgdmFyIG1zZyA9ICJwaXhlbCAiICsgeCAr
ICIsICIgKyB5ICsgIiBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgIGNvbG9yWzBdICsgIiwg
IiArCisgICAgICAgICAgICAgIGNvbG9yWzFdICsgIiwgIiArCisgICAgICAgICAgICAgIGNvbG9y
WzJdICsgIiwgIiArCisgICAgICAgICAgICAgIGNvbG9yWzNdICsgIiB3YXMgIiArCisgICAgICAg
ICAgICAgIGJ1ZltvZmYgKyAwXSArICIsICIgKworICAgICAgICAgICAgICBidWZbb2ZmICsgMV0g
KyAiLCAiICsKKyAgICAgICAgICAgICAgYnVmW29mZiArIDJdICsgIiwgIiArCisgICAgICAgICAg
ICAgIGJ1ZltvZmYgKyAzXTsKKworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCA0OyArK2lpKSB7
CisgICAgICBpZiAoYnVmW29mZiArIGlpXSAhPSBjb2xvcltpaV0pIHsKKyAgICAgICAgdGVzdEZh
aWxlZChtc2cpOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgfQorICAgIHRlc3RQYXNz
ZWQobXNnKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrUGl4ZWxSYW5nZShidWYsIHgsIHksIGNv
bG9yLCBhbGxvd2VkUmFuZ2UpIHsKKyAgICB2YXIgb2ZmID0gKHkgKiB3aWR0aCArIHgpICogNDsK
KyAgICB2YXIgbXNnID0gInBpeGVsICIgKyB4ICsgIiwgIiArIHkgKyAiIHNob3VsZCBiZSB3aXRo
aW4gIiArCisgICAgICAgICAgICAgIGFsbG93ZWRSYW5nZSArICIgdW5pdHMgb2YgIiArCisgICAg
ICAgICAgICAgIGNvbG9yWzBdICsgIiwgIiArCisgICAgICAgICAgICAgIGNvbG9yWzFdICsgIiwg
IiArCisgICAgICAgICAgICAgIGNvbG9yWzJdICsgIiwgIiArCisgICAgICAgICAgICAgIGNvbG9y
WzNdOworICAgIHZhciBzdWJNc2cgPSAiIHdhcyAiICsKKyAgICAgICAgICAgICAgYnVmW29mZiAr
IDBdICsgIiwgIiArCisgICAgICAgICAgICAgIGJ1ZltvZmYgKyAxXSArICIsICIgKworICAgICAg
ICAgICAgICBidWZbb2ZmICsgMl0gKyAiLCAiICsKKyAgICAgICAgICAgICAgYnVmW29mZiArIDNd
OworICAgIC8vIFdoZW4gcnVubmluZyBpbiBXZWJLaXQncyB0ZXN0IGhhcm5lc3MsIHdlIGRvbid0
IHdhbnQgdG8gcHJpbnQgdGhlCisgICAgLy8gcGl4ZWwgdmFsdWUgd2hlbiB0aGUgdGVzdCBwYXNz
ZXMsIGJlY2F1c2UgZGlmZmVyZW50IG1hY2hpbmVzIG1pZ2h0CisgICAgLy8gaGF2ZSBkaWZmZXJl
bnQgcmVzdWx0cyBhbmQgd2UgcmVjb3JkIHRoZSB0ZXh0IG91dHB1dC4KKyAgICB2YXIgaW5EdW1w
UmVuZGVyVHJlZSA9IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcjsKKyAgICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgNDsgKytpaSkgeworICAgICAgaWYgKE1hdGguYWJzKGJ1ZltvZmYgKyBpaV0g
LSBjb2xvcltpaV0pID4gYWxsb3dlZFJhbmdlKSB7CisgICAgICAgIHRlc3RGYWlsZWQobXNnICsg
c3ViTXNnKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgIH0KKyAgICB0ZXN0UGFzc2Vk
KG1zZyArIChpbkR1bXBSZW5kZXJUcmVlID8gIiIgOiBzdWJNc2cpKTsKKyAgfQorCisgIHZhciB0
ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleCk7CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1MsIGdsLkNMQU1QX1RPX0VER0UpOworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7CisKKyAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICog
NCk7CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2sgcGl4ZWxzIGFyZSBOT1QgcHJlLW11
bHRpcGxpZWQiKTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGds
LlJHQiwgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJj
ZXMvemVyby1hbHBoYS5wbmcnXSk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKKyAgd3R1LmRyYXdRdWFkKGdsKTsK
KyAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBidWYpOworCisgIHZhciBsZWZ0ID0gMDsKKyAgdmFyIG1pZGRsZSA9IE1hdGguZmxv
b3Iod2lkdGggLyAyKTsKKyAgdmFyIHJpZ2h0ID0gd2lkdGggLSAxOworICB2YXIgYm90dG9tID0g
MDsKKyAgdmFyIGNlbnRlciA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7CisgIHZhciB0b3AgPSBo
ZWlnaHQgLSAxOworICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICB0b3AsICAgIFsgIDAsICAgMCwg
ICAwLCAyNTVdKTsKKyAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgdG9wLCAgICBbMjU1LCAgIDAs
IDI1NSwgMjU1XSk7CisgIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIHRvcCwgICAgWyAgMCwgICAw
LCAyNTUsIDI1NV0pOworICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICBjZW50ZXIsIFsxMjgsIDEy
OCwgMTI4LCAyNTVdKTsKKyAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgY2VudGVyLCBbMjU1LCAy
NTUsIDI1NSwgMjU1XSk7CisgIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIGNlbnRlciwgWyAgMCwg
MjU1LCAyNTUsIDI1NV0pOworICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICBib3R0b20sIFsyNTUs
ICAgMCwgICAwLCAyNTVdKTsKKyAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgYm90dG9tLCBbMjU1
LCAyNTUsICAgMCwgMjU1XSk7CisgIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIGJvdHRvbSwgWyAg
MCwgMjU1LCAgIDAsIDI1NV0pOworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoImNoZWNrIHF1YW50
aXphdGlvbiIpOworICB2YXIgcXVhbnRJbmZvID0gWworICAgIHtmb3JtYXQ6IGdsLlJHQkEsIHR5
cGU6IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIGNvdW50czogWzI1NiwgMjU2LCAyNTYsIDI1
Nl19LAorICAgIHtmb3JtYXQ6IGdsLlJHQkEsIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80
XzQsIGNvdW50czogWyAxNiwgIDE2LCAgMTYsICAxNl19LAorICAgIHtmb3JtYXQ6IGdsLlJHQiwg
IHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81LCAgIGNvdW50czogWyAzMiwgIDY0LCAgMzIs
ICAgMV19LAorICAgIHtmb3JtYXQ6IGdsLlJHQkEsIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVf
NV81XzEsIGNvdW50czogWyAzMiwgIDMyLCAgMzIsICAgMl19XTsKKyAgZm9yICh2YXIgcXEgPSAw
OyBxcSA8IHF1YW50SW5mby5sZW5ndGg7ICsrcXEpIHsKKyAgICB2YXIgaW5mbyA9IHF1YW50SW5m
b1txcV07CisgICAgZ2wudGV4SW1hZ2UyRCgKKyAgICAgICAgZ2wuVEVYVFVSRV8yRCwgMCwgaW5m
by5mb3JtYXQsIGluZm8uZm9ybWF0LCBpbmZvLnR5cGUsCisgICAgICAgIGltZ3NbJy4uL3Jlc291
cmNlcy9ncmF5LXJhbXAtMjU2LnBuZyddKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOworICAgIHd0dS5kcmF3
UXVhZChnbCk7CisgICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworICAgIHZhciBjb3VudHMgPSBbeyB9LCB7IH0sIHsg
fSwgeyB9XTsKKyAgICB2YXIgbnVtVW5pcXVlVmFsdWVzID0gWzAsIDAsIDAsIDBdOworICAgIC8v
IENvdW50IHRoZSBudW1iZXIgb2YgdW5pcXVlIHZhbHVlcyBpbiBlYWNoIGNoYW5uZWwuCisgICAg
Zm9yICh2YXIgaWkgPSAwOyBpaSA8IHdpZHRoICogaGVpZ2h0ICogNDsgaWkgKz0gNCkgeworICAg
ICAgZm9yICh2YXIgamogPSAwOyBqaiA8IDQ7ICsramopIHsKKyAgICAgICAgdmFyIHYgPSBidWZb
aWkgKyBqal07CisgICAgICAgIGlmICghY291bnRzW2pqXVt2XSkgeworICAgICAgICAgIGNvdW50
c1tqal1bdl0gPSAxOworICAgICAgICAgICsrbnVtVW5pcXVlVmFsdWVzW2pqXTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICArK2NvdW50c1tqal1bdl07CisgICAgICAgIH0KKyAgICAgIH0K
KyAgICB9CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDQ7ICsraWkpIHsKKyAgICAgIGFzc2Vy
dE1zZyhudW1VbmlxdWVWYWx1ZXNbaWldID09IGluZm8uY291bnRzW2lpXSwKKyAgICAgICAgICAg
ICAgICAiVGhlcmUgc2hvdWxkIGJlICIgKyBpbmZvLmNvdW50c1tpaV0gKworICAgICAgICAgICAg
ICAgICIgdW5pcXVlIHZhbHVlcyBpbiBjaGFubmVsICIgKyBpaSArICIuIEZvdW5kICIgKworICAg
ICAgICAgICAgICAgIG51bVVuaXF1ZVZhbHVlc1tpaV0pOworICAgIH0KKyAgfQorCisgIGRlYnVn
KCIiKTsKKyAgZGVidWcoIkNoZWNrIHRoYXQgZ2FtbWEgc2V0dGluZ3MgZG9uJ3QgZWZmZWN0IDhi
aXQgcG5ncyIpOworICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJT
SU9OX1dFQkdMLCBnbC5OT05FKTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICAgICAgICBpbWdzWycu
Li9yZXNvdXJjZXMvZ3JheS1yYW1wLWRlZmF1bHQtZ2FtbWEucG5nJ10pOworICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIp
OworICB3dHUuZHJhd1F1YWQoZ2wpOworICB2YXIgcmVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGgg
KiBoZWlnaHQgKiA0KTsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCByZWYpOworCisgIHZhciBnYW1tYUltYWdlcyA9IFsKKyAg
ICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTAuMS5wbmcnLAorICAgICcuLi9yZXNvdXJj
ZXMvZ3JheS1yYW1wLWdhbW1hMS4wLnBuZycsCisgICAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAt
Z2FtbWEyLjAucG5nJywKKyAgICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTQuMC5wbmcn
LAorICAgICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hOS4wLnBuZyddOworICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgZ2FtbWFJbWFnZXMubGVuZ3RoOyArK2lpKSB7CisgICAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwK
KyAgICAgICAgICAgICAgICAgIGltZ3NbZ2FtbWFJbWFnZXNbaWldXSk7CisgICAgd3R1LmRyYXdR
dWFkKGdsKTsKKyAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisgICAgdmFyIHNhbWUgPSB0cnVlOworICAgIGZvciAo
dmFyIGpqID0gMDsgamogPCB3aWR0aCAqIGhlaWdodCAqIDQ7ICsramopIHsKKyAgICAgIGlmIChi
dWZbampdICE9IHJlZltqal0pIHsKKyAgICAgICAgc2FtZSA9IGZhbHNlOworICAgICAgICBicmVh
azsKKyAgICAgIH0KKyAgICB9CisgICAgYXNzZXJ0TXNnKHNhbWUsICJwaXhlbHMgc2hvdWxkIGJl
IHNhbWUgcmVnYXJkbGVzcyBvZiBnYW1tYSBzZXR0aW5ncy4iKTsKKyAgfQorCisgIGRlYnVnKCIi
KTsKKyAgZGVidWcoImNoZWNrIHBpeGVscyBhcmUgVU4gcHJlLW11bHRpcGxpZWQiKTsKKyAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IDI7ICsraWkpIHsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDEsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51
bGwpOworICAgIGlmIChpaSA9PSAwKSB7CisgICAgICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICAgIGNhbnZhczJkLndpZHRoID0gMjU2OworICAg
ICAgY2FudmFzMmQuaGVpZ2h0ID0gMTsKKyAgICAgIHZhciBjdHggPSBjYW52YXMyZC5nZXRDb250
ZXh0KCIyZCIpOworICAgICAgY3R4LmRyYXdJbWFnZShpbWdzWycuLi9yZXNvdXJjZXMvZ3JheS1y
YW1wLTI1Ni13aXRoLTEyOC1hbHBoYS5wbmcnXSwgMCwgMCk7CisgICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52
YXMyZCk7CisgICAgfSBlbHNlIHsKKyAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgICAgICAgICAg
IGltZ3NbJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LXdpdGgtMTI4LWFscGhhLnBuZyddKTsK
KyAgICB9CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKKyAgICB3dHUuZHJhd1F1YWQoZ2wpOworICAgIHZhciBi
dWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOworICAgIGdsLnJlYWRQaXhl
bHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsK
KyAgICB2YXIgbHQxMjhDb3VudCA9IFswLCAwLCAwXTsKKyAgICB2YXIgZ2UxMjhDb3VudCA9IFsw
LCAwLCAwXTsKKyAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgd2lkdGg7ICsramopIHsKKyAgICAg
IHZhciBvZmYgPSBqaiAqIDQ7CisgICAgICBmb3IgKHZhciBjYyA9IDA7IGNjIDwgMzsgKytjYykg
eworICAgICAgICBpZiAoYnVmW29mZiArIGNjXSA8IDEyOCkgeworICAgICAgICAgICsrbHQxMjhD
b3VudFtjY107CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgKytnZTEyOENvdW50W2NjXTsK
KyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICAvLyBOb3Qgc3VyZSB0aGUgZXhhY3QgY291
bnQgaGVyZSBiZWNhdXNlIGdhbW1hIGRvZXMgZWZmZWN0IGRyYXdpbmcgaW50byB0aGUKKyAgICAv
LyBjYW52YXMgYnV0IGl0IHNob3VsZCBiZSBjbG9zZSB0byA1MCUgc28gSSdsbCBwYXNzIDQ1JQor
ICAgIGZvciAodmFyIGpqID0gMDsgamogPCAzOyArK2pqKSB7CisgICAgICBhc3NlcnRNc2coZ2Ux
MjhDb3VudFtqal0gPiAyNTYgKiAwLjQ1LAorICAgICAgICAgICAgICAgICJIYWxmIHRoZSBwaXhl
bHMgaW4gY2hhbm5lbCAiICsgamogKworICAgICAgICAgICAgICAgICIgc2hvdWxkIGJlID49IDEy
OCwxMjgsMTI4LiBmb3VuZCAiICsKKyAgICAgICAgICAgICAgICAoKGdlMTI4Q291bnRbampdIC8g
MjU2KSAqIDEwMCkudG9GaXhlZCgpICsgIiUiKTsKKyAgICAgIGFzc2VydE1zZyhsdDEyOENvdW50
W2pqXSA+IDI1NiAqIDAuNDUsCisgICAgICAgICAgICAgICAgIkhhbGYgdGhlIHBpeGVscyBpbiBj
aGFubmVsICIgKyBqaiArCisgICAgICAgICAgICAgICAgIiBzaG91bGQgYmUgPCAxMjgsMTI4LDEy
OC4gZm91bmQgIiArCisgICAgICAgICAgICAgICAgKChsdDEyOENvdW50W2pqXSAvIDI1NikgKiAx
MDApLnRvRml4ZWQoKSArICIlIik7CisgICAgfQorICB9CisKKyAgZGVidWcoIiIpOworICBkZWJ1
ZygiY2hlY2sgY2FudmFzIHBpeGVscyBhcmUgVU4gcHJlLW11bHRpcGxpZWQiKTsKKyAgdmFyIGNh
bnZhczJkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgIGNhbnZhczJkLndp
ZHRoID0gMTsKKyAgY2FudmFzMmQuaGVpZ2h0ID0gMTsKKyAgdmFyIGN0eCA9IGNhbnZhczJkLmdl
dENvbnRleHQoIjJkIik7CisgIGN0eC5maWxsU3R5bGUgPSJyZ2JhKDI1NSwyNTUsMjU1LDAuNSki
OworICBjdHguZmlsbFJlY3QoMCwgMCwgMjU2LCAxKTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMyZCk7
CisgIHd0dS5kcmF3UXVhZChnbCk7CisgIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdo
dCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKyAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKKyAgY2hl
Y2tQaXhlbFJhbmdlKGJ1ZiwgMCwgMCwgWzI1NSwgMjU1LCAyNTUsIDEyN10sIDQpOworCisgIGRl
YnVnKCIiKTsKKyAgZGVidWcoImNoZWNrIGNhbnZhcyBwaXhlbHMgYXJlIHByZS1tdWx0aXBsaWVk
Iik7CisgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwg
dHJ1ZSk7CisgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQpOworICB3dHUuZHJhd1F1YWQoZ2wpOworICBn
bC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGJ1Zik7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUg
bm8gZXJyb3JzIGZyb20gc2V0dXAuIik7CisgIGNoZWNrUGl4ZWxSYW5nZShidWYsIDAsIDAsIFsx
MjcsIDEyNywgMTI3LCAxMjddLCA0KTsKKworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoImNoZWNr
IHBpeGVscyBhcmUgcHJlLW11bHRpcGxpZWQiKTsKKyAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNL
X1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0cnVlKTsKKyAgLy8gVE9ETyhnbWFuKTogdXNlIGRp
ZmZlcmVudCB0ZXh0dXJlIHRoYXQgd29uJ3QgcGFzcyBvbiBmYWlsdXJlCisgIGdsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwK
KyAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmcnXSk7Cisg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZy
b20gc2V0dXAiKTsKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCB3
aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworCisgIHZhciBz
YW1lID0gdHJ1ZTsKKyAgZm9yICh2YXIgamogPSAwOyBqaiA8IHdpZHRoICogaGVpZ2h0ICogNDsg
KytqaikgeworICAgIGlmIChidWZbampdICE9IDApIHsKKyAgICAgIHNhbWUgPSBmYWxzZTsKKyAg
ICAgIGJyZWFrOworICAgIH0KKyAgfQorICBhc3NlcnRNc2coc2FtZSwgInBpeGVscyBzaG91bGQg
YWxsIGJlIDAuIik7CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2sgcGl4ZWxzIGFyZSBm
bGlwcGVkIik7CisgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9X
RUJHTCwgZmFsc2UpOworICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0
cnVlKTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwg
Z2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvM3gz
LnBuZyddKTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSBzZXR1cCIpOworICB3dHUuZHJhd1F1YWQoZ2wpOworICBnbC5yZWFkUGl4
ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7
CisKKyAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgdG9wLCAgICBbMjU1LCAgIDAsICAgMCwgMjU1
XSk7CisgIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIHRvcCwgICAgWzI1NSwgMjU1LCAgIDAsIDI1
NV0pOworICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICB0b3AsICAgIFsyNTUsICAgMCwgICAwLCAy
NTVdKTsKKyAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgY2VudGVyLCBbMjU1LCAgIDAsIDI1NSwg
MjU1XSk7CisgIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIGNlbnRlciwgWzI1NSwgICAwLCAgIDAs
IDI1NV0pOworICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICBjZW50ZXIsIFsgIDAsIDI1NSwgICAw
LCAyNTVdKTsKKyAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgYm90dG9tLCBbICAwLCAgIDAsICAg
MCwgMjU1XSk7CisgIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIGJvdHRvbSwgWyAgMCwgICAwLCAy
NTUsIDI1NV0pOworICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICBib3R0b20sIFsyNTUsICAgMCwg
ICAwLCAyNTVdKTsKKworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJjaGVjayB1cGxvYWRpbmcgb2Yg
aW1hZ2VzIHdpdGggbm8gYWxwaGEgY2hhbm5lbCB3b3JrcyIpOworICBnbC5waXhlbFN0b3JlaShn
bC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKKyAgZ2wucGl4ZWxTdG9y
ZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmFsc2UpOworICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAg
ICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy9ibHVlLTF4MS5qcGcnXSk7CisgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsK
KyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworICBjaGVja1BpeGVsUmFuZ2UoYnVm
LCBtaWRkbGUsIGNlbnRlciwgWyAgIDAsICAgMCwgMjU1LCAyNTVdLCAxMCk7CisgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIik7CisKKyAgZGVi
dWcoIiIpOworICBkZWJ1ZygiY2hlY2sgdXBsb2FkaW5nIG9mIDE2LWJpdCBpbWFnZXMiKTsKKyAg
Z2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBmYWxzZSk7
CisgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZhbHNlKTsKKyAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURf
QllURSwKKyAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0
LnBuZyddKTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSBzZXR1cCIpOworICB3dHUuZHJhd1F1YWQoZ2wpOworICBnbC5yZWFkUGl4
ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7
CisgIGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRsZSwgY2VudGVyLCBbICAgMTUsIDEyMSwgICAw
LCAyNTVdLCAxMCk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQg
YmUgbm8gZXJyb3JzIik7CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2sgdXBsb2FkaW5n
IG9mIGltYWdlcyB3aXRoIElDQyBwcm9maWxlcyIpOworICBnbC5waXhlbFN0b3JlaShnbC5VTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKKyAgZ2wucGl4ZWxTdG9yZWkoZ2wu
VU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmFsc2UpOworICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tf
Q09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMLCBnbC5OT05FKTsKKworICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAorICAg
ICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcnNw
aW4tcHJvZmlsZS5qcGcnXSk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJT
aG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAg
Z2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBidWYpOworICAvLyBUaGUgaW1hZ2UgaXMgcmVkLiAgSG93ZXZlciwgaWYgd2UgaWdub3Jl
IHRoZSBjb2xvciBwcm9maWxlLCBpdCBpcyBibHVlLgorICBjaGVja1BpeGVsUmFuZ2UoYnVmLCBt
aWRkbGUsIGNlbnRlciwgWyAwLCAwLCAyNTUsIDI1NV0sIDEwKTsKKworICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAorICAg
ICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcnNw
aW4tcHJvZmlsZS5wbmcnXSk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJT
aG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAg
Z2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBidWYpOworICAvLyBUaGUgaW1hZ2UgaXMgcmVkLiAgSG93ZXZlciwgaWYgd2UgaWdub3Jl
IHRoZSBjb2xvciBwcm9maWxlLCBpdCBpcyBibHVlLgorICBjaGVja1BpeGVsUmFuZ2UoYnVmLCBt
aWRkbGUsIGNlbnRlciwgWyAwLCAwLCAyNTUsIDI1NV0sIDEwKTsKKworICB2YXIgaWNjUE5HcyA9
IFsKKyAgICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNpZS1yZ2ItcHJvZmlsZS5w
bmcnLAorICAgICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JtYXRjaC1wcm9m
aWxlLnBuZycsCisgICAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1lLXNyZ2ItcHJv
ZmlsZS5wbmcnLAorICAgICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtc21wdGUtYy1w
cm9maWxlLnBuZycsCisgICAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zcmdiLWll
YzYxOTY2LTIuMS1wcm9maWxlLnBuZyddOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgaWNjUE5H
cy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgYnVmMiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICog
aGVpZ2h0ICogNCk7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0Is
IGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICAgICAgICAgIGltZ3NbaWNjUE5H
c1tpaV1dKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJl
IG5vIGVycm9ycyBmcm9tIHNldHVwIik7CisgICAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGJ1ZjIpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUg
bm8gZXJyb3JzIik7CisgICAgdmFyIHNhbWUgPSB0cnVlOworICAgIGZvciAodmFyIGpqID0gMDsg
amogPCBidWYubGVuZ3RoOyArK2pqKSB7CisgICAgICBpZiAoYnVmW2pqXSAhPSBidWYyW2pqXSkg
eworICAgICAgICBzYW1lID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0K
KyAgICBhc3NlcnRNc2coc2FtZSwgInVwbG9hZGluZyBQTkdzIHdpdGggc2FtZSBkYXRhIGJ1dCB2
YXJpb3VzIElDQyBwcm9maWxlcyBzaG91bGQgZ2VuZXJhdGUgdGhlIHNhbWUgcmVzdWx0cyIpOwor
ICB9CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2sgdXBsb2FkaW5nIG9mIGluZGV4ZWQg
UE5HIGltYWdlcyIpOworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwg
Z2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291
cmNlcy9yZWQtaW5kZXhlZC5wbmcnXSk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKKyAgd3R1LmRyYXdRdWFkKGds
KTsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBidWYpOworICAvLyBUaGUgaW1hZ2Ugc2hvdWxkIGJlIHJlZC4KKyAgY2hlY2tQ
aXhlbFJhbmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgMjU1LCAwLCAwLCAyNTUgXSwgMTApOwor
CisgIGRlYnVnKCIiKQorICBkZWJ1ZygiY2hlY2sgY2FsbGluZyB0ZXhJbWFnZTJEIHdpdGggTlVM
TCBjbGVhcnMgdGhlIHRleHR1cmUiKTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0IsCisgICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3JlZC1pbmRleGVk
LnBuZyddLndpZHRoLAorICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy9yZWQtaW5k
ZXhlZC5wbmcnXS5oZWlnaHQsCisgICAgICAgICAgICAgICAgMCwgZ2wuUkdCLCBnbC5VTlNJR05F
RF9CWVRFLCBudWxsKTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3Vs
ZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIpOworICB3dHUuZHJhd1F1YWQoZ2wpOworICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGJ1Zik7CisgIC8vIFRoZSBpbWFnZSBzaG91bGQgYmUgd2hpdGUuCisgIGNoZWNrUGl4ZWxSYW5n
ZShidWYsIG1pZGRsZSwgY2VudGVyLCBbIDAsIDAsIDAsIDI1NSBdLCAxMCk7CisKKyAgZGVidWco
IiIpOworICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICBzaG91bGRCZVRydWUoInN1Y2Nl
c3NmdWxseVBhcnNlZCIpOworICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1Qg
Q09NUExFVEU8L3NwYW4+Jyk7CisgIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZi
by5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwMjVkMGIzZTFj
MzJhODQ4NTIzZDczNzdjMzIzOTczYWU3NjI4MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXBtYXAtZmJvLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCEtLQorCisvKgorKiogQ29weXJp
Z2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhl
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5k
IHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hl
ZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioK
KyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiog
TUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVS
SUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgaWYgbWlwbWFwIGdlbmVyYXRp
b24gb24gYSB0ZXh0dXJlIGZpbGxlZCBieSBhbiBGQk8gd29ya3MgY29ycmVjdGx5PC90aXRsZT4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+IDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFt
cGxlIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorInVzZSBzdHJp
Y3QiOworZnVuY3Rpb24gaW5pdCgpeworICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKyAg
ICBkZXNjcmlwdGlvbigpOworCisgICAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhh
bXBsZSIpOworICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKKwor
ICAgIC8vIHNldHVwIHJlbmRlciB0YXJnZXQgdGV4dHVyZSAvLworICAgIHZhciB0ZXh0dXJlID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRl
eHR1cmUpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5MSU5FQVIpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7CisgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIDIsIDIsIDAsIGdsLlJHQiwg
Z2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgbnVsbCk7CisgICAgICAgICAgICAgICAgCisgICAgLy8gc2V0dXAgZnJhbWVidWZmZXIgLy8K
KyAgICB2YXIgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKKyAgICBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7CisgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Z2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXh0
dXJlLCAwKTsKKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwor
ICAgICAgICAgICAgICAgIAorICAgIC8vIGZpbGwgdGhlIGZyYW1lYnVmZmVyIC8vCisgICAgZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOworICAgIGdsLmNsZWFyQ29sb3Io
MSwgMCwgMSwgMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisgICAgZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAvLyBnZW5lcmF0ZSBtaXBtYXAgLy8KKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXh0dXJlKTsKKyAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKKwor
ICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKKyAgICAgICAgICAgICAgICAK
KyAgICAvLyByZWFkYmFjayAvLworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgWzI1NSwgMCwgMjU1
LCAyNTVdKTsKK30KKworaW5pdCgpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3Lmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjgxMjgwYTFkYTM2ZGU2NDg4MTc4MmY3NzFjODU1NmViZWU3NDA1Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbApAQCAtMCwwICsxLDI1OSBAQAorPCEtLQorCisvKgor
KiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBN
YXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisq
KiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVy
aWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJl
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJF
U1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisq
KiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g
VEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
KyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCdWZXJpZmllcyB0ZXhJbWFnZTJEIGFuZCB0ZXhT
dWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEFycmF5QnVmZmVyVmlldycpOworCit2YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSBudWxsOwordmFyIHRleHR1cmVMb2MgPSBudWxs
OwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworCitmdW5jdGlvbiByb3VuZFVwVG9B
bGlnbm1lbnQodmFsdWUsIGFsaWdubWVudCkgeworICByZXR1cm4gTWF0aC5mbG9vcigodmFsdWUg
KyBhbGlnbm1lbnQgLSAxKSAvIGFsaWdubWVudCkgKiBhbGlnbm1lbnQ7Cit9CisKK2Z1bmN0aW9u
IGdlbmVyYXRlUkdCQURhdGEodHlwZSwgdW5wYWNrQWxpZ25tZW50LCBzb3VyY2VEYXRhLCB3aWR0
aCwgaGVpZ2h0KQoreworICAgIHZhciBudW1Db2xvcnMgPSBzb3VyY2VEYXRhLmxlbmd0aCAvIDQ7
CisgICAgdmFyIGNvbG9yT2Zmc2V0ID0gZnVuY3Rpb24oeSkgeworICAgICAgcmV0dXJuIDQgKiBN
YXRoLmZsb29yKHkgKiBudW1Db2xvcnMgLyBoZWlnaHQpOworICAgIH07CisKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0JZVEU6IHsKKyAgICAgICAgdmFyIHJvd1dp
ZHRoID0gcm91bmRVcFRvQWxpZ25tZW50KHdpZHRoICogNCwgdW5wYWNrQWxpZ25tZW50KTsKKyAg
ICAgICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShoZWlnaHQgKiByb3dXaWR0aCk7CisgICAg
ICAgIGZvciAodmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKKyAgICAgICAgICAgIHZhciBp
bmRleCA9IHkgKiByb3dXaWR0aDsKKyAgICAgICAgICAgIHZhciBvZmZzZXQgPSBjb2xvck9mZnNl
dCh5KTsKKyAgICAgICAgICAgIGZvciAodmFyIGVsZW1lbnQgPSAwOyBlbGVtZW50IDwgd2lkdGgg
KiA0OyArK2VsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICBkYXRhW2luZGV4ICsgZWxlbWVudF0g
PSBzb3VyY2VEYXRhW29mZnNldCArIGVsZW1lbnQgJSA0XTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisgICAgY2FzZSBnbC5VTlNJR05FRF9T
SE9SVF80XzRfNF80OiB7CisgICAgICAgIHZhciByb3dXaWR0aCA9IHJvdW5kVXBUb0FsaWdubWVu
dCh3aWR0aCAqIDIsIHVucGFja0FsaWdubWVudCkgLyAyOworICAgICAgICB2YXIgZGF0YSA9IG5l
dyBVaW50MTZBcnJheShoZWlnaHQgKiByb3dXaWR0aCk7CisgICAgICAgIGZvciAodmFyIHkgPSAw
OyB5IDwgaGVpZ2h0OyArK3kpIHsKKyAgICAgICAgICAgIHZhciBvZmZzZXQgPSBjb2xvck9mZnNl
dCh5KTsKKyAgICAgICAgICAgIGZvciAodmFyIHggPSAwOyB4IDwgd2lkdGg7ICsreCkgeworICAg
ICAgICAgICAgICAgIHZhciBpbmRleCA9IHkgKiByb3dXaWR0aCArIHg7CisgICAgICAgICAgICAg
ICAgZGF0YVtpbmRleF0gPSAoKChzb3VyY2VEYXRhW29mZnNldCArIDBdICYgMHhGMCkgPDwgOCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgMV0g
JiAweEYwKSA8PCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0
YVtvZmZzZXQgKyAyXSAmIDB4RjApID4+IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgKChzb3VyY2VEYXRhW29mZnNldCArIDNdICYgMHhGMCkgPj4gNCkpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKyAgICBjYXNlIGdsLlVO
U0lHTkVEX1NIT1JUXzVfNV81XzE6IHsKKyAgICAgICAgdmFyIHJvd1dpZHRoID0gcm91bmRVcFRv
QWxpZ25tZW50KHdpZHRoICogMiwgdW5wYWNrQWxpZ25tZW50KSAvIDI7CisgICAgICAgIHZhciBk
YXRhID0gbmV3IFVpbnQxNkFycmF5KGhlaWdodCAqIHJvd1dpZHRoKTsKKyAgICAgICAgZm9yICh2
YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgeworICAgICAgICAgICAgdmFyIG9mZnNldCA9IGNv
bG9yT2Zmc2V0KHkpOworICAgICAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPCB3aWR0aDsgKyt4
KSB7CisgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0geSAqIHJvd1dpZHRoICsgeDsKKyAgICAg
ICAgICAgICAgICBkYXRhW2luZGV4XSA9ICgoKHNvdXJjZURhdGFbb2Zmc2V0ICsgMF0gJiAweEY4
KSA8PCA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0YVtvZmZz
ZXQgKyAxXSAmIDB4RjgpIDw8IDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChz
b3VyY2VEYXRhW29mZnNldCArIDJdICYgMHhGOCkgPj4gMikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgM10gJiAweDgwKSA+PiA3KSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorICAgIH0K
K30KKworZnVuY3Rpb24gdHlwZVRvU3RyaW5nKHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBnbC5VTlNJR05FRF9CWVRFOiAgICAgICAgICAgcmV0dXJuICdVTlNJR05FRF9C
WVRFJzsKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6ICByZXR1cm4gJ1VOU0lH
TkVEX1NIT1JUXzVfNV81XzEnOworICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNDog
IHJldHVybiAnVU5TSUdORURfU0hPUlRfNF80XzRfNCc7CisgICAgfQorICAgIHJldHVybiAnVW5r
bm93biB0eXBlICcgKyB0eXBlOworfQorCitmdW5jdGlvbiBydW5PbmVJdGVyYXRpb24odXNlVGV4
U3ViSW1hZ2UyRCwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBo
YSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBleHRyYUNvbG9yKQoreworICAgIGRlYnVnKCdUZXN0
aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJEJyA6ICd0ZXhJbWFnZTJE
JykgKworICAgICAgICAgICcgd2l0aCB0eXBlPScgKyB0eXBlVG9TdHJpbmcodHlwZSkgKworICAg
ICAgICAgICcsIHVucGFja0FsaWdubWVudD0nICsgdW5wYWNrQWxpZ25tZW50ICsKKyAgICAgICAg
ICAnLCBmbGlwWT0nICsgZmxpcFkgKyAnLCBwcmVtdWx0aXBseUFscGhhPScgKyBwcmVtdWx0aXBs
eUFscGhhKTsKKyAgICBnbC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7CisgICAg
Z2wuY2xlYXJDb2xvcigwLCAwLCAwLCAxLjApOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgICAvLyBFbmFibGUgd3JpdGVzIHRvIHRo
ZSBSR0IgY2hhbm5lbHMKKyAgICBnbC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2Up
OworICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIC8vIEJpbmQgdGhl
IHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXh0dXJlKTsKKyAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJzCisgICAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5F
QVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdF
KTsKKyAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycworICAgIGdsLnBpeGVsU3Rv
cmVpKGdsLlVOUEFDS19BTElHTk1FTlQsIHVucGFja0FsaWdubWVudCk7CisgICAgZ2wucGl4ZWxT
dG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmxpcFkpOworICAgIGdsLnBpeGVsU3RvcmVp
KGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgcHJlbXVsdGlwbHlBbHBoYSk7Cisg
ICAgLy8gR2VuZXJhdGUgdGhlIGRhdGEKKyAgICB2YXIgc291cmNlRGF0YSA9IFsgMjU1LCAgIDAs
ICAgMCwgMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAwLCAgIDI1NSwgICAwLCAgIDAgXTsK
KyAgICB2YXIgdGV4V2lkdGggPSA1OyAgIC8vIHRoaXMgbXVzdCBiZSBtb2QgNCArIDEgdG8gdGVz
dCB1bnBhY2tBbGlnbm1lbnQKKyAgICB2YXIgdGV4SGVpZ2h0ID0gMTY7CisgICAgdmFyIGRhdGEg
PSBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdubWVudCwgc291cmNlRGF0YSwgdGV4
V2lkdGgsIHRleEhlaWdodCk7CisgICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1Ip
CisgICAgICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGJlZm9yZSB0ZXh0dXJlIHVwbG9hZCIpOwor
ICAgIC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQorICAgIGlmICh1c2VUZXhT
dWJJbWFnZTJEKSB7CisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sg
Zmlyc3QKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB0
ZXhXaWR0aCwgdGV4SGVpZ2h0LCAwLAorICAgICAgICAgICAgICAgICAgICAgIGdsLlJHQkEsIHR5
cGUsIG51bGwpOworICAgICAgICBpZiAoZ2wuZ2V0RXJyb3IoKSAhPSBnbC5OT19FUlJPUikKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGFmdGVyIHRleEltYWdlMkQobnVsbCkiKTsK
KyAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0ZXhXaWR0
aCwgdGV4SGVpZ2h0LCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKKyAgICAgICAgaWYgKGdsLmdldEVy
cm9yKCkgIT0gZ2wuTk9fRVJST1IpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJvciBh
ZnRlciB0ZXhTdWJJbWFnZTJEIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCAwLCBnbC5S
R0JBLCB0eXBlLCBkYXRhKTsKKyAgICAgICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJS
T1IpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJvciBhZnRlciB0ZXhJbWFnZTJEIik7
CisgICAgfQorCisgICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVu
aXQgMAorICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKKyAgICAvLyBEcmF3IHRoZSB0
cmlhbmdsZXMKKyAgICB3dHUuZHJhd1F1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKKworICAgIC8v
IENoZWNrIHRoZSB0b3AgcGl4ZWwgYW5kIGJvdHRvbSBwaXhlbCBhbmQgbWFrZSBzdXJlIHRoZXkg
aGF2ZQorICAgIC8vIHRoZSByaWdodCBjb2xvci4KKyAgICB2YXIgdGVzdFdpZHRoICA9IGdsLmRy
YXdpbmdCdWZmZXJXaWR0aDsKKyAgICB2YXIgdGVzdEhlaWdodCA9IGdsLmRyYXdpbmdCdWZmZXJI
ZWlnaHQgLyAyOworICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHRlc3RXaWR0aCwg
dGVzdEhlaWdodCwgYm90dG9tQ29sb3IsICJib3R0b20gcGl4ZWwgc2hvdWxkIGJlICIgKyBib3R0
b21Db2xvcik7CisgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgdGVzdEhlaWdodCwgdGVz
dFdpZHRoLCB0ZXN0SGVpZ2h0LCB0b3BDb2xvciwgInRvcCBwaXhlbCBzaG91bGQgYmUgIiArIHRv
cENvbG9yKTsKKworICAgIC8vIENoYW5nZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlLgorICAgIHZhciBw
YXJ0V2lkdGggPSA4OworICAgIHZhciBwYXJ0SGVpZ2h0ID0gMTY7CisgICAgLy8gbWFrZSB0ZXh0
dXJlIGRvdWJsZSByZXMgb2YgcGFydC4KKyAgICB2YXIgZGF0YSA9IGdlbmVyYXRlUkdCQURhdGEo
dHlwZSwgdW5wYWNrQWxpZ25tZW50LCBzb3VyY2VEYXRhLCBwYXJ0V2lkdGggKiAyLCBwYXJ0SGVp
Z2h0ICogMik7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBw
YXJ0V2lkdGggKiAyLCBwYXJ0SGVpZ2h0ICogMiwgMCwgZ2wuUkdCQSwgdHlwZSwgZGF0YSk7Cisg
ICAgLy8gc2V0IHBhcnQuCisgICAgdmFyIGV4dHJhRGF0YSA9IFsKKyAgICAgIDI1NSwgICAwLCAg
IDAsIDI1NSwKKyAgICAgICAgMCwgICAwLCAyNTUsICAgMAorICAgIF07CisgICAgdmFyIGRhdGEg
PSBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdubWVudCwgZXh0cmFEYXRhLCBwYXJ0
V2lkdGgsIHBhcnRIZWlnaHQpOworICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgMCwgMCwgcGFydFdpZHRoLCBwYXJ0SGVpZ2h0LCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKKyAg
ICB3dHUuZHJhd1F1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKKyAgICB2YXIgaGFsZldpZHRoICA9
IGdsLmRyYXdpbmdCdWZmZXJXaWR0aCAvIDI7CisgICAgdmFyIGhhbGZIZWlnaHQgPSBnbC5kcmF3
aW5nQnVmZmVySGVpZ2h0IC8gMjsKKyAgICB2YXIgcXVhcnRlckhlaWdodCA9IGdsLmRyYXdpbmdC
dWZmZXJIZWlnaHQgLyA0OworICAgIHZhciByZWQgPSBbMjU1LCAwLCAwLCAyNTVdOworICAgIHZh
ciB0Y29sb3IwID0gZmxpcFkgPyBleHRyYUNvbG9yIDogcmVkOworICAgIHZhciB0Y29sb3IxID0g
ZmxpcFkgPyByZWQgOiBleHRyYUNvbG9yOworICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAs
IDAsIGhhbGZXaWR0aCwgcXVhcnRlckhlaWdodCwgdGNvbG9yMCwgImJvdHRvbSBsZWZ0IGJvdHRv
bSBwaXhlbHMgc2hvdWxkIGJlICIgKyB0Y29sb3IwKTsKKyAgICB3dHUuY2hlY2tDYW52YXNSZWN0
KGdsLCAwLCBxdWFydGVySGVpZ2h0LCBoYWxmV2lkdGgsIHF1YXJ0ZXJIZWlnaHQsIHRjb2xvcjEs
ICJib3R0b20gbGVmdCB0b3AgcGl4ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMSk7CisgICAgd3R1
LmNoZWNrQ2FudmFzUmVjdChnbCwgaGFsZldpZHRoLCAwLCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQs
IGJvdHRvbUNvbG9yLCAiYm90dG9tIHJpZ2h0IHBpeGVscyBzaG91bGQgYmUgIiArIGJvdHRvbUNv
bG9yKTsKKyAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBoYWxmSGVpZ2h0LCB0ZXN0V2lk
dGgsIGhhbGZIZWlnaHQsIHRvcENvbG9yLCAidG9wIHBpeGVscyBzaG91bGQgYmUgIiArIHRvcENv
bG9yKTsKKyAgICAvLyBzZXQgZmFyIGNvcm5lci4KKyAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIHBhcnRXaWR0aCwgcGFydEhlaWdodCwgcGFydFdpZHRoLCBwYXJ0SGVpZ2h0
LCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKKyAgICB3dHUuZHJhd1F1YWQoZ2wsIFswLCAwLCAwLCAy
NTVdKTsKKyAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBoYWxmV2lkdGgsIHF1YXJ0
ZXJIZWlnaHQsIHRjb2xvcjAsICJib3R0b20gbGVmdCBib3R0b20gcGl4ZWxzIHNob3VsZCBiZSAi
ICsgdGNvbG9yMCk7CisgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgcXVhcnRlckhlaWdo
dCwgaGFsZldpZHRoLCBxdWFydGVySGVpZ2h0LCB0Y29sb3IxLCAiYm90dG9tIGxlZnQgdG9wIHBp
eGVscyBzaG91bGQgYmUgIiArIHRjb2xvcjEpOworICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2ws
IGhhbGZXaWR0aCwgMCwgaGFsZldpZHRoLCBoYWxmSGVpZ2h0LCBib3R0b21Db2xvciwgImJvdHRv
bSBsZWZ0IHBpeGVscyBzaG91bGQgYmUgIiArIGJvdHRvbUNvbG9yKTsKKyAgICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCAwLCBoYWxmSGVpZ2h0LCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQsIHRvcENv
bG9yLCAidG9wIHJpZ2h0IHBpeGVscyBzaG91bGQgYmUgIiArIHRvcENvbG9yKTsKKyAgICB3dHUu
Y2hlY2tDYW52YXNSZWN0KGdsLCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQsIGhhbGZXaWR0aCwgcXVh
cnRlckhlaWdodCwgdGNvbG9yMCwgInRvcCByaWdodCBib3R0b20gcGl4ZWxzIHNob3VsZCBiZSAi
ICsgdGNvbG9yMCk7CisgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgaGFsZldpZHRoLCBoYWxm
SGVpZ2h0ICsgcXVhcnRlckhlaWdodCwgaGFsZldpZHRoLCBxdWFydGVySGVpZ2h0LCB0Y29sb3Ix
LCAidG9wIHJpZ2h0IHRvcCBwaXhlbHMgc2hvdWxkIGJlICIgKyB0Y29sb3IxKTsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlZCA9IFsyNTUsIDAsIDAsIDI1NV07CisgICAg
dmFyIGdyZWVuID0gWzAsIDI1NSwgMCwgMjU1XTsKKyAgICB2YXIgYmx1ZSA9IFswLCAwLCAyNTUs
IDI1NV07CisgICAgdmFyIHJlZFByZW11bHRpcGx5QWxwaGEgPSBbMjU1LCAwLCAwLCAyNTVdOwor
ICAgIHZhciBncmVlblByZW11bHRpcGx5QWxwaGEgPSBbMCwgMCwgMCwgMjU1XTsKKyAgICB2YXIg
Ymx1ZVByZW11bHRpcGx5QWxwaGEgPSBbMCwgMCwgMCwgMjU1XTsKKworICAgIHZhciB0eXBlcyA9
IFsgZ2wuVU5TSUdORURfQllURSwgZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMSwgZ2wuVU5TSUdO
RURfU0hPUlRfNF80XzRfNCBdOworICAgIHZhciB1bnBhY2tBbGlnbm1lbnRzID0gWyAxLCAyLCA0
LCA4IF07CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIHZhciB0eXBlID0gdHlwZXNbaV07CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
dW5wYWNrQWxpZ25tZW50cy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgdmFyIHVucGFja0Fs
aWdubWVudCA9IHVucGFja0FsaWdubWVudHNbal07CisgICAgICAgICAgICBydW5PbmVJdGVyYXRp
b24oZmFsc2UsIHR5cGUsIHVucGFja0FsaWdubWVudCwgdHJ1ZSwgZmFsc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVkLCBncmVlbiwgYmx1ZSk7CisgICAgICAgICAgICBydW5PbmVJ
dGVyYXRpb24oZmFsc2UsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIGZhbHNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuLCByZWQsIGJsdWUpOworICAgICAgICAgICAg
cnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIHRydWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5Q
cmVtdWx0aXBseUFscGhhLCBibHVlUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICBydW5P
bmVJdGVyYXRpb24oZmFsc2UsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIHRydWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVt
dWx0aXBseUFscGhhLCBibHVlUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICBydW5PbmVJ
dGVyYXRpb24odHJ1ZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCB0cnVlLCBmYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWQsIGdyZWVuLCBibHVlKTsKKyAgICAgICAgICAgIHJ1
bk9uZUl0ZXJhdGlvbih0cnVlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIGZhbHNlLCBmYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVlbiwgcmVkLCBibHVlKTsKKyAgICAgICAg
ICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIHRy
dWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3Jl
ZW5QcmVtdWx0aXBseUFscGhhLCBibHVlUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICBy
dW5PbmVJdGVyYXRpb24odHJ1ZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmYWxzZSwgdHJ1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVlblByZW11bHRpcGx5QWxwaGEsIHJlZFBy
ZW11bHRpcGx5QWxwaGEsIGJsdWVQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgfQorICAgIH0K
KworfQorCit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Cit2YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CisKK3RleHR1cmVMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOworCitydW5UZXN0KCk7CitnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIpOwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0
YS1yZ2I1NjUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
aW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDlmMzkwZTJhZjkwODQ0NDllZGI1
MjY4ZWY3NTYxNTg5ZWUyYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYjU2NS5odG1sCkBAIC0wLDAgKzEs
NTAgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
CisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZnVuY3Rpb24g
dGVzdFByb2xvZ3VlKGdsKSB7CisgICAgcmV0dXJuIHRydWU7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0IiLCAiVU5TSUdORURfU0hPUlRfNV82
XzUiLCB0ZXN0UHJvbG9ndWUpKCknPgorPGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMSIg
aGVpZ2h0PSIyIj48L2NhbnZhcz4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIxIiBoZWln
aHQ9IjIiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2Jh
NDQ0NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMWQyNDNmNWM2Y2ZjN2E2Yzg0ODJjZWJmYjJjNGI2OTYx
NTAxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IS0t
CisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioK
KyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAor
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Z1bmN0aW9uIHRlc3RQcm9sb2d1
ZShnbCkgeworICAgIHJldHVybiB0cnVlOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9TSE9SVF80XzRfNF80IiwgdGVz
dFByb2xvZ3VlKSgpJz4KKzxjYW52YXMgaWQ9InRleGNhbnZhcyIgd2lkdGg9IjEiIGhlaWdodD0i
MiI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48
L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTU1NTEuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YmJkMDFkNmMyY2M2ZWZhNjQwN2Q2NmRmMWVlNjNkMGE4YjMwMjk3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCEtLQorCisvKgor
KiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBN
YXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisq
KiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVy
aWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJl
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJF
U1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisq
KiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g
VEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitmdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdn
ZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNV81XzVfMSIsIHRlc3RQcm9sb2d1
ZSkoKSc+Cis8Y2FudmFzIGlkPSJ0ZXhjYW52YXMiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2Fu
dmFzPgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlhNDY4MGI4YTg2
YzY3Mjg1OGFhOWY3YzQzYTRhMmQ4NWVhOGFmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCkBAIC0wLDAg
KzEsNTAgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioK
KyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
aW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZnVuY3Rp
b24gdGVzdFByb2xvZ3VlKGdsKSB7CisgICAgcmV0dXJuIHRydWU7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVEX0JZVEUi
LCB0ZXN0UHJvbG9ndWUpKCknPgorPGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMSIgaGVp
Z2h0PSIyIj48L2NhbnZhcz4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIxIiBoZWlnaHQ9
IjIiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdmNzBlMWQxZDVhYjY0
NGE2YzNjNmFiY2UwMDQxNGQ2MGFmZmRmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MuaHRtbApAQCAtMCwwICsxLDY0IEBACis8
IS0tCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoq
CisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
KyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCistLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworZGVzY3JpcHRpb24oJ1Rlc3RzIHBhc3NpbmcgYSB2
ZWM0IHRvIGEgdW5pZm9ybSBhbmQgYSBjYW52YXMgdG8gdGV4SW1hZ2UyRCcpOworCit2YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCk7Cit2YXIg
ZmxvYXRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi9yZXNvdXJjZXMv
ZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVy
LmZyYWciKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJnbC51c2VQcm9ncmFtKGZsb2F0UHJvZ3JhbSki
KTsKK3ZhciBmdmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJm
dmFsNCIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CitzaG91bGRCZVVuZGVm
aW5lZCgiZ2wudW5pZm9ybTRmdihmdmFsNExvYywgbmV3IEZsb2F0MzJBcnJheShbMC4xLCAwLjIs
IDAuNCwgMS4wXSkpOyIpOworCit2YXIgdG1wY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIik7Cit0bXBjYW52YXMud2lkdGggPSAyOwordG1wY2FudmFzLmhlaWdodCA9IDI7
Cit2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKSIpOworc2hvdWxkQmVVbmRlZmlu
ZWQoImdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgdG1wY2FudmFzKSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTE0NmM4YzY4M2MyNjZkYWUyOWExNGRjMjM1NzdmNzFiODQ1MTI4ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13ZWJnbC5odG1sCkBAIC0wLDAgKzEs
ODcgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
CisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIHRleEltYWdlMkQgZnJvbSBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjU2IiBoZWln
aHQ9IjE2IiBzdHlsZT0id2lkdGg6IDI1NnB4OyBoZWlnaHQ6IDQ4cHg7Ij48L2NhbnZhcz4KKzxj
YW52YXMgaWQ9InNvdXJjZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOiAy
NTZweDsgaGVpZ2h0OiA0OHB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citk
ZXNjcmlwdGlvbigiVGVzdCB0ZXhJbWFnZTJEIGZyb20gYSB3ZWJnbCBjYW52YXMuIik7Cit2YXIg
d3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFt
cGxlIik7CitnbC5kaXNhYmxlKGdsLkRJVEhFUik7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRl
eHR1cmVkUXVhZChnbCk7Cit2YXIgZ2wxID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgic291cmNlIik7
CitnbDEuZGlzYWJsZShnbC5ESVRIRVIpOworCitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOworZ2xFcnJvclNob3VsZEJl
KGdsMSwgZ2wxLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwor
CitnbC5kaXNhYmxlKGdsLkJMRU5EKTsKK2dsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7CisKK2ds
MS5jbGVhckNvbG9yKDEuMCwgMC4wLCAwLjAsIDEuMCk7CitnbDEuY2xlYXIoZ2wxLkNPTE9SX0JV
RkZFUl9CSVQpOworCit2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKK2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Z2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGdsMS5jYW52YXMpOworZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURH
RSk7CitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBn
bC5DTEFNUF9UT19FREdFKTsKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Cit3dHUuZHJhd1F1YWQoZ2wp
OworCit3dHUuY2hlY2tDYW52YXMoZ2wsIFsyNTUsIDAsIDAsIDI1NV0sICJDYW52YXMgc2hvdWxk
IGJlIHJlZCIpOworCitnbDEuY2xlYXJDb2xvcigwLjAsIDEuMCwgMC4wLCAxLjApOworZ2wxLmNs
ZWFyKGdsMS5DT0xPUl9CVUZGRVJfQklUKTsKKworZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwgZ2wxLmNhbnZhcyk7Cit3dHUu
ZHJhd1F1YWQoZ2wpOworCit3dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJD
YW52YXMgc2hvdWxkIGJlIGdyZWVuIik7CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc3MWVmNjA5
ZDMyMWNjZDQwMDVlY2M2NzhkMDQ0YWVmYjgxZTZlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sCkBAIC0wLDAgKzEsNzQ3IEBA
Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvcG5nbGliLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorInVzZSBz
dHJpY3QiOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGdsID0gbnVsbDsKK3ZhciB0
ZXh0dXJlTG9jID0gbnVsbDsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKworLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisvLyBIYXJuZXNzCisKK3ZhciB0ZXN0Q2FzZXMgPSBbXTsKKwordmFyIERh
dGFNb2RlID0geworICAgIElNQUdFOiAwLAorICAgIElNQUdFX0RBVEE6IDEsCisKKyAgICBOVU1f
SFRNTF9NT0RFUzogMiwKKworICAgIFJBV19EQVRBOiAyLAorCisgICAgLy8gVGhpcyBtdXN0IHJl
bWFpbiB0aGUgbGFzdCBtb2RlLgorICAgIE5VTV9NT0RFUzogMworfTsKKworZnVuY3Rpb24gaW5p
dCgpCit7CisgICAgaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOworCisgICAgZGVz
Y3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMg
dGFraW5nIGJvdGggSFRNTCBhbmQgdXNlci1zcGVjaWZpZWQgZGF0YSB3aXRoIGFsbCBmb3JtYXQv
dHlwZSBjb21iaW5hdGlvbnMnKTsKKworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZXhhbXBsZSIpOworICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMp
OworICAgIGdsLmRpc2FibGUoZ2wuRElUSEVSKTsKKyAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1
cFRleHR1cmVkUXVhZChnbCk7CisKKyAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOworICAgIGds
LmNsZWFyRGVwdGgoMSk7CisgICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7CisKKyAgICB0ZXh0dXJl
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKKworICAgIGluaXRp
YWxpemVUZXN0cygpOworfQorCitmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQoreworICAgIC8v
IFZlcmlmeSB0aGF0IHVwbG9hZGluZyB0byBwYWNrZWQgcGl4ZWwgZm9ybWF0cyBwZXJmb3JtcyB0
aGUKKyAgICAvLyByZXF1aXJlZCBjb252ZXJzaW9uIGFuZCBhc3NvY2lhdGVkIGxvc3Mgb2YgcHJl
Y2lzaW9uLgorICAgIGZvciAodmFyIGRhdGFNb2RlID0gMDsgZGF0YU1vZGUgPCBEYXRhTW9kZS5O
VU1fSFRNTF9NT0RFUzsgKytkYXRhTW9kZSkgeworICAgICAgICBmb3IgKHZhciB1c2VUZXhTdWJJ
bWFnZTJEID0gMDsgdXNlVGV4U3ViSW1hZ2UyRCA8IDI7ICsrdXNlVGV4U3ViSW1hZ2UyRCkgewor
ICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBk
YXRhTW9kZSwKKyAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1Yklt
YWdlMkQsCisgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDEsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2Fs
ZVJhbXAsCisgICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogZmFsc2UsCisgICAgICAg
ICAgICAgICAgZm9ybWF0OiBnbC5SR0JBLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lH
TkVEX0JZVEUsCisgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VC
eU5vTW9yZVRoYW4sCisgICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxLAorICAgICAgICAgICAg
ICAgIG51bU9jY3VycmVuY2VzOiAxLAorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUkdC
QS9VTlNJR05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRhIgor
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7CisgICAgICAgICAg
ICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAorICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdl
MkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKKyAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAorICAg
ICAgICAgICAgICAgIGhlaWdodDogMSwKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVy
YXRlT3BhcXVlR3JheXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhh
OiBmYWxzZSwKKyAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQkEsCisgICAgICAgICAgICAg
ICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwKKyAgICAgICAgICAgICAgICB2ZXJp
ZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5QXRMZWFzdCwKKyAgICAgICAgICAgICAgICB0aHJl
c2hvbGQ6IDE1LAorICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAxMCwKKyAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbjogIlJHQkEvVU5TSUdORURfU0hPUlRfNF80XzRfNCBtdXN0IGRy
b3AgbG93IGZvdXIgYml0cyBvZiBwcmVjaXNpb24iCisgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRlc3RDYXNlcy5wdXNoKHsKKyAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUs
CisgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAor
ICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAor
ICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2NhbGVSYW1wLAor
ICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAorICAgICAgICAgICAgICAg
IGZvcm1hdDogZ2wuUkdCQSwKKyAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9S
VF81XzVfNV8xLAorICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVsc0luY3JlYXNl
QnlBdExlYXN0LAorICAgICAgICAgICAgICAgIHRocmVzaG9sZDogNywKKyAgICAgICAgICAgICAg
ICBudW1PY2N1cnJlbmNlczogMjAsCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0JB
L1VOU0lHTkVEX1NIT1JUXzVfNV81XzEgbXVzdCBkcm9wIGxvdyB0aHJlZSBiaXRzIG9mIHByZWNp
c2lvbiIKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAg
ICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAgICAgICAgICAgICB1c2VUZXhT
dWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAgd2lkdGg6IDI1
NiwKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9y
OiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCisgICAgICAgICAgICAgICAgcHJlbXVsdGlw
bHlBbHBoYTogZmFsc2UsCisgICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0IsCisgICAgICAg
ICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICAgICAgICB2ZXJpZmll
cjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5Tm9Nb3JlVGhhbiwKKyAgICAgICAgICAgICAgICB0aHJl
c2hvbGQ6IDEsCisgICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDEsCisgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICJSR0IvVU5TSUdORURfQllURSBzaG91bGQgbWFpbnRhaW4gZnVs
bCBwcmVjaXNpb24gb2YgZGF0YSIKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdENh
c2VzLnB1c2goeworICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAgICAg
ICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAg
ICAgICAgd2lkdGg6IDI1NiwKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCisgICAgICAgICAg
ICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCisgICAgICAgICAg
ICAgICAgcHJlbXVsdGlwbHlBbHBoYTogZmFsc2UsCisgICAgICAgICAgICAgICAgZm9ybWF0OiBn
bC5SR0IsCisgICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV82XzUsCisg
ICAgICAgICAgICAgICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeUF0TGVhc3QsCisg
ICAgICAgICAgICAgICAgdGhyZXNob2xkOiAzLAorICAgICAgICAgICAgICAgIG51bU9jY3VycmVu
Y2VzOiAyMCwKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlJHQi9VTlNJR05FRF9TSE9S
VF81XzZfNSBtdXN0IGRyb3AgbG93IHR3byBvciB0aHJlZSBiaXRzIG9mIHByZWNpc2lvbiIKKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAgICAgICAgICAg
ICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJE
OiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDEsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0
ZVRyYW5zbHVjZW50R3JheXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFs
cGhhOiBmYWxzZSwKKyAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLkFMUEhBLAorICAgICAgICAg
ICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgICAgICAgdmVyaWZpZXI6
IGFscGhhQ2hhbm5lbEluY3JlYXNlc0J5Tm9Nb3JlVGhhbiwKKyAgICAgICAgICAgICAgICB0aHJl
c2hvbGQ6IDEsCisgICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDEsCisgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICJBTFBIQS9VTlNJR05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBm
dWxsIHByZWNpc2lvbiBvZiBkYXRhIgorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0
Q2FzZXMucHVzaCh7CisgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAorICAgICAg
ICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKKyAgICAgICAg
ICAgICAgICB3aWR0aDogMjU2LAorICAgICAgICAgICAgICAgIGhlaWdodDogMSwKKyAgICAgICAg
ICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxlUmFtcCwKKyAgICAgICAg
ICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBmYWxzZSwKKyAgICAgICAgICAgICAgICBmb3JtYXQ6
IGdsLkxVTUlOQU5DRSwKKyAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAor
ICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVsc0luY3JlYXNlQnlOb01vcmVUaGFu
LAorICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSwKKyAgICAgICAgICAgICAgICBudW1PY2N1
cnJlbmNlczogMSwKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkxVTUlOQU5DRS9VTlNJ
R05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRhIgorICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7CisgICAgICAgICAgICAgICAg
ZGF0YU1vZGU6IGRhdGFNb2RlLAorICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEh
dXNlVGV4U3ViSW1hZ2UyRCwKKyAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAorICAgICAgICAg
ICAgICAgIGhlaWdodDogMSwKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlT3Bh
cXVlR3JheXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBmYWxz
ZSwKKyAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLkxVTUlOQU5DRV9BTFBIQSwKKyAgICAgICAg
ICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgICAgICAgIHZlcmlmaWVy
OiBhbGxDaGFubmVsc0luY3JlYXNlQnlOb01vcmVUaGFuLAorICAgICAgICAgICAgICAgIHRocmVz
aG9sZDogMSwKKyAgICAgICAgICAgICAgICBudW1PY2N1cnJlbmNlczogMSwKKyAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbjogIkxVTUlOQU5DRV9BTFBIQS9VTlNJR05FRF9CWVRFIHNob3VsZCBt
YWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRhIgorICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhhdCBzZXR0aW5nIHRoZSBVTlBBQ0tfUFJFTVVM
VElQTFlfQUxQSEFfV0VCR0wgcGl4ZWwKKyAgICAvLyBzdG9yZSBwYXJhbWV0ZXIgYW5kIHNlbmRp
bmcgZG93biBhIHplcm8gYWxwaGEgY2F1c2VzIHRoZSBjb2xvcgorICAgIC8vIGNoYW5uZWxzIHRv
IGdvIHRvIHplcm8uCisgICAgZm9yICh2YXIgZGF0YU1vZGUgPSAwOyBkYXRhTW9kZSA8IERhdGFN
b2RlLk5VTV9NT0RFUzsgKytkYXRhTW9kZSkgeworICAgICAgICBmb3IgKHZhciB1c2VUZXhTdWJJ
bWFnZTJEID0gMDsgdXNlVGV4U3ViSW1hZ2UyRCA8IDI7ICsrdXNlVGV4U3ViSW1hZ2UyRCkgewor
ICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBk
YXRhTW9kZSwKKyAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1Yklt
YWdlMkQsCisgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDEsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3Jh
eXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLAorICAg
ICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKKyAgICAgICAgICAgICAgICB0eXBlOiBnbC5V
TlNJR05FRF9CWVRFLAorICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJl
WmVybywKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9B
TFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfQllURSIKKyAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRh
TW9kZSwKKyAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdl
MkQsCisgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNj
YWxlUmFtcCwKKyAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLAorICAgICAg
ICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKKyAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJ
R05FRF9TSE9SVF80XzRfNF80LAorICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5u
ZWxzQXJlWmVybywKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxU
SVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfU0hPUlRfNF80XzRfNCIKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAgICAgICAgICAgICAg
IGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAh
IXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKKyAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDEsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRy
YW5zcGFyZW50R3JheXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhh
OiB0cnVlLAorICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKKyAgICAgICAgICAgICAg
ICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xLAorICAgICAgICAgICAgICAgIHZlcmlm
aWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjog
IlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfU0hPUlRf
NV81XzVfMSIKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBm
ZXcgdGVzdHMgYXJlIGludmFsaWQgZm9yIHRoZSByYXcgZGF0YQorICAgICAgICAgICAgLy8gbW9k
ZSBiZWNhdXNlIHRoZXJlIGlzIGVpdGhlciBubyBhbHBoYSBjaGFubmVsIG9yIG5vCisgICAgICAg
ICAgICAvLyBzZXBhcmF0ZSBhbHBoYSBjaGFubmVsLgorICAgICAgICAgICAgaWYgKGRhdGFNb2Rl
ICE9IERhdGFNb2RlLlJBV19EQVRBKSB7CisgICAgICAgICAgICAgICAgdGVzdENhc2VzLnB1c2go
eworICAgICAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCisgICAgICAgICAgICAg
ICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKKyAgICAgICAgICAg
ICAgICAgICAgd2lkdGg6IDI1NiwKKyAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAorICAg
ICAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVS
YW1wLAorICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLAorICAgICAg
ICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKKyAgICAgICAgICAgICAgICAgICAgdHlwZTog
Z2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hh
bm5lbHNBcmVaZXJvLAorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19Q
UkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQi9VTlNJR05FRF9CWVRFIgorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKKyAgICAgICAgICAg
ICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAorICAgICAgICAgICAgICAgICAgICB1c2VUZXhT
dWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAgICAgIHdpZHRo
OiAyNTYsCisgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMSwKKyAgICAgICAgICAgICAgICAg
ICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKKyAgICAgICAg
ICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAg
Zm9ybWF0OiBnbC5SR0IsCisgICAgICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NI
T1JUXzVfNl81LAorICAgICAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0Fy
ZVplcm8sCisgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJ
UExZX0FMUEhBX1dFQkdMIHdpdGggUkdCL1VOU0lHTkVEX1NIT1JUXzVfNl81IgorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKKyAgICAgICAgICAg
ICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAorICAgICAgICAgICAgICAgICAgICB1c2VUZXhT
dWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAgICAgIHdpZHRo
OiAyNTYsCisgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMSwKKyAgICAgICAgICAgICAgICAg
ICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKKyAgICAgICAg
ICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAg
Zm9ybWF0OiBnbC5BTFBIQSwKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURf
QllURSwKKyAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJv
LAorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9B
TFBIQV9XRUJHTCB3aXRoIEFMUEhBL1VOU0lHTkVEX0JZVEUiCisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAgICAgICAgICAgICAgICAgICBk
YXRhTW9kZTogZGF0YU1vZGUsCisgICAgICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6
ICEhdXNlVGV4U3ViSW1hZ2UyRCwKKyAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKKyAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAorICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAorICAgICAgICAgICAgICAgICAg
ICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLAorICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGds
LkxVTUlOQU5DRSwKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwK
KyAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAorICAg
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9X
RUJHTCB3aXRoIExVTUlOQU5DRS9VTlNJR05FRF9CWVRFIgorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goeworICAgICAgICAgICAg
ICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJE
OiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDEsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0
ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFs
cGhhOiB0cnVlLAorICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNFX0FMUEhBLAor
ICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgICAgICAg
dmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAorICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggTFVNSU5BTkNFX0FMUEhB
L1VOU0lHTkVEX0JZVEUiCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IC8vIFByb2R1Y2UgZGF0YSBmb3IgYWxsIHRlc3RjYXNlcy4gQmVjYXVzZSB3ZSBsb2FkIGltYWdl
cywgc29tZSBvZgorICAgIC8vIHRoZXNlIG1heSBnZW5lcmF0ZSB0aGVpciBkYXRhIGFzeW5jaHJv
bm91c2x5LgorICAgIGdlbmVyYXRlVGVzdERhdGEoKTsKK30KKworZnVuY3Rpb24gZ2VuZXJhdGVU
ZXN0RGF0YSgpCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgdmFyIHRlc3RDYXNlID0gdGVzdENhc2VzW2ldOworICAgICAgICB2YXIg
d3JhcHBlciA9IG51bGw7CisgICAgICAgIHN3aXRjaCAodGVzdENhc2UuZGF0YU1vZGUpIHsKKyAg
ICAgICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKKyAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgSW1h
Z2VXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRGF0YU1vZGUuSU1BR0VfREFUQToKKyAgICAgICAgICAgIHdy
YXBwZXIgPSBuZXcgSW1hZ2VEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVp
Z2h0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGFNb2RlLlJBV19EQVRB
OgorICAgICAgICAgICAgc3dpdGNoICh0ZXN0Q2FzZS50eXBlKSB7CisgICAgICAgICAgICBjYXNl
IGdsLlVOU0lHTkVEX0JZVEU6CisgICAgICAgICAgICAgICAgc3dpdGNoICh0ZXN0Q2FzZS5mb3Jt
YXQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIGdsLlJHQkE6CisgICAgICAgICAgICAgICAgICAg
IHdyYXBwZXIgPSBuZXcgUkdCQThEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2Uu
aGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSBnbC5SR0I6CisgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCOERhdGFXcmFw
cGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGdsLkFMUEhBOgorICAgICAgICAgICAgICAg
ICAgICB3cmFwcGVyID0gbmV3IEE4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNl
LmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNh
c2UgZ2wuTFVNSU5BTkNFOgorICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IEw4RGF0
YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgZ2wuTFVNSU5BTkNFX0FMUEhBOgor
ICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IExBOERhdGFXcmFwcGVyKHRlc3RDYXNl
LndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgICAgICAgICAgICAgd3JhcHBlciA9IG5l
dyBSR0JBNDQ0NERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9S
VF81XzVfNV8xOgorICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCQTU1NTFEYXRhV3Jh
cHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV82XzU6CisgICAgICAg
ICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0I1NjVEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwg
dGVzdENhc2UuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICB0ZXN0Q2FzZS53cmFwcGVyID0gd3JhcHBlcjsKKyAgICAgICAg
dGVzdENhc2UuZ2VuZXJhdG9yKHdyYXBwZXIpOworICAgICAgICB0ZXN0Q2FzZS53cmFwcGVyLmdl
bmVyYXRlRGF0YSgpOworICAgIH0KKworICAgIC8vIFNlZSB3aGV0aGVyIHdlIG5lZWQgdG8gcnVu
IHRoZSB0ZXN0cywgaW4gY2FzZSBhbGwgb2YgdGhlbQorICAgIC8vIGdlbmVyYXRlZCB0aGVpciBy
ZXN1bHRzIHN5bmNocm9ub3VzbHkuCisgICAgbWF5YmVSdW5UZXN0cygpOworfQorCit2YXIgcmFu
VGVzdHMgPSBmYWxzZTsKKworZnVuY3Rpb24gbWF5YmVSdW5UZXN0cygpCit7CisgICAgaWYgKCFy
YW5UZXN0cykKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICBpZiAoIXRlc3RDYXNlc1tpXS53cmFwcGVyIHx8ICF0ZXN0Q2FzZXNb
aV0ud3JhcHBlci5kYXRhKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgIHJhblRlc3Rz
ID0gdHJ1ZTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aDsgKytp
KQorICAgICAgICBydW5PbmVUZXN0KHRlc3RDYXNlc1tpXSk7CisKKyAgICBmaW5pc2hUZXN0KCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RDYXNlVG9TdHJpbmcodGVzdENhc2UpCit7CisgICAgdmFyIG1v
ZGU7CisgICAgc3dpdGNoICh0ZXN0Q2FzZS5kYXRhTW9kZSkgeworICAgIGNhc2UgRGF0YU1vZGUu
SU1BR0U6CisgICAgICAgIG1vZGUgPSAiSW1hZ2UiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERhdGFNb2RlLklNQUdFX0RBVEE6CisgICAgICAgIG1vZGUgPSAiSW1hZ2VEYXRhIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEYXRhTW9kZS5SQVdfREFUQToKKyAgICAgICAgbW9kZSA9ICJy
YXcgZGF0YSI7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gKHRlc3RDYXNlLnVz
ZVRleFN1YkltYWdlMkQgPyAidGV4U3ViSW1hZ2UyRCIgOiAidGV4SW1hZ2UyRCIpICsKKyAgICAg
ICAgICAgICIgd2l0aCAiICsgbW9kZSArICAiIGF0ICIgKyB0ZXN0Q2FzZS53aWR0aCArICJ4IiAr
IHRlc3RDYXNlLmhlaWdodDsKK30KKworZnVuY3Rpb24gcnVuT25lVGVzdCh0ZXN0Q2FzZSkKK3sK
KyAgICBkZWJ1ZygiVGVzdGluZyAiICsgdGVzdENhc2VUb1N0cmluZyh0ZXN0Q2FzZSkpOworICAg
IHZhciBkYXRhID0gdGVzdENhc2Uud3JhcHBlci5kYXRhOworICAgIGdsLmNsZWFyKGdsLkNPTE9S
X0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgICB2YXIgdGV4dHVyZSA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKKyAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5p
dCAwLgorICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIC8v
IFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMuCisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNU
KTsKKyAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycy4KKyAgICBnbC5waXhlbFN0
b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHRlc3RDYXNlLnByZW11bHRp
cGx5QWxwaGEpOworICAgIC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZS4KKyAg
ICBpZiAodGVzdENhc2UudXNlVGV4U3ViSW1hZ2UyRCkgeworICAgICAgICAvLyBJbml0aWFsaXpl
IHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0LgorICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhl
aWdodCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNl
LnR5cGUsIG51bGwpOworICAgIH0KKyAgICBzd2l0Y2ggKHRlc3RDYXNlLmRhdGFNb2RlKSB7Cisg
ICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKKyAgICBjYXNlIERhdGFNb2RlLklNQUdFX0RBVEE6Cisg
ICAgICAgIGlmICh0ZXN0Q2FzZS51c2VUZXhTdWJJbWFnZTJEKQorICAgICAgICAgICAgZ2wudGV4
U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RD
YXNlLnR5cGUsIGRhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0
Q2FzZS50eXBlLCBkYXRhKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRhTW9kZS5SQVdf
REFUQToKKyAgICAgICAgaWYgKHRlc3RDYXNlLnVzZVRleFN1YkltYWdlMkQpCisgICAgICAgICAg
ICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHRlc3RDYXNlLndpZHRo
LCB0ZXN0Q2FzZS5oZWlnaHQsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwgZGF0YSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCAwLCB0
ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIGRhdGEpOworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMC4K
KyAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7CisgICAgLy8gRHJhdyB0aGUgdHJpYW5n
bGVzLgorICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKKyAgICAvLyBDbGVh
biB1cCB0aGUgdGV4dHVyZS4KKyAgICBnbC5kZWxldGVUZXh0dXJlKHRleHR1cmUpOworCisgICAg
Ly8gUmVhZCBiYWNrIHRoZSByZW5kZXJpbmcgcmVzdWx0cy4KKyAgICB2YXIgYnVmID0gbmV3IFVp
bnQ4QXJyYXkodGVzdENhc2Uud2lkdGggKiB0ZXN0Q2FzZS5oZWlnaHQgKiA0KTsKKyAgICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisgICAgLy8gUnVuIHRoZSB2ZXJpZmljYXRpb24gcm91
dGluZS4KKyAgICBpZiAodGVzdENhc2UudmVyaWZpZXIoYnVmLCB0ZXN0Q2FzZS50aHJlc2hvbGQs
IHRlc3RDYXNlLm51bU9jY3VycmVuY2VzKSkKKyAgICAgICAgdGVzdFBhc3NlZCh0ZXN0Q2FzZS5k
ZXNjcmlwdGlvbik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHRlc3RDYXNlLmRlc2Ny
aXB0aW9uKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBXcmFwcGVycyBmb3IgcHJvZ3JhbW1h
dGljIGNvbnN0cnVjdGlvbiBvZiBJbWFnZSwgSW1hZ2VEYXRhIGFuZCByYXcgdGV4dHVyZSBkYXRh
CisvLworCitmdW5jdGlvbiBJbWFnZVdyYXBwZXIod2lkdGgsIGhlaWdodCkKK3sKKyAgICB0aGlz
LnBuZ0J1aWxkZXJfID0gbmV3IFBOR2xpYih3aWR0aCwgaGVpZ2h0LCAyNTYpOworfQorCitJbWFn
ZVdyYXBwZXIucHJvdG90eXBlLmdldFdpZHRoID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRo
aXMucG5nQnVpbGRlcl8ud2lkdGg7Cit9OworCitJbWFnZVdyYXBwZXIucHJvdG90eXBlLmdldEhl
aWdodCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLnBuZ0J1aWxkZXJfLmhlaWdodDsK
K307CisKK0ltYWdlV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCBy
LCBnLCBiLCBhKSB7CisgICAgdGhpcy5wbmdCdWlsZGVyXy5idWZmZXJbdGhpcy5wbmdCdWlsZGVy
Xy5pbmRleCh4LCB5KV0gPSB0aGlzLnBuZ0J1aWxkZXJfLmNvbG9yKHIsIGcsIGIsIGEpOworfTsK
KworLy8gR2VuZXJhdGVzIGRhdGEgaW50byAiZGF0YSIgcHJvcGVydHksIHBvc3NpYmx5IGFzeW5j
aHJvbm91c2x5LgorSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5nZW5lcmF0ZURhdGEgPSBmdW5jdGlv
bigpIHsKKyAgICB2YXIgdGhhdCA9IHRoaXM7CisgICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpOwor
ICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhhdC5kYXRhID0gaW1nOwor
ICAgICAgICBtYXliZVJ1blRlc3RzKCk7CisgICAgfTsKKyAgICBpbWcuc3JjID0gImRhdGE6aW1h
Z2UvcG5nO2Jhc2U2NCwiICsgdGhpcy5wbmdCdWlsZGVyXy5nZXRCYXNlNjQoKTsKK307CisKK2Z1
bmN0aW9uIEltYWdlRGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKK3sKKyAgICBpZiAoIUltYWdl
RGF0YVdyYXBwZXIudGVtcENhbnZhcykgeworICAgICAgICBJbWFnZURhdGFXcmFwcGVyLnRlbXBD
YW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICB9CisgICAgdGhp
cy5pbWFnZURhdGFfID0gSW1hZ2VEYXRhV3JhcHBlci50ZW1wQ2FudmFzLmdldENvbnRleHQoIjJk
IikuY3JlYXRlSW1hZ2VEYXRhKHdpZHRoLCBoZWlnaHQpOworfQorCitJbWFnZURhdGFXcmFwcGVy
LnRlbXBDYW52YXMgPSBudWxsOworCitJbWFnZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZXRXaWR0
aCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLmltYWdlRGF0YV8ud2lkdGg7Cit9Owor
CitJbWFnZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZXRIZWlnaHQgPSBmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4gdGhpcy5pbWFnZURhdGFfLmhlaWdodDsKK307CisKK0ltYWdlRGF0YVdyYXBwZXIu
cHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgeworICAgIHZh
ciBpbmRleCA9IDQgKiAodGhpcy5pbWFnZURhdGFfLndpZHRoICogeSArIHgpOworICAgIHRoaXMu
aW1hZ2VEYXRhXy5kYXRhW2luZGV4XSA9IHI7CisgICAgdGhpcy5pbWFnZURhdGFfLmRhdGFbaW5k
ZXggKyAxXSA9IGc7CisgICAgdGhpcy5pbWFnZURhdGFfLmRhdGFbaW5kZXggKyAyXSA9IGI7Cisg
ICAgdGhpcy5pbWFnZURhdGFfLmRhdGFbaW5kZXggKyAzXSA9IGE7Cit9OworCitJbWFnZURhdGFX
cmFwcGVyLnByb3RvdHlwZS5nZW5lcmF0ZURhdGEgPSBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmRh
dGEgPSB0aGlzLmltYWdlRGF0YV87CisgICAgbWF5YmVSdW5UZXN0cygpOworfTsKKworZnVuY3Rp
b24gVGV4dHVyZURhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAgdGhpcy53aWR0aF8g
PSB3aWR0aDsKKyAgICB0aGlzLmhlaWdodF8gPSBoZWlnaHQ7Cit9CisKK1RleHR1cmVEYXRhV3Jh
cHBlci5wcm90b3R5cGUuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdGhpcy53
aWR0aF87Cit9OworCitUZXh0dXJlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdldEhlaWdodCA9IGZ1
bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLmhlaWdodF87Cit9OworCitUZXh0dXJlRGF0YVdy
YXBwZXIucHJvdG90eXBlLmdlbmVyYXRlRGF0YSA9IGZ1bmN0aW9uKCkgeworICAgIHRoaXMuZGF0
YSA9IHRoaXMuZGF0YV87CisgICAgbWF5YmVSdW5UZXN0cygpOworfTsKKworZnVuY3Rpb24gUkdC
QThEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQoreworICAgIFRleHR1cmVEYXRhV3JhcHBlci5j
YWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJh
eSg0ICogd2lkdGggKiBoZWlnaHQpOworfQorCitSR0JBOERhdGFXcmFwcGVyLnByb3RvdHlwZSA9
IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7CisKK1JHQkE4RGF0YVdyYXBwZXIucHJvdG90eXBlLnNl
dFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgeworICAgIHZhciBpbmRleCA9IDQg
KiAodGhpcy53aWR0aF8gKiB5ICsgeCk7CisgICAgdGhpcy5kYXRhX1tpbmRleF0gPSByOworICAg
IHRoaXMuZGF0YV9baW5kZXggKyAxXSA9IGc7CisgICAgdGhpcy5kYXRhX1tpbmRleCArIDJdID0g
YjsKKyAgICB0aGlzLmRhdGFfW2luZGV4ICsgM10gPSBhOworfTsKKworZnVuY3Rpb24gUkdCQTU1
NTFEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQoreworICAgIFRleHR1cmVEYXRhV3JhcHBlci5j
YWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDE2QXJy
YXkod2lkdGggKiBoZWlnaHQpOworfQorCitSR0JBNTU1MURhdGFXcmFwcGVyLnByb3RvdHlwZSA9
IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7CisKK1JHQkE1NTUxRGF0YVdyYXBwZXIucHJvdG90eXBl
LnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgeworICAgIHZhciB2YWx1ZSA9
ICgoKHIgJiAweEY4KSA8PCA4KQorICAgICAgICAgICAgICAgICB8ICgoZyAmIDB4RjgpIDw8IDMp
CisgICAgICAgICAgICAgICAgIHwgKChiICYgMHhGOCkgPj4gMikKKyAgICAgICAgICAgICAgICAg
fCAoYSA+PiA3KSk7CisgICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IHZhbHVl
OworfTsKKworZnVuY3Rpb24gUkdCQTQ0NDREYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQorewor
ICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAgIHRo
aXMuZGF0YV8gPSBuZXcgVWludDE2QXJyYXkod2lkdGggKiBoZWlnaHQpOworfQorCitSR0JBNDQ0
NERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7CisKK1JHQkE0
NDQ0RGF0YVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywg
YiwgYSkgeworICAgIHZhciB2YWx1ZSA9ICgoKHIgJiAweEYwKSA8PCA4KQorICAgICAgICAgICAg
ICAgICB8ICgoZyAmIDB4RjApIDw8IDQpCisgICAgICAgICAgICAgICAgIHwgKGIgJiAweEYwKQor
ICAgICAgICAgICAgICAgICB8IChhID4+IDQpKTsKKyAgICB0aGlzLmRhdGFfW3RoaXMud2lkdGhf
ICogeSArIHhdID0gdmFsdWU7Cit9OworCitmdW5jdGlvbiBSR0I4RGF0YVdyYXBwZXIod2lkdGgs
IGhlaWdodCkKK3sKKyAgICBUZXh0dXJlRGF0YVdyYXBwZXIuY2FsbCh0aGlzLCB3aWR0aCwgaGVp
Z2h0KTsKKyAgICB0aGlzLmRhdGFfID0gbmV3IFVpbnQ4QXJyYXkoMyAqIHdpZHRoICogaGVpZ2h0
KTsKK30KKworUkdCOERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBw
ZXI7CisKK1JHQjhEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5
LCByLCBnLCBiLCBhKSB7CisgICAgdmFyIGluZGV4ID0gMyAqICh0aGlzLndpZHRoXyAqIHkgKyB4
KTsKKyAgICB0aGlzLmRhdGFfW2luZGV4XSA9IHI7CisgICAgdGhpcy5kYXRhX1tpbmRleCArIDFd
ID0gZzsKKyAgICB0aGlzLmRhdGFfW2luZGV4ICsgMl0gPSBiOworfTsKKworZnVuY3Rpb24gUkdC
NTY1RGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKK3sKKyAgICBUZXh0dXJlRGF0YVdyYXBwZXIu
Y2FsbCh0aGlzLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICB0aGlzLmRhdGFfID0gbmV3IFVpbnQxNkFy
cmF5KHdpZHRoICogaGVpZ2h0KTsKK30KKworUkdCNTY1RGF0YVdyYXBwZXIucHJvdG90eXBlID0g
bmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworUkdCNTY1RGF0YVdyYXBwZXIucHJvdG90eXBlLnNl
dFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgeworICAgIHZhciB2YWx1ZSA9ICgo
KHIgJiAweEY4KSA8PCA4KQorICAgICAgICAgICAgICAgICB8ICgoZyAmIDB4RkMpIDw8IDMpCisg
ICAgICAgICAgICAgICAgIHwgKChiICYgMHhGOCkgPj4gMykpOworICAgIHRoaXMuZGF0YV9bdGhp
cy53aWR0aF8gKiB5ICsgeF0gPSB2YWx1ZTsKK307CisKK2Z1bmN0aW9uIEE4RGF0YVdyYXBwZXIo
d2lkdGgsIGhlaWdodCkKK3sKKyAgICBUZXh0dXJlRGF0YVdyYXBwZXIuY2FsbCh0aGlzLCB3aWR0
aCwgaGVpZ2h0KTsKKyAgICB0aGlzLmRhdGFfID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWln
aHQpOworfQorCitBOERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBw
ZXI7CisKK0E4RGF0YVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwg
ciwgZywgYiwgYSkgeworICAgIHRoaXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0gPSBhOwor
fTsKKworZnVuY3Rpb24gTDhEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQoreworICAgIFRleHR1
cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAgIHRoaXMuZGF0YV8g
PSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7Cit9CisKK0w4RGF0YVdyYXBwZXIucHJv
dG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworTDhEYXRhV3JhcHBlci5wcm90b3R5
cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdGhpcy5kYXRh
X1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IHI7Cit9OworCitmdW5jdGlvbiBMQThEYXRhV3JhcHBl
cih3aWR0aCwgaGVpZ2h0KQoreworICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdp
ZHRoLCBoZWlnaHQpOworICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJheSgyICogd2lkdGgg
KiBoZWlnaHQpOworfQorCitMQThEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURh
dGFXcmFwcGVyOworCitMQThEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlv
bih4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdmFyIGluZGV4ID0gMiAqICh0aGlzLndpZHRoXyAq
IHkgKyB4KTsKKyAgICB0aGlzLmRhdGFfW2luZGV4XSA9IHI7CisgICAgdGhpcy5kYXRhX1tpbmRl
eCArIDFdID0gYTsKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ29sb3IgcmFtcCBnZW5lcmF0
aW9uIGZ1bmN0aW9ucworLy8KKworZnVuY3Rpb24gZ2VuZXJhdGVPcGFxdWVHcmF5c2NhbGVSYW1w
KHdyYXBwZXIpCit7CisgICAgdmFyIHdpZHRoID0gd3JhcHBlci5nZXRXaWR0aCgpOworICAgIHZh
ciBoZWlnaHQgPSB3cmFwcGVyLmdldEhlaWdodCgpOworICAgIGZvciAodmFyIHggPSAwOyB4IDwg
d2lkdGg7ICsreCkgeworICAgICAgICB2YXIgdmFsdWUgPSBNYXRoLnJvdW5kKDI1NS4wICogeCAv
IHdpZHRoKTsKKyAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkKKyAgICAg
ICAgICAgIHdyYXBwZXIuc2V0UGl4ZWwoeCwgeSwgdmFsdWUsIHZhbHVlLCB2YWx1ZSwgMjU1KTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIGdlbmVyYXRlVHJhbnNsdWNlbnRHcmF5c2NhbGVSYW1wKHdy
YXBwZXIpCit7CisgICAgdmFyIHdpZHRoID0gd3JhcHBlci5nZXRXaWR0aCgpOworICAgIHZhciBo
ZWlnaHQgPSB3cmFwcGVyLmdldEhlaWdodCgpOworICAgIGZvciAodmFyIHggPSAwOyB4IDwgd2lk
dGg7ICsreCkgeworICAgICAgICB2YXIgdmFsdWUgPSBNYXRoLnJvdW5kKDI1NS4wICogeCAvIHdp
ZHRoKTsKKyAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkKKyAgICAgICAg
ICAgIHdyYXBwZXIuc2V0UGl4ZWwoeCwgeSwgdmFsdWUsIHZhbHVlLCB2YWx1ZSwgdmFsdWUpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAod3Jh
cHBlcikKK3sKKyAgICB2YXIgd2lkdGggPSB3cmFwcGVyLmdldFdpZHRoKCk7CisgICAgdmFyIGhl
aWdodCA9IHdyYXBwZXIuZ2V0SGVpZ2h0KCk7CisgICAgZm9yICh2YXIgeCA9IDA7IHggPCB3aWR0
aDsgKyt4KSB7CisgICAgICAgIHZhciB2YWx1ZSA9IE1hdGgucm91bmQoMjU1LjAgKiB4IC8gd2lk
dGgpOworICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KQorICAgICAgICAg
ICAgd3JhcHBlci5zZXRQaXhlbCh4LCB5LCB2YWx1ZSwgdmFsdWUsIHZhbHVlLCAwKTsKKyAgICB9
Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gVmVyaWZpY2F0aW9uIHJvdXRpbmVzCisvLworCitm
dW5jdGlvbiBhbGxDaGFubmVsc0luY3JlYXNlQnlOb01vcmVUaGFuKGFycmF5LCB0aHJlc2hvbGQs
IG51bU9jY3VycmVuY2VzKSB7CisgICAgdmFyIG51bUZvdW5kID0gMDsKKyAgICBmb3IgKHZhciBp
ID0gNDsgaSA8IGFycmF5Lmxlbmd0aDsgaSArPSA0KQorICAgICAgICBmb3IgKHZhciBqID0gMDsg
aiA8IDQ7IGorKykKKyAgICAgICAgICAgIGlmIChhcnJheVtpICsgal0gLSBhcnJheVtpICsgaiAt
IDRdID4gdGhyZXNob2xkKQorICAgICAgICAgICAgICAgICsrbnVtRm91bmQ7CisKKyAgICByZXR1
cm4gbnVtRm91bmQgPCBudW1PY2N1cnJlbmNlczsKK30KKworZnVuY3Rpb24gYWxwaGFDaGFubmVs
SW5jcmVhc2VzQnlOb01vcmVUaGFuKGFycmF5LCB0aHJlc2hvbGQsIG51bU9jY3VycmVuY2VzKSB7
CisgICAgdmFyIG51bUZvdW5kID0gMDsKKyAgICBmb3IgKHZhciBpID0gNzsgaSA8IGFycmF5Lmxl
bmd0aDsgaSArPSA0KQorICAgICAgICBpZiAoYXJyYXlbaV0gLSBhcnJheVtpIC0gNF0gPiB0aHJl
c2hvbGQpCisgICAgICAgICAgICArK251bUZvdW5kOworCisgICAgcmV0dXJuIG51bUZvdW5kIDwg
bnVtT2NjdXJyZW5jZXM7Cit9CisKK2Z1bmN0aW9uIGFsbENoYW5uZWxzSW5jcmVhc2VCeUF0TGVh
c3QoYXJyYXksIHRocmVzaG9sZCwgbnVtT2NjdXJyZW5jZXMpIHsKKyAgICB2YXIgbnVtRm91bmQg
PSAwOworICAgIGZvciAodmFyIGkgPSA0OyBpIDwgYXJyYXkubGVuZ3RoOyBpICs9IDQpCisgICAg
ICAgIGZvciAodmFyIGogPSAwOyBqIDwgNDsgKytqKQorICAgICAgICAgICAgaWYgKGFycmF5W2kg
KyBqXSAtIGFycmF5W2kgKyBqIC0gNF0gPiB0aHJlc2hvbGQpCisgICAgICAgICAgICAgICAgKytu
dW1Gb3VuZDsKKworICAgIHJldHVybiBudW1Gb3VuZCA+IG51bU9jY3VycmVuY2VzOworfQorCitm
dW5jdGlvbiBjb2xvckNoYW5uZWxzQXJlWmVybyhhcnJheSwgdGhyZXNob2xkLCBudW1PY2N1cnJl
bmNlcykgeworICAgIHZhciBwYXNzZWQgPSB0cnVlOworICAgIHZhciBudW1GYWlsdXJlcyA9IDA7
CisKKyAgICBmb3IgKHZhciBpID0gNDsgaSA8IGFycmF5Lmxlbmd0aDsgaSArPSA0KQorICAgICAg
ICBmb3IgKHZhciBqID0gMDsgaiA8IDM7ICsraikKKyAgICAgICAgICAgIGlmIChhcnJheVtpICsg
al0gIT0gMCkgeworICAgICAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIGlmICgrK251bUZhaWx1cmVzIDw9IDUpCisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIg
IGFycmF5WyIgKyAoaSArIGopICsgIl0gc2hvdWxkIGhhdmUgYmVlbiAwLCB3YXMgIiArIGFycmF5
W2kgKyBqXSk7CisgICAgICAgICAgICB9CisKKyAgICByZXR1cm4gcGFzc2VkOworfQorCis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKzxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMSI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWludmFsaWQtZGF0YS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LWltYWdlLXdpdGgtaW52YWxpZC1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYyM2Jl
MjRiNGNiMzJkYWM1YjBkNzY2ODRlYjVjMzFjM2UyZGY1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS13aXRoLWludmFsaWQtZGF0YS5odG1sCkBAIC0wLDAgKzEsMTI5IEBA
Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPnRleElt
YWdlMkQgYW5kIHRleFN1YkltYWdlMkQgdGVzdHMgd2l0aCBpbnZhbGlkIGRhdGE8L3RpdGxlPgor
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIy
IiBoZWlnaHQ9IjIiPiA8L2NhbnZhcz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
K2Rlc2NyaXB0aW9uKCJ0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRlc3RzIHdpdGggaW52
YWxpZCBkYXRhIik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RD
b250ZXh0KGNhbnZhcyk7CitpZiAoIWdsKQorICB0ZXN0RmFpbGVkKCJDb250ZXh0IGNyZWF0ZWQu
Iik7CitlbHNlCisgIHRlc3RQYXNzZWQoIkNvbnRleHQgY3JlYXRlZC4iKTsKKwordmFyIHRleDsK
KworZnVuY3Rpb24gc2V0dXAoKSB7CisgICAgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIGJ1ZzMyNjE5X3Rlc3RzLnRleCk7CisgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCA2NCwgNjQsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOworfQorCitmdW5jdGlvbiB0ZWFyZG93bigpIHsK
KyAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGVzYywgZnVu
YywgZXhwZWN0ZWQpIHsKKyAgICBkZWJ1ZyhkZXNjKTsKKworICAgIHZhciBleGMgPSBudWxsOwor
ICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoICh4KSB7CisgICAgICAgIGV4
YyA9IHg7CisgICAgfQorCisgICAgaWYgKGV4cGVjdGVkID09IGdsLklOVkFMSURfT1BFUkFUSU9O
KSB7CisgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGV4cGVjdGVkKTsKKyAgICB9IGVsc2UgaWYg
KGV4cGVjdGVkID09ICJleGNlcHRpb24iKSB7CisgICAgICAgIGlmIChleGMpIHsKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoInRocmV3IGV4Y2VwdGlvbiIpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICAgICAg
fQorICAgIH0KK30KKwordGVzdCgiUGFzc2luZyBhIGJ1ZmZlciBub3QgbGFyZ2UgZW5vdWdoIHRv
IHRleEltYWdlMkQgc2hvdWxkIGdlbmVyYXRlIGFuIElOVkFMSURfT1BFUkFUSU9OIiwKKyAgICAg
ZnVuY3Rpb24gKCkgeworICAgICB2YXIgdG9vU21hbGwgPSBuZXcgVWludDhBcnJheSg2NCk7Cisg
ICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgNjQsIDY0LCAw
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB0b29TbWFsbCk7CisgICAgIH0sCisgICAgIGds
LklOVkFMSURfT1BFUkFUSU9OKTsKKwordGVzdCgiUGFzc2luZyB0ZXhJbWFnZTJEIHBhcmFtZXRl
ciBkYXRhIG9mIE51bWJlciB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24iLAorICAgICBm
dW5jdGlvbiAoKSB7CisgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wu
UkdCQSwgNjQsIDY0LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCA0Mik7CisgICAgIH0s
CisgICAgICJleGNlcHRpb24iKTsKKwordGVzdCgiUGFzc2luZyB0ZXhJbWFnZTJEIHBhcmFtZXRl
ciBkYXRhIG9mIFN0cmluZyB0eXBlIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciIsCisgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5S
R0JBLCA2NCwgNjQsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsICJub3QgYSBidWZmZXIi
KTsKKyAgICAgfSwKKyAgICAgImV4Y2VwdGlvbiIpOwordGVzdCgiUGFzc2luZyBhIGJ1ZmZlciBu
b3QgbGFyZ2UgZW5vdWdoIHRvIHRleFN1YkltYWdlMkQgc2hvdWxkIGdlbmVyYXRlIGFuIElOVkFM
SURfT1BFUkFUSU9OIiwKKyAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgdG9vU21hbGwg
PSBuZXcgVWludDhBcnJheSg2NCk7CisgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwgMCwgNjQsIDY0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB0b29TbWFs
bCk7CisgICAgIH0sCisgICAgIGdsLklOVkFMSURfT1BFUkFUSU9OKTsKKwordGVzdCgiUGFzc2lu
ZyB0ZXhTdWJJbWFnZTJEIHBhcmFtZXRlciBkYXRhIG9mIE51bWJlciB0eXBlIHNob3VsZCB0aHJv
dyBhIFR5cGVFcnJvciIsCisgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZ2wudGV4U3ViSW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCA2NCwgNjQsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIDQyKTsKKyAgICAgfSwKKyAgICAgImV4Y2VwdGlvbiIpOworCit0ZXN0KCJQYXNzaW5n
IHRleFN1YkltYWdlMkQgcGFyYW1ldGVyIGRhdGEgb2YgU3RyaW5nIHR5cGUgc2hvdWxkIHRocm93
IGEgVHlwZUVycm9yIiwKKyAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICBnbC50ZXhTdWJJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIDY0LCA2NCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgIm5vdCBhIGJ1ZmZlciIpOworICAgICB9LAorICAgICAiZXhjZXB0aW9uIik7CisKK2Rl
YnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwv
Ym9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjgzZmNiZmMxZGVmN2U5ZGM1OWNhMTIxNDM1MDJmZjE0MDhiYjUyYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWwKQEAgLTAsMCArMSwzODQgQEAK
KzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorCis8c2NyaXB0PgorInVzZSBzdHJpY3QiOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwordmFyIGdsID0gbnVsbDsKK3ZhciB0ZXggPSBudWxsOwordmFyIGVycm9yID0gMDsKKworZnVu
Y3Rpb24gZW51bVRvU3RyaW5nKHZhbHVlKSB7CisgIHJldHVybiB3dHUuZ2xFbnVtVG9TdHJpbmco
Z2wsIHZhbHVlKTsKK30KKworZnVuY3Rpb24gdGVzdFRleEltYWdlMkQodGVzdENhc2UpCit7Cisg
ICAgdmFyIGxldmVsID0gMDsKKyAgICB2YXIgd2lkdGggPSAxNjsKKyAgICB2YXIgaGVpZ2h0ID0g
MTY7CisgICAgdmFyIG1zZyA9ICIiICsKKyAgICAgICIgaW50ZXJuYWxGb3JtYXQ6ICIgKyBlbnVt
VG9TdHJpbmcodGVzdENhc2UuaW50ZXJuYWxGb3JtYXQpICsKKyAgICAgICIgdGFyZ2V0OiAiICsg
ZW51bVRvU3RyaW5nKHRlc3RDYXNlLnRhcmdldCkgKworICAgICAgIiBmb3JtYXQ6ICIgKyBlbnVt
VG9TdHJpbmcodGVzdENhc2UuZm9ybWF0KSArCisgICAgICAiIHR5cGU6ICIgKyBlbnVtVG9TdHJp
bmcodGVzdENhc2UudHlwZSkgKworICAgICAgIiBib3JkZXI6ICIgKyB0ZXN0Q2FzZS5ib3JkZXI7
CisKKyAgICBnbC50ZXhJbWFnZTJEKHRlc3RDYXNlLnRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmlu
dGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0ZXN0Q2FzZS5ib3JkZXIsIHRlc3RDYXNlLmZv
cm1hdCwgdGVzdENhc2UudHlwZSwgbnVsbCk7CisgICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBlY3Rl
ZEVycm9yOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RUZXhTdWJJbWFnZTJEKHRlc3RDYXNlKQoreworICAgIHZhciBsZXZlbCA9IDA7Cisg
ICAgdmFyIHhvZmZzZXQgPSAwOworICAgIHZhciB5b2Zmc2V0ID0gMDsKKyAgICB2YXIgd2lkdGgg
PSAxNjsKKyAgICB2YXIgaGVpZ2h0ID0gMTY7CisgICAgdmFyIG1zZyA9ICIiKworICAgICAgICAi
IGZvcm1hdDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5mb3JtYXQpICsKKyAgICAgICAgIiB0
eXBlOiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLnR5cGUpOworICAgIHZhciBhcnJheSA9IG5l
dyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7CisgICAgZ2wudGV4U3ViSW1hZ2UyRCh0
ZXN0Q2FzZS50YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB3aWR0aCwgaGVpZ2h0LCB0
ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIGFycmF5KTsKKyAgICBlcnJvciA9IHRlc3RD
YXNlLmV4cGVjdGVkRXJyb3I7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBlcnJvciwgbXNnKTsK
K30KKworZnVuY3Rpb24gdGVzdFRleFBhcmFtZXRlcih0ZXN0Q2FzZSkKK3sKKyAgICB2YXIgbXNn
ID0gInBhcmFtTmFtZTogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5wbmFtZSk7CisgICAgZXJy
b3IgPSB0ZXN0Q2FzZS5leHBlY3RlZEVycm9yOworICAgIGdsLnRleFBhcmFtZXRlcmkodGVzdENh
c2UudGFyZ2V0LCB0ZXN0Q2FzZS5wbmFtZSwgdGVzdENhc2UucGFyYW0pOworICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgZXJyb3IsIG1zZyk7CisgICAgZ2wudGV4UGFyYW1ldGVyZih0ZXN0Q2FzZS50
YXJnZXQsIHRlc3RDYXNlLnBuYW1lLCB0ZXN0Q2FzZS5wYXJhbSk7CisgICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBlcnJvciwgbXNnKTsKK30KKworZnVuY3Rpb24gdGVzdEdldFRleFBhcmFtZXRlcih0
ZXN0Q2FzZSkKK3sKKyAgICB2YXIgbXNnID0gInBhcmFtTmFtZTogIiArIGVudW1Ub1N0cmluZyh0
ZXN0Q2FzZS5wbmFtZSk7CisgICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBlY3RlZEVycm9yOworICAg
IGdsLmdldFRleFBhcmFtZXRlcih0ZXN0Q2FzZS50YXJnZXQsIHRlc3RDYXNlLnBuYW1lKTsKKyAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOworfQorCitmdW5jdGlvbiB0ZXN0Q29w
eVRleEltYWdlMkQodGVzdENhc2UpCit7CisgICAgdmFyIGxldmVsID0gMDsKKyAgICB2YXIgeCA9
IDA7CisgICAgdmFyIHkgPSAwOworICAgIHZhciB3aWR0aCA9IDE2OworICAgIHZhciBoZWlnaHQg
PSAxNjsKKworICAgIHZhciBtc2cgPSAiIiArCisgICAgICAiIGNvbG9yQnVmZmVyRm9ybWF0OiAi
ICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmNvbG9yQnVmZmVyRm9ybWF0KSArCisgICAgICAiIGlu
dGVybmFsRm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmludGVybmFsRm9ybWF0KSAr
CisgICAgICAiIHRhcmdldDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS50YXJnZXQpICsKKyAg
ICAgICIgYm9yZGVyOiAiICsgdGVzdENhc2UuYm9yZGVyOworCisgICAgZ2wucmVuZGVyYnVmZmVy
U3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIHRlc3RDYXNlLmNvbG9yQnVmZmVyRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0KTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBz
aG91bGRCZSgiZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikiLCAiZ2wu
RlJBTUVCVUZGRVJfQ09NUExFVEUiKTsKKworICAgIGdsLmNvcHlUZXhJbWFnZTJEKHRlc3RDYXNl
LnRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB4LCB5LCB3aWR0aCwgaGVp
Z2h0LCB0ZXN0Q2FzZS5ib3JkZXIpOworICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJv
cjsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOworfQorCitmdW5jdGlvbiB0
ZXN0Q29weVRleFN1YkltYWdlMkQodGVzdENhc2UpCit7CisgICAgdmFyIGxldmVsID0gMDsKKyAg
ICB2YXIgeCA9IDA7CisgICAgdmFyIHkgPSAwOworICAgIHZhciB3aWR0aCA9IDE2OworICAgIHZh
ciBoZWlnaHQgPSAxNjsKKyAgICB2YXIgeG9mZnNldCA9IDA7CisgICAgdmFyIHlvZmZzZXQgPSAw
OworICAgIHZhciBib3JkZXIgPSAwOworICAgIHZhciB0eXBlID0gZ2wuVU5TSUdORURfQllURTsK
KyAgICB2YXIgbXNnID0gIiIgKworICAgICAgIiBjb2xvckJ1ZmZlckZvcm1hdDogIiArIGVudW1U
b1N0cmluZyh0ZXN0Q2FzZS5jb2xvckJ1ZmZlckZvcm1hdCkgKworICAgICAgIiBpbnRlcm5hbEZv
cm1hdDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCkgKworICAgICAg
IiB0YXJnZXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UudGFyZ2V0KTsKKworICAgIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0Q2FzZS5jb2xvckJ1ZmZlckZv
cm1hdCwgd2lkdGgsIGhlaWdodCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
Uik7CisgICAgc2hvdWxkQmUoImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIiwgImdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFIik7CisKKyAgICBnbC50ZXhJbWFnZTJEKHRl
c3RDYXNlLnRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB4b2Zmc2V0ICsg
d2lkdGgsIHlvZmZzZXQgKyBoZWlnaHQsIGJvcmRlciwgdGVzdENhc2UuaW50ZXJuYWxGb3JtYXQs
IHR5cGUsIG51bGwpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworCisg
ICAgZ2wuY29weVRleFN1YkltYWdlMkQodGVzdENhc2UudGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwg
eW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBl
Y3RlZEVycm9yOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RDb3B5RnJvbUludGVybmFsRkJPKHRlc3RDYXNlKQoreworICAgIHZhciB0YXJn
ZXQgPSBnbC5URVhUVVJFXzJEOworICAgIHZhciBsZXZlbCA9IDA7CisgICAgdmFyIHggPSAwOwor
ICAgIHZhciB5ID0gMDsKKyAgICB2YXIgd2lkdGggPSAxNjsKKyAgICB2YXIgaGVpZ2h0ID0gMTY7
CisgICAgdmFyIHhvZmZzZXQgPSAwOworICAgIHZhciB5b2Zmc2V0ID0gMDsKKyAgICB2YXIgYm9y
ZGVyID0gMDsKKyAgICB2YXIgdHlwZSA9IGdsLlVOU0lHTkVEX0JZVEU7CisgICAgdmFyIG1zZyA9
ICIiICsKKyAgICAgICIgY29sb3JCdWZmZXJGb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENh
c2UuY29udGV4dEFscGhhID8gZ2wuUkdCQSA6IGdsLlJHQikgKworICAgICAgIiBpbnRlcm5hbEZv
cm1hdDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCk7CisKKyAgICBp
ZiAodGVzdENhc2UuY29udGV4dEFscGhhKQorICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQobnVsbCwgeyBhbHBoYTogdHJ1ZSB9KTsKKyAgICBlbHNlCisgICAgICAgIGdsID0gd3R1LmNy
ZWF0ZTNEQ29udGV4dChudWxsLCB7IGFscGhhOiBmYWxzZSB9KTsKKyAgICBzaG91bGRCZU5vbk51
bGwoImdsIik7CisgICAgc2hvdWxkQmVOb25OdWxsKCJ0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCki
KTsKKyAgICBnbC5iaW5kVGV4dHVyZSh0YXJnZXQsIHRleCk7CisgICAgaWYgKHRlc3RDYXNlLnN1
YkltYWdlKSB7CisgICAgICAgIGdsLnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdENhc2Uu
aW50ZXJuYWxGb3JtYXQsIHhvZmZzZXQgKyB3aWR0aCwgeW9mZnNldCArIGhlaWdodCwgYm9yZGVy
LCB0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCwgdHlwZSwgbnVsbCk7CisgICAgICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgICAgICBnbC5jb3B5VGV4U3ViSW1hZ2UyRCh0
YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAg
ICAgICAgZ2wuY29weVRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdENhc2UuaW50ZXJuYWxG
b3JtYXQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGJvcmRlcik7CisgICAgfQorICAgIGVycm9yID0g
dGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBt
c2cpOworfQorCitkZXNjcmlwdGlvbigiVmFsaWRhdGUgdGV4IGZ1bmN0aW9ucyBpbnB1dCBwYXJh
bWV0ZXJzIik7CisKK3Nob3VsZEJlTm9uTnVsbCgiZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCki
KTsKK3Nob3VsZEJlTm9uTnVsbCgidGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpIik7CitnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVja2luZyBUZXhJbWFnZTJEOiBhIHNldCBv
ZiBpbnB1dHMgdGhhdCBhcmUgdmFsaWQgaW4gR0wgYnV0IGludmFsaWQgaW4gR0xFUzIiKTsKKwor
dmFyIHRlc3RDYXNlcyA9CisgIFsge3RhcmdldDogMHg4MDY0LCAvLyBHTF9QUk9YWV9URVhUVVJF
XzJECisgICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAorICAgICBib3JkZXI6IDAsCisgICAg
IGZvcm1hdDogZ2wuUkdCQSwKKyAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKKyAgICAgZXhw
ZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKKyAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJE
LAorICAgICBpbnRlcm5hbEZvcm1hdDogMHgxOTAzLCAvLyBHTF9SRUQKKyAgICAgYm9yZGVyOiAw
LAorICAgICBmb3JtYXQ6IDB4MTkwMywgLy8gR0xfUkVECisgICAgIHR5cGU6IGdsLlVOU0lHTkVE
X0JZVEUsCisgICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCisgICAge3Rhcmdl
dDogZ2wuVEVYVFVSRV8yRCwKKyAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCisgICAgIGJv
cmRlcjogMSwKKyAgICAgZm9ybWF0OiBnbC5SR0JBLAorICAgICB0eXBlOiBnbC5VTlNJR05FRF9C
WVRFLAorICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX1ZBTFVFfSwKKyAgICB7dGFyZ2V0
OiBnbC5URVhUVVJFXzJELAorICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKKyAgICAgYm9y
ZGVyOiAwLAorICAgICBmb3JtYXQ6IGdsLlJHQiwKKyAgICAgdHlwZTogZ2wuVU5TSUdORURfQllU
RSwKKyAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9PUEVSQVRJT059LAorICAgIHt0YXJn
ZXQ6IGdsLlRFWFRVUkVfMkQsCisgICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAorICAgICBi
b3JkZXI6IDAsCisgICAgIGZvcm1hdDogZ2wuUkdCQSwKKyAgICAgdHlwZTogZ2wuQllURSwKKyAg
ICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKKyAgICB7dGFyZ2V0OiBnbC5URVhU
VVJFXzJELAorICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKKyAgICAgYm9yZGVyOiAwLAor
ICAgICBmb3JtYXQ6IGdsLlJHQkEsCisgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAg
IGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9SfSBdOworCitmb3IgKHZhciBpaSA9IDA7IGlpIDwg
dGVzdENhc2VzLmxlbmd0aDsgKytpaSkKKyAgICB0ZXN0VGV4SW1hZ2UyRCh0ZXN0Q2FzZXNbaWld
KTsKKworZGVidWcoIiIpOworZGVidWcoIkNoZWNraW5nIFRleFN1YkltYWdlMkQ6IGEgc2V0IG9m
IGlucHV0cyB0aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOworCit0
ZXN0Q2FzZXMgPQorICBbIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCisgICAgIGZvcm1hdDogMHgx
OTAzLCAvLyBHTF9SRUQKKyAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKKyAgICAgZXhwZWN0
ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKKyAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAor
ICAgICBmb3JtYXQ6IGdsLlJHQkEsCisgICAgIHR5cGU6IGdsLkJZVEUsCisgICAgIGV4cGVjdGVk
RXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCisgICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKKyAg
ICAgZm9ybWF0OiBnbC5SR0JBLAorICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAorICAgICBl
eHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0gXTsKKworZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRl
c3RDYXNlcy5sZW5ndGg7ICsraWkpCisgICAgdGVzdFRleFN1YkltYWdlMkQodGVzdENhc2VzW2lp
XSk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVja2luZyBUZXhQYXJhbWV0ZXI6IGEgc2V0IG9m
IGlucHV0cyB0aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOworCit0
ZXN0Q2FzZXMgPQorICBbIHt0YXJnZXQ6IDB4MERFMCwgLy8gR0xfVEVYVFVSRV8xRAorICAgICBw
bmFtZTogZ2wuVEVYVFVSRV9XUkFQX1QsCisgICAgIHBhcmFtOiBnbC5SRVBFQVQsCisgICAgIGV4
cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCisgICAge3RhcmdldDogZ2wuVEVYVFVSRV8y
RCwKKyAgICAgcG5hbWU6IDB4ODEzQSwgLy8gR0xfVEVYVFVSRV9NSU5fTE9ECisgICAgIHBhcmFt
OiAwLAorICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAorICAgIHt0YXJnZXQ6
IGdsLlRFWFRVUkVfMkQsCisgICAgIHBuYW1lOiBnbC5URVhUVVJFX1dSQVBfVCwKKyAgICAgcGFy
YW06IDB4MjkwMCwgLy8gR0xfQ0xBTVAKKyAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9F
TlVNfSwKKyAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAorICAgICBwbmFtZTogZ2wuVEVYVFVS
RV9XUkFQX1QsCisgICAgIHBhcmFtOiBnbC5SRVBFQVQsCisgICAgIGV4cGVjdGVkRXJyb3I6IGds
Lk5PX0VSUk9SfSBdOworCitmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdENhc2VzLmxlbmd0aDsg
KytpaSkKKyAgICB0ZXN0VGV4UGFyYW1ldGVyKHRlc3RDYXNlc1tpaV0pOworCitkZWJ1ZygiIik7
CitkZWJ1ZygiQ2hlY2tpbmcgR2V0VGV4UGFyYW1ldGVyOiBhIHNldCBvZiBpbnB1dHMgdGhhdCBh
cmUgdmFsaWQgaW4gR0wgYnV0IGludmFsaWQgaW4gR0xFUzIiKTsKKwordGVzdENhc2VzID0KKyAg
WyB7dGFyZ2V0OiAweDBERTAsIC8vIEdMX1RFWFRVUkVfMUQKKyAgICAgcG5hbWU6IGdsLlRFWFRV
UkVfV1JBUF9ULAorICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAorICAgIHt0
YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCisgICAgIHBuYW1lOiAweDgxM0EsIC8vIEdMX1RFWFRVUkVf
TUlOX0xPRAorICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAorICAgIHt0YXJn
ZXQ6IGdsLlRFWFRVUkVfMkQsCisgICAgIHBuYW1lOiBnbC5URVhUVVJFX1dSQVBfVCwKKyAgICAg
ZXhwZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9IF07CisKK2ZvciAodmFyIGlpID0gMDsgaWkgPCB0
ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQorICAgIHRlc3RHZXRUZXhQYXJhbWV0ZXIodGVzdENhc2Vz
W2lpXSk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVja2luZyBDb3B5VGV4SW1hZ2UyRDogYSBz
ZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdMIGJ1dCBpbnZhbGlkIGluIEdMRVMyIik7
CisKK3ZhciBjb2xvckJ1ZmZlciA9IG51bGw7Cit2YXIgZmJvID0gbnVsbDsKKworc2hvdWxkQmVO
b25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7CitnbC5iaW5kRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7CitzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKK2dsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVS
QlVGRkVSLCBjb2xvckJ1ZmZlcik7CitnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFN
RUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZm
ZXIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisKK3Rlc3RDYXNlcyA9Cisg
IFsge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKKyAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGdsLlJH
QjU2NSwKKyAgICAgaW50ZXJuYWxGb3JtYXQ6IDB4ODA1NCwgLy8gR0xfUkdCMTYKKyAgICAgYm9y
ZGVyOiAwLAorICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAorICAgIHt0YXJn
ZXQ6IGdsLlRFWFRVUkVfMkQsCisgICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCisg
ICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAorICAgICBib3JkZXI6IDEsCisgICAgIGV4cGVj
dGVkRXJyb3I6IGdsLklOVkFMSURfVkFMVUV9LAorICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQs
CisgICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCisgICAgIGludGVybmFsRm9ybWF0
OiBnbC5SR0JBLAorICAgICBib3JkZXI6IDAsCisgICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFM
SURfT1BFUkFUSU9OfSwKKyAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAorICAgICBjb2xvckJ1
ZmZlckZvcm1hdDogZ2wuUkdCNTY1LAorICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCLAorICAg
ICBib3JkZXI6IDAsCisgICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9SfSBdOworCitmb3Ig
KHZhciBpaSA9IDA7IGlpIDwgdGVzdENhc2VzLmxlbmd0aDsgKytpaSkKKyAgICB0ZXN0Q29weVRl
eEltYWdlMkQodGVzdENhc2VzW2lpXSk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVja2luZyBD
b3B5VGV4U3ViSW1hZ2UyRDogYSBzZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdMIGJ1
dCBpbnZhbGlkIGluIEdMRVMyIik7CisKK3Rlc3RDYXNlcyA9CisgIFsge3RhcmdldDogZ2wuVEVY
VFVSRV8yRCwKKyAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGdsLlJHQjVfQTEsCisgICAgIGludGVy
bmFsRm9ybWF0OiBnbC5SR0JBLAorICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0sCisg
ICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKKyAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGdsLlJH
QjU2NSwKKyAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCisgICAgIGV4cGVjdGVkRXJyb3I6
IGdsLklOVkFMSURfT1BFUkFUSU9OfSBdOworCitmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdENh
c2VzLmxlbmd0aDsgKytpaSkKKyAgICB0ZXN0Q29weVRleFN1YkltYWdlMkQodGVzdENhc2VzW2lp
XSk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVja2luZyBDb3B5VGV4e1N1Yn1JbWFnZTJEOiBj
b3B5IGZyb20gV2ViR0wgaW50ZXJuYWwgZnJhbWVidWZmZXIiKTsKKwordGVzdENhc2VzID0KKyAg
WyB7Y29udGV4dEFscGhhOiB0cnVlLAorICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKKyAg
ICAgc3ViSW1hZ2U6IGZhbHNlLAorICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0sCisg
ICAge2NvbnRleHRBbHBoYTogZmFsc2UsCisgICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAor
ICAgICBzdWJJbWFnZTogZmFsc2UsCisgICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfT1BF
UkFUSU9OfSwKKyAgICB7Y29udGV4dEFscGhhOiB0cnVlLAorICAgICBpbnRlcm5hbEZvcm1hdDog
Z2wuUkdCQSwKKyAgICAgc3ViSW1hZ2U6IHRydWUsCisgICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5P
X0VSUk9SfSwKKyAgICB7Y29udGV4dEFscGhhOiBmYWxzZSwKKyAgICAgaW50ZXJuYWxGb3JtYXQ6
IGdsLlJHQkEsCisgICAgIHN1YkltYWdlOiB0cnVlLAorICAgICBleHBlY3RlZEVycm9yOiBnbC5J
TlZBTElEX09QRVJBVElPTn0gXTsKKworZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5s
ZW5ndGg7ICsraWkpCisgICAgdGVzdENvcHlGcm9tSW50ZXJuYWxGQk8odGVzdENhc2VzW2lpXSk7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3Mu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYTBkYWQ2NTQyOGYxMzQyZmJmMjkzZjE4ODVmZDBkNDAzYTYyZTYyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sCkBAIC0wLDAgKzEs
OTMgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
CisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8Y2FudmFzIGlkPSJ0ZXN0YmVkIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwv
Y2FudmFzPgorPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0ZXhTdWJJbWFnZTJE
IHdpdGggYmFkIGFyZ3VtZW50cycpOworCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIg
YyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjIik7CisKK3ZhciBnbCA9IHd0dS5jcmVhdGUz
RENvbnRleHQoInRlc3RiZWQiKTsKK3ZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CitnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKK2dsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTZXR1cCBzaG91bGQgc3VjY2VlZCIpOyAKKworZ2wu
dGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBjKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInkgKyBo
ZWlnaHQgPiB0ZXh0dXJlIGhlaWdodCIpOworZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKK2dsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInggKyB3aWR0aCA+IHRleHR1cmUgd2lkdGgiKTsKK2ds
LnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgLTEsIDAsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGMpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAibmVn
YXRpdmUgeCIpOworZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAtMSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFM
SURfVkFMVUUsICJuZWdhdGl2ZSB5Iik7CitnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IC0xLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKK2dsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5lZ2F0aXZlIGxldmVsIik7CitnbC50ZXhTdWJJbWFn
ZTJEKGdsLkZMT0FULCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0VOVU0sICJiYWQgdGFyZ2V0Iik7CitnbC50ZXhT
dWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImdvb2QgYXJncyIpOwor
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQiwgZ2wuVU5TSUdO
RURfQllURSwgYyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAi
Zm9ybWF0IG5vdCBzYW1lIGFzIG9yaWdpbmFsIik7CitnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwgYyk7Citn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAidHlwZSBub3Qgc2FtZSBh
cyBvcmlnaW5hbCIpOworZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGds
LlJHQiwgZ2wuVU5TSUdORURfQllURSwgYyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SLCAibWFrZSB0ZXh0dXJlIFJHQiIpOworZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCAwLDAsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwgYyk7CitnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLCAiZm9ybWF0IHNhbWUgYXMgb3JpZ2luYWwgUkdCIik7CitnbC50ZXhT
dWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgYyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZm9ybWF0
IG5vdCBzYW1lIGFzIG9yaWdpbmFsIFJHQiIpOworZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCAwLDAsIGdsLlJHQiwgZ2wuVU5TSUdORURfU0hPUlRfNV82XzUsIGMpOworZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgInR5cGUgbm90IHNhbWUgYXMgb3Jp
Z2luYWwgUkdCIik7CitnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIGMpOworZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgIm1ha2UgdGV4dHVyZSBSR0JBIDRfNF80XzQiKTsKK2dsLnRleFN1Yklt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9TSE9SVF80
XzRfNF80LCBjKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJmb3JtYXQgc2Ft
ZSBhcyBvcmlnaW5hbCBSR0JBIDRfNF80XzQiKTsKK2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImZvcm1hdCBub3Qgc2FtZSBhcyBvcmlnaW5h
bCBSR0JBIDRfNF80XzQiKTsKK2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCww
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sICJ0eXBlIG5vdCBzYW1lIGFzIG9yaWdpbmFsIFJHQkEgNF80XzRf
NCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxY2YwOTZhNTNhN2Ri
NTlhMWVkMzNlZWVjNTk2Nzk5YmZlNDFkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtc3ViLWltYWdlLTJkLmh0bWwKQEAgLTAsMCArMSwxMjMgQEAKKzwhLS0KKworLyoKKyoqIENv
cHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJp
YWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9u
IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMs
IGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
KyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9S
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK
KyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBN
QVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1bmlmb3Jt
IHNhbXBsZXIyRCB0ZXg7Cit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7CisKK3ZvaWQgbWFpbigpCit7
CisgICAgZmxvYXQgaW50ZW5zaXR5ID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpLmE7CisgICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNChpbnRlbnNpdHksIGludGVuc2l0eSwgaW50ZW5zaXR5LCAxLjAp
OworfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjI1NiIgaGVpZ2h0PSIxIj48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsK
K2Rlc2NyaXB0aW9uKCdUZXN0cyB0ZXhTdWJJbWFnZTJEIHVwbG9hZCBwYXRoIGZyb20gVWludDhB
cnJheScpOworCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgY2FudmFzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoY2FudmFzKTsKK2dsLmRpc2FibGUoZ2wuRElUSEVSKTsKK3ZhciBwcm9ncmFtID0gd3R1LnNl
dHVwUHJvZ3JhbSgKKyAgICBnbCwKKyAgICBbd3R1LnNldHVwU2ltcGxlVGV4dHVyZVZlcnRleFNo
YWRlcihnbCksICJmc2hhZGVyIl0sCisgICAgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10pOwor
d3R1LnNldHVwVW5pdFF1YWQoZ2wpOwordmFyIHRleHR1cmVXaWR0aCA9IDI1NjsKK3ZhciB0ZXh0
dXJlSGVpZ2h0ID0gMTsKKwordmFyIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
cHJvZ3JhbSwgInRleCIpOworCit2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKK2ds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CitnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9U
T19FREdFKTsKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5ORUFSRVNUKTsKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKy8vIEFsbG9jYXRlIHRoZSB0ZXh0dXJl
IG9iamVjdAorZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5BTFBIQSwgdGV4dHVy
ZVdpZHRoLCB0ZXh0dXJlSGVpZ2h0LCAwLCBnbC5BTFBIQSwgZ2wuVU5TSUdORURfQllURSwgbnVs
bCk7CisvLyBQcmVwYXJlIHRoZSBpbWFnZSBkYXRhCit2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJh
eSh0ZXh0dXJlV2lkdGgpOworZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0dXJlV2lkdGg7IGkrKykK
KyAgICBhcnJheVtpXSA9IGk7CisvLyBGaWxsIHRoZSB0ZXh0dXJlIG9iamVjdCB3aXRoIGRhdGEg
LS0gdGhpcyBpcyBhY3R1YWxseSB0aGUgY29kZSBwYXRoIGJlaW5nIHRlc3RlZAorZ2wudGV4U3Vi
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0ZXh0dXJlV2lkdGgsIHRleHR1cmVIZWln
aHQsIGdsLkFMUEhBLCBnbC5VTlNJR05FRF9CWVRFLCBhcnJheSk7CisKKy8vIENsZWFyIGFuZCBz
ZXQgdXAKK2dsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklU
KTsKK2dsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworZ2wudXNlUHJvZ3Jh
bShwcm9ncmFtKTsKK2dsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKKy8vIERyYXcgdGhlIHRl
eHR1cmUgdG8gdGhlIGZyYW1lIGJ1ZmZlcgorZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAs
IDYpOworCisvLyBSZWFkIGJhY2sgdGhlIGZyYW1lIGJ1ZmZlcgordmFyIGJ1ZiA9IG5ldyBVaW50
OEFycmF5KHRleHR1cmVXaWR0aCAqIHRleHR1cmVIZWlnaHQgKiA0KTsKK2dsLnJlYWRQaXhlbHMo
MCwgMCwgdGV4dHVyZVdpZHRoLCB0ZXh0dXJlSGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBidWYpOworCisvLyBWZXJpZnkgdGhlIGZyYW1lIGJ1ZmZlcidzIGNvbnRlbnRzCit2YXIg
cGFzc2VkID0gdHJ1ZTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgdGV4dHVyZVdpZHRoOyBpKyspIHsK
KyAgICB2YXIgdmFsID0gaTsKKyAgICBpZiAoYnVmWzQgKiBpICsgMF0gIT0gdmFsIHx8CisgICAg
ICAgIGJ1Zls0ICogaSArIDFdICE9IHZhbCB8fAorICAgICAgICBidWZbNCAqIGkgKyAyXSAhPSB2
YWwpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgicGl4ZWwgYXQgKCIgKyBpICsgIiwgMCkgd2FzICgi
ICsKKyAgICAgICAgICAgICAgICAgICBidWZbNCAqIGkgKyAwXSArICIsICIgKworICAgICAgICAg
ICAgICAgICAgIGJ1Zls0ICogaSArIDFdICsgIiwgIiArCisgICAgICAgICAgICAgICAgICAgYnVm
WzQgKiBpICsgMl0gKyAiKSwgc2hvdWxkIGJlICgiICsKKyAgICAgICAgICAgICAgICAgICB2YWwg
KyAiLCAiICsgdmFsICsgIiwgIiArIHZhbCArICIpIik7CisgICAgICAgIHBhc3NlZCA9IGZhbHNl
OworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK2lmIChwYXNzZWQpCisgICAgdGVzdFBhc3Nl
ZCgiIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4cGFyYW1ldGVyLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWM0NDUyMzMy
YmVhYjNjNjA5MzY3NjU3ODI1ZjY5ODIyODA1N2FmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4cGFyYW1ldGVyLXRlc3QuaHRtbApAQCAtMCwwICsxLDIwNiBAQAorPCEtLQorCisvKgor
KiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBN
YXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisq
KiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVy
aWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJl
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJF
U1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisq
KiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g
VEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+V2ViR0wgVGV4UGFyYW1l
dGVyIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQi
PjwvY2FudmFzPgorPGNhbnZhcyBpZD0iY2FudmFzMmQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjwv
Y2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Cit1
bmlmb3JtIG1hdDQgd29ybGQ7CithdHRyaWJ1dGUgdmVjMyB2UG9zaXRpb247CithdHRyaWJ1dGUg
dmVjMiB0ZXhDb29yZDA7Cit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Cit2b2lkIG1haW4oKQorewor
ICBnbF9Qb3NpdGlvbiA9IHdvcmxkICogdmVjNCh2UG9zaXRpb24sIDEpOworICB0ZXhDb29yZCA9
IHRleENvb3JkMDsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1bmlmb3Jt
IHNhbXBsZXIyRCB0ZXg7Cit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Cit2b2lkIG1haW4oKQorewor
ICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodGV4LCB0ZXhDb29yZCk7Cit9Cis8L3NjcmlwdD4K
KworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Z1bmN0aW9uIGluaXQoKQoreworICBkZXNjcmlw
dGlvbigiVGVzdHMgVGV4UGFyYW1ldGVyIHdvcmtzIGFzIGV4cGVjdGVkIik7CisgIGRlYnVnKCIi
KTsKKworICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMmQi
KTsKKyAgdmFyIGN0eDJkID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKKworICB2YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7CisgIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1w
bGUiKTsKKyAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIiLCAi
ZnNoYWRlciJdLCBbInZQb3NpdGlvbiIsICJ0ZXhDb29yZDAiXSk7CisKKyAgdmFyIHZlcnRleE9i
amVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZF
UiwgdmVydGV4T2JqZWN0KTsKKyAgZ2wuYnVmZmVyRGF0YSgKKyAgICAgIGdsLkFSUkFZX0JVRkZF
UiwKKyAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWy0xLCAxLDAsIDEsMSwwLCAtMSwtMSwwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLTEsLTEsMCwgMSwxLDAsICAxLC0xLDBdKSwKKyAgICAg
IGdsLlNUQVRJQ19EUkFXKTsKKyAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CisgIGds
LnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKworICB2
YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wu
QVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOworICBnbC5idWZmZXJEYXRhKAorICAgICAgZ2wu
QVJSQVlfQlVGRkVSLAorICAgICAgbmV3IEZsb2F0MzJBcnJheShbIC0yLjUsLTIuNSwgMy41LC0y
LjUsIC0yLjUsMy41LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0yLjUsMy41LCAzLjUs
LTIuNSwgMy41LDMuNV0pLAorICAgICAgZ2wuU1RBVElDX0RSQVcpOworICBnbC5lbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheSgxKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5GTE9B
VCwgZmFsc2UsIDAsIDApOworCisgIHZhciBjb2xvcnMgPSBbCisgICAgICBbMCwyNTUsMTI4LDI1
NV0sCisgICAgICBbMTI4LDY0LDI1NSwyNTVdLAorICAgICAgWzE5MiwyNTUsNjQsMjU1XSwKKyAg
ICAgIFsyMDAsMCwyNTUsMjU1XV07CisgIHZhciB0ZXhQYXJhbSA9IFsKKyAgICBnbC5SRVBFQVQs
CisgICAgZ2wuQ0xBTVBfVE9fRURHRSwKKyAgICBnbC5NSVJST1JFRF9SRVBFQVQsCisgICAgZ2wu
UkVQRUFUXTsKKworICAvLyBNYWtlIHRleHR1cmVzIHNldHRpbmcgdGhlIHRleHR1cmUgcGFyYW1l
dGVycyBkaWZmZXJlbnRseSBlYWNoIHRpbWUuLgorICAvLyBUaGlzIHZlcmlmaWVzIGJvdGggdGhh
dCB0aGUgcmVuZGVyIGNvcnJlY3QgQU5EIHRoYXQgdGV4dHVyZSBwYXJhbWV0ZXJzCisgIC8vIGFy
ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHRleHR1cmVzLCBub3Qgd2l0aCB0aGUgdGV4dHVyZS11bml0
cy4KKyAgdmFyIHRleHR1cmVzID0gW107CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMu
bGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIGMgPSBjb2xvcnNbaWldOworICAgIGN0eDJkLmZpbGxT
dHlsZSA9CisgICAgICAgICJyZ2JhKCIgKyBjWzBdICsgIiwiICsgY1sxXSArICIsIiArIGNbMl0g
KyAiLCIgKyBjWzNdICsgIikiOworICAgIGN0eDJkLmZpbGxSZWN0KDAsIDAsIDEsIDEpOworICAg
IHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4KTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKKyAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxU
RVIsIGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9XUkFQX1MsIHRleFBhcmFtW2lpXSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgdGV4UGFyYW1baWldKTsKKyAgICB0ZXh0dXJl
c1tpaV0gPSB0ZXg7CisgIH0KKworICB2YXIgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbihwcm9ncmFtLCAidGV4Iik7CisgIHZhciB3b3JsZExvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbihwcm9ncmFtLCAid29ybGQiKTsKKworICBnbC5jbGVhckNvbG9yKDEsMSwxLDEpOworICBn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisKKyAg
Zm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9ycy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgeCA9
IGlpICUgMjsKKyAgICB2YXIgeSA9IE1hdGguZmxvb3IoaWkgLyAyKTsKKyAgICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlc1tpaV0pOworICAgIGdsLnVuaWZvcm1NYXRyaXg0
ZnYoCisgICAgICAgIHdvcmxkTG9jLCBmYWxzZSwKKyAgICAgICAgWzAuNSwgMCwgMCwgMCwKKyAg
ICAgICAgIDAsIDAuNSwgMCwgMCwKKyAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAtMC41
ICsgeCwgLTAuNSArIHksIDAsIDFdKTsKKyAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywg
MCwgNik7CisgIH0KKworICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoMjQgKiAyNCAqIDQpOwor
ICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDI0LCAyNCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
YnVmKTsKKyAgdmFyIHBhc3NlZCA9IHRydWU7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xv
cnMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHggPSBpaSAlIDI7CisgICAgdmFyIHkgPSBNYXRo
LmZsb29yKGlpIC8gMik7CisgICAgdmFyIGMgPSBjb2xvcnNbaWldOworICAgIGZvciAodmFyIHl5
ID0gMDsgeXkgPCAxMjsgKyt5eSkgeworICAgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8IDEyOyAr
K3h4KSB7CisgICAgICAgIHZhciBlYyA9IFswLDAsMCwwXTsKKyAgICAgICAgc3dpdGNoICh0ZXhQ
YXJhbVtpaV0pIHsKKyAgICAgICAgICBjYXNlIGdsLlJFUEVBVDoKKyAgICAgICAgICAgIGlmICh4
eCAlIDIgPT0gMSAmJiB5eSAlIDIgPT0gMCkgeworICAgICAgICAgICAgICBlYyA9IGM7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIGdsLkNMQU1QX1RP
X0VER0U6CisgICAgICAgICAgICBpZiAoeHggPCA2ICYmIHl5ID49IDYpIHsKKyAgICAgICAgICAg
ICAgZWMgPSBjOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
Y2FzZSBnbC5NSVJST1JFRF9SRVBFQVQ6CisgICAgICAgICAgICBpZiAoeHggJSA0IDwgMiAmJiB5
eSAlIDQgPj0gMikgeworICAgICAgICAgICAgICBlYyA9IGM7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB2YXIgb2ZmID0gKCh5ICogMTIgKyB5
eSkgKiAyNCArIHggKiAxMiArIHh4KSAqIDQ7CisgICAgICAgIGlmIChidWZbb2ZmICsgMF0gIT0g
ZWNbMF0gfHwKKyAgICAgICAgICAgIGJ1ZltvZmYgKyAxXSAhPSBlY1sxXSB8fAorICAgICAgICAg
ICAgYnVmW29mZiArIDJdICE9IGVjWzJdIHx8CisgICAgICAgICAgICBidWZbb2ZmICsgM10gIT0g
ZWNbM10pIHsKKyAgICAgICAgICB2YXIgbXNnID0gJ2F0ICgnICsgKHggKiAxMiArIHh4KSArICcs
ICcgKyAoeSAqIDEyICsgeXkpICsKKyAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6ICcgKworICAg
ICAgICAgICAgICBlY1swXSArICcsICcgKyBlY1sxXSArICcsICcgKyBlY1syXSArICcsICcgKyBl
Y1szXSArICcgZm91bmQ6ICcgKworICAgICAgICAgICAgICBidWZbb2ZmICsgMF0gKyAnLCAnICsK
KyAgICAgICAgICAgICAgYnVmW29mZiArIDFdICsgJywgJyArCisgICAgICAgICAgICAgIGJ1Zltv
ZmYgKyAyXSArICcsICcgKworICAgICAgICAgICAgICBidWZbb2ZmICsgM107CisgICAgICAgICAg
dGVzdEZhaWxlZChtc2cpOworICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOworICAgICAgICB9Cisg
ICAgICB9CisgICAgfQorICB9CisgIGlmIChwYXNzZWQpIHsKKyAgICB0ZXN0UGFzc2VkKCJyZW5k
ZXJlZCBhcyBleHBlY3RlZCIpOworICAgfQorfQorCitpbml0KCk7Cit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhOWEyOGQzMjk3ZWQ2
OGRlMDRjZTgwZDA2MzA1NmEyY2MyOTc0NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1sCkBAIC0wLDAgKzEsMTk5IEBACis8IS0tCisK
Ky8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4g
dGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg
TWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFs
cyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxT
IEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiog
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBUZXh0dXJlIEF0
dGFjaG1lbnQgRm9ybWF0IENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9Indp
ZHRoOiAxMDBweDsgaGVpZ2h0OjEwMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPiA8L2Nh
bnZhcz4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigpOworCit2YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjYW52YXMi
KTsKK2lmICghZ2wpIHsKKyAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOwor
fSBlbHNlIHsKKyAgdGVzdFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKKworICBkZWJ1ZygiIik7
CisgIGRlYnVnKCJDaGVja2luZyB0ZXh0dXJlIGZvcm1hdHMuIik7CisKKyAgdmFyIG51bVZhbGlk
Rm9ybWF0cyA9IDA7CisgIHZhciBjbGVhckNvbG9yID0gWzAuMjUsIDAuNSwgMC43NSwgMC4yNV07
CisKKyAgdmFyIGZsb2F0VG9CaXRzID0gZnVuY3Rpb24odmFsdWUsIGJpdHMpIHsKKyAgICB2YXIg
cmFuZ2UgPSAoMSA8PCBiaXRzKSAtIDE7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgaWYgKHJh
bmdlID4gMCkgeworICAgICAgcmVzdWx0ID0gTWF0aC5mbG9vcihNYXRoLmZsb29yKHZhbHVlICog
cmFuZ2UpICogMjU1IC8gcmFuZ2UpOworICAgIH0KKworICAgIC8vZGVidWcoInYgPSAiICsgdmFs
dWUgKyAiLCBiaXRzID0gIiArIGJpdHMgKyAiLCByYW5nZSA9ICIgKyByYW5nZSAgKyAiLCByZXN1
bHQgPSAiICsgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgdmFyIHRlc3RG
b3JtYXQgPSBmdW5jdGlvbihpbmZvKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJ0ZXN0
aW5nOiAiICsgaW5mby5mb3JtYXQgKyAiLCAiICsgaW5mby50eXBlKTsKKworICAgIHZhciBmb3Jt
YXQgPSBnbFtpbmZvLmZvcm1hdF07CisgICAgdmFyIHR5cGUgPSBnbFtpbmZvLnR5cGVdOworCisg
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELAorICAgICAgICAgICAgICAgICAgMCwgICAg
ICAgICAgICAgICAgIC8vIGxldmVsCisgICAgICAgICAgICAgICAgICBmb3JtYXQsICAgICAgICAg
ICAgLy8gaW50ZXJuYWxGb3JtYXQKKyAgICAgICAgICAgICAgICAgIDE2LCAgICAgICAgICAgICAg
ICAvLyB3aWR0aAorICAgICAgICAgICAgICAgICAgMTYsICAgICAgICAgICAgICAgIC8vIGhlaWdo
dAorICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgIC8vIGJvcmRlcgorICAgICAg
ICAgICAgICAgICAgZm9ybWF0LCAgICAgICAgICAgIC8vIGZvcm1hdAorICAgICAgICAgICAgICAg
ICAgdHlwZSwgICAgICAgICAgICAgIC8vIHR5cGUKKyAgICAgICAgICAgICAgICAgIG51bGwpOyAg
ICAgICAgICAgICAvLyBkYXRhCisgICAgdmFyIGZiU3RhdHVzID0gZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUik7CisgICAgZGVidWcod3R1LmdsRW51bVRvU3RyaW5nKGds
LCBmYlN0YXR1cykpOworICAgIGlmIChmYlN0YXR1cyAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVU
RSkgeworICAgICAgZGVidWcoImZvcm1hdCB1bnN1cHBvcnRlZCIpOworICAgICAgaWYgKGluZm8u
bXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZSkgeworICAgICAgICB0ZXN0RmFpbGVkKGluZm8uZm9y
bWF0ICsgIiBtdXN0IGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIik7CisgICAgICB9CisgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgKytudW1WYWxpZEZvcm1hdHM7CisKKyAgICB2YXIgc3RhcnRF
eHBlY3RlZCA9IFswLCAwLCAwLCBpbmZvLmNoYW5uZWxzWzNdIDwgMCA/IDI1NSA6IDBdOworCisg
ICAgdmFyIGV4cGVjdGVkID0gW107CisgICAgdmFyIHRvbGVyYW5jZSA9IFtdOworICAgIGZvciAo
dmFyIGlpID0gMDsgaWkgPCA0OyArK2lpKSB7CisgICAgICB2YXIgY29sb3IgPSAwOworICAgICAg
dmFyIGNoYW5uZWwgPSBpbmZvLmNoYW5uZWxzW2lpXTsKKyAgICAgIGlmIChjaGFubmVsIDwgMCkg
eworICAgICAgICBjb2xvciA9IGlpIDwgMyA/IDAgOiAyNTUKKyAgICAgIH0gZWxzZSB7CisgICAg
ICAgIGNvbG9yID0gZmxvYXRUb0JpdHMoY2xlYXJDb2xvcltjaGFubmVsXSwgaW5mby5iaXRzW2lp
XSk7CisgICAgICB9CisgICAgICBleHBlY3RlZC5wdXNoKGNvbG9yKTsKKyAgICAgIHRvbGVyYW5j
ZS5wdXNoKGNoYW5uZWwgPCAwID8gMCA6ICgxICsgKDEgPDwgKDggLSBpbmZvLmJpdHNbaWldKSkp
KTsKKyAgICB9CisKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIHN0YXJ0RXhwZWN0ZWQsICJzaG91
bGQgYmUgIiArIHN0YXJ0RXhwZWN0ZWQpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9C
SVQpOworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgZXhwZWN0ZWQsICJzaG91bGQgYmUgIiArIGV4
cGVjdGVkICsgIiB3aXRoIHRvbGVyYW5jZSAiICsgdG9sZXJhbmNlLCB0b2xlcmFuY2UpOworICB9
CisKKyAgdmFyIHZhbGlkRm9ybWF0cyA9IFsKKyAgICB7IGZvcm1hdDogJ1JHQkEnLAorICAgICAg
dHlwZTogICdVTlNJR05FRF9CWVRFJywKKyAgICAgIGNoYW5uZWxzOiBbMCwgMSwgMiwgM10sCisg
ICAgICBiaXRzOiBbOCwgOCwgOCwgOF0sCisgICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRl
OiB0cnVlCisgICAgfSwKKyAgICB7IGZvcm1hdDogJ0FMUEhBJywKKyAgICAgIHR5cGU6ICAnVU5T
SUdORURfQllURScsCisgICAgICBjaGFubmVsczogWy0xLCAtMSwgLTEsIDNdLAorICAgICAgYml0
czogWzAsIDAsIDAsIDhdLAorICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UK
KyAgICB9LAorICAgIHsgZm9ybWF0OiAnUkdCJywKKyAgICAgIHR5cGU6ICAnVU5TSUdORURfQllU
RScsCisgICAgICBjaGFubmVsczogWzAsIDEsIDIsIC0xXSwKKyAgICAgIGJpdHM6IFs4LCA4LCA4
LCAwXSwKKyAgICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCisgICAgfSwKKyAg
ICB7IGZvcm1hdDogJ1JHQicsCisgICAgICB0eXBlOiAgJ1VOU0lHTkVEX1NIT1JUXzVfNl81JywK
KyAgICAgIGNoYW5uZWxzOiBbMCwgMSwgMiwgLTFdLAorICAgICAgYml0czogWzUsIDYsIDUsIDBd
LAorICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UKKyAgICB9LAorICAgIHsg
Zm9ybWF0OiAnUkdCQScsCisgICAgICB0eXBlOiAgJ1VOU0lHTkVEX1NIT1JUXzVfNV81XzEnLAor
ICAgICAgY2hhbm5lbHM6IFswLCAxLCAyLCAzXSwKKyAgICAgIGJpdHM6IFs1LCA1LCA1LCAxXSwK
KyAgICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCisgICAgfSwKKyAgICB7IGZv
cm1hdDogJ1JHQkEnLAorICAgICAgdHlwZTogICdVTlNJR05FRF9TSE9SVF80XzRfNF80JywKKyAg
ICAgIGNoYW5uZWxzOiBbMCwgMSwgMiwgM10sCisgICAgICBiaXRzOiBbNCwgNCwgNCwgNF0sCisg
ICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiBmYWxzZQorICAgIH0sCisgICAgeyBmb3Jt
YXQ6ICdMVU1JTkFOQ0UnLAorICAgICAgdHlwZTogICdVTlNJR05FRF9CWVRFJywKKyAgICAgIGNo
YW5uZWxzOiBbMCwgMCwgMCwgLTFdLAorICAgICAgYml0czogWzgsIDgsIDgsIC0xXSwKKyAgICAg
IG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCisgICAgfSwKKyAgICB7IGZvcm1hdDog
J0xVTUlOQU5DRV9BTFBIQScsCisgICAgICB0eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAorICAgICAg
Y2hhbm5lbHM6IFswLCAwLCAwLCAzXSwKKyAgICAgIGJpdHM6IFs4LCA4LCA4LCA4XSwKKyAgICAg
IG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCisgICAgfQorICBdOworCisgIGdsLmNs
ZWFyQ29sb3IoY2xlYXJDb2xvclswXSwgY2xlYXJDb2xvclsxXSwgY2xlYXJDb2xvclsyXSwgY2xl
YXJDb2xvclszXSk7CisgIHZhciBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICBnbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7CisgIHZhciB0ZXggPSBnbC5jcmVh
dGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1Q
X1RPX0VER0UpOworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
V1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CisgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOworICBn
bC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgKKyAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKTsKKworICBmb3IgKHZhciBpaSA9IDA7
IGlpIDwgdmFsaWRGb3JtYXRzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBpbmZvID0gdmFsaWRG
b3JtYXRzW2lpXTsKKyAgICB0ZXN0Rm9ybWF0KGluZm8pOworICB9CisKKyAgZGVidWcoIiIpOwor
ICBzaG91bGRCZVRydWUoIm51bVZhbGlkRm9ybWF0cyA+IDAiKTsKKyAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMiKTsKK30KKworZGVi
dWcoIiIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTEwMTY0MWYxYTI3YzBj
ZjdmNmEyYzlmOWNiY2QyMzIyOWFjNmE1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtY2xlYXIuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmln
aHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
CisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUg
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQg
dG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgor
KiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
CisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJ
QUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCB0ZXh0dXJlIGNsZWFyIGNvbmZvcm1hbmNl
IHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiAzMHB4
OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbihkb2N1bWVu
dC50aXRsZSk7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCJleGFtcGxlIik7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVh
ZChnbCk7CisKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8g
ZXJyb3JzIGZyb20gc2V0dXAuIik7CisKK3ZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Citn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCAxLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBu
dWxsKTsKK2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMSwgMSwgMCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkoWzAsMjU1LDAsMjU1XSkp
Oword3R1LmRyYXdRdWFkKGdsKTsKK3d0dS5jaGVja0NhbnZhcygKKyAgICBnbCwgWzAsIDI1NSwg
MCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1j
b21wbGV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjN2M3MGQzMjYwZmNjYzY2YmUzNzhiMjA4ZGRkYWM3
NmRlMDljNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNvbXBsZXRlLmh0
bWwKQEAgLTAsMCArMSw4NiBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQor
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgor
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0t
PgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgIlRleHR1cmUgQ29tcGxldGUiIHRleHR1cmUgY29uZm9ybWFuY2Ug
dGVzdC48L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4
OyI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJjYW52YXMyZCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2
IiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
InVzZSBzdHJpY3QiOworZnVuY3Rpb24gaW5pdCgpCit7CisgIGRlc2NyaXB0aW9uKAorICAgICAg
IkNoZWNrcyB0aGF0IGEgdGV4dHVyZSB0aGF0IGlzIG5vdCAtdGV4dHVyZS1jb21wbGV0ZS0gZG9l
cyBub3QgZHJhdyBpZiIrCisgICAgICAiIGZpbHRlcmluZyBuZWVkcyBtaXBzIik7CisKKyAgdmFy
IGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczJkIik7CisgIHZhciBj
dHgyZCA9IGNhbnZhczJkLmdldENvbnRleHQoIjJkIik7CisgIGN0eDJkLmZpbGxTdHlsZSA9ICJy
Z2JhKDAsMTkyLDEyOCwxKSI7CisgIGN0eDJkLmZpbGxSZWN0KDAsIDAsIDE2LCAxNik7CisKKyAg
dmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImV4YW1wbGUiKTsKKyAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52
YXMpOworICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CisKKyAgZ2wu
ZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKKyAgZ2wuZGlzYWJsZShnbC5CTEVORCk7CisKKyAgdmFy
IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgdGV4KTsKKyAgLy8gMTZ4MTYgdGV4dHVyZSBubyBtaXBzCisgIGdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFz
MmQpOworCisgIHZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIp
OworICBnbC51bmlmb3JtMWkobG9jLCAwKTsKKworICB3dHUuZHJhd1F1YWQoZ2wpOworICB3dHUu
Y2hlY2tDYW52YXMoZ2wsIFswLDAsMCwyNTVdLAorICAgICAgInRleHR1cmUgdGhhdCBpcyBub3Qg
LXRleHR1cmUtY29tcGxldGUtIHdoZW4gIiArCisgICAgICAiVEVYVFVSRV9NSU5fRklMVEVSIG5v
dCBORUFSRVNUIG9yIExJTkVBUiBzaG91bGQgZHJhdyB3aXRoIDAsMCwwLDI1NSIpOworfQorCitp
bml0KCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwv
Ym9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1mb3JtYXRzLXRl
c3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjJjNzEwN2ViMzJiOTMzNjYxOTU3ODI5NjE1M2MyY2NhNDRmNTcyNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwKQEAgLTAsMCArMSwyOTEgQEAK
KzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIFRl
eHR1cmUgRm9ybWF0IENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMyZCIg
d2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IGJv
cmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdp
ZHRoPSIyIiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDoxMDBweDsgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7Ij4gPC9jYW52YXM+Cis8c2NyaXB0PgorInVzZSBzdHJpY3Qi
OworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGltcGxlbWVudGF0aW9ucyBh
bGxvdyB0aGUgT3BlbkdMIEVTIDIuMCB0ZXh0dXJlIGZvcm1hdHMgYW5kIGRvIG5vdCBhbGxvdyBE
ZXNrdG9wR0wgdGV4dHVyZSBmb3JtYXRzLiIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2FudmFz
LmdldENvbnRleHQiKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dCgiY2FudmFzIik7CitpZiAoIWdsKSB7CisgIHRlc3RGYWlsZWQoImNv
bnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgIHRlc3RQYXNzZWQoImNvbnRleHQg
ZXhpc3RzIik7CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiQ2hlY2tpbmcgdGV4dHVyZSBmb3Jt
YXRzLiIpOworCisgIHZhciBjcmVhdGVUZXh0dXJlID0gZnVuY3Rpb24oaW50ZXJuYWxGb3JtYXQs
IGZvcm1hdCwgb3B0X2JvcmRlcikgeworICAgICAgdmFyIGJvcmRlciA9IChvcHRfYm9yZGVyID09
PSB1bmRlZmluZWQpID8gMCA6IG9wdF9ib3JkZXI7CisgICAgICB2YXIgdGV4ID0gZ2wuY3JlYXRl
VGV4dHVyZSgpOworICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAg
ICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwKKyAgICAgICAgICAgICAgICAgICAgMCwg
ICAgICAgICAgICAgICAgIC8vIGxldmVsCisgICAgICAgICAgICAgICAgICAgIGludGVybmFsRm9y
bWF0LCAgICAvLyBpbnRlcm5hbEZvcm1hdAorICAgICAgICAgICAgICAgICAgICAxNiwgICAgICAg
ICAgICAgICAgLy8gd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgMTYsICAgICAgICAgICAgICAg
IC8vIGhlaWdodAorICAgICAgICAgICAgICAgICAgICBib3JkZXIsICAgICAgICAgICAgLy8gYm9y
ZGVyCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgICAgICAgICAgICAvLyBmb3JtYXQKKyAg
ICAgICAgICAgICAgICAgICAgZ2wuVU5TSUdORURfQllURSwgIC8vIHR5cGUKKyAgICAgICAgICAg
ICAgICAgICAgbnVsbCk7ICAgICAgICAgICAgIC8vIGRhdGEKKyAgfQorCisgIHZhciB0ZXN0VmFs
aWRGb3JtYXQgPSBmdW5jdGlvbihpbnRlcm5hbEZvcm1hdCwgZm9ybWF0TmFtZSkgeworICAgICAg
Y3JlYXRlVGV4dHVyZShpbnRlcm5hbEZvcm1hdCwgaW50ZXJuYWxGb3JtYXQpOworICAgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICAgICAid2FzIGFibGUg
dG8gY3JlYXRlIHRleHR1cmUgb2YgIiArIGZvcm1hdE5hbWUpOworICB9CisKKyAgdmFyIHRlc3RJ
bnZhbGlkRm9ybWF0ID0gZnVuY3Rpb24oaW50ZXJuYWxGb3JtYXQsIGZvcm1hdE5hbWUpIHsKKyAg
ICAgIGNyZWF0ZVRleHR1cmUoaW50ZXJuYWxGb3JtYXQsIGludGVybmFsRm9ybWF0KTsKKyAgICAg
IHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOworICAgICAgaWYgKGVyciA9PSBnbC5OT19FUlJPUikg
eworICAgICAgICAgIHRlc3RGYWlsZWQoInNob3VsZCBOT1QgYmUgYWJsZSB0byBjcmVhdGUgdGV4
dHVyZSBvZiB0eXBlICIgKyBmb3JtYXROYW1lKTsKKyAgICAgIH0gZWxzZSBpZiAoZXJyID09IGds
LklOVkFMSURfT1BFUkFUSU9OKSB7CisgICAgICAgICAgdGVzdEZhaWxlZCgic2hvdWxkIHJldHVy
biBnbC5JTlZBTElEX0VOVU0gZm9yIHR5cGUgIiArIGZvcm1hdE5hbWUpOworICAgICAgfSBlbHNl
IGlmIChlcnIgPT0gZ2wuSU5WQUxJRF9FTlVNKSB7CisgICAgICAgICAgdGVzdFBhc3NlZCgibm90
IGFibGUgdG8gY3JlYXRlIGludmFsaWQgZm9ybWF0OiAiICsgZm9ybWF0TmFtZSk7CisgICAgICB9
CisgIH0KKworICB2YXIgaW52YWxpZEVudW1zID0gWworICAgICcxJywKKyAgICAnMicsCisgICAg
JzMnLAorICAgICc0JywKKyAgICAnUkdCNCcsCisgICAgJ1JHQjUnLAorICAgICdSR0I4JywKKyAg
ICAnUkdCMTAnLAorICAgICdSR0IxMicsCisgICAgJ1JHQjE2JywKKyAgICAnUkdCQTInLAorICAg
ICdSR0JBNCcsCisgICAgJ1JHQjVfQTEnLAorICAgICdSR0JBOCcsCisgICAgJ1JHQjEwX0EyJywK
KyAgICAnUkdCQTEyJywKKyAgICAnUkdCQTE2JywKKyAgICAnQkdSJywKKyAgICAnQkdSQScsCisg
ICAgJ0FMUEhBNF9FWFQnLAorICAgICdBTFBIQThfRVhUJywKKyAgICAnQUxQSEExMl9FWFQnLAor
ICAgICdBTFBIQTE2X0VYVCcsCisgICAgJ0NPTVBSRVNTRURfQUxQSEEnLAorICAgICdDT01QUkVT
U0VEX0xVTUlOQU5DRScsCisgICAgJ0NPTVBSRVNTRURfTFVNSU5BTkNFX0FMUEhBJywKKyAgICAn
Q09NUFJFU1NFRF9JTlRFTlNJVFknLAorICAgICdDT01QUkVTU0VEX1JHQicsCisgICAgJ0NPTVBS
RVNTRURfUkdCQScsCisgICAgJ0RFUFRIX0NPTVBPTkVOVDE2JywKKyAgICAnREVQVEhfQ09NUE9O
RU5UMjQnLAorICAgICdERVBUSF9DT01QT05FTlQzMicsCisgICAgJ0xVTUlOQU5DRTRfRVhUJywK
KyAgICAnTFVNSU5BTkNFOF9FWFQnLAorICAgICdMVU1JTkFOQ0UxMl9FWFQnLAorICAgICdMVU1J
TkFOQ0UxNl9FWFQnLAorICAgICdMVU1JTkFOQ0U0X0FMUEhBNF9FWFQnLAorICAgICdMVU1JTkFO
Q0U2X0FMUEhBMl9FWFQnLAorICAgICdMVU1JTkFOQ0U4X0FMUEhBOF9FWFQnLAorICAgICdMVU1J
TkFOQ0UxMl9BTFBIQTRfRVhUJywKKyAgICAnTFVNSU5BTkNFMTJfQUxQSEExMl9FWFQnLAorICAg
ICdMVU1JTkFOQ0UxNl9BTFBIQTE2X0VYVCcsCisgICAgJ0lOVEVOU0lUWV9FWFQnLAorICAgICdJ
TlRFTlNJVFk0X0VYVCcsCisgICAgJ0lOVEVOU0lUWThfRVhUJywKKyAgICAnSU5URU5TSVRZMTJf
RVhUJywKKyAgICAnSU5URU5TSVRZMTZfRVhUJywKKyAgICAnUkdCNF9FWFQnLAorICAgICdSR0I1
X0VYVCcsCisgICAgJ1JHQjhfRVhUJywKKyAgICAnUkdCMTBfRVhUJywKKyAgICAnUkdCMTJfRVhU
JywKKyAgICAnUkdCMTZfRVhUJywKKyAgICAnUkdCQTJfRVhUJywKKyAgICAnUkdCQTRfRVhUJywK
KyAgICAnUkdCNV9BMV9FWFQnLAorICAgICdSR0JBOF9FWFQnLAorICAgICdSR0IxMF9BMl9FWFQn
LAorICAgICdSR0JBMTJfRVhUJywKKyAgICAnUkdCQTE2X0VYVCcsCisgICAgJ1NMVU1JTkFOQ0Vf
RVhUJywKKyAgICAnU0xVTUlOQU5DRThfRVhUJywKKyAgICAnU0xVTUlOQU5DRV9BTFBIQV9FWFQn
LAorICAgICdTTFVNSU5BTkNFOF9BTFBIQThfRVhUJywKKyAgICAnU1JHQl9FWFQnLAorICAgICdT
UkdCOF9FWFQnLAorICAgICdTUkdCX0FMUEhBX0VYVCcsCisgICAgJ1NSR0I4X0FMUEhBOCcKKyAg
XTsKKworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgaW52YWxpZEVudW1zLmxlbmd0aDsgKytpaSkg
eworICAgIHZhciBmb3JtYXROYW1lID0gaW52YWxpZEVudW1zW2lpXQorICAgIGlmIChkZXNrdG9w
R0xbZm9ybWF0TmFtZV0gPT09IHVuZGVmaW5lZCkgeworICAgICAgZGVidWcoImJhZCBmb3JtYXQi
ICsgZm9ybWF0TmFtZSkKKyAgICB9IGVsc2UgeworICAgICAgdGVzdEludmFsaWRGb3JtYXQoZGVz
a3RvcEdMW2Zvcm1hdE5hbWVdLCAiR0xfIiArIGZvcm1hdE5hbWUpOworICAgIH0KKyAgfQorCisg
IHZhciB2YWxpZEVudW1zID0gWworICAgICdBTFBIQScsCisgICAgJ1JHQicsCisgICAgJ1JHQkEn
LAorICAgICdMVU1JTkFOQ0UnLAorICAgICdMVU1JTkFOQ0VfQUxQSEEnCisgIF07CisKKyAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IHZhbGlkRW51bXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIGZv
cm1hdE5hbWUgPSB2YWxpZEVudW1zW2lpXQorICAgIHRlc3RWYWxpZEZvcm1hdChnbFtmb3JtYXRO
YW1lXSwgImdsLiIgKyBmb3JtYXROYW1lKTsKKyAgfQorCisgIGRlYnVnKCIiKTsKKyAgZGVidWco
ImNoZWNraW5nIG5vbiAwIGJvcmRlciBwYXJhbWV0ZXIgdG8gZ2wuVGV4SW1hZ2UyRCIpOworICBj
cmVhdGVUZXh0dXJlKGdsWydSR0JBJ10sIGdsWydSR0JBJ10sIDEpOworICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsCisgICAgICAgICAgICAibm9uIDAgYm9yZGVyIHRvIGds
LlRleEltYWdlMkQgc2hvdWxkIHJldHVybiBJTlZBTElEX1ZBTFVFIik7CisKKworICB2YXIgY2hl
Y2tUeXBlcyA9IGZ1bmN0aW9uKCkgeworICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdF
KTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9U
LCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKKworICAgIHZhciBsb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOworICAgIGdsLnVuaWZvcm0xaShsb2Ms
IDApOworCisgICAgdmFyIGNoZWNrVHlwZSA9IGZ1bmN0aW9uKHIsIGcsIGIsIGEsIHR5cGUsIGZv
cm1hdCwgYnVmKSB7CisgICAgICB2YXIgdHlwZU5hbWUgPSB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2ws
IHR5cGUpOworICAgICAgdmFyIGZvcm1hdE5hbWUgPSB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGZv
cm1hdCk7CisgICAgICB2YXIgZGVzYyA9ICJmb3JtYXQ6ICIgKyBmb3JtYXROYW1lICsgIiwgdHlw
ZTogIiArIHR5cGVOYW1lOworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoImNoZWNraW5n
IGdsLnRleEltYWdlMkQgd2l0aCAiICsgZGVzYyk7CisgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsCisgICAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAvLyBsZXZl
bAorICAgICAgICAgICAgICAgICAgICBmb3JtYXQsICAgICAgICAgICAgLy8gaW50ZXJuYWxGb3Jt
YXQKKyAgICAgICAgICAgICAgICAgICAgMiwgICAgICAgICAgICAgICAgIC8vIHdpZHRoCisgICAg
ICAgICAgICAgICAgICAgIDIsICAgICAgICAgICAgICAgICAvLyBoZWlnaHQKKyAgICAgICAgICAg
ICAgICAgICAgMCwgICAgICAgICAgICAgICAgIC8vIGJvcmRlcgorICAgICAgICAgICAgICAgICAg
ICBmb3JtYXQsICAgICAgICAgICAgLy8gZm9ybWF0CisgICAgICAgICAgICAgICAgICAgIHR5cGUs
ICAgICAgICAgICAgICAvLyB0eXBlCisgICAgICAgICAgICAgICAgICAgIGJ1Zik7ICAgICAgICAg
ICAgICAvLyBkYXRhCisKKyAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisg
ICAgICAgICAgICAgICAgImdsLnRleEltYWdlMkQgd2l0aCAiICsgZGVzYyArICIgc2hvdWxkIGdl
bmVyYXRlIE5PX0VSUk9SIik7CisKKyAgICAgIHd0dS5kcmF3UXVhZChnbCwgWzI1NSwgMCwgMCwg
MjU1XSk7CisgICAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIFtyLGcsYixhXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAidGV4dHVyZSAiICsgZGVzYyArICIgc2hvdWxkIGRyYXcgd2l0aCAiICsKKyAg
ICAgICAgICAgICAgICAgICAgICByICsgIiwgIiArIGcgKyAiLCAiICsgYiArICIsICIgKyBhKTsK
KworICAgfQorICAgY2hlY2tUeXBlKAorICAgICAgIDAsIDI1NSwgMCwgMjU1LCBnbC5VTlNJR05F
RF9CWVRFLCBnbC5SR0JBLAorICAgICAgIG5ldyBVaW50OEFycmF5KAorICAgICAgICAgWyAwLCAy
NTUsIDAsIDI1NSwKKyAgICAgICAgICAgMCwgMjU1LCAwLCAyNTUsCisgICAgICAgICAgIDAsIDI1
NSwgMCwgMjU1LAorICAgICAgICAgICAwLCAyNTUsIDAsIDI1NV0pKTsKKyAgIGNoZWNrVHlwZSgK
KyAgICAgICAwLCAwLCAyNTUsIDI1NSwgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwgZ2wuUkdC
QSwKKyAgICAgICBuZXcgVWludDE2QXJyYXkoCisgICAgICAgICBbIDI1NSwgMjU1LAorICAgICAg
ICAgICAyNTUsIDI1NSwKKyAgICAgICAgICAgMjU1LCAyNTUsCisgICAgICAgICAgIDI1NSwgMjU1
XSkpOworICAgY2hlY2tUeXBlKAorICAgICAgIDAsIDI1NSwgMCwgMjU1LCBnbC5VTlNJR05FRF9T
SE9SVF81XzZfNSwgZ2wuUkdCLAorICAgICAgIG5ldyBVaW50MTZBcnJheSgKKyAgICAgICAgIFsg
MjAxNiwgMjAxNiwKKyAgICAgICAgICAgMjAxNiwgMjAxNiwKKyAgICAgICAgICAgMjAxNiwgMjAx
NiwKKyAgICAgICAgICAgMjAxNiwgMjAxNl0pKTsKKyAgIGNoZWNrVHlwZSgKKyAgICAgICAwLCAw
LCAyNTUsIDI1NSwgZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMSwgZ2wuUkdCQSwKKyAgICAgICBu
ZXcgVWludDE2QXJyYXkoCisgICAgICAgICBbIDYzLCA2MywKKyAgICAgICAgICAgNjMsIDYzLAor
ICAgICAgICAgICA2MywgNjMsCisgICAgICAgICAgIDYzLCA2M10pKTsKKyAgIGNoZWNrVHlwZSgK
KyAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIGdsLlVOU0lHTkVEX0JZVEUsIGdsLkxVTUlOQU5D
RSwKKyAgICAgICBuZXcgVWludDhBcnJheShbCisgICAgICAgICAgIDI1NSwKKyAgICAgICAgICAg
MjU1LAorICAgICAgICAgICAyNTUsCisgICAgICAgICAgIDI1NV0pKTsKKyAgIGNoZWNrVHlwZSgK
KyAgICAgICAwLCAwLCAwLCAxMjgsIGdsLlVOU0lHTkVEX0JZVEUsIGdsLkFMUEhBLAorICAgICAg
IG5ldyBVaW50OEFycmF5KFsKKyAgICAgICAgICAgMTI4LAorICAgICAgICAgICAxMjgsCisgICAg
ICAgICAgIDEyOCwKKyAgICAgICAgICAgMTI4XSkpOworICAgY2hlY2tUeXBlKAorICAgICAgIDEy
OCwgMTI4LCAxMjgsIDE5MiwgZ2wuVU5TSUdORURfQllURSwgZ2wuTFVNSU5BTkNFX0FMUEhBLAor
ICAgICAgIG5ldyBVaW50OEFycmF5KFsKKyAgICAgICAgICAgMTI4LCAxOTIsCisgICAgICAgICAg
IDEyOCwgMTkyLAorICAgICAgICAgICAxMjgsIDE5MiwKKyAgICAgICAgICAgMTI4LCAxOTJdKSk7
CisgIH0KKyAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOworICBnbC5w
aXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5ULCAxKTsKKyAgY2hlY2tUeXBlcygpOworfQor
CitkZWJ1ZygiIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBp
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWhkLWRwaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ODRjMzAx
ZDA3ZGEyNTk0MzYwMDQ2ZGUyOGNjNjg3YmUwYjNiYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLWhkLWRwaS5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IS0tCisKKy8qCisq
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBIRC1EUEkgaXNzdWVzIHRl
eHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQiIGhlaWdodD0iNCIgc3R5bGU9IndpZHRoOiA0
MHB4OyBoZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rl
c2NyaXB0aW9uKCk7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3Jl
YXRlM0RDb250ZXh0KCJleGFtcGxlIik7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVk
UXVhZChnbCk7CisKK2Z1bmN0aW9uIGZpbGxJbk1pcHMoZ2wsIHNpemUpIHsKKyAgLy8gZmlsbCBp
biB0aGUgbWlwcworICB2YXIgbGV2ZWwgPSAxOworICBmb3IgKDs7KSB7CisgICAgc2l6ZSAvPSAy
OworICAgIGlmIChzaXplIDwgMSkgeworICAgICAgYnJlYWs7CisgICAgfQorICAgIHZhciBudW1C
eXRlcyA9IHNpemUgKiBzaXplICogNDsKKyAgICB2YXIgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXko
bnVtQnl0ZXMpOworICAgIGZvciAodmFyIGpqID0gMDsgamogPCBudW1CeXRlczsgamogKz0gNCkg
eworICAgICAgcGl4ZWxzW2pqICsgMF0gPSAwOworICAgICAgcGl4ZWxzW2pqICsgMV0gPSAyNTU7
CisgICAgICBwaXhlbHNbamogKyAyXSA9IDA7CisgICAgICBwaXhlbHNbamogKyAzXSA9IDI1NTsK
KyAgICB9CisgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBzaXpl
LCBzaXplLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBwaXhlbHMpOworICB9Cit9CisK
K2Z1bmN0aW9uIHRlc3RDYW52YXMoc2l6ZSkgeworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJ0ZXN0
aW5nIDJEIGNhbnZhcyBzaXplICIgKyBzaXplICsgIiwgIiArIHNpemUpOworCisgIHZhciBjYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgY2FudmFzLndpZHRoID0g
c2l6ZTsKKyAgY2FudmFzLmhlaWdodCA9IHNpemU7CisgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29u
dGV4dCgiMmQiKTsKKyAgY3R4LmZpbGxTdHlsZSA9ICJyZ2IoMCwyNTUsMCkiOworICBjdHguZmls
bFJlY3QoMCwgMCwgc2l6ZSwgc2l6ZSk7CisKKyAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBj
YW52YXMpOworCisgIGZpbGxJbk1pcHMoZ2wsIHNpemUpOworCisgIC8vIERyYXcuIElmIHRoaXMg
YW4gSEQtRFBJIGRldmljZSBhbmQgdGhlIDJkIGNhbnZhcyBpcyBkb3VibGUgcmVzIG9yIGxhcmdl
cgorICAvLyB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCBzY2FsZSB0byBDU1MgcGl4ZWxzIChpZSwg
Y2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KSgKKyAgLy8gd2hlbiBkb2luZyB0aGUgY29weSBp
biB0ZXhJbWFnZTJELiBJZiBpdCBoYXMgbm90IHNjYWxlZCBhbmQgaW5zdGVhZCBkb25lCisgIC8v
IGEgZGlyZWN0IGNvcHkgb2YgdGhlIGxhcmdlciB0ZXh0dXJlIHRoaXMgdGVzdCB3aWxsIG5vdCBo
YXZlIGNyZWF0ZWQgZW5vdWdoIG1pcHMKKyAgLy8gYW5kIHdpbGwgdGhlcmVmb3JlIG5vdCBiZSAi
dGV4dHVyZSBjb21wbGV0ZSIgYW5kIHdpbGwgcmVuZGVyIGluIGJsYWNrLgorICB3dHUuZHJhd1F1
YWQoZ2wpOworICB3dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJzaG91bGQg
YmUgZ3JlZW4iKTsKK30KKworZnVuY3Rpb24gdGVzdFdlYkdMKHNpemUpIHsKKyAgZGVidWcoIiIp
OworICBkZWJ1ZygidGVzdGluZyBXZWJHTCBjYW52YXMgc2l6ZSAiICsgc2l6ZSArICIsICIgKyBz
aXplKTsKKworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7
CisgIGNhbnZhcy53aWR0aCA9IHNpemU7CisgIGNhbnZhcy5oZWlnaHQgPSBzaXplOworICB2YXIg
Z2wyID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOworICBnbDIuY2xlYXJDb2xvcigwLDEs
MCwxKTsKKyAgZ2wyLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisgIHZhciB0ZXggPSBn
bC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7
CisgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgY2FudmFzKTsKKworICBmaWxsSW5NaXBzKGdsLCBzaXplKTsKKworICAv
LyBEcmF3LiBJZiB0aGlzIGFuIEhELURQSSBkZXZpY2UgY2hlY2sgZm9yIDIgcG9zc2libGUgYnVn
cy4KKyAgLy8KKyAgLy8gMSkgdGhlIFdlYkdMIGNhbnZhcyBpcyBkb3VibGUgcmVzIG9yIGxhcmdl
ci4gVGhhdCdzIGp1c3QgYSBidWcgcGVyaW9kIGFuZAorICAvLyAgICBpcyBjaGVja2VkIGZvciBp
biBhbm90aGVyIHRlc3QgYnV0IHdvdWxkIGFsc28gZmFpbCBoZXJlLgorICAvLworICAvLyAyKSB0
aGUgV2ViR0wgY2FudmFzIGlzIHNpbmdsZSByZXMgYnV0IHRoZSBjb2RlIHRoZSBzY2FsZXMgYSBk
b3VibGUgcmVzCisgIC8vICAgIDJkIGNhbnZhcyBhbHNvIG1pc3Rha2VubHkgc2NhbGVzIGEgc2lu
Z2xlIHJlcyBXZWJHTCBjYW52YXMuCisgIC8vCisgIC8vIElmIGl0IGhhcyBiZWVuIHNjYWxlZCB0
aGVuIHdlJ2xsIGhhdmUgdGhlIHdyb25nIGtpbmQgb2YgbWlwcyBjaGFpbiBoZXJlLgorICAvLyBM
ZXZlbCAwIHdpbGwgYmUgaGFsZiByZXNvbHV0aW9uLiBMZXZlbCAxIHdpbGwgYmUgdGhlIHNhbWUg
cmVzb2x1dGlvbgorICAvLyBhbmQgd2lsbCB0aGVyZWZvcmUgbm90IGJlICJ0ZXh0dXJlIGNvbXBs
ZXRlIiBhbmQgd2lsbCByZW5kZXIgaW4gYmxhY2suCisgIHd0dS5kcmF3UXVhZChnbCk7CisgIHd0
dS5jaGVja0NhbnZhcyhnbCwgWzAsIDI1NSwgMCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIpOwor
fQorCit0ZXN0Q2FudmFzKDQpOwordGVzdENhbnZhcyg1MTIpOwordGVzdFdlYkdMKDQpOwordGVz
dFdlYkdMKDUxMik7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJl
IG5vIGVycm9ycyIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1u
cG90Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTY2MTVl
YzVmMjNhMDk5YzJjMWMyNjkzYmNkOWQ1MzM0NjI2Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4dHVyZS1ucG90Lmh0bWwKQEAgLTAsMCArMSwyNDggQEAKKzwhLS0KKworLyoKKyoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIE5vbi1Qb3dlciBvZiAyIHRl
eHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQiIGhlaWdodD0iNCIgc3R5bGU9IndpZHRoOiA0
MHB4OyBoZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0i
eC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOworYXR0cmlidXRl
IHZlYzIgdGV4Q29vcmQwOwordmFyeWluZyB2ZWMyIHRleENvb3JkOwordm9pZCBtYWluKCkKK3sK
KyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsKKyAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsK
K30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZy
YWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSBzYW1wbGVyQ3ViZSB0
ZXg7Cit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Cit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdD
b2xvciA9IHRleHR1cmVDdWJlKHRleCwgbm9ybWFsaXplKHZlYzModGV4Q29vcmQsIDEpKSk7Cit9
Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbihkb2N1bWVu
dC50aXRsZSk7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCJleGFtcGxlIik7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVh
ZChnbCk7CisKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8g
ZXJyb3JzIGZyb20gc2V0dXAuIik7CisKK3ZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisK
Ky8vIENoZWNrIHRoYXQgYW4gTlBPVCB0ZXh0dXJlIG5vdCBvbiBsZXZlbCAwIGdlbmVyYXRlcyBJ
TlZBTElEX1ZBTFVFCit3dHUuZmlsbFRleHR1cmUoZ2wsIHRleCwgNSwgMywgWzAsIDE5MiwgMTI4
LCAyNTVdLCAxKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKKyAgICAi
Z2wudGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVyZSB3aXRoIGxldmVsID4gMCBzaG91bGQgcmV0
dXJuIElOVkFMSURfVkFMVUUiKTsKKworLy8gQ2hlY2sgdGhhdCBhbiBOUE9UIHRleHR1cmUgb24g
bGV2ZWwgMCBzdWNjZWVkcword3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDUsIDMsIFswLCAxOTIs
IDEyOCwgMjU1XSk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICJnbC50
ZXhJbWFnZTJEIHdpdGggTlBPVCB0ZXh0dXJlIGF0IGxldmVsIDAgc2hvdWxkIHN1Y2NlZWQiKTsK
KworLy8gQ2hlY2sgdGhhdCBnZW5lcmF0ZU1pcG1hcCBmYWlscyBvbiBOUE9UCitnbC5nZW5lcmF0
ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9P
UEVSQVRJT04sCisgICAgImdsLmdlbmVyYXRlTWlwbWFwIHdpdGggTlBPVCB0ZXh0dXJlIHNob3Vs
ZCByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT04iKTsKKwordmFyIGxvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAidGV4Iik7CitnbC51bmlmb3JtMWkobG9jLCAwKTsKKworLy8gQ2hl
Y2sgdGhhdCBub3RoaW5nIGlzIGRyYXduIGlmIGZpbHRlcmluZyBpcyBub3QgY29ycmVjdCBmb3Ig
TlBPVAorZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxU
RVIsIGdsLk5FQVJFU1QpOworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuUkVQRUFUKTsKK2dsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLlJFUEVBVCk7CisKK3d0dS5kcmF3UXVh
ZChnbCk7Cit3dHUuY2hlY2tDYW52YXMoCisgICAgZ2wsIFswLCAwLCAwLCAyNTVdLAorICAgICJO
UE9UIHRleHR1cmUgd2l0aCBURVhUVVJFX1dSQVAgc2V0IHRvIFJFUEVBVCBzaG91bGQgZHJhdyB3
aXRoIDAsMCwwLDI1NSIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3Vs
ZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKKworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CitnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdF
KTsKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVS
LCBnbC5ORUFSRVNUX01JUE1BUF9MSU5FQVIpOworCit3dHUuZHJhd1F1YWQoZ2wpOword3R1LmNo
ZWNrQ2FudmFzKAorICAgIGdsLCBbMCwgMCwgMCwgMjU1XSwKKyAgICAiTlBPVCB0ZXh0dXJlIHdp
dGggVEVYVFVSRV9NSU5fRklMVEVSIG5vdCBORUFSRVNUIG9yIExJTkVBUiBzaG91bGQgZHJhdyB3
aXRoIDAsMCwwLDI1NSIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3Vs
ZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKKworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CisKK3d0dS5kcmF3UXVh
ZChnbCk7Cit3dHUuY2hlY2tDYW52YXMoCisgICAgZ2wsIFswLCAxOTIsIDEyOCwgMjU1XSwKKyAg
ICAiTlBPVCB0ZXh0dXJlIHdpdGggVEVYVFVSRV9NSU5fRklMVEVSIHNldCB0byBMSU5FQVIgc2hv
dWxkIGRyYXcuIik7CisKK2dsLmNvcHlUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGdsLlJH
QkEsIDAsIDAsIDUsIDMsIDApOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVF
LAorICAgICJjb3B5VGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVyZSB3aXRoIGxldmVsID4gMCBz
aG91bGQgcmV0dXJuIElOVkFMSURfVkFMVUUuIik7CisKKy8vIENoZWNrIHRoYXQgZ2VuZXJhdGVN
aXBtYXAgZm9yIGFuIFBPVCB0ZXh0dXJlIHN1Y2NlZWRzCit3dHUuZmlsbFRleHR1cmUoZ2wsIHRl
eCwgNCwgNCwgWzAsIDE5MiwgMTI4LCAyNTVdKTsKK2dsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRV
UkVfMkQpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAiZ2wudGV4SW1h
Z2UyRCBhbmQgZ2wuZ2VuZXJhdGVNaXBtYXAgd2l0aCBQT1QgdGV4dHVyZSBhdCBsZXZlbCAwIHNo
b3VsZCBzdWNjZWVkIik7CisKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7CitnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKK2ds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLlJFUEVB
VCk7CitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBn
bC5SRVBFQVQpOworCit3dHUuZHJhd1F1YWQoZ2wpOword3R1LmNoZWNrQ2FudmFzKAorICAgIGds
LCBbMCwgMTkyLCAxMjgsIDI1NV0sCisgICAgIlBPVCB0ZXh0dXJlIHdpdGggVEVYVFVSRV9NSU5f
RklMVEVSIHNldCB0byBMSU5FQVJfTUlQTUFQX0xJTkVBUiBzaG91bGQgZHJhdy4iKTsKK2dsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0
dXAuIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJjaGVjayB1c2luZyBjdWJlbWFwIik7Cit2YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisgICAgZ2wsIFsndnNoYWRlcicsICdmc2hhZGVy
J10sIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLCBbMCwgMV0pOwordmFyIHRleCA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKKworLy8gQ2hlY2sgdGhhdCBhbiBOUE9UIHRleHR1cmUgbm90IG9uIGxl
dmVsIDAgZ2VuZXJhdGVzIElOVkFMSURfVkFMVUUKK2ZpbGxDdWJlVGV4dHVyZShnbCwgdGV4LCA1
LCAzLCBbMCwgMTkyLCAxMjgsIDI1NV0sIDEpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX1ZBTFVFLAorICAgICJnbC50ZXhJbWFnZTJEIHdpdGggTlBPVCB0ZXh0dXJlIHdpdGggbGV2
ZWwgPiAwIHNob3VsZCByZXR1cm4gSU5WQUxJRF9WQUxVRSIpOworCisvLyBDaGVjayB0aGF0IGFu
IE5QT1QgdGV4dHVyZSBvbiBsZXZlbCAwIHN1Y2NlZWRzCitmaWxsQ3ViZVRleHR1cmUoZ2wsIHRl
eCwgNSwgNSwgWzAsIDE5MiwgMTI4LCAyNTVdKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IsCisgICAgImdsLnRleEltYWdlMkQgd2l0aCBOUE9UIHRleHR1cmUgYXQgbGV2ZWwgMCBz
aG91bGQgc3VjY2VlZCIpOworCisvLyBDaGVjayB0aGF0IGdlbmVyYXRlTWlwbWFwIGZhaWxzIG9u
IE5QT1QKK2dsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVApOworZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKKyAgICAiZ2wuZ2VuZXJhdGVNaXBtYXAg
d2l0aCBOUE9UIHRleHR1cmUgc2hvdWxkIHJldHVybiBJTlZBTElEX09QRVJBVElPTiIpOworCit2
YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKK2dsLnVuaWZv
cm0xaShsb2MsIDApOworCisvLyBDaGVjayB0aGF0IG5vdGhpbmcgaXMgZHJhd24gaWYgZmlsdGVy
aW5nIGlzIG5vdCBjb3JyZWN0IGZvciBOUE9UCitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
Q1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CitnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVB
UkVTVCk7CitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVf
V1JBUF9TLCBnbC5SRVBFQVQpOworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQ
LCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuUkVQRUFUKTsKKword3R1LmRyYXdRdWFkKGdsKTsKK3d0
dS5jaGVja0NhbnZhcygKKyAgICBnbCwgWzAsIDAsIDAsIDI1NV0sCisgICAgIk5QT1QgY3ViZW1h
cCB3aXRoIFRFWFRVUkVfV1JBUCBzZXQgdG8gUkVQRUFUIHNob3VsZCBkcmF3IHdpdGggMCwwLDAs
MjU1Iik7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVy
cm9ycyBmcm9tIHNldHVwLiIpOworCitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9N
QVAsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKK2dsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VE
R0UpOworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01J
Tl9GSUxURVIsIGdsLk5FQVJFU1RfTUlQTUFQX0xJTkVBUik7CisKK3d0dS5kcmF3UXVhZChnbCk7
Cit3dHUuY2hlY2tDYW52YXMoCisgICAgZ2wsIFswLCAwLCAwLCAyNTVdLAorICAgICJOUE9UIGN1
YmVtYXAgd2l0aCBURVhUVVJFX01JTl9GSUxURVIgbm90IE5FQVJFU1Qgb3IgTElORUFSIHNob3Vs
ZCBkcmF3IHdpdGggMCwwLDAsMjU1Iik7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOworCitnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsK
Kword3R1LmRyYXdRdWFkKGdsKTsKK3d0dS5jaGVja0NhbnZhcygKKyAgICBnbCwgWzAsIDE5Miwg
MTI4LCAyNTVdLAorICAgICJOUE9UIGN1YmVtYXAgd2l0aCBURVhUVVJFX01JTl9GSUxURVIgc2V0
IHRvIExJTkVBUiBzaG91bGQgZHJhdy4iKTsKKworLy8gQ2hlY2sgdGhhdCBhbiBQT1QgdGV4dHVy
ZSBvbiBsZXZlbCAwIHN1Y2NlZWRzCitmaWxsQ3ViZVRleHR1cmUoZ2wsIHRleCwgNCwgNCwgWzAs
IDE5MiwgMTI4LCAyNTVdKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAg
ImdsLnRleEltYWdlMkQgd2l0aCBQT1QgdGV4dHVyZSBhdCBsZXZlbCAwIHNob3VsZCBzdWNjZWVk
Iik7CisKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9N
SU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7CitnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKK2ds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGds
LlJFUEVBVCk7CitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5SRVBFQVQpOworCit3dHUuZHJhd1F1YWQoZ2wpOword3R1LmNoZWNrQ2Fu
dmFzKAorICAgIGdsLCBbMCwgMCwgMCwgMjU1XSwKKyAgICAiUE9UIGN1YmVtYXAgd2l0aCBURVhU
VVJFX01JTl9GSUxURVIgc2V0IHRvIExJTkVBUl9NSVBNQVBfTElORUFSIGJ1dCBubyBtaXBzIGRy
YXcgd2l0aCAwLDAsMCwyNTUiKTsKKworLy8gQ2hlY2sgdGhhdCBnZW5lcmF0ZU1pcG1hcCBzdWNj
ZWVkcyBvbiBQT1QKK2dsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVApOworZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAiZ2wuZ2VuZXJhdGVNaXBtYXAgd2l0
aCBQT1QgdGV4dHVyZSBzaG91bGQgcmV0dXJuIHN1Y2NlZWQiKTsKKword3R1LmRyYXdRdWFkKGds
KTsKK3d0dS5jaGVja0NhbnZhcygKKyAgICBnbCwgWzAsIDE5MiwgMTI4LCAyNTVdLAorICAgICJQ
T1QgY3ViZW1hcCB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBzZXQgdG8gTElORUFSX01JUE1BUF9M
SU5FQVIgc2hvdWxkIGRyYXcuIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
CitmdW5jdGlvbiBmaWxsQ3ViZVRleHR1cmUoZ2wsIHRleCwgd2lkdGgsIGhlaWdodCwgY29sb3Is
IG9wdF9sZXZlbCkgeworICBvcHRfbGV2ZWwgPSBvcHRfbGV2ZWwgfHwgMDsKKyAgdmFyIGNhbnZh
cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICBjYW52YXMud2lkdGggPSB3
aWR0aDsKKyAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKKyAgdmFyIGN0eDJkID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJyk7CisgIGN0eDJkLmZpbGxTdHlsZSA9ICJyZ2JhKCIgKyBjb2xvclswXSAr
ICIsIiArIGNvbG9yWzFdICsgIiwiICsgY29sb3JbMl0gKyAiLCIgKyBjb2xvclszXSArICIpIjsK
KyAgY3R4MmQuZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleCk7CisgIHZhciB0YXJnZXRzID0gWworICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKKyAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1gsCisgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAorICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKKyAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZF
X1osCisgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aXTsKKyAgZm9yICh2YXIgdHQg
PSAwOyB0dCA8IHRhcmdldHMubGVuZ3RoOyArK3R0KSB7CisgICAgZ2wudGV4SW1hZ2UyRCgKKyAg
ICAgICAgdGFyZ2V0c1t0dF0sIG9wdF9sZXZlbCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgY2FudmFzKTsKKyAgfQorfTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRt
bD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYzU1M2Q3
NmQyMDU4YjFhMGI0NjllZTEwMjk1MTg5ZjYzZGRiOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLXNpemUtY3ViZS1tYXBzLmh0bWwKQEAgLTAsMCArMSwzNTUgQEAKKzwhLS0K
KworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgor
KiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBp
biB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91
dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJp
YWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklB
TFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisq
KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIHRleHR1cmUg
c2l6ZSBjdWJlIG1hcCBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBzdHls
ZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGlkPSJ2c2hh
ZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247
Cit1bmlmb3JtIG1hdDQgcm90YXRpb247Cit2YXJ5aW5nIHZlYzMgdGV4Q29vcmQ7Cit2b2lkIG1h
aW4oKQoreworICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOworICAgIHZlYzQgZGlyZWN0aW9u
ID0gdmVjNCh2UG9zaXRpb24ueCAqIDAuNSwgdlBvc2l0aW9uLnkgKiAwLjUsIDEsIDEpOworICAg
IHRleENvb3JkID0gbm9ybWFsaXplKChyb3RhdGlvbiAqIGRpcmVjdGlvbikueHl6KTsKK30KKzwv
c2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50
Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXg7Cit2
YXJ5aW5nIHZlYzMgdGV4Q29vcmQ7Cit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9
IHRleHR1cmVDdWJlKHRleCwgbm9ybWFsaXplKHRleENvb3JkKSk7Cit9Cis8L3NjcmlwdD4KKzxz
Y3JpcHQ+CisidXNlIHN0cmljdCI7Cit2YXIgY2FudmFzOworZGVzY3JpcHRpb24oIkNoZWNrcyBp
c3N1ZXMgd2l0aCBzaXplIG9mIGN1YmUgbWFwIHRleHR1cmVzIik7CitkZWJ1ZygiIik7CisKK3Zh
ciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZXhhbXBsZSIpOworCit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7
Cit3dHUuc2V0dXBVbml0UXVhZChnbCwgMCwgMSk7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFBy
b2dyYW0oCisgICAgZ2wsCisgICAgWyd2c2hhZGVyJywgJ2ZzaGFkZXInXSwKKyAgICBbJ3ZQb3Np
dGlvbicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKK3ZhciByb3RMb2MgPSBnbC5nZXRVbmlmb3Jt
TG9jYXRpb24ocHJvZ3JhbSwgInJvdGF0aW9uIik7CisKK2dsLmRpc2FibGUoZ2wuREVQVEhfVEVT
VCk7CitnbC5kaXNhYmxlKGdsLkJMRU5EKTsKKwordmFyIG1heFNpemUgPSBnbC5nZXRQYXJhbWV0
ZXIoZ2wuTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSk7CitkZWJ1ZygibWF4IGN1YmUgbWFwIHNp
emU6ICIgKyBtYXhTaXplKTsKK21heFNpemUgPSBNYXRoLm1pbig1MTIsIG1heFNpemUpOworCisv
LyBhIGN1YmUgbWFwIG9mIDUxMng1MTIgdGFrZXMgNm1lZy4gSSdtIGFzc3VtaW5nIGl0J3Mgbm90
CisvLyB1bnJlYXNvbmFibGUgdG8gZXhwZWN0IHRvIGJlIGFibGUgdG8gYWxsb2NhdGUgYSA2bWVn
IHRleHR1cmUKKwordmFyIGNvbG9ycyA9IFsKKyAge25hbWU6ICdyZWQnLCAgICAgY29sb3I6IFsy
NTUsICAgMCwgICAwLCAyNTVdfSwKKyAge25hbWU6ICdncmVlbicsICAgY29sb3I6IFsgIDAsIDI1
NSwgICAwLCAyNTVdfSwKKyAge25hbWU6ICdibHVlJywgICAgY29sb3I6IFsgIDAsICAgMCwgMjU1
LCAyNTVdfSwKKyAge25hbWU6ICd5ZWxsb3cnLCAgY29sb3I6IFsyNTUsIDI1NSwgICAwLCAyNTVd
fSwKKyAge25hbWU6ICdjeWFuJywgICAgY29sb3I6IFsgIDAsIDI1NSwgMjU1LCAyNTVdfSwKKyAg
e25hbWU6ICdtYWdlbnRhJywgY29sb3I6IFsyNTUsICAgMCwgMjU1LCAyNTVdfQorXTsKKwordmFy
IHRhcmdldHMgPSBbCisgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKKyAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAorICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZF
X1ksCisgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKKyAgZ2wuVEVYVFVSRV9DVUJF
X01BUF9QT1NJVElWRV9aLAorICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1pdOworCit2
YXIgcm90YXRpb25zID0gWworICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAy
fSwKKyAge2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gMn0sCisgIHtheGlzOiBb
MSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDJ9LAorICB7YXhpczogWzEsIDAsIDBdLCBhbmds
ZTogIE1hdGguUEkgLyAyfSwKKyAge2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6ICAwfSwKKyAge2F4
aXM6IFswLCAxLCAwXSwgYW5nbGU6ICBNYXRoLlBJfSwKK107CisKK3ZhciBoYWxmUm90YXRpb25z
ID0gWworICB7Y29sb3JzOiBbMywgNF0sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFu
Z2xlOiAgTWF0aC5QSSAvIDR9XX0sCisgIHtjb2xvcnM6IFs0LCAyXSwgcm90YXRpb25zOiBbe2F4
aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNH1dfSwKKyAge2NvbG9yczogWzUsIDNd
LCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyA0ICogM31d
fSwKKyAge2NvbG9yczogWzIsIDVdLCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBdLCBhbmds
ZTogLU1hdGguUEkgLyA0ICogM31dfSwKKyAge2NvbG9yczogWzMsIDBdLCByb3RhdGlvbnM6IFt7
YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyA0fV19LAor
ICB7Y29sb3JzOiBbMCwgMl0sIHJvdGF0aW9uczogW3theGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAg
TWF0aC5QSSAvIDJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtheGlzOiBbMSwg
MCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDR9XX0sCitdOworCit2YXIgY291bnQgPSAwOwordmFy
IHNpemVDb3VudCA9IDA7CisKK3Rlc3QoKTsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgdmFyIHNp
emUgPSBNYXRoLnBvdygyLCBzaXplQ291bnQpOworICBpZiAoc2l6ZSA+IG1heFNpemUgfHwgIXRl
c3RTaXplKHNpemUpKSB7CisgICAgZmluaXNoVGVzdCgpOworICB9IGVsc2UgeworICAgICsrc2l6
ZUNvdW50OworICAgIHNldFRpbWVvdXQodGVzdCwgMTAwKTsKKyAgfQorfQorCitmdW5jdGlvbiB0
ZXN0U2l6ZShzaXplKSB7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoInRlc3Rpbmcgc2l6ZTogIiAr
IHNpemUpOworICB2YXIgY2FudmFzU2l6ZSA9IE1hdGgubWF4KHNpemUgLyA0LCAyKTsKKyAgY2Fu
dmFzLndpZHRoID0gY2FudmFzU2l6ZTsKKyAgY2FudmFzLmhlaWdodCA9IGNhbnZhc1NpemU7Cisg
IGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhc1NpemUsIGNhbnZhc1NpemUpOworICB2YXIgdGV4ID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOworICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQ
LCB0ZXgpOworCisgIC8vIFNlZW1zIGxpa2UgSSBzaG91bGQgYmUgdXNpbmcgTElORUFSIGhlcmUg
d2l0aCBzb21lIG90aGVyIG1hdGgKKyAgLy8gdG8gbWFrZSBzdXJlIEkgZ2V0IG1vcmUgbWlwIGNv
dmVyYWdlIGJ1dCB0aGF0J3MgZWFzaWVyIHNhaWQKKyAgLy8gdGhhbiBkb25lLgorCisgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5ORUFSRVNUKTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5U
RVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworCisgIGZvciAodmFyIGpqID0gMDsgamog
PCAyOyArK2pqKSB7CisgICAgZm9yICh2YXIgdHQgPSAwOyB0dCA8IHRhcmdldHMubGVuZ3RoOyAr
K3R0KSB7CisgICAgICB2YXIgY29sb3IgPSBjb2xvcnNbKHR0ICsgY291bnQpICUgY29sb3JzLmxl
bmd0aF07CisgICAgICBmaWxsTGV2ZWwodGFyZ2V0c1t0dF0sIDAsIHNpemUsIGNvbG9yLmNvbG9y
KTsKKyAgICB9CisgICAgaWYgKGpqID09IDEpIHsKKyAgICAgIGRlYnVnKCJ1c2UgbWlwbWFwIik7
CisgICAgICBnbC50ZXhQYXJhbWV0ZXJpKAorICAgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVAs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwKKyAgICAgICAgICBnbC5ORUFSRVNUX01JUE1BUF9ORUFS
RVNUKTsKKyAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVApOworICAg
IH0KKworICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOworICAgIGlmIChlcnIgPT0gZ2wuT1VU
X09GX01FTU9SWSkgeworICAgICAgZGVidWcoIm91dCBvZiBtZW1vcnkiKTsKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgeworICAgICAgdGVz
dEZhaWxlZCgidW5leHBlY3RlZCBnbCBlcnJvcjogIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwg
ZXJyKSk7CisgICAgfQorCisKKyAgICBmb3IgKHZhciByciA9IDA7IHJyIDwgcm90YXRpb25zLmxl
bmd0aDsgKytycikgeworICAgICAgdmFyIHJvdCA9IHJvdGF0aW9uc1tycl07CisgICAgICB2YXIg
Y29sb3IgPSBjb2xvcnNbKHJyICsgY291bnQpICUgY29sb3JzLmxlbmd0aF07CisgICAgICB2YXIg
cm90TWF0ID0gYXhpc1JvdGF0aW9uKHJvdC5heGlzLCByb3QuYW5nbGUpOworICAgICAgZ2wudW5p
Zm9ybU1hdHJpeDRmdihyb3RMb2MsIGZhbHNlLCByb3RNYXQpOworICAgICAgd3R1LmRyYXdRdWFk
KGdsKTsKKyAgICAgIHd0dS5jaGVja0NhbnZhcygKKyAgICAgICAgICBnbCwgY29sb3IuY29sb3Is
CisgICAgICAgICAgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJnZXRzW3JyXSkgKyAiIHNob3Vs
ZCBiZSAiICsgY29sb3IubmFtZSk7CisgICAgfQorCisgICAgZm9yICh2YXIgcnIgPSAwOyByciA8
IGhhbGZSb3RhdGlvbnMubGVuZ3RoOyArK3JyKSB7CisgICAgICB2YXIgaCA9IGhhbGZSb3RhdGlv
bnNbcnJdOworICAgICAgdmFyIHJvdHMgPSBoLnJvdGF0aW9uczsKKyAgICAgIHZhciByb3RNYXQg
PSBheGlzUm90YXRpb24ocm90c1swXS5heGlzLCByb3RzWzBdLmFuZ2xlKTsKKyAgICAgIGZvciAo
dmFyIGlpID0gMTsgaWkgPCByb3RzLmxlbmd0aDsgKytpaSkgeworICAgICAgICB2YXIgdG1wTWF0
ID0gYXhpc1JvdGF0aW9uKHJvdHNbaWldLmF4aXMsIHJvdHNbaWldLmFuZ2xlKTsKKyAgICAgICAg
dmFyIHJvdE1hdCA9IG11bE1hdHJpeCh0bXBNYXQsIHJvdE1hdCk7CisgICAgICB9CisgICAgICBn
bC51bmlmb3JtTWF0cml4NGZ2KHJvdExvYywgZmFsc2UsIHJvdE1hdCk7CisgICAgICB3dHUuZHJh
d1F1YWQoZ2wpOworCisgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjsgKytpaSkgeworICAg
ICAgICBjaGVja1JlY3QoCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgY2FudmFzU2l6ZSAv
IDIgKiBpaSwKKyAgICAgICAgICAgIGNhbnZhc1NpemUsCisgICAgICAgICAgICBjYW52YXNTaXpl
IC8gMiwKKyAgICAgICAgICAgIGNvbG9yc1soaC5jb2xvcnNbaWldICsgY291bnQpICUgY29sb3Jz
Lmxlbmd0aF0pOworICAgICAgfQorICAgIH0KKyAgICArK2NvdW50OworICB9CisKKyAgZ2wuZGVs
ZXRlVGV4dHVyZSh0ZXgpOworICByZXR1cm4gdHJ1ZTsKK30KKworZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMuIik7CisKK2Z1bmN0aW9uIGNoZWNr
UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcikgeworICB3dHUuY2hlY2tDYW52YXNSZWN0
KAorICAgICAgIGdsLAorICAgICAgIHgsCisgICAgICAgeSwKKyAgICAgICB3aWR0aCwKKyAgICAg
ICBoZWlnaHQsCisgICAgICAgY29sb3IuY29sb3IsCisgICAgICAgIiIgKyB4ICsgIiwgIiArIHkg
KyAiLCAiICsgd2lkdGggKyAiLCAiICsgaGVpZ2h0ICsKKyAgICAgICAiIHNob3VsZCBiZSAiICsg
Y29sb3IubmFtZSk7Cit9CisKK2Z1bmN0aW9uIGZpbGxMZXZlbCh0YXJnZXQsIGxldmVsLCBzaXpl
LCBjb2xvcikgeworICB2YXIgbnVtUGl4ZWxzID0gc2l6ZSAqIHNpemU7CisgIHZhciBwaXhlbHMg
PSBuZXcgVWludDhBcnJheShudW1QaXhlbHMgKiA0KTsKKyAgdmFyIHBpeGVsUm93ID0gbmV3IFVp
bnQ4QXJyYXkoc2l6ZSAqIDQpOworICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgc2l6ZTsgKytqaikg
eworICAgIHZhciBvZmYgPSBqaiAqIDQ7CisgICAgcGl4ZWxSb3dbb2ZmICsgMF0gPSBjb2xvclsw
XTsKKyAgICBwaXhlbFJvd1tvZmYgKyAxXSA9IGNvbG9yWzFdOworICAgIHBpeGVsUm93W29mZiAr
IDJdID0gY29sb3JbMl07CisgICAgcGl4ZWxSb3dbb2ZmICsgM10gPSBjb2xvclszXTsKKyAgfQor
ICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgc2l6ZTsgKytqaikgeworICAgIHZhciBvZmYgPSBqaiAq
IHNpemUgKiA0OworICAgIHBpeGVscy5zZXQocGl4ZWxSb3csIG9mZik7CisgIH0KKyAgZ2wudGV4
SW1hZ2UyRCgKKyAgICAgIHRhcmdldCwgbGV2ZWwsIGdsLlJHQkEsIHNpemUsIHNpemUsIDAsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICBwaXhlbHMpOworfQorCitmdW5jdGlvbiBw
cmludE1hdChtYXQpIHsKKyAgZGVidWcoIiIgKyBtYXRbMF0gKyAiLCAiICsgbWF0WzFdICsgIiwg
IiArIG1hdFsyXSArICIsICIgKyBtYXRbM10gKyAiLCAiKTsKKyAgZGVidWcoIiIgKyBtYXRbNF0g
KyAiLCAiICsgbWF0WzVdICsgIiwgIiArIG1hdFs2XSArICIsICIgKyBtYXRbN10gKyAiLCAiKTsK
KyAgZGVidWcoIiIgKyBtYXRbOF0gKyAiLCAiICsgbWF0WzldICsgIiwgIiArIG1hdFsxMF0gKyAi
LCAiICsgbWF0WzExXSArICIsICIpOworICBkZWJ1ZygiIiArIG1hdFsxMl0gKyAiLCAiICsgbWF0
WzEzXSArICIsICIgKyBtYXRbMTRdICsgIiwgIiArIG1hdFsxNV0gKyAiLCAiKTsKK30KKworZnVu
Y3Rpb24gYXhpc1JvdGF0aW9uKGF4aXMsIGFuZ2xlKSB7CisgIHZhciBkc3QgPSBuZXcgRmxvYXQz
MkFycmF5KDE2KTsKKyAgdmFyIHggPSBheGlzWzBdOworICB2YXIgeSA9IGF4aXNbMV07CisgIHZh
ciB6ID0gYXhpc1syXTsKKyAgdmFyIG4gPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSArIHogKiB6
KTsKKyAgeCAvPSBuOworICB5IC89IG47CisgIHogLz0gbjsKKyAgdmFyIHh4ID0geCAqIHg7Cisg
IHZhciB5eSA9IHkgKiB5OworICB2YXIgenogPSB6ICogejsKKyAgdmFyIGMgPSBNYXRoLmNvcyhh
bmdsZSk7CisgIHZhciBzID0gTWF0aC5zaW4oYW5nbGUpOworICB2YXIgb25lTWludXNDb3NpbmUg
PSAxIC0gYzsKKworICBkc3RbIDBdID0geHggKyAoMSAtIHh4KSAqIGM7CisgIGRzdFsgMV0gPSB4
ICogeSAqIG9uZU1pbnVzQ29zaW5lICsgeiAqIHM7CisgIGRzdFsgMl0gPSB4ICogeiAqIG9uZU1p
bnVzQ29zaW5lIC0geSAqIHM7CisgIGRzdFsgM10gPSAwOworICBkc3RbIDRdID0geCAqIHkgKiBv
bmVNaW51c0Nvc2luZSAtIHogKiBzOworICBkc3RbIDVdID0geXkgKyAoMSAtIHl5KSAqIGM7Cisg
IGRzdFsgNl0gPSB5ICogeiAqIG9uZU1pbnVzQ29zaW5lICsgeCAqIHM7CisgIGRzdFsgN10gPSAw
OworICBkc3RbIDhdID0geCAqIHogKiBvbmVNaW51c0Nvc2luZSArIHkgKiBzOworICBkc3RbIDld
ID0geSAqIHogKiBvbmVNaW51c0Nvc2luZSAtIHggKiBzOworICBkc3RbMTBdID0genogKyAoMSAt
IHp6KSAqIGM7CisgIGRzdFsxMV0gPSAwOworICBkc3RbMTJdID0gMDsKKyAgZHN0WzEzXSA9IDA7
CisgIGRzdFsxNF0gPSAwOworICBkc3RbMTVdID0gMTsKKworICByZXR1cm4gZHN0OworfTsKKwor
ZnVuY3Rpb24gbXVsTWF0cml4KGEsIGIpIHsKKyAgdmFyIGRzdCA9IG5ldyBGbG9hdDMyQXJyYXko
MTYpOworICB2YXIgYTAwID0gYVswXTsKKyAgdmFyIGEwMSA9IGFbMV07CisgIHZhciBhMDIgPSBh
WzJdOworICB2YXIgYTAzID0gYVszXTsKKyAgdmFyIGExMCA9IGFbIDQgKyAwXTsKKyAgdmFyIGEx
MSA9IGFbIDQgKyAxXTsKKyAgdmFyIGExMiA9IGFbIDQgKyAyXTsKKyAgdmFyIGExMyA9IGFbIDQg
KyAzXTsKKyAgdmFyIGEyMCA9IGFbIDggKyAwXTsKKyAgdmFyIGEyMSA9IGFbIDggKyAxXTsKKyAg
dmFyIGEyMiA9IGFbIDggKyAyXTsKKyAgdmFyIGEyMyA9IGFbIDggKyAzXTsKKyAgdmFyIGEzMCA9
IGFbMTIgKyAwXTsKKyAgdmFyIGEzMSA9IGFbMTIgKyAxXTsKKyAgdmFyIGEzMiA9IGFbMTIgKyAy
XTsKKyAgdmFyIGEzMyA9IGFbMTIgKyAzXTsKKyAgdmFyIGIwMCA9IGJbMF07CisgIHZhciBiMDEg
PSBiWzFdOworICB2YXIgYjAyID0gYlsyXTsKKyAgdmFyIGIwMyA9IGJbM107CisgIHZhciBiMTAg
PSBiWyA0ICsgMF07CisgIHZhciBiMTEgPSBiWyA0ICsgMV07CisgIHZhciBiMTIgPSBiWyA0ICsg
Ml07CisgIHZhciBiMTMgPSBiWyA0ICsgM107CisgIHZhciBiMjAgPSBiWyA4ICsgMF07CisgIHZh
ciBiMjEgPSBiWyA4ICsgMV07CisgIHZhciBiMjIgPSBiWyA4ICsgMl07CisgIHZhciBiMjMgPSBi
WyA4ICsgM107CisgIHZhciBiMzAgPSBiWzEyICsgMF07CisgIHZhciBiMzEgPSBiWzEyICsgMV07
CisgIHZhciBiMzIgPSBiWzEyICsgMl07CisgIHZhciBiMzMgPSBiWzEyICsgM107CisgIGRzdFsg
MF0gPSBhMDAgKiBiMDAgKyBhMDEgKiBiMTAgKyBhMDIgKiBiMjAgKyBhMDMgKiBiMzA7CisgIGRz
dFsgMV0gPSBhMDAgKiBiMDEgKyBhMDEgKiBiMTEgKyBhMDIgKiBiMjEgKyBhMDMgKiBiMzE7Cisg
IGRzdFsgMl0gPSBhMDAgKiBiMDIgKyBhMDEgKiBiMTIgKyBhMDIgKiBiMjIgKyBhMDMgKiBiMzI7
CisgIGRzdFsgM10gPSBhMDAgKiBiMDMgKyBhMDEgKiBiMTMgKyBhMDIgKiBiMjMgKyBhMDMgKiBi
MzM7CisgIGRzdFsgNF0gPSBhMTAgKiBiMDAgKyBhMTEgKiBiMTAgKyBhMTIgKiBiMjAgKyBhMTMg
KiBiMzA7CisgIGRzdFsgNV0gPSBhMTAgKiBiMDEgKyBhMTEgKiBiMTEgKyBhMTIgKiBiMjEgKyBh
MTMgKiBiMzE7CisgIGRzdFsgNl0gPSBhMTAgKiBiMDIgKyBhMTEgKiBiMTIgKyBhMTIgKiBiMjIg
KyBhMTMgKiBiMzI7CisgIGRzdFsgN10gPSBhMTAgKiBiMDMgKyBhMTEgKiBiMTMgKyBhMTIgKiBi
MjMgKyBhMTMgKiBiMzM7CisgIGRzdFsgOF0gPSBhMjAgKiBiMDAgKyBhMjEgKiBiMTAgKyBhMjIg
KiBiMjAgKyBhMjMgKiBiMzA7CisgIGRzdFsgOV0gPSBhMjAgKiBiMDEgKyBhMjEgKiBiMTEgKyBh
MjIgKiBiMjEgKyBhMjMgKiBiMzE7CisgIGRzdFsxMF0gPSBhMjAgKiBiMDIgKyBhMjEgKiBiMTIg
KyBhMjIgKiBiMjIgKyBhMjMgKiBiMzI7CisgIGRzdFsxMV0gPSBhMjAgKiBiMDMgKyBhMjEgKiBi
MTMgKyBhMjIgKiBiMjMgKyBhMjMgKiBiMzM7CisgIGRzdFsxMl0gPSBhMzAgKiBiMDAgKyBhMzEg
KiBiMTAgKyBhMzIgKiBiMjAgKyBhMzMgKiBiMzA7CisgIGRzdFsxM10gPSBhMzAgKiBiMDEgKyBh
MzEgKiBiMTEgKyBhMzIgKiBiMjEgKyBhMzMgKiBiMzE7CisgIGRzdFsxNF0gPSBhMzAgKiBiMDIg
KyBhMzEgKiBiMTIgKyBhMzIgKiBiMjIgKyBhMzMgKiBiMzI7CisgIGRzdFsxNV0gPSBhMzAgKiBi
MDMgKyBhMzEgKiBiMTMgKyBhMzIgKiBiMjMgKyBhMzMgKiBiMzM7CisgIHJldHVybiBkc3Q7Cit9
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUt
bWFwcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWItaW1hZ2UtY3ViZS1tYXBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDM4ZjgxNzI5MjEyODAzOWUxNGQ2Y2U0Mzg5MWU5MzRlNDgzNTUwZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sCkBA
IC0wLDAgKzEsMzM3IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAi
TWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQK
KyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFs
cy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCB0ZXh0dXJlIHRleFN1YkltYWdlMkRzIGN1YmUgbWFwIGNvbmZvcm1hbmNl
IHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0
MHB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVy
dGV4Ij4KK2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKK3VuaWZvcm0gbWF0NCByb3RhdGlvbjsK
K3ZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24g
PSB2UG9zaXRpb247CisgICAgdmVjNCBkaXJlY3Rpb24gPSB2ZWM0KHZQb3NpdGlvbi54ICogMC41
LCB2UG9zaXRpb24ueSAqIDAuNSwgMSwgMSk7CisgICAgdGV4Q29vcmQgPSBub3JtYWxpemUoKHJv
dGF0aW9uICogZGlyZWN0aW9uKS54eXopOworfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZz
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7Cit1bmlmb3JtIHNhbXBsZXJDdWJlIHRleDsKK3ZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKK3Zv
aWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZUN1YmUodGV4LCBub3JtYWxp
emUodGV4Q29vcmQpKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK3Zh
ciBjYW52YXM7CitkZXNjcmlwdGlvbigiQ2hlY2tzIGlzc3VlcyB3aXRoIHNpemUgb2YgY3ViZSBt
YXAgdGV4dHVyZXMiKTsKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwor
dmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7CisKK3ZhciBn
bCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKK3d0dS5zZXR1cFVuaXRRdWFkKGdsLCAw
LCAxKTsKK3ZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKKyAgICBnbCwKKyAgICBbJ3Zz
aGFkZXInLCAnZnNoYWRlciddLAorICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLCBbMCwg
MV0pOwordmFyIHJvdExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAicm90YXRp
b24iKTsKKwordmFyIHNpemUgPSAxNjsKKwordmFyIGNvbG9ycyA9IFsKKyAge25hbWU6ICdyZWQn
LCAgICAgY29sb3I6IFsyNTUsICAgMCwgICAwLCAyNTVdfSwKKyAge25hbWU6ICdncmVlbicsICAg
Y29sb3I6IFsgIDAsIDI1NSwgICAwLCAyNTVdfSwKKyAge25hbWU6ICdibHVlJywgICAgY29sb3I6
IFsgIDAsICAgMCwgMjU1LCAyNTVdfSwKKyAge25hbWU6ICd5ZWxsb3cnLCAgY29sb3I6IFsyNTUs
IDI1NSwgICAwLCAyNTVdfSwKKyAge25hbWU6ICdjeWFuJywgICAgY29sb3I6IFsgIDAsIDI1NSwg
MjU1LCAyNTVdfSwKKyAge25hbWU6ICdtYWdlbnRhJywgY29sb3I6IFsyNTUsICAgMCwgMjU1LCAy
NTVdfQorXTsKKwordmFyIHRhcmdldHMgPSBbCisgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJ
VkVfWCwKKyAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAorICBnbC5URVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1ksCisgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKKyAg
Z2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAorICBnbC5URVhUVVJFX0NVQkVfTUFQX05F
R0FUSVZFX1pdOworCit2YXIgcm90YXRpb25zID0gWworICB7YXhpczogWzAsIDEsIDBdLCBhbmds
ZTogIE1hdGguUEkgLyAyfSwKKyAge2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8g
Mn0sCisgIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDJ9LAorICB7YXhpczog
WzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwKKyAge2F4aXM6IFswLCAxLCAwXSwgYW5n
bGU6ICAwfSwKKyAge2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6ICBNYXRoLlBJfSwKK107CisKK3Zh
ciBoYWxmUm90YXRpb25zID0gWworICB7Y29sb3JzOiBbMywgNF0sIHJvdGF0aW9uczogW3theGlz
OiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDR9XX0sCisgIHtjb2xvcnM6IFs0LCAyXSwg
cm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNH1dfSwKKyAg
e2NvbG9yczogWzUsIDNdLCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1h
dGguUEkgLyA0ICogM31dfSwKKyAge2NvbG9yczogWzIsIDVdLCByb3RhdGlvbnM6IFt7YXhpczog
WzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyA0ICogM31dfSwKKyAge2NvbG9yczogWzMsIDBd
LCByb3RhdGlvbnM6IFt7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1h
dGguUEkgLyA0fV19LAorICB7Y29sb3JzOiBbMCwgMl0sIHJvdGF0aW9uczogW3theGlzOiBbMCwg
MSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDR9XX0sCitdOworCit2YXIg
Y291bnQgPSAwOwordGVzdFNpemUoc2l6ZSk7CisKK2Z1bmN0aW9uIHRlc3RTaXplKHNpemUpIHsK
KyAgZGVidWcoIiIpOworICBkZWJ1ZygidGVzdGluZyBzaXplOiAiICsgc2l6ZSk7CisgIHZhciBj
YW52YXNTaXplID0gTWF0aC5tYXgoc2l6ZSAvIDQsIDIpOworICBjYW52YXMud2lkdGggPSBjYW52
YXNTaXplOworICBjYW52YXMuaGVpZ2h0ID0gY2FudmFzU2l6ZTsKKyAgZ2wudmlld3BvcnQoMCwg
MCwgY2FudmFzU2l6ZSwgY2FudmFzU2l6ZSk7CisgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJl
KCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleCk7CisKKyAgLy8g
U2VlbXMgbGlrZSBJIHNob3VsZCBiZSB1c2luZyBMSU5FQVIgaGVyZSB3aXRoIHNvbWUgb3RoZXIg
bWF0aAorICAvLyB0byBtYWtlIHN1cmUgSSBnZXQgbW9yZSBtaXAgY292ZXJhZ2UgYnV0IHRoYXQn
cyBlYXNpZXIgc2FpZAorICAvLyB0aGFuIGRvbmUuCisKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUFHX0ZJTFRF
UiwgZ2wuTkVBUkVTVCk7CisKKyAgZm9yICh2YXIgamogPSAwOyBqaiA8IDI7ICsramopIHsKKyAg
ICBmb3IgKHZhciB0dCA9IDA7IHR0IDwgdGFyZ2V0cy5sZW5ndGg7ICsrdHQpIHsKKyAgICAgIHZh
ciBjb2xvciA9IGNvbG9yc1sodHQgKyBjb3VudCkgJSBjb2xvcnMubGVuZ3RoXTsKKyAgICAgIGZp
bGxMZXZlbCh0YXJnZXRzW3R0XSwgMCwgc2l6ZSwgY29sb3IuY29sb3IpOworICAgIH0KKyAgICBp
ZiAoamogPT0gMSkgeworICAgICAgZGVidWcoInVzZSBtaXBtYXAiKTsKKyAgICAgIGdsLnRleFBh
cmFtZXRlcmkoCisgICAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLAorICAgICAgICAgIGdsLk5FQVJFU1RfTUlQTUFQX05FQVJFU1QpOworICAgICAgZ2wu
Z2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV9DVUJFX01BUCk7CisgICAgfQorCisgICAgdmFyIGVy
ciA9IGdsLmdldEVycm9yKCk7CisgICAgaWYgKGVyciA9PSBnbC5PVVRfT0ZfTUVNT1JZKSB7Cisg
ICAgICBkZWJ1Zygib3V0IG9mIG1lbW9yeSIpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICBpZiAoZXJyICE9IGdsLk5PX0VSUk9SKSB7CisgICAgICB0ZXN0RmFpbGVkKCJ1bmV4cGVj
dGVkIGdsIGVycm9yOiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBlcnIpKTsKKyAgICB9CisK
KworICAgIGZvciAodmFyIHJyID0gMDsgcnIgPCByb3RhdGlvbnMubGVuZ3RoOyArK3JyKSB7Cisg
ICAgICB2YXIgcm90ID0gcm90YXRpb25zW3JyXTsKKyAgICAgIHZhciBjb2xvciA9IGNvbG9yc1so
cnIgKyBjb3VudCkgJSBjb2xvcnMubGVuZ3RoXTsKKyAgICAgIHZhciByb3RNYXQgPSBheGlzUm90
YXRpb24ocm90LmF4aXMsIHJvdC5hbmdsZSk7CisgICAgICBnbC51bmlmb3JtTWF0cml4NGZ2KHJv
dExvYywgZmFsc2UsIHJvdE1hdCk7CisgICAgICB3dHUuZHJhd1F1YWQoZ2wpOworICAgICAgd3R1
LmNoZWNrQ2FudmFzKAorICAgICAgICAgIGdsLCBjb2xvci5jb2xvciwKKyAgICAgICAgICB3dHUu
Z2xFbnVtVG9TdHJpbmcoZ2wsIHRhcmdldHNbcnJdKSArICIgc2hvdWxkIGJlICIgKyBjb2xvci5u
YW1lKTsKKyAgICB9CisKKyAgICBmb3IgKHZhciByciA9IDA7IHJyIDwgaGFsZlJvdGF0aW9ucy5s
ZW5ndGg7ICsrcnIpIHsKKyAgICAgIHZhciBoID0gaGFsZlJvdGF0aW9uc1tycl07CisgICAgICB2
YXIgcm90cyA9IGgucm90YXRpb25zOworICAgICAgdmFyIHJvdE1hdCA9IGF4aXNSb3RhdGlvbihy
b3RzWzBdLmF4aXMsIHJvdHNbMF0uYW5nbGUpOworICAgICAgZm9yICh2YXIgaWkgPSAxOyBpaSA8
IHJvdHMubGVuZ3RoOyArK2lpKSB7CisgICAgICAgIHZhciB0bXBNYXQgPSBheGlzUm90YXRpb24o
cm90c1tpaV0uYXhpcywgcm90c1tpaV0uYW5nbGUpOworICAgICAgICB2YXIgcm90TWF0ID0gbXVs
TWF0cml4KHRtcE1hdCwgcm90TWF0KTsKKyAgICAgIH0KKyAgICAgIGdsLnVuaWZvcm1NYXRyaXg0
ZnYocm90TG9jLCBmYWxzZSwgcm90TWF0KTsKKyAgICAgIHd0dS5kcmF3UXVhZChnbCk7CisKKyAg
ICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCAyOyArK2lpKSB7CisgICAgICAgIGNoZWNrUmVjdCgK
KyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBjYW52YXNTaXplIC8gMiAqIGlpLAorICAgICAg
ICAgICAgY2FudmFzU2l6ZSwKKyAgICAgICAgICAgIGNhbnZhc1NpemUgLyAyLAorICAgICAgICAg
ICAgY29sb3JzWyhoLmNvbG9yc1tpaV0gKyBjb3VudCkgJSBjb2xvcnMubGVuZ3RoXSk7CisgICAg
ICB9CisgICAgfQorICAgICsrY291bnQ7CisgIH0KKworICBnbC5kZWxldGVUZXh0dXJlKHRleCk7
CisgIHJldHVybiB0cnVlOworfQorCitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
U2hvdWxkIGJlIG5vIGVycm9ycy4iKTsKKworZnVuY3Rpb24gY2hlY2tSZWN0KHgsIHksIHdpZHRo
LCBoZWlnaHQsIGNvbG9yKSB7CisgIHd0dS5jaGVja0NhbnZhc1JlY3QoCisgICAgICAgZ2wsCisg
ICAgICAgeCwKKyAgICAgICB5LAorICAgICAgIHdpZHRoLAorICAgICAgIGhlaWdodCwKKyAgICAg
ICBjb2xvci5jb2xvciwKKyAgICAgICAiIiArIHggKyAiLCAiICsgeSArICIsICIgKyB3aWR0aCAr
ICIsICIgKyBoZWlnaHQgKworICAgICAgICIgc2hvdWxkIGJlICIgKyBjb2xvci5uYW1lKTsKK30K
KworZnVuY3Rpb24gZmlsbExldmVsKHRhcmdldCwgbGV2ZWwsIHNpemUsIGNvbG9yKSB7CisgIHZh
ciBudW1QaXhlbHMgPSBzaXplICogc2l6ZTsKKyAgdmFyIGhhbGZQaXhlbFJvdyA9IG5ldyBVaW50
OEFycmF5KHNpemUgKiAyKTsKKyAgZm9yICh2YXIgamogPSAwOyBqaiA8IHNpemU7ICsramopIHsK
KyAgICB2YXIgb2ZmID0gamogKiA0OworICAgIGhhbGZQaXhlbFJvd1tvZmYgKyAwXSA9IGNvbG9y
WzBdOworICAgIGhhbGZQaXhlbFJvd1tvZmYgKyAxXSA9IGNvbG9yWzFdOworICAgIGhhbGZQaXhl
bFJvd1tvZmYgKyAyXSA9IGNvbG9yWzJdOworICAgIGhhbGZQaXhlbFJvd1tvZmYgKyAzXSA9IGNv
bG9yWzNdOworICB9CisgIGdsLnRleEltYWdlMkQoCisgICAgICB0YXJnZXQsIGxldmVsLCBnbC5S
R0JBLCBzaXplLCBzaXplLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgbnVs
bCk7CisgIGZvciAodmFyIGpqID0gMDsgamogPCBzaXplOyArK2pqKSB7CisgICAgICBnbC50ZXhT
dWJJbWFnZTJEKAorICAgICAgICAgIHRhcmdldCwgbGV2ZWwsIDAsIGpqLCBzaXplIC8gMiwgMSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaGFsZlBpeGVsUm93KTsKKyAgICAgIGdsLnRleFN1
YkltYWdlMkQoCisgICAgICAgICAgdGFyZ2V0LCBsZXZlbCwgc2l6ZSAvIDIsIGpqLCBzaXplIC8g
MiwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaGFsZlBpeGVsUm93KTsKKyAgfQorfQor
CitmdW5jdGlvbiBwcmludE1hdChtYXQpIHsKKyAgZGVidWcoIiIgKyBtYXRbMF0gKyAiLCAiICsg
bWF0WzFdICsgIiwgIiArIG1hdFsyXSArICIsICIgKyBtYXRbM10gKyAiLCAiKTsKKyAgZGVidWco
IiIgKyBtYXRbNF0gKyAiLCAiICsgbWF0WzVdICsgIiwgIiArIG1hdFs2XSArICIsICIgKyBtYXRb
N10gKyAiLCAiKTsKKyAgZGVidWcoIiIgKyBtYXRbOF0gKyAiLCAiICsgbWF0WzldICsgIiwgIiAr
IG1hdFsxMF0gKyAiLCAiICsgbWF0WzExXSArICIsICIpOworICBkZWJ1ZygiIiArIG1hdFsxMl0g
KyAiLCAiICsgbWF0WzEzXSArICIsICIgKyBtYXRbMTRdICsgIiwgIiArIG1hdFsxNV0gKyAiLCAi
KTsKK30KKworZnVuY3Rpb24gYXhpc1JvdGF0aW9uKGF4aXMsIGFuZ2xlKSB7CisgIHZhciBkc3Qg
PSBuZXcgRmxvYXQzMkFycmF5KDE2KTsKKyAgdmFyIHggPSBheGlzWzBdOworICB2YXIgeSA9IGF4
aXNbMV07CisgIHZhciB6ID0gYXhpc1syXTsKKyAgdmFyIG4gPSBNYXRoLnNxcnQoeCAqIHggKyB5
ICogeSArIHogKiB6KTsKKyAgeCAvPSBuOworICB5IC89IG47CisgIHogLz0gbjsKKyAgdmFyIHh4
ID0geCAqIHg7CisgIHZhciB5eSA9IHkgKiB5OworICB2YXIgenogPSB6ICogejsKKyAgdmFyIGMg
PSBNYXRoLmNvcyhhbmdsZSk7CisgIHZhciBzID0gTWF0aC5zaW4oYW5nbGUpOworICB2YXIgb25l
TWludXNDb3NpbmUgPSAxIC0gYzsKKworICBkc3RbIDBdID0geHggKyAoMSAtIHh4KSAqIGM7Cisg
IGRzdFsgMV0gPSB4ICogeSAqIG9uZU1pbnVzQ29zaW5lICsgeiAqIHM7CisgIGRzdFsgMl0gPSB4
ICogeiAqIG9uZU1pbnVzQ29zaW5lIC0geSAqIHM7CisgIGRzdFsgM10gPSAwOworICBkc3RbIDRd
ID0geCAqIHkgKiBvbmVNaW51c0Nvc2luZSAtIHogKiBzOworICBkc3RbIDVdID0geXkgKyAoMSAt
IHl5KSAqIGM7CisgIGRzdFsgNl0gPSB5ICogeiAqIG9uZU1pbnVzQ29zaW5lICsgeCAqIHM7Cisg
IGRzdFsgN10gPSAwOworICBkc3RbIDhdID0geCAqIHogKiBvbmVNaW51c0Nvc2luZSArIHkgKiBz
OworICBkc3RbIDldID0geSAqIHogKiBvbmVNaW51c0Nvc2luZSAtIHggKiBzOworICBkc3RbMTBd
ID0genogKyAoMSAtIHp6KSAqIGM7CisgIGRzdFsxMV0gPSAwOworICBkc3RbMTJdID0gMDsKKyAg
ZHN0WzEzXSA9IDA7CisgIGRzdFsxNF0gPSAwOworICBkc3RbMTVdID0gMTsKKworICByZXR1cm4g
ZHN0OworfTsKKworZnVuY3Rpb24gbXVsTWF0cml4KGEsIGIpIHsKKyAgdmFyIGRzdCA9IG5ldyBG
bG9hdDMyQXJyYXkoMTYpOworICB2YXIgYTAwID0gYVswXTsKKyAgdmFyIGEwMSA9IGFbMV07Cisg
IHZhciBhMDIgPSBhWzJdOworICB2YXIgYTAzID0gYVszXTsKKyAgdmFyIGExMCA9IGFbIDQgKyAw
XTsKKyAgdmFyIGExMSA9IGFbIDQgKyAxXTsKKyAgdmFyIGExMiA9IGFbIDQgKyAyXTsKKyAgdmFy
IGExMyA9IGFbIDQgKyAzXTsKKyAgdmFyIGEyMCA9IGFbIDggKyAwXTsKKyAgdmFyIGEyMSA9IGFb
IDggKyAxXTsKKyAgdmFyIGEyMiA9IGFbIDggKyAyXTsKKyAgdmFyIGEyMyA9IGFbIDggKyAzXTsK
KyAgdmFyIGEzMCA9IGFbMTIgKyAwXTsKKyAgdmFyIGEzMSA9IGFbMTIgKyAxXTsKKyAgdmFyIGEz
MiA9IGFbMTIgKyAyXTsKKyAgdmFyIGEzMyA9IGFbMTIgKyAzXTsKKyAgdmFyIGIwMCA9IGJbMF07
CisgIHZhciBiMDEgPSBiWzFdOworICB2YXIgYjAyID0gYlsyXTsKKyAgdmFyIGIwMyA9IGJbM107
CisgIHZhciBiMTAgPSBiWyA0ICsgMF07CisgIHZhciBiMTEgPSBiWyA0ICsgMV07CisgIHZhciBi
MTIgPSBiWyA0ICsgMl07CisgIHZhciBiMTMgPSBiWyA0ICsgM107CisgIHZhciBiMjAgPSBiWyA4
ICsgMF07CisgIHZhciBiMjEgPSBiWyA4ICsgMV07CisgIHZhciBiMjIgPSBiWyA4ICsgMl07Cisg
IHZhciBiMjMgPSBiWyA4ICsgM107CisgIHZhciBiMzAgPSBiWzEyICsgMF07CisgIHZhciBiMzEg
PSBiWzEyICsgMV07CisgIHZhciBiMzIgPSBiWzEyICsgMl07CisgIHZhciBiMzMgPSBiWzEyICsg
M107CisgIGRzdFsgMF0gPSBhMDAgKiBiMDAgKyBhMDEgKiBiMTAgKyBhMDIgKiBiMjAgKyBhMDMg
KiBiMzA7CisgIGRzdFsgMV0gPSBhMDAgKiBiMDEgKyBhMDEgKiBiMTEgKyBhMDIgKiBiMjEgKyBh
MDMgKiBiMzE7CisgIGRzdFsgMl0gPSBhMDAgKiBiMDIgKyBhMDEgKiBiMTIgKyBhMDIgKiBiMjIg
KyBhMDMgKiBiMzI7CisgIGRzdFsgM10gPSBhMDAgKiBiMDMgKyBhMDEgKiBiMTMgKyBhMDIgKiBi
MjMgKyBhMDMgKiBiMzM7CisgIGRzdFsgNF0gPSBhMTAgKiBiMDAgKyBhMTEgKiBiMTAgKyBhMTIg
KiBiMjAgKyBhMTMgKiBiMzA7CisgIGRzdFsgNV0gPSBhMTAgKiBiMDEgKyBhMTEgKiBiMTEgKyBh
MTIgKiBiMjEgKyBhMTMgKiBiMzE7CisgIGRzdFsgNl0gPSBhMTAgKiBiMDIgKyBhMTEgKiBiMTIg
KyBhMTIgKiBiMjIgKyBhMTMgKiBiMzI7CisgIGRzdFsgN10gPSBhMTAgKiBiMDMgKyBhMTEgKiBi
MTMgKyBhMTIgKiBiMjMgKyBhMTMgKiBiMzM7CisgIGRzdFsgOF0gPSBhMjAgKiBiMDAgKyBhMjEg
KiBiMTAgKyBhMjIgKiBiMjAgKyBhMjMgKiBiMzA7CisgIGRzdFsgOV0gPSBhMjAgKiBiMDEgKyBh
MjEgKiBiMTEgKyBhMjIgKiBiMjEgKyBhMjMgKiBiMzE7CisgIGRzdFsxMF0gPSBhMjAgKiBiMDIg
KyBhMjEgKiBiMTIgKyBhMjIgKiBiMjIgKyBhMjMgKiBiMzI7CisgIGRzdFsxMV0gPSBhMjAgKiBi
MDMgKyBhMjEgKiBiMTMgKyBhMjIgKiBiMjMgKyBhMjMgKiBiMzM7CisgIGRzdFsxMl0gPSBhMzAg
KiBiMDAgKyBhMzEgKiBiMTAgKyBhMzIgKiBiMjAgKyBhMzMgKiBiMzA7CisgIGRzdFsxM10gPSBh
MzAgKiBiMDEgKyBhMzEgKiBiMTEgKyBhMzIgKiBiMjEgKyBhMzMgKiBiMzE7CisgIGRzdFsxNF0g
PSBhMzAgKiBiMDIgKyBhMzEgKiBiMTIgKyBhMzIgKiBiMjIgKyBhMzMgKiBiMzI7CisgIGRzdFsx
NV0gPSBhMzAgKiBiMDMgKyBhMzEgKiBiMTMgKyBhMzIgKiBiMjMgKyBhMzMgKiBiMzM7CisgIHJl
dHVybiBkc3Q7Cit9OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdHJh
bnNwYXJlbnQtcGl4ZWxzLWluaXRpYWxpemVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5z
cGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NWFjNzVmMDRmZGVk
MTVkOGNkNzQzMGE0MjI0NjJiZDQxNzQ3NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sCkBAIC0wLDAgKzEsMTA5
IEBACis8IS0tCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9v
ciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0
byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisq
KiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhF
IE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoq
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCistLT4KKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1
c2Ugc3RyaWN0IjsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IG51bGw7Cit2
YXIgdGV4dHVyZTsKK3ZhciB0ZXh0dXJlTG9jID0gbnVsbDsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSBmYWxzZTsKKworZnVuY3Rpb24gaW5pdCgpCit7CisgICAgaW5pdFRlc3RpbmdIYXJuZXNz
V2FpdFVudGlsRG9uZSgpOworCisgICAgZGVzY3JpcHRpb24oJ1Rlc3RzIHRoZXJlIGlzIG5vIGdh
cmJhZ2UgaW4gdHJhbnNwYXJlbnQgcmVnaW9ucyBvZiBpbWFnZXMgdXBsb2FkZWQgYXMgdGV4dHVy
ZXMnKTsKKworICAgIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworICAgIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dCgiZXhhbXBsZSIpOworICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRR
dWFkKGdsKTsKKyAgICBnbC5jbGVhckNvbG9yKDAuNSwwLjUsMC41LDEpOworICAgIGdsLmNsZWFy
RGVwdGgoMSk7CisKKyAgICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dy
YW0sICJ0ZXgiKTsKKworICAgIC8vIFRoZSBpbnB1dCB0ZXh0dXJlIGhhcyA4IGNoYXJhY3RlcnM7
IHRha2UgdGhlIGxlZnRtb3N0IG9uZQorICAgIHZhciBjb2VmZiA9IDEuMCAvIDguMDsKKyAgICB2
YXIgdGV4Q29vcmRzID0gbmV3IEZsb2F0MzJBcnJheShbCisgICAgICAgIGNvZWZmLCAxLjAsCisg
ICAgICAgIDAuMCwgMS4wLAorICAgICAgICAwLjAsIDAuMCwKKyAgICAgICAgY29lZmYsIDEuMCwK
KyAgICAgICAgMC4wLCAwLjAsCisgICAgICAgIGNvZWZmLCAwLjBdKTsKKworICAgIHZhciB2Ym8g
PSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
dmJvKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgdGV4Q29vcmRzLCBnbC5T
VEFUSUNfRFJBVyk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CisgICAgZ2wu
dmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworCisgICAg
dGV4dHVyZSA9IHd0dS5sb2FkVGV4dHVyZShnbCwgIi4uL3Jlc291cmNlcy9idWctMzI4ODgtdGV4
dHVyZS5wbmciLCBydW5UZXN0KTsKK30KKworLy8gVGhlc2UgdHdvIGRlY2xhcmF0aW9ucyBuZWVk
IHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJlIiB0byBzZWUgdGhlbQordmFyIGJ1ZiA9IG51bGw7
Cit2YXIgaWR4ID0gMDsKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZ2wuY2xlYXIoZ2wu
Q09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgIGdsLmVuYWJsZShn
bC5CTEVORCk7CisgICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NS
Q19BTFBIQSk7CisgICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAorICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIC8vIFBvaW50IHRo
ZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKKyAgICBnbC51bmlmb3JtMWkodGV4
dHVyZUxvYywgMCk7CisgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCisgICAgd3R1LmRyYXdRdWFk
KGdsLCBbMCwgMCwgMCwgMjU1XSk7CisKKyAgICAvLyBTcG90IGNoZWNrIGEgY291cGxlIG9mIDJ4
MiByZWdpb25zIGluIHRoZSB1cHBlciBhbmQgbG93ZXIgbGVmdAorICAgIC8vIGNvcm5lcnM7IHRo
ZXkgc2hvdWxkIGJlIHRoZSByZ2IgdmFsdWVzIGluIHRoZSB0ZXh0dXJlLgorICAgIHZhciBjb2xv
ciA9IFswLCAwLCAwXTsKKyAgICBkZWJ1ZygiQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsK
KyAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAxLCBnbC5jYW52YXMuaGVpZ2h0IC0gMywgMiwg
MiwgY29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAic2hvdWxkQmUgIiArIGNvbG9yKTsK
KyAgICBkZWJ1ZygiQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIiKTsKKyAgICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCAxLCAxLCAyLCAyLCBjb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJzaG91bGRCZSAiICsgY29sb3IpOworCisgICAgZmluaXNoVGVzdCgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3
aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYjY1NGMzYmE2ZDNlNWRj
NDkxMGNlNDIzYjMyMWQxMGJkMmNkYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0
dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IS0tCisKKy8qCisq
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFz
IGlkPSJleGFtcGxlIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyJ1
c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFn
ZTJEIHVwbG9hZCBwYXRoIGZvciBURVhUVVJFX0NVQkVfTUFQJyk7CisKK3ZhciB3dHUgPSBXZWJH
TFRlc3RVdGlsczsKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBs
ZSIpOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOworZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsK
KworZnVuY3Rpb24gdGVzdE9uZVRhcmdldCh0YXJnZXQsIHdpZHRoLCBoZWlnaHQpIHsKKyAgdmFy
IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9D
VUJFX01BUCwgdGV4KTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3Vs
ZCBiZSBubyBlcnJvcnMgZnJvbSBiaW5kVGV4dHVyZShURVhUVVJFX0NVQkVfTUFQKS4iKTsKKwor
ICBnbC50ZXhJbWFnZTJEKHRhcmdldCwgMCwgZ2wuUkdCLCB3aWR0aCwgaGVpZ2h0LCAwLCBnbC5S
R0IsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOworICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHRleEltYWdlMkQuIik7CisKKyAgdmFy
IGJ1ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogMyk7CisgIGdsLnRleFN1Yklt
YWdlMkQodGFyZ2V0LCAwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0IsIGdsLlVOU0lHTkVE
X0JZVEUsIGJ1Zik7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQg
YmUgbm8gZXJyb3JzIGZyb20gdGV4U3ViSW1hZ2UyRC4iKTsKK30KKwordGVzdE9uZVRhcmdldChn
bC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsIDE2LCAxNik7Cit0ZXN0T25lVGFyZ2V0KGds
LlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwgMTYsIDE2KTsKK3Rlc3RPbmVUYXJnZXQoZ2wu
VEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLCAxNiwgMTYpOwordGVzdE9uZVRhcmdldChnbC5U
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsIDE2LCAxNik7Cit0ZXN0T25lVGFyZ2V0KGdsLlRF
WFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwgMTYsIDE2KTsKK3Rlc3RPbmVUYXJnZXQoZ2wuVEVY
VFVSRV9DVUJFX01BUF9ORUdBVElWRV9aLCAxNiwgMTYpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>