<?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>109118</bug_id>
          
          <creation_ts>2013-02-06 18:07:21 -0800</creation_ts>
          <short_desc>Add WebGL Conformance Tests more folder.</short_desc>
          <delta_ts>2013-02-13 23:42:44 -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>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826947</commentid>
    <comment_count>0</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 18:07:21 -0800</bug_when>
    <thetext>Add WebGL Conformance Tests more folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826949</commentid>
    <comment_count>1</comment_count>
      <attachid>186965</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 18:07:37 -0800</bug_when>
    <thetext>Created attachment 186965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826986</commentid>
    <comment_count>2</comment_count>
      <attachid>186965</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-06 18:49:50 -0800</bug_when>
    <thetext>Comment on attachment 186965
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827357</commentid>
    <comment_count>3</comment_count>
      <attachid>186965</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 05:31:23 -0800</bug_when>
    <thetext>Comment on attachment 186965
Patch

Rejecting attachment 186965 from commit-queue.

New failing tests:
webgl/conformance/more/functions/uniformMatrixBadArgs.html
Full output: http://queues.webkit.org/results/16430125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827730</commentid>
    <comment_count>4</comment_count>
      <attachid>186965</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 11:06:16 -0800</bug_when>
    <thetext>Comment on attachment 186965
Patch

Attachment 186965 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16445280

New failing tests:
webgl/conformance/more/functions/uniformMatrixBadArgs.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832768</commentid>
    <comment_count>5</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-13 23:42:44 -0800</bug_when>
    <thetext>Committed r142854: &lt;http://trac.webkit.org/changeset/142854&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186965</attachid>
            <date>2013-02-06 18:07:37 -0800</date>
            <delta_ts>2013-02-07 11:06:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109118-20130206180414.patch</filename>
            <type>text/plain</type>
            <size>581446</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDU4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTg1YzNmODI2ZjFlY2EwZDY4NmNl
OTY2MDM2ZmZkNjliMWMyYmQ4My4uODI4N2VkMjNkMDMxN2FiYzFiZDlhOWQwYWU1NDQyOWEwYWI4
Yzk2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0NyBAQAogMjAxMy0wMi0wNiAgR3JlZ2cgVGF2YXJlcyAg
PGdtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIEFkZCBXZWJHTCBDb25mb3JtYW5jZSBUZXN0
cyBtb3JlIGZvbGRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9jb25zdGFudHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2NvbmZv
cm1hbmNlL2NvbnN0YW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZS9tb3JlL2NvbmZvcm1hbmNlL2dldENvbnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2dldENvbnRleHQuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9tZXRo
b2RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9y
ZS9jb25mb3JtYW5jZS9tZXRob2RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZv
cm1hbmNlL21vcmUvY29uZm9ybWFuY2Uvd2ViR0xBcnJheXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL3dlYkdMQXJyYXlz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L2JpbmRCdWZmZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9iaW5kQnVmZmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2JpbmRCdWZmZXJCYWRBcmdzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
YmluZEJ1ZmZlckJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmlu
ZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlckRhdGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRhLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1
ZmZlclN1YkRhdGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJTdWJEYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRBcmdzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvYnVmZmVyU3ViRGF0YUJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvaXNUZXN0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvaXNUZXN0
c0JhZEFyZ3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy9pc1Rlc3RzQmFkQXJncy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBp
eGVscy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJELWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTEJhZEFyZ3Mt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1
YkltYWdlMkQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUxCYWRBcmdzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhU
TUxCYWRBcmdzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtTWF0cml4Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRy
aXhCYWRBcmdzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeEJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWYtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91
bmlmb3JtZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy91bmlmb3JtZkFycmF5TGVuMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZv
cm1mQmFkQXJncy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQmFkQXJncy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtaS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZv
cm1pLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3VuaWZvcm1pQmFkQXJncy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1pQmFkQXJncy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy92ZXJ0ZXhBdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliQmFkQXJncy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0
dHJpYkJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVy
QmFkQXJncy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2ds
c2wvYXJyYXlPdXRPZkJvdW5kcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L2NvbmZvcm1hbmNlL21vcmUvZ2xzbC9hcnJheU91dE9mQm91bmRzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL21vcmUvZ2xzbC91bmlmb3JtT3V0T2ZCb3VuZHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2dsc2wv
dW5pZm9ybU91dE9mQm91bmRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvMDBfdGVzdF9saXN0LnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9SRUFETUUubWQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvYWxsX3Rlc3RzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
YWxsX3Rlc3RzX2xpbmtvbmx5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvYWxsX3Rlc3RzX3NlcXVlbnRpYWwu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLUEuanM6IEFkZGVkLgor
ICAgICAgICAoQXJnR2VuZXJhdG9ycy5hY3RpdmVUZXh0dXJlLmdlbmVyYXRlKToKKyAgICAgICAg
KEFyZ0dlbmVyYXRvcnMuYWN0aXZlVGV4dHVyZS5jaGVja0FyZ1ZhbGlkaXR5KToKKyAgICAgICAg
KEFyZ0dlbmVyYXRvcnMuYWN0aXZlVGV4dHVyZS50ZWFyZG93bik6CisgICAgICAgIChBcmdHZW5l
cmF0b3JzLmF0dGFjaFNoYWRlci5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmF0
dGFjaFNoYWRlci5jaGVja0FyZ1ZhbGlkaXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYXR0
YWNoU2hhZGVyLmNsZWFudXApOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1CMS5qczog
QWRkZWQuCisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJpbmRBdHRyaWJMb2NhdGlvbi5nZW5lcmF0
ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJpbmRBdHRyaWJMb2NhdGlvbi5jaGVja0FyZ1Zh
bGlkaXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYmluZEF0dHJpYkxvY2F0aW9uLmNsZWFu
dXApOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1CMi5qczogQWRkZWQuCisgICAgICAg
IChBcmdHZW5lcmF0b3JzLmJpbmRCdWZmZXIuZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJh
dG9ycy5iaW5kQnVmZmVyLmNoZWNrQXJnVmFsaWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9y
cy5iaW5kQnVmZmVyLmNsZWFudXApOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5iaW5kRnJhbWVi
dWZmZXIuZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5iaW5kRnJhbWVidWZmZXIu
Y2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJpbmRGcmFtZWJ1ZmZl
ci5jbGVhbnVwKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYmluZFJlbmRlcmJ1ZmZlci5nZW5l
cmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJpbmRSZW5kZXJidWZmZXIuY2hlY2tBcmdW
YWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJpbmRSZW5kZXJidWZmZXIuY2xlYW51
cCk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJpbmRUZXh0dXJlLmdlbmVyYXRlKToKKyAgICAg
ICAgKEFyZ0dlbmVyYXRvcnMuYmluZFRleHR1cmUuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAg
IChBcmdHZW5lcmF0b3JzLmJpbmRUZXh0dXJlLmNsZWFudXApOgorICAgICAgICAoQXJnR2VuZXJh
dG9ycy5ibGVuZENvbG9yLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYmxlbmRD
b2xvci50ZWFyZG93bik6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJsZW5kRXF1YXRpb24uZ2Vu
ZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5ibGVuZEVxdWF0aW9uLmNoZWNrQXJnVmFs
aWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5ibGVuZEVxdWF0aW9uLnRlYXJkb3duKToK
KyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYmxlbmRFcXVhdGlvblNlcGFyYXRlLmdlbmVyYXRlKToK
KyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYmxlbmRFcXVhdGlvblNlcGFyYXRlLmNoZWNrQXJnVmFs
aWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5ibGVuZEVxdWF0aW9uU2VwYXJhdGUudGVh
cmRvd24pOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5ibGVuZEZ1bmMuZ2VuZXJhdGUpOgorICAg
ICAgICAoQXJnR2VuZXJhdG9ycy5ibGVuZEZ1bmMuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAg
IChBcmdHZW5lcmF0b3JzLmJsZW5kRnVuYy50ZWFyZG93bik6CisgICAgICAgIChBcmdHZW5lcmF0
b3JzLmJsZW5kRnVuY1NlcGFyYXRlLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMu
YmxlbmRGdW5jU2VwYXJhdGUuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0
b3JzLmJsZW5kRnVuY1NlcGFyYXRlLnRlYXJkb3duKToKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVy
YXRvcnMtQjMuanM6IEFkZGVkLgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5idWZmZXJEYXRhLnNl
dHVwKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYnVmZmVyRGF0YS5nZW5lcmF0ZSk6CisgICAg
ICAgIChBcmdHZW5lcmF0b3JzLmJ1ZmZlckRhdGEuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAg
IChBcmdHZW5lcmF0b3JzLmJ1ZmZlckRhdGEudGVhcmRvd24pOgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJn
R2VuZXJhdG9ycy1CNC5qczogQWRkZWQuCisgICAgICAgIChBcmdHZW5lcmF0b3JzLmJ1ZmZlclN1
YkRhdGEuc2V0dXApOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5idWZmZXJTdWJEYXRhLmdlbmVy
YXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYnVmZmVyU3ViRGF0YS5jaGVja0FyZ1ZhbGlk
aXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuYnVmZmVyU3ViRGF0YS50ZWFyZG93bik6Cisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLUMuanM6IEFkZGVkLgorICAgICAgICAoQXJnR2Vu
ZXJhdG9ycy5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dl
bmVyYXRvcnMuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cy5jaGVja0FyZ1ZhbGlkaXR5KToKKyAgICAg
ICAgKEFyZ0dlbmVyYXRvcnMuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cy5jbGVhbnVwKToKKyAgICAg
ICAgKEFyZ0dlbmVyYXRvcnMuY2xlYXIuZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJhdG9y
cy5jbGVhci5jaGVja0FyZ1ZhbGlkaXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuY2xlYXJD
b2xvci5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmNsZWFyQ29sb3IudGVhcmRv
d24pOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5jbGVhckRlcHRoLmdlbmVyYXRlKToKKyAgICAg
ICAgKEFyZ0dlbmVyYXRvcnMuY2xlYXJEZXB0aC50ZWFyZG93bik6CisgICAgICAgIChBcmdHZW5l
cmF0b3JzLmNsZWFyU3RlbmNpbC5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmNs
ZWFyU3RlbmNpbC50ZWFyZG93bik6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmNvbG9yTWFzay5n
ZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmNvbG9yTWFzay50ZWFyZG93bik6Cisg
ICAgICAgIChBcmdHZW5lcmF0b3JzLmNyZWF0ZUJ1ZmZlci5nZW5lcmF0ZSk6CisgICAgICAgIChB
cmdHZW5lcmF0b3JzLmNyZWF0ZUJ1ZmZlci5yZXR1cm5WYWx1ZUNsZWFudXApOgorICAgICAgICAo
QXJnR2VuZXJhdG9ycy5jcmVhdGVGcmFtZWJ1ZmZlci5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdH
ZW5lcmF0b3JzLmNyZWF0ZUZyYW1lYnVmZmVyLnJldHVyblZhbHVlQ2xlYW51cCk6CisgICAgICAg
IChBcmdHZW5lcmF0b3JzLmNyZWF0ZVByb2dyYW0uZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2Vu
ZXJhdG9ycy5jcmVhdGVQcm9ncmFtLnJldHVyblZhbHVlQ2xlYW51cCk6CisgICAgICAgIChBcmdH
ZW5lcmF0b3JzLmNyZWF0ZVJlbmRlcmJ1ZmZlci5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5l
cmF0b3JzLmNyZWF0ZVJlbmRlcmJ1ZmZlci5yZXR1cm5WYWx1ZUNsZWFudXApOgorICAgICAgICAo
QXJnR2VuZXJhdG9ycy5jcmVhdGVTaGFkZXIuZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJh
dG9ycy5jcmVhdGVTaGFkZXIuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0
b3JzLmNyZWF0ZVNoYWRlci5yZXR1cm5WYWx1ZUNsZWFudXApOgorICAgICAgICAoQXJnR2VuZXJh
dG9ycy5jcmVhdGVUZXh0dXJlLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuY3Jl
YXRlVGV4dHVyZS5yZXR1cm5WYWx1ZUNsZWFudXApOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5j
dWxsRmFjZS5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmN1bGxGYWNlLmNoZWNr
QXJnVmFsaWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5jdWxsRmFjZS50ZWFyZG93bik6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLURfRy5qczogQWRkZWQuCisgICAgICAgIChB
cmdHZW5lcmF0b3JzLmRlbGV0ZUJ1ZmZlci5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0
b3JzLmRlbGV0ZUJ1ZmZlci5jaGVja0FyZ1ZhbGlkaXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRv
cnMuZGVsZXRlQnVmZmVyLmNsZWFudXApOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5kZWxldGVG
cmFtZWJ1ZmZlci5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlbGV0ZUZyYW1l
YnVmZmVyLmNoZWNrQXJnVmFsaWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5kZWxldGVG
cmFtZWJ1ZmZlci5jbGVhbnVwKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZGVsZXRlUHJvZ3Jh
bS5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlbGV0ZVByb2dyYW0uY2hlY2tB
cmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlbGV0ZVByb2dyYW0uY2xlYW51
cCk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlbGV0ZVJlbmRlcmJ1ZmZlci5nZW5lcmF0ZSk6
CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlbGV0ZVJlbmRlcmJ1ZmZlci5jaGVja0FyZ1ZhbGlk
aXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZGVsZXRlUmVuZGVyYnVmZmVyLmNsZWFudXAp
OgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5kZWxldGVTaGFkZXIuZ2VuZXJhdGUpOgorICAgICAg
ICAoQXJnR2VuZXJhdG9ycy5kZWxldGVTaGFkZXIuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAg
IChBcmdHZW5lcmF0b3JzLmRlbGV0ZVNoYWRlci5jbGVhbnVwKToKKyAgICAgICAgKEFyZ0dlbmVy
YXRvcnMuZGVsZXRlVGV4dHVyZS5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRl
bGV0ZVRleHR1cmUuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRl
bGV0ZVRleHR1cmUuY2xlYW51cCk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlcHRoRnVuYy5n
ZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlcHRoRnVuYy5jaGVja0FyZ1ZhbGlk
aXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZGVwdGhGdW5jLnRlYXJkb3duKToKKyAgICAg
ICAgKEFyZ0dlbmVyYXRvcnMuZGVwdGhNYXNrLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVy
YXRvcnMuZGVwdGhNYXNrLnRlYXJkb3duKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZGVwdGhS
YW5nZS5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRlcHRoUmFuZ2UudGVhcmRv
d24pOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5kZXRhY2hTaGFkZXIuZ2VuZXJhdGUpOgorICAg
ICAgICAoQXJnR2VuZXJhdG9ycy5kZXRhY2hTaGFkZXIuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAg
ICAgIChBcmdHZW5lcmF0b3JzLmRldGFjaFNoYWRlci5jbGVhbnVwKToKKyAgICAgICAgKEFyZ0dl
bmVyYXRvcnMuZGlzYWJsZS5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRpc2Fi
bGUuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRpc2FibGUuY2xl
YW51cCk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheS5n
ZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJh
eS5jaGVja0FyZ1ZhbGlkaXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZW5hYmxlLmdlbmVy
YXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZW5hYmxlLmNoZWNrQXJnVmFsaWRpdHkpOgor
ICAgICAgICAoQXJnR2VuZXJhdG9ycy5lbmFibGUuY2xlYW51cCk6CisgICAgICAgIChBcmdHZW5l
cmF0b3JzLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5LmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dl
bmVyYXRvcnMuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAg
ICAgIChBcmdHZW5lcmF0b3JzLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5LmNsZWFudXApOgorICAg
ICAgICAoQXJnR2VuZXJhdG9ycy5maW5pc2guZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJh
dG9ycy5mbHVzaC5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmZyb250RmFjZS5n
ZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmZyb250RmFjZS5jaGVja0FyZ1ZhbGlk
aXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZnJvbnRGYWNlLmNsZWFudXApOgorICAgICAg
ICAoQXJnR2VuZXJhdG9ycy5nZW5lcmF0ZU1pcG1hcC5zZXR1cCk6CisgICAgICAgIChBcmdHZW5l
cmF0b3JzLmdlbmVyYXRlTWlwbWFwLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMu
Z2VuZXJhdGVNaXBtYXAuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3Jz
LmdlbmVyYXRlTWlwbWFwLnRlYXJkb3duKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZ2V0QXR0
YWNoZWRTaGFkZXJzLnNldHVwKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZ2V0QXR0YWNoZWRT
aGFkZXJzLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuZ2V0QXR0YWNoZWRTaGFk
ZXJzLmNoZWNrQXJnVmFsaWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5nZXRBdHRhY2hl
ZFNoYWRlcnMudGVhcmRvd24pOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1HX0kuanM6
IEFkZGVkLgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5nZXRBdHRyaWJMb2NhdGlvbi5nZW5lcmF0
ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLmdldEF0dHJpYkxvY2F0aW9uLmNoZWNrQXJnVmFs
aWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5nZXRBdHRyaWJMb2NhdGlvbi5jbGVhbnVw
KToKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVyYXRvcnMtTF9TLmpzOiBBZGRlZC4KKyAgICAgICAg
KEFyZ0dlbmVyYXRvcnMubGluZVdpZHRoLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRv
cnMubGluZVdpZHRoLnRlYXJkb3duKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMucGl4ZWxTdG9y
ZWkuZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5waXhlbFN0b3JlaS5jaGVja0Fy
Z1ZhbGlkaXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMucGl4ZWxTdG9yZWkudGVhcmRvd24p
OgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5wb2x5Z29uT2Zmc2V0LmdlbmVyYXRlKToKKyAgICAg
ICAgKEFyZ0dlbmVyYXRvcnMucG9seWdvbk9mZnNldC50ZWFyZG93bik6CisgICAgICAgIChBcmdH
ZW5lcmF0b3JzLnNhbXBsZUNvdmVyYWdlLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRv
cnMuc2FtcGxlQ292ZXJhZ2UudGVhcmRvd24pOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5zY2lz
c29yLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuc2Npc3Nvci5jaGVja0FyZ1Zh
bGlkaXR5KToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuc2Npc3Nvci50ZWFyZG93bik6CisgICAg
ICAgIChBcmdHZW5lcmF0b3JzLnN0ZW5jaWxGdW5jLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dl
bmVyYXRvcnMuc3RlbmNpbEZ1bmMuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5l
cmF0b3JzLnN0ZW5jaWxGdW5jLnRlYXJkb3duKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuc3Rl
bmNpbEZ1bmNTZXBhcmF0ZS5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLnN0ZW5j
aWxGdW5jU2VwYXJhdGUuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3Jz
LnN0ZW5jaWxGdW5jU2VwYXJhdGUudGVhcmRvd24pOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5z
dGVuY2lsTWFzay5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLnN0ZW5jaWxNYXNr
LnRlYXJkb3duKToKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVyYXRvcnMtU19WLmpzOiBBZGRlZC4K
KyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuc3RlbmNpbE1hc2tTZXBhcmF0ZS5nZW5lcmF0ZSk6Cisg
ICAgICAgIChBcmdHZW5lcmF0b3JzLnN0ZW5jaWxNYXNrU2VwYXJhdGUuY2hlY2tBcmdWYWxpZGl0
eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLnN0ZW5jaWxNYXNrU2VwYXJhdGUudGVhcmRvd24p
OgorICAgICAgICAoQXJnR2VuZXJhdG9ycy5zdGVuY2lsT3AuZ2VuZXJhdGUpOgorICAgICAgICAo
QXJnR2VuZXJhdG9ycy5zdGVuY2lsT3AuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdH
ZW5lcmF0b3JzLnN0ZW5jaWxPcC50ZWFyZG93bik6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLnN0
ZW5jaWxPcFNlcGFyYXRlLmdlbmVyYXRlKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMuc3RlbmNp
bE9wU2VwYXJhdGUuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLnN0
ZW5jaWxPcFNlcGFyYXRlLnRlYXJkb3duKToKKyAgICAgICAgKEFyZ0dlbmVyYXRvcnMudGV4SW1h
Z2UyRC5zZXR1cCk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLnRleEltYWdlMkQuZ2VuZXJhdGUp
OgorICAgICAgICAoQXJnR2VuZXJhdG9ycy50ZXhJbWFnZTJELmNoZWNrQXJnVmFsaWRpdHkpOgor
ICAgICAgICAoQXJnR2VuZXJhdG9ycy50ZXhJbWFnZTJELnRlYXJkb3duKToKKyAgICAgICAgKEFy
Z0dlbmVyYXRvcnMudGV4UGFyYW1ldGVyZi5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0
b3JzLnRleFBhcmFtZXRlcmYuY2hlY2tBcmdWYWxpZGl0eSk6CisgICAgICAgIChBcmdHZW5lcmF0
b3JzLnRleFBhcmFtZXRlcmkuZ2VuZXJhdGUpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy50ZXhQ
YXJhbWV0ZXJpLmNoZWNrQXJnVmFsaWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy52aWV3
cG9ydC5nZW5lcmF0ZSk6CisgICAgICAgIChBcmdHZW5lcmF0b3JzLnZpZXdwb3J0LmNoZWNrQXJn
VmFsaWRpdHkpOgorICAgICAgICAoQXJnR2VuZXJhdG9ycy52aWV3cG9ydC50ZWFyZG93bik6Cisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9jb25mb3JtYW5jZS9iYWRBcmdzQXJpdHlMZXNzVGhhbkFyZ2MuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9j
b25mb3JtYW5jZS9jb25zdGFudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9mdXp6VGhl
QVBJLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvZ2V0Q29udGV4dC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL2NvbmZvcm1hbmNlL21ldGhvZHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9xdWlj
a0NoZWNrQVBJLmpzOiBBZGRlZC4KKyAgICAgICAgKEFycmF5LmZyb20pOgorICAgICAgICAoQXJy
YXkucHJvdG90eXBlLmhhcyk6CisgICAgICAgIChBcnJheS5wcm90b3R5cGUucmFuZG9tKToKKyAg
ICAgICAgKGNhc3RUb0ludCk6CisgICAgICAgIChjb25zdENoZWNrLmEuaGFzKToKKyAgICAgICAg
KGNvbnN0Q2hlY2spOgorICAgICAgICAoaXNCdWZmZXJEYXRhKToKKyAgICAgICAgKGlzVmVydGV4
QXR0cmlidXRlKToKKyAgICAgICAgKGlzVmFsaWROYW1lKToKKyAgICAgICAgKHJhbmRvbVdlYkdM
QXJyYXkpOgorICAgICAgICAocmFuZG9tQXJyYXlCdWZmZXIpOgorICAgICAgICAocmFuZG9tQnVm
ZmVyRGF0YSk6CisgICAgICAgIChyYW5kb21TbWFsbFdlYkdMQXJyYXkpOgorICAgICAgICAocmFu
ZG9tQnVmZmVyU3ViRGF0YSk6CisgICAgICAgIChyYW5kb21Db2xvcik6CisgICAgICAgIChyYW5k
b21OYW1lKToKKyAgICAgICAgKHJhbmRvbVZlcnRleEF0dHJpYnV0ZSk6CisgICAgICAgIChyYW5k
b21Cb29sKToKKyAgICAgICAgKHJhbmRvbVN0ZW5jaWwpOgorICAgICAgICAocmFuZG9tTGluZVdp
ZHRoKToKKyAgICAgICAgKHJhbmRvbUltYWdlKToKKyAgICAgICAgKG11dGF0ZUFyZ3MpOgorICAg
ICAgICAoYXJnR2VuZXJhdG9yVGVzdFJ1bm5lcik6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9xdWlja0NoZWNr
QVBJQmFkQXJncy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL3dlYkdMQXJyYXlzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZGVtb3Mvb3BlbmdsX3dlYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2RlbW9zL3ZpZGVv
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2JpbmRCdWZmZXIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmlu
ZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZl
ckRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJTdWJEYXRhQmFkQXJncy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9pc1Rlc3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHNCYWRBcmdz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJE
SFRNTEJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy91bmlmb3JtTWF0cml4QmFkQXJncy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3Jt
Zi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtZkFycmF5TGVuMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtZkJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdW5pZm9ybWkuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWlCYWRBcmdzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy92ZXJ0ZXhBdHRyaWJCYWRBcmdzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Zl
cnRleEF0dHJpYlBvaW50ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmli
UG9pbnRlckJhZEFyZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9nbHNsL2FycmF5T3V0T2ZCb3VuZHMuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9nbHNsL2xvbmdMb29wcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2dsc2wvdW5pZm9y
bU91dE9mQm91bmRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZ2xzbC91bnVzZWRBdHRyaWJzVW5pZm9ybXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9pbmRleC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3BlcmZvcm1hbmNlL0NQVXZz
R1BVLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvcGVyZm9ybWFuY2UvYmFuZHdpZHRoLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvcGVyZm9ybWFuY2UvanNHQ1BhdXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvcGVyZm9ybWFuY2UvanNN
YXRyaXhNdWx0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvcGVyZm9ybWFuY2UvanNUb0dMT3ZlcmhlYWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS91bml0LmNzczogQWRkZWQuCisgICAgICAgICgub2spOgorICAgICAgICAo
LmZhaWwpOgorICAgICAgICAoY2FudmFzKToKKyAgICAgICAgKCN0ZXN0LXN0YXR1cyk6CisgICAg
ICAgICgjdGVzdC1sb2cpOgorICAgICAgICAoI3Rlc3QtbG9nID4gZGl2KToKKyAgICAgICAgKCN0
ZXN0LWxvZyBoMik6CisgICAgICAgICgjdGVzdC1sb2cgaDMpOgorICAgICAgICAoI3Rlc3QtbG9n
IHApOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvdW5pdC5qczogQWRkZWQuCisgICAgICAgICgud2luZG93LmNvbnNvbGUubG9nKToK
KyAgICAgICAgKC53aW5kb3cuY29uc29sZS5lcnJvcik6CisgICAgICAgIChUZXN0cy5zdGFydFVu
aXQpOgorICAgICAgICAoVGVzdHMuc2V0dXApOgorICAgICAgICAoVGVzdHMudGVhcmRvd24pOgor
ICAgICAgICAoVGVzdHMuZW5kVW5pdCk6CisgICAgICAgICguKToKKyAgICAgICAgKE9iamVjdC50
b1NvdXJjZSk6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS91dGlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGxvYWRUZXh0dXJlKToKKyAg
ICAgICAgKGdldFNoYWRlcik6CisgICAgICAgIChsb2FkU2hhZGVyQXJyYXkpOgorICAgICAgICAo
bG9hZFNoYWRlcik6CisgICAgICAgIChnZXRHTEVycm9yQXNTdHJpbmcpOgorICAgICAgICAoY2hl
Y2tFcnJvcik6CisgICAgICAgICh0aHJvd0Vycm9yKToKKyAgICAgICAgKE1hdGguY290KToKKyAg
ICAgICAgKE1hdHJpeC5uZXdJZGVudGl0eSk6CisgICAgICAgIChNYXRyaXgubmV3SWRlbnRpdHkz
eDMpOgorICAgICAgICAoTWF0cml4LmNvcHlNYXRyaXgpOgorICAgICAgICAoTWF0cml4LnRvM3gz
KToKKyAgICAgICAgKE1hdHJpeC5pbnZlcnNlT04pOgorICAgICAgICAoTWF0cml4LmludmVyc2VU
bzN4Myk6CisgICAgICAgIChNYXRyaXguaW52ZXJzZVRvM3gzSW5QbGFjZSk6CisgICAgICAgIChN
YXRyaXguaW52ZXJzZTN4Myk6CisgICAgICAgIChNYXRyaXguaW52ZXJzZTN4M0luUGxhY2UpOgor
ICAgICAgICAoTWF0cml4LmZydXN0dW0pOgorICAgICAgICAoTWF0cml4LnBlcnNwZWN0aXZlKToK
KyAgICAgICAgKE1hdHJpeC5tdWw0eDQpOgorICAgICAgICAoTWF0cml4Lm11bDR4NEluUGxhY2Up
OgorICAgICAgICAoTWF0cml4Lm11bHY0KToKKyAgICAgICAgKE1hdHJpeC5yb3RhdGUpOgorICAg
ICAgICAoTWF0cml4LnJvdGF0ZUluUGxhY2UpOgorICAgICAgICAoTWF0cml4LnNjYWxlKToKKyAg
ICAgICAgKE1hdHJpeC5zY2FsZTMpOgorICAgICAgICAoTWF0cml4LnNjYWxlMSk6CisgICAgICAg
IChNYXRyaXguc2NhbGUzSW5QbGFjZSk6CisgICAgICAgIChNYXRyaXguc2NhbGUxSW5QbGFjZSk6
CisgICAgICAgIChNYXRyaXguc2NhbGVJblBsYWNlKToKKyAgICAgICAgKE1hdHJpeC50cmFuc2xh
dGUzKToKKyAgICAgICAgKE1hdHJpeC50cmFuc2xhdGUpOgorICAgICAgICAoTWF0cml4LnRyYW5z
bGF0ZTNJblBsYWNlKToKKyAgICAgICAgKE1hdHJpeC50cmFuc2xhdGVJblBsYWNlKToKKyAgICAg
ICAgKE1hdHJpeC5sb29rQXQpOgorICAgICAgICAoTWF0cml4LnRyYW5zcG9zZTR4NCk6CisgICAg
ICAgIChNYXRyaXgudHJhbnNwb3NlNHg0SW5QbGFjZSk6CisgICAgICAgIChNYXRyaXgudHJhbnNw
b3NlM3gzKToKKyAgICAgICAgKE1hdHJpeC50cmFuc3Bvc2UzeDNJblBsYWNlKToKKyAgICAgICAg
KFZlYzMubWFrZSk6CisgICAgICAgIChWZWMzLmNvcHkpOgorICAgICAgICAoVmVjMy5hZGQpOgor
ICAgICAgICAoVmVjMy5zdWIpOgorICAgICAgICAoVmVjMy5uZWdhdGUpOgorICAgICAgICAoVmVj
My5kaXJlY3Rpb24pOgorICAgICAgICAoVmVjMy5ub3JtYWxpemVJblBsYWNlKToKKyAgICAgICAg
KFZlYzMubm9ybWFsaXplKToKKyAgICAgICAgKFZlYzMuc2NhbGUpOgorICAgICAgICAoVmVjMy5k
b3QpOgorICAgICAgICAoVmVjMy5pbm5lcik6CisgICAgICAgIChWZWMzLmNyb3NzKToKKyAgICAg
ICAgKFNoYWRlcik6CisgICAgICAgIChTaGFkZXIucHJvdG90eXBlLmRlc3Ryb3kpOgorICAgICAg
ICAoU2hhZGVyLnByb3RvdHlwZS5jb21waWxlKToKKyAgICAgICAgKFNoYWRlci5wcm90b3R5cGUu
dXNlKToKKyAgICAgICAgKFNoYWRlci5wcm90b3R5cGUudW5pZm9ybTFmdik6CisgICAgICAgIChT
aGFkZXIucHJvdG90eXBlLnVuaWZvcm0yZnYpOgorICAgICAgICAoU2hhZGVyLnByb3RvdHlwZS51
bmlmb3JtM2Z2KToKKyAgICAgICAgKFNoYWRlci5wcm90b3R5cGUudW5pZm9ybTRmdik6CisgICAg
ICAgIChTaGFkZXIucHJvdG90eXBlLnVuaWZvcm0xZik6CisgICAgICAgIChTaGFkZXIucHJvdG90
eXBlLnVuaWZvcm0yZik6CisgICAgICAgIChTaGFkZXIucHJvdG90eXBlLnVuaWZvcm0zZik6Cisg
ICAgICAgIChTaGFkZXIucHJvdG90eXBlLnVuaWZvcm00Zik6CisgICAgICAgIChTaGFkZXIucHJv
dG90eXBlLnVuaWZvcm0xaXYpOgorICAgICAgICAoU2hhZGVyLnByb3RvdHlwZS51bmlmb3JtMml2
KToKKyAgICAgICAgKFNoYWRlci5wcm90b3R5cGUudW5pZm9ybTNpdik6CisgICAgICAgIChTaGFk
ZXIucHJvdG90eXBlLnVuaWZvcm00aXYpOgorICAgICAgICAoU2hhZGVyLnByb3RvdHlwZS51bmlm
b3JtMWkpOgorICAgICAgICAoU2hhZGVyLnByb3RvdHlwZS51bmlmb3JtMmkpOgorICAgICAgICAo
U2hhZGVyLnByb3RvdHlwZS51bmlmb3JtM2kpOgorICAgICAgICAoU2hhZGVyLnByb3RvdHlwZS51
bmlmb3JtNGkpOgorICAgICAgICAoU2hhZGVyLnByb3RvdHlwZS51bmlmb3JtTWF0cml4NGZ2KToK
KyAgICAgICAgKFNoYWRlci5wcm90b3R5cGUudW5pZm9ybU1hdHJpeDNmdik6CisgICAgICAgIChT
aGFkZXIucHJvdG90eXBlLnVuaWZvcm1NYXRyaXgyZnYpOgorICAgICAgICAoU2hhZGVyLnByb3Rv
dHlwZS5hdHRyaWIpOgorICAgICAgICAoU2hhZGVyLnByb3RvdHlwZS51bmlmb3JtKToKKyAgICAg
ICAgKEZpbHRlcik6CisgICAgICAgIChGaWx0ZXIucHJvdG90eXBlLmFwcGx5KToKKyAgICAgICAg
KFZCTyk6CisgICAgICAgIChWQk8ucHJvdG90eXBlLnNldERhdGEpOgorICAgICAgICAoVkJPLnBy
b3RvdHlwZS5kZXN0cm95KToKKyAgICAgICAgKFZCTy5wcm90b3R5cGUuaW5pdCk6CisgICAgICAg
IChWQk8ucHJvdG90eXBlLnVzZSk6CisgICAgICAgIChWQk8ucHJvdG90eXBlLmRyYXcpOgorICAg
ICAgICAoRkJPKToKKyAgICAgICAgKEZCTy5wcm90b3R5cGUuZGVzdHJveSk6CisgICAgICAgIChG
Qk8ucHJvdG90eXBlLmluaXQpOgorICAgICAgICAoRkJPLnByb3RvdHlwZS5nZXRUZW1wQ2FudmFz
KToKKyAgICAgICAgKEZCTy5wcm90b3R5cGUudXNlKToKKyAgICAgICAgKEdMRXJyb3IpOgorICAg
ICAgICAobWFrZUdMRXJyb3JXcmFwcGVyKToKKyAgICAgICAgKHdyYXBHTENvbnRleHQud3JhcC5n
ZXRFcnJvcik6CisgICAgICAgIChnZXRHTENvbnRleHQpOgorICAgICAgICAoYXNzZXJ0U29tZUdM
RXJyb3IpOgorICAgICAgICAoYXNzZXJ0VGhyb3dOb0dMRXJyb3IpOgorICAgICAgICAoUXVhZC5t
YWtlVkJPKToKKyAgICAgICAgKC5nbCk6CisgICAgICAgIChRdWFkLmdldENhY2hlZFZCTyk6Cisg
ICAgICAgIChkZWxldGVTaGFkZXIpOgorICAgICAgICAoQ3ViZS5jcmVhdGUpOgorICAgICAgICAo
Q3ViZS5tYWtlVkJPKToKKyAgICAgICAgKEN1YmUuZ2V0Q2FjaGVkVkJPKToKKyAgICAgICAgKFNw
aGVyZS5jcmVhdGUudmVydCk6CisgICAgICAgIChTcGhlcmUuY3JlYXRlKToKKyAgICAgICAgKGlu
aXRHTF9DT05URVhUX0lEKToKKworMjAxMy0wMi0wNiAgR3JlZ2cgVGF2YXJlcyAgPGdtYW5AY2hy
b21pdW0ub3JnPgorCiAgICAgICAgIEFkZHMgZmFpbGluZyBXZWJHTCBDb25mb3JtYW5jZSBUZXN0
cy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTA3
NQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2NvbmZv
cm1hbmNlL2NvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS9tb3JlL2NvbmZvcm1hbmNlL2NvbnN0YW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODM3NDRiNmU5MmQwNWIwOTgwNzJjMWQwYjgwNzQzZjZjYWM4YzliZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvY29uc3Rh
bnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2NvbmZvcm1hbmNlL2NvbnN0YW50cy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvY29uc3RhbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2NvbnN0
YW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYWNiNjQyYjA4YTI5YWJiYjcwNzMxMTRjMDU4ZTE5MDI0
YjdhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9t
b3JlL2NvbmZvcm1hbmNlL2NvbnN0YW50cy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBO
T1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNv
bnN0YW50cy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9j
b25zdGFudHMuaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9jb25mb3JtYW5jZS9jb25zdGFudHMuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvY29uc3Rh
bnRzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
bW9yZS9jb25mb3JtYW5jZS9nZXRDb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvZ2V0Q29udGV4dC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODg3MzU0ZDlkODMzNDE3MTFmZDcxMzdjOGNlMTk4NWRkMjBhOTBmMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvY29uZm9y
bWFuY2UvZ2V0Q29udGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9nZXRDb250ZXh0Lmh0bWwKK1BBU1MKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5j
ZS9nZXRDb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Nv
bmZvcm1hbmNlL2dldENvbnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzU3M2ZmZGU3NDAyY2Q3Yjdi
ZDRiY2YyYzlhMzE3N2FjYmViNzU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9nZXRDb250ZXh0Lmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2Vi
Z2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgZ2V0Q29udGV4dC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9jb25mb3JtYW5jZS9nZXRDb250ZXh0Lmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvZ2V0Q29udGV4dC5odG1s
PC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1l
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9jb25mb3JtYW5jZS9nZXRDb250ZXh0Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48
L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9tZXRob2RzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvbWV0aG9k
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ0MGFiZjU0ZTZkMGQ0YTA4YTA1ZjAyZmU1ZjU2
ZTA0OGEyMjdlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL21vcmUvY29uZm9ybWFuY2UvbWV0aG9kcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9tZXRob2RzLmh0bWwK
K1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9j
b25mb3JtYW5jZS9tZXRob2RzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9t
b3JlL2NvbmZvcm1hbmNlL21ldGhvZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjg0ZmRlYjM3M2I3ZGIz
ZDY2MDJmM2YyMmIwOTRmYzVlNGYxMWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9tZXRob2RzLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2Vi
Z2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgbWV0aG9kcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEg
aHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9jb25mb3JtYW5jZS9tZXRob2RzLmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvbWV0aG9kcy5odG1sPC9hPgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3Jt
YW5jZS9tZXRob2RzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS93ZWJHTEFycmF5cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL3dlYkdMQXJyYXlzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzUyMmJmODkyYzliODRjOTQ2NzE4MzA4ZDFiZWFjZmQ0
NjIzZDVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
bW9yZS9jb25mb3JtYW5jZS93ZWJHTEFycmF5cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS93ZWJHTEFycmF5cy5o
dG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21v
cmUvY29uZm9ybWFuY2Uvd2ViR0xBcnJheXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZv
cm1hbmNlL21vcmUvY29uZm9ybWFuY2Uvd2ViR0xBcnJheXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWU3
MDg0ZmFmYTNiOWUyZmYxMzBmMzMxNjI1ZDFhMTVlNTE3YTBjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS93ZWJHTEFycmF5
cy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVk
IGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHdlYkdMQXJyYXlzLmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL3dlYkdMQXJyYXlzLmh0bWwiPi4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFu
Y2Uvd2ViR0xBcnJheXMuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlk
PSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2Uvd2ViR0xBcnJheXMuaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9i
aW5kQnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL2JpbmRCdWZmZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NTg0NWQ4
NmJkNTYzZmE4ZTBjMTQ5M2RmYTA4ZDQzOWFkNDVjMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9iaW5kQnVmZmVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9iaW5kQnVmZmVyLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlci5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg1ZjA1ZWUyNTRiMTEyMTI4OTY3NjUwMTA4NmVlZDE2YzM2MWI5M2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9iaW5kQnVmZmVyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYmluZEJ1ZmZlci5odG1s
PC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlci5odG1s
Ij4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9iaW5kQnVmZmVyLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRp
diBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9iaW5kQnVmZmVyLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
YmluZEJ1ZmZlckJhZEFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFkOGQyNGJjNzhlMTdjZmRlZDc1YTQ2OWEwYzExZTU1MjJlZDk1ZmQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9i
aW5kQnVmZmVyQmFkQXJncy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MuaHRtbAorUEFT
UworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9iaW5kQnVmZmVyQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjYw
NzA4Mzc1MzNmZGJiNTUyNzE3YjJhODk2MDU2YjFmNjkyMDU3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlckJh
ZEFyZ3MuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBiaW5kQnVmZmVyQmFkQXJncy5odG1s
PC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFy
Z3MuaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2JpbmRCdWZm
ZXJCYWRBcmdzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2JpbmRG
cmFtZWJ1ZmZlckxlYXZlTm9uWmVyby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRhNjM2NWZj
MTI5N2RiNzlhYmRkYzA0MDBhNmZhY2I3ODZlYTYzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2JpbmRGcmFtZWJ1ZmZlckxl
YXZlTm9uWmVyby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWwK
K1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9iaW5kRnJhbWVidWZmZXJMZWF2ZU5vblpl
cm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mYzljZTdiZTk3MGJkZWM2Nzk2YzMxZDVlNDI5MzZlY2JlNzlk
MTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wt
dGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9iaW5kRnJhbWVidWZmZXJMZWF2ZU5vblplcm8u
aHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWw8L2E+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9i
aW5kRnJhbWVidWZmZXJMZWF2ZU5vblplcm8uaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRhLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZl
ckRhdGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNGYxOGYwNDIzNDBkNjA1MWQ5MTZiODZl
ODE3ZjNkODU3NmM1MzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRh
Lmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvYnVmZmVyRGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyRGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3ODE5N2I3
MTIzYjk4NmYyMDlhZGUxNjk2YzYyZjJkMDY3YjQ4NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRhLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2Vu
ZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZv
cm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVmZmVyRGF0YS5odG1sPC90aXRsZT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyRGF0YS5odG1sIj4uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRh
Lmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRhLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAw
Ij48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9i
dWZmZXJTdWJEYXRhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTQ4NTMxYzZmNTYyOTllNTM0
YmQxZTRkZjllM2MwZGJmYjhjMDdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
YnVmZmVyU3ViRGF0YS5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGEuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGEuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MGNkYWZhZDk1ZmU0NWMyMGZiZmI2ODE3ZTBiYWFjZjNhODMzZGIyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvYnVmZmVyU3ViRGF0YS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1ZmZlclN1YkRh
dGEuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1
YkRhdGEuaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YS5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3Vi
RGF0YS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRBcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRB
cmdzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjhhYzRhYmMyZTBlYmQ3NzhmMmY0MmE2NWE2
ZjIyZmVkN2I3ZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YUJhZEFyZ3MtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1
ZmZlclN1YkRhdGFCYWRBcmdzLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YUJhZEFyZ3MuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1
YkRhdGFCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRlN2E4OTkyYTQ1ZTIzYzIzMjg1MDhlYmNl
MDRkNTcwOWRmNWMwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRBcmdzLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2Vi
Z2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgYnVmZmVyU3ViRGF0YUJhZEFyZ3MuaHRtbDwvdGl0bGU+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwv
cD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRBcmdzLmh0bWwiPi4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L2J1ZmZlclN1YkRhdGFCYWRBcmdzLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
PGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJTdWJEYXRhQmFkQXJn
cy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL2lzVGVzdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvaXNUZXN0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTlkYzE5M2Y3ZTIwYzUyYjE3MDk4MTQ1OTJiNjg3MmM4N2QxYTI5MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL2lzVGVzdHMuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9pc1Rlc3RzLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9pc1Rlc3RzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWZkM2VmOGQwYTYzZjQ5MWRmODJkMGI3MTdlZjJmMjFmMjA4OWU2MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lz
VGVzdHMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBpc1Rlc3RzLmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9pc1Rlc3RzLmh0bWwiPi4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVz
dHMuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgor
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHMuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9pc1Rlc3RzQmFkQXJncy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9p
c1Rlc3RzQmFkQXJncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkzOWU5OTY4ZjA2MDgwZTg1
MTI5ZWRiNzAzMDNhMjQ5YWU4YjNjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHNCYWRBcmdzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9pc1Rlc3RzQmFkQXJncy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHNCYWRBcmdzLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9pc1Rlc3RzQmFkQXJncy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3ZTY2NDIyNGFkODUxODgwODMwYThkYWM2YWE4YTk0NTdlNWQzMjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9pc1Rlc3RzQmFkQXJncy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBm
aWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1Qg
RURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGlzVGVz
dHNCYWRBcmdzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9p
c1Rlc3RzQmFkQXJncy5odG1sIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9pc1Rlc3RzQmFkQXJncy5odG1sPC9hPgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
aXNUZXN0c0JhZEFyZ3MuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM5ZGI2ZGQ1Njc0NzBlNGNhZmMwNmMzMzVhZTdlZjQ4OWZjODc5
YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy9yZWFkUGl4ZWxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzLmh0bWwKK1BBU1MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvcmVhZFBpeGVscy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvcmVhZFBpeGVscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMTFkMTAwNmYzOGE2MjlkMWEw
NWUwZDQ0ZjA1MDI3ODQ1NzlhNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wt
dGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgcmVhZFBpeGVscy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEg
aHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVscy5odG1sIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzLmh0bWw8L2E+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9yZWFkUGl4ZWxzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyRC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJELWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYjlkZGMxMWM0MGQ2OTY1NzE2M2Y1Mzc2MTk4NTU1YmQ3OGVm
MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4SW1hZ2UyRC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sCitQQVNT
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleEltYWdlMkQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleEltYWdlMkQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWQ5NDg2NDBlNDAwZmM3YjRl
YzYyYjRjZmIxODFiNTJkYzIyY2M5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sCkBAIC0wLDAgKzEs
MTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmds
LXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0
IFdyYXBwZXIgZm9yIHRleEltYWdlMkQuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxh
IGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkQuaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sPC9hPgor
PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyRC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MQmFkQXJncy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTEJhZEFyZ3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YTYxYjBlZmJhNmEx
MTY0YmVkN2ExNWNkM2NlZDJkODNmNzQ1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTEJhZEFyZ3Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MQmFkQXJncy5odG1sCitQQVNTCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdl
MkRIVE1MQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNhMDA1ZWY1
YTUzOWQxNGM4YmVkMzY5NDkxZmM2MjM1MTk2NDA0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MQmFk
QXJncy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5X
ZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleEltYWdlMkRIVE1MQmFkQXJncy5o
dG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhU
TUxCYWRBcmdzLmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MQmFkQXJncy5odG1sPC9hPgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdGV4SW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48
L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhT
dWJJbWFnZTJELWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTdmNjVkMTYyNjViNjVhNjk3MTAz
OGRkOGI5ZjYyZTMxN2NlZDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyRC5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkQuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YzI3ZjE0ODgzOGU5YTVhMjRkODM0OTQ0MTBmNDE0NjQ3NjUwMGU0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4U3ViSW1hZ2UyRC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1
dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4K
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleFN1YkltYWdlMkQu
aHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkQuaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2Uy
RC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MQmFkQXJncy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRN
TEJhZEFyZ3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OTMzMGE4NjVmZjE0YTQzNmEyYWFk
Y2U5ZmExMTU2YmFmMTViOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTEJhZEFyZ3MtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleFN1YkltYWdlMkRIVE1MQmFkQXJncy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk4OWRj
NzI1MjQ3ZmI2N2E5Y2FiMDczNjlmMTUyZDg3MjZmODAxYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRI
VE1MQmFkQXJncy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleFN1YkltYWdlMkRIVE1M
QmFkQXJncy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MQmFkQXJn
cy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8
aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5p
Zm9ybU1hdHJpeC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy91bmlmb3JtTWF0cml4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTg4
M2M0NWM5N2M4MThlMjVkYWNlYmEzMWFjODkxMDgyNmYwNWM5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJp
eC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeC5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXgu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZv
cm1NYXRyaXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzVhMDkzOTk2N2RkYWQ0ZjQ0YjNhZjI3ZTg1NGJj
ZGNhZDk4MmVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5
LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIHVuaWZvcm1NYXRyaXguaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9
Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3VuaWZvcm1NYXRyaXguaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeC5odG1sPC9hPgor
PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdW5pZm9ybU1hdHJpeC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJh
bWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Vu
aWZvcm1NYXRyaXhCYWRBcmdzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDQ4ODBmOGNhZjQ4
MTNhMTQxNWY0MGJhMWRkOGEyMWI5OTlmMjBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeEJhZEFyZ3Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1h
dHJpeEJhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM2NDAzMDM2ZDFj
M2U4MmRjYTA3MTFkNjkxMjhlMWQ4MzhmYzJjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdz
Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
YnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdW5pZm9ybU1hdHJpeEJhZEFyZ3MuaHRtbDwv
dGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRB
cmdzLmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLmh0bWw8L2E+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlm
b3JtTWF0cml4QmFkQXJncy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MDYzOGZmZTA0NDM1ZTVhYmY4NmI4MzZiY2UyM2ZhNGJmZjlkYzM1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdW5pZm9ybWYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mLmh0bWwKK1BBU1MKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5p
Zm9ybWYuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3VuaWZvcm1mLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc5MTIzYTY5MTNlYWY1NmZhYzM5MmRjODRlYjVk
MjM1MWQ2YTc2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERP
IE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Ig
dW5pZm9ybWYuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Vu
aWZvcm1mLmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtZi5odG1s
IiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZDcyNTMzNTk2NmE4Y2YwYjU1OTg4NTUyMGZmYTJhNGYwOGYzOTM4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdW5pZm9ybWZBcnJheUxlbjEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLmh0
bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdW5pZm9ybWZBcnJheUxlbjEuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDQzMWM2YmUwNDBkZjU1MzBkMjY2Y2Q2MDhjMTFjNjNmZjdkMDc1ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZv
cm1mQXJyYXlMZW4xLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdW5pZm9ybWZBcnJheUxl
bjEuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1m
QXJyYXlMZW4xLmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLmh0bWw8L2E+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91
bmlmb3JtZkFycmF5TGVuMS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQmFkQXJncy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtZkJh
ZEFyZ3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhOTcwODEyNGE4YjQyNDZmMDEyMzE5OTNk
NzI3ZDY5YjkyNDcwY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtZkJhZEFyZ3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZv
cm1mQmFkQXJncy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQmFkQXJncy5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWZCYWRBcmdzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzZhNDgyODgyNjJkOTU1YjEyYWVkZjI4Nzg4Y2IyMzVlZmM2YmFjNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3VuaWZvcm1mQmFkQXJncy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJ
VCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHVuaWZvcm1m
QmFkQXJncy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5p
Zm9ybWZCYWRBcmdzLmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQmFkQXJncy5odG1sPC9hPgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dW5pZm9ybWZCYWRBcmdzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFlY2FhZWY5MDI4MjFhMWYyMDIwNGVkMmU0NzY1ODQwZjQxYmM1YWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy91bmlmb3JtaS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWkuaHRtbAorUEFTUworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlm
b3JtaS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dW5pZm9ybWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODI0N2FhZjI2MmYyZGNjZjg0Yzg0YzA1ZmQyNzMy
ZWIwNWZhYmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWkuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8g
Tk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB1
bmlmb3JtaS5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5p
Zm9ybWkuaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWkuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1pLmh0bWwi
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdW5pZm9ybWlCYWRBcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1pQmFkQXJncy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTllNTVkNjI5N2YwMTg2NTE5NmIzMGYxYTJkMjFmYmNmYzgwZTIxNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3VuaWZvcm1pQmFkQXJncy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWlCYWRBcmdzLmh0bWwKK1BBU1MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdW5pZm9ybWlCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy91bmlmb3JtaUJhZEFyZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2ZkMTQ5ZDE3
MTExN2E0YjRhNDAxZWRkZGYyMjRjODg0OWE1ZGYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWlCYWRBcmdzLmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkg
Z2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdW5pZm9ybWlCYWRBcmdzLmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtaUJhZEFyZ3MuaHRtbCI+Li4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdW5pZm9ybWlCYWRBcmdzLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRp
diBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtaUJhZEFyZ3MuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy92ZXJ0ZXhBdHRyaWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43OTEyYzJmYzBmY2MwZWUwNGFlMzAxNjY1Y2QxYTJmM2RlMzY5YWVhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4
QXR0cmliLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWIuaHRtbAorUEFTUworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRy
aWIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Zl
cnRleEF0dHJpYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzMjAxYTMxYTg4MjdhZjk0ZjhlZDAzMTkyYjQ1
YTQ2NmI5MWQ4NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8
IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5w
eS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVy
IGZvciB2ZXJ0ZXhBdHRyaWIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9
Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3ZlcnRleEF0dHJpYi5odG1sIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWIuaHRtbDwvYT4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3ZlcnRleEF0dHJpYi5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYkJhZEFyZ3MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4
QXR0cmliQmFkQXJncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRkZjUzYzMxYTA5ZGM3ZGMz
YTQ0MjczYmU0MGJhZmI5OWE1YmEyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYkJhZEFyZ3MtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3ZlcnRleEF0dHJpYkJhZEFyZ3MuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJCYWRB
cmdzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92
ZXJ0ZXhBdHRyaWJCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc1OTgxY2M1NTRlMTI0M2NhNTRh
MWQ2MWM4N2VlZTNlMmEwZDJiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYkJhZEFyZ3MuaHRtbApAQCAt
MCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0
ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciB2ZXJ0ZXhBdHRyaWJCYWRBcmdzLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJCYWRBcmdzLmh0bWwiPi4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3ZlcnRleEF0dHJpYkJhZEFyZ3MuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYkJhZEFy
Z3MuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNGZlNzc1OTBhNTFiMWRhMjNiYjA0NGQ2YTk4MmRj
Y2ViNWY5YjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhB
dHRyaWJQb2ludGVyLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlci5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9p
bnRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwM2FlNjU5YjFhNzM3MjM0YmZiNGExMGY5MDkxZGZkYjRk
ZjM4ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMu
cHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgdmVydGV4QXR0cmliUG9pbnRlci5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlci5odG1sIj4uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRy
aWJQb2ludGVyLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3Mt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZjc4NjJkOWJlMTc0MWZmYmI1NjYzYmRkYzJkYmNk
ZGEwZmYyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyQmFkQXJncy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2lu
dGVyQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGQ0YmFk
N2EyN2JkMDc3NDBkYzZjMjU5MGE0NWJkOTY2YzVhM2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9p
bnRlckJhZEFyZ3MuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB2ZXJ0ZXhBdHRyaWJQb2lu
dGVyQmFkQXJncy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MuaHRtbCI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRl
ckJhZEFyZ3MuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJh
bWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXJCYWRBcmdzLmh0bWwi
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9nbHNs
L2FycmF5T3V0T2ZCb3VuZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9nbHNsL2FycmF5T3V0T2ZCb3VuZHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY1ZDE4ZWRhYTI0ZTI1ZmM4OGVhM2FiNzEwMTRjOTRiNzYzYmI4OWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2dsc2wvYXJyYXlPdXRPZkJv
dW5kcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9nbHNsL2FycmF5T3V0T2ZCb3VuZHMuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2dsc2wvYXJyYXlPdXRPZkJvdW5kcy5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9yZS9nbHNsL2FycmF5T3V0T2ZC
b3VuZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjNjNTBiYjIyODg0NGFhMGIyYzZlYzhmZTllN2RmM2Qy
ODdhMGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
bW9yZS9nbHNsL2FycmF5T3V0T2ZCb3VuZHMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8g
Tk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBh
cnJheU91dE9mQm91bmRzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2dsc2wv
YXJyYXlPdXRPZkJvdW5kcy5odG1sIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2dsc2wvYXJyYXlPdXRPZkJvdW5kcy5odG1sPC9hPgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9nbHNsL2FycmF5
T3V0T2ZCb3VuZHMuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS9tb3JlL2dsc2wvdW5pZm9ybU91dE9mQm91bmRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL21vcmUvZ2xzbC91bmlmb3JtT3V0T2ZCb3VuZHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlODExMGEwNDZjYjk2YjA2NzY5MDEyN2QyZTlkMTM1MDRj
ZTVmYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9t
b3JlL2dsc2wvdW5pZm9ybU91dE9mQm91bmRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2dsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0
bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvbW9y
ZS9nbHNsL3VuaWZvcm1PdXRPZkJvdW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvbW9yZS9nbHNsL3VuaWZvcm1PdXRPZkJvdW5kcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5ZGZi
MWMwZDIxYjlhYzEzN2JhMGYzZmViMDFlMTk3MDFjMWI3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9tb3JlL2dsc2wvdW5pZm9ybU91dE9mQm91bmRz
Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
YnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdW5pZm9ybU91dE9mQm91bmRzLmh0bWw8L3Rp
dGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2dsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0bWwi
Pi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZ2xz
bC91bmlmb3JtT3V0T2ZCb3VuZHMuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZ2xzbC91bmlmb3JtT3V0T2ZCb3VuZHMuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlLzAwX3Rlc3RfbGlzdC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlLzAwX3Rlc3RfbGlz
dC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWEwOWRhMDM2ZGNiMzA0NDdmMjE3MWIzZDEwMTgzYmQwNjRlMTc3
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvMDBfdGVzdF9saXN0LnR4dApAQCAtMCwwICsxLDU4
IEBACitjb25mb3JtYW5jZS9jb25zdGFudHMuaHRtbAorY29uZm9ybWFuY2UvZ2V0Q29udGV4dC5o
dG1sCitjb25mb3JtYW5jZS9tZXRob2RzLmh0bWwKK2NvbmZvcm1hbmNlL3F1aWNrQ2hlY2tBUEkt
QS5odG1sCitjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLUIxLmh0bWwKK2NvbmZvcm1hbmNlL3F1
aWNrQ2hlY2tBUEktQjIuaHRtbAorY29uZm9ybWFuY2UvcXVpY2tDaGVja0FQSS1CMy5odG1sCitj
b25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLUI0Lmh0bWwKK2NvbmZvcm1hbmNlL3F1aWNrQ2hlY2tB
UEktQy5odG1sCitjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLURfRy5odG1sCitjb25mb3JtYW5j
ZS9xdWlja0NoZWNrQVBJLUdfSS5odG1sCitjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLUxfUy5o
dG1sCitjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLVNfVi5odG1sCitjb25mb3JtYW5jZS93ZWJH
TEFycmF5cy5odG1sCitmdW5jdGlvbnMvYmluZEJ1ZmZlci5odG1sCitmdW5jdGlvbnMvYmluZEJ1
ZmZlckJhZEFyZ3MuaHRtbAorZnVuY3Rpb25zL2JpbmRGcmFtZWJ1ZmZlckxlYXZlTm9uWmVyby5o
dG1sCitmdW5jdGlvbnMvYnVmZmVyRGF0YS5odG1sCitmdW5jdGlvbnMvYnVmZmVyRGF0YUJhZEFy
Z3MuaHRtbAorZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGEuaHRtbAorZnVuY3Rpb25zL2J1ZmZlclN1
YkRhdGFCYWRBcmdzLmh0bWwKK2Z1bmN0aW9ucy9jb3B5VGV4SW1hZ2UyRC5odG1sCitmdW5jdGlv
bnMvY29weVRleEltYWdlMkRCYWRBcmdzLmh0bWwKK2Z1bmN0aW9ucy9jb3B5VGV4U3ViSW1hZ2Uy
RC5odG1sCitmdW5jdGlvbnMvY29weVRleFN1YkltYWdlMkRCYWRBcmdzLmh0bWwKK2Z1bmN0aW9u
cy9kZWxldGVCdWZmZXJCYWRBcmdzLmh0bWwKK2Z1bmN0aW9ucy9kcmF3QXJyYXlzLmh0bWwKK2Z1
bmN0aW9ucy9kcmF3QXJyYXlzT3V0T2ZCb3VuZHMuaHRtbAorZnVuY3Rpb25zL2RyYXdFbGVtZW50
cy5odG1sCitmdW5jdGlvbnMvZHJhd0VsZW1lbnRzQmFkQXJncy5odG1sCitmdW5jdGlvbnMvaXNU
ZXN0cy5odG1sCistLW1pbi12ZXJzaW9uIDEuMC4yIGZ1bmN0aW9ucy9pc1Rlc3RzQmFkQXJncy5o
dG1sCitmdW5jdGlvbnMvcmVhZFBpeGVscy5odG1sCitmdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFy
Z3MuaHRtbAorZnVuY3Rpb25zL3RleEltYWdlMkQuaHRtbAorZnVuY3Rpb25zL3RleEltYWdlMkRC
YWRBcmdzLmh0bWwKK2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCitmdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwKK2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJELmh0bWwKK2Z1
bmN0aW9ucy90ZXhTdWJJbWFnZTJEQmFkQXJncy5odG1sCitmdW5jdGlvbnMvdGV4U3ViSW1hZ2Uy
REhUTUwuaHRtbAorZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MQmFkQXJncy5odG1sCitmdW5j
dGlvbnMvdW5pZm9ybWYuaHRtbAorZnVuY3Rpb25zL3VuaWZvcm1mQmFkQXJncy5odG1sCitmdW5j
dGlvbnMvdW5pZm9ybWZBcnJheUxlbjEuaHRtbAorZnVuY3Rpb25zL3VuaWZvcm1pLmh0bWwKK2Z1
bmN0aW9ucy91bmlmb3JtaUJhZEFyZ3MuaHRtbAorZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXguaHRt
bAorZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLmh0bWwKK2Z1bmN0aW9ucy92ZXJ0ZXhB
dHRyaWIuaHRtbAorZnVuY3Rpb25zL3ZlcnRleEF0dHJpYkJhZEFyZ3MuaHRtbAorZnVuY3Rpb25z
L3ZlcnRleEF0dHJpYlBvaW50ZXIuaHRtbAorZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXJC
YWRBcmdzLmh0bWwKK2dsc2wvYXJyYXlPdXRPZkJvdW5kcy5odG1sCisjZ2xzbC9sb25nTG9vcHMu
aHRtbCAvLyBObyBpbnRlcmFjdGl2ZSB0ZXN0cy4KK2dsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0
bWwKKyNnbHNsL3VudXNlZEF0dHJpYnNVbmlmb3Jtcy5odG1sIC8vIE5vIGludGVyYWN0aXZlIHRl
c3RzLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvUkVBRE1FLm1kCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxOTM3MTQ3ZjY5YWEwMjlhNmQ2MmNjOTk5MzVmMzY5ODI4ZDhjYTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL1JFQURNRS5tZApAQCAtMCwwICsxLDUzIEBACitUZXN0cyBmb3IgdGhl
IFdlYkdMIGNhbnZhcyBjb250ZXh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKK1RoZXNlIHRlc3RzIGFyZSBpbnRlbmRlZCB0byBzZXJ2ZSB0aGUgZm9sbG93aW5nIHB1cnBv
c2VzOgorCisgICogQXNzZXJ0IHNwZWMgY29uZm9ybWFuY2UKKyAgKiBDaGVjayB0aGUgc2FmZXR5
IG9mIHRoZSBHTCBiaW5kaW5nIChib3VuZHMgY2hlY2tpbmcsIHNhbWUgb3JpZ2luIHBvbGljeSkK
KyAgKiBQcm92aWRlIHBlcmZvcm1hbmNlIG51bWJlcnMgZm9yIGRldmVsb3BlcnMKKworCitSdW5u
aW5nIHRoZSB0ZXN0cworLS0tLS0tLS0tLS0tLS0tLS0KKworICAxLiA8YSBocmVmPSJodHRwOi8v
bGVhcm5pbmd3ZWJnbC5jb20vYmxvZy8/cD0xMSI+SW5zdGFsbCBhIGJyb3dzZXIgd2l0aCBXZWJH
TCBzdXBwb3J0PC9hPgorICAyLiBSdW4gPGNvZGU+cnVieSBnZW5fdGVzdHMucmI8L2NvZGU+IGlm
IHlvdSBoYXZlIG1vZGlmaWVkIHRoZSB0ZXN0cy4KKyAgMy4gUnVuIDxjb2RlPnJ1YnkgdGVzdF9z
ZXJ2ZXIucmI8L2NvZGU+IGlmIHlvdSB3YW50IHRvIGdldCB0ZXN0IHJ1biBvdXRwdXQgdG8gdGVz
dF9zZXJ2ZXIncyBzdGRvdXQgKGVzcGVjaWFsbHkgdXNlZnVsIGZvciBmaW5kaW5nIG91dCB3aGlj
aCB0ZXN0IGNyYXNoZWQgeW91ciBicm93c2VyLikKKyAgNC4gT3BlbiBhbGxfdGVzdHMuaHRtbCBp
biB5b3VyIGJyb3dzZXIuCisKKworV2FudCB0byBjb250cmlidXRlPworLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisgIDEuIEZvcmsgdGhpcyByZXBvCisgIDIuIFJ1biA8Y29kZT5nZW5fdGVzdHMucmI8
L2NvZGU+CisgIDMuIExvb2sgaW50byB0ZW1wbGF0ZXMvIHRvIHNlZSB3aGljaCBmdW5jdGlvbnMg
bGFjayB0ZXN0cyAoYWxzbyBzZWUgPGEgaHJlZj0iLi4vcmF3L21hc3Rlci9tZXRob2RzLnR4dCI+
bWV0aG9kcy50eHQ8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vbXhyLm1vemlsbGEub3JnL21vemls
bGEtY2VudHJhbC9zb3VyY2UvZG9tL2ludGVyZmFjZXMvY2FudmFzL25zSUNhbnZhc1JlbmRlcmlu
Z0NvbnRleHRXZWJHTC5pZGwiPm5zSUNhbnZhc1JlbmRlcmluZ0NvbnRleHRXZWJHTC5pZGw8L2E+
KToKKyAgICAxLiBjb3B5IG1ldGhvZE5hbWUuaHRtbCB0byBmdW5jdGlvbnMvbWV0aG9kTmFtZS5o
dG1sIGFuZCB3cml0ZSB0ZXN0cyB0aGF0IHRlc3QgdGhlIHJlc3VsdHMgb2YgdmFsaWQgaW5wdXRz
LgorICAgIDIuIGNvcHkgbWV0aG9kTmFtZUJhZEFyZ3MuaHRtbCB0byBmdW5jdGlvbnMvbWV0aG9k
TmFtZUJhZEFyZ3MuaHRtbCBhbmQgd3JpdGUgdGVzdHMgdG8gYXNzZXJ0IHRoYXQgaW52YWxpZCBp
bnB1dHMgdGhyb3cgZXhjZXB0aW9ucy4KKyAgICAzLiBJZiB5b3VyIHRlc3QgY2F1c2VzIGEgc2Vn
ZmF1bHQsIGFkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmlwdCB0YWc6IDxj
b2RlPlRlc3RzLmF1dG9ydW4gPSBmYWxzZTsgVGVzdHMubWVzc2FnZSA9ICJDYXV0aW9uOiB0aGlz
IG1heSBjcmFzaCB5b3VyIGJyb3dzZXIiOzwvY29kZT4KKyAgNC4gRm9yIGVhY2ggcGVyZm9ybWFu
Y2UgdGVzdDoKKyAgICAxLiBXcml0ZSBhIHBlcmZvcm1hbmNlL215VGVzdE5hbWUuaHRtbCBhbmQg
c2V0IDxjb2RlPlRlc3RzLmF1dG9ydW4gPSBmYWxzZTs8L2NvZGU+CisgIDUuIElmIHlvdSBoYXZl
IGEgdGVzdCB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIHJ1biBvdmVyIHRoZSB3aG9sZSBBUEkgb3Ig
d2FudCB0byBnZW5lcmF0ZSB0ZXN0cyBwcm9ncmFtbWF0aWNhbGx5LCBhZGQgdGhlbSB0byBnZW5f
dGVzdHMucmIgb3Igd3JpdGUgeW91ciBvd24gc2NyaXB0LgorICA2LiBDcmVhdGUgYSBjb21taXQg
Zm9yIGVhY2ggZmlsZS4gKEUuZy4gPGNvZGU+Zm9yIGYgaW4gJChnaXQgc3RhdHVzIHwgZ3JlcCAt
ZSAiXiNcXHMqZnVuY3Rpb25zL1xcUyokIiB8IHNlZCAicy9eI1xzKi8vIik7IGRvIGdpdCBhZGQg
JGY7IGdpdCBjb21taXQgLW0gJGY7IGRvbmU8L2NvZGU+KQorICA3LiBTZW5kIG1lIGEgcHVsbCBy
ZXF1ZXN0LgorICA4LiBDb25ncmF0dWxhdGlvbnMsIHlvdSdyZSBub3cgYSBjb250cmlidXRvciEK
KworCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBXZWJHTDoKKworICAqIDxhIGhyZWY9Imh0dHA6
Ly9wbGFuZXQtd2ViZ2wub3JnIj5QbGFuZXQgV2ViR0w8L2E+CisgICogPGEgaHJlZj0iaHR0cDov
L2xlYXJuaW5nd2ViZ2wuY29tIj5MZWFybmluZyBXZWJHTDwvYT4KKyAgKiA8YSBocmVmPSJodHRw
Oi8vd3d3Lmtocm9ub3Mub3JnL21lc3NhZ2VfYm9hcmRzL3ZpZXdmb3J1bS5waHA/Zj0zNCI+V2Vi
R0wgb24gS2hyb25vcyBNZXNzYWdlIEJvYXJkczwvYT4KKworRGV2ZWxvcGVyIGxpbmtzOgorCisg
ICogPGEgaHJlZj0iaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9idWdsaXN0LmNnaT9xdWlj
a3NlYXJjaD13ZWJnbCI+V2ViR0wgb24gTW96aWxsYSBCdWd6aWxsYTwvYT4KKyAgKiA8YSBocmVm
PSJodHRwczovL2J1Z3ppbGxhLndlYmtpdC5vcmcvYnVnbGlzdC5jZ2k/cXVpY2tzZWFyY2g9d2Vi
Z2wiPldlYkdMIG9uIFdlYktpdCBCdWd6aWxsYTwvYT4KKyAgKiA8YSBocmVmPSJodHRwOi8vY29k
ZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2xpc3Q/cT1sYWJlbDozRC1XZWJHTCI+V2Vi
R0wgb24gQ2hyb21pdW0gQnVnemlsbGE8L2E+CisKK1doYXQncyB0aGUgc3R1ZmYgaW4gYXBpZ2Vu
PworCisgIFRoZXJlIGFyZSBzb21lIFB5dGhvbiBzY3JpcHRzIGluIHRoZSBhcGlnZW4vIGRpcmVj
dG9yeSB0aGF0IGdlbmVyYXRlIEMrKyBiYXNlZCBvbiB0aGUgQVBJIGRlZmluaXRpb24gZmlsZXMg
KGdsMi5oLCBhcGlfbW9kaWZpY2F0aW9ucy50eHQsIHZhbGlkX2FyZ3MudHh0LikgVGhlIGdlbmVy
YXRlZCBjb2RlIGlzIE1vemlsbGEgWFBDT00gZnVuY3Rpb25zIHRoYXQgY2hlY2sgdGhlaXIgYXJn
cyBhZ2FpbnN0IHRoZSB2YWxpZCBHTEVTIDIuMCBjb25zdGFudHMgKGFzIHRoZXkgd2VyZSB3cml0
dGVuIG9uIHRoZSBtYW4gcGFnZXMuKSBUaGVyZSdzIGFsc28gc29tZSB3YWNraWVyIHN0dWZmIGZv
ciBjaGVja2luZyBjb3B5VGV4SW1hZ2UyRCBhbmQgY29weVRleFN1YkltYWdlMkQgaW1hZ2UgZGlt
ZW5zaW9ucyBhZ2FpbnN0IHZpZXdwb3J0IGRpbWVuc2lvbnMuCisKKyAgSWYgeW91IGNhbiB1c2Ug
aXQgdG8gZ2VuZXJhdGUgY29kZSBmb3IgeW91ciBXZWJHTCBpbXBsZW1lbnRhdGlvbiwgaXQgbWln
aHQgc2F2ZSB5b3UgMTUwMCBsaW5lcyBvZiB0eXBpbmcgYW5kIHRlc3RpbmcuIFRoZSBsYXN0IHRp
bWUgSSB1c2VkIGl0IHdhcyBzdW1tZXIgMjAwOSB0byBnZW5lcmF0ZSBhIHBhdGNoIGZvciBDYW52
YXMgM0QsIHNvIGl0J3MgbGlrZWx5IHNvbWV3aGF0IG91dCBvZiBkYXRlLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9hbGxfdGVzdHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvYWxsX3Rlc3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkw
ZTI2M2I4Zjc1YjYzMWUyOGM5YjNhNDg1NmVjYzQ5MGI3MGEzNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvYWxsX3Rlc3RzLmh0bWwKQEAgLTAsMCArMSwzOTkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENv
cHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJp
YWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9u
IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMs
IGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
KyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9S
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK
KyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBN
QVRFUklBTFMuCisqLworCistLT4KKyAgPHRpdGxlPk9wZW5HTCBFUyAyLjAgJmx0O2NhbnZhcyZn
dDsgY29udGV4dCB0ZXN0czwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAg
aDIgeyBkaXNwbGF5OiBpbmxpbmU7IGZvbnQtc2l6ZTogMWVtOyBtYXJnaW4tYm90dG9tOiAwLjJl
bTsgfQorICAgIGlmcmFtZSB7IGRpc3BsYXk6IGlubGluZTsgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7IG92ZXJmbG93OiBoaWRkZW47fQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9hZFRlc3QoaWQsIHVybCkgeworICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnNyYyA9IHVybDsKKyAgICB9CisgICAgZnVuY3Rpb24g
c2VxTG9hZGVyKCkgeworICAgICAgdmFyIGlmcmFtZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnaWZyYW1lJyk7CisgICAgICBmb3IgKHZhciBpPTA7IGk8aWZyYW1lcy5sZW5ndGg7
IGkrKykgeworICAgICAgICBpZnJhbWVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZnVu
Y3Rpb24oaikgeworICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZh
ciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoKGorMSkrJ19saW5rJyk7CisgICAgICAgICAg
ICBpZiAoZSkgbG9hZFRlc3QoaisxLCBlLmhyZWYpOworICAgICAgICAgIH0KKyAgICAgICAgfSko
aSksIGZhbHNlKTsKKyAgICAgIH0KKyAgICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJzBfbGluaycpOworICAgICAgaWYgKGUpIGxvYWRUZXN0KDAsIGUuaHJlZik7CisgICAgfQor
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2VxTG9hZGVyKCkiPgorCisgICAg
PGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJjb25mb3JtYW5jZS9iYWRBcmdzQXJpdHlMZXNzVGhh
bkFyZ2MuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgaHJlZj0iY29uZm9ybWFuY2UvYmFkQXJnc0FyaXR5TGVzc1RoYW5BcmdjLmh0bWwiPmNvbmZv
cm1hbmNlL2JhZEFyZ3NBcml0eUxlc3NUaGFuQXJnYy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+
CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImNvbmZvcm1hbmNlL2NvbnN0
YW50cy5odG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48
YSBocmVmPSJjb25mb3JtYW5jZS9jb25zdGFudHMuaHRtbCI+Y29uZm9ybWFuY2UvY29uc3RhbnRz
Lmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZy
YW1lIHNyYz0iY29uZm9ybWFuY2UvZnV6elRoZUFQSS5odG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9
IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBocmVmPSJjb25mb3JtYW5jZS9mdXp6VGhlQVBJ
Lmh0bWwiPmNvbmZvcm1hbmNlL2Z1enpUaGVBUEkuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2Pgor
ICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJjb25mb3JtYW5jZS9nZXRDb250
ZXh0Lmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxh
IGhyZWY9ImNvbmZvcm1hbmNlL2dldENvbnRleHQuaHRtbCI+Y29uZm9ybWFuY2UvZ2V0Q29udGV4
dC5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlm
cmFtZSBzcmM9ImNvbmZvcm1hbmNlL21ldGhvZHMuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0
MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iY29uZm9ybWFuY2UvbWV0aG9kcy5odG1s
Ij5jb25mb3JtYW5jZS9tZXRob2RzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKwor
ICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iY29uZm9ybWFuY2UvcXVpY2tDaGVja0FQSS5o
dG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBocmVm
PSJjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLmh0bWwiPmNvbmZvcm1hbmNlL3F1aWNrQ2hlY2tB
UEkuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxp
ZnJhbWUgc3JjPSJjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJQmFkQXJncy5odG1sIiB3aWR0aD0i
MTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBocmVmPSJjb25mb3JtYW5j
ZS9xdWlja0NoZWNrQVBJQmFkQXJncy5odG1sIj5jb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJQmFk
QXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAg
PGlmcmFtZSBzcmM9ImNvbmZvcm1hbmNlL3dlYkdMQXJyYXlzLmh0bWwiIHdpZHRoPSIxMTAiIGhl
aWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImNvbmZvcm1hbmNlL3dlYkdM
QXJyYXlzLmh0bWwiPmNvbmZvcm1hbmNlL3dlYkdMQXJyYXlzLmh0bWw8L2E+PC9oMj4KKyAgICA8
L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL2Jp
bmRCdWZmZXIuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8
aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2JpbmRCdWZmZXIuaHRtbCI+ZnVuY3Rpb25zL2JpbmRCdWZm
ZXIuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxp
ZnJhbWUgc3JjPSJmdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MuaHRtbCIgd2lkdGg9IjExMCIg
aGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2JpbmRC
dWZmZXJCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9iaW5kQnVmZmVyQmFkQXJncy5odG1sPC9hPjwv
aDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1
bmN0aW9ucy9iaW5kRnJhbWVidWZmZXJMZWF2ZU5vblplcm8uaHRtbCIgd2lkdGg9IjExMCIgaGVp
Z2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2JpbmRGcmFt
ZWJ1ZmZlckxlYXZlTm9uWmVyby5odG1sIj5mdW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVO
b25aZXJvLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAg
ICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL2J1ZmZlckRhdGEuaHRtbCIgd2lkdGg9IjExMCIgaGVp
Z2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2J1ZmZlckRh
dGEuaHRtbCI+ZnVuY3Rpb25zL2J1ZmZlckRhdGEuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2Pgor
ICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvYnVmZmVyRGF0
YUJhZEFyZ3MuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8
aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2J1ZmZlckRhdGFCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9i
dWZmZXJEYXRhQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8
ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy9idWZmZXJTdWJEYXRhLmh0bWwiIHdp
ZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1bmN0
aW9ucy9idWZmZXJTdWJEYXRhLmh0bWwiPmZ1bmN0aW9ucy9idWZmZXJTdWJEYXRhLmh0bWw8L2E+
PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0i
ZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRBcmdzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0i
NDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy9idWZmZXJTdWJEYXRh
QmFkQXJncy5odG1sIj5mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YUJhZEFyZ3MuaHRtbDwvYT48L2gy
PgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5j
dGlvbnMvY29weVRleEltYWdlMkQuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJh
bWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2NvcHlUZXhJbWFnZTJELmh0bWwiPmZ1
bmN0aW9ucy9jb3B5VGV4SW1hZ2UyRC5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisK
KyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy9jb3B5VGV4SW1hZ2UyREJh
ZEFyZ3MuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgaHJlZj0iZnVuY3Rpb25zL2NvcHlUZXhJbWFnZTJEQmFkQXJncy5odG1sIj5mdW5jdGlvbnMv
Y29weVRleEltYWdlMkRCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKwor
ICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL2NvcHlUZXhTdWJJbWFnZTJE
Lmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhy
ZWY9ImZ1bmN0aW9ucy9jb3B5VGV4U3ViSW1hZ2UyRC5odG1sIj5mdW5jdGlvbnMvY29weVRleFN1
YkltYWdlMkQuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAg
ICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvY29weVRleFN1YkltYWdlMkRCYWRBcmdzLmh0bWwi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1
bmN0aW9ucy9jb3B5VGV4U3ViSW1hZ2UyREJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2NvcHlUZXhT
dWJJbWFnZTJEQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8
ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy9kZWxldGVCdWZmZXJCYWRBcmdzLmh0
bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9
ImZ1bmN0aW9ucy9kZWxldGVCdWZmZXJCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9kZWxldGVCdWZm
ZXJCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+Cisg
ICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL2RyYXdBcnJheXMuaHRtbCIgd2lkdGg9IjExMCIg
aGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2RyYXdB
cnJheXMuaHRtbCI+ZnVuY3Rpb25zL2RyYXdBcnJheXMuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2
PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvZHJhd0Fy
cmF5c091dE9mQm91bmRzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgor
ICAgICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy9kcmF3QXJyYXlzT3V0T2ZCb3VuZHMuaHRtbCI+
ZnVuY3Rpb25zL2RyYXdBcnJheXNPdXRPZkJvdW5kcy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+
CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy9kcmF3RWxl
bWVudHMuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgaHJlZj0iZnVuY3Rpb25zL2RyYXdFbGVtZW50cy5odG1sIj5mdW5jdGlvbnMvZHJhd0VsZW1l
bnRzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8
aWZyYW1lIHNyYz0iZnVuY3Rpb25zL2RyYXdFbGVtZW50c0JhZEFyZ3MuaHRtbCIgd2lkdGg9IjEx
MCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL2Ry
YXdFbGVtZW50c0JhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2RyYXdFbGVtZW50c0JhZEFyZ3MuaHRt
bDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUg
c3JjPSJmdW5jdGlvbnMvZ2V0SW1hZ2VEYXRhLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIi
PjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy9nZXRJbWFnZURhdGEuaHRt
bCI+ZnVuY3Rpb25zL2dldEltYWdlRGF0YS5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAg
CisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy9nZXRJbWFnZURhdGFC
YWRBcmdzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgy
PjxhIGhyZWY9ImZ1bmN0aW9ucy9nZXRJbWFnZURhdGFCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9n
ZXRJbWFnZURhdGFCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAg
IDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL2lzVGVzdHMuaHRtbCIgd2lkdGg9
IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25z
L2lzVGVzdHMuaHRtbCI+ZnVuY3Rpb25zL2lzVGVzdHMuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2
PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvbGlua1By
b2dyYW1CYWRBcmdzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAg
ICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy9saW5rUHJvZ3JhbUJhZEFyZ3MuaHRtbCI+ZnVuY3Rp
b25zL2xpbmtQcm9ncmFtQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisK
KyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy9yZWFkUGl4ZWxzLmh0bWwi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1
bmN0aW9ucy9yZWFkUGl4ZWxzLmh0bWwiPmZ1bmN0aW9ucy9yZWFkUGl4ZWxzLmh0bWw8L2E+PC9o
Mj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVu
Y3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwv
aWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5o
dG1sIj5mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2
PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvdGV4SW1h
Z2UyRC5odG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48
YSBocmVmPSJmdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sIj5mdW5jdGlvbnMvdGV4SW1hZ2UyRC5o
dG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFt
ZSBzcmM9ImZ1bmN0aW9ucy90ZXhJbWFnZTJEQmFkQXJncy5odG1sIiB3aWR0aD0iMTEwIiBoZWln
aHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBocmVmPSJmdW5jdGlvbnMvdGV4SW1hZ2Uy
REJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3RleEltYWdlMkRCYWRBcmdzLmh0bWw8L2E+PC9oMj4K
KyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rp
b25zL3RleEltYWdlMkRIVE1MLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1l
PgorICAgICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIj5mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisg
ICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUxCYWRB
cmdzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxh
IGhyZWY9ImZ1bmN0aW9ucy90ZXhJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAg
ICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy90ZXhTdWJJbWFnZTJELmh0bWwi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1
bmN0aW9ucy90ZXhTdWJJbWFnZTJELmh0bWwiPmZ1bmN0aW9ucy90ZXhTdWJJbWFnZTJELmh0bWw8
L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNy
Yz0iZnVuY3Rpb25zL3RleFN1YkltYWdlMkRCYWRBcmdzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdo
dD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJEQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREJhZEFyZ3MuaHRtbDwvYT48
L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJm
dW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+
PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWwiPmZ1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sPC9hPjwvaDI+CisgICAgPC9k
aXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy90ZXhT
dWJJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJh
bWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MQmFkQXJn
cy5odG1sIj5mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUxCYWRBcmdzLmh0bWw8L2E+PC9oMj4K
KyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rp
b25zL3VuaWZvcm1NYXRyaXguaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+
CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXguaHRtbCI+ZnVuY3Rp
b25zL3VuaWZvcm1NYXRyaXguaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAg
PGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvdW5pZm9ybU1hdHJpeEJhZEFyZ3Mu
aHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJl
Zj0iZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy91bmlmb3Jt
TWF0cml4QmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2
PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy91bmlmb3JtZi5odG1sIiB3aWR0aD0iMTEw
IiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBocmVmPSJmdW5jdGlvbnMvdW5p
Zm9ybWYuaHRtbCI+ZnVuY3Rpb25zL3VuaWZvcm1mLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL3VuaWZvcm1m
QmFkQXJncy5odG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxo
Mj48YSBocmVmPSJmdW5jdGlvbnMvdW5pZm9ybWZCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy91bmlm
b3JtZkJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4K
KyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMvdW5pZm9ybWkuaHRtbCIgd2lkdGg9IjExMCIg
aGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0iZnVuY3Rpb25zL3VuaWZv
cm1pLmh0bWwiPmZ1bmN0aW9ucy91bmlmb3JtaS5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+Cisg
ICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy91bmlmb3JtaUJh
ZEFyZ3MuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgaHJlZj0iZnVuY3Rpb25zL3VuaWZvcm1pQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvdW5pZm9y
bWlCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+Cisg
ICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL3ZlcnRleEF0dHJpYi5odG1sIiB3aWR0aD0iMTEw
IiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBocmVmPSJmdW5jdGlvbnMvdmVy
dGV4QXR0cmliLmh0bWwiPmZ1bmN0aW9ucy92ZXJ0ZXhBdHRyaWIuaHRtbDwvYT48L2gyPgorICAg
IDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJmdW5jdGlvbnMv
dmVydGV4QXR0cmliQmFkQXJncy5odG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFt
ZT4KKyAgICAgIDxoMj48YSBocmVmPSJmdW5jdGlvbnMvdmVydGV4QXR0cmliQmFkQXJncy5odG1s
Ij5mdW5jdGlvbnMvdmVydGV4QXR0cmliQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+
CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9ImZ1bmN0aW9ucy92ZXJ0ZXhB
dHRyaWJQb2ludGVyLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAg
ICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyLmh0bWwiPmZ1bmN0
aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAK
KworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBv
aW50ZXJCYWRBcmdzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAg
ICAgPGgyPjxhIGhyZWY9ImZ1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyQmFkQXJncy5odG1s
Ij5mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAg
IDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJwZXJmb3JtYW5j
ZS9DUFV2c0dQVS5odG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAg
IDxoMj48YSBocmVmPSJwZXJmb3JtYW5jZS9DUFV2c0dQVS5odG1sIj5wZXJmb3JtYW5jZS9DUFV2
c0dQVS5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAg
PGlmcmFtZSBzcmM9InBlcmZvcm1hbmNlL2JhbmR3aWR0aC5odG1sIiB3aWR0aD0iMTEwIiBoZWln
aHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBocmVmPSJwZXJmb3JtYW5jZS9iYW5kd2lk
dGguaHRtbCI+cGVyZm9ybWFuY2UvYmFuZHdpZHRoLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0icGVyZm9ybWFuY2UvanNHQ1Bh
dXNlLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxh
IGhyZWY9InBlcmZvcm1hbmNlL2pzR0NQYXVzZS5odG1sIj5wZXJmb3JtYW5jZS9qc0dDUGF1c2Uu
aHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJh
bWUgc3JjPSJwZXJmb3JtYW5jZS9qc01hdHJpeE11bHQuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0
PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaHJlZj0icGVyZm9ybWFuY2UvanNNYXRyaXhN
dWx0Lmh0bWwiPnBlcmZvcm1hbmNlL2pzTWF0cml4TXVsdC5odG1sPC9hPjwvaDI+CisgICAgPC9k
aXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9InBlcmZvcm1hbmNlL2pz
VG9HTE92ZXJoZWFkLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAg
ICAgPGgyPjxhIGhyZWY9InBlcmZvcm1hbmNlL2pzVG9HTE92ZXJoZWFkLmh0bWwiPnBlcmZvcm1h
bmNlL2pzVG9HTE92ZXJoZWFkLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAg
IDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZ2xzbC9hcnJheU91dE9mQm91bmRzLmh0bWwiIHdp
ZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9Imdsc2wv
YXJyYXlPdXRPZkJvdW5kcy5odG1sIj5nbHNsL2FycmF5T3V0T2ZCb3VuZHMuaHRtbDwvYT48L2gy
PgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgc3JjPSJnbHNs
L2xvbmdMb29wcy5odG1sIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAg
IDxoMj48YSBocmVmPSJnbHNsL2xvbmdMb29wcy5odG1sIj5nbHNsL2xvbmdMb29wcy5odG1sPC9h
PjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBzcmM9
Imdsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0bWwiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwv
aWZyYW1lPgorICAgICAgPGgyPjxhIGhyZWY9Imdsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0bWwi
Pmdsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAK
KworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIHNyYz0iZ2xzbC91bnVzZWRBdHRyaWJzVW5pZm9y
bXMuaHRtbCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEg
aHJlZj0iZ2xzbC91bnVzZWRBdHRyaWJzVW5pZm9ybXMuaHRtbCI+Z2xzbC91bnVzZWRBdHRyaWJz
VW5pZm9ybXMuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9hbGxfdGVzdHNfbGlua29ubHkuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvYWxsX3Rl
c3RzX2xpbmtvbmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk5MzM5MzdmMTQwN2U1ODJhODAwYjc1OTQ3
ZDI3ZTIyMjg0YjU4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvYWxsX3Rlc3RzX2xpbmtvbmx5
Lmh0bWwKQEAgLTAsMCArMSwzOTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLwor
CistLT4KKyAgPHRpdGxlPk9wZW5HTCBFUyAyLjAgJmx0O2NhbnZhcyZndDsgY29udGV4dCB0ZXN0
czwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgaDIgeyBkaXNwbGF5OiBp
bmxpbmU7IGZvbnQtc2l6ZTogMWVtOyBtYXJnaW4tYm90dG9tOiAwLjJlbTsgfQorICAgIGlmcmFt
ZSB7IGRpc3BsYXk6IGlubGluZTsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IG92ZXJmbG93OiBo
aWRkZW47fQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
ICAgZnVuY3Rpb24gbG9hZFRlc3QoaWQsIHVybCkgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoaWQpLnNyYyA9IHVybDsKKyAgICB9CisgICAgZnVuY3Rpb24gc2VxTG9hZGVyKCkgewor
ICAgICAgdmFyIGlmcmFtZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1l
Jyk7CisgICAgICBmb3IgKHZhciBpPTA7IGk8aWZyYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAg
ICBpZnJhbWVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZnVuY3Rpb24oaikgeworICAg
ICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoKGorMSkrJ19saW5rJyk7CisgICAgICAgICAgICBpZiAoZSkgbG9hZFRl
c3QoaisxLCBlLmhyZWYpOworICAgICAgICAgIH0KKyAgICAgICAgfSkoaSksIGZhbHNlKTsKKyAg
ICAgIH0KKyAgICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJzBfbGluaycpOwor
ICAgICAgaWYgKGUpIGxvYWRUZXN0KDAsIGUuaHJlZik7CisgICAgfQorICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ic2VxTG9hZGVyKCkiPgorCisgICAgPGRpdj4KKyAgICAgIDxp
ZnJhbWUgaWQ9IjAiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgy
PjxhIG9uY2xpY2s9ImxvYWRUZXN0KDAsICdjb25mb3JtYW5jZS9iYWRBcmdzQXJpdHlMZXNzVGhh
bkFyZ2MuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iY29uZm9ybWFuY2UvYmFkQXJnc0FyaXR5
TGVzc1RoYW5BcmdjLmh0bWwiPmNvbmZvcm1hbmNlL2JhZEFyZ3NBcml0eUxlc3NUaGFuQXJnYy5o
dG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFt
ZSBpZD0iMSIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEg
b25jbGljaz0ibG9hZFRlc3QoMSwgJ2NvbmZvcm1hbmNlL2NvbnN0YW50cy5odG1sJyk7cmV0dXJu
IGZhbHNlIiBocmVmPSJjb25mb3JtYW5jZS9jb25zdGFudHMuaHRtbCI+Y29uZm9ybWFuY2UvY29u
c3RhbnRzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAg
ICA8aWZyYW1lIGlkPSIyIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAg
IDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCgyLCAnY29uZm9ybWFuY2UvZnV6elRoZUFQSS5odG1s
Jyk7cmV0dXJuIGZhbHNlIiBocmVmPSJjb25mb3JtYW5jZS9mdXp6VGhlQVBJLmh0bWwiPmNvbmZv
cm1hbmNlL2Z1enpUaGVBUEkuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAg
PGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjMiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZy
YW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDMsICdjb25mb3JtYW5jZS9nZXRD
b250ZXh0Lmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImNvbmZvcm1hbmNlL2dldENvbnRleHQu
aHRtbCI+Y29uZm9ybWFuY2UvZ2V0Q29udGV4dC5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+Cisg
ICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNCIgd2lkdGg9IjExMCIgaGVpZ2h0
PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoNCwgJ2NvbmZv
cm1hbmNlL21ldGhvZHMuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iY29uZm9ybWFuY2UvbWV0
aG9kcy5odG1sIj5jb25mb3JtYW5jZS9tZXRob2RzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI1IiB3aWR0aD0iMTEwIiBoZWln
aHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCg1LCAnY29u
Zm9ybWFuY2UvcXVpY2tDaGVja0FQSS5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJjb25mb3Jt
YW5jZS9xdWlja0NoZWNrQVBJLmh0bWwiPmNvbmZvcm1hbmNlL3F1aWNrQ2hlY2tBUEkuaHRtbDwv
YT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9
IjYiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xp
Y2s9ImxvYWRUZXN0KDYsICdjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJQmFkQXJncy5odG1sJyk7
cmV0dXJuIGZhbHNlIiBocmVmPSJjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJQmFkQXJncy5odG1s
Ij5jb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9k
aXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNyIgd2lkdGg9IjExMCIg
aGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoNywg
J2NvbmZvcm1hbmNlL3dlYkdMQXJyYXlzLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImNvbmZv
cm1hbmNlL3dlYkdMQXJyYXlzLmh0bWwiPmNvbmZvcm1hbmNlL3dlYkdMQXJyYXlzLmh0bWw8L2E+
PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI4
IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNr
PSJsb2FkVGVzdCg4LCAnZnVuY3Rpb25zL2JpbmRCdWZmZXIuaHRtbCcpO3JldHVybiBmYWxzZSIg
aHJlZj0iZnVuY3Rpb25zL2JpbmRCdWZmZXIuaHRtbCI+ZnVuY3Rpb25zL2JpbmRCdWZmZXIuaHRt
bDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUg
aWQ9IjkiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9u
Y2xpY2s9ImxvYWRUZXN0KDksICdmdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MuaHRtbCcpO3Jl
dHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL2JpbmRCdWZmZXJCYWRBcmdzLmh0bWwiPmZ1bmN0
aW9ucy9iaW5kQnVmZmVyQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisK
KyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMTAiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIi
PjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDEwLCAnZnVuY3Rpb25z
L2JpbmRGcmFtZWJ1ZmZlckxlYXZlTm9uWmVyby5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJm
dW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWwiPmZ1bmN0aW9ucy9iaW5k
RnJhbWVidWZmZXJMZWF2ZU5vblplcm8uaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAor
CisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjExIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQy
Ij48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCgxMSwgJ2Z1bmN0aW9u
cy9idWZmZXJEYXRhLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy9idWZmZXJE
YXRhLmh0bWwiPmZ1bmN0aW9ucy9idWZmZXJEYXRhLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIxMiIgd2lkdGg9IjExMCIgaGVp
Z2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMTIsICdm
dW5jdGlvbnMvYnVmZmVyRGF0YUJhZEFyZ3MuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iZnVu
Y3Rpb25zL2J1ZmZlckRhdGFCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9idWZmZXJEYXRhQmFkQXJn
cy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlm
cmFtZSBpZD0iMTMiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgy
PjxhIG9uY2xpY2s9ImxvYWRUZXN0KDEzLCAnZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGEuaHRtbCcp
O3JldHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGEuaHRtbCI+ZnVuY3Rp
b25zL2J1ZmZlclN1YkRhdGEuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAg
PGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjE0IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lm
cmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCgxNCwgJ2Z1bmN0aW9ucy9idWZm
ZXJTdWJEYXRhQmFkQXJncy5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5jdGlvbnMvYnVm
ZmVyU3ViRGF0YUJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRBcmdzLmh0
bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1l
IGlkPSIxNSIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEg
b25jbGljaz0ibG9hZFRlc3QoMTUsICdmdW5jdGlvbnMvY29weVRleEltYWdlMkQuaHRtbCcpO3Jl
dHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL2NvcHlUZXhJbWFnZTJELmh0bWwiPmZ1bmN0aW9u
cy9jb3B5VGV4SW1hZ2UyRC5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8
ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMTYiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZy
YW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDE2LCAnZnVuY3Rpb25zL2NvcHlU
ZXhJbWFnZTJEQmFkQXJncy5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5jdGlvbnMvY29w
eVRleEltYWdlMkRCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9jb3B5VGV4SW1hZ2UyREJhZEFyZ3Mu
aHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJh
bWUgaWQ9IjE3IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48
YSBvbmNsaWNrPSJsb2FkVGVzdCgxNywgJ2Z1bmN0aW9ucy9jb3B5VGV4U3ViSW1hZ2UyRC5odG1s
Jyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5jdGlvbnMvY29weVRleFN1YkltYWdlMkQuaHRtbCI+
ZnVuY3Rpb25zL2NvcHlUZXhTdWJJbWFnZTJELmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAg
ICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIxOCIgd2lkdGg9IjExMCIgaGVpZ2h0
PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMTgsICdmdW5j
dGlvbnMvY29weVRleFN1YkltYWdlMkRCYWRBcmdzLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9
ImZ1bmN0aW9ucy9jb3B5VGV4U3ViSW1hZ2UyREJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2NvcHlU
ZXhTdWJJbWFnZTJEQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAg
ICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMTkiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwv
aWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDE5LCAnZnVuY3Rpb25zL2Rl
bGV0ZUJ1ZmZlckJhZEFyZ3MuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL2Rl
bGV0ZUJ1ZmZlckJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2RlbGV0ZUJ1ZmZlckJhZEFyZ3MuaHRt
bDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUg
aWQ9IjIwIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBv
bmNsaWNrPSJsb2FkVGVzdCgyMCwgJ2Z1bmN0aW9ucy9kcmF3QXJyYXlzLmh0bWwnKTtyZXR1cm4g
ZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy9kcmF3QXJyYXlzLmh0bWwiPmZ1bmN0aW9ucy9kcmF3QXJy
YXlzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8
aWZyYW1lIGlkPSIyMSIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8
aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMjEsICdmdW5jdGlvbnMvZHJhd0FycmF5c091dE9mQm91
bmRzLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy9kcmF3QXJyYXlzT3V0T2ZC
b3VuZHMuaHRtbCI+ZnVuY3Rpb25zL2RyYXdBcnJheXNPdXRPZkJvdW5kcy5odG1sPC9hPjwvaDI+
CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMjIiIHdp
ZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9Imxv
YWRUZXN0KDIyLCAnZnVuY3Rpb25zL2RyYXdFbGVtZW50cy5odG1sJyk7cmV0dXJuIGZhbHNlIiBo
cmVmPSJmdW5jdGlvbnMvZHJhd0VsZW1lbnRzLmh0bWwiPmZ1bmN0aW9ucy9kcmF3RWxlbWVudHMu
aHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJh
bWUgaWQ9IjIzIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48
YSBvbmNsaWNrPSJsb2FkVGVzdCgyMywgJ2Z1bmN0aW9ucy9kcmF3RWxlbWVudHNCYWRBcmdzLmh0
bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy9kcmF3RWxlbWVudHNCYWRBcmdzLmh0
bWwiPmZ1bmN0aW9ucy9kcmF3RWxlbWVudHNCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rp
dj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIyNCIgd2lkdGg9IjExMCIg
aGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMjQs
ICdmdW5jdGlvbnMvZ2V0SW1hZ2VEYXRhLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0
aW9ucy9nZXRJbWFnZURhdGEuaHRtbCI+ZnVuY3Rpb25zL2dldEltYWdlRGF0YS5odG1sPC9hPjwv
aDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMjUi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9
ImxvYWRUZXN0KDI1LCAnZnVuY3Rpb25zL2dldEltYWdlRGF0YUJhZEFyZ3MuaHRtbCcpO3JldHVy
biBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL2dldEltYWdlRGF0YUJhZEFyZ3MuaHRtbCI+ZnVuY3Rp
b25zL2dldEltYWdlRGF0YUJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAor
CisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjI2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQy
Ij48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCgyNiwgJ2Z1bmN0aW9u
cy9pc1Rlc3RzLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy9pc1Rlc3RzLmh0
bWwiPmZ1bmN0aW9ucy9pc1Rlc3RzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKwor
ICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIyNyIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+
PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMjcsICdmdW5jdGlvbnMv
bGlua1Byb2dyYW1CYWRBcmdzLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy9s
aW5rUHJvZ3JhbUJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2xpbmtQcm9ncmFtQmFkQXJncy5odG1s
PC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBp
ZD0iMjgiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9u
Y2xpY2s9ImxvYWRUZXN0KDI4LCAnZnVuY3Rpb25zL3JlYWRQaXhlbHMuaHRtbCcpO3JldHVybiBm
YWxzZSIgaHJlZj0iZnVuY3Rpb25zL3JlYWRQaXhlbHMuaHRtbCI+ZnVuY3Rpb25zL3JlYWRQaXhl
bHMuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxp
ZnJhbWUgaWQ9IjI5IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxo
Mj48YSBvbmNsaWNrPSJsb2FkVGVzdCgyOSwgJ2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5o
dG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRt
bCI+ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIzMCIgd2lkdGg9IjExMCIgaGVp
Z2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMzAsICdm
dW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5jdGlvbnMv
dGV4SW1hZ2UyRC5odG1sIj5mdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sPC9hPjwvaDI+CisgICAg
PC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMzEiIHdpZHRoPSIx
MTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0
KDMxLCAnZnVuY3Rpb25zL3RleEltYWdlMkRCYWRBcmdzLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhy
ZWY9ImZ1bmN0aW9ucy90ZXhJbWFnZTJEQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvdGV4SW1hZ2Uy
REJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAg
ICAgIDxpZnJhbWUgaWQ9IjMyIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAg
ICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCgzMiwgJ2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRN
TC5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRt
bCI+ZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAg
ICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIzMyIgd2lkdGg9IjExMCIgaGVpZ2h0
PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMzMsICdmdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3RleEltYWdlMkRI
VE1MQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2Pgor
ICAgICAgPGlmcmFtZSBpZD0iMzQiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgor
ICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDM0LCAnZnVuY3Rpb25zL3RleFN1YkltYWdl
MkQuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL3RleFN1YkltYWdlMkQuaHRt
bCI+ZnVuY3Rpb25zL3RleFN1YkltYWdlMkQuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAg
IAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjM1IiB3aWR0aD0iMTEwIiBoZWlnaHQ9
IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCgzNSwgJ2Z1bmN0
aW9ucy90ZXhTdWJJbWFnZTJEQmFkQXJncy5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3RleFN1YkltYWdlMkRC
YWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAg
ICA8aWZyYW1lIGlkPSIzNiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAg
ICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoMzYsICdmdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWwiPmZ1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sPC9hPjwvaDI+CisgICAgPC9k
aXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMzciIHdpZHRoPSIxMTAi
IGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDM3
LCAnZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MQmFkQXJncy5odG1sJyk7cmV0dXJuIGZhbHNl
IiBocmVmPSJmdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwiPmZ1bmN0aW9u
cy90ZXhTdWJJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAg
IAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjM4IiB3aWR0aD0iMTEwIiBoZWlnaHQ9
IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCgzOCwgJ2Z1bmN0
aW9ucy91bmlmb3JtTWF0cml4Lmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy91
bmlmb3JtTWF0cml4Lmh0bWwiPmZ1bmN0aW9ucy91bmlmb3JtTWF0cml4Lmh0bWw8L2E+PC9oMj4K
KyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIzOSIgd2lk
dGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9h
ZFRlc3QoMzksICdmdW5jdGlvbnMvdW5pZm9ybU1hdHJpeEJhZEFyZ3MuaHRtbCcpO3JldHVybiBm
YWxzZSIgaHJlZj0iZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLmh0bWwiPmZ1bmN0aW9u
cy91bmlmb3JtTWF0cml4QmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisK
KyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNDAiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIi
PjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDQwLCAnZnVuY3Rpb25z
L3VuaWZvcm1mLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9ImZ1bmN0aW9ucy91bmlmb3JtZi5o
dG1sIj5mdW5jdGlvbnMvdW5pZm9ybWYuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAor
CisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjQxIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQy
Ij48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCg0MSwgJ2Z1bmN0aW9u
cy91bmlmb3JtZkJhZEFyZ3MuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL3Vu
aWZvcm1mQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvdW5pZm9ybWZCYWRBcmdzLmh0bWw8L2E+PC9o
Mj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI0MiIg
d2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0i
bG9hZFRlc3QoNDIsICdmdW5jdGlvbnMvdW5pZm9ybWkuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJl
Zj0iZnVuY3Rpb25zL3VuaWZvcm1pLmh0bWwiPmZ1bmN0aW9ucy91bmlmb3JtaS5odG1sPC9hPjwv
aDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNDMi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9
ImxvYWRUZXN0KDQzLCAnZnVuY3Rpb25zL3VuaWZvcm1pQmFkQXJncy5odG1sJyk7cmV0dXJuIGZh
bHNlIiBocmVmPSJmdW5jdGlvbnMvdW5pZm9ybWlCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy91bmlm
b3JtaUJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4K
KyAgICAgIDxpZnJhbWUgaWQ9IjQ0IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4K
KyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCg0NCwgJ2Z1bmN0aW9ucy92ZXJ0ZXhBdHRy
aWIuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL3ZlcnRleEF0dHJpYi5odG1s
Ij5mdW5jdGlvbnMvdmVydGV4QXR0cmliLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAK
KworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI0NSIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0
MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoNDUsICdmdW5jdGlv
bnMvdmVydGV4QXR0cmliQmFkQXJncy5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJmdW5jdGlv
bnMvdmVydGV4QXR0cmliQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvdmVydGV4QXR0cmliQmFkQXJn
cy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlm
cmFtZSBpZD0iNDYiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgy
PjxhIG9uY2xpY2s9ImxvYWRUZXN0KDQ2LCAnZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXIu
aHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0iZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXIu
aHRtbCI+ZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXIuaHRtbDwvYT48L2gyPgorICAgIDwv
ZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjQ3IiB3aWR0aD0iMTEw
IiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCg0
NywgJ2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyQmFkQXJncy5odG1sJyk7cmV0dXJuIGZh
bHNlIiBocmVmPSJmdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MuaHRtbCI+ZnVu
Y3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXJCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rp
dj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI0OCIgd2lkdGg9IjExMCIg
aGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoNDgs
ICdwZXJmb3JtYW5jZS9DUFV2c0dQVS5odG1sJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJwZXJmb3Jt
YW5jZS9DUFV2c0dQVS5odG1sIj5wZXJmb3JtYW5jZS9DUFV2c0dQVS5odG1sPC9hPjwvaDI+Cisg
ICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNDkiIHdpZHRo
PSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRU
ZXN0KDQ5LCAncGVyZm9ybWFuY2UvYmFuZHdpZHRoLmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9
InBlcmZvcm1hbmNlL2JhbmR3aWR0aC5odG1sIj5wZXJmb3JtYW5jZS9iYW5kd2lkdGguaHRtbDwv
YT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9
IjUwIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNs
aWNrPSJsb2FkVGVzdCg1MCwgJ3BlcmZvcm1hbmNlL2pzR0NQYXVzZS5odG1sJyk7cmV0dXJuIGZh
bHNlIiBocmVmPSJwZXJmb3JtYW5jZS9qc0dDUGF1c2UuaHRtbCI+cGVyZm9ybWFuY2UvanNHQ1Bh
dXNlLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8
aWZyYW1lIGlkPSI1MSIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8
aDI+PGEgb25jbGljaz0ibG9hZFRlc3QoNTEsICdwZXJmb3JtYW5jZS9qc01hdHJpeE11bHQuaHRt
bCcpO3JldHVybiBmYWxzZSIgaHJlZj0icGVyZm9ybWFuY2UvanNNYXRyaXhNdWx0Lmh0bWwiPnBl
cmZvcm1hbmNlL2pzTWF0cml4TXVsdC5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisK
KyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNTIiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIi
PjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9ImxvYWRUZXN0KDUyLCAncGVyZm9ybWFu
Y2UvanNUb0dMT3ZlcmhlYWQuaHRtbCcpO3JldHVybiBmYWxzZSIgaHJlZj0icGVyZm9ybWFuY2Uv
anNUb0dMT3ZlcmhlYWQuaHRtbCI+cGVyZm9ybWFuY2UvanNUb0dMT3ZlcmhlYWQuaHRtbDwvYT48
L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjUz
IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBvbmNsaWNr
PSJsb2FkVGVzdCg1MywgJ2dsc2wvYXJyYXlPdXRPZkJvdW5kcy5odG1sJyk7cmV0dXJuIGZhbHNl
IiBocmVmPSJnbHNsL2FycmF5T3V0T2ZCb3VuZHMuaHRtbCI+Z2xzbC9hcnJheU91dE9mQm91bmRz
Lmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZy
YW1lIGlkPSI1NCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgb25jbGljaz0ibG9hZFRlc3QoNTQsICdnbHNsL2xvbmdMb29wcy5odG1sJyk7cmV0dXJuIGZh
bHNlIiBocmVmPSJnbHNsL2xvbmdMb29wcy5odG1sIj5nbHNsL2xvbmdMb29wcy5odG1sPC9hPjwv
aDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNTUi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIG9uY2xpY2s9
ImxvYWRUZXN0KDU1LCAnZ2xzbC91bmlmb3JtT3V0T2ZCb3VuZHMuaHRtbCcpO3JldHVybiBmYWxz
ZSIgaHJlZj0iZ2xzbC91bmlmb3JtT3V0T2ZCb3VuZHMuaHRtbCI+Z2xzbC91bmlmb3JtT3V0T2ZC
b3VuZHMuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAg
IDxpZnJhbWUgaWQ9IjU2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAg
IDxoMj48YSBvbmNsaWNrPSJsb2FkVGVzdCg1NiwgJ2dsc2wvdW51c2VkQXR0cmlic1VuaWZvcm1z
Lmh0bWwnKTtyZXR1cm4gZmFsc2UiIGhyZWY9Imdsc2wvdW51c2VkQXR0cmlic1VuaWZvcm1zLmh0
bWwiPmdsc2wvdW51c2VkQXR0cmlic1VuaWZvcm1zLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvYWxsX3Rlc3RzX3NlcXVl
bnRpYWwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvYWxsX3Rlc3RzX3NlcXVlbnRpYWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MTc0ZDk2MmE4ZGQxOTU2MjEzOWFkODkyM2VmZmRlY2I4ODNmMjE0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9hbGxfdGVzdHNfc2VxdWVudGlhbC5odG1sCkBAIC0wLDAgKzEsMzk5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0t
CisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioK
KyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAor
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisgIDx0aXRsZT5PcGVuR0wgRVMgMi4w
ICZsdDtjYW52YXMmZ3Q7IGNvbnRleHQgdGVzdHM8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorICAgIGgyIHsgZGlzcGxheTogaW5saW5lOyBmb250LXNpemU6IDFlbTsgbWFyZ2lu
LWJvdHRvbTogMC4yZW07IH0KKyAgICBpZnJhbWUgeyBkaXNwbGF5OiBpbmxpbmU7IGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOyBvdmVyZmxvdzogaGlkZGVuO30KKyAgPC9zdHlsZT4KKyAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1bmN0aW9uIGxvYWRUZXN0KGlkLCB1cmwp
IHsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zcmMgPSB1cmw7CisgICAgfQor
ICAgIGZ1bmN0aW9uIHNlcUxvYWRlcigpIHsKKyAgICAgIHZhciBpZnJhbWVzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpOworICAgICAgZm9yICh2YXIgaT0wOyBpPGlm
cmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWZyYW1lc1tpXS5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgKGZ1bmN0aW9uKGopIHsKKyAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKChqKzEpKydfbGluaycp
OworICAgICAgICAgICAgaWYgKGUpIGxvYWRUZXN0KGorMSwgZS5ocmVmKTsKKyAgICAgICAgICB9
CisgICAgICAgIH0pKGkpLCBmYWxzZSk7CisgICAgICB9CisgICAgICB2YXIgZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCcwX2xpbmsnKTsKKyAgICAgIGlmIChlKSBsb2FkVGVzdCgwLCBlLmhy
ZWYpOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNlcUxvYWRl
cigpIj4KKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIwIiB3aWR0aD0iMTEwIiBoZWln
aHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iMF9saW5rIiBocmVmPSJjb25mb3Jt
YW5jZS9iYWRBcmdzQXJpdHlMZXNzVGhhbkFyZ2MuaHRtbCI+Y29uZm9ybWFuY2UvYmFkQXJnc0Fy
aXR5TGVzc1RoYW5BcmdjLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxk
aXY+CisgICAgICA8aWZyYW1lIGlkPSIxIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFt
ZT4KKyAgICAgIDxoMj48YSBpZD0iMV9saW5rIiBocmVmPSJjb25mb3JtYW5jZS9jb25zdGFudHMu
aHRtbCI+Y29uZm9ybWFuY2UvY29uc3RhbnRzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAg
ICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIyIiB3aWR0aD0iMTEwIiBoZWlnaHQ9
IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iMl9saW5rIiBocmVmPSJjb25mb3JtYW5j
ZS9mdXp6VGhlQVBJLmh0bWwiPmNvbmZvcm1hbmNlL2Z1enpUaGVBUEkuaHRtbDwvYT48L2gyPgor
ICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjMiIHdpZHRo
PSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIzX2xpbmsiIGhy
ZWY9ImNvbmZvcm1hbmNlL2dldENvbnRleHQuaHRtbCI+Y29uZm9ybWFuY2UvZ2V0Q29udGV4dC5o
dG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFt
ZSBpZD0iNCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEg
aWQ9IjRfbGluayIgaHJlZj0iY29uZm9ybWFuY2UvbWV0aG9kcy5odG1sIj5jb25mb3JtYW5jZS9t
ZXRob2RzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAg
ICA8aWZyYW1lIGlkPSI1IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAg
IDxoMj48YSBpZD0iNV9saW5rIiBocmVmPSJjb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLmh0bWwi
PmNvbmZvcm1hbmNlL3F1aWNrQ2hlY2tBUEkuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAg
IAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjYiIHdpZHRoPSIxMTAiIGhlaWdodD0i
NDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSI2X2xpbmsiIGhyZWY9ImNvbmZvcm1hbmNl
L3F1aWNrQ2hlY2tBUElCYWRBcmdzLmh0bWwiPmNvbmZvcm1hbmNlL3F1aWNrQ2hlY2tBUElCYWRB
cmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8
aWZyYW1lIGlkPSI3IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxo
Mj48YSBpZD0iN19saW5rIiBocmVmPSJjb25mb3JtYW5jZS93ZWJHTEFycmF5cy5odG1sIj5jb25m
b3JtYW5jZS93ZWJHTEFycmF5cy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAg
ICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iOCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9p
ZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjhfbGluayIgaHJlZj0iZnVuY3Rpb25zL2JpbmRCdWZm
ZXIuaHRtbCI+ZnVuY3Rpb25zL2JpbmRCdWZmZXIuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2Pgor
ICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjkiIHdpZHRoPSIxMTAiIGhlaWdo
dD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSI5X2xpbmsiIGhyZWY9ImZ1bmN0aW9u
cy9iaW5kQnVmZmVyQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvYmluZEJ1ZmZlckJhZEFyZ3MuaHRt
bDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUg
aWQ9IjEwIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBp
ZD0iMTBfbGluayIgaHJlZj0iZnVuY3Rpb25zL2JpbmRGcmFtZWJ1ZmZlckxlYXZlTm9uWmVyby5o
dG1sIj5mdW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWw8L2E+PC9oMj4K
KyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIxMSIgd2lk
dGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjExX2xpbmsi
IGhyZWY9ImZ1bmN0aW9ucy9idWZmZXJEYXRhLmh0bWwiPmZ1bmN0aW9ucy9idWZmZXJEYXRhLmh0
bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1l
IGlkPSIxMiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEg
aWQ9IjEyX2xpbmsiIGhyZWY9ImZ1bmN0aW9ucy9idWZmZXJEYXRhQmFkQXJncy5odG1sIj5mdW5j
dGlvbnMvYnVmZmVyRGF0YUJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAor
CisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjEzIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQy
Ij48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iMTNfbGluayIgaHJlZj0iZnVuY3Rpb25zL2J1
ZmZlclN1YkRhdGEuaHRtbCI+ZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGEuaHRtbDwvYT48L2gyPgor
ICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjE0IiB3aWR0
aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iMTRfbGluayIg
aHJlZj0iZnVuY3Rpb25zL2J1ZmZlclN1YkRhdGFCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9idWZm
ZXJTdWJEYXRhQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8
ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMTUiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZy
YW1lPgorICAgICAgPGgyPjxhIGlkPSIxNV9saW5rIiBocmVmPSJmdW5jdGlvbnMvY29weVRleElt
YWdlMkQuaHRtbCI+ZnVuY3Rpb25zL2NvcHlUZXhJbWFnZTJELmh0bWw8L2E+PC9oMj4KKyAgICA8
L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIxNiIgd2lkdGg9IjEx
MCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjE2X2xpbmsiIGhyZWY9
ImZ1bmN0aW9ucy9jb3B5VGV4SW1hZ2UyREJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2NvcHlUZXhJ
bWFnZTJEQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2
PgorICAgICAgPGlmcmFtZSBpZD0iMTciIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1l
PgorICAgICAgPGgyPjxhIGlkPSIxN19saW5rIiBocmVmPSJmdW5jdGlvbnMvY29weVRleFN1Yklt
YWdlMkQuaHRtbCI+ZnVuY3Rpb25zL2NvcHlUZXhTdWJJbWFnZTJELmh0bWw8L2E+PC9oMj4KKyAg
ICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIxOCIgd2lkdGg9
IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjE4X2xpbmsiIGhy
ZWY9ImZ1bmN0aW9ucy9jb3B5VGV4U3ViSW1hZ2UyREJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL2Nv
cHlUZXhTdWJJbWFnZTJEQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisK
KyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMTkiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIi
PjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIxOV9saW5rIiBocmVmPSJmdW5jdGlvbnMvZGVs
ZXRlQnVmZmVyQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvZGVsZXRlQnVmZmVyQmFkQXJncy5odG1s
PC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBp
ZD0iMjAiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlk
PSIyMF9saW5rIiBocmVmPSJmdW5jdGlvbnMvZHJhd0FycmF5cy5odG1sIj5mdW5jdGlvbnMvZHJh
d0FycmF5cy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAg
ICAgPGlmcmFtZSBpZD0iMjEiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAg
ICAgPGgyPjxhIGlkPSIyMV9saW5rIiBocmVmPSJmdW5jdGlvbnMvZHJhd0FycmF5c091dE9mQm91
bmRzLmh0bWwiPmZ1bmN0aW9ucy9kcmF3QXJyYXlzT3V0T2ZCb3VuZHMuaHRtbDwvYT48L2gyPgor
ICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjIyIiB3aWR0
aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iMjJfbGluayIg
aHJlZj0iZnVuY3Rpb25zL2RyYXdFbGVtZW50cy5odG1sIj5mdW5jdGlvbnMvZHJhd0VsZW1lbnRz
Lmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZy
YW1lIGlkPSIyMyIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgaWQ9IjIzX2xpbmsiIGhyZWY9ImZ1bmN0aW9ucy9kcmF3RWxlbWVudHNCYWRBcmdzLmh0bWwi
PmZ1bmN0aW9ucy9kcmF3RWxlbWVudHNCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIyNCIgd2lkdGg9IjExMCIgaGVp
Z2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjI0X2xpbmsiIGhyZWY9ImZ1bmN0
aW9ucy9nZXRJbWFnZURhdGEuaHRtbCI+ZnVuY3Rpb25zL2dldEltYWdlRGF0YS5odG1sPC9hPjwv
aDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMjUi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIyNV9s
aW5rIiBocmVmPSJmdW5jdGlvbnMvZ2V0SW1hZ2VEYXRhQmFkQXJncy5odG1sIj5mdW5jdGlvbnMv
Z2V0SW1hZ2VEYXRhQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAg
ICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMjYiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwv
aWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIyNl9saW5rIiBocmVmPSJmdW5jdGlvbnMvaXNUZXN0
cy5odG1sIj5mdW5jdGlvbnMvaXNUZXN0cy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAg
CisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMjciIHdpZHRoPSIxMTAiIGhlaWdodD0i
NDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIyN19saW5rIiBocmVmPSJmdW5jdGlvbnMv
bGlua1Byb2dyYW1CYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy9saW5rUHJvZ3JhbUJhZEFyZ3MuaHRt
bDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUg
aWQ9IjI4IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBp
ZD0iMjhfbGluayIgaHJlZj0iZnVuY3Rpb25zL3JlYWRQaXhlbHMuaHRtbCI+ZnVuY3Rpb25zL3Jl
YWRQaXhlbHMuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAg
ICAgIDxpZnJhbWUgaWQ9IjI5IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAg
ICAgIDxoMj48YSBpZD0iMjlfbGluayIgaHJlZj0iZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
Lmh0bWwiPmZ1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9k
aXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMzAiIHdpZHRoPSIxMTAi
IGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIzMF9saW5rIiBocmVmPSJm
dW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sIj5mdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sPC9hPjwv
aDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMzEi
IHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIzMV9s
aW5rIiBocmVmPSJmdW5jdGlvbnMvdGV4SW1hZ2UyREJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3Rl
eEltYWdlMkRCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxk
aXY+CisgICAgICA8aWZyYW1lIGlkPSIzMiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJh
bWU+CisgICAgICA8aDI+PGEgaWQ9IjMyX2xpbmsiIGhyZWY9ImZ1bmN0aW9ucy90ZXhJbWFnZTJE
SFRNTC5odG1sIj5mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbDwvYT48L2gyPgorICAgIDwv
ZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjMzIiB3aWR0aD0iMTEw
IiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iMzNfbGluayIgaHJlZj0i
ZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvdGV4SW1hZ2Uy
REhUTUxCYWRBcmdzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+
CisgICAgICA8aWZyYW1lIGlkPSIzNCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+
CisgICAgICA8aDI+PGEgaWQ9IjM0X2xpbmsiIGhyZWY9ImZ1bmN0aW9ucy90ZXhTdWJJbWFnZTJE
Lmh0bWwiPmZ1bmN0aW9ucy90ZXhTdWJJbWFnZTJELmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4K
KyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSIzNSIgd2lkdGg9IjExMCIgaGVp
Z2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjM1X2xpbmsiIGhyZWY9ImZ1bmN0
aW9ucy90ZXhTdWJJbWFnZTJEQmFkQXJncy5odG1sIj5mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREJh
ZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAg
IDxpZnJhbWUgaWQ9IjM2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAg
IDxoMj48YSBpZD0iMzZfbGluayIgaHJlZj0iZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0
bWwiPmZ1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+
CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iMzciIHdpZHRoPSIxMTAiIGhl
aWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSIzN19saW5rIiBocmVmPSJmdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUxCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTEJhZEFyZ3MuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRp
dj4KKyAgICAgIDxpZnJhbWUgaWQ9IjM4IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFt
ZT4KKyAgICAgIDxoMj48YSBpZD0iMzhfbGluayIgaHJlZj0iZnVuY3Rpb25zL3VuaWZvcm1NYXRy
aXguaHRtbCI+ZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXguaHRtbDwvYT48L2gyPgorICAgIDwvZGl2
PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjM5IiB3aWR0aD0iMTEwIiBo
ZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iMzlfbGluayIgaHJlZj0iZnVu
Y3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy91bmlmb3JtTWF0cml4
QmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAg
ICAgPGlmcmFtZSBpZD0iNDAiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAg
ICAgPGgyPjxhIGlkPSI0MF9saW5rIiBocmVmPSJmdW5jdGlvbnMvdW5pZm9ybWYuaHRtbCI+ZnVu
Y3Rpb25zL3VuaWZvcm1mLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxk
aXY+CisgICAgICA8aWZyYW1lIGlkPSI0MSIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJh
bWU+CisgICAgICA8aDI+PGEgaWQ9IjQxX2xpbmsiIGhyZWY9ImZ1bmN0aW9ucy91bmlmb3JtZkJh
ZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3VuaWZvcm1mQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAg
PC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNDIiIHdpZHRoPSIx
MTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSI0Ml9saW5rIiBocmVm
PSJmdW5jdGlvbnMvdW5pZm9ybWkuaHRtbCI+ZnVuY3Rpb25zL3VuaWZvcm1pLmh0bWw8L2E+PC9o
Mj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI0MyIg
d2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjQzX2xp
bmsiIGhyZWY9ImZ1bmN0aW9ucy91bmlmb3JtaUJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3VuaWZv
cm1pQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2Pgor
ICAgICAgPGlmcmFtZSBpZD0iNDQiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgor
ICAgICAgPGgyPjxhIGlkPSI0NF9saW5rIiBocmVmPSJmdW5jdGlvbnMvdmVydGV4QXR0cmliLmh0
bWwiPmZ1bmN0aW9ucy92ZXJ0ZXhBdHRyaWIuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAg
IAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjQ1IiB3aWR0aD0iMTEwIiBoZWlnaHQ9
IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iNDVfbGluayIgaHJlZj0iZnVuY3Rpb25z
L3ZlcnRleEF0dHJpYkJhZEFyZ3MuaHRtbCI+ZnVuY3Rpb25zL3ZlcnRleEF0dHJpYkJhZEFyZ3Mu
aHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJh
bWUgaWQ9IjQ2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48
YSBpZD0iNDZfbGluayIgaHJlZj0iZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXIuaHRtbCI+
ZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXIuaHRtbDwvYT48L2gyPgorICAgIDwvZGl2Pgor
ICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJhbWUgaWQ9IjQ3IiB3aWR0aD0iMTEwIiBoZWln
aHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48YSBpZD0iNDdfbGluayIgaHJlZj0iZnVuY3Rp
b25zL3ZlcnRleEF0dHJpYlBvaW50ZXJCYWRBcmdzLmh0bWwiPmZ1bmN0aW9ucy92ZXJ0ZXhBdHRy
aWJQb2ludGVyQmFkQXJncy5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8
ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNDgiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZy
YW1lPgorICAgICAgPGgyPjxhIGlkPSI0OF9saW5rIiBocmVmPSJwZXJmb3JtYW5jZS9DUFV2c0dQ
VS5odG1sIj5wZXJmb3JtYW5jZS9DUFV2c0dQVS5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+Cisg
ICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNDkiIHdpZHRoPSIxMTAiIGhlaWdo
dD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSI0OV9saW5rIiBocmVmPSJwZXJmb3Jt
YW5jZS9iYW5kd2lkdGguaHRtbCI+cGVyZm9ybWFuY2UvYmFuZHdpZHRoLmh0bWw8L2E+PC9oMj4K
KyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI1MCIgd2lk
dGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjUwX2xpbmsi
IGhyZWY9InBlcmZvcm1hbmNlL2pzR0NQYXVzZS5odG1sIj5wZXJmb3JtYW5jZS9qc0dDUGF1c2Uu
aHRtbDwvYT48L2gyPgorICAgIDwvZGl2PgorICAgIAorCisgICAgPGRpdj4KKyAgICAgIDxpZnJh
bWUgaWQ9IjUxIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjQyIj48L2lmcmFtZT4KKyAgICAgIDxoMj48
YSBpZD0iNTFfbGluayIgaHJlZj0icGVyZm9ybWFuY2UvanNNYXRyaXhNdWx0Lmh0bWwiPnBlcmZv
cm1hbmNlL2pzTWF0cml4TXVsdC5odG1sPC9hPjwvaDI+CisgICAgPC9kaXY+CisgICAgCisKKyAg
ICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNTIiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwv
aWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSI1Ml9saW5rIiBocmVmPSJwZXJmb3JtYW5jZS9qc1Rv
R0xPdmVyaGVhZC5odG1sIj5wZXJmb3JtYW5jZS9qc1RvR0xPdmVyaGVhZC5odG1sPC9hPjwvaDI+
CisgICAgPC9kaXY+CisgICAgCisKKyAgICA8ZGl2PgorICAgICAgPGlmcmFtZSBpZD0iNTMiIHdp
ZHRoPSIxMTAiIGhlaWdodD0iNDIiPjwvaWZyYW1lPgorICAgICAgPGgyPjxhIGlkPSI1M19saW5r
IiBocmVmPSJnbHNsL2FycmF5T3V0T2ZCb3VuZHMuaHRtbCI+Z2xzbC9hcnJheU91dE9mQm91bmRz
Lmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZy
YW1lIGlkPSI1NCIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgaWQ9IjU0X2xpbmsiIGhyZWY9Imdsc2wvbG9uZ0xvb3BzLmh0bWwiPmdsc2wvbG9uZ0xvb3Bz
Lmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAgIDxkaXY+CisgICAgICA8aWZy
YW1lIGlkPSI1NSIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9pZnJhbWU+CisgICAgICA8aDI+
PGEgaWQ9IjU1X2xpbmsiIGhyZWY9Imdsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0bWwiPmdsc2wv
dW5pZm9ybU91dE9mQm91bmRzLmh0bWw8L2E+PC9oMj4KKyAgICA8L2Rpdj4KKyAgICAKKworICAg
IDxkaXY+CisgICAgICA8aWZyYW1lIGlkPSI1NiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI0MiI+PC9p
ZnJhbWU+CisgICAgICA8aDI+PGEgaWQ9IjU2X2xpbmsiIGhyZWY9Imdsc2wvdW51c2VkQXR0cmli
c1VuaWZvcm1zLmh0bWwiPmdsc2wvdW51c2VkQXR0cmlic1VuaWZvcm1zLmh0bWw8L2E+PC9oMj4K
KyAgICA8L2Rpdj4KKyAgICAKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29u
Zm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1BLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0
b3JzLUEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEwMzliNTk2OGZlYWNhNzdkNjlhZmM5NDJmY2QzMmNlNDkx
MTU1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1B
LmpzCkBAIC0wLDAgKzEsODYgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0
ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
CisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoq
IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4K
KyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLy8gQXJnR2Vu
ZXJhdG9ycyBjb250YWlucyBhcmd1bWVudCBnZW5lcmF0b3JzIGZvciBXZWJHTCBmdW5jdGlvbnMu
CisvLyBUaGUgYXJndW1lbnQgZ2VuZXJhdG9ycyBhcmUgdXNlZCBmb3IgcnVubmluZyByYW5kb20g
dGVzdHMgYWdhaW5zdCB0aGUgV2ViR0wKKy8vIGZ1bmN0aW9ucy4KKy8vCisvLyBBcmdHZW5lcmF0
b3JzIGlzIGFuIG9iamVjdCBjb25zaXN0aW5nIG9mIGZ1bmN0aW9uTmFtZSA6IGFyZ0dlbiAtcHJv
cGVydGllcy4KKy8vCisvLyBmdW5jdGlvbk5hbWUgaXMgYSBXZWJHTCBjb250ZXh0IGZ1bmN0aW9u
IG5hbWUgYW5kIHRoZSBhcmdHZW4gaXMgYW4gYXJndW1lbnQKKy8vIGdlbmVyYXRvciBvYmplY3Qg
dGhhdCBlbmNhcHN1bGF0ZXMgdGhlIHJlcXVpcmVtZW50cyB0byBydW4KKy8vIHJhbmRvbWx5IGdl
bmVyYXRlZCB0ZXN0cyBvbiB0aGUgV2ViR0wgZnVuY3Rpb24uCisvLworLy8gQW4gYXJnR2VuIG9i
amVjdCBoYXMgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorLy8gICAtIHNldHVwICAgIC0tIHNldCB1
cCBzdGF0ZSBmb3IgdGVzdGluZyB0aGUgR0wgZnVuY3Rpb24sIHJldHVybnMgdmFsdWVzCisvLyAg
ICAgICAgICAgICAgICAgdGhhdCBuZWVkIGNsZWFudXAgaW4gdGVhcmRvd24uIFJ1biBvbmNlIGJl
Zm9yZSBlbnRlcmluZyBhCisvLyAgICAgICAgICAgICAgICAgdGVzdCBsb29wLgorLy8gICAtIHRl
YXJkb3duIC0tIGRvIGNsZWFudXAgb24gc2V0dXAncyByZXR1cm4gdmFsdWVzIGFmdGVyIHRlc3Rp
bmcgaXMgY29tcGxldGUKKy8vICAgLSBnZW5lcmF0ZSAtLSBnZW5lcmF0ZSBhIHZhbGlkIHNldCBv
ZiByYW5kb20gYXJndW1lbnRzIGZvciB0aGUgR0wgZnVuY3Rpb24KKy8vICAgLSByZXR1cm5WYWx1
ZUNsZWFudXAgLS0gZG8gY2xlYW51cCBvbiB2YWx1ZSByZXR1cm5lZCBieSB0aGUgdGVzdGVkIEdM
IGZ1bmN0aW9uCisvLyAgIC0gY2xlYW51cCAgLS0gZG8gY2xlYW51cCBvbiBnZW5lcmF0ZWQgYXJn
dW1lbnRzIGZyb20gZ2VuZXJhdGUKKy8vICAgLSBjaGVja0FyZ1ZhbGlkaXR5IC0tIGNoZWNrIGlm
IHBhc3NlZCBhcmdzIGFyZSB2YWxpZC4gSGFzIGEgY2FsbCBzaWduYXR1cmUKKy8vICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoYXQgbWF0Y2hlcyBnZW5lcmF0ZSdzIHJldHVybiB2YWx1ZS4gUmV0
dXJucyB0cnVlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmdzIGFyZSB2YWxpZCwg
ZmFsc2UgaWYgbm90LgorLy8KKy8vICAgRXhhbXBsZSB0ZXN0IGxvb3AgdGhhdCBkZW1vbnN0cmF0
ZXMgaG93IHRoZSBmdW5jdGlvbiBhcmdzIGFuZCByZXR1cm4KKy8vICAgdmFsdWVzIGZsb3cgdG9n
ZXRoZXI6CisvLworLy8gICB2YXIgc2V0dXBBcmdzID0gYXJnR2VuLnNldHVwKCk7CisvLyAgIGZv
ciAodmFyIGk9MDsgaTxudW1iZXJPZlRlc3RzOyBpKyspIHsKKy8vICAgICB2YXIgZ2VuZXJhdGVk
QXJncyA9IGFyZ0dlbi5nZW5lcmF0ZS5hcHBseShhcmdHZW4sIHNldHVwQXJncyk7CisvLyAgICAg
dmFyIHZhbGlkQXJncyA9IGFyZ0dlbi5jaGVja0FyZ1ZhbGlkaXR5LmFwcGx5KGFyZ0dlbiwgZ2Vu
ZXJhdGVkQXJncyk7CisvLyAgICAgdmFyIHJ2ID0gY2FsbCB0aGUgR0wgZnVuY3Rpb24gd2l0aCBn
ZW5lcmF0ZWRBcmdzOworLy8gICAgIGFyZ0dlbi5yZXR1cm5WYWx1ZUNsZWFudXAocnYpOworLy8g
ICAgIGFyZ0dlbi5jbGVhbnVwLmFwcGx5KGFyZ0dlbiwgZ2VuZXJhdGVkQXJncyk7CisvLyAgIH0K
Ky8vICAgYXJnR2VuLnRlYXJkb3duLmFwcGx5KGFyZ0dlbiwgc2V0dXBBcmdzKTsKKy8vCitBcmdH
ZW5lcmF0b3JzID0geworCisvLyBHTCBmdW5jdGlvbnMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyCisK
Ky8vIEEKKworICBhY3RpdmVUZXh0dXJlIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7
IHJldHVybiBbdGV4dHVyZVVuaXQucmFuZG9tKCldOyB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkg
OiBmdW5jdGlvbih0KSB7IHJldHVybiB0ZXh0dXJlVW5pdC5oYXModCk7IH0sCisgICAgdGVhcmRv
d24gOiBmdW5jdGlvbigpIHsgR0wuYWN0aXZlVGV4dHVyZShHTC5URVhUVVJFMCk7IH0KKyAgfSwK
KyAgYXR0YWNoU2hhZGVyIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7CisgICAgICB2
YXIgcCA9IEdMLmNyZWF0ZVByb2dyYW0oKTsKKyAgICAgIHZhciBzaCA9IEdMLmNyZWF0ZVNoYWRl
cihzaGFkZXJUeXBlLnJhbmRvbSgpKTsKKyAgICAgIHJldHVybiBbcCwgc2hdOworICAgIH0sCisg
ICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKHAsIHNoKSB7CisgICAgICByZXR1cm4gR0wu
aXNQcm9ncmFtKHApICYmIEdMLmlzU2hhZGVyKHNoKSAmJiAhR0wuZ2V0QXR0YWNoZWRTaGFkZXJz
KHApLmhhcyhzaCk7CisgICAgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24ocCwgc2gpIHsKKyAg
ICAgIHRyeSB7R0wuZGV0YWNoU2hhZGVyKHAsc2gpO30gY2F0Y2goZSkge30KKyAgICAgIHRyeSB7
R0wuZGVsZXRlUHJvZ3JhbShwKTt9IGNhdGNoKGUpIHt9CisgICAgICB0cnkge0dMLmRlbGV0ZVNo
YWRlcihzaCk7fSBjYXRjaChlKSB7fQorICAgIH0KKyAgfQorCit9OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLUIxLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdH
ZW5lcmF0b3JzLUIxLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YWJmMzk0YWY0OGI3NGM3NzRjYzM1MGJmZTVi
MTdiYzBhNDkzYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVy
YXRvcnMtQjEuanMKQEAgLTAsMCArMSw3OCBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
KyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
KyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCisv
LyBBcmdHZW5lcmF0b3JzIGNvbnRhaW5zIGFyZ3VtZW50IGdlbmVyYXRvcnMgZm9yIFdlYkdMIGZ1
bmN0aW9ucy4KKy8vIFRoZSBhcmd1bWVudCBnZW5lcmF0b3JzIGFyZSB1c2VkIGZvciBydW5uaW5n
IHJhbmRvbSB0ZXN0cyBhZ2FpbnN0IHRoZSBXZWJHTAorLy8gZnVuY3Rpb25zLgorLy8KKy8vIEFy
Z0dlbmVyYXRvcnMgaXMgYW4gb2JqZWN0IGNvbnNpc3Rpbmcgb2YgZnVuY3Rpb25OYW1lIDogYXJn
R2VuIC1wcm9wZXJ0aWVzLgorLy8KKy8vIGZ1bmN0aW9uTmFtZSBpcyBhIFdlYkdMIGNvbnRleHQg
ZnVuY3Rpb24gbmFtZSBhbmQgdGhlIGFyZ0dlbiBpcyBhbiBhcmd1bWVudAorLy8gZ2VuZXJhdG9y
IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyB0aGUgcmVxdWlyZW1lbnRzIHRvIHJ1bgorLy8gcmFu
ZG9tbHkgZ2VuZXJhdGVkIHRlc3RzIG9uIHRoZSBXZWJHTCBmdW5jdGlvbi4KKy8vCisvLyBBbiBh
cmdHZW4gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CisvLyAgIC0gc2V0dXAgICAg
LS0gc2V0IHVwIHN0YXRlIGZvciB0ZXN0aW5nIHRoZSBHTCBmdW5jdGlvbiwgcmV0dXJucyB2YWx1
ZXMKKy8vICAgICAgICAgICAgICAgICB0aGF0IG5lZWQgY2xlYW51cCBpbiB0ZWFyZG93bi4gUnVu
IG9uY2UgYmVmb3JlIGVudGVyaW5nIGEKKy8vICAgICAgICAgICAgICAgICB0ZXN0IGxvb3AuCisv
LyAgIC0gdGVhcmRvd24gLS0gZG8gY2xlYW51cCBvbiBzZXR1cCdzIHJldHVybiB2YWx1ZXMgYWZ0
ZXIgdGVzdGluZyBpcyBjb21wbGV0ZQorLy8gICAtIGdlbmVyYXRlIC0tIGdlbmVyYXRlIGEgdmFs
aWQgc2V0IG9mIHJhbmRvbSBhcmd1bWVudHMgZm9yIHRoZSBHTCBmdW5jdGlvbgorLy8gICAtIHJl
dHVyblZhbHVlQ2xlYW51cCAtLSBkbyBjbGVhbnVwIG9uIHZhbHVlIHJldHVybmVkIGJ5IHRoZSB0
ZXN0ZWQgR0wgZnVuY3Rpb24KKy8vICAgLSBjbGVhbnVwICAtLSBkbyBjbGVhbnVwIG9uIGdlbmVy
YXRlZCBhcmd1bWVudHMgZnJvbSBnZW5lcmF0ZQorLy8gICAtIGNoZWNrQXJnVmFsaWRpdHkgLS0g
Y2hlY2sgaWYgcGFzc2VkIGFyZ3MgYXJlIHZhbGlkLiBIYXMgYSBjYWxsIHNpZ25hdHVyZQorLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBtYXRjaGVzIGdlbmVyYXRlJ3MgcmV0dXJuIHZh
bHVlLiBSZXR1cm5zIHRydWUKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFyZ3MgYXJl
IHZhbGlkLCBmYWxzZSBpZiBub3QuCisvLworLy8gICBFeGFtcGxlIHRlc3QgbG9vcCB0aGF0IGRl
bW9uc3RyYXRlcyBob3cgdGhlIGZ1bmN0aW9uIGFyZ3MgYW5kIHJldHVybgorLy8gICB2YWx1ZXMg
ZmxvdyB0b2dldGhlcjoKKy8vCisvLyAgIHZhciBzZXR1cEFyZ3MgPSBhcmdHZW4uc2V0dXAoKTsK
Ky8vICAgZm9yICh2YXIgaT0wOyBpPG51bWJlck9mVGVzdHM7IGkrKykgeworLy8gICAgIHZhciBn
ZW5lcmF0ZWRBcmdzID0gYXJnR2VuLmdlbmVyYXRlLmFwcGx5KGFyZ0dlbiwgc2V0dXBBcmdzKTsK
Ky8vICAgICB2YXIgdmFsaWRBcmdzID0gYXJnR2VuLmNoZWNrQXJnVmFsaWRpdHkuYXBwbHkoYXJn
R2VuLCBnZW5lcmF0ZWRBcmdzKTsKKy8vICAgICB2YXIgcnYgPSBjYWxsIHRoZSBHTCBmdW5jdGlv
biB3aXRoIGdlbmVyYXRlZEFyZ3M7CisvLyAgICAgYXJnR2VuLnJldHVyblZhbHVlQ2xlYW51cChy
dik7CisvLyAgICAgYXJnR2VuLmNsZWFudXAuYXBwbHkoYXJnR2VuLCBnZW5lcmF0ZWRBcmdzKTsK
Ky8vICAgfQorLy8gICBhcmdHZW4udGVhcmRvd24uYXBwbHkoYXJnR2VuLCBzZXR1cEFyZ3MpOwor
Ly8KK0FyZ0dlbmVyYXRvcnMgPSB7CisKKy8vIEdMIGZ1bmN0aW9ucyBpbiBhbHBoYWJldGljYWwg
b3JkZXIKKworLy8gQi0xCisKKyAgYmluZEF0dHJpYkxvY2F0aW9uIDogeworICAgIGdlbmVyYXRl
IDogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcHJvZ3JhbSA9IEdMLmNyZWF0ZVByb2dyYW0oKTsK
KyAgICAgIHJldHVybiBbcHJvZ3JhbSwgcmFuZG9tVmVydGV4QXR0cmlidXRlKCksIHJhbmRvbU5h
bWUoKV07CisgICAgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24ocHJvZ3JhbSwg
aW5kZXgsIG5hbWUpIHsKKyAgICAgIHJldHVybiBHTC5pc1Byb2dyYW0ocHJvZ3JhbSkgJiYgaXNW
ZXJ0ZXhBdHRyaWJ1dGUoaW5kZXgpICYmIGlzVmFsaWROYW1lKG5hbWUpOworICAgIH0sCisgICAg
Y2xlYW51cCA6IGZ1bmN0aW9uKHByb2dyYW0sIGluZGV4LCBuYW1lKSB7CisgICAgICB0cnkgeyBH
TC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOyB9IGNhdGNoKGUpIHt9CisgICAgfQorICB9CisKK307
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVyYXRvcnMtQjIuanMgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2NvbmZvcm1hbmNlL2FyZ0dlbmVyYXRvcnMtQjIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI3ZjQ0MjY2Mzhh
NjI4ZDk2NGQ0N2RmMjEzYzViODhkYzUzMWRlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29u
Zm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1CMi5qcwpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyoqIENv
cHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJp
YWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9u
IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMs
IGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
KyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9S
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK
KyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBN
QVRFUklBTFMuCisqLworCisvLyBBcmdHZW5lcmF0b3JzIGNvbnRhaW5zIGFyZ3VtZW50IGdlbmVy
YXRvcnMgZm9yIFdlYkdMIGZ1bmN0aW9ucy4KKy8vIFRoZSBhcmd1bWVudCBnZW5lcmF0b3JzIGFy
ZSB1c2VkIGZvciBydW5uaW5nIHJhbmRvbSB0ZXN0cyBhZ2FpbnN0IHRoZSBXZWJHTAorLy8gZnVu
Y3Rpb25zLgorLy8KKy8vIEFyZ0dlbmVyYXRvcnMgaXMgYW4gb2JqZWN0IGNvbnNpc3Rpbmcgb2Yg
ZnVuY3Rpb25OYW1lIDogYXJnR2VuIC1wcm9wZXJ0aWVzLgorLy8KKy8vIGZ1bmN0aW9uTmFtZSBp
cyBhIFdlYkdMIGNvbnRleHQgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIGFyZ0dlbiBpcyBhbiBhcmd1
bWVudAorLy8gZ2VuZXJhdG9yIG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyB0aGUgcmVxdWlyZW1l
bnRzIHRvIHJ1bgorLy8gcmFuZG9tbHkgZ2VuZXJhdGVkIHRlc3RzIG9uIHRoZSBXZWJHTCBmdW5j
dGlvbi4KKy8vCisvLyBBbiBhcmdHZW4gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6
CisvLyAgIC0gc2V0dXAgICAgLS0gc2V0IHVwIHN0YXRlIGZvciB0ZXN0aW5nIHRoZSBHTCBmdW5j
dGlvbiwgcmV0dXJucyB2YWx1ZXMKKy8vICAgICAgICAgICAgICAgICB0aGF0IG5lZWQgY2xlYW51
cCBpbiB0ZWFyZG93bi4gUnVuIG9uY2UgYmVmb3JlIGVudGVyaW5nIGEKKy8vICAgICAgICAgICAg
ICAgICB0ZXN0IGxvb3AuCisvLyAgIC0gdGVhcmRvd24gLS0gZG8gY2xlYW51cCBvbiBzZXR1cCdz
IHJldHVybiB2YWx1ZXMgYWZ0ZXIgdGVzdGluZyBpcyBjb21wbGV0ZQorLy8gICAtIGdlbmVyYXRl
IC0tIGdlbmVyYXRlIGEgdmFsaWQgc2V0IG9mIHJhbmRvbSBhcmd1bWVudHMgZm9yIHRoZSBHTCBm
dW5jdGlvbgorLy8gICAtIHJldHVyblZhbHVlQ2xlYW51cCAtLSBkbyBjbGVhbnVwIG9uIHZhbHVl
IHJldHVybmVkIGJ5IHRoZSB0ZXN0ZWQgR0wgZnVuY3Rpb24KKy8vICAgLSBjbGVhbnVwICAtLSBk
byBjbGVhbnVwIG9uIGdlbmVyYXRlZCBhcmd1bWVudHMgZnJvbSBnZW5lcmF0ZQorLy8gICAtIGNo
ZWNrQXJnVmFsaWRpdHkgLS0gY2hlY2sgaWYgcGFzc2VkIGFyZ3MgYXJlIHZhbGlkLiBIYXMgYSBj
YWxsIHNpZ25hdHVyZQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBtYXRjaGVzIGdl
bmVyYXRlJ3MgcmV0dXJuIHZhbHVlLiBSZXR1cm5zIHRydWUKKy8vICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIGFyZ3MgYXJlIHZhbGlkLCBmYWxzZSBpZiBub3QuCisvLworLy8gICBFeGFtcGxl
IHRlc3QgbG9vcCB0aGF0IGRlbW9uc3RyYXRlcyBob3cgdGhlIGZ1bmN0aW9uIGFyZ3MgYW5kIHJl
dHVybgorLy8gICB2YWx1ZXMgZmxvdyB0b2dldGhlcjoKKy8vCisvLyAgIHZhciBzZXR1cEFyZ3Mg
PSBhcmdHZW4uc2V0dXAoKTsKKy8vICAgZm9yICh2YXIgaT0wOyBpPG51bWJlck9mVGVzdHM7IGkr
KykgeworLy8gICAgIHZhciBnZW5lcmF0ZWRBcmdzID0gYXJnR2VuLmdlbmVyYXRlLmFwcGx5KGFy
Z0dlbiwgc2V0dXBBcmdzKTsKKy8vICAgICB2YXIgdmFsaWRBcmdzID0gYXJnR2VuLmNoZWNrQXJn
VmFsaWRpdHkuYXBwbHkoYXJnR2VuLCBnZW5lcmF0ZWRBcmdzKTsKKy8vICAgICB2YXIgcnYgPSBj
YWxsIHRoZSBHTCBmdW5jdGlvbiB3aXRoIGdlbmVyYXRlZEFyZ3M7CisvLyAgICAgYXJnR2VuLnJl
dHVyblZhbHVlQ2xlYW51cChydik7CisvLyAgICAgYXJnR2VuLmNsZWFudXAuYXBwbHkoYXJnR2Vu
LCBnZW5lcmF0ZWRBcmdzKTsKKy8vICAgfQorLy8gICBhcmdHZW4udGVhcmRvd24uYXBwbHkoYXJn
R2VuLCBzZXR1cEFyZ3MpOworLy8KK0FyZ0dlbmVyYXRvcnMgPSB7CisKKy8vIEdMIGZ1bmN0aW9u
cyBpbiBhbHBoYWJldGljYWwgb3JkZXIKKworLy8gQi0yCisKKyAgYmluZEJ1ZmZlciA6IHsKKyAg
ICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKGJ1ZikgeworICAgICAgcmV0dXJuIFtidWZmZXJUYXJnZXQu
cmFuZG9tKCksIEdMLmNyZWF0ZUJ1ZmZlcigpXTsKKyAgICB9LAorICAgIGNoZWNrQXJnVmFsaWRp
dHkgOiBmdW5jdGlvbih0YXJnZXQsIGJ1ZikgeworICAgICAgaWYgKCFidWZmZXJUYXJnZXQuaGFz
KHRhcmdldCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIEdMLmJpbmRCdWZmZXIodGFy
Z2V0LCBidWYpOworICAgICAgcmV0dXJuIEdMLmlzQnVmZmVyKGJ1Zik7CisgICAgfSwKKyAgICBj
bGVhbnVwIDogZnVuY3Rpb24odCwgYnVmLCBtKSB7CisgICAgICBHTC5kZWxldGVCdWZmZXIoYnVm
KTsKKyAgICB9CisgIH0sCisgIGJpbmRGcmFtZWJ1ZmZlciA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1
bmN0aW9uKCkgeworICAgICAgcmV0dXJuIFtHTC5GUkFNRUJVRkZFUiwgTWF0aC5yYW5kb20oKSA+
IDAuNSA/IG51bGwgOiBHTC5jcmVhdGVGcmFtZWJ1ZmZlcigpXTsKKyAgICB9LAorICAgIGNoZWNr
QXJnVmFsaWRpdHkgOiBmdW5jdGlvbih0YXJnZXQsIGZibykgeworICAgICAgaWYgKHRhcmdldCAh
PSBHTC5GUkFNRUJVRkZFUikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgaWYgKGZibyAh
PSBudWxsKQorICAgICAgICAgIEdMLmJpbmRGcmFtZWJ1ZmZlcih0YXJnZXQsIGZibyk7CisgICAg
ICByZXR1cm4gKGZibyA9PSBudWxsIHx8IEdMLmlzRnJhbWVidWZmZXIoZmJvKSk7CisgICAgfSwK
KyAgICBjbGVhbnVwIDogZnVuY3Rpb24odGFyZ2V0LCBmYm8pIHsKKyAgICAgIEdMLmJpbmRGcmFt
ZWJ1ZmZlcih0YXJnZXQsIG51bGwpOworICAgICAgaWYgKGZibykKKyAgICAgICAgR0wuZGVsZXRl
RnJhbWVidWZmZXIoZmJvKTsKKyAgICB9CisgIH0sCisgIGJpbmRSZW5kZXJidWZmZXIgOiB7Cisg
ICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBbR0wuUkVOREVSQlVGRkVS
LCBNYXRoLnJhbmRvbSgpID4gMC41ID8gbnVsbCA6IEdMLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpXTsK
KyAgICB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbih0YXJnZXQsIHJibykgewor
ICAgICAgaWYgKHRhcmdldCAhPSBHTC5SRU5ERVJCVUZGRVIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgIGlmIChyYm8gIT0gbnVsbCkKKyAgICAgICAgR0wuYmluZFJlbmRlcmJ1ZmZlcih0
YXJnZXQsIHJibyk7CisgICAgICByZXR1cm4gKHJibyA9PSBudWxsIHx8IEdMLmlzUmVuZGVyYnVm
ZmVyKHJibykpOworICAgIH0sCisgICAgY2xlYW51cCA6IGZ1bmN0aW9uKHRhcmdldCwgcmJvKSB7
CisgICAgICBHTC5iaW5kUmVuZGVyYnVmZmVyKHRhcmdldCwgbnVsbCk7CisgICAgICBpZiAocmJv
KQorICAgICAgICBHTC5kZWxldGVSZW5kZXJidWZmZXIocmJvKTsKKyAgICB9CisgIH0sCisgIGJp
bmRUZXh0dXJlIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4g
W2JpbmRUZXh0dXJlVGFyZ2V0LnJhbmRvbSgpLCBNYXRoLnJhbmRvbSgpID4gMC41ID8gbnVsbCA6
IEdMLmNyZWF0ZVRleHR1cmUoKV07CisgICAgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVu
Y3Rpb24odGFyZ2V0LCBvKSB7CisgICAgICBpZiAoIWJpbmRUZXh0dXJlVGFyZ2V0Lmhhcyh0YXJn
ZXQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICBpZiAobyAhPSBudWxsKQorICAgICAg
ICBHTC5iaW5kVGV4dHVyZSh0YXJnZXQsIG8pOworICAgICAgcmV0dXJuIChvID09IG51bGwgfHwg
R0wuaXNUZXh0dXJlKG8pKTsKKyAgICB9LAorICAgIGNsZWFudXAgOiBmdW5jdGlvbih0YXJnZXQs
IG8pIHsKKyAgICAgIEdMLmJpbmRUZXh0dXJlKHRhcmdldCwgbnVsbCk7CisgICAgICBpZiAobykK
KyAgICAgICAgR0wuZGVsZXRlVGV4dHVyZShvKTsKKyAgICB9CisgIH0sCisgIGJsZW5kQ29sb3Ig
OiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIHJhbmRvbUNvbG9yKCk7IH0s
CisgICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsgR0wuYmxlbmRDb2xvcigwLDAsMCwwKTsgfQor
ICB9LAorICBibGVuZEVxdWF0aW9uIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJl
dHVybiBbYmxlbmRFcXVhdGlvbk1vZGUucmFuZG9tKCldOyB9LAorICAgIGNoZWNrQXJnVmFsaWRp
dHkgOiBmdW5jdGlvbihvKSB7IHJldHVybiBibGVuZEVxdWF0aW9uTW9kZS5oYXMobyk7IH0sCisg
ICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsgR0wuYmxlbmRFcXVhdGlvbihHTC5GVU5DX0FERCk7
IH0KKyAgfSwKKyAgYmxlbmRFcXVhdGlvblNlcGFyYXRlIDogeworICAgIGdlbmVyYXRlIDogZnVu
Y3Rpb24oKSB7CisgICAgICByZXR1cm4gW2JsZW5kRXF1YXRpb25Nb2RlLnJhbmRvbSgpLCBibGVu
ZEVxdWF0aW9uTW9kZS5yYW5kb20oKV07CisgICAgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDog
ZnVuY3Rpb24obyxwKSB7CisgICAgICByZXR1cm4gYmxlbmRFcXVhdGlvbk1vZGUuaGFzKG8pICYm
IGJsZW5kRXF1YXRpb25Nb2RlLmhhcyhwKTsKKyAgICB9LAorICAgIHRlYXJkb3duIDogZnVuY3Rp
b24oKSB7IEdMLmJsZW5kRXF1YXRpb25TZXBhcmF0ZShHTC5GVU5DX0FERCwgR0wuRlVOQ19BREQp
OyB9CisgIH0sCisgIGJsZW5kRnVuYyA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgewor
ICAgICAgcmV0dXJuIFtibGVuZEZ1bmNTZmFjdG9yLnJhbmRvbSgpLCBibGVuZEZ1bmNEZmFjdG9y
LnJhbmRvbSgpXTsKKyAgICB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihzLGQp
IHsKKyAgICAgIHJldHVybiBibGVuZEZ1bmNTZmFjdG9yLmhhcyhzKSAmJiBibGVuZEZ1bmNEZmFj
dG9yLmhhcyhkKTsKKyAgICB9LAorICAgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7IEdMLmJsZW5k
RnVuYyhHTC5PTkUsIEdMLlpFUk8pOyB9CisgIH0sCisgIGJsZW5kRnVuY1NlcGFyYXRlIDogewor
ICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gW2JsZW5kRnVuY1NmYWN0
b3IucmFuZG9tKCksIGJsZW5kRnVuY0RmYWN0b3IucmFuZG9tKCksCisgICAgICAgICAgICAgIGJs
ZW5kRnVuY1NmYWN0b3IucmFuZG9tKCksIGJsZW5kRnVuY0RmYWN0b3IucmFuZG9tKCldOworICAg
IH0sCisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKHMsZCxhcyxhZCkgeworICAgICAg
cmV0dXJuIGJsZW5kRnVuY1NmYWN0b3IuaGFzKHMpICYmIGJsZW5kRnVuY0RmYWN0b3IuaGFzKGQp
ICYmCisgICAgICAgICAgICAgIGJsZW5kRnVuY1NmYWN0b3IuaGFzKGFzKSAmJiBibGVuZEZ1bmNE
ZmFjdG9yLmhhcyhhZCkgOworICAgIH0sCisgICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsKKyAg
ICAgIEdMLmJsZW5kRnVuY1NlcGFyYXRlKEdMLk9ORSwgR0wuWkVSTywgR0wuT05FLCBHTC5aRVJP
KTsKKyAgICB9CisgIH0KKworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2Vu
ZXJhdG9ycy1CMy5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1CMy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YjdmNDZjNDYxNDUyZDhkNjlmYmRhZDg4NDFiMDcxOGY4NmYzYzllCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLUIzLmpzCkBAIC0wLDAg
KzEsODUgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLy8gQXJnR2VuZXJhdG9ycyBjb250
YWlucyBhcmd1bWVudCBnZW5lcmF0b3JzIGZvciBXZWJHTCBmdW5jdGlvbnMuCisvLyBUaGUgYXJn
dW1lbnQgZ2VuZXJhdG9ycyBhcmUgdXNlZCBmb3IgcnVubmluZyByYW5kb20gdGVzdHMgYWdhaW5z
dCB0aGUgV2ViR0wKKy8vIGZ1bmN0aW9ucy4KKy8vCisvLyBBcmdHZW5lcmF0b3JzIGlzIGFuIG9i
amVjdCBjb25zaXN0aW5nIG9mIGZ1bmN0aW9uTmFtZSA6IGFyZ0dlbiAtcHJvcGVydGllcy4KKy8v
CisvLyBmdW5jdGlvbk5hbWUgaXMgYSBXZWJHTCBjb250ZXh0IGZ1bmN0aW9uIG5hbWUgYW5kIHRo
ZSBhcmdHZW4gaXMgYW4gYXJndW1lbnQKKy8vIGdlbmVyYXRvciBvYmplY3QgdGhhdCBlbmNhcHN1
bGF0ZXMgdGhlIHJlcXVpcmVtZW50cyB0byBydW4KKy8vIHJhbmRvbWx5IGdlbmVyYXRlZCB0ZXN0
cyBvbiB0aGUgV2ViR0wgZnVuY3Rpb24uCisvLworLy8gQW4gYXJnR2VuIG9iamVjdCBoYXMgdGhl
IGZvbGxvd2luZyBtZXRob2RzOgorLy8gICAtIHNldHVwICAgIC0tIHNldCB1cCBzdGF0ZSBmb3Ig
dGVzdGluZyB0aGUgR0wgZnVuY3Rpb24sIHJldHVybnMgdmFsdWVzCisvLyAgICAgICAgICAgICAg
ICAgdGhhdCBuZWVkIGNsZWFudXAgaW4gdGVhcmRvd24uIFJ1biBvbmNlIGJlZm9yZSBlbnRlcmlu
ZyBhCisvLyAgICAgICAgICAgICAgICAgdGVzdCBsb29wLgorLy8gICAtIHRlYXJkb3duIC0tIGRv
IGNsZWFudXAgb24gc2V0dXAncyByZXR1cm4gdmFsdWVzIGFmdGVyIHRlc3RpbmcgaXMgY29tcGxl
dGUKKy8vICAgLSBnZW5lcmF0ZSAtLSBnZW5lcmF0ZSBhIHZhbGlkIHNldCBvZiByYW5kb20gYXJn
dW1lbnRzIGZvciB0aGUgR0wgZnVuY3Rpb24KKy8vICAgLSByZXR1cm5WYWx1ZUNsZWFudXAgLS0g
ZG8gY2xlYW51cCBvbiB2YWx1ZSByZXR1cm5lZCBieSB0aGUgdGVzdGVkIEdMIGZ1bmN0aW9uCisv
LyAgIC0gY2xlYW51cCAgLS0gZG8gY2xlYW51cCBvbiBnZW5lcmF0ZWQgYXJndW1lbnRzIGZyb20g
Z2VuZXJhdGUKKy8vICAgLSBjaGVja0FyZ1ZhbGlkaXR5IC0tIGNoZWNrIGlmIHBhc3NlZCBhcmdz
IGFyZSB2YWxpZC4gSGFzIGEgY2FsbCBzaWduYXR1cmUKKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoYXQgbWF0Y2hlcyBnZW5lcmF0ZSdzIHJldHVybiB2YWx1ZS4gUmV0dXJucyB0cnVlCisv
LyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmdzIGFyZSB2YWxpZCwgZmFsc2UgaWYgbm90
LgorLy8KKy8vICAgRXhhbXBsZSB0ZXN0IGxvb3AgdGhhdCBkZW1vbnN0cmF0ZXMgaG93IHRoZSBm
dW5jdGlvbiBhcmdzIGFuZCByZXR1cm4KKy8vICAgdmFsdWVzIGZsb3cgdG9nZXRoZXI6CisvLwor
Ly8gICB2YXIgc2V0dXBBcmdzID0gYXJnR2VuLnNldHVwKCk7CisvLyAgIGZvciAodmFyIGk9MDsg
aTxudW1iZXJPZlRlc3RzOyBpKyspIHsKKy8vICAgICB2YXIgZ2VuZXJhdGVkQXJncyA9IGFyZ0dl
bi5nZW5lcmF0ZS5hcHBseShhcmdHZW4sIHNldHVwQXJncyk7CisvLyAgICAgdmFyIHZhbGlkQXJn
cyA9IGFyZ0dlbi5jaGVja0FyZ1ZhbGlkaXR5LmFwcGx5KGFyZ0dlbiwgZ2VuZXJhdGVkQXJncyk7
CisvLyAgICAgdmFyIHJ2ID0gY2FsbCB0aGUgR0wgZnVuY3Rpb24gd2l0aCBnZW5lcmF0ZWRBcmdz
OworLy8gICAgIGFyZ0dlbi5yZXR1cm5WYWx1ZUNsZWFudXAocnYpOworLy8gICAgIGFyZ0dlbi5j
bGVhbnVwLmFwcGx5KGFyZ0dlbiwgZ2VuZXJhdGVkQXJncyk7CisvLyAgIH0KKy8vICAgYXJnR2Vu
LnRlYXJkb3duLmFwcGx5KGFyZ0dlbiwgc2V0dXBBcmdzKTsKKy8vCitBcmdHZW5lcmF0b3JzID0g
eworCisvLyBHTCBmdW5jdGlvbnMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyCisKKy8vIEItMworCisg
IGJ1ZmZlckRhdGEgOiB7CisgICAgc2V0dXAgOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBidWYg
PSBHTC5jcmVhdGVCdWZmZXIoKTsKKyAgICAgIHZhciBlYnVmID0gR0wuY3JlYXRlQnVmZmVyKCk7
CisgICAgICBHTC5iaW5kQnVmZmVyKEdMLkFSUkFZX0JVRkZFUiwgYnVmKTsKKyAgICAgIEdMLmJp
bmRCdWZmZXIoR0wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGVidWYpOworICAgICAgcmV0dXJuIFti
dWYsIGVidWZdOworICAgIH0sCisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbihidWYsIGVidWYpIHsK
KyAgICAgIHJldHVybiBbYnVmZmVyVGFyZ2V0LnJhbmRvbSgpLCByYW5kb21CdWZmZXJEYXRhKCks
IGJ1ZmZlck1vZGUucmFuZG9tKCldOworICAgIH0sCisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1
bmN0aW9uKHRhcmdldCwgYnVmRGF0YSwgbW9kZSkgeworICAgICAgcmV0dXJuIGJ1ZmZlclRhcmdl
dC5oYXModGFyZ2V0KSAmJiBpc0J1ZmZlckRhdGEoYnVmRGF0YSkgJiYgYnVmZmVyTW9kZS5oYXMo
bW9kZSk7CisgICAgfSwKKyAgICB0ZWFyZG93biA6IGZ1bmN0aW9uKGJ1ZiwgZWJ1ZikgeworICAg
ICAgR0wuZGVsZXRlQnVmZmVyKGJ1Zik7CisgICAgICBHTC5kZWxldGVCdWZmZXIoZWJ1Zik7Cisg
ICAgfSwKKyAgfQorCit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0
b3JzLUI0LmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLUI0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY4ODFjMzIxNDhmNjlkYzY2YmI5MjkwOWY5NWU0ZmRkNmQ1ZDIyNDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVyYXRvcnMtQjQuanMKQEAgLTAsMCArMSw4
OCBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisq
KgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
CisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCisvLyBBcmdHZW5lcmF0b3JzIGNvbnRhaW5z
IGFyZ3VtZW50IGdlbmVyYXRvcnMgZm9yIFdlYkdMIGZ1bmN0aW9ucy4KKy8vIFRoZSBhcmd1bWVu
dCBnZW5lcmF0b3JzIGFyZSB1c2VkIGZvciBydW5uaW5nIHJhbmRvbSB0ZXN0cyBhZ2FpbnN0IHRo
ZSBXZWJHTAorLy8gZnVuY3Rpb25zLgorLy8KKy8vIEFyZ0dlbmVyYXRvcnMgaXMgYW4gb2JqZWN0
IGNvbnNpc3Rpbmcgb2YgZnVuY3Rpb25OYW1lIDogYXJnR2VuIC1wcm9wZXJ0aWVzLgorLy8KKy8v
IGZ1bmN0aW9uTmFtZSBpcyBhIFdlYkdMIGNvbnRleHQgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIGFy
Z0dlbiBpcyBhbiBhcmd1bWVudAorLy8gZ2VuZXJhdG9yIG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRl
cyB0aGUgcmVxdWlyZW1lbnRzIHRvIHJ1bgorLy8gcmFuZG9tbHkgZ2VuZXJhdGVkIHRlc3RzIG9u
IHRoZSBXZWJHTCBmdW5jdGlvbi4KKy8vCisvLyBBbiBhcmdHZW4gb2JqZWN0IGhhcyB0aGUgZm9s
bG93aW5nIG1ldGhvZHM6CisvLyAgIC0gc2V0dXAgICAgLS0gc2V0IHVwIHN0YXRlIGZvciB0ZXN0
aW5nIHRoZSBHTCBmdW5jdGlvbiwgcmV0dXJucyB2YWx1ZXMKKy8vICAgICAgICAgICAgICAgICB0
aGF0IG5lZWQgY2xlYW51cCBpbiB0ZWFyZG93bi4gUnVuIG9uY2UgYmVmb3JlIGVudGVyaW5nIGEK
Ky8vICAgICAgICAgICAgICAgICB0ZXN0IGxvb3AuCisvLyAgIC0gdGVhcmRvd24gLS0gZG8gY2xl
YW51cCBvbiBzZXR1cCdzIHJldHVybiB2YWx1ZXMgYWZ0ZXIgdGVzdGluZyBpcyBjb21wbGV0ZQor
Ly8gICAtIGdlbmVyYXRlIC0tIGdlbmVyYXRlIGEgdmFsaWQgc2V0IG9mIHJhbmRvbSBhcmd1bWVu
dHMgZm9yIHRoZSBHTCBmdW5jdGlvbgorLy8gICAtIHJldHVyblZhbHVlQ2xlYW51cCAtLSBkbyBj
bGVhbnVwIG9uIHZhbHVlIHJldHVybmVkIGJ5IHRoZSB0ZXN0ZWQgR0wgZnVuY3Rpb24KKy8vICAg
LSBjbGVhbnVwICAtLSBkbyBjbGVhbnVwIG9uIGdlbmVyYXRlZCBhcmd1bWVudHMgZnJvbSBnZW5l
cmF0ZQorLy8gICAtIGNoZWNrQXJnVmFsaWRpdHkgLS0gY2hlY2sgaWYgcGFzc2VkIGFyZ3MgYXJl
IHZhbGlkLiBIYXMgYSBjYWxsIHNpZ25hdHVyZQorLy8gICAgICAgICAgICAgICAgICAgICAgICAg
dGhhdCBtYXRjaGVzIGdlbmVyYXRlJ3MgcmV0dXJuIHZhbHVlLiBSZXR1cm5zIHRydWUKKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIGFyZ3MgYXJlIHZhbGlkLCBmYWxzZSBpZiBub3QuCisv
LworLy8gICBFeGFtcGxlIHRlc3QgbG9vcCB0aGF0IGRlbW9uc3RyYXRlcyBob3cgdGhlIGZ1bmN0
aW9uIGFyZ3MgYW5kIHJldHVybgorLy8gICB2YWx1ZXMgZmxvdyB0b2dldGhlcjoKKy8vCisvLyAg
IHZhciBzZXR1cEFyZ3MgPSBhcmdHZW4uc2V0dXAoKTsKKy8vICAgZm9yICh2YXIgaT0wOyBpPG51
bWJlck9mVGVzdHM7IGkrKykgeworLy8gICAgIHZhciBnZW5lcmF0ZWRBcmdzID0gYXJnR2VuLmdl
bmVyYXRlLmFwcGx5KGFyZ0dlbiwgc2V0dXBBcmdzKTsKKy8vICAgICB2YXIgdmFsaWRBcmdzID0g
YXJnR2VuLmNoZWNrQXJnVmFsaWRpdHkuYXBwbHkoYXJnR2VuLCBnZW5lcmF0ZWRBcmdzKTsKKy8v
ICAgICB2YXIgcnYgPSBjYWxsIHRoZSBHTCBmdW5jdGlvbiB3aXRoIGdlbmVyYXRlZEFyZ3M7Cisv
LyAgICAgYXJnR2VuLnJldHVyblZhbHVlQ2xlYW51cChydik7CisvLyAgICAgYXJnR2VuLmNsZWFu
dXAuYXBwbHkoYXJnR2VuLCBnZW5lcmF0ZWRBcmdzKTsKKy8vICAgfQorLy8gICBhcmdHZW4udGVh
cmRvd24uYXBwbHkoYXJnR2VuLCBzZXR1cEFyZ3MpOworLy8KK0FyZ0dlbmVyYXRvcnMgPSB7CisK
Ky8vIEdMIGZ1bmN0aW9ucyBpbiBhbHBoYWJldGljYWwgb3JkZXIKKworLy8gQi00CisKKyAgYnVm
ZmVyU3ViRGF0YSA6IHsKKyAgICBzZXR1cCA6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGJ1ZiA9
IEdMLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgdmFyIGVidWYgPSBHTC5jcmVhdGVCdWZmZXIoKTsK
KyAgICAgIEdMLmJpbmRCdWZmZXIoR0wuQVJSQVlfQlVGRkVSLCBidWYpOworICAgICAgR0wuYnVm
ZmVyRGF0YShHTC5BUlJBWV9CVUZGRVIsIDI1NiwgR0wuU1RBVElDX0RSQVcpOworICAgICAgR0wu
YmluZEJ1ZmZlcihHTC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgZWJ1Zik7CisgICAgICBHTC5idWZm
ZXJEYXRhKEdMLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCAyNTYsIEdMLlNUQVRJQ19EUkFXKTsKKyAg
ICAgIHJldHVybiBbYnVmLCBlYnVmXTsKKyAgICB9LAorICAgIGdlbmVyYXRlIDogZnVuY3Rpb24o
YnVmLCBlYnVmKSB7CisgICAgICB2YXIgZCA9IHJhbmRvbUJ1ZmZlclN1YkRhdGEoMjU2KTsKKyAg
ICAgIHJldHVybiBbYnVmZmVyVGFyZ2V0LnJhbmRvbSgpLCBkLm9mZnNldCwgZC5kYXRhXTsKKyAg
ICB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbih0YXJnZXQsIG9mZnNldCwgZGF0
YSkgeworICAgICAgcmV0dXJuIGJ1ZmZlclRhcmdldC5oYXModGFyZ2V0KSAmJiBvZmZzZXQgPj0g
MCAmJiBkYXRhLmJ5dGVMZW5ndGggPj0gMCAmJiBvZmZzZXQgKyBkYXRhLmJ5dGVMZW5ndGggPD0g
MjU2OworICAgIH0sCisgICAgdGVhcmRvd24gOiBmdW5jdGlvbihidWYsIGVidWYpIHsKKyAgICAg
IEdMLmRlbGV0ZUJ1ZmZlcihidWYpOworICAgICAgR0wuZGVsZXRlQnVmZmVyKGVidWYpOworICAg
IH0sCisgIH0KKworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9y
cy1DLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLUMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTc0ZmY3NDU1MzJiNDFlMzdiOTVkOGU4ZDE3MWU2MjM3NDI4ZTFmMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1DLmpzCkBAIC0wLDAgKzEsMTM2IEBA
CisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisq
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGlu
IHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl
IE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlh
bHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFM
UyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoq
IEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy8vIEFyZ0dlbmVyYXRvcnMgY29udGFpbnMgYXJn
dW1lbnQgZ2VuZXJhdG9ycyBmb3IgV2ViR0wgZnVuY3Rpb25zLgorLy8gVGhlIGFyZ3VtZW50IGdl
bmVyYXRvcnMgYXJlIHVzZWQgZm9yIHJ1bm5pbmcgcmFuZG9tIHRlc3RzIGFnYWluc3QgdGhlIFdl
YkdMCisvLyBmdW5jdGlvbnMuCisvLworLy8gQXJnR2VuZXJhdG9ycyBpcyBhbiBvYmplY3QgY29u
c2lzdGluZyBvZiBmdW5jdGlvbk5hbWUgOiBhcmdHZW4gLXByb3BlcnRpZXMuCisvLworLy8gZnVu
Y3Rpb25OYW1lIGlzIGEgV2ViR0wgY29udGV4dCBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgYXJnR2Vu
IGlzIGFuIGFyZ3VtZW50CisvLyBnZW5lcmF0b3Igb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIHRo
ZSByZXF1aXJlbWVudHMgdG8gcnVuCisvLyByYW5kb21seSBnZW5lcmF0ZWQgdGVzdHMgb24gdGhl
IFdlYkdMIGZ1bmN0aW9uLgorLy8KKy8vIEFuIGFyZ0dlbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dp
bmcgbWV0aG9kczoKKy8vICAgLSBzZXR1cCAgICAtLSBzZXQgdXAgc3RhdGUgZm9yIHRlc3Rpbmcg
dGhlIEdMIGZ1bmN0aW9uLCByZXR1cm5zIHZhbHVlcworLy8gICAgICAgICAgICAgICAgIHRoYXQg
bmVlZCBjbGVhbnVwIGluIHRlYXJkb3duLiBSdW4gb25jZSBiZWZvcmUgZW50ZXJpbmcgYQorLy8g
ICAgICAgICAgICAgICAgIHRlc3QgbG9vcC4KKy8vICAgLSB0ZWFyZG93biAtLSBkbyBjbGVhbnVw
IG9uIHNldHVwJ3MgcmV0dXJuIHZhbHVlcyBhZnRlciB0ZXN0aW5nIGlzIGNvbXBsZXRlCisvLyAg
IC0gZ2VuZXJhdGUgLS0gZ2VuZXJhdGUgYSB2YWxpZCBzZXQgb2YgcmFuZG9tIGFyZ3VtZW50cyBm
b3IgdGhlIEdMIGZ1bmN0aW9uCisvLyAgIC0gcmV0dXJuVmFsdWVDbGVhbnVwIC0tIGRvIGNsZWFu
dXAgb24gdmFsdWUgcmV0dXJuZWQgYnkgdGhlIHRlc3RlZCBHTCBmdW5jdGlvbgorLy8gICAtIGNs
ZWFudXAgIC0tIGRvIGNsZWFudXAgb24gZ2VuZXJhdGVkIGFyZ3VtZW50cyBmcm9tIGdlbmVyYXRl
CisvLyAgIC0gY2hlY2tBcmdWYWxpZGl0eSAtLSBjaGVjayBpZiBwYXNzZWQgYXJncyBhcmUgdmFs
aWQuIEhhcyBhIGNhbGwgc2lnbmF0dXJlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0
IG1hdGNoZXMgZ2VuZXJhdGUncyByZXR1cm4gdmFsdWUuIFJldHVybnMgdHJ1ZQorLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgYXJncyBhcmUgdmFsaWQsIGZhbHNlIGlmIG5vdC4KKy8vCisv
LyAgIEV4YW1wbGUgdGVzdCBsb29wIHRoYXQgZGVtb25zdHJhdGVzIGhvdyB0aGUgZnVuY3Rpb24g
YXJncyBhbmQgcmV0dXJuCisvLyAgIHZhbHVlcyBmbG93IHRvZ2V0aGVyOgorLy8KKy8vICAgdmFy
IHNldHVwQXJncyA9IGFyZ0dlbi5zZXR1cCgpOworLy8gICBmb3IgKHZhciBpPTA7IGk8bnVtYmVy
T2ZUZXN0czsgaSsrKSB7CisvLyAgICAgdmFyIGdlbmVyYXRlZEFyZ3MgPSBhcmdHZW4uZ2VuZXJh
dGUuYXBwbHkoYXJnR2VuLCBzZXR1cEFyZ3MpOworLy8gICAgIHZhciB2YWxpZEFyZ3MgPSBhcmdH
ZW4uY2hlY2tBcmdWYWxpZGl0eS5hcHBseShhcmdHZW4sIGdlbmVyYXRlZEFyZ3MpOworLy8gICAg
IHZhciBydiA9IGNhbGwgdGhlIEdMIGZ1bmN0aW9uIHdpdGggZ2VuZXJhdGVkQXJnczsKKy8vICAg
ICBhcmdHZW4ucmV0dXJuVmFsdWVDbGVhbnVwKHJ2KTsKKy8vICAgICBhcmdHZW4uY2xlYW51cC5h
cHBseShhcmdHZW4sIGdlbmVyYXRlZEFyZ3MpOworLy8gICB9CisvLyAgIGFyZ0dlbi50ZWFyZG93
bi5hcHBseShhcmdHZW4sIHNldHVwQXJncyk7CisvLworQXJnR2VuZXJhdG9ycyA9IHsKKworLy8g
R0wgZnVuY3Rpb25zIGluIGFscGhhYmV0aWNhbCBvcmRlcgorCisvLyBDCisKKyAgY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0
dXJuIFtNYXRoLnJhbmRvbSgpID4gMC41ID8gbnVsbCA6IEdMLmNyZWF0ZUZyYW1lYnVmZmVyKCld
OworICAgIH0sCisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKGZibykgeworICAgICAg
aWYgKGZibyAhPSBudWxsKQorICAgICAgICBHTC5iaW5kRnJhbWVidWZmZXIoR0wuRlJBTUVCVUZG
RVIsIGZibyk7CisgICAgICByZXR1cm4gZmJvID09IG51bGwgfHwgR0wuaXNGcmFtZWJ1ZmZlcihm
Ym8pOworICAgIH0sCisgICAgY2xlYW51cCA6IGZ1bmN0aW9uKGZibyl7CisgICAgICBHTC5iaW5k
RnJhbWVidWZmZXIoR0wuRlJBTUVCVUZGRVIsIG51bGwpOworICAgICAgaWYgKGZibyAhPSBudWxs
KQorICAgICAgICB0cnl7IEdMLmRlbGV0ZUZyYW1lYnVmZmVyKGZibyk7IH0gY2F0Y2goZSkge30K
KyAgICB9CisgIH0sCisgIGNsZWFyIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJl
dHVybiBbY2xlYXJNYXNrLnJhbmRvbSgpXTsgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVu
Y3Rpb24obWFzaykgeyByZXR1cm4gY2xlYXJNYXNrLmhhcyhtYXNrKTsgfQorICB9LAorICBjbGVh
ckNvbG9yIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiByYW5kb21Db2xv
cigpOyB9LAorICAgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7IEdMLmNsZWFyQ29sb3IoMCwwLDAs
MCk7IH0KKyAgfSwKKyAgY2xlYXJEZXB0aCA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gW01hdGgucmFuZG9tKCldOyB9LAorICAgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7
IEdMLmNsZWFyRGVwdGgoMSk7IH0KKyAgfSwKKyAgY2xlYXJTdGVuY2lsIDogeworICAgIGdlbmVy
YXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbcmFuZG9tU3RlbmNpbCgpXTsgfSwKKyAgICB0ZWFy
ZG93biA6IGZ1bmN0aW9uKCkgeyBHTC5jbGVhclN0ZW5jaWwoMCk7IH0KKyAgfSwKKyAgY29sb3JN
YXNrIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gW3JhbmRv
bUJvb2woKSwgcmFuZG9tQm9vbCgpLCByYW5kb21Cb29sKCksIHJhbmRvbUJvb2woKV07CisgICAg
fSwKKyAgICB0ZWFyZG93biA6IGZ1bmN0aW9uKCkgeyBHTC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwg
dHJ1ZSwgdHJ1ZSk7IH0KKyAgfSwKKyAgY29tcGlsZVNoYWRlciA6IHt9LCAvLyBGSVhNRQorICBj
b3B5VGV4SW1hZ2UyRCA6IHt9LCAvLyBGSVhNRQorICBjb3B5VGV4U3ViSW1hZ2UyRCA6IHt9LCAv
LyBGSVhNRQorICBjcmVhdGVCdWZmZXIgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsg
cmV0dXJuIFtdOyB9LAorICAgIHJldHVyblZhbHVlQ2xlYW51cCA6IGZ1bmN0aW9uKG8pIHsgR0wu
ZGVsZXRlQnVmZmVyKG8pOyB9CisgIH0sCisgIGNyZWF0ZUZyYW1lYnVmZmVyIDogeworICAgIGdl
bmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbXTsgfSwKKyAgICByZXR1cm5WYWx1ZUNsZWFu
dXAgOiBmdW5jdGlvbihvKSB7IEdMLmRlbGV0ZUZyYW1lYnVmZmVyKG8pOyB9CisgIH0sCisgIGNy
ZWF0ZVByb2dyYW0gOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtdOyB9
LAorICAgIHJldHVyblZhbHVlQ2xlYW51cCA6IGZ1bmN0aW9uKG8pIHsgR0wuZGVsZXRlUHJvZ3Jh
bShvKTsgfQorICB9LAorICBjcmVhdGVSZW5kZXJidWZmZXIgOiB7CisgICAgZ2VuZXJhdGUgOiBm
dW5jdGlvbigpIHsgcmV0dXJuIFtdOyB9LAorICAgIHJldHVyblZhbHVlQ2xlYW51cCA6IGZ1bmN0
aW9uKG8pIHsgR0wuZGVsZXRlUmVuZGVyYnVmZmVyKG8pOyB9CisgIH0sCisgIGNyZWF0ZVNoYWRl
ciA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW3NoYWRlclR5cGUucmFu
ZG9tKCldOyB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbih0KSB7IHJldHVybiBz
aGFkZXJUeXBlLmhhcyh0KTsgfSwKKyAgICByZXR1cm5WYWx1ZUNsZWFudXAgOiBmdW5jdGlvbihv
KSB7IEdMLmRlbGV0ZVNoYWRlcihvKTsgfQorICB9LAorICBjcmVhdGVUZXh0dXJlIDogeworICAg
IGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbXTsgfSwKKyAgICByZXR1cm5WYWx1ZUNs
ZWFudXAgOiBmdW5jdGlvbihvKSB7IEdMLmRlbGV0ZVRleHR1cmUobyk7IH0KKyAgfSwKKyAgY3Vs
bEZhY2UgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtjdWxsRmFjZS5y
YW5kb20oKV07IH0sCisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKGYpIHsgcmV0dXJu
IGN1bGxGYWNlLmhhcyhmKTsgfSwKKyAgICB0ZWFyZG93biA6IGZ1bmN0aW9uKCkgeyBHTC5jdWxs
RmFjZShHTC5CQUNLKTsgfQorICB9CisKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNl
L2FyZ0dlbmVyYXRvcnMtRF9HLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLURf
Ry5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZDIxODUxOWRmZjIzY2VkOTFkNTQwODZkOWEzMjY5MjMzNjZlNmI4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9hcmdHZW5lcmF0b3JzLURfRy5q
cwpAQCAtMCwwICsxLDI1MiBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
KyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgor
KioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCisvLyBBcmdHZW5l
cmF0b3JzIGNvbnRhaW5zIGFyZ3VtZW50IGdlbmVyYXRvcnMgZm9yIFdlYkdMIGZ1bmN0aW9ucy4K
Ky8vIFRoZSBhcmd1bWVudCBnZW5lcmF0b3JzIGFyZSB1c2VkIGZvciBydW5uaW5nIHJhbmRvbSB0
ZXN0cyBhZ2FpbnN0IHRoZSBXZWJHTAorLy8gZnVuY3Rpb25zLgorLy8KKy8vIEFyZ0dlbmVyYXRv
cnMgaXMgYW4gb2JqZWN0IGNvbnNpc3Rpbmcgb2YgZnVuY3Rpb25OYW1lIDogYXJnR2VuIC1wcm9w
ZXJ0aWVzLgorLy8KKy8vIGZ1bmN0aW9uTmFtZSBpcyBhIFdlYkdMIGNvbnRleHQgZnVuY3Rpb24g
bmFtZSBhbmQgdGhlIGFyZ0dlbiBpcyBhbiBhcmd1bWVudAorLy8gZ2VuZXJhdG9yIG9iamVjdCB0
aGF0IGVuY2Fwc3VsYXRlcyB0aGUgcmVxdWlyZW1lbnRzIHRvIHJ1bgorLy8gcmFuZG9tbHkgZ2Vu
ZXJhdGVkIHRlc3RzIG9uIHRoZSBXZWJHTCBmdW5jdGlvbi4KKy8vCisvLyBBbiBhcmdHZW4gb2Jq
ZWN0IGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CisvLyAgIC0gc2V0dXAgICAgLS0gc2V0IHVw
IHN0YXRlIGZvciB0ZXN0aW5nIHRoZSBHTCBmdW5jdGlvbiwgcmV0dXJucyB2YWx1ZXMKKy8vICAg
ICAgICAgICAgICAgICB0aGF0IG5lZWQgY2xlYW51cCBpbiB0ZWFyZG93bi4gUnVuIG9uY2UgYmVm
b3JlIGVudGVyaW5nIGEKKy8vICAgICAgICAgICAgICAgICB0ZXN0IGxvb3AuCisvLyAgIC0gdGVh
cmRvd24gLS0gZG8gY2xlYW51cCBvbiBzZXR1cCdzIHJldHVybiB2YWx1ZXMgYWZ0ZXIgdGVzdGlu
ZyBpcyBjb21wbGV0ZQorLy8gICAtIGdlbmVyYXRlIC0tIGdlbmVyYXRlIGEgdmFsaWQgc2V0IG9m
IHJhbmRvbSBhcmd1bWVudHMgZm9yIHRoZSBHTCBmdW5jdGlvbgorLy8gICAtIHJldHVyblZhbHVl
Q2xlYW51cCAtLSBkbyBjbGVhbnVwIG9uIHZhbHVlIHJldHVybmVkIGJ5IHRoZSB0ZXN0ZWQgR0wg
ZnVuY3Rpb24KKy8vICAgLSBjbGVhbnVwICAtLSBkbyBjbGVhbnVwIG9uIGdlbmVyYXRlZCBhcmd1
bWVudHMgZnJvbSBnZW5lcmF0ZQorLy8gICAtIGNoZWNrQXJnVmFsaWRpdHkgLS0gY2hlY2sgaWYg
cGFzc2VkIGFyZ3MgYXJlIHZhbGlkLiBIYXMgYSBjYWxsIHNpZ25hdHVyZQorLy8gICAgICAgICAg
ICAgICAgICAgICAgICAgdGhhdCBtYXRjaGVzIGdlbmVyYXRlJ3MgcmV0dXJuIHZhbHVlLiBSZXR1
cm5zIHRydWUKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFyZ3MgYXJlIHZhbGlkLCBm
YWxzZSBpZiBub3QuCisvLworLy8gICBFeGFtcGxlIHRlc3QgbG9vcCB0aGF0IGRlbW9uc3RyYXRl
cyBob3cgdGhlIGZ1bmN0aW9uIGFyZ3MgYW5kIHJldHVybgorLy8gICB2YWx1ZXMgZmxvdyB0b2dl
dGhlcjoKKy8vCisvLyAgIHZhciBzZXR1cEFyZ3MgPSBhcmdHZW4uc2V0dXAoKTsKKy8vICAgZm9y
ICh2YXIgaT0wOyBpPG51bWJlck9mVGVzdHM7IGkrKykgeworLy8gICAgIHZhciBnZW5lcmF0ZWRB
cmdzID0gYXJnR2VuLmdlbmVyYXRlLmFwcGx5KGFyZ0dlbiwgc2V0dXBBcmdzKTsKKy8vICAgICB2
YXIgdmFsaWRBcmdzID0gYXJnR2VuLmNoZWNrQXJnVmFsaWRpdHkuYXBwbHkoYXJnR2VuLCBnZW5l
cmF0ZWRBcmdzKTsKKy8vICAgICB2YXIgcnYgPSBjYWxsIHRoZSBHTCBmdW5jdGlvbiB3aXRoIGdl
bmVyYXRlZEFyZ3M7CisvLyAgICAgYXJnR2VuLnJldHVyblZhbHVlQ2xlYW51cChydik7CisvLyAg
ICAgYXJnR2VuLmNsZWFudXAuYXBwbHkoYXJnR2VuLCBnZW5lcmF0ZWRBcmdzKTsKKy8vICAgfQor
Ly8gICBhcmdHZW4udGVhcmRvd24uYXBwbHkoYXJnR2VuLCBzZXR1cEFyZ3MpOworLy8KK0FyZ0dl
bmVyYXRvcnMgPSB7CisKKy8vIEdMIGZ1bmN0aW9ucyBpbiBhbHBoYWJldGljYWwgb3JkZXIKKwor
Ly8gRAorCisgIGRlbGV0ZUJ1ZmZlciA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gW0dMLmNyZWF0ZUJ1ZmZlcigpXTsgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVu
Y3Rpb24obykgeworICAgICAgR0wuYmluZEJ1ZmZlcihHTC5BUlJBWV9CVUZGRVIsIG8pOworICAg
ICAgcmV0dXJuIEdMLmlzQnVmZmVyKG8pOworICAgIH0sCisgICAgY2xlYW51cCA6IGZ1bmN0aW9u
KG8pIHsKKyAgICAgIEdMLmJpbmRCdWZmZXIoR0wuQVJSQVlfQlVGRkVSLCBudWxsKTsKKyAgICAg
IHRyeSB7IEdMLmRlbGV0ZUJ1ZmZlcihvKTsgfSBjYXRjaChlKSB7fQorICAgIH0KKyAgfSwKKyAg
ZGVsZXRlRnJhbWVidWZmZXIgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJu
IFtHTC5jcmVhdGVGcmFtZWJ1ZmZlcigpXTsgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVu
Y3Rpb24obykgeworICAgICAgR0wuYmluZEZyYW1lYnVmZmVyKEdMLkZSQU1FQlVGRkVSLCBvKTsK
KyAgICAgIHJldHVybiBHTC5pc0ZyYW1lYnVmZmVyKG8pOworICAgIH0sCisgICAgY2xlYW51cCA6
IGZ1bmN0aW9uKG8pIHsKKyAgICAgIEdMLmJpbmRGcmFtZWJ1ZmZlcihHTC5GUkFNRUJVRkZFUiwg
bnVsbCk7CisgICAgICB0cnkgeyBHTC5kZWxldGVGcmFtZWJ1ZmZlcihvKTsgfSBjYXRjaChlKSB7
fQorICAgIH0KKyAgfSwKKyAgZGVsZXRlUHJvZ3JhbSA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0
aW9uKCkgeyByZXR1cm4gW0dMLmNyZWF0ZVByb2dyYW0oKV07IH0sCisgICAgY2hlY2tBcmdWYWxp
ZGl0eSA6IGZ1bmN0aW9uKG8pIHsgcmV0dXJuIEdMLmlzUHJvZ3JhbShvKTsgfSwKKyAgICBjbGVh
bnVwIDogZnVuY3Rpb24obykgeyB0cnkgeyBHTC5kZWxldGVQcm9ncmFtKG8pOyB9IGNhdGNoKGUp
IHt9IH0KKyAgfSwKKyAgZGVsZXRlUmVuZGVyYnVmZmVyIDogeworICAgIGdlbmVyYXRlIDogZnVu
Y3Rpb24oKSB7IHJldHVybiBbR0wuY3JlYXRlUmVuZGVyYnVmZmVyKCldOyB9LAorICAgIGNoZWNr
QXJnVmFsaWRpdHkgOiBmdW5jdGlvbihvKSB7CisgICAgICBHTC5iaW5kUmVuZGVyYnVmZmVyKEdM
LlJFTkRFUkJVRkZFUiwgbyk7CisgICAgICByZXR1cm4gR0wuaXNSZW5kZXJidWZmZXIobyk7Cisg
ICAgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24obykgeworICAgICAgR0wuYmluZFJlbmRlcmJ1
ZmZlcihHTC5SRU5ERVJCVUZGRVIsIG51bGwpOworICAgICAgdHJ5IHsgR0wuZGVsZXRlUmVuZGVy
YnVmZmVyKG8pOyB9IGNhdGNoKGUpIHt9CisgICAgfQorICB9LAorICBkZWxldGVTaGFkZXIgOiB7
CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtHTC5jcmVhdGVTaGFkZXIoc2hh
ZGVyVHlwZS5yYW5kb20oKSldOyB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihv
KSB7IHJldHVybiBHTC5pc1NoYWRlcihvKTsgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24obykg
eyB0cnkgeyBHTC5kZWxldGVTaGFkZXIobyk7IH0gY2F0Y2goZSkge30gfQorICB9LAorICBkZWxl
dGVUZXh0dXJlIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbR0wuY3Jl
YXRlVGV4dHVyZSgpXTsgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24obykgewor
ICAgICAgR0wuYmluZFRleHR1cmUoR0wuVEVYVFVSRV8yRCwgbyk7CisgICAgICByZXR1cm4gR0wu
aXNUZXh0dXJlKG8pOworICAgIH0sCisgICAgY2xlYW51cCA6IGZ1bmN0aW9uKG8pIHsKKyAgICAg
IEdMLmJpbmRUZXh0dXJlKEdMLlRFWFRVUkVfMkQsIG51bGwpOworICAgICAgdHJ5IHsgR0wuZGVs
ZXRlVGV4dHVyZShvKTsgfSBjYXRjaChlKSB7fQorICAgIH0KKyAgfSwKKyAgZGVwdGhGdW5jIDog
eworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbZGVwdGhGdW5jRnVuYy5yYW5k
b20oKV07IH0sCisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKGYpIHsgcmV0dXJuIGRl
cHRoRnVuY0Z1bmMuaGFzKGYpOyB9LAorICAgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7IEdMLmRl
cHRoRnVuYyhHTC5MRVNTKTsgfQorICB9LAorICBkZXB0aE1hc2sgOiB7CisgICAgZ2VuZXJhdGUg
OiBmdW5jdGlvbigpIHsgcmV0dXJuIFtyYW5kb21Cb29sKCldOyB9LAorICAgIHRlYXJkb3duIDog
ZnVuY3Rpb24oKSB7IEdMLmRlcHRoRnVuYyhHTC5UUlVFKTsgfQorICB9LAorICBkZXB0aFJhbmdl
IDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbTWF0aC5yYW5kb20oKSwg
TWF0aC5yYW5kb20oKV07IH0sCisgICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsgR0wuZGVwdGhS
YW5nZSgwLCAxKTsgfQorICB9LAorICBkZXRhY2hTaGFkZXIgOiB7CisgICAgZ2VuZXJhdGUgOiBm
dW5jdGlvbigpIHsKKyAgICAgIHZhciBwID0gR0wuY3JlYXRlUHJvZ3JhbSgpOworICAgICAgdmFy
IHNoID0gR0wuY3JlYXRlU2hhZGVyKHNoYWRlclR5cGUucmFuZG9tKCkpOworICAgICAgR0wuYXR0
YWNoU2hhZGVyKHAsIHNoKTsKKyAgICAgIHJldHVybiBbcCwgc2hdOworICAgIH0sCisgICAgY2hl
Y2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKHAsIHNoKSB7CisgICAgICByZXR1cm4gR0wuaXNQcm9n
cmFtKHApICYmIEdMLmlzU2hhZGVyKHNoKSAmJiBHTC5nZXRBdHRhY2hlZFNoYWRlcnMocCkuaGFz
KHNoKTsKKyAgICB9LAorICAgIGNsZWFudXAgOiBmdW5jdGlvbihwLCBzaCkgeworICAgICAgdHJ5
IHtHTC5kZWxldGVQcm9ncmFtKHApO30gY2F0Y2goZSkge30KKyAgICAgIHRyeSB7R0wuZGVsZXRl
U2hhZGVyKHNoKTt9IGNhdGNoKGUpIHt9CisgICAgfQorICB9LAorICBkaXNhYmxlIDogeworICAg
IGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbZW5hYmxlQ2FwLnJhbmRvbSgpXTsgfSwK
KyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24oYykgeyByZXR1cm4gZW5hYmxlQ2FwLmhh
cyhjKTsgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24oYykgeyBpZiAoYyA9PSBHTC5ESVRIRVIp
IEdMLmVuYWJsZShjKTsgfQorICB9LAorICBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkgOiB7Cisg
ICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtyYW5kb21WZXJ0ZXhBdHRyaWJ1dGUo
KV07IH0sCisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKHYpIHsgcmV0dXJuIGlzVmVy
dGV4QXR0cmlidXRlKHYpOyB9CisgIH0sCisgIGRyYXdBcnJheXMgOiB7fSwgLy8gRklYTUUKKyAg
ZHJhd0VsZW1lbnRzIDoge30sIC8vIEZJWE1FCisKKy8vIEUKKworICBlbmFibGUgOiB7CisgICAg
Z2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtlbmFibGVDYXAucmFuZG9tKCldOyB9LAor
ICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihjKSB7IHJldHVybiBlbmFibGVDYXAuaGFz
KGMpOyB9LAorICAgIGNsZWFudXAgOiBmdW5jdGlvbihjKSB7IGlmIChjICE9IEdMLkRJVEhFUikg
R0wuZGlzYWJsZShjKTsgfQorICB9LAorICBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSA6IHsKKyAg
ICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW3JhbmRvbVZlcnRleEF0dHJpYnV0ZSgp
XTsgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24odikgeyByZXR1cm4gaXNWZXJ0
ZXhBdHRyaWJ1dGUoY2FzdFRvSW50KHYpKTsgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24odikg
eyBHTC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkodik7IH0KKyAgfSwKKworLy8gRgorCisgIGZp
bmlzaCA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW107IH0KKyAgfSwK
KyAgZmx1c2ggOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtdOyB9Cisg
IH0sCisgIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyIDoge30sIC8vIEZJWE1FCisgIGZyYW1lYnVm
ZmVyVGV4dHVyZTJEIDoge30sIC8vIEZJWE1FCisgIGZyb250RmFjZSA6IHsKKyAgICBnZW5lcmF0
ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW2Zyb250RmFjZU1vZGUucmFuZG9tKCldOyB9LAorICAg
IGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihjKSB7IHJldHVybiBmcm9udEZhY2VNb2RlLmhh
cyhjKTsgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24oYykgeyBHTC5mcm9udEZhY2UoR0wuQ0NX
KTsgfQorICB9LAorCisvLyBHLTEKKworICBnZW5lcmF0ZU1pcG1hcCA6IHsKKyAgICBzZXR1cCA6
IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHRleCA9IEdMLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAg
IHZhciB0ZXgyID0gR0wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgR0wuYmluZFRleHR1cmUoR0wu
VEVYVFVSRV8yRCwgdGV4KTsKKyAgICAgIEdMLmJpbmRUZXh0dXJlKEdMLlRFWFRVUkVfQ1VCRV9N
QVAsIHRleDIpOworICAgICAgdmFyIHBpeCA9IG5ldyBVaW50OEFycmF5KDE2KjE2KjQpOworICAg
ICAgR0wudGV4SW1hZ2UyRChHTC5URVhUVVJFXzJELCAwLCBHTC5SR0JBLCAxNiwgMTYsIDAsIEdM
LlJHQkEsIEdMLlVOU0lHTkVEX0JZVEUsIHBpeCk7CisgICAgICBHTC50ZXhJbWFnZTJEKEdMLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwgMCwgR0wuUkdCQSwgMTYsIDE2LCAwLCBHTC5SR0JB
LCBHTC5VTlNJR05FRF9CWVRFLCBwaXgpOworICAgICAgR0wudGV4SW1hZ2UyRChHTC5URVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1gsIDAsIEdMLlJHQkEsIDE2LCAxNiwgMCwgR0wuUkdCQSwgR0wu
VU5TSUdORURfQllURSwgcGl4KTsKKyAgICAgIEdMLnRleEltYWdlMkQoR0wuVEVYVFVSRV9DVUJF
X01BUF9QT1NJVElWRV9ZLCAwLCBHTC5SR0JBLCAxNiwgMTYsIDAsIEdMLlJHQkEsIEdMLlVOU0lH
TkVEX0JZVEUsIHBpeCk7CisgICAgICBHTC50ZXhJbWFnZTJEKEdMLlRFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWSwgMCwgR0wuUkdCQSwgMTYsIDE2LCAwLCBHTC5SR0JBLCBHTC5VTlNJR05FRF9C
WVRFLCBwaXgpOworICAgICAgR0wudGV4SW1hZ2UyRChHTC5URVhUVVJFX0NVQkVfTUFQX1BPU0lU
SVZFX1osIDAsIEdMLlJHQkEsIDE2LCAxNiwgMCwgR0wuUkdCQSwgR0wuVU5TSUdORURfQllURSwg
cGl4KTsKKyAgICAgIEdMLnRleEltYWdlMkQoR0wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9a
LCAwLCBHTC5SR0JBLCAxNiwgMTYsIDAsIEdMLlJHQkEsIEdMLlVOU0lHTkVEX0JZVEUsIHBpeCk7
CisgICAgfSwKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW2JpbmRUZXh0dXJl
VGFyZ2V0LnJhbmRvbSgpXTsgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24odCkg
eyByZXR1cm4gYmluZFRleHR1cmVUYXJnZXQuaGFzKHQpOyB9LAorICAgIHRlYXJkb3duIDogZnVu
Y3Rpb24odGV4LCB0ZXgyKSB7CisgICAgICBHTC5iaW5kVGV4dHVyZShHTC5URVhUVVJFXzJELCBu
dWxsKTsKKyAgICAgIEdMLmJpbmRUZXh0dXJlKEdMLlRFWFRVUkVfQ1VCRV9NQVAsIG51bGwpOwor
ICAgICAgR0wuZGVsZXRlVGV4dHVyZSh0ZXgpOworICAgICAgR0wuZGVsZXRlVGV4dHVyZSh0ZXgy
KTsKKyAgICB9CisgIH0sCisgIGdldEFjdGl2ZUF0dHJpYiA6IHsKKyAgLyogRklYTUUgdGhlIHF1
ZXJpZWQgYXR0cmliIG5lZWRzIHRvIGJlIGFuIGFjdGl2ZSBvbmUKKyAgICBnZW5lcmF0ZSA6IGZ1
bmN0aW9uKCkgeworICAgICAgdmFyIHByb2dyYW0gPSBHTC5jcmVhdGVQcm9ncmFtKCk7CisgICAg
ICByZXR1cm4gW3Byb2dyYW0sIHJhbmRvbVZlcnRleEF0dHJpYnV0ZSgpXTsKKyAgICB9LAorICAg
IGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihwcm9ncmFtLCBpbmRleCkgeworICAgICAgcmV0
dXJuIEdMLmlzUHJvZ3JhbShwcm9ncmFtKSAmJiBpc1ZlcnRleEF0dHJpYnV0ZShpbmRleCk7Cisg
ICAgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24ocHJvZ3JhbSwgaW5kZXgpIHsKKyAgICAgIEdM
LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgfQorICAqLworICB9LAorICBnZXRBY3RpdmVV
bmlmb3JtIDoge30sIC8vIEZJWE1FCisgIGdldEF0dGFjaGVkU2hhZGVycyA6IHsKKyAgICBzZXR1
cCA6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHByb2dyYW0gPSBHTC5jcmVhdGVQcm9ncmFtKCk7
CisgICAgICB2YXIgczEgPSBHTC5jcmVhdGVTaGFkZXIoR0wuVkVSVEVYX1NIQURFUik7CisgICAg
ICB2YXIgczIgPSBHTC5jcmVhdGVTaGFkZXIoR0wuRlJBR01FTlRfU0hBREVSKTsKKyAgICAgIEdM
LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBzMSk7CisgICAgICBHTC5hdHRhY2hTaGFkZXIocHJvZ3Jh
bSwgczIpOworICAgICAgcmV0dXJuIFtwcm9ncmFtLCBzMSwgczJdOworICAgIH0sCisgICAgZ2Vu
ZXJhdGUgOiBmdW5jdGlvbihwcm9ncmFtLCBzMSwgczIpIHsKKyAgICAgIHJldHVybiBbcHJvZ3Jh
bV0KKyAgICB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihwcm9ncmFtKSB7Cisg
ICAgICByZXR1cm4gR0wuaXNQcm9ncmFtKHByb2dyYW0pOworICAgIH0sCisgICAgdGVhcmRvd24g
OiBmdW5jdGlvbihwcm9ncmFtLCBzMSwgczIpIHsKKyAgICAgIEdMLmRlbGV0ZVByb2dyYW0ocHJv
Z3JhbSk7CisgICAgICBHTC5kZWxldGVTaGFkZXIoczEpOworICAgICAgR0wuZGVsZXRlU2hhZGVy
KHMyKTsKKyAgICB9CisgIH0KKworfTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9h
cmdHZW5lcmF0b3JzLUdfSS5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1HX0ku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2FmNThiMGJmNGU1ZmE3ZWNmMjI0ZTM5ZjEyZDM0YmU3NjM2NWZhMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1HX0kuanMK
QEAgLTAsMCArMSwxNDEgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisq
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoq
CisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLy8gQXJnR2VuZXJh
dG9ycyBjb250YWlucyBhcmd1bWVudCBnZW5lcmF0b3JzIGZvciBXZWJHTCBmdW5jdGlvbnMuCisv
LyBUaGUgYXJndW1lbnQgZ2VuZXJhdG9ycyBhcmUgdXNlZCBmb3IgcnVubmluZyByYW5kb20gdGVz
dHMgYWdhaW5zdCB0aGUgV2ViR0wKKy8vIGZ1bmN0aW9ucy4KKy8vCisvLyBBcmdHZW5lcmF0b3Jz
IGlzIGFuIG9iamVjdCBjb25zaXN0aW5nIG9mIGZ1bmN0aW9uTmFtZSA6IGFyZ0dlbiAtcHJvcGVy
dGllcy4KKy8vCisvLyBmdW5jdGlvbk5hbWUgaXMgYSBXZWJHTCBjb250ZXh0IGZ1bmN0aW9uIG5h
bWUgYW5kIHRoZSBhcmdHZW4gaXMgYW4gYXJndW1lbnQKKy8vIGdlbmVyYXRvciBvYmplY3QgdGhh
dCBlbmNhcHN1bGF0ZXMgdGhlIHJlcXVpcmVtZW50cyB0byBydW4KKy8vIHJhbmRvbWx5IGdlbmVy
YXRlZCB0ZXN0cyBvbiB0aGUgV2ViR0wgZnVuY3Rpb24uCisvLworLy8gQW4gYXJnR2VuIG9iamVj
dCBoYXMgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorLy8gICAtIHNldHVwICAgIC0tIHNldCB1cCBz
dGF0ZSBmb3IgdGVzdGluZyB0aGUgR0wgZnVuY3Rpb24sIHJldHVybnMgdmFsdWVzCisvLyAgICAg
ICAgICAgICAgICAgdGhhdCBuZWVkIGNsZWFudXAgaW4gdGVhcmRvd24uIFJ1biBvbmNlIGJlZm9y
ZSBlbnRlcmluZyBhCisvLyAgICAgICAgICAgICAgICAgdGVzdCBsb29wLgorLy8gICAtIHRlYXJk
b3duIC0tIGRvIGNsZWFudXAgb24gc2V0dXAncyByZXR1cm4gdmFsdWVzIGFmdGVyIHRlc3Rpbmcg
aXMgY29tcGxldGUKKy8vICAgLSBnZW5lcmF0ZSAtLSBnZW5lcmF0ZSBhIHZhbGlkIHNldCBvZiBy
YW5kb20gYXJndW1lbnRzIGZvciB0aGUgR0wgZnVuY3Rpb24KKy8vICAgLSByZXR1cm5WYWx1ZUNs
ZWFudXAgLS0gZG8gY2xlYW51cCBvbiB2YWx1ZSByZXR1cm5lZCBieSB0aGUgdGVzdGVkIEdMIGZ1
bmN0aW9uCisvLyAgIC0gY2xlYW51cCAgLS0gZG8gY2xlYW51cCBvbiBnZW5lcmF0ZWQgYXJndW1l
bnRzIGZyb20gZ2VuZXJhdGUKKy8vICAgLSBjaGVja0FyZ1ZhbGlkaXR5IC0tIGNoZWNrIGlmIHBh
c3NlZCBhcmdzIGFyZSB2YWxpZC4gSGFzIGEgY2FsbCBzaWduYXR1cmUKKy8vICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoYXQgbWF0Y2hlcyBnZW5lcmF0ZSdzIHJldHVybiB2YWx1ZS4gUmV0dXJu
cyB0cnVlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmdzIGFyZSB2YWxpZCwgZmFs
c2UgaWYgbm90LgorLy8KKy8vICAgRXhhbXBsZSB0ZXN0IGxvb3AgdGhhdCBkZW1vbnN0cmF0ZXMg
aG93IHRoZSBmdW5jdGlvbiBhcmdzIGFuZCByZXR1cm4KKy8vICAgdmFsdWVzIGZsb3cgdG9nZXRo
ZXI6CisvLworLy8gICB2YXIgc2V0dXBBcmdzID0gYXJnR2VuLnNldHVwKCk7CisvLyAgIGZvciAo
dmFyIGk9MDsgaTxudW1iZXJPZlRlc3RzOyBpKyspIHsKKy8vICAgICB2YXIgZ2VuZXJhdGVkQXJn
cyA9IGFyZ0dlbi5nZW5lcmF0ZS5hcHBseShhcmdHZW4sIHNldHVwQXJncyk7CisvLyAgICAgdmFy
IHZhbGlkQXJncyA9IGFyZ0dlbi5jaGVja0FyZ1ZhbGlkaXR5LmFwcGx5KGFyZ0dlbiwgZ2VuZXJh
dGVkQXJncyk7CisvLyAgICAgdmFyIHJ2ID0gY2FsbCB0aGUgR0wgZnVuY3Rpb24gd2l0aCBnZW5l
cmF0ZWRBcmdzOworLy8gICAgIGFyZ0dlbi5yZXR1cm5WYWx1ZUNsZWFudXAocnYpOworLy8gICAg
IGFyZ0dlbi5jbGVhbnVwLmFwcGx5KGFyZ0dlbiwgZ2VuZXJhdGVkQXJncyk7CisvLyAgIH0KKy8v
ICAgYXJnR2VuLnRlYXJkb3duLmFwcGx5KGFyZ0dlbiwgc2V0dXBBcmdzKTsKKy8vCitBcmdHZW5l
cmF0b3JzID0geworCisvLyBHTCBmdW5jdGlvbnMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyCisKKy8v
IEctMgorCisgIGdldEF0dHJpYkxvY2F0aW9uIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24o
KSB7CisgICAgICB2YXIgcHJvZ3JhbSA9IEdMLmNyZWF0ZVByb2dyYW0oKTsKKyAgICAgIHZhciBu
YW1lID0gcmFuZG9tTmFtZSgpOworICAgICAgR0wuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0s
IHJhbmRvbVZlcnRleEF0dHJpYnV0ZSgpLCBuYW1lKTsKKyAgICAgIHJldHVybiBbcHJvZ3JhbSwg
bmFtZV07CisgICAgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24ocHJvZ3JhbSwg
bmFtZSkgeworICAgICAgcmV0dXJuIEdMLmlzUHJvZ3JhbShwcm9ncmFtKSAmJiBpc1ZhbGlkTmFt
ZShuYW1lKTsKKyAgICB9LAorICAgIGNsZWFudXAgOiBmdW5jdGlvbihwcm9ncmFtLCBuYW1lKSB7
CisgICAgICB0cnkgeyBHTC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOyB9IGNhdGNoKGUpIHt9Cisg
ICAgfQorICB9LC8qCisgIGdldFBhcmFtZXRlciA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gW2dldFBhcmFtZXRlclBuYW1lLnJhbmRvbSgpXTsgfSwKKyAgICBjaGVja0Fy
Z1ZhbGlkaXR5IDogZnVuY3Rpb24ocCkgeyByZXR1cm4gZ2V0UGFyYW1ldGVyUG5hbWUuaGFzKHAp
OyB9CisgIH0sCisgIGdldEJ1ZmZlclBhcmFtZXRlciA6IHt9LCAvLyBGSVhNRQorICBnZXRFcnJv
ciA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW107IH0KKyAgfSwKKyAg
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIDoge30sIC8vIEZJWE1FCisgIGdldFBy
b2dyYW1QYXJhbWV0ZXIgOiB7fSwgLy8gRklYTUUKKyAgZ2V0UHJvZ3JhbUluZm9Mb2cgOiB7fSwg
Ly8gRklYTUUKKyAgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIDoge30sIC8vIEZJWE1FCisgIGdl
dFNoYWRlclBhcmFtZXRlciA6IHt9LCAvLyBGSVhNRQorICBnZXRTaGFkZXJJbmZvTG9nIDoge30s
IC8vIEZJWE1FCisgIGdldFNoYWRlclNvdXJjZSA6IHt9LCAvLyBGSVhNRQorICBnZXRUZXhQYXJh
bWV0ZXIgOiB7fSwgLy8gRklYTUUKKyAgZ2V0VW5pZm9ybSA6IHt9LCAvLyBGSVhNRQorICBnZXRV
bmlmb3JtTG9jYXRpb24gOiB7fSwgLy8gRklYTUUKKyAgZ2V0VmVydGV4QXR0cmliIDoge30sIC8v
IEZJWE1FCisgIGdldFZlcnRleEF0dHJpYk9mZnNldCA6IHt9LCAvLyBGSVhNRQorCisvLyBICisK
KyAgaGludCA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW0dMLkdFTkVS
QVRFX01JUE1BUF9ISU5ULCBtaXBtYXBIaW50LnJhbmRvbSgpXTsgfSwKKyAgICBjaGVja1ZhbGlk
QXJncyA6IGZ1bmN0aW9uKGgsIG0pIHsKKyAgICAgIHJldHVybiBoID09IEdMLkdFTkVSQVRFX01J
UE1BUF9ISU5UICYmIG1pcG1hcEhpbnQuaGFzKG0pOworICAgIH0sCisgICAgdGVhcmRvd24gOiBm
dW5jdGlvbigpeyBHTC5oaW50KEdMLkdFTkVSQVRFX01JUE1BUF9ISU5ULCBHTC5ET05UX0NBUkUp
OyB9CisgIH0sCisKKy8vIEkKKworICBpc0J1ZmZlciA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0
aW9uKCkgeyByZXR1cm4gW0dMLmNyZWF0ZUJ1ZmZlcigpXTsgfSwKKyAgICBjbGVhbnVwIDogZnVu
Y3Rpb24obykgeyB0cnkgeyBHTC5kZWxldGVCdWZmZXIobyk7IH0gY2F0Y2goZSkge30gfQorICB9
LAorICBpc0VuYWJsZWQgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtl
bmFibGVDYXAucmFuZG9tKCldOyB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihj
KSB7IHJldHVybiBlbmFibGVDYXAuaGFzKGMpOyB9CisgIH0sCisgIGlzRnJhbWVidWZmZXIgOiB7
CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtHTC5jcmVhdGVGcmFtZWJ1ZmZl
cigpXTsgfSwKKyAgICBjbGVhbnVwIDogZnVuY3Rpb24obykgeyB0cnkgeyBHTC5kZWxldGVGcmFt
ZWJ1ZmZlcihvKTsgfSBjYXRjaChlKSB7fSB9CisgIH0sCisgIGlzUHJvZ3JhbSA6IHsKKyAgICBn
ZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW0dMLmNyZWF0ZVByb2dyYW0oKV07IH0sCisg
ICAgY2xlYW51cCA6IGZ1bmN0aW9uKG8pIHsgdHJ5IHsgR0wuZGVsZXRlUHJvZ3JhbShvKTsgfSBj
YXRjaChlKSB7fSB9CisgIH0sCisgIGlzUmVuZGVyYnVmZmVyIDogeworICAgIGdlbmVyYXRlIDog
ZnVuY3Rpb24oKSB7IHJldHVybiBbR0wuY3JlYXRlUmVuZGVyYnVmZmVyKCldOyB9LAorICAgIGNs
ZWFudXAgOiBmdW5jdGlvbihvKSB7IHRyeSB7IEdMLmRlbGV0ZVJlbmRlcmJ1ZmZlcihvKTsgfSBj
YXRjaChlKSB7fSB9CisgIH0sCisgIGlzU2hhZGVyIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rp
b24oKSB7IHJldHVybiBbR0wuY3JlYXRlU2hhZGVyKHNoYWRlclR5cGUucmFuZG9tKCkpXTsgfSwK
KyAgICBjbGVhbnVwIDogZnVuY3Rpb24obykgeyB0cnkgeyBHTC5kZWxldGVTaGFkZXIobyk7IH0g
Y2F0Y2goZSkge30gfQorICB9LAorICBpc1RleHR1cmUgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5j
dGlvbigpIHsgcmV0dXJuIFtHTC5jcmVhdGVUZXh0dXJlKCldOyB9LAorICAgIGNsZWFudXAgOiBm
dW5jdGlvbihvKSB7IHRyeSB7IEdMLmRlbGV0ZVRleHR1cmUobyk7IH0gY2F0Y2goZSkge30gfQor
ICB9Ki8KKworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9ycy1M
X1MuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVyYXRvcnMtTF9TLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRiN2YzOGQ2MWQzMTRiNGY4Mjk1Y2ZkYjZmNDE4NGJkYWEwYjkzODgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2NvbmZvcm1hbmNlL2FyZ0dlbmVyYXRvcnMtTF9TLmpzCkBAIC0wLDAgKzEsMTM5
IEBACisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoq
CisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
KyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy8vIEFyZ0dlbmVyYXRvcnMgY29udGFpbnMg
YXJndW1lbnQgZ2VuZXJhdG9ycyBmb3IgV2ViR0wgZnVuY3Rpb25zLgorLy8gVGhlIGFyZ3VtZW50
IGdlbmVyYXRvcnMgYXJlIHVzZWQgZm9yIHJ1bm5pbmcgcmFuZG9tIHRlc3RzIGFnYWluc3QgdGhl
IFdlYkdMCisvLyBmdW5jdGlvbnMuCisvLworLy8gQXJnR2VuZXJhdG9ycyBpcyBhbiBvYmplY3Qg
Y29uc2lzdGluZyBvZiBmdW5jdGlvbk5hbWUgOiBhcmdHZW4gLXByb3BlcnRpZXMuCisvLworLy8g
ZnVuY3Rpb25OYW1lIGlzIGEgV2ViR0wgY29udGV4dCBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgYXJn
R2VuIGlzIGFuIGFyZ3VtZW50CisvLyBnZW5lcmF0b3Igb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVz
IHRoZSByZXF1aXJlbWVudHMgdG8gcnVuCisvLyByYW5kb21seSBnZW5lcmF0ZWQgdGVzdHMgb24g
dGhlIFdlYkdMIGZ1bmN0aW9uLgorLy8KKy8vIEFuIGFyZ0dlbiBvYmplY3QgaGFzIHRoZSBmb2xs
b3dpbmcgbWV0aG9kczoKKy8vICAgLSBzZXR1cCAgICAtLSBzZXQgdXAgc3RhdGUgZm9yIHRlc3Rp
bmcgdGhlIEdMIGZ1bmN0aW9uLCByZXR1cm5zIHZhbHVlcworLy8gICAgICAgICAgICAgICAgIHRo
YXQgbmVlZCBjbGVhbnVwIGluIHRlYXJkb3duLiBSdW4gb25jZSBiZWZvcmUgZW50ZXJpbmcgYQor
Ly8gICAgICAgICAgICAgICAgIHRlc3QgbG9vcC4KKy8vICAgLSB0ZWFyZG93biAtLSBkbyBjbGVh
bnVwIG9uIHNldHVwJ3MgcmV0dXJuIHZhbHVlcyBhZnRlciB0ZXN0aW5nIGlzIGNvbXBsZXRlCisv
LyAgIC0gZ2VuZXJhdGUgLS0gZ2VuZXJhdGUgYSB2YWxpZCBzZXQgb2YgcmFuZG9tIGFyZ3VtZW50
cyBmb3IgdGhlIEdMIGZ1bmN0aW9uCisvLyAgIC0gcmV0dXJuVmFsdWVDbGVhbnVwIC0tIGRvIGNs
ZWFudXAgb24gdmFsdWUgcmV0dXJuZWQgYnkgdGhlIHRlc3RlZCBHTCBmdW5jdGlvbgorLy8gICAt
IGNsZWFudXAgIC0tIGRvIGNsZWFudXAgb24gZ2VuZXJhdGVkIGFyZ3VtZW50cyBmcm9tIGdlbmVy
YXRlCisvLyAgIC0gY2hlY2tBcmdWYWxpZGl0eSAtLSBjaGVjayBpZiBwYXNzZWQgYXJncyBhcmUg
dmFsaWQuIEhhcyBhIGNhbGwgc2lnbmF0dXJlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICB0
aGF0IG1hdGNoZXMgZ2VuZXJhdGUncyByZXR1cm4gdmFsdWUuIFJldHVybnMgdHJ1ZQorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgYXJncyBhcmUgdmFsaWQsIGZhbHNlIGlmIG5vdC4KKy8v
CisvLyAgIEV4YW1wbGUgdGVzdCBsb29wIHRoYXQgZGVtb25zdHJhdGVzIGhvdyB0aGUgZnVuY3Rp
b24gYXJncyBhbmQgcmV0dXJuCisvLyAgIHZhbHVlcyBmbG93IHRvZ2V0aGVyOgorLy8KKy8vICAg
dmFyIHNldHVwQXJncyA9IGFyZ0dlbi5zZXR1cCgpOworLy8gICBmb3IgKHZhciBpPTA7IGk8bnVt
YmVyT2ZUZXN0czsgaSsrKSB7CisvLyAgICAgdmFyIGdlbmVyYXRlZEFyZ3MgPSBhcmdHZW4uZ2Vu
ZXJhdGUuYXBwbHkoYXJnR2VuLCBzZXR1cEFyZ3MpOworLy8gICAgIHZhciB2YWxpZEFyZ3MgPSBh
cmdHZW4uY2hlY2tBcmdWYWxpZGl0eS5hcHBseShhcmdHZW4sIGdlbmVyYXRlZEFyZ3MpOworLy8g
ICAgIHZhciBydiA9IGNhbGwgdGhlIEdMIGZ1bmN0aW9uIHdpdGggZ2VuZXJhdGVkQXJnczsKKy8v
ICAgICBhcmdHZW4ucmV0dXJuVmFsdWVDbGVhbnVwKHJ2KTsKKy8vICAgICBhcmdHZW4uY2xlYW51
cC5hcHBseShhcmdHZW4sIGdlbmVyYXRlZEFyZ3MpOworLy8gICB9CisvLyAgIGFyZ0dlbi50ZWFy
ZG93bi5hcHBseShhcmdHZW4sIHNldHVwQXJncyk7CisvLworQXJnR2VuZXJhdG9ycyA9IHsKKwor
Ly8gR0wgZnVuY3Rpb25zIGluIGFscGhhYmV0aWNhbCBvcmRlcgorCisvLyBMCisKKyAgbGluZVdp
ZHRoIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbcmFuZG9tTGluZVdp
ZHRoKCldOyB9LAorICAgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7IEdMLmxpbmVXaWR0aCgxKTsg
fQorICB9LAorICBsaW5rUHJvZ3JhbSA6IHt9LCAvLyBGSVhNRQorCisvLyBQCisgIHBpeGVsU3Rv
cmVpIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gW3BpeGVs
U3RvcmVpUG5hbWUucmFuZG9tKCksIHBpeGVsU3RvcmVpUGFyYW0ucmFuZG9tKCldOworICAgIH0s
CisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0aW9uKHBuYW1lLCBwYXJhbSkgeworICAgICAg
cmV0dXJuIHBpeGVsU3RvcmVpUG5hbWUuaGFzKHBuYW1lKSAmJiBwaXhlbFN0b3JlaVBhcmFtLmhh
cyhwYXJhbSk7CisgICAgfSwKKyAgICB0ZWFyZG93biA6IGZ1bmN0aW9uKCkgeworICAgICAgR0wu
cGl4ZWxTdG9yZWkoR0wuUEFDS19BTElHTk1FTlQsIDQpOworICAgICAgR0wucGl4ZWxTdG9yZWko
R0wuVU5QQUNLX0FMSUdOTUVOVCwgNCk7CisgICAgfQorICB9LAorICBwb2x5Z29uT2Zmc2V0IDog
eworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKSB7IHJldHVybiBbcmFuZG9tRmxvYXQoKSwgcmFu
ZG9tRmxvYXQoKV07IH0sCisgICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsgR0wucG9seWdvbk9m
ZnNldCgwLDApOyB9CisgIH0sCisKKy8vIFIKKworICByZWFkUGl4ZWxzIDoge30sIC8vIEZJWE1F
CisgIHJlbmRlcmJ1ZmZlclN0b3JhZ2UgOiB7fSwgLy8gRklYTUUKKworLy8gUy0xCisKKyAgc2Ft
cGxlQ292ZXJhZ2UgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFtyYW5k
b21GbG9hdEZyb21SYW5nZSgwLDEpLCByYW5kb21Cb29sKCldIH0sCisgICAgdGVhcmRvd24gOiBm
dW5jdGlvbigpIHsgR0wuc2FtcGxlQ292ZXJhZ2UoMSwgZmFsc2UpOyB9CisgIH0sCisgIHNjaXNz
b3IgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBbcmFuZG9t
SW50KDMwMDApLTE1MDAsIHJhbmRvbUludCgzMDAwKS0xNTAwLCByYW5kb21JbnRGcm9tUmFuZ2Uo
MCwzMDAwKSwgcmFuZG9tSW50RnJvbVJhbmdlKDAsMzAwMCldOworICAgIH0sCisgICAgY2hlY2tB
cmdWYWxpZGl0eSA6IGZ1bmN0aW9uKHgseSx3LGgpIHsKKyAgICAgIHJldHVybiBjYXN0VG9JbnQo
dykgPj0gMCAmJiBjYXN0VG9JbnQoaCkgPj0gMDsKKyAgICB9LAorICAgIHRlYXJkb3duIDogZnVu
Y3Rpb24oKSB7CisgICAgICBHTC5zY2lzc29yKDAsMCxHTC5jYW52YXMud2lkdGgsIEdMLmNhbnZh
cy5oZWlnaHQpOworICAgIH0KKyAgfSwKKyAgc2hhZGVyU291cmNlIDoge30sIC8vIEZJWE1FCisg
IHN0ZW5jaWxGdW5jIDogeworICAgIGdlbmVyYXRlIDogZnVuY3Rpb24oKXsKKyAgICAgIHJldHVy
biBbc3RlbmNpbEZ1bmNGdW5jLnJhbmRvbSgpLCByYW5kb21JbnQoTWF4U3RlbmNpbFZhbHVlKSwg
cmFuZG9tSW50KDB4ZmZmZmZmZmYpXTsKKyAgICB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBm
dW5jdGlvbihmdW5jLCByZWYsIG1hc2spIHsKKyAgICAgIHJldHVybiBzdGVuY2lsRnVuY0Z1bmMu
aGFzKGZ1bmMpICYmIGNhc3RUb0ludChyZWYpID49IDAgJiYgY2FzdFRvSW50KHJlZikgPCBNYXhT
dGVuY2lsVmFsdWU7CisgICAgfSwKKyAgICB0ZWFyZG93biA6IGZ1bmN0aW9uKCkgeworICAgICAg
R0wuc3RlbmNpbEZ1bmMoR0wuQUxXQVlTLCAwLCAweGZmZmZmZmZmKTsKKyAgICB9CisgIH0sCisg
IHN0ZW5jaWxGdW5jU2VwYXJhdGUgOiB7CisgICAgZ2VuZXJhdGUgOiBmdW5jdGlvbigpeworICAg
ICAgcmV0dXJuIFtjdWxsRmFjZS5yYW5kb20oKSwgc3RlbmNpbEZ1bmNGdW5jLnJhbmRvbSgpLCBy
YW5kb21JbnQoTWF4U3RlbmNpbFZhbHVlKSwgcmFuZG9tSW50KDB4ZmZmZmZmZmYpXTsKKyAgICB9
LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihmYWNlLCBmdW5jLCByZWYsIG1hc2sp
IHsKKyAgICAgIHJldHVybiBjdWxsRmFjZS5oYXMoZmFjZSkgJiYgc3RlbmNpbEZ1bmNGdW5jLmhh
cyhmdW5jKSAmJiBjYXN0VG9JbnQocmVmKSA+PSAwICYmIGNhc3RUb0ludChyZWYpIDwgTWF4U3Rl
bmNpbFZhbHVlOworICAgIH0sCisgICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsKKyAgICAgIEdM
LnN0ZW5jaWxGdW5jKEdMLkFMV0FZUywgMCwgMHhmZmZmZmZmZik7CisgICAgfQorICB9LAorICBz
dGVuY2lsTWFzayA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gW3JhbmRv
bUludCgweGZmZmZmZmZmKV07IH0sCisgICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsgR0wuc3Rl
bmNpbE1hc2soMHhmZmZmZmZmZik7IH0KKyAgfQorCit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25m
b3JtYW5jZS9hcmdHZW5lcmF0b3JzLVNfVi5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJh
dG9ycy1TX1YuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI2ZjZlZjA1MjEzMDhlY2E4Y2U1OGVlZGQ4YWVmNDAw
YTk1OTQxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvYXJnR2VuZXJhdG9y
cy1TX1YuanMKQEAgLTAsMCArMSwyMjkgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRo
aXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisq
KiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0
aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwg
Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us
IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBw
ZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk
ZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVy
aWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcg
QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFks
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisq
KiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM
SUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVU
SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMg
T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLy8g
QXJnR2VuZXJhdG9ycyBjb250YWlucyBhcmd1bWVudCBnZW5lcmF0b3JzIGZvciBXZWJHTCBmdW5j
dGlvbnMuCisvLyBUaGUgYXJndW1lbnQgZ2VuZXJhdG9ycyBhcmUgdXNlZCBmb3IgcnVubmluZyBy
YW5kb20gdGVzdHMgYWdhaW5zdCB0aGUgV2ViR0wKKy8vIGZ1bmN0aW9ucy4KKy8vCisvLyBBcmdH
ZW5lcmF0b3JzIGlzIGFuIG9iamVjdCBjb25zaXN0aW5nIG9mIGZ1bmN0aW9uTmFtZSA6IGFyZ0dl
biAtcHJvcGVydGllcy4KKy8vCisvLyBmdW5jdGlvbk5hbWUgaXMgYSBXZWJHTCBjb250ZXh0IGZ1
bmN0aW9uIG5hbWUgYW5kIHRoZSBhcmdHZW4gaXMgYW4gYXJndW1lbnQKKy8vIGdlbmVyYXRvciBv
YmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIHJlcXVpcmVtZW50cyB0byBydW4KKy8vIHJhbmRv
bWx5IGdlbmVyYXRlZCB0ZXN0cyBvbiB0aGUgV2ViR0wgZnVuY3Rpb24uCisvLworLy8gQW4gYXJn
R2VuIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorLy8gICAtIHNldHVwICAgIC0t
IHNldCB1cCBzdGF0ZSBmb3IgdGVzdGluZyB0aGUgR0wgZnVuY3Rpb24sIHJldHVybnMgdmFsdWVz
CisvLyAgICAgICAgICAgICAgICAgdGhhdCBuZWVkIGNsZWFudXAgaW4gdGVhcmRvd24uIFJ1biBv
bmNlIGJlZm9yZSBlbnRlcmluZyBhCisvLyAgICAgICAgICAgICAgICAgdGVzdCBsb29wLgorLy8g
ICAtIHRlYXJkb3duIC0tIGRvIGNsZWFudXAgb24gc2V0dXAncyByZXR1cm4gdmFsdWVzIGFmdGVy
IHRlc3RpbmcgaXMgY29tcGxldGUKKy8vICAgLSBnZW5lcmF0ZSAtLSBnZW5lcmF0ZSBhIHZhbGlk
IHNldCBvZiByYW5kb20gYXJndW1lbnRzIGZvciB0aGUgR0wgZnVuY3Rpb24KKy8vICAgLSByZXR1
cm5WYWx1ZUNsZWFudXAgLS0gZG8gY2xlYW51cCBvbiB2YWx1ZSByZXR1cm5lZCBieSB0aGUgdGVz
dGVkIEdMIGZ1bmN0aW9uCisvLyAgIC0gY2xlYW51cCAgLS0gZG8gY2xlYW51cCBvbiBnZW5lcmF0
ZWQgYXJndW1lbnRzIGZyb20gZ2VuZXJhdGUKKy8vICAgLSBjaGVja0FyZ1ZhbGlkaXR5IC0tIGNo
ZWNrIGlmIHBhc3NlZCBhcmdzIGFyZSB2YWxpZC4gSGFzIGEgY2FsbCBzaWduYXR1cmUKKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoYXQgbWF0Y2hlcyBnZW5lcmF0ZSdzIHJldHVybiB2YWx1
ZS4gUmV0dXJucyB0cnVlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmdzIGFyZSB2
YWxpZCwgZmFsc2UgaWYgbm90LgorLy8KKy8vICAgRXhhbXBsZSB0ZXN0IGxvb3AgdGhhdCBkZW1v
bnN0cmF0ZXMgaG93IHRoZSBmdW5jdGlvbiBhcmdzIGFuZCByZXR1cm4KKy8vICAgdmFsdWVzIGZs
b3cgdG9nZXRoZXI6CisvLworLy8gICB2YXIgc2V0dXBBcmdzID0gYXJnR2VuLnNldHVwKCk7Cisv
LyAgIGZvciAodmFyIGk9MDsgaTxudW1iZXJPZlRlc3RzOyBpKyspIHsKKy8vICAgICB2YXIgZ2Vu
ZXJhdGVkQXJncyA9IGFyZ0dlbi5nZW5lcmF0ZS5hcHBseShhcmdHZW4sIHNldHVwQXJncyk7Cisv
LyAgICAgdmFyIHZhbGlkQXJncyA9IGFyZ0dlbi5jaGVja0FyZ1ZhbGlkaXR5LmFwcGx5KGFyZ0dl
biwgZ2VuZXJhdGVkQXJncyk7CisvLyAgICAgdmFyIHJ2ID0gY2FsbCB0aGUgR0wgZnVuY3Rpb24g
d2l0aCBnZW5lcmF0ZWRBcmdzOworLy8gICAgIGFyZ0dlbi5yZXR1cm5WYWx1ZUNsZWFudXAocnYp
OworLy8gICAgIGFyZ0dlbi5jbGVhbnVwLmFwcGx5KGFyZ0dlbiwgZ2VuZXJhdGVkQXJncyk7Cisv
LyAgIH0KKy8vICAgYXJnR2VuLnRlYXJkb3duLmFwcGx5KGFyZ0dlbiwgc2V0dXBBcmdzKTsKKy8v
CitBcmdHZW5lcmF0b3JzID0geworCisvLyBHTCBmdW5jdGlvbnMgaW4gYWxwaGFiZXRpY2FsIG9y
ZGVyCisKKy8vIFMtMgorCisgIHN0ZW5jaWxNYXNrU2VwYXJhdGUgOiB7CisgICAgZ2VuZXJhdGUg
OiBmdW5jdGlvbigpIHsgcmV0dXJuIFtjdWxsRmFjZS5yYW5kb20oKSwgcmFuZG9tSW50KDB4ZmZm
ZmZmZmYpXTsgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24oZmFjZSwgbWFzaykg
eworICAgICAgcmV0dXJuIGN1bGxGYWNlLmhhcyhmYWNlKTsKKyAgICB9LAorICAgIHRlYXJkb3du
IDogZnVuY3Rpb24oKSB7IEdMLnN0ZW5jaWxNYXNrKDB4ZmZmZmZmZmYpOyB9CisgIH0sCisgIHN0
ZW5jaWxPcCA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIFtz
dGVuY2lsT3AucmFuZG9tKCksIHN0ZW5jaWxPcC5yYW5kb20oKSwgc3RlbmNpbE9wLnJhbmRvbSgp
XTsKKyAgICB9LAorICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihzZmFpbCwgZHBmYWls
LCBkcHBhc3MpIHsKKyAgICAgIHJldHVybiBzdGVuY2lsT3AuaGFzKHNmYWlsKSAmJiBzdGVuY2ls
T3AuaGFzKGRwZmFpbCkgJiYgc3RlbmNpbE9wLmhhcyhkcHBhc3MpOworICAgIH0sCisgICAgdGVh
cmRvd24gOiBmdW5jdGlvbigpIHsgR0wuc3RlbmNpbE9wKEdMLktFRVAsIEdMLktFRVAsIEdMLktF
RVApOyB9CisgIH0sCisgIHN0ZW5jaWxPcFNlcGFyYXRlIDogeworICAgIGdlbmVyYXRlIDogZnVu
Y3Rpb24oKSB7CisgICAgICByZXR1cm4gW2N1bGxGYWNlLnJhbmRvbSgpLCBzdGVuY2lsT3AucmFu
ZG9tKCksIHN0ZW5jaWxPcC5yYW5kb20oKSwgc3RlbmNpbE9wLnJhbmRvbSgpXTsKKyAgICB9LAor
ICAgIGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbihmYWNlLCBzZmFpbCwgZHBmYWlsLCBkcHBh
c3MpIHsKKyAgICAgIHJldHVybiBjdWxsRmFjZS5oYXMoZmFjZSkgJiYgc3RlbmNpbE9wLmhhcyhz
ZmFpbCkgJiYKKyAgICAgICAgICAgICAgc3RlbmNpbE9wLmhhcyhkcGZhaWwpICYmIHN0ZW5jaWxP
cC5oYXMoZHBwYXNzKTsKKyAgICB9LAorICAgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7IEdMLnN0
ZW5jaWxPcChHTC5LRUVQLCBHTC5LRUVQLCBHTC5LRUVQKTsgfQorICB9LAorCisvLyBUCisgIHRl
eEltYWdlMkQgOiB7CisgICAgbm9BbHJlYWR5VHJpZWRDaGVjayA6IHRydWUsIC8vIE9iamVjdC50
b1NvdXJjZSBpcyB2ZXJ5IHNsb3cgaGVyZQorICAgIHNldHVwIDogZnVuY3Rpb24oKSB7CisgICAg
ICB2YXIgdGV4ID0gR0wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgdmFyIHRleDIgPSBHTC5jcmVh
dGVUZXh0dXJlKCk7CisgICAgICBHTC5iaW5kVGV4dHVyZShHTC5URVhUVVJFXzJELCB0ZXgpOwor
ICAgICAgR0wuYmluZFRleHR1cmUoR0wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Mik7CisgICAgICBy
ZXR1cm4gW3RleCwgdGV4Ml07CisgICAgfSwKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgewor
ICAgICAgdmFyIGZvcm1hdCA9IHRleEltYWdlRm9ybWF0LnJhbmRvbSgpOworICAgICAgaWYgKE1h
dGgucmFuZG9tKCkgPCAwLjUpIHsKKyAgICAgICAgdmFyIGltZyA9IHJhbmRvbUltYWdlKDE2LDE2
KTsKKyAgICAgICAgdmFyIGEgPSBbIHRleEltYWdlVGFyZ2V0LnJhbmRvbSgpLCAwLCBmb3JtYXQs
IGZvcm1hdCwgR0wuVU5TSUdORURfQllURSwgaW1nIF07CisgICAgICAgIHJldHVybiBhOworICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIHBpeCA9IG51bGw7CisgICAgICAgIGlmIChNYXRoLnJh
bmRvbSA+IDAuNSkgeworICAgICAgICAgIHBpeCA9IG5ldyBVaW50OEFycmF5KDE2KjE2KjQpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBbCisgICAgICAgICAgdGV4SW1hZ2VUYXJnZXQucmFu
ZG9tKCksIDAsCisgICAgICAgICAgZm9ybWF0LCAxNiwgMTYsIDAsCisgICAgICAgICAgZm9ybWF0
LCBHTC5VTlNJR05FRF9CWVRFLCBwaXgKKyAgICAgICAgXTsKKyAgICAgIH0KKyAgICB9LAorICAg
IGNoZWNrQXJnVmFsaWRpdHkgOiBmdW5jdGlvbih0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgYm9yZGVyLCBmb3JtYXQsIHR5cGUsIGRhdGEpIHsKKyAgICAgICAg
ICAgICAgIC8vIG9yIDogZnVuY3Rpb24odGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZv
cm1hdCwgdHlwZSwgaW1hZ2UpCisgICAgICBpZiAoIXRleEltYWdlVGFyZ2V0Lmhhcyh0YXJnZXQp
IHx8IGNhc3RUb0ludChsZXZlbCkgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICBp
ZiAoYXJndW1lbnRzLmxlbmd0aCA8PSA2KSB7CisgICAgICAgIHZhciB4Zm9ybWF0ID0gd2lkdGg7
CisgICAgICAgIHZhciB4dHlwZSA9IGhlaWdodDsKKyAgICAgICAgdmFyIHhpbWFnZSA9IGJvcmRl
cjsKKyAgICAgICAgaWYgKCh4aW1hZ2UgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50IHx8Cisg
ICAgICAgICAgICAgeGltYWdlIGluc3RhbmNlb2YgSFRNTFZpZGVvRWxlbWVudCB8fAorICAgICAg
ICAgICAgIHhpbWFnZSBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50IHx8CisgICAgICAgICAg
ICAgeGltYWdlIGluc3RhbmNlb2YgSW1hZ2VEYXRhKSAmJgorICAgICAgICAgICAgdGV4SW1hZ2VJ
bnRlcm5hbEZvcm1hdC5oYXMoaW50ZXJuYWxmb3JtYXQpICYmCisgICAgICAgICAgICB0ZXhJbWFn
ZUZvcm1hdC5oYXMoeGZvcm1hdCkgJiYKKyAgICAgICAgICAgIHRleEltYWdlVHlwZS5oYXMoeHR5
cGUpICYmCisgICAgICAgICAgICBpbnRlcm5hbGZvcm1hdCA9PSB4Zm9ybWF0KQorICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICB2YXIg
dyA9IGNhc3RUb0ludCh3aWR0aCksIGggPSBjYXN0VG9JbnQoaGVpZ2h0KSwgYiA9IGNhc3RUb0lu
dChib3JkZXIpOworICAgICAgcmV0dXJuIHRleEltYWdlSW50ZXJuYWxGb3JtYXQuaGFzKGludGVy
bmFsZm9ybWF0KSAmJiB3ID49IDAgJiYgaCA+PSAwICYmCisgICAgICAgICAgICBiID09IDAgJiYg
KGRhdGEgPT0gbnVsbCB8fCBkYXRhLmJ5dGVMZW5ndGggPT0gdypoKjQpICYmCisgICAgICAgICAg
ICB0ZXhJbWFnZUZvcm1hdC5oYXMoZm9ybWF0KSAmJiB0ZXhJbWFnZVR5cGUuaGFzKHR5cGUpCisg
ICAgICAgICAgICAmJiBpbnRlcm5hbGZvcm1hdCA9PSBmb3JtYXQ7CisgICAgfSwKKyAgICB0ZWFy
ZG93biA6IGZ1bmN0aW9uKHRleCwgdGV4MikgeworICAgICAgR0wuYmluZFRleHR1cmUoR0wuVEVY
VFVSRV8yRCwgbnVsbCk7CisgICAgICBHTC5iaW5kVGV4dHVyZShHTC5URVhUVVJFX0NVQkVfTUFQ
LCBudWxsKTsKKyAgICAgIEdMLmRlbGV0ZVRleHR1cmUodGV4KTsKKyAgICAgIEdMLmRlbGV0ZVRl
eHR1cmUodGV4Mik7CisgICAgfQorICB9LAorICB0ZXhQYXJhbWV0ZXJmIDogeworICAgIGdlbmVy
YXRlIDogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcG5hbWUgPSB0ZXhQYXJhbWV0ZXJQbmFtZS5y
YW5kb20oKTsKKyAgICAgIHZhciBwYXJhbSA9IHRleFBhcmFtZXRlclBhcmFtW3BuYW1lXS5yYW5k
b20oKTsKKyAgICAgIHJldHVybiBbYmluZFRleHR1cmVUYXJnZXQucmFuZG9tKCksIHBuYW1lLCBw
YXJhbV07CisgICAgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24odGFyZ2V0LCBw
bmFtZSwgcGFyYW0pIHsKKyAgICAgIGlmICghYmluZFRleHR1cmVUYXJnZXQuaGFzKHRhcmdldCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICghdGV4UGFyYW1ldGVyUG5hbWUuaGFz
KHBuYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgcmV0dXJuIHRleFBhcmFtZXRl
clBhcmFtW3BuYW1lXS5oYXMocGFyYW0pOworICAgIH0KKyAgfSwKKyAgdGV4UGFyYW1ldGVyaSA6
IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHBuYW1lID0gdGV4UGFy
YW1ldGVyUG5hbWUucmFuZG9tKCk7CisgICAgICB2YXIgcGFyYW0gPSB0ZXhQYXJhbWV0ZXJQYXJh
bVtwbmFtZV0ucmFuZG9tKCk7CisgICAgICByZXR1cm4gW2JpbmRUZXh0dXJlVGFyZ2V0LnJhbmRv
bSgpLCBwbmFtZSwgcGFyYW1dOworICAgIH0sCisgICAgY2hlY2tBcmdWYWxpZGl0eSA6IGZ1bmN0
aW9uKHRhcmdldCwgcG5hbWUsIHBhcmFtKSB7CisgICAgICBpZiAoIWJpbmRUZXh0dXJlVGFyZ2V0
Lmhhcyh0YXJnZXQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICBpZiAoIXRleFBhcmFt
ZXRlclBuYW1lLmhhcyhwbmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIHJldHVy
biB0ZXhQYXJhbWV0ZXJQYXJhbVtwbmFtZV0uaGFzKHBhcmFtKTsKKyAgICB9CisgIH0sCisgIHRl
eFN1YkltYWdlMkQgOiB7fSwgLy8gRklYTUUKKworLy8gVQorCisgIHVuaWZvcm0xZiA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtMWZ2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm0xaSA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtMWl2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm0yZiA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtMmZ2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm0yaSA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtMml2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm0zZiA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtM2Z2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm0zaSA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtM2l2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm00ZiA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtNGZ2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm00aSA6IHt9LCAv
LyBGSVhNRQorICB1bmlmb3JtNGl2IDoge30sIC8vIEZJWE1FCisgIHVuaWZvcm1NYXRyaXgyZnYg
OiB7fSwgLy8gRklYTUUKKyAgdW5pZm9ybU1hdHJpeDNmdiA6IHt9LCAvLyBGSVhNRQorICB1bmlm
b3JtTWF0cml4NGZ2IDoge30sIC8vIEZJWE1FCisgIHVzZVByb2dyYW0gOiB7fSwgLy8gRklYTUUK
KworLy8gVgorCisgIHZhbGlkYXRlUHJvZ3JhbSA6IHt9LCAvLyBGSVhNRQorICB2ZXJ0ZXhBdHRy
aWIxZiA6IHt9LCAvLyBGSVhNRQorICB2ZXJ0ZXhBdHRyaWIxZnYgOiB7fSwgLy8gRklYTUUKKyAg
dmVydGV4QXR0cmliMmYgOiB7fSwgLy8gRklYTUUKKyAgdmVydGV4QXR0cmliMmZ2IDoge30sIC8v
IEZJWE1FCisgIHZlcnRleEF0dHJpYjNmIDoge30sIC8vIEZJWE1FCisgIHZlcnRleEF0dHJpYjNm
diA6IHt9LCAvLyBGSVhNRQorICB2ZXJ0ZXhBdHRyaWI0ZiA6IHt9LCAvLyBGSVhNRQorICB2ZXJ0
ZXhBdHRyaWI0ZnYgOiB7fSwgLy8gRklYTUUKKyAgdmVydGV4QXR0cmliUG9pbnRlciA6IHt9LCAv
LyBGSVhNRQorICB2aWV3cG9ydCA6IHsKKyAgICBnZW5lcmF0ZSA6IGZ1bmN0aW9uKCkgeworICAg
ICAgcmV0dXJuIFtyYW5kb21JbnQoMzAwMCktMTUwMCwgcmFuZG9tSW50KDMwMDApLTE1MDAsIHJh
bmRvbUludEZyb21SYW5nZSgwLDMwMDApLCByYW5kb21JbnRGcm9tUmFuZ2UoMCwzMDAwKV07Cisg
ICAgfSwKKyAgICBjaGVja0FyZ1ZhbGlkaXR5IDogZnVuY3Rpb24oeCx5LHcsaCkgeworICAgICAg
cmV0dXJuIGNhc3RUb0ludCh3KSA+PSAwICYmIGNhc3RUb0ludChoKSA+PSAwOworICAgIH0sCisg
ICAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHsKKyAgICAgIEdMLnZpZXdwb3J0KDAsMCxHTC5jYW52
YXMud2lkdGgsIEdMLmNhbnZhcy5oZWlnaHQpOworICAgIH0KKyAgfQorCit9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9jb25mb3JtYW5jZS9iYWRBcmdzQXJpdHlMZXNzVGhhbkFyZ2MuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
Y29uZm9ybWFuY2UvYmFkQXJnc0FyaXR5TGVzc1RoYW5BcmdjLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmVh
ZjhmMDI5ZGQ1MGRlZGY1NGQwM2NmNTczMzljZWZjZTlkOGU1MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvY29uZm9ybWFuY2UvYmFkQXJnc0FyaXR5TGVzc1RoYW5BcmdjLmh0bWwKQEAgLTAsMCAr
MSw1OTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioK
KyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNj
cmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91
dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0
Ij4KKworLyoKKyAgVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgZ2VuZXJhdGVkIGZyb20KKyAgaHR0
cDovL3d3dy5raHJvbm9zLm9yZy9yZWdpc3RyeS9nbGVzL2FwaS8yLjAvZ2wyLmgKKyAgYW5kIGFw
aV9tb2RpZmljYXRpb25zLnR4dAorKi8KK1Rlc3RzLnRlc3RfYWN0aXZlVGV4dHVyZSA9IGZ1bmN0
aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuYWN0aXZlVGV4dHVyZSgpOyB9
KTsKK30KK1Rlc3RzLnRlc3RfYXR0YWNoU2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0
RmFpbChmdW5jdGlvbigpeyBnbC5hdHRhY2hTaGFkZXIoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVu
Y3Rpb24oKXsgZ2wuYXR0YWNoU2hhZGVyKDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfYmluZEF0dHJp
YkxvY2F0aW9uID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5i
aW5kQXR0cmliTG9jYXRpb24oKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuYmlu
ZEF0dHJpYkxvY2F0aW9uKDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5iaW5k
QXR0cmliTG9jYXRpb24oMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X2JpbmRCdWZmZXIgPSBmdW5j
dGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmJpbmRCdWZmZXIoKTsgfSk7
CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuYmluZEJ1ZmZlcigwKTsgfSk7Cit9CitUZXN0
cy50ZXN0X2JpbmRGcmFtZWJ1ZmZlciA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVu
Y3Rpb24oKXsgZ2wuYmluZEZyYW1lYnVmZmVyKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLmJpbmRGcmFtZWJ1ZmZlcigwKTsgfSk7Cit9CitUZXN0cy50ZXN0X2JpbmRSZW5kZXJi
dWZmZXIgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmJpbmRS
ZW5kZXJidWZmZXIoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuYmluZFJlbmRl
cmJ1ZmZlcigwKTsgfSk7Cit9CitUZXN0cy50ZXN0X2JpbmRUZXh0dXJlID0gZnVuY3Rpb24oZ2wp
IHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5iaW5kVGV4dHVyZSgpOyB9KTsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5iaW5kVGV4dHVyZSgwKTsgfSk7Cit9CitUZXN0cy50ZXN0
X2JsZW5kQ29sb3IgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGds
LmJsZW5kQ29sb3IoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuYmxlbmRDb2xv
cigwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuYmxlbmRDb2xvcigwLDApOyB9
KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5ibGVuZENvbG9yKDAsMCwwKTsgfSk7Cit9
CitUZXN0cy50ZXN0X2JsZW5kRXF1YXRpb24gPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWls
KGZ1bmN0aW9uKCl7IGdsLmJsZW5kRXF1YXRpb24oKTsgfSk7Cit9CitUZXN0cy50ZXN0X2JsZW5k
RXF1YXRpb25TZXBhcmF0ZSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wuYmxlbmRFcXVhdGlvblNlcGFyYXRlKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLmJsZW5kRXF1YXRpb25TZXBhcmF0ZSgwKTsgfSk7Cit9CitUZXN0cy50ZXN0X2JsZW5k
RnVuYyA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuYmxlbmRG
dW5jKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmJsZW5kRnVuYygwKTsgfSk7
Cit9CitUZXN0cy50ZXN0X2JsZW5kRnVuY1NlcGFyYXRlID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5ibGVuZEZ1bmNTZXBhcmF0ZSgpOyB9KTsKKyAgYXNzZXJ0
RmFpbChmdW5jdGlvbigpeyBnbC5ibGVuZEZ1bmNTZXBhcmF0ZSgwKTsgfSk7CisgIGFzc2VydEZh
aWwoZnVuY3Rpb24oKXsgZ2wuYmxlbmRGdW5jU2VwYXJhdGUoMCwwKTsgfSk7CisgIGFzc2VydEZh
aWwoZnVuY3Rpb24oKXsgZ2wuYmxlbmRGdW5jU2VwYXJhdGUoMCwwLDApOyB9KTsKK30KK1Rlc3Rz
LnRlc3RfYnVmZmVyRGF0YSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wuYnVmZmVyRGF0YSgpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5idWZm
ZXJEYXRhKDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5idWZmZXJEYXRhKDAs
MCk7IH0pOworfQorVGVzdHMudGVzdF9idWZmZXJTdWJEYXRhID0gZnVuY3Rpb24oZ2wpIHsKKyAg
YXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5idWZmZXJTdWJEYXRhKCk7IH0pOworICBhc3NlcnRG
YWlsKGZ1bmN0aW9uKCl7IGdsLmJ1ZmZlclN1YkRhdGEoMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1
bmN0aW9uKCl7IGdsLmJ1ZmZlclN1YkRhdGEoMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X2NoZWNr
RnJhbWVidWZmZXJTdGF0dXMgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoKTsgfSk7Cit9CitUZXN0cy50ZXN0X2NsZWFy
ID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5jbGVhcigpOyB9
KTsKK30KK1Rlc3RzLnRlc3RfY2xlYXJDb2xvciA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZh
aWwoZnVuY3Rpb24oKXsgZ2wuY2xlYXJDb2xvcigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpeyBnbC5jbGVhckNvbG9yKDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5j
bGVhckNvbG9yKDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNsZWFyQ29s
b3IoMCwwLDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfY2xlYXJEZXB0aCA9IGZ1bmN0aW9uKGdsKSB7
CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY2xlYXJEZXB0aCgpOyB9KTsKK30KK1Rlc3Rz
LnRlc3RfY2xlYXJTdGVuY2lsID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpeyBnbC5jbGVhclN0ZW5jaWwoKTsgfSk7Cit9CitUZXN0cy50ZXN0X2NvbG9yTWFzayA9IGZ1
bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29sb3JNYXNrKCk7IH0p
OworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvbG9yTWFzaygwKTsgfSk7CisgIGFzc2Vy
dEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29sb3JNYXNrKDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1
bmN0aW9uKCl7IGdsLmNvbG9yTWFzaygwLDAsMCk7IH0pOworfQorVGVzdHMudGVzdF9jb21waWxl
U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5jb21w
aWxlU2hhZGVyKCk7IH0pOworfQorVGVzdHMudGVzdF9jb3B5VGV4SW1hZ2UyRCA9IGZ1bmN0aW9u
KGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleEltYWdlMkQoKTsgfSk7
CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleEltYWdlMkQoMCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhJbWFnZTJEKDAsMCk7IH0pOworICBhc3Nl
cnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhJbWFnZTJEKDAsMCwwKTsgfSk7CisgIGFzc2Vy
dEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleEltYWdlMkQoMCwwLDAsMCk7IH0pOworICBhc3Nl
cnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhJbWFnZTJEKDAsMCwwLDAsMCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhJbWFnZTJEKDAsMCwwLDAsMCwwKTsgfSk7
CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleEltYWdlMkQoMCwwLDAsMCwwLDAs
MCk7IH0pOworfQorVGVzdHMudGVzdF9jb3B5VGV4U3ViSW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7
CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleFN1YkltYWdlMkQoKTsgfSk7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleFN1YkltYWdlMkQoMCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhTdWJJbWFnZTJEKDAsMCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhTdWJJbWFnZTJEKDAsMCwwKTsgfSk7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleFN1YkltYWdlMkQoMCwwLDAsMCk7IH0p
OworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhTdWJJbWFnZTJEKDAsMCwwLDAs
MCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmNvcHlUZXhTdWJJbWFnZTJEKDAs
MCwwLDAsMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuY29weVRleFN1Yklt
YWdlMkQoMCwwLDAsMCwwLDAsMCk7IH0pOworfQorVGVzdHMudGVzdF9jcmVhdGVQcm9ncmFtID0g
ZnVuY3Rpb24oZ2wpIHsKK30KK1Rlc3RzLnRlc3RfY3JlYXRlU2hhZGVyID0gZnVuY3Rpb24oZ2wp
IHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5jcmVhdGVTaGFkZXIoKTsgfSk7Cit9CitU
ZXN0cy50ZXN0X2N1bGxGYWNlID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpeyBnbC5jdWxsRmFjZSgpOyB9KTsKK30KK1Rlc3RzLnRlc3RfZGVsZXRlQnVmZmVyID0gZnVu
Y3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5kZWxldGVCdWZmZXIoKTsg
fSk7Cit9CitUZXN0cy50ZXN0X2RlbGV0ZUZyYW1lYnVmZmVyID0gZnVuY3Rpb24oZ2wpIHsKKyAg
YXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5kZWxldGVGcmFtZWJ1ZmZlcigpOyB9KTsKK30KK1Rl
c3RzLnRlc3RfZGVsZXRlUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVu
Y3Rpb24oKXsgZ2wuZGVsZXRlUHJvZ3JhbSgpOyB9KTsKK30KK1Rlc3RzLnRlc3RfZGVsZXRlUmVu
ZGVyYnVmZmVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5k
ZWxldGVSZW5kZXJidWZmZXIoKTsgfSk7Cit9CitUZXN0cy50ZXN0X2RlbGV0ZVNoYWRlciA9IGZ1
bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZGVsZXRlU2hhZGVyKCk7
IH0pOworfQorVGVzdHMudGVzdF9kZWxldGVUZXh0dXJlID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5kZWxldGVUZXh0dXJlKCk7IH0pOworfQorVGVzdHMudGVz
dF9kZXB0aEZ1bmMgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGds
LmRlcHRoRnVuYygpOyB9KTsKK30KK1Rlc3RzLnRlc3RfZGVwdGhNYXNrID0gZnVuY3Rpb24oZ2wp
IHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5kZXB0aE1hc2soKTsgfSk7Cit9CitUZXN0
cy50ZXN0X2RlcHRoUmFuZ2UgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLmRlcHRoUmFuZ2UoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZGVw
dGhSYW5nZSgwKTsgfSk7Cit9CitUZXN0cy50ZXN0X2RldGFjaFNoYWRlciA9IGZ1bmN0aW9uKGds
KSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZGV0YWNoU2hhZGVyKCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmRldGFjaFNoYWRlcigwKTsgfSk7Cit9CitUZXN0cy50
ZXN0X2Rpc2FibGUgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGds
LmRpc2FibGUoKTsgfSk7Cit9CitUZXN0cy50ZXN0X2Rpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSA9
IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZGlzYWJsZVZlcnRl
eEF0dHJpYkFycmF5KCk7IH0pOworfQorVGVzdHMudGVzdF9kcmF3QXJyYXlzID0gZnVuY3Rpb24o
Z2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5kcmF3QXJyYXlzKCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmRyYXdBcnJheXMoMCk7IH0pOworICBhc3NlcnRGYWls
KGZ1bmN0aW9uKCl7IGdsLmRyYXdBcnJheXMoMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X2RyYXdF
bGVtZW50cyA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZHJh
d0VsZW1lbnRzKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmRyYXdFbGVtZW50
cygwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZHJhd0VsZW1lbnRzKDAsMCk7
IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmRyYXdFbGVtZW50cygwLDAsMCk7IH0p
OworfQorVGVzdHMudGVzdF9lbmFibGUgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1
bmN0aW9uKCl7IGdsLmVuYWJsZSgpOyB9KTsKK30KK1Rlc3RzLnRlc3RfZW5hYmxlVmVydGV4QXR0
cmliQXJyYXkgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KCk7IH0pOworfQorVGVzdHMudGVzdF9maW5pc2ggPSBmdW5j
dGlvbihnbCkgeworfQorVGVzdHMudGVzdF9mbHVzaCA9IGZ1bmN0aW9uKGdsKSB7Cit9CitUZXN0
cy50ZXN0X2ZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0
RmFpbChmdW5jdGlvbigpeyBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigpOyB9KTsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigwKTsgfSk7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMCwwKTsg
fSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
MCwwLDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfZnJhbWVidWZmZXJUZXh0dXJlMkQgPSBmdW5jdGlv
bihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJE
KCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJE
KDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5mcmFtZWJ1ZmZlclRleHR1cmUy
RCgwLDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5mcmFtZWJ1ZmZlclRleHR1
cmUyRCgwLDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmZyYW1lYnVmZmVy
VGV4dHVyZTJEKDAsMCwwLDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfZnJvbnRGYWNlID0gZnVuY3Rp
b24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5mcm9udEZhY2UoKTsgfSk7Cit9
CitUZXN0cy50ZXN0X2NyZWF0ZUJ1ZmZlciA9IGZ1bmN0aW9uKGdsKSB7Cit9CitUZXN0cy50ZXN0
X2dlbmVyYXRlTWlwbWFwID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigp
eyBnbC5nZW5lcmF0ZU1pcG1hcCgpOyB9KTsKK30KK1Rlc3RzLnRlc3RfY3JlYXRlRnJhbWVidWZm
ZXIgPSBmdW5jdGlvbihnbCkgeworfQorVGVzdHMudGVzdF9jcmVhdGVSZW5kZXJidWZmZXIgPSBm
dW5jdGlvbihnbCkgeworfQorVGVzdHMudGVzdF9jcmVhdGVUZXh0dXJlID0gZnVuY3Rpb24oZ2wp
IHsKK30KK1Rlc3RzLnRlc3RfZ2V0QWN0aXZlQXR0cmliID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRBY3RpdmVBdHRyaWIoKTsgfSk7CisgIGFzc2VydEZh
aWwoZnVuY3Rpb24oKXsgZ2wuZ2V0QWN0aXZlQXR0cmliKDApOyB9KTsKK30KK1Rlc3RzLnRlc3Rf
Z2V0QWN0aXZlVW5pZm9ybSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wuZ2V0QWN0aXZlVW5pZm9ybSgpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBn
bC5nZXRBY3RpdmVVbmlmb3JtKDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfZ2V0QXR0YWNoZWRTaGFk
ZXJzID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRBdHRh
Y2hlZFNoYWRlcnMoKTsgfSk7Cit9CitUZXN0cy50ZXN0X2dldEF0dHJpYkxvY2F0aW9uID0gZnVu
Y3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRBdHRyaWJMb2NhdGlv
bigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRBdHRyaWJMb2NhdGlvbigw
KTsgfSk7Cit9CitUZXN0cy50ZXN0X2dldEJ1ZmZlclBhcmFtZXRlcmkgPSBmdW5jdGlvbihnbCkg
eworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmdldEJ1ZmZlclBhcmFtZXRlcmkoKTsgfSk7
CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyaSgwKTsgfSk7
Cit9CitUZXN0cy50ZXN0X2dldEVycm9yID0gZnVuY3Rpb24oZ2wpIHsKK30KK1Rlc3RzLnRlc3Rf
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFz
c2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
aSgpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXJpKDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpKDAsMCk7IH0pOworfQorVGVzdHMudGVzdF9n
ZXRQcm9ncmFtSW5mb0xvZyA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wuZ2V0UHJvZ3JhbUluZm9Mb2coKTsgfSk7Cit9CitUZXN0cy50ZXN0X2dldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcmkgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7
IGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcmkoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rp
b24oKXsgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaSgwKTsgfSk7Cit9CitUZXN0cy50ZXN0
X2dldFNoYWRlckluZm9Mb2cgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLmdldFNoYWRlckluZm9Mb2coKTsgfSk7Cit9CitUZXN0cy50ZXN0X2dldFNoYWRlclNv
dXJjZSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZ2V0U2hh
ZGVyU291cmNlKCk7IH0pOworfQorVGVzdHMudGVzdF9nZXRVbmlmb3JtTG9jYXRpb24gPSBmdW5j
dGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
MCk7IH0pOworfQorVGVzdHMudGVzdF9oaW50ID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFp
bChmdW5jdGlvbigpeyBnbC5oaW50KCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGds
LmhpbnQoMCk7IH0pOworfQorVGVzdHMudGVzdF9pc0J1ZmZlciA9IGZ1bmN0aW9uKGdsKSB7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuaXNCdWZmZXIoKTsgfSk7Cit9CitUZXN0cy50ZXN0
X2lzRW5hYmxlZCA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
aXNFbmFibGVkKCk7IH0pOworfQorVGVzdHMudGVzdF9pc0ZyYW1lYnVmZmVyID0gZnVuY3Rpb24o
Z2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5pc0ZyYW1lYnVmZmVyKCk7IH0pOwor
fQorVGVzdHMudGVzdF9pc1Byb2dyYW0gPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1
bmN0aW9uKCl7IGdsLmlzUHJvZ3JhbSgpOyB9KTsKK30KK1Rlc3RzLnRlc3RfaXNSZW5kZXJidWZm
ZXIgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmlzUmVuZGVy
YnVmZmVyKCk7IH0pOworfQorVGVzdHMudGVzdF9pc1NoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuaXNTaGFkZXIoKTsgfSk7Cit9CitUZXN0cy50ZXN0
X2lzVGV4dHVyZSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
aXNUZXh0dXJlKCk7IH0pOworfQorVGVzdHMudGVzdF9saW5lV2lkdGggPSBmdW5jdGlvbihnbCkg
eworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmxpbmVXaWR0aCgpOyB9KTsKK30KK1Rlc3Rz
LnRlc3RfbGlua1Byb2dyYW0gPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLmxpbmtQcm9ncmFtKCk7IH0pOworfQorVGVzdHMudGVzdF9wb2x5Z29uT2Zmc2V0ID0g
ZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5wb2x5Z29uT2Zmc2V0
KCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnBvbHlnb25PZmZzZXQoMCk7IH0p
OworfQorVGVzdHMudGVzdF9yZWFkUGl4ZWxzID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFp
bChmdW5jdGlvbigpeyBnbC5yZWFkUGl4ZWxzKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLnJlYWRQaXhlbHMoMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnJl
YWRQaXhlbHMoMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wucmVhZFBpeGVs
cygwLDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnJlYWRQaXhlbHMoMCww
LDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnJlYWRQaXhlbHMoMCwwLDAs
MCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3JlbmRlcmJ1ZmZlclN0b3JhZ2UgPSBmdW5jdGlvbihn
bCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoKTsg
fSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZSgwKTsg
fSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZSgwLDAp
OyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKDAs
MCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3NhbXBsZUNvdmVyYWdlID0gZnVuY3Rpb24oZ2wpIHsK
KyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zYW1wbGVDb3ZlcmFnZSgpOyB9KTsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zYW1wbGVDb3ZlcmFnZSgwKTsgfSk7Cit9CitUZXN0cy50
ZXN0X3NjaXNzb3IgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGds
LnNjaXNzb3IoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuc2Npc3NvcigwKTsg
fSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuc2Npc3NvcigwLDApOyB9KTsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zY2lzc29yKDAsMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0
X3NoYWRlclNvdXJjZSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsg
Z2wuc2hhZGVyU291cmNlKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnNoYWRl
clNvdXJjZSgwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3N0ZW5jaWxGdW5jID0gZnVuY3Rpb24oZ2wp
IHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zdGVuY2lsRnVuYygpOyB9KTsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zdGVuY2lsRnVuYygwKTsgfSk7CisgIGFzc2VydEZhaWwo
ZnVuY3Rpb24oKXsgZ2wuc3RlbmNpbEZ1bmMoMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3N0ZW5j
aWxGdW5jU2VwYXJhdGUgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7
IGdsLnN0ZW5jaWxGdW5jU2VwYXJhdGUoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsg
Z2wuc3RlbmNpbEZ1bmNTZXBhcmF0ZSgwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsg
Z2wuc3RlbmNpbEZ1bmNTZXBhcmF0ZSgwLDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigp
eyBnbC5zdGVuY2lsRnVuY1NlcGFyYXRlKDAsMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3N0ZW5j
aWxNYXNrID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zdGVu
Y2lsTWFzaygpOyB9KTsKK30KK1Rlc3RzLnRlc3Rfc3RlbmNpbE1hc2tTZXBhcmF0ZSA9IGZ1bmN0
aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuc3RlbmNpbE1hc2tTZXBhcmF0
ZSgpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zdGVuY2lsTWFza1NlcGFyYXRl
KDApOyB9KTsKK30KK1Rlc3RzLnRlc3Rfc3RlbmNpbE9wID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zdGVuY2lsT3AoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVu
Y3Rpb24oKXsgZ2wuc3RlbmNpbE9wKDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBn
bC5zdGVuY2lsT3AoMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3N0ZW5jaWxPcFNlcGFyYXRlID0g
ZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zdGVuY2lsT3BTZXBh
cmF0ZSgpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5zdGVuY2lsT3BTZXBhcmF0
ZSgwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuc3RlbmNpbE9wU2VwYXJhdGUo
MCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuc3RlbmNpbE9wU2VwYXJhdGUo
MCwwLDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfdGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudGV4SW1hZ2UyRCgpOyB9KTsKKyAgYXNzZXJ0RmFp
bChmdW5jdGlvbigpeyBnbC50ZXhJbWFnZTJEKDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpeyBnbC50ZXhJbWFnZTJEKDAsMCk7IH0pOworfQorVGVzdHMudGVzdF90ZXhQYXJhbWV0ZXJp
ID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC50ZXhQYXJhbWV0
ZXJpKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnRleFBhcmFtZXRlcmkoMCk7
IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnRleFBhcmFtZXRlcmkoMCwwKTsgfSk7
Cit9CitUZXN0cy50ZXN0X3RleFN1YkltYWdlMkQgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRG
YWlsKGZ1bmN0aW9uKCl7IGdsLnRleFN1YkltYWdlMkQoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVu
Y3Rpb24oKXsgZ2wudGV4U3ViSW1hZ2UyRCgwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wudGV4U3ViSW1hZ2UyRCgwLDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBn
bC50ZXhTdWJJbWFnZTJEKDAsMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
dGV4U3ViSW1hZ2UyRCgwLDAsMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
dGV4U3ViSW1hZ2UyRCgwLDAsMCwwLDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBn
bC50ZXhTdWJJbWFnZTJEKDAsMCwwLDAsMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wudGV4U3ViSW1hZ2UyRCgwLDAsMCwwLDAsMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVu
Y3Rpb24oKXsgZ2wudGV4U3ViSW1hZ2UyRCgwLDAsMCwwLDAsMCwwLDApOyB9KTsKK30KK1Rlc3Rz
LnRlc3RfdW5pZm9ybTFmID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigp
eyBnbC51bmlmb3JtMWYoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9y
bTFmKDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfdW5pZm9ybTFmdiA9IGZ1bmN0aW9uKGdsKSB7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTFmdigpOyB9KTsKKyAgYXNzZXJ0RmFp
bChmdW5jdGlvbigpeyBnbC51bmlmb3JtMWZ2KDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfdW5pZm9y
bTFpID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3Jt
MWkoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTFpKDApOyB9KTsK
K30KK1Rlc3RzLnRlc3RfdW5pZm9ybTFpdiA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwo
ZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTFpdigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigp
eyBnbC51bmlmb3JtMWl2KDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfdW5pZm9ybTJmID0gZnVuY3Rp
b24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtMmYoKTsgfSk7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTJmKDApOyB9KTsKKyAgYXNzZXJ0RmFp
bChmdW5jdGlvbigpeyBnbC51bmlmb3JtMmYoMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3VuaWZv
cm0yZnYgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZv
cm0yZnYoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTJmdigwKTsg
fSk7Cit9CitUZXN0cy50ZXN0X3VuaWZvcm0yaSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZh
aWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTJpKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLnVuaWZvcm0yaSgwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5p
Zm9ybTJpKDAsMCk7IH0pOworfQorVGVzdHMudGVzdF91bmlmb3JtMml2ID0gZnVuY3Rpb24oZ2wp
IHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtMml2KCk7IH0pOworICBhc3Nl
cnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm0yaXYoMCk7IH0pOworfQorVGVzdHMudGVzdF91
bmlmb3JtM2YgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVu
aWZvcm0zZigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtM2YoMCk7
IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm0zZigwLDApOyB9KTsKKyAg
YXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtM2YoMCwwLDApOyB9KTsKK30KK1Rlc3Rz
LnRlc3RfdW5pZm9ybTNmdiA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wudW5pZm9ybTNmdigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlm
b3JtM2Z2KDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfdW5pZm9ybTNpID0gZnVuY3Rpb24oZ2wpIHsK
KyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtM2koKTsgfSk7CisgIGFzc2VydEZh
aWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTNpKDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpeyBnbC51bmlmb3JtM2koMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
dW5pZm9ybTNpKDAsMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3VuaWZvcm0zaXYgPSBmdW5jdGlv
bihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm0zaXYoKTsgfSk7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTNpdigwKTsgfSk7Cit9CitUZXN0cy50
ZXN0X3VuaWZvcm00ZiA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsg
Z2wudW5pZm9ybTRmKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm00
ZigwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTRmKDAsMCk7IH0p
OworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm00ZigwLDAsMCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm00ZigwLDAsMCwwKTsgfSk7Cit9CitUZXN0
cy50ZXN0X3VuaWZvcm00ZnYgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLnVuaWZvcm00ZnYoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5p
Zm9ybTRmdigwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3VuaWZvcm00aSA9IGZ1bmN0aW9uKGdsKSB7
CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTRpKCk7IH0pOworICBhc3NlcnRG
YWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm00aSgwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rp
b24oKXsgZ2wudW5pZm9ybTRpKDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGds
LnVuaWZvcm00aSgwLDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZv
cm00aSgwLDAsMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3VuaWZvcm00aXYgPSBmdW5jdGlvbihn
bCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm00aXYoKTsgfSk7CisgIGFz
c2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybTRpdigwKTsgfSk7Cit9CitUZXN0cy50ZXN0
X3VuaWZvcm1NYXRyaXgyZnYgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9u
KCl7IGdsLnVuaWZvcm1NYXRyaXgyZnYoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsg
Z2wudW5pZm9ybU1hdHJpeDJmdigwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
dW5pZm9ybU1hdHJpeDJmdigwLDApOyB9KTsKK30KK1Rlc3RzLnRlc3RfdW5pZm9ybU1hdHJpeDNm
diA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudW5pZm9ybU1h
dHJpeDNmdigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtTWF0cml4
M2Z2KDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtTWF0cml4M2Z2
KDAsMCk7IH0pOworfQorVGVzdHMudGVzdF91bmlmb3JtTWF0cml4NGZ2ID0gZnVuY3Rpb24oZ2wp
IHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC51bmlmb3JtTWF0cml4NGZ2KCk7IH0pOwor
ICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm1NYXRyaXg0ZnYoMCk7IH0pOworICBh
c3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnVuaWZvcm1NYXRyaXg0ZnYoMCwwKTsgfSk7Cit9CitU
ZXN0cy50ZXN0X3VzZVByb2dyYW0gPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0
aW9uKCl7IGdsLnVzZVByb2dyYW0oKTsgfSk7Cit9CitUZXN0cy50ZXN0X3ZhbGlkYXRlUHJvZ3Jh
bSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmFsaWRhdGVQ
cm9ncmFtKCk7IH0pOworfQorVGVzdHMudGVzdF92ZXJ0ZXhBdHRyaWIxZiA9IGZ1bmN0aW9uKGds
KSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4QXR0cmliMWYoKTsgfSk7Cisg
IGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4QXR0cmliMWYoMCk7IH0pOworfQorVGVz
dHMudGVzdF92ZXJ0ZXhBdHRyaWIxZnYgPSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1
bmN0aW9uKCl7IGdsLnZlcnRleEF0dHJpYjFmdigpOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpeyBnbC52ZXJ0ZXhBdHRyaWIxZnYoMCk7IH0pOworfQorVGVzdHMudGVzdF92ZXJ0ZXhBdHRy
aWIyZiA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4
QXR0cmliMmYoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4QXR0cmli
MmYoMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZlcnRleEF0dHJpYjJmKDAs
MCk7IH0pOworfQorVGVzdHMudGVzdF92ZXJ0ZXhBdHRyaWIyZnYgPSBmdW5jdGlvbihnbCkgewor
ICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZlcnRleEF0dHJpYjJmdigpOyB9KTsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC52ZXJ0ZXhBdHRyaWIyZnYoMCk7IH0pOworfQorVGVzdHMu
dGVzdF92ZXJ0ZXhBdHRyaWIzZiA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rp
b24oKXsgZ2wudmVydGV4QXR0cmliM2YoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsg
Z2wudmVydGV4QXR0cmliM2YoMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZl
cnRleEF0dHJpYjNmKDAsMCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZlcnRl
eEF0dHJpYjNmKDAsMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3ZlcnRleEF0dHJpYjNmdiA9IGZ1
bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4QXR0cmliM2Z2
KCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZlcnRleEF0dHJpYjNmdigwKTsg
fSk7Cit9CitUZXN0cy50ZXN0X3ZlcnRleEF0dHJpYjRmID0gZnVuY3Rpb24oZ2wpIHsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC52ZXJ0ZXhBdHRyaWI0ZigpOyB9KTsKKyAgYXNzZXJ0RmFp
bChmdW5jdGlvbigpeyBnbC52ZXJ0ZXhBdHRyaWI0ZigwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVu
Y3Rpb24oKXsgZ2wudmVydGV4QXR0cmliNGYoMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rp
b24oKXsgZ2wudmVydGV4QXR0cmliNGYoMCwwLDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpeyBnbC52ZXJ0ZXhBdHRyaWI0ZigwLDAsMCwwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3ZlcnRl
eEF0dHJpYjRmdiA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
dmVydGV4QXR0cmliNGZ2KCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZlcnRl
eEF0dHJpYjRmdigwKTsgfSk7Cit9CitUZXN0cy50ZXN0X3ZlcnRleEF0dHJpYlBvaW50ZXIgPSBm
dW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZlcnRleEF0dHJpYlBv
aW50ZXIoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4QXR0cmliUG9p
bnRlcigwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4QXR0cmliUG9p
bnRlcigwLDApOyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKDAsMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVydGV4QXR0
cmliUG9pbnRlcigwLDAsMCwwKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wudmVy
dGV4QXR0cmliUG9pbnRlcigwLDAsMCwwLDApOyB9KTsKK30KK1Rlc3RzLnRlc3Rfdmlld3BvcnQg
PSBmdW5jdGlvbihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZpZXdwb3J0KCk7
IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLnZpZXdwb3J0KDApOyB9KTsKKyAgYXNz
ZXJ0RmFpbChmdW5jdGlvbigpeyBnbC52aWV3cG9ydCgwLDApOyB9KTsKKyAgYXNzZXJ0RmFpbChm
dW5jdGlvbigpeyBnbC52aWV3cG9ydCgwLDAsMCk7IH0pOworfQorVGVzdHMudGVzdF9jdXJyZW50
QXJyYXlCdWZmZXJCaW5kaW5nID0gZnVuY3Rpb24oZ2wpIHsKK30KK1Rlc3RzLnRlc3RfY3VycmVu
dEVsZW1lbnRBcnJheUJ1ZmZlckJpbmRpbmcgPSBmdW5jdGlvbihnbCkgeworfQorVGVzdHMudGVz
dF9jdXJyZW50RnJhbWVidWZmZXJCaW5kaW5nID0gZnVuY3Rpb24oZ2wpIHsKK30KK1Rlc3RzLnRl
c3RfY3VycmVudFJlbmRlcmJ1ZmZlckJpbmRpbmcgPSBmdW5jdGlvbihnbCkgeworfQorVGVzdHMu
dGVzdF9jdXJyZW50VGV4dHVyZUJpbmRpbmcyRCA9IGZ1bmN0aW9uKGdsKSB7Cit9CitUZXN0cy50
ZXN0X2N1cnJlbnRUZXh0dXJlQmluZGluZ0N1YmVNYXAgPSBmdW5jdGlvbihnbCkgeworfQorVGVz
dHMudGVzdF9jdXJyZW50UHJvZ3JhbSA9IGZ1bmN0aW9uKGdsKSB7Cit9CitUZXN0cy50ZXN0X2dl
dFBhcmFtZXRlciA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wu
Z2V0UGFyYW1ldGVyKCk7IH0pOworfQorVGVzdHMudGVzdF9nZXRQcm9ncmFtUGFyYW1ldGVyID0g
ZnVuY3Rpb24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKCk7IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmdldFByb2dyYW1QYXJh
bWV0ZXIoMCk7IH0pOworfQorVGVzdHMudGVzdF9nZXRTaGFkZXJQYXJhbWV0ZXIgPSBmdW5jdGlv
bihnbCkgeworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmdldFNoYWRlclBhcmFtZXRlcigp
OyB9KTsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoMCk7
IH0pOworfQorVGVzdHMudGVzdF9nZXRUZXhQYXJhbWV0ZXJpID0gZnVuY3Rpb24oZ2wpIHsKKyAg
YXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRUZXhQYXJhbWV0ZXJpKCk7IH0pOworICBhc3Nl
cnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmdldFRleFBhcmFtZXRlcmkoMCk7IH0pOworfQorVGVzdHMu
dGVzdF9nZXRVbmlmb3JtaSA9IGZ1bmN0aW9uKGdsKSB7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXsgZ2wuZ2V0VW5pZm9ybWkoKTsgfSk7CisgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXsgZ2wuZ2V0
VW5pZm9ybWkoMCk7IH0pOworfQorVGVzdHMudGVzdF9nZXRWZXJ0ZXhBdHRyaWJpID0gZnVuY3Rp
b24oZ2wpIHsKKyAgYXNzZXJ0RmFpbChmdW5jdGlvbigpeyBnbC5nZXRWZXJ0ZXhBdHRyaWJpKCk7
IH0pOworICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7IGdsLmdldFZlcnRleEF0dHJpYmkoMCk7IH0p
OworfQorVGVzdHMudGVzdF9wcmVzZW50ID0gZnVuY3Rpb24oZ2wpIHsKK30KK1Rlc3RzLnN0YXJ0
VW5pdCA9IGZ1bmN0aW9uKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2dsJyk7CisgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykp
OworICByZXR1cm4gW2dsXTsKK30KKworPC9zY3JpcHQ+Cis8c3R5bGU+Y2FudmFzeyBwb3NpdGlv
bjphYnNvbHV0ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+CisgIDxjYW52YXMgaWQ9ImdsIiB3
aWR0aD0iMSIgaGVpZ2h0PSIxIj48L2NhbnZhcz4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2NvbmZvcm1hbmNlL2NvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9jb25z
dGFudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTMzYTkyOWM0YTUxNDA2MDg3YTQzZDBlMzIxYzEyMjkx
ZGMxNzk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9jb25zdGFudHMuaHRt
bApAQCAtMCwwICsxLDM3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQor
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgor
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0t
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5j
c3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91
bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0
IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHQiPgorCisvKgorICBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBnZW5lcmF0ZWQg
ZnJvbQorICBodHRwOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L2dsZXMvYXBpLzIuMC9nbDIu
aAorICBhbmQgYXBpX21vZGlmaWNhdGlvbnMudHh0CisqLwordmFyIGNvbnN0YW50cyA9IHsKK0RF
UFRIX0JVRkZFUl9CSVQgOiAweDAwMDAwMTAwLAorU1RFTkNJTF9CVUZGRVJfQklUIDogMHgwMDAw
MDQwMCwKK0NPTE9SX0JVRkZFUl9CSVQgOiAweDAwMDA0MDAwLAorUE9JTlRTIDogMHgwMDAwLAor
TElORVMgOiAweDAwMDEsCitMSU5FX0xPT1AgOiAweDAwMDIsCitMSU5FX1NUUklQIDogMHgwMDAz
LAorVFJJQU5HTEVTIDogMHgwMDA0LAorVFJJQU5HTEVfU1RSSVAgOiAweDAwMDUsCitUUklBTkdM
RV9GQU4gOiAweDAwMDYsCitaRVJPIDogMCwKK09ORSA6IDEsCitTUkNfQ09MT1IgOiAweDAzMDAs
CitPTkVfTUlOVVNfU1JDX0NPTE9SIDogMHgwMzAxLAorU1JDX0FMUEhBIDogMHgwMzAyLAorT05F
X01JTlVTX1NSQ19BTFBIQSA6IDB4MDMwMywKK0RTVF9BTFBIQSA6IDB4MDMwNCwKK09ORV9NSU5V
U19EU1RfQUxQSEEgOiAweDAzMDUsCitEU1RfQ09MT1IgOiAweDAzMDYsCitPTkVfTUlOVVNfRFNU
X0NPTE9SIDogMHgwMzA3LAorU1JDX0FMUEhBX1NBVFVSQVRFIDogMHgwMzA4LAorRlVOQ19BREQg
OiAweDgwMDYsCitCTEVORF9FUVVBVElPTiA6IDB4ODAwOSwKK0JMRU5EX0VRVUFUSU9OX1JHQiA6
IDB4ODAwOSwKK0JMRU5EX0VRVUFUSU9OX0FMUEhBIDogMHg4ODNELAorRlVOQ19TVUJUUkFDVCA6
IDB4ODAwQSwKK0ZVTkNfUkVWRVJTRV9TVUJUUkFDVCA6IDB4ODAwQiwKK0JMRU5EX0RTVF9SR0Ig
OiAweDgwQzgsCitCTEVORF9TUkNfUkdCIDogMHg4MEM5LAorQkxFTkRfRFNUX0FMUEhBIDogMHg4
MENBLAorQkxFTkRfU1JDX0FMUEhBIDogMHg4MENCLAorQ09OU1RBTlRfQ09MT1IgOiAweDgwMDEs
CitPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IgOiAweDgwMDIsCitDT05TVEFOVF9BTFBIQSA6IDB4
ODAwMywKK09ORV9NSU5VU19DT05TVEFOVF9BTFBIQSA6IDB4ODAwNCwKK0JMRU5EX0NPTE9SIDog
MHg4MDA1LAorQVJSQVlfQlVGRkVSIDogMHg4ODkyLAorRUxFTUVOVF9BUlJBWV9CVUZGRVIgOiAw
eDg4OTMsCitBUlJBWV9CVUZGRVJfQklORElORyA6IDB4ODg5NCwKK0VMRU1FTlRfQVJSQVlfQlVG
RkVSX0JJTkRJTkcgOiAweDg4OTUsCitTVFJFQU1fRFJBVyA6IDB4ODhFMCwKK1NUQVRJQ19EUkFX
IDogMHg4OEU0LAorRFlOQU1JQ19EUkFXIDogMHg4OEU4LAorQlVGRkVSX1NJWkUgOiAweDg3NjQs
CitCVUZGRVJfVVNBR0UgOiAweDg3NjUsCitDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgOiAweDg2MjYs
CitGUk9OVCA6IDB4MDQwNCwKK0JBQ0sgOiAweDA0MDUsCitGUk9OVF9BTkRfQkFDSyA6IDB4MDQw
OCwKK1RFWFRVUkVfMkQgOiAweDBERTEsCitDVUxMX0ZBQ0UgOiAweDBCNDQsCitCTEVORCA6IDB4
MEJFMiwKK0RJVEhFUiA6IDB4MEJEMCwKK1NURU5DSUxfVEVTVCA6IDB4MEI5MCwKK0RFUFRIX1RF
U1QgOiAweDBCNzEsCitTQ0lTU09SX1RFU1QgOiAweDBDMTEsCitQT0xZR09OX09GRlNFVF9GSUxM
IDogMHg4MDM3LAorU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFIDogMHg4MDlFLAorU0FNUExFX0NP
VkVSQUdFIDogMHg4MEEwLAorTk9fRVJST1IgOiAwLAorSU5WQUxJRF9FTlVNIDogMHgwNTAwLAor
SU5WQUxJRF9WQUxVRSA6IDB4MDUwMSwKK0lOVkFMSURfT1BFUkFUSU9OIDogMHgwNTAyLAorT1VU
X09GX01FTU9SWSA6IDB4MDUwNSwKK0NXIDogMHgwOTAwLAorQ0NXIDogMHgwOTAxLAorTElORV9X
SURUSCA6IDB4MEIyMSwKK0FMSUFTRURfUE9JTlRfU0laRV9SQU5HRSA6IDB4ODQ2RCwKK0FMSUFT
RURfTElORV9XSURUSF9SQU5HRSA6IDB4ODQ2RSwKK0NVTExfRkFDRV9NT0RFIDogMHgwQjQ1LAor
RlJPTlRfRkFDRSA6IDB4MEI0NiwKK0RFUFRIX1JBTkdFIDogMHgwQjcwLAorREVQVEhfV1JJVEVN
QVNLIDogMHgwQjcyLAorREVQVEhfQ0xFQVJfVkFMVUUgOiAweDBCNzMsCitERVBUSF9GVU5DIDog
MHgwQjc0LAorU1RFTkNJTF9DTEVBUl9WQUxVRSA6IDB4MEI5MSwKK1NURU5DSUxfRlVOQyA6IDB4
MEI5MiwKK1NURU5DSUxfRkFJTCA6IDB4MEI5NCwKK1NURU5DSUxfUEFTU19ERVBUSF9GQUlMIDog
MHgwQjk1LAorU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgOiAweDBCOTYsCitTVEVOQ0lMX1JFRiA6
IDB4MEI5NywKK1NURU5DSUxfVkFMVUVfTUFTSyA6IDB4MEI5MywKK1NURU5DSUxfV1JJVEVNQVNL
IDogMHgwQjk4LAorU1RFTkNJTF9CQUNLX0ZVTkMgOiAweDg4MDAsCitTVEVOQ0lMX0JBQ0tfRkFJ
TCA6IDB4ODgwMSwKK1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgOiAweDg4MDIsCitTVEVO
Q0lMX0JBQ0tfUEFTU19ERVBUSF9QQVNTIDogMHg4ODAzLAorU1RFTkNJTF9CQUNLX1JFRiA6IDB4
OENBMywKK1NURU5DSUxfQkFDS19WQUxVRV9NQVNLIDogMHg4Q0E0LAorU1RFTkNJTF9CQUNLX1dS
SVRFTUFTSyA6IDB4OENBNSwKK1ZJRVdQT1JUIDogMHgwQkEyLAorU0NJU1NPUl9CT1ggOiAweDBD
MTAsCitDT0xPUl9DTEVBUl9WQUxVRSA6IDB4MEMyMiwKK0NPTE9SX1dSSVRFTUFTSyA6IDB4MEMy
MywKK1VOUEFDS19BTElHTk1FTlQgOiAweDBDRjUsCitQQUNLX0FMSUdOTUVOVCA6IDB4MEQwNSwK
K01BWF9URVhUVVJFX1NJWkUgOiAweDBEMzMsCitNQVhfVklFV1BPUlRfRElNUyA6IDB4MEQzQSwK
K1NVQlBJWEVMX0JJVFMgOiAweDBENTAsCitSRURfQklUUyA6IDB4MEQ1MiwKK0dSRUVOX0JJVFMg
OiAweDBENTMsCitCTFVFX0JJVFMgOiAweDBENTQsCitBTFBIQV9CSVRTIDogMHgwRDU1LAorREVQ
VEhfQklUUyA6IDB4MEQ1NiwKK1NURU5DSUxfQklUUyA6IDB4MEQ1NywKK1BPTFlHT05fT0ZGU0VU
X1VOSVRTIDogMHgyQTAwLAorUE9MWUdPTl9PRkZTRVRfRkFDVE9SIDogMHg4MDM4LAorVEVYVFVS
RV9CSU5ESU5HXzJEIDogMHg4MDY5LAorU0FNUExFX0JVRkZFUlMgOiAweDgwQTgsCitTQU1QTEVT
IDogMHg4MEE5LAorU0FNUExFX0NPVkVSQUdFX1ZBTFVFIDogMHg4MEFBLAorU0FNUExFX0NPVkVS
QUdFX0lOVkVSVCA6IDB4ODBBQiwKK0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTIDogMHg4NkEz
LAorRE9OVF9DQVJFIDogMHgxMTAwLAorRkFTVEVTVCA6IDB4MTEwMSwKK05JQ0VTVCA6IDB4MTEw
MiwKK0dFTkVSQVRFX01JUE1BUF9ISU5UIDogMHg4MTkyLAorQllURSA6IDB4MTQwMCwKK1VOU0lH
TkVEX0JZVEUgOiAweDE0MDEsCitTSE9SVCA6IDB4MTQwMiwKK1VOU0lHTkVEX1NIT1JUIDogMHgx
NDAzLAorSU5UIDogMHgxNDA0LAorVU5TSUdORURfSU5UIDogMHgxNDA1LAorRkxPQVQgOiAweDE0
MDYsCisvL0ZJWEVEIDogMHgxNDBDLAorREVQVEhfQ09NUE9ORU5UIDogMHgxOTAyLAorQUxQSEEg
OiAweDE5MDYsCitSR0IgOiAweDE5MDcsCitSR0JBIDogMHgxOTA4LAorTFVNSU5BTkNFIDogMHgx
OTA5LAorTFVNSU5BTkNFX0FMUEhBIDogMHgxOTBBLAorVU5TSUdORURfU0hPUlRfNF80XzRfNCA6
IDB4ODAzMywKK1VOU0lHTkVEX1NIT1JUXzVfNV81XzEgOiAweDgwMzQsCitVTlNJR05FRF9TSE9S
VF81XzZfNSA6IDB4ODM2MywKK0ZSQUdNRU5UX1NIQURFUiA6IDB4OEIzMCwKK1ZFUlRFWF9TSEFE
RVIgOiAweDhCMzEsCitNQVhfVkVSVEVYX0FUVFJJQlMgOiAweDg4NjksCitNQVhfVkVSVEVYX1VO
SUZPUk1fVkVDVE9SUyA6IDB4OERGQiwKK01BWF9WQVJZSU5HX1ZFQ1RPUlMgOiAweDhERkMsCitN
QVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUyA6IDB4OEI0RCwKK01BWF9WRVJURVhfVEVY
VFVSRV9JTUFHRV9VTklUUyA6IDB4OEI0QywKK01BWF9URVhUVVJFX0lNQUdFX1VOSVRTIDogMHg4
ODcyLAorTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA6IDB4OERGRCwKK1NIQURFUl9UWVBF
IDogMHg4QjRGLAorREVMRVRFX1NUQVRVUyA6IDB4OEI4MCwKK0xJTktfU1RBVFVTIDogMHg4Qjgy
LAorVkFMSURBVEVfU1RBVFVTIDogMHg4QjgzLAorQVRUQUNIRURfU0hBREVSUyA6IDB4OEI4NSwK
K0FDVElWRV9VTklGT1JNUyA6IDB4OEI4NiwKK0FDVElWRV9BVFRSSUJVVEVTIDogMHg4Qjg5LAor
U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OIDogMHg4QjhDLAorQ1VSUkVOVF9QUk9HUkFNIDogMHg4
QjhELAorTkVWRVIgOiAweDAyMDAsCitMRVNTIDogMHgwMjAxLAorRVFVQUwgOiAweDAyMDIsCitM
RVFVQUwgOiAweDAyMDMsCitHUkVBVEVSIDogMHgwMjA0LAorTk9URVFVQUwgOiAweDAyMDUsCitH
RVFVQUwgOiAweDAyMDYsCitBTFdBWVMgOiAweDAyMDcsCitLRUVQIDogMHgxRTAwLAorUkVQTEFD
RSA6IDB4MUUwMSwKK0lOQ1IgOiAweDFFMDIsCitERUNSIDogMHgxRTAzLAorSU5WRVJUIDogMHgx
NTBBLAorSU5DUl9XUkFQIDogMHg4NTA3LAorREVDUl9XUkFQIDogMHg4NTA4LAorVkVORE9SIDog
MHgxRjAwLAorUkVOREVSRVIgOiAweDFGMDEsCitWRVJTSU9OIDogMHgxRjAyLAorLy9FWFRFTlNJ
T05TIDogMHgxRjAzLAorTkVBUkVTVCA6IDB4MjYwMCwKK0xJTkVBUiA6IDB4MjYwMSwKK05FQVJF
U1RfTUlQTUFQX05FQVJFU1QgOiAweDI3MDAsCitMSU5FQVJfTUlQTUFQX05FQVJFU1QgOiAweDI3
MDEsCitORUFSRVNUX01JUE1BUF9MSU5FQVIgOiAweDI3MDIsCitMSU5FQVJfTUlQTUFQX0xJTkVB
UiA6IDB4MjcwMywKK1RFWFRVUkVfTUFHX0ZJTFRFUiA6IDB4MjgwMCwKK1RFWFRVUkVfTUlOX0ZJ
TFRFUiA6IDB4MjgwMSwKK1RFWFRVUkVfV1JBUF9TIDogMHgyODAyLAorVEVYVFVSRV9XUkFQX1Qg
OiAweDI4MDMsCitURVhUVVJFIDogMHgxNzAyLAorVEVYVFVSRV9DVUJFX01BUCA6IDB4ODUxMywK
K1RFWFRVUkVfQklORElOR19DVUJFX01BUCA6IDB4ODUxNCwKK1RFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWCA6IDB4ODUxNSwKK1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCA6IDB4ODUxNiwK
K1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSA6IDB4ODUxNywKK1RFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWSA6IDB4ODUxOCwKK1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA6IDB4ODUx
OSwKK1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWiA6IDB4ODUxQSwKK01BWF9DVUJFX01BUF9U
RVhUVVJFX1NJWkUgOiAweDg1MUMsCitURVhUVVJFMCA6IDB4ODRDMCwKK1RFWFRVUkUxIDogMHg4
NEMxLAorVEVYVFVSRTIgOiAweDg0QzIsCitURVhUVVJFMyA6IDB4ODRDMywKK1RFWFRVUkU0IDog
MHg4NEM0LAorVEVYVFVSRTUgOiAweDg0QzUsCitURVhUVVJFNiA6IDB4ODRDNiwKK1RFWFRVUkU3
IDogMHg4NEM3LAorVEVYVFVSRTggOiAweDg0QzgsCitURVhUVVJFOSA6IDB4ODRDOSwKK1RFWFRV
UkUxMCA6IDB4ODRDQSwKK1RFWFRVUkUxMSA6IDB4ODRDQiwKK1RFWFRVUkUxMiA6IDB4ODRDQywK
K1RFWFRVUkUxMyA6IDB4ODRDRCwKK1RFWFRVUkUxNCA6IDB4ODRDRSwKK1RFWFRVUkUxNSA6IDB4
ODRDRiwKK1RFWFRVUkUxNiA6IDB4ODREMCwKK1RFWFRVUkUxNyA6IDB4ODREMSwKK1RFWFRVUkUx
OCA6IDB4ODREMiwKK1RFWFRVUkUxOSA6IDB4ODREMywKK1RFWFRVUkUyMCA6IDB4ODRENCwKK1RF
WFRVUkUyMSA6IDB4ODRENSwKK1RFWFRVUkUyMiA6IDB4ODRENiwKK1RFWFRVUkUyMyA6IDB4ODRE
NywKK1RFWFRVUkUyNCA6IDB4ODREOCwKK1RFWFRVUkUyNSA6IDB4ODREOSwKK1RFWFRVUkUyNiA6
IDB4ODREQSwKK1RFWFRVUkUyNyA6IDB4ODREQiwKK1RFWFRVUkUyOCA6IDB4ODREQywKK1RFWFRV
UkUyOSA6IDB4ODRERCwKK1RFWFRVUkUzMCA6IDB4ODRERSwKK1RFWFRVUkUzMSA6IDB4ODRERiwK
K0FDVElWRV9URVhUVVJFIDogMHg4NEUwLAorUkVQRUFUIDogMHgyOTAxLAorQ0xBTVBfVE9fRURH
RSA6IDB4ODEyRiwKK01JUlJPUkVEX1JFUEVBVCA6IDB4ODM3MCwKK0ZMT0FUX1ZFQzIgOiAweDhC
NTAsCitGTE9BVF9WRUMzIDogMHg4QjUxLAorRkxPQVRfVkVDNCA6IDB4OEI1MiwKK0lOVF9WRUMy
IDogMHg4QjUzLAorSU5UX1ZFQzMgOiAweDhCNTQsCitJTlRfVkVDNCA6IDB4OEI1NSwKK0JPT0wg
OiAweDhCNTYsCitCT09MX1ZFQzIgOiAweDhCNTcsCitCT09MX1ZFQzMgOiAweDhCNTgsCitCT09M
X1ZFQzQgOiAweDhCNTksCitGTE9BVF9NQVQyIDogMHg4QjVBLAorRkxPQVRfTUFUMyA6IDB4OEI1
QiwKK0ZMT0FUX01BVDQgOiAweDhCNUMsCitTQU1QTEVSXzJEIDogMHg4QjVFLAorU0FNUExFUl9D
VUJFIDogMHg4QjYwLAorVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEIDogMHg4NjIyLAorVkVS
VEVYX0FUVFJJQl9BUlJBWV9TSVpFIDogMHg4NjIzLAorVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJ
REUgOiAweDg2MjQsCitWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgOiAweDg2MjUsCitWRVJURVhf
QVRUUklCX0FSUkFZX05PUk1BTElaRUQgOiAweDg4NkEsCitWRVJURVhfQVRUUklCX0FSUkFZX1BP
SU5URVIgOiAweDg2NDUsCitWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HIDogMHg4
ODlGLAorLy9JTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX1RZUEUgOiAweDhCOUEsCisvL0lNUExF
TUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUIDogMHg4QjlCLAorQ09NUElMRV9TVEFUVVMgOiAw
eDhCODEsCisvL1NIQURFUl9DT01QSUxFUiA6IDB4OERGQSwKK0xPV19GTE9BVCA6IDB4OERGMCwK
K01FRElVTV9GTE9BVCA6IDB4OERGMSwKK0hJR0hfRkxPQVQgOiAweDhERjIsCitMT1dfSU5UIDog
MHg4REYzLAorTUVESVVNX0lOVCA6IDB4OERGNCwKK0hJR0hfSU5UIDogMHg4REY1LAorRlJBTUVC
VUZGRVIgOiAweDhENDAsCitSRU5ERVJCVUZGRVIgOiAweDhENDEsCitSR0JBNCA6IDB4ODA1NiwK
K1JHQjVfQTEgOiAweDgwNTcsCitSR0I1NjUgOiAweDhENjIsCitERVBUSF9DT01QT05FTlQxNiA6
IDB4ODFBNSwKK1NURU5DSUxfSU5ERVggOiAweDE5MDEsCitTVEVOQ0lMX0lOREVYOCA6IDB4OEQ0
OCwKK0RFUFRIX1NURU5DSUwgOiAweDg0RjksCitSRU5ERVJCVUZGRVJfV0lEVEggOiAweDhENDIs
CitSRU5ERVJCVUZGRVJfSEVJR0hUIDogMHg4RDQzLAorUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZP
Uk1BVCA6IDB4OEQ0NCwKK1JFTkRFUkJVRkZFUl9SRURfU0laRSA6IDB4OEQ1MCwKK1JFTkRFUkJV
RkZFUl9HUkVFTl9TSVpFIDogMHg4RDUxLAorUkVOREVSQlVGRkVSX0JMVUVfU0laRSA6IDB4OEQ1
MiwKK1JFTkRFUkJVRkZFUl9BTFBIQV9TSVpFIDogMHg4RDUzLAorUkVOREVSQlVGRkVSX0RFUFRI
X1NJWkUgOiAweDhENTQsCitSRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFIDogMHg4RDU1LAorRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSA6IDB4OENEMCwKK0ZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfT0JKRUNUX05BTUUgOiAweDhDRDEsCitGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgOiAweDhDRDIsCitGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VC
RV9NQVBfRkFDRSA6IDB4OENEMywKK0NPTE9SX0FUVEFDSE1FTlQwIDogMHg4Q0UwLAorREVQVEhf
QVRUQUNITUVOVCA6IDB4OEQwMCwKK1NURU5DSUxfQVRUQUNITUVOVCA6IDB4OEQyMCwKK0RFUFRI
X1NURU5DSUxfQVRUQUNITUVOVCA6IDB4ODIxQSwKK05PTkUgOiAwLAorRlJBTUVCVUZGRVJfQ09N
UExFVEUgOiAweDhDRDUsCitGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgOiAweDhD
RDYsCitGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCA6IDB4OENENywK
K0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyA6IDB4OENEOSwKK0ZSQU1FQlVGRkVS
X1VOU1VQUE9SVEVEIDogMHg4Q0RELAorRlJBTUVCVUZGRVJfQklORElORyA6IDB4OENBNiwKK1JF
TkRFUkJVRkZFUl9CSU5ESU5HIDogMHg4Q0E3LAorTUFYX1JFTkRFUkJVRkZFUl9TSVpFIDogMHg4
NEU4LAorSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAweDA1MDYsCisvL0ZBTFNFIDog
MCwKKy8vVFJVRSA6IDEsCitVTlBBQ0tfRkxJUF9ZX1dFQkdMIDogMHg5MjQwLAorVU5QQUNLX1BS
RU1VTFRJUExZX0FMUEhBX1dFQkdMIDogMHg5MjQxCit9CisKK1Rlc3RzLnRlc3RPRVMyMENvbnN0
YW50cyA9IGZ1bmN0aW9uKGdsKSB7CisgIGZvciAodmFyIGkgaW4gY29uc3RhbnRzKSB7CisgICAg
YXNzZXJ0UHJvcGVydHkoZ2wsIGkpICYmCisgICAgYXNzZXJ0RXF1YWxzKGksIGdsW2ldLCBjb25z
dGFudHNbaV0pOworICB9CisgIHZhciBleHRlbmRlZCA9IGZhbHNlOworICBmb3IgKHZhciBpIGlu
IGdsKSB7CisgICAgaWYgKGkubWF0Y2goL15bQS1aX10rJC8pICYmIGNvbnN0YW50c1tpXSA9PSBu
dWxsKSB7CisgICAgICBpZiAoIWV4dGVuZGVkKSB7CisgICAgICAgIGV4dGVuZGVkID0gdHJ1ZTsK
KyAgICAgICAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpOworICAgICAgICBo
LnRleHRDb250ZW50ID0gIkFsc28gZm91bmQgdGhlIGZvbGxvd2luZyBleHRyYSBjb25zdGFudHMi
OworICAgICAgICBfX3Rlc3RMb2dfXy5hcHBlbmRDaGlsZChoKTsKKyAgICAgIH0KKyAgICAgIGxv
ZyhpKTsKKyAgICB9CisgIH0KK30KKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24oKSB7Cisg
IHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0g
d3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7CisgIHJldHVybiBbZ2xdOworfQor
Cis8L3NjcmlwdD4KKzxzdHlsZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4K
KzwvaGVhZD48Ym9keT4KKyAgPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwv
Y2FudmFzPgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvZnV6
elRoZUFQSS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9mdXp6VGhlQVBJLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzQyYTFiNzIzN2QxNGFjOTZlN2RlZDVjMDU1MzBlMmZiYTQ5M2Q5NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvY29uZm9ybWFuY2UvZnV6elRoZUFQSS5odG1sCkBAIC0wLDAgKzEsMTM3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KKzxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKwor
VGVzdHMuYXV0b3J1biA9IGZhbHNlOworVGVzdHMubWVzc2FnZSA9ICJUaGlzIHdpbGwgZnV6eiB0
aGUgQVBJIHdpdGggcmFuZG9tIGlucHV0cyBmb3IgYSBbbG9uZ10gd2hpbGUuIgorCisKK2Z1bmN0
aW9uIHJhbmRvbUNhbGwodGVzdFByb2dyZXNzLCBnbCwgbSwgYXJpdGllcykgeworICAgIGRvVGVz
dE5vdGlmeShtKTsKKyAgICB2YXIgYXJnY3MgPSB7fTsKKyAgICB2YXIgZm91bmRBcml0eSA9IGZh
bHNlOworICAgIGlmIChhcml0aWVzID09IG51bGwpIHsKKyAgICAgICAgdGVzdFByb2dyZXNzLnRl
eHRDb250ZW50ICs9ICIgICAgICAgICAgICA1MDAgcmFuZG9tIGFyaXR5IGNhbGxzIG9uICIgKyBt
ICsgIlxuIjsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDUwOyBpKyspIHsKKyAgICAgICAgICAg
IGZvciAodmFyIGo9MDsgajwxMDsgaisrKSB7CisgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBn
ZW5lcmF0ZVJhbmRvbUFyZ3Moaik7CisvLyAgICAgICAgICAgICAgICAgZG9UZXN0Tm90aWZ5KG0g
KyAiOiAiICsgYXJncy50b1NvdXJjZSgpKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgICAgICBnbFttXS5hcHBseShnbCwgYXJncyk7CisgICAgICAgICAgICAgICAgICAg
IGFyZ2NzW2pdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgZm91bmRBcml0eSA9IHRydWU7
CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBqIGluIGFyZ2NzKSB7CisgICAg
ICAgICAgICB0ZXN0UHJvZ3Jlc3MudGV4dENvbnRlbnQgKz0gIjIwMCBhcml0eSAiICsgaiArICIg
Y2FsbHMgb24gIiArIG0gKyAiXG4iOworICAgICAgICAgICAgZm9yICh2YXIgaT0wOyBpPDIwMDsg
aSsrKSB7CisgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBnZW5lcmF0ZVJhbmRvbUFyZ3Moaik7
CisvLyAgICAgICAgICAgICAgICAgZG9UZXN0Tm90aWZ5KG0gKyAiOiAiICsgYXJncy50b1NvdXJj
ZSgpKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBnbFttXS5h
cHBseShnbCwgYXJncyk7CisgICAgICAgICAgICAgICAgICAgIGFyZ2NzW2pdID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yICh2YXIgaz0wOyBrPGFy
aXRpZXMubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgIHZhciBqID0gYXJpdGllc1trXTsKKyAg
ICAgICAgICAgIHRlc3RQcm9ncmVzcy50ZXh0Q29udGVudCArPSAiNTAwIGFyaXR5ICIgKyBqICsg
IiBjYWxscyBvbiAiICsgbSArICJcbiI7CisgICAgICAgICAgICBmb3IgKHZhciBpPTA7IGk8NTAw
OyBpKyspIHsKKyAgICAgICAgICAgICAgICB2YXIgYXJncyA9IGdlbmVyYXRlUmFuZG9tQXJncyhq
KTsKKy8vICAgICAgICAgICAgICAgICBkb1Rlc3ROb3RpZnkobSArICI6ICIgKyBhcmdzLnRvU291
cmNlKCkpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGdsW21d
LmFwcGx5KGdsLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorLy8gICAgIGRvVGVz
dE5vdGlmeShtKyItLU9LIik7Cit9CisKK1Rlc3RzLnRlc3RHZXRHTFdlYjIwID0gZnVuY3Rpb24o
KSB7CisgICAgdmFyIHRlc3RQcm9ncmVzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
UHJvZ3Jlc3MnKTsKKyAgICB2YXIgZnVuY25hbWVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2Z1bmNuYW1lcycpLnZhbHVlLnNwbGl0KCIsIik7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdnbHdlYjIwJyk7CisgICAgdmFyIGdsOworICAgIGFzc2VydE9rKGZ1
bmN0aW9uKCl7Z2wgPSBnZXRHTENvbnRleHQoY2FudmFzKTt9KTsKKyAgICB2YXIgZnVuY3MgPSBb
XTsKKyAgICBmb3IgKHZhciBpPTA7IGk8ZnVuY25hbWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAg
IHZhciBmbiA9IGZ1bmNuYW1lc1tpXTsKKyAgICAgICAgZm4gPSBmbi5yZXBsYWNlKC9eXHMrfFxz
KyQvZywgJycpOworICAgICAgICBpZiAoZm4ubGVuZ3RoID4gMCkKKyAgICAgICAgICAgIGZ1bmNz
LnB1c2goZm4pOworICAgIH0KKyAgICBpZiAoZnVuY3MubGVuZ3RoID09IDApIHsKKyAgICAgICAg
Zm9yICh2YXIgbSBpbiBnbCkKKyAgICAgICAgICAgIHRyeXtpZiAodHlwZW9mIGdsW21dID09ICdm
dW5jdGlvbicpCisgICAgICAgICAgICAgICAgZnVuY3MucHVzaChtKTt9Y2F0Y2goZSl7fQorICAg
IH0KKyAgICB2YXIgaWR4ID0gMDsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciBsaW1pdCA9
IDEwMDA7CisgICAgdmFyIGl2MTsKKyAgICB2YXIgaXYyOworICAgIGl2MSA9IHNldEludGVydmFs
KGZ1bmN0aW9uKCl7CisgICAgICAgIGlmIChpZHggPj0gZnVuY3MubGVuZ3RoKSB7CisgICAgICAg
ICAgICBpdjIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIGlmIChj
b3VudCA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGl2Mik7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICB2YXIgZiA9IE1hdGguZmxv
b3IoTWF0aC5yYW5kb20oKSAqIGZ1bmNzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmFuZG9t
Q2FsbCh0ZXN0UHJvZ3Jlc3MsIGdsLCBmdW5jc1tmXSk7CisgICAgICAgICAgICB9LCA1MCk7Cisg
ICAgICAgICAgICBjbGVhckludGVydmFsKGl2MSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICAgICAgcmFuZG9tQ2FsbCh0ZXN0UHJvZ3Jlc3MsIGdsLCBmdW5jc1tp
ZHhdKTsKKyAgICAgICAgaWR4Kys7CisgICAgfSwgNTApOworfQorCis8L3NjcmlwdD4KKzxzdHls
ZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKyAg
PGNhbnZhcyBpZD0iZ2x3ZWIyMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4KKyAg
PHA+T3B0aW9uYWw6IEVudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZnVuY3Rpb25zIHRv
IGZ1enogKGxlYXZlIGJsYW5rIGZvciBmdWxsIEFQSSk8L3A+CisgIDxpbnB1dCB0eXBlPSJ0ZXh0
IiBzaXplPSI0MCIgaWQ9ImZ1bmNuYW1lcyIgdmFsdWU9IiI+CisgIDxwcmUgaWQ9InRlc3RQcm9n
cmVzcyI+PC9wcmU+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5j
ZS9nZXRDb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2NvbmZvcm1hbmNlL2dldENvbnRleHQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNTEzOTE1N2E2MzdjMTg3MTdmZDRjOTJlN2U2YTA0ZjZlNzFjNDhlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9nZXRDb250ZXh0Lmh0bWwKQEAgLTAsMCArMSw1
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu
ZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIp
LCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
CisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg
bWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj
b3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9t
IHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiog
VEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQg
T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+
CisKK1Rlc3RzLnRlc3RHZXRXZWJHTCA9IGZ1bmN0aW9uKCkgeworICB2YXIgY2FudmFzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dlYmdsJyk7CisgIHZhciBnbDsKKyAgYXNzZXJ0T2soZnVu
Y3Rpb24oKXtnbCA9IGdldEdMQ29udGV4dChjYW52YXMpfSk7CisgIGFzc2VydEVxdWFscygiY3R4
LmNhbnZhcyA9PT0gY2FudmFzIiwgZ2wuY2FudmFzLCBjYW52YXMpOworICBhc3NlcnRPayhmdW5j
dGlvbigpe2cyZCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpfSk7CisgIGFzc2VydCgiU2hvdWxk
IGdldCBhIG51bGwgMmQgY29udGV4dCBhZnRlciBnZXR0aW5nIHdlYmdsIGNvbnRleHQiLCBnMmQg
PT09IG51bGwpOworfQorCitUZXN0cy50ZXN0R2V0MkQgPSBmdW5jdGlvbigpIHsKKyAgdmFyIGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcyZCcpOworICB2YXIgZzJkOworICB2YXIg
Z2w7CisgIGFzc2VydE9rKGZ1bmN0aW9uKCl7ZzJkID0gY2FudmFzLmdldENvbnRleHQoJzJkJyl9
KTsKKyAgYXNzZXJ0T2soZnVuY3Rpb24oKXtnbCA9IGdldEdMQ29udGV4dChjYW52YXMpfSk7Cisg
IGFzc2VydCgiU2hvdWxkIGdldCBhIG51bGwgV2ViR0wgY29udGV4dCBhZnRlciBnZXR0aW5nIDJE
IGNvbnRleHQiLCBnbCA9PT0gbnVsbCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT5jYW52YXN7cG9z
aXRpb246YWJzb2x1dGU7fTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+CisgIDxjYW52YXMgaWQ9IjJk
IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48L2NhbnZhcz4KKyAgPGNhbnZhcyBpZD0id2ViZ2wiIHdp
ZHRoPSIxIiBoZWlnaHQ9IjEiPjwvY2FudmFzPgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvY29uZm9ybWFuY2UvbWV0aG9kcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9tZXRob2Rz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDQ2NmZlZDViZjgwZWE0OTlhZjAyMTJlNjAwNDdiNzgyNTY2MDcx
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2UvbWV0aG9kcy5odG1sCkBAIC0w
LDAgKzEsMjAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0
ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
CisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoq
IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4K
KyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4K
KzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0i
Li4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNj
cmlwdCI+CisKKy8qCisgIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIGdlbmVyYXRlZCBmcm9tCisg
IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvZ2xlcy9hcGkvMi4wL2dsMi5oCisgIGFu
ZCBhcGlfbW9kaWZpY2F0aW9ucy50eHQKKyovCit2YXIgbWV0aG9kcyA9IFsnY2FudmFzJywKKyJh
Y3RpdmVUZXh0dXJlIiwKKyJhdHRhY2hTaGFkZXIiLAorImJpbmRBdHRyaWJMb2NhdGlvbiIsCisi
YmluZEJ1ZmZlciIsCisiYmluZEZyYW1lYnVmZmVyIiwKKyJiaW5kUmVuZGVyYnVmZmVyIiwKKyJi
aW5kVGV4dHVyZSIsCisiYmxlbmRDb2xvciIsCisiYmxlbmRFcXVhdGlvbiIsCisiYmxlbmRFcXVh
dGlvblNlcGFyYXRlIiwKKyJibGVuZEZ1bmMiLAorImJsZW5kRnVuY1NlcGFyYXRlIiwKKyJidWZm
ZXJEYXRhIiwKKyJidWZmZXJTdWJEYXRhIiwKKyJjaGVja0ZyYW1lYnVmZmVyU3RhdHVzIiwKKyJj
bGVhciIsCisiY2xlYXJDb2xvciIsCisiY2xlYXJEZXB0aCIsCisiY2xlYXJTdGVuY2lsIiwKKyJj
b2xvck1hc2siLAorImNvbXBpbGVTaGFkZXIiLAorImNvcHlUZXhJbWFnZTJEIiwKKyJjb3B5VGV4
U3ViSW1hZ2UyRCIsCisiY3JlYXRlUHJvZ3JhbSIsCisiY3JlYXRlU2hhZGVyIiwKKyJjdWxsRmFj
ZSIsCisiZGVsZXRlQnVmZmVyIiwKKyJkZWxldGVGcmFtZWJ1ZmZlciIsCisiZGVsZXRlUHJvZ3Jh
bSIsCisiZGVsZXRlUmVuZGVyYnVmZmVyIiwKKyJkZWxldGVTaGFkZXIiLAorImRlbGV0ZVRleHR1
cmUiLAorImRlcHRoRnVuYyIsCisiZGVwdGhNYXNrIiwKKyJkZXB0aFJhbmdlIiwKKyJkZXRhY2hT
aGFkZXIiLAorImRpc2FibGUiLAorImRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSIsCisiZHJhd0Fy
cmF5cyIsCisiZHJhd0VsZW1lbnRzIiwKKyJlbmFibGUiLAorImVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5IiwKKyJmaW5pc2giLAorImZsdXNoIiwKKyJmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciIsCisi
ZnJhbWVidWZmZXJUZXh0dXJlMkQiLAorImZyb250RmFjZSIsCisiY3JlYXRlQnVmZmVyIiwKKyJn
ZW5lcmF0ZU1pcG1hcCIsCisiY3JlYXRlRnJhbWVidWZmZXIiLAorImNyZWF0ZVJlbmRlcmJ1ZmZl
ciIsCisiY3JlYXRlVGV4dHVyZSIsCisiZ2V0QWN0aXZlQXR0cmliIiwKKyJnZXRBY3RpdmVVbmlm
b3JtIiwKKyJnZXRBdHRhY2hlZFNoYWRlcnMiLAorImdldEF0dHJpYkxvY2F0aW9uIiwKKyJnZXRC
dWZmZXJQYXJhbWV0ZXIiLAorImdldEVycm9yIiwKKyJnZXRFeHRlbnNpb24iLAorImdldFN1cHBv
cnRlZEV4dGVuc2lvbnMiLAorImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCisi
Z2V0UHJvZ3JhbUluZm9Mb2ciLAorImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsCisiZ2V0U2hh
ZGVySW5mb0xvZyIsCisiZ2V0U2hhZGVyU291cmNlIiwKKyJnZXRVbmlmb3JtTG9jYXRpb24iLAor
ImhpbnQiLAorImlzQnVmZmVyIiwKKyJpc0NvbnRleHRMb3N0IiwKKyJpc0VuYWJsZWQiLAorImlz
RnJhbWVidWZmZXIiLAorImlzUHJvZ3JhbSIsCisiaXNSZW5kZXJidWZmZXIiLAorImlzU2hhZGVy
IiwKKyJpc1RleHR1cmUiLAorImxpbmVXaWR0aCIsCisibGlua1Byb2dyYW0iLAorInBvbHlnb25P
ZmZzZXQiLAorInJlYWRQaXhlbHMiLAorInJlbmRlcmJ1ZmZlclN0b3JhZ2UiLAorInNhbXBsZUNv
dmVyYWdlIiwKKyJzY2lzc29yIiwKKyJzaGFkZXJTb3VyY2UiLAorInN0ZW5jaWxGdW5jIiwKKyJz
dGVuY2lsRnVuY1NlcGFyYXRlIiwKKyJzdGVuY2lsTWFzayIsCisic3RlbmNpbE1hc2tTZXBhcmF0
ZSIsCisic3RlbmNpbE9wIiwKKyJzdGVuY2lsT3BTZXBhcmF0ZSIsCisidGV4SW1hZ2UyRCIsCisi
dGV4UGFyYW1ldGVyaSIsCisidGV4U3ViSW1hZ2UyRCIsCisidW5pZm9ybTFmIiwKKyJ1bmlmb3Jt
MWZ2IiwKKyJ1bmlmb3JtMWkiLAorInVuaWZvcm0xaXYiLAorInVuaWZvcm0yZiIsCisidW5pZm9y
bTJmdiIsCisidW5pZm9ybTJpIiwKKyJ1bmlmb3JtMml2IiwKKyJ1bmlmb3JtM2YiLAorInVuaWZv
cm0zZnYiLAorInVuaWZvcm0zaSIsCisidW5pZm9ybTNpdiIsCisidW5pZm9ybTRmIiwKKyJ1bmlm
b3JtNGZ2IiwKKyJ1bmlmb3JtNGkiLAorInVuaWZvcm00aXYiLAorInVuaWZvcm1NYXRyaXgyZnYi
LAorInVuaWZvcm1NYXRyaXgzZnYiLAorInVuaWZvcm1NYXRyaXg0ZnYiLAorInVzZVByb2dyYW0i
LAorInZhbGlkYXRlUHJvZ3JhbSIsCisidmVydGV4QXR0cmliMWYiLAorInZlcnRleEF0dHJpYjFm
diIsCisidmVydGV4QXR0cmliMmYiLAorInZlcnRleEF0dHJpYjJmdiIsCisidmVydGV4QXR0cmli
M2YiLAorInZlcnRleEF0dHJpYjNmdiIsCisidmVydGV4QXR0cmliNGYiLAorInZlcnRleEF0dHJp
YjRmdiIsCisidmVydGV4QXR0cmliUG9pbnRlciIsCisidmlld3BvcnQiLAorImdldFBhcmFtZXRl
ciIsCisiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsCisiZ2V0U2hhZGVyUGFyYW1ldGVyIiwKKyJnZXRU
ZXhQYXJhbWV0ZXIiLAorImdldFVuaWZvcm0iLAorImdldFZlcnRleEF0dHJpYiIKK10KKworVGVz
dHMudGVzdE9FUzIwTWV0aG9kcyA9IGZ1bmN0aW9uKGdsKSB7CisgIGZvciAodmFyIGk9MDsgaTxt
ZXRob2RzLmxlbmd0aDsgaSsrKSB7CisgICAgYXNzZXJ0UHJvcGVydHkoZ2wsIG1ldGhvZHNbaV0p
OworICB9CisgIHZhciBleHRlbmRlZCA9IGZhbHNlOworICBmb3IgKHZhciBpIGluIGdsKSB7Cisg
ICAgaWYgKGkubWF0Y2goL15bYS16X10rJC8pICYmIG1ldGhvZHMuaW5kZXhPZihpKSA9PSAtMSkg
eworICAgICAgaWYgKCFleHRlbmRlZCkgeworICAgICAgICBleHRlbmRlZCA9IHRydWU7CisgICAg
ICAgIHZhciBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKKyAgICAgICAgaC50ZXh0
Q29udGVudCA9ICJBbHNvIGZvdW5kIHRoZSBmb2xsb3dpbmcgZXh0cmEgcHJvcGVydGllcyI7Cisg
ICAgICAgIF9fdGVzdExvZ19fLmFwcGVuZENoaWxkKGgpOworICAgICAgfQorICAgICAgbG9nKGkp
OworICAgIH0KKyAgfQorfQorCitUZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbigpIHsKKyAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICB2YXIgZ2wgPSB3cmFw
R0xDb250ZXh0KGdldEdMQ29udGV4dChjYW52YXMpKTsKKyAgcmV0dXJuIFtnbF07Cit9CisKKzwv
c2NyaXB0PgorPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7IH08L3N0eWxlPgorPC9o
ZWFkPjxib2R5PgorICA8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PC9jYW52
YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9xdWlja0No
ZWNrQVBJLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9jb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliNjJmNTFiYTI5ZDg3YmNjZTE5NmQ2ZmRjNDNjMDA5MzUzYWJkYWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2NvbmZvcm1hbmNlL3F1aWNrQ2hlY2tBUEkuanMKQEAgLTAsMCArMSw0MTMgQEAK
Ky8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4g
dGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg
TWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFs
cyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxT
IEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiog
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLyoKKyAgUXVpY2tDaGVjayB0ZXN0cyBmb3IgV2Vi
R0w6CisKKyAgICAxLiBXcml0ZSBhIHZhbGlkIGFyZyBnZW5lcmF0b3IgZm9yIGVhY2ggZnVuY3Rp
b24KKyAgICAgIDEuMS4gV3JpdGUgdmFsaWQgYXJnIHByZWRpY2F0ZXMgdG8gdXNlIHdpdGggcmFu
ZG9tIGdlbmVyYXRvcjoKKyAgICAgICAgICAgIGlmIHZhbHVlIHBhc3NlcyBnZW5lcmF0b3IsIGFj
Y2VwdCBpdCBhcyB2YWxpZC4KKyAgICAgIDEuMi4gT2Z0ZW4gbmVlZHMgaW5pdGlhbGl6aW5nIGFu
ZCBjbGVhbnVwOgorICAgICAgICAgICAgc2V0dXAgLSBnZW5lcmF0ZSAtIGNsZWFudXAKKyAgICAg
ICAgICAgIGdsLmNyZWF0ZUJ1ZmZlciAtIHRlc3QoYmluZEJ1ZmZlckdlbmVyYXRvcikgLSBnbC5k
ZWxldGVCdWZmZXIKKworICAgIDIuIFdyaXRlIGFuIGludmFsaWQgYXJnIGdlbmVyYXRvcgorICAg
ICAgMi4xLiBUYWtlIHZhbGlkIGFyZ3MsIG1vZGlmeSBhbiBhcmcgdW50aWwgdGhlIGFyZ3Mgbm8g
bG9uZ2VyIHBhc3MKKyAgICAgICAgICAgIGNoZWNrQXJnVmFsaWRpdHkuCisgICAgICAyLjIuIFJl
cGVhdCBmb3IgYWxsIGFyZ3MuCisKKyAgICAzLiBUZXN0IGZ1bmN0aW9ucyB1c2luZyB0aGUgZ2Vu
ZXJhdG9ycworICAgICAgMy4xLiBBcmdzIGdlbmVyYXRlZCB3aXRoIHRoZSB2YWxpZCBhcmcgZ2Vu
ZXJhdG9yIHNob3VsZCBwYXNzCisgICAgICAgICAgICBhc3NlcnRPayhmKGFyZ3MpKQorICAgICAg
My4yLiBBcmdzIGdlbmVyYXRlZCB3aXRoIHRoZSBpbnZhbGlkIGFyZyBnZW5lcmF0b3Igc2hvdWxk
IHBhc3MKKyAgICAgICAgICAgIGFzc2VydEZhaWwoZihhcmdzKSkKKyovCit2YXIgR0xjYW52YXMg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKK3ZhciBjYW52YXMyRCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworR0xjYW52YXMud2lkdGggPSBHTGNhbnZhcy5o
ZWlnaHQgPSAyNTY7CitHTCA9IGdldEdMQ29udGV4dChHTGNhbnZhcyk7CitBcnJheS5mcm9tID0g
ZnVuY3Rpb24obykgeworICB2YXIgYSA9IFtdOworICBmb3IgKHZhciBpPTA7IGk8by5sZW5ndGg7
IGkrKykKKyAgICBhLnB1c2gob1tpXSk7CisgIHJldHVybiBhOworfQorQXJyYXkucHJvdG90eXBl
LmhhcyA9IGZ1bmN0aW9uKHYpIHsgcmV0dXJuIHRoaXMuaW5kZXhPZih2KSAhPSAtMTsgfQorQXJy
YXkucHJvdG90eXBlLnJhbmRvbSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpc1tyYW5kb21JbnQo
dGhpcy5sZW5ndGgpXTsgfQorCitjYXN0VG9JbnQgPSBmdW5jdGlvbihvKSB7CisgIGlmICh0eXBl
b2YgbyA9PSAnbnVtYmVyJykKKyAgICByZXR1cm4gaXNOYU4obykgPyAwIDogTWF0aC5mbG9vcihv
KTsKKyAgaWYgKG8gPT0gdHJ1ZSkgcmV0dXJuIDE7CisgIHJldHVybiAwOworfTsKKworLy8gQ3Jl
YXRlcyBhIGNvbnN0YW50IGNoZWNrZXIgLyBnZW5lcmF0b3IgZnJvbSBpdHMgYXJndW1lbnRzLgor
Ly8KKy8vIEUuZy4gaWYgeW91IHdhbnQgYSBjb25zdGFudCBjaGVja2VyIGZvciB0aGUgY29uc3Rh
bnRzIDEsIDIsIGFuZCAzLCB5b3UKKy8vIHdvdWxkIGRvIHRoZSBmb2xsb3dpbmc6CisvLworLy8g
ICB2YXIgY2MgPSBjb25zdENoZWNrKDEsMiwzKTsKKy8vICAgdmFyIHJhbmRvbUNvbnN0ID0gY2Mu
cmFuZG9tKCk7CisvLyAgIGlmIChjYy5oYXMocmFuZG9tQ29uc3QpKQorLy8gICAgIGNvbnNvbGUu
bG9nKCJyYW5kb21Db25zdCBpcyBpbmNsdWRlZCBpbiBjYydzIGNvbnN0YW50cyIpOworLy8KK2Nv
bnN0Q2hlY2sgPSBmdW5jdGlvbigpIHsKKyAgdmFyIGEgPSBBcnJheS5mcm9tKGFyZ3VtZW50cyk7
CisgIGEuaGFzID0gZnVuY3Rpb24odikgeyByZXR1cm4gdGhpcy5pbmRleE9mKGNhc3RUb0ludCh2
KSkgIT0gLTE7IH07CisgIHJldHVybiBhOworfQorCitiaW5kVGV4dHVyZVRhcmdldCA9IGNvbnN0
Q2hlY2soR0wuVEVYVFVSRV8yRCwgR0wuVEVYVFVSRV9DVUJFX01BUCk7CitibGVuZEVxdWF0aW9u
TW9kZSA9IGNvbnN0Q2hlY2soR0wuRlVOQ19BREQsIEdMLkZVTkNfU1VCVFJBQ1QsIEdMLkZVTkNf
UkVWRVJTRV9TVUJUUkFDVCk7CitibGVuZEZ1bmNTZmFjdG9yID0gY29uc3RDaGVjaygKKyAgR0wu
WkVSTywgR0wuT05FLCBHTC5TUkNfQ09MT1IsIEdMLk9ORV9NSU5VU19TUkNfQ09MT1IsIEdMLkRT
VF9DT0xPUiwKKyAgR0wuT05FX01JTlVTX0RTVF9DT0xPUiwgR0wuU1JDX0FMUEhBLCBHTC5PTkVf
TUlOVVNfU1JDX0FMUEhBLCBHTC5EU1RfQUxQSEEsCisgIEdMLk9ORV9NSU5VU19EU1RfQUxQSEEs
IEdMLkNPTlNUQU5UX0NPTE9SLCBHTC5PTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IsCisgIEdMLkNP
TlNUQU5UX0FMUEhBLCBHTC5PTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEEsIEdMLlNSQ19BTFBIQV9T
QVRVUkFURQorKTsKK2JsZW5kRnVuY0RmYWN0b3IgPSBjb25zdENoZWNrKAorICBHTC5aRVJPLCBH
TC5PTkUsIEdMLlNSQ19DT0xPUiwgR0wuT05FX01JTlVTX1NSQ19DT0xPUiwgR0wuRFNUX0NPTE9S
LAorICBHTC5PTkVfTUlOVVNfRFNUX0NPTE9SLCBHTC5TUkNfQUxQSEEsIEdMLk9ORV9NSU5VU19T
UkNfQUxQSEEsIEdMLkRTVF9BTFBIQSwKKyAgR0wuT05FX01JTlVTX0RTVF9BTFBIQSwgR0wuQ09O
U1RBTlRfQ09MT1IsIEdMLk9ORV9NSU5VU19DT05TVEFOVF9DT0xPUiwKKyAgR0wuQ09OU1RBTlRf
QUxQSEEsIEdMLk9ORV9NSU5VU19DT05TVEFOVF9BTFBIQQorKTsKK2J1ZmZlclRhcmdldCA9IGNv
bnN0Q2hlY2soR0wuQVJSQVlfQlVGRkVSLCBHTC5FTEVNRU5UX0FSUkFZX0JVRkZFUik7CitidWZm
ZXJNb2RlID0gY29uc3RDaGVjayhHTC5TVFJFQU1fRFJBVywgR0wuU1RBVElDX0RSQVcsIEdMLkRZ
TkFNSUNfRFJBVyk7CitjbGVhck1hc2sgPSBjb25zdENoZWNrKAorICBHTC5DT0xPUl9CVUZGRVJf
QklUIHwgR0wuREVQVEhfQlVGRkVSX0JJVCB8IEdMLlNURU5DSUxfQlVGRkVSX0JJVCwKKyAgR0wu
Q09MT1JfQlVGRkVSX0JJVCB8IEdMLkRFUFRIX0JVRkZFUl9CSVQsCisgIEdMLkNPTE9SX0JVRkZF
Ul9CSVQgfCBHTC5TVEVOQ0lMX0JVRkZFUl9CSVQsCisgIEdMLkRFUFRIX0JVRkZFUl9CSVQgfCBH
TC5TVEVOQ0lMX0JVRkZFUl9CSVQsCisgIEdMLkNPTE9SX0JVRkZFUl9CSVQsIEdMLkRFUFRIX0JV
RkZFUl9CSVQsIEdMLlNURU5DSUxfQlVGRkVSX0JJVCwgMAorKTsKK2N1bGxGYWNlID0gY29uc3RD
aGVjayhHTC5GUk9OVCwgR0wuQkFDSywgR0wuRlJPTlRfQU5EX0JBQ0spOworZGVwdGhGdW5jRnVu
YyA9IGNvbnN0Q2hlY2soCisgIEdMLk5FVkVSLCBHTC5MRVNTLCBHTC5FUVVBTCwgR0wuTEVRVUFM
LCBHTC5HUkVBVEVSLCBHTC5OT1RFUVVBTCwKKyAgR0wuR0VRVUFMLCBHTC5BTFdBWVMKKyk7Citz
dGVuY2lsRnVuY0Z1bmMgPSBkZXB0aEZ1bmNGdW5jOworZW5hYmxlQ2FwID0gY29uc3RDaGVjaygK
KyAgR0wuQkxFTkQsIEdMLkNVTExfRkFDRSwgR0wuREVQVEhfVEVTVCwgR0wuRElUSEVSLCBHTC5Q
T0xZR09OX09GRlNFVF9GSUxMLAorICBHTC5TQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0UsIEdMLlNB
TVBMRV9DT1ZFUkFHRSwgR0wuU0NJU1NPUl9URVNULAorICBHTC5TVEVOQ0lMX1RFU1QKKyk7Citm
cm9udEZhY2VNb2RlID0gY29uc3RDaGVjayhHTC5DQ1csIEdMLkNXKTsKK2dldFBhcmFtZXRlclBu
YW1lID0gY29uc3RDaGVjaygKKyAgR0wuQUNUSVZFX1RFWFRVUkUgfHwgIkdMLkFDVElWRV9URVhU
VVJFIiwKKyAgR0wuQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFIHx8ICJHTC5BTElBU0VEX0xJTkVf
V0lEVEhfUkFOR0UiLAorICBHTC5BTElBU0VEX1BPSU5UX1NJWkVfUkFOR0UgfHwgIkdMLkFMSUFT
RURfUE9JTlRfU0laRV9SQU5HRSIsCisgIEdMLkFMUEhBX0JJVFMgfHwgIkdMLkFMUEhBX0JJVFMi
LAorICBHTC5BUlJBWV9CVUZGRVJfQklORElORyB8fCAiR0wuQVJSQVlfQlVGRkVSX0JJTkRJTkci
LAorICBHTC5CTEVORCB8fCAiR0wuQkxFTkQiLAorICBHTC5CTEVORF9DT0xPUiB8fCAiR0wuQkxF
TkRfQ09MT1IiLAorICBHTC5CTEVORF9EU1RfQUxQSEEgfHwgIkdMLkJMRU5EX0RTVF9BTFBIQSIs
CisgIEdMLkJMRU5EX0RTVF9SR0IgfHwgIkdMLkJMRU5EX0RTVF9SR0IiLAorICBHTC5CTEVORF9F
UVVBVElPTl9BTFBIQSB8fCAiR0wuQkxFTkRfRVFVQVRJT05fQUxQSEEiLAorICBHTC5CTEVORF9F
UVVBVElPTl9SR0IgfHwgIkdMLkJMRU5EX0VRVUFUSU9OX1JHQiIsCisgIEdMLkJMRU5EX1NSQ19B
TFBIQSB8fCAiR0wuQkxFTkRfU1JDX0FMUEhBIiwKKyAgR0wuQkxFTkRfU1JDX1JHQiB8fCAiR0wu
QkxFTkRfU1JDX1JHQiIsCisgIEdMLkJMVUVfQklUUyB8fCAiR0wuQkxVRV9CSVRTIiwKKyAgR0wu
Q09MT1JfQ0xFQVJfVkFMVUUgfHwgIkdMLkNPTE9SX0NMRUFSX1ZBTFVFIiwKKyAgR0wuQ09MT1Jf
V1JJVEVNQVNLIHx8ICJHTC5DT0xPUl9XUklURU1BU0siLAorICBHTC5DT01QUkVTU0VEX1RFWFRV
UkVfRk9STUFUUyB8fCAiR0wuQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMiLAorICBHTC5DVUxM
X0ZBQ0UgfHwgIkdMLkNVTExfRkFDRSIsCisgIEdMLkNVTExfRkFDRV9NT0RFIHx8ICJHTC5DVUxM
X0ZBQ0VfTU9ERSIsCisgIEdMLkNVUlJFTlRfUFJPR1JBTSB8fCAiR0wuQ1VSUkVOVF9QUk9HUkFN
IiwKKyAgR0wuREVQVEhfQklUUyB8fCAiR0wuREVQVEhfQklUUyIsCisgIEdMLkRFUFRIX0NMRUFS
X1ZBTFVFIHx8ICJHTC5ERVBUSF9DTEVBUl9WQUxVRSIsCisgIEdMLkRFUFRIX0ZVTkMgfHwgIkdM
LkRFUFRIX0ZVTkMiLAorICBHTC5ERVBUSF9SQU5HRSB8fCAiR0wuREVQVEhfUkFOR0UiLAorICBH
TC5ERVBUSF9URVNUIHx8ICJHTC5ERVBUSF9URVNUIiwKKyAgR0wuREVQVEhfV1JJVEVNQVNLIHx8
ICJHTC5ERVBUSF9XUklURU1BU0siLAorICBHTC5ESVRIRVIgfHwgIkdMLkRJVEhFUiIsCisgIEdM
LkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgfHwgIkdMLkVMRU1FTlRfQVJSQVlfQlVGRkVS
X0JJTkRJTkciLAorICBHTC5GUkFNRUJVRkZFUl9CSU5ESU5HIHx8ICJHTC5GUkFNRUJVRkZFUl9C
SU5ESU5HIiwKKyAgR0wuRlJPTlRfRkFDRSB8fCAiR0wuRlJPTlRfRkFDRSIsCisgIEdMLkdFTkVS
QVRFX01JUE1BUF9ISU5UIHx8ICJHTC5HRU5FUkFURV9NSVBNQVBfSElOVCIsCisgIEdMLkdSRUVO
X0JJVFMgfHwgIkdMLkdSRUVOX0JJVFMiLAorICBHTC5MSU5FX1dJRFRIIHx8ICJHTC5MSU5FX1dJ
RFRIIiwKKyAgR0wuTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMgfHwgIkdMLk1BWF9D
T01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTIiwKKyAgR0wuTUFYX0NVQkVfTUFQX1RFWFRVUkVf
U0laRSB8fCAiR0wuTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSIsCisgIEdMLk1BWF9GUkFHTUVO
VF9VTklGT1JNX1ZFQ1RPUlMgfHwgIkdMLk1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMiLAor
ICBHTC5NQVhfUkVOREVSQlVGRkVSX1NJWkUgfHwgIkdMLk1BWF9SRU5ERVJCVUZGRVJfU0laRSIs
CisgIEdMLk1BWF9URVhUVVJFX0lNQUdFX1VOSVRTIHx8ICJHTC5NQVhfVEVYVFVSRV9JTUFHRV9V
TklUUyIsCisgIEdMLk1BWF9URVhUVVJFX1NJWkUgfHwgIkdMLk1BWF9URVhUVVJFX1NJWkUiLAor
ICBHTC5NQVhfVkFSWUlOR19WRUNUT1JTIHx8ICJHTC5NQVhfVkFSWUlOR19WRUNUT1JTIiwKKyAg
R0wuTUFYX1ZFUlRFWF9BVFRSSUJTIHx8ICJHTC5NQVhfVkVSVEVYX0FUVFJJQlMiLAorICBHTC5N
QVhfVkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5JVFMgfHwgIkdMLk1BWF9WRVJURVhfVEVYVFVSRV9J
TUFHRV9VTklUUyIsCisgIEdMLk1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTIHx8ICJHTC5NQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyIsCisgIEdMLk1BWF9WSUVXUE9SVF9ESU1TIHx8ICJHTC5N
QVhfVklFV1BPUlRfRElNUyIsCisgIEdMLlBBQ0tfQUxJR05NRU5UIHx8ICJHTC5QQUNLX0FMSUdO
TUVOVCIsCisgIEdMLlBPTFlHT05fT0ZGU0VUX0ZBQ1RPUiB8fCAiR0wuUE9MWUdPTl9PRkZTRVRf
RkFDVE9SIiwKKyAgR0wuUE9MWUdPTl9PRkZTRVRfRklMTCB8fCAiR0wuUE9MWUdPTl9PRkZTRVRf
RklMTCIsCisgIEdMLlBPTFlHT05fT0ZGU0VUX1VOSVRTIHx8ICJHTC5QT0xZR09OX09GRlNFVF9V
TklUUyIsCisgIEdMLlJFRF9CSVRTIHx8ICJHTC5SRURfQklUUyIsCisgIEdMLlJFTkRFUkJVRkZF
Ul9CSU5ESU5HIHx8ICJHTC5SRU5ERVJCVUZGRVJfQklORElORyIsCisgIEdMLlNBTVBMRV9CVUZG
RVJTIHx8ICJHTC5TQU1QTEVfQlVGRkVSUyIsCisgIEdMLlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQg
fHwgIkdMLlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQiLAorICBHTC5TQU1QTEVfQ09WRVJBR0VfVkFM
VUUgfHwgIkdMLlNBTVBMRV9DT1ZFUkFHRV9WQUxVRSIsCisgIEdMLlNBTVBMRVMgfHwgIkdMLlNB
TVBMRVMiLAorICBHTC5TQ0lTU09SX0JPWCB8fCAiR0wuU0NJU1NPUl9CT1giLAorICBHTC5TQ0lT
U09SX1RFU1QgfHwgIkdMLlNDSVNTT1JfVEVTVCIsCisgIEdMLlNURU5DSUxfQkFDS19GQUlMIHx8
ICJHTC5TVEVOQ0lMX0JBQ0tfRkFJTCIsCisgIEdMLlNURU5DSUxfQkFDS19GVU5DIHx8ICJHTC5T
VEVOQ0lMX0JBQ0tfRlVOQyIsCisgIEdMLlNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgfHwg
IkdMLlNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwiLAorICBHTC5TVEVOQ0lMX0JBQ0tfUEFT
U19ERVBUSF9QQVNTIHx8ICJHTC5TVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9QQVNTIiwKKyAgR0wu
U1RFTkNJTF9CQUNLX1JFRiB8fCAiR0wuU1RFTkNJTF9CQUNLX1JFRiIsCisgIEdMLlNURU5DSUxf
QkFDS19WQUxVRV9NQVNLIHx8ICJHTC5TVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTSyIsCisgIEdMLlNU
RU5DSUxfQkFDS19XUklURU1BU0sgfHwgIkdMLlNURU5DSUxfQkFDS19XUklURU1BU0siLAorICBH
TC5TVEVOQ0lMX0JJVFMgfHwgIkdMLlNURU5DSUxfQklUUyIsCisgIEdMLlNURU5DSUxfQ0xFQVJf
VkFMVUUgfHwgIkdMLlNURU5DSUxfQ0xFQVJfVkFMVUUiLAorICBHTC5TVEVOQ0lMX0ZBSUwgfHwg
IkdMLlNURU5DSUxfRkFJTCIsCisgIEdMLlNURU5DSUxfRlVOQyB8fCAiR0wuU1RFTkNJTF9GVU5D
IiwKKyAgR0wuU1RFTkNJTF9QQVNTX0RFUFRIX0ZBSUwgfHwgIkdMLlNURU5DSUxfUEFTU19ERVBU
SF9GQUlMIiwKKyAgR0wuU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgfHwgIkdMLlNURU5DSUxfUEFT
U19ERVBUSF9QQVNTIiwKKyAgR0wuU1RFTkNJTF9SRUYgfHwgIkdMLlNURU5DSUxfUkVGIiwKKyAg
R0wuU1RFTkNJTF9URVNUIHx8ICJHTC5TVEVOQ0lMX1RFU1QiLAorICBHTC5TVEVOQ0lMX1ZBTFVF
X01BU0sgfHwgIkdMLlNURU5DSUxfVkFMVUVfTUFTSyIsCisgIEdMLlNURU5DSUxfV1JJVEVNQVNL
IHx8ICJHTC5TVEVOQ0lMX1dSSVRFTUFTSyIsCisgIEdMLlNVQlBJWEVMX0JJVFMgfHwgIkdMLlNV
QlBJWEVMX0JJVFMiLAorICBHTC5URVhUVVJFX0JJTkRJTkdfMkQgfHwgIkdMLlRFWFRVUkVfQklO
RElOR18yRCIsCisgIEdMLlRFWFRVUkVfQklORElOR19DVUJFX01BUCB8fCAiR0wuVEVYVFVSRV9C
SU5ESU5HX0NVQkVfTUFQIiwKKyAgR0wuVU5QQUNLX0FMSUdOTUVOVCB8fCAiR0wuVU5QQUNLX0FM
SUdOTUVOVCIsCisgIEdMLlZJRVdQT1JUIHx8ICJHTC5WSUVXUE9SVCIKKyk7CittaXBtYXBIaW50
ID0gY29uc3RDaGVjayhHTC5GQVNURVNULCBHTC5OSUNFU1QsIEdMLkRPTlRfQ0FSRSk7CitwaXhl
bFN0b3JlaVBuYW1lID0gY29uc3RDaGVjayhHTC5QQUNLX0FMSUdOTUVOVCwgR0wuVU5QQUNLX0FM
SUdOTUVOVCk7CitwaXhlbFN0b3JlaVBhcmFtID0gY29uc3RDaGVjaygxLDIsNCw4KTsKK3NoYWRl
clR5cGUgPSBjb25zdENoZWNrKEdMLlZFUlRFWF9TSEFERVIsIEdMLkZSQUdNRU5UX1NIQURFUik7
CitzdGVuY2lsT3AgPSBjb25zdENoZWNrKEdMLktFRVAsIEdMLlpFUk8sIEdMLlJFUExBQ0UsIEdM
LklOQ1IsIEdMLklOQ1JfV1JBUCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdMLkRFQ1IsIEdM
LkRFQ1JfV1JBUCwgR0wuSU5WRVJUKTsKK3RleEltYWdlVGFyZ2V0ID0gY29uc3RDaGVjaygKKyAg
R0wuVEVYVFVSRV8yRCwKKyAgR0wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAorICBHTC5U
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCisgIEdMLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJ
VkVfWSwKKyAgR0wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAorICBHTC5URVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1osCisgIEdMLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWgorKTsK
K3RleEltYWdlSW50ZXJuYWxGb3JtYXQgPSBjb25zdENoZWNrKAorICBHTC5BTFBIQSwKKyAgR0wu
TFVNSU5BTkNFLAorICBHTC5MVU1JTkFOQ0VfQUxQSEEsCisgIEdMLlJHQiwKKyAgR0wuUkdCQQor
KTsKK3RleEltYWdlRm9ybWF0ID0gY29uc3RDaGVjaygKKyAgR0wuQUxQSEEsCisgIEdMLkxVTUlO
QU5DRSwKKyAgR0wuTFVNSU5BTkNFX0FMUEhBLAorICBHTC5SR0IsCisgIEdMLlJHQkEKKyk7Cit0
ZXhJbWFnZVR5cGUgPSBjb25zdENoZWNrKEdMLlVOU0lHTkVEX0JZVEUpOwordGV4UGFyYW1ldGVy
UG5hbWUgPSBjb25zdENoZWNrKAorICBHTC5URVhUVVJFX01JTl9GSUxURVIsIEdMLlRFWFRVUkVf
TUFHX0ZJTFRFUiwKKyAgR0wuVEVYVFVSRV9XUkFQX1MsIEdMLlRFWFRVUkVfV1JBUF9UKTsKK3Rl
eFBhcmFtZXRlclBhcmFtID0ge307Cit0ZXhQYXJhbWV0ZXJQYXJhbVtHTC5URVhUVVJFX01JTl9G
SUxURVJdID0gY29uc3RDaGVjaygKKyAgR0wuTkVBUkVTVCwgR0wuTElORUFSLCBHTC5ORUFSRVNU
X01JUE1BUF9ORUFSRVNULCBHTC5MSU5FQVJfTUlQTUFQX05FQVJFU1QsCisgIEdMLk5FQVJFU1Rf
TUlQTUFQX0xJTkVBUiwgR0wuTElORUFSX01JUE1BUF9MSU5FQVIpOwordGV4UGFyYW1ldGVyUGFy
YW1bR0wuVEVYVFVSRV9NQUdfRklMVEVSXSA9IGNvbnN0Q2hlY2soR0wuTkVBUkVTVCwgR0wuTElO
RUFSKTsKK3RleFBhcmFtZXRlclBhcmFtW0dMLlRFWFRVUkVfV1JBUF9TXSA9IGNvbnN0Q2hlY2so
CisgIEdMLkNMQU1QX1RPX0VER0UsIEdMLk1JUlJPUkVEX1JFUEVBVCwgR0wuUkVQRUFUKTsKK3Rl
eFBhcmFtZXRlclBhcmFtW0dMLlRFWFRVUkVfV1JBUF9UXSA9IHRleFBhcmFtZXRlclBhcmFtW0dM
LlRFWFRVUkVfV1JBUF9TXTsKK3RleHR1cmVVbml0ID0gY29uc3RDaGVjay5hcHBseSh0aGlzLCAo
ZnVuY3Rpb24oKXsKKyAgdmFyIHRleHR1cmVVbml0cyA9IFtdOworICB2YXIgdGV4VW5pdHMgPSBH
TC5nZXRQYXJhbWV0ZXIoR0wuTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMpOworICBmb3IgKHZhciBp
PTA7IGk8dGV4VW5pdHM7IGkrKykgdGV4dHVyZVVuaXRzLnB1c2goR0xbJ1RFWFRVUkUnK2ldKTsK
KyAgcmV0dXJuIHRleHR1cmVVbml0czsKK30pKCkpOworCit2YXIgU3RlbmNpbEJpdHMgPSBHTC5n
ZXRQYXJhbWV0ZXIoR0wuU1RFTkNJTF9CSVRTKTsKK3ZhciBNYXhTdGVuY2lsVmFsdWUgPSAxIDw8
IFN0ZW5jaWxCaXRzOworCit2YXIgTWF4VmVydGV4QXR0cmlicyA9IEdMLmdldFBhcmFtZXRlcihH
TC5NQVhfVkVSVEVYX0FUVFJJQlMpOwordmFyIExpbmVXaWR0aFJhbmdlID0gR0wuZ2V0UGFyYW1l
dGVyKEdMLkFMSUFTRURfTElORV9XSURUSF9SQU5HRSk7CisKKy8vIFJldHVybnMgdHJ1ZSBpZiBi
dWZEYXRhIGNhbiBiZSBwYXNzZWQgdG8gR0wuYnVmZmVyRGF0YQoraXNCdWZmZXJEYXRhID0gZnVu
Y3Rpb24oYnVmRGF0YSkgeworICBpZiAodHlwZW9mIGJ1ZkRhdGEgPT0gJ251bWJlcicpCisgICAg
cmV0dXJuIGJ1ZkRhdGEgPj0gMDsKKyAgaWYgKGJ1ZkRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZl
cikKKyAgICByZXR1cm4gdHJ1ZTsKKyAgcmV0dXJuIFdlYkdMQXJyYXlUeXBlcy5zb21lKGZ1bmN0
aW9uKHQpIHsKKyAgICByZXR1cm4gYnVmRGF0YSBpbnN0YW5jZW9mIHQ7CisgIH0pOworfTsKKwor
aXNWZXJ0ZXhBdHRyaWJ1dGUgPSBmdW5jdGlvbihpZHgpIHsKKyAgaWYgKHR5cGVvZiBpZHggIT0g
J251bWJlcicpIHJldHVybiBmYWxzZTsKKyAgcmV0dXJuIGlkeCA+PSAwICYmIGlkeCA8IE1heFZl
cnRleEF0dHJpYnM7Cit9OworCitpc1ZhbGlkTmFtZSA9IGZ1bmN0aW9uKG5hbWUpIHsKKyAgaWYg
KHR5cGVvZiBuYW1lICE9ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7CisgIGZvciAodmFyIGk9MDsg
aTxuYW1lLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIGMgPSBuYW1lLmNoYXJDb2RlQXQoaSk7Cisg
ICAgaWYgKGMgJiAweDAwRkYgPT0gMCB8fCBjICYgMHhGRjAwID09IDApIHsKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9OworCitXZWJHTEFycmF5VHlw
ZXMgPSBbCisgIEZsb2F0MzJBcnJheSwKKyAgSW50MzJBcnJheSwKKyAgSW50MTZBcnJheSwKKyAg
SW50OEFycmF5LAorICBVaW50MzJBcnJheSwKKyAgVWludDE2QXJyYXksCisgIFVpbnQ4QXJyYXkK
K107Cit3ZWJHTEFycmF5Q29udGVudEdlbmVyYXRvcnMgPSBbcmFuZG9tTGVuZ3RoLCByYW5kb21T
bWFsbEludEFycmF5XTsKK3JhbmRvbVdlYkdMQXJyYXkgPSBmdW5jdGlvbigpIHsKKyAgdmFyIHQg
PSBXZWJHTEFycmF5VHlwZXMucmFuZG9tKCk7CisgIHJldHVybiBuZXcgdCh3ZWJHTEFycmF5Q29u
dGVudEdlbmVyYXRvcnMucmFuZG9tKCkoKSk7Cit9OworCityYW5kb21BcnJheUJ1ZmZlciA9IGZ1
bmN0aW9uKGJ1ZmxlbikgeworICBpZiAoYnVmbGVuID09IG51bGwpIGJ1ZmxlbiA9IDI1NjsKKyAg
dmFyIGxlbiA9IHJhbmRvbUludChidWZsZW4pKzE7CisgIHZhciBydjsKKyAgdHJ5IHsKKyAgICBy
diA9IG5ldyBBcnJheUJ1ZmZlcihsZW4pOworICB9IGNhdGNoKGUpIHsKKyAgICBsb2coIkVycm9y
IGNyZWF0aW5nIEFycmF5QnVmZmVyIHdpdGggbGVuZ3RoICIgKyBsZW4pOworICAgIHRocm93KGUp
OworICB9CisgIHJldHVybiBydjsKK307CisKK2J1ZmZlckRhdGFHZW5lcmF0b3JzID0gW3JhbmRv
bUxlbmd0aCwgcmFuZG9tV2ViR0xBcnJheSwgcmFuZG9tQXJyYXlCdWZmZXJdOworcmFuZG9tQnVm
ZmVyRGF0YSA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4gYnVmZmVyRGF0YUdlbmVyYXRvcnMucmFu
ZG9tKCkoKTsKK307CisKK3JhbmRvbVNtYWxsV2ViR0xBcnJheSA9IGZ1bmN0aW9uKGJ1Zmxlbikg
eworICB2YXIgdCA9IFdlYkdMQXJyYXlUeXBlcy5yYW5kb20oKTsKKyAgcmV0dXJuIG5ldyB0KHJh
bmRvbUludChidWZsZW4vNCkrMSk7Cit9OworCitidWZmZXJTdWJEYXRhR2VuZXJhdG9ycyA9IFty
YW5kb21TbWFsbFdlYkdMQXJyYXksIHJhbmRvbUFycmF5QnVmZmVyXTsKK3JhbmRvbUJ1ZmZlclN1
YkRhdGEgPSBmdW5jdGlvbihidWZsZW4pIHsKKyAgdmFyIGRhdGEgPSBidWZmZXJTdWJEYXRhR2Vu
ZXJhdG9ycy5yYW5kb20oKShidWZsZW4pOworICB2YXIgb2Zmc2V0ID0gcmFuZG9tSW50KGJ1Zmxl
biAtIGRhdGEuYnl0ZUxlbmd0aCk7CisgIHJldHVybiB7ZGF0YTpkYXRhLCBvZmZzZXQ6b2Zmc2V0
fTsKK307CisKK3JhbmRvbUNvbG9yID0gZnVuY3Rpb24oKSB7CisgIHJldHVybiBbTWF0aC5yYW5k
b20oKSwgTWF0aC5yYW5kb20oKSwgTWF0aC5yYW5kb20oKSwgTWF0aC5yYW5kb20oKV07Cit9Owor
CityYW5kb21OYW1lID0gZnVuY3Rpb24oKSB7CisgIHZhciBhcnIgPSBbXTsKKyAgdmFyIGxlbiA9
IHJhbmRvbUxlbmd0aCgpKzE7CisgIGZvciAodmFyIGk9MDsgaTxsZW47IGkrKykgeworICAgIHZh
ciBsID0gcmFuZG9tSW50KDI1NSkrMTsKKyAgICB2YXIgaCA9IHJhbmRvbUludCgyNTUpKzE7Cisg
ICAgdmFyIGMgPSAoaCA8PCA4KSB8IGw7CisgICAgYXJyLnB1c2goU3RyaW5nLmZyb21DaGFyQ29k
ZShjKSk7CisgIH0KKyAgcmV0dXJuIGFyci5qb2luKCcnKTsKK307CityYW5kb21WZXJ0ZXhBdHRy
aWJ1dGUgPSBmdW5jdGlvbigpIHsKKyAgcmV0dXJuIHJhbmRvbUludChNYXhWZXJ0ZXhBdHRyaWJz
KTsKK307CisKK3JhbmRvbUJvb2wgPSBmdW5jdGlvbigpIHsgcmV0dXJuIE1hdGgucmFuZG9tKCkg
PiAwLjU7IH07CisKK3JhbmRvbVN0ZW5jaWwgPSBmdW5jdGlvbigpIHsKKyAgcmV0dXJuIHJhbmRv
bUludChNYXhTdGVuY2lsVmFsdWUpOworfTsKKworcmFuZG9tTGluZVdpZHRoID0gZnVuY3Rpb24o
KSB7CisgIHZhciBsbyA9IExpbmVXaWR0aFJhbmdlWzBdLAorICAgICAgaGkgPSBMaW5lV2lkdGhS
YW5nZVsxXTsKKyAgcmV0dXJuIHJhbmRvbUZsb2F0RnJvbVJhbmdlKGxvLCBoaSk7Cit9OworCity
YW5kb21JbWFnZSA9IGZ1bmN0aW9uKHcsaCkgeworICB2YXIgaW1nOworICB2YXIgciA9IE1hdGgu
cmFuZG9tKCk7CisgIGlmIChyIDwgMC41KSB7CisgICAgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnY2FudmFzJyk7CisgICAgaW1nLndpZHRoID0gdzsgaW1nLmhlaWdodCA9IGg7CisgICAg
aW1nLmdldENvbnRleHQoJzJkJykuZmlsbFJlY3QoMCwwLHcsaCk7CisgIH0gZWxzZSBpZiAociA8
IDAuNSkgeworICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAg
aW1nLndpZHRoID0gdzsgaW1nLmhlaWdodCA9IGg7CisgIH0gZWxzZSBpZiAociA8IDAuNzUpIHsK
KyAgICBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgICBpbWcud2lkdGgg
PSB3OyBpbWcuaGVpZ2h0ID0gaDsKKyAgfSBlbHNlIHsKKyAgICBpbWcgPSBjYW52YXMyRC5nZXRD
b250ZXh0KCcyZCcpLmNyZWF0ZUltYWdlRGF0YSh3LGgpOworICB9CisgIHJldHVybiBpbWcKK307
CisKK211dGF0ZUFyZ3MgPSBmdW5jdGlvbihhcmdzKSB7CisgIHZhciBtdXRhdGVDb3VudCA9IHJh
bmRvbUludEZyb21SYW5nZSgxLCBhcmdzLmxlbmd0aCk7CisgIHZhciBuZXdBcmdzID0gQXJyYXku
ZnJvbShhcmdzKTsKKyAgZm9yICh2YXIgaT0wOyBpPG11dGF0ZUNvdW50OyBpKyspIHsKKyAgICB2
YXIgaWR4ID0gcmFuZG9tSW50KGFyZ3MubGVuZ3RoKTsKKyAgICBuZXdBcmdzW2lkeF0gPSBnZW5l
cmF0ZVJhbmRvbUFyZyhpZHgsIGFyZ3MubGVuZ3RoKTsKKyAgfQorICByZXR1cm4gbmV3QXJnczsK
K307CisKKy8vIENhbGxzIHRlc3RGdW5jdGlvbiBudW1iZXJPZlRlc3RzIHRpbWVzIHdpdGggYXJn
dW1lbnRzIGdlbmVyYXRlZCBieQorLy8gYXJnR2VuLmdlbmVyYXRlKCkgKG9yIGVtcHR5IGFyZ3Vt
ZW50cyBpZiBubyBnZW5lcmF0ZSBwcmVzZW50KS4KKy8vCisvLyBUaGUgYXJndW1lbnRzIHRlc3RG
dW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBhcmUgdGhlIGdlbmVyYXRlZCBhcmdzLAorLy8gdGhlIGFy
Z0dlbiwgYW5kIHdoYXQgYXJnR2VuLnNldHVwKCkgcmV0dXJuZWQgb3IgW10gaWYgYXJnR2VuIGhh
cyBub3Qgc2V0dXAKKy8vIG1ldGhvZC4gSS5lLiB0ZXN0RnVuY3Rpb24oZ2VuZXJhdGVkQXJncywg
YXJnR2VuLCBzZXR1cFZhcnMpLgorLy8KK2FyZ0dlbmVyYXRvclRlc3RSdW5uZXIgPSBmdW5jdGlv
bihhcmdHZW4sIHRlc3RGdW5jdGlvbiwgbnVtYmVyT2ZUZXN0cykgeworICAvLyBkbyBhcmd1bWVu
dCBnZW5lcmF0b3Igc2V0dXAgaWYgbmVlZGVkCisgIHZhciBzZXR1cFZhcnMgPSBhcmdHZW4uc2V0
dXAgPyBhcmdHZW4uc2V0dXAoKSA6IFtdOworICB2YXIgZXJyb3I7CisgIGZvciAodmFyIGk9MDsg
aTxudW1iZXJPZlRlc3RzOyBpKyspIHsKKyAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgLy8g
Z2VuZXJhdGUgYXJndW1lbnRzIGlmIGFyZ0dlbiBoYXMgYSBnZW5lcmF0ZSBtZXRob2QKKyAgICB2
YXIgZ2VuZXJhdGVkQXJncyA9IGFyZ0dlbi5nZW5lcmF0ZSA/IGFyZ0dlbi5nZW5lcmF0ZS5hcHBs
eShhcmdHZW4sIHNldHVwVmFycykgOiBbXTsKKyAgICB0cnkgeworICAgICAgLy8gY2FsbCB0ZXN0
RnVuY3Rpb24gd2l0aCB0aGUgZ2VuZXJhdGVkIGFyZ3MKKyAgICAgIHRlc3RGdW5jdGlvbi5jYWxs
KHRoaXMsIGdlbmVyYXRlZEFyZ3MsIGFyZ0dlbiwgc2V0dXBWYXJzKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICAv
LyBpZiBhcmdHZW4gbmVlZHMgY2xlYW51cCBmb3IgZ2VuZXJhdGVkIGFyZ3MsIGRvIGl0IGhlcmUK
KyAgICBpZiAoYXJnR2VuLmNsZWFudXApCisgICAgICBhcmdHZW4uY2xlYW51cC5hcHBseShhcmdH
ZW4sIGdlbmVyYXRlZEFyZ3MpOworICAgIGlmIChmYWlsZWQpIGJyZWFrOworICB9CisgIC8vIGlm
IGFyZ0dlbiBuZWVkcyB0byBkbyBhIGZpbmFsIGNsZWFudXAgZm9yIHNldHVwVmFycywgZG8gaXQg
aGVyZQorICBpZiAoYXJnR2VuLnRlYXJkb3duKQorICAgIGFyZ0dlbi50ZWFyZG93bi5hcHBseShh
cmdHZW4sIHNldHVwVmFycyk7CisgIGlmIChlcnJvcikgdGhyb3coZXJyb3IpOworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9jb25mb3JtYW5jZS9xdWlja0NoZWNrQVBJQmFkQXJncy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9j
b25mb3JtYW5jZS9xdWlja0NoZWNrQVBJQmFkQXJncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyMTE4Mzdj
NjQyZjY3ZjZlY2I5YWFjOWMxNjQyNmQ5Zjk0OTNlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2NvbmZvcm1hbmNlL3F1aWNrQ2hlY2tBUElCYWRBcmdzLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9InF1
aWNrQ2hlY2tBUEkuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gt
amF2YXNjcmlwdCI+CisKKy8vIFRlc3QgdGhhdCBhbGwgR0wgZnVuY3Rpb25zIHNwZWNpZmllZCBp
biBBcmdHZW5lcmF0b3JzIGZhaWwKKy8vIHdoZW4gY2FsbGVkIHdpdGggcmFuZG9tbHkgZ2VuZXJh
dGVkIGludmFsaWQgYXJndW1lbnRzCisvLyBXb3JrcyBvbmx5IG9uIHRlc3RzIHdpdGggY2hlY2tB
cmdWYWxpZGl0eSBkZWZpbmVkCitUZXN0cy50ZXN0SW52YWxpZEFyZ3MgPSBmdW5jdGlvbigpIHsK
KyAgdmFyIHJhbmRvbVRlc3RDb3VudCA9IDEwMDsKKyAgZm9yICh2YXIgbmFtZSBpbiBBcmdHZW5l
cmF0b3JzKSB7CisgICAgdHJ5IHsKKyAgICAgIGlmICghR0xbbmFtZV0pCisgICAgICAgIHRocm93
IChuZXcgRXJyb3IobmFtZSArICIgaXMgbWlzc2luZyBmcm9tIHRoZSBXZWJHTCBjb250ZXh0Iikp
OworICAgICAgdmFyIGFyZ0dlbiA9IEFyZ0dlbmVyYXRvcnNbbmFtZV07CisgICAgICB2YXIgYWxy
ZWFkeVRyaWVkQXJncyA9IHt9OworICAgICAgaWYgKCFhcmdHZW4uZ2VuZXJhdGUgfHwgIWFyZ0dl
bi5jaGVja0FyZ1ZhbGlkaXR5KSBjb250aW51ZTsKKyAgICAgIC8vIHRlc3QgZWFjaCBHTCBmdW5j
dGlvbiB3aXRoIHJhbmRvbVRlc3RDb3VudCByYW5kb21seSBnZW5lcmF0ZWQgdmFsaWQgYXJncwor
ICAgICAgYXJnR2VuZXJhdG9yVGVzdFJ1bm5lcihhcmdHZW4sIGZ1bmN0aW9uKGFyZ3MsIGdlbiwg
c2V0dXBWYXJzKSB7CisgICAgICAgIHZhciBtdXRhdGVkQXJnczsKKyAgICAgICAgdmFyIGZvdW5k
QXJncyA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBqPTA7IGo8MTAwOyBqKyspIHsKKyAgICAg
ICAgICBtdXRhdGVkQXJncyA9IG11dGF0ZUFyZ3MoYXJncyk7CisgICAgICAgICAgdmFyIHZhbGlk
QXJncyA9IGZhbHNlOworICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YWxpZEFyZ3MgPSBn
ZW4uY2hlY2tBcmdWYWxpZGl0eS5hcHBseShnZW4sIG11dGF0ZWRBcmdzKTsKKyAgICAgICAgICB9
IGNhdGNoKGUpIHt9CisgICAgICAgICAgaWYgKCF2YWxpZEFyZ3MpIHsKKyAgICAgICAgICAgIGlm
IChnZW4ubm9BbHJlYWR5VHJpZWRDaGVjaykgeworICAgICAgICAgICAgICBmb3VuZEFyZ3MgPSB0
cnVlOworICAgICAgICAgICAgICBicmVhazsgLy8gZm91bmQgbmV3IGludmFsaWQgYXJncworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHNyYyA9IE9iamVjdC50b1NvdXJjZShtdXRhdGVk
QXJncyk7CisgICAgICAgICAgICBpZiAoIWFscmVhZHlUcmllZEFyZ3Nbc3JjXSkgeworICAgICAg
ICAgICAgICBhbHJlYWR5VHJpZWRBcmdzW3NyY10gPSB0cnVlOworICAgICAgICAgICAgICBmb3Vu
ZEFyZ3MgPSB0cnVlOworICAgICAgICAgICAgICBicmVhazsgLy8gZm91bmQgbmV3IGludmFsaWQg
YXJncworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAo
IWZvdW5kQXJncykKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgdmFyIG9rID0gZmFs
c2U7CisgICAgICAgIHZhciBydjsKKyAgICAgICAgLy8gYXNzZXJ0IHRoYXQgR0wgZnVuY3Rpb24g
ZmFpbHMgd2hlbiBjYWxsZWQgd2l0aCBpbnZhbGlkIGFyZ3MKKyAgICAgICAgYXNzZXJ0RmFpbCgi
VGhpcyBzaG91bGQgZmFpbDogIituYW1lKyIoIittdXRhdGVkQXJncy5tYXAoZnVuY3Rpb24oYSl7
cmV0dXJuIE9iamVjdC50b1NvdXJjZShhKX0pLmpvaW4oIiwiKSsiKSIsCisgICAgICAgICAgZnVu
Y3Rpb24oKXsKKyAgICAgICAgICAgIEdMLmdldEVycm9yKCk7IC8vIGNsZWFyIG9mZiBleGlzdGlu
ZyBlcnJvcgorICAgICAgICAgICAgcnYgPSBHTFtuYW1lXS5hcHBseShHTCwgbXV0YXRlZEFyZ3Mp
OworICAgICAgICAgICAgdGhyb3dFcnJvcihHTCwgbmFtZSk7CisgICAgICAgICAgICBvayA9IHRy
dWU7CisgICAgICAgICAgfSk7CisgICAgICAgIC8vIGlmIHdlIG5lZWQgdG8gY2xlYW51cCB0aGUg
cmV0dXJuIHZhbHVlLCBkbyBpdCBoZXJlCisgICAgICAgIC8vIGUuZy4gY2FsbGluZyBnbC5kZWxl
dGVCdWZmZXIocnYpIGFmdGVyIHRlc3RpbmcgZ2wuY3JlYXRlQnVmZmVyKCkgYWJvdmUKKyAgICAg
ICAgaWYgKGdlbi5yZXR1cm5WYWx1ZUNsZWFudXAgJiYgcnYgIT0gbnVsbCkgeworICAgICAgICAg
IGFzc2VydE9rKCJDbGVhbmluZyB1cCByZXR1cm4gdmFsdWUgYWZ0ZXIgIituYW1lKyIoIittdXRh
dGVkQXJncy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC50b1NvdXJjZShhKX0pLmpvaW4o
IiwiKSsiKSIsCisgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGdlbi5yZXR1cm5WYWx1
ZUNsZWFudXAocnYpOyB9KTsKKyAgICAgICAgfQorICAgICAgICBHTC5nZXRFcnJvcigpOworICAg
ICAgICByZXR1cm4gIW9rOworICAgICAgfSwgYXJnR2VuLnRlc3RDb3VudCB8fCByYW5kb21UZXN0
Q291bnQpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgdGVzdEZhaWxlZChuYW1lLCBlLm5hbWUs
IGZvcm1hdEVycm9yKGUpKTsKKyAgICB9CisgIH0KK30KKworPC9zY3JpcHQ+Cis8c3R5bGU+Y2Fu
dmFze3Bvc2l0aW9uOmFic29sdXRlO308L3N0eWxlPgorPC9oZWFkPjxib2R5PgorPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvY29uZm9ybWFuY2Uvd2ViR0xBcnJheXMuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvY29uZm9ybWFuY2Uvd2ViR0xBcnJheXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmE2OGU0MGFmZTRi
MWEwNTJiOGY4ODZjODg0N2JhZTU4MmFjMTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9jb25m
b3JtYW5jZS93ZWJHTEFycmF5cy5odG1sCkBAIC0wLDAgKzEsMTg2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisq
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24v
eC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworZnVuY3Rpb24gYXNzZXJ0
SWR4cyhuYW1lLCBhcnIsIGxlbmd0aCkgeworLy8gICBhc3NlcnRPayhuYW1lKyI6IFJlYWQgd2l0
aCBuZWdhdGl2ZSBpZHggc2hvdWxkIHdvcmsiLCBmdW5jdGlvbigpeyByZXR1cm4gYXJyWy0xXSB9
KTsKKy8vICAgYXNzZXJ0T2sobmFtZSsiOiBSZWFkIHdpdGggdG9vIGxhcmdlIGlkeCBzaG91bGQg
d29yayIsIGZ1bmN0aW9uKCl7IHJldHVybiBhcnJbbGVuZ3RoXSB9KTsKKy8vICAgYXNzZXJ0T2so
bmFtZSsiOiBXcml0ZSB3aXRoIG5lZ2F0aXZlIGlkeCBzaG91bGQgd29yayIsIGZ1bmN0aW9uKCl7
IGFyclstMV0gPSAwIH0pOworLy8gICBhc3NlcnRPayhuYW1lKyI6IFdyaXRlIHdpdGggdG9vIGxh
cmdlIGlkeCBzaG91bGQgd29yayIsIGZ1bmN0aW9uKCl7IGFycltsZW5ndGhdID0gMCB9KTsKKy8v
ICAgYXJyWzBdID0gMjsKKy8vICAgYXNzZXJ0RXF1YWxzKG5hbWUrIjogVGVzdCB0aGF0IHdyaXRl
IHdvcmtlZCIsIDIsIGFyclswXSk7CisvLyAgIGFzc2VydE9rKG5hbWUrIjogV3JpdGUgd2l0aCBi
YWQgdmFsdWUgc2hvdWxkIHdvcmsiLCBmdW5jdGlvbigpeyBhcnJbMF0gPSB7eDoiZm9vIn0gfSk7
CisvLyAgIGFzc2VydEVxdWFscyhuYW1lKyI6IFRlc3QgdGhhdCBiYWQgd3JpdGUgZGlkbid0IHdv
cmsiLCAyLCBhcnJbMF0pOworICBhc3NlcnRPayhuYW1lKyI6IFJlYWQgYW5kIHdyaXRlcyB3aXRo
IE9LIGlkeHMgc2hvdWxkIHdvcmsiLCBmdW5jdGlvbigpeworICAgIGZvciAodmFyIGk9MDsgaTxs
ZW5ndGg7IGkrKykgYXJyW2ldID0gaSArIDE7CisgICAgZm9yICh2YXIgaT0wOyBpPGxlbmd0aDsg
aSsrKSBhcnJbaV0gPSBhcnJbaV0gKyAxOworICAgIGZvciAodmFyIGk9MDsgaTxsZW5ndGg7IGkr
KykgYXNzZXJ0RXF1YWxzKG5hbWUrIjogVGVzdCB0aGF0IHJlYWRzIGFuZCB3cml0ZXMgd29yayIs
IGkrMiwgYXJyW2ldKTsKKyAgfSk7Cit9CisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgp
IHsKKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICB2YXIg
Z2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4dChjYW52YXMpKTsKKyAgcHJvZyA9IG5ldyBT
aGFkZXIoZ2wsICd2ZXJ0JywgJ2ZyYWcnKTsKKyAgcHJvZy51c2UoKTsKKyAgcHJvZy51bmlmb3Jt
NGYoJ2MnLCAyNTUsIDAsIDAsIDI1NSk7CisgIHZhID0gcHJvZy5hdHRyaWIoJ1ZlcnRleCcpOwor
ICBidWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9C
VUZGRVIsIGJ1ZmZlcik7CisgIHJldHVybiBbZ2xdOworfQorCitUZXN0cy5lbmRVbml0ID0gZnVu
Y3Rpb24oKSB7CisgIHByb2cuZGVzdHJveSgpOworfQorCitUZXN0cy50ZXN0Q3JlYXRlRnJvbUFy
cmF5ID0gZnVuY3Rpb24oKSB7CisgIHZhciBhID0gbmV3IEZsb2F0MzJBcnJheShbMSwyLDMsNCw1
LDZdKTsKKyAgYXNzZXJ0SWR4cygnRmxvYXQnLCBhLCA2KTsKKyAgdmFyIGEgPSBuZXcgSW50MzJB
cnJheShbMSwyLDMsNCw1LDZdKTsKKyAgYXNzZXJ0SWR4cygnSW50JywgYSwgNik7CisgIHZhciBh
ID0gbmV3IEludDE2QXJyYXkoWzEsMiwzLDQsNSw2XSk7CisgIGFzc2VydElkeHMoJ1Nob3J0Jywg
YSwgNik7CisgIHZhciBhID0gbmV3IEludDhBcnJheShbMSwyLDMsNCw1LDZdKTsKKyAgYXNzZXJ0
SWR4cygnQnl0ZScsIGEsIDYpOworICB2YXIgYSA9IG5ldyBVaW50MzJBcnJheShbMSwyLDMsNCw1
LDZdKTsKKyAgYXNzZXJ0SWR4cygnVUludCcsIGEsIDYpOworICB2YXIgYSA9IG5ldyBVaW50MTZB
cnJheShbMSwyLDMsNCw1LDZdKTsKKyAgYXNzZXJ0SWR4cygnVVNob3J0JywgYSwgNik7CisgIHZh
ciBhID0gbmV3IFVpbnQ4QXJyYXkoWzEsMiwzLDQsNSw2XSk7CisgIGFzc2VydElkeHMoJ1VCeXRl
JywgYSwgNik7Cit9CitUZXN0cy50ZXN0Q3JlYXRlRnJvbUNvdW50ID0gZnVuY3Rpb24oKSB7Cisg
IHZhciBhID0gbmV3IEZsb2F0MzJBcnJheSg2KTsKKyAgYXNzZXJ0SWR4cygnRmxvYXQnLCBhLCA2
KTsKKyAgdmFyIGEgPSBuZXcgSW50MzJBcnJheSg2KTsKKyAgYXNzZXJ0SWR4cygnSW50JywgYSwg
Nik7CisgIHZhciBhID0gbmV3IEludDE2QXJyYXkoNik7CisgIGFzc2VydElkeHMoJ1Nob3J0Jywg
YSwgNik7CisgIHZhciBhID0gbmV3IEludDhBcnJheSg2KTsKKyAgYXNzZXJ0SWR4cygnQnl0ZScs
IGEsIDYpOworICB2YXIgYSA9IG5ldyBVaW50MzJBcnJheSg2KTsKKyAgYXNzZXJ0SWR4cygnVUlu
dCcsIGEsIDYpOworICB2YXIgYSA9IG5ldyBVaW50MTZBcnJheSg2KTsKKyAgYXNzZXJ0SWR4cygn
VVNob3J0JywgYSwgNik7CisgIHZhciBhID0gbmV3IFVpbnQ4QXJyYXkoNik7CisgIGFzc2VydElk
eHMoJ1VCeXRlJywgYSwgNik7Cit9CitUZXN0cy50ZXN0Q3JlYXRlRnJvbUJ1ZmZlciA9IGZ1bmN0
aW9uKCkgeworICB2YXIgc3ogPSAyNDsKKyAgdmFyIGIgPSBuZXcgQXJyYXlCdWZmZXIoc3opOwor
ICB2YXIgYSA9IG5ldyBGbG9hdDMyQXJyYXkoYik7CisgIGFzc2VydElkeHMoJ0Zsb2F0JywgYSwg
c3ovNCk7CisgIHZhciBhID0gbmV3IEludDMyQXJyYXkoYik7CisgIGFzc2VydElkeHMoJ0ludCcs
IGEsIHN6LzQpOworICB2YXIgYSA9IG5ldyBJbnQxNkFycmF5KGIpOworICBhc3NlcnRJZHhzKCdT
aG9ydCcsIGEsIHN6LzIpOworICB2YXIgYSA9IG5ldyBJbnQ4QXJyYXkoYik7CisgIGFzc2VydElk
eHMoJ0J5dGUnLCBhLCBzei8xKTsKKyAgdmFyIGEgPSBuZXcgVWludDMyQXJyYXkoYik7CisgIGFz
c2VydElkeHMoJ1VJbnQnLCBhLCBzei80KTsKKyAgdmFyIGEgPSBuZXcgVWludDE2QXJyYXkoYik7
CisgIGFzc2VydElkeHMoJ1VTaG9ydCcsIGEsIHN6LzIpOworICB2YXIgYSA9IG5ldyBVaW50OEFy
cmF5KGIpOworICBhc3NlcnRJZHhzKCdVQnl0ZScsIGEsIHN6LzEpOworfQorCitUZXN0cy50ZXN0
VGhhdFdyaXRlc0NoYW5nZURyYXdpbmcgPSBmdW5jdGlvbihnbCkgeworICB2YXIgdmVydHMgPSBb
CisgICAgMCwwLAorICAgIDEsMCwKKyAgICAxLDEsCisKKyAgICAwLDAsCisgICAgMSwxLAorICAg
IDAsMQorICBdOworICB2YXIgYSA9IG5ldyBGbG9hdDMyQXJyYXkodmVydHMpOworICB2YXIgYXJy
ID0gW107CisgIGZvciAodmFyIGk9MDsgaTwxMjsgaSsrKQorICAgIGFycltpXSA9IGFbaV07Cisg
IGFzc2VydEVxdWFscygiVGVzdCB0aGF0IHJlYWRzIHdvcmsgZnJvbSBhbiBhcnJheS1pbml0aWFs
aXplZCBGbG9hdDMyQXJyYXkiLCBhcnIsIHZlcnRzKTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgYSwgZ2wuU1RBVElDX0RSQVcpOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZh
LCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJh
eSh2YSk7CisKKyAgdmFyIGlkID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgIGdsLnJlYWRQaXhlbHMo
OCw4LDEsMSxnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpZCk7CisgIGFzc2VydEVxdWFscyhb
MCwgMCwgMCwgMF0sIFtpZFswXSwgaWRbMV0sIGlkWzJdLCBpZFszXV0pOworCisgIGdsLmRyYXdB
cnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKKworICBnbC5yZWFkUGl4ZWxzKDgsOCwxLDEsZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaWQpOworICBhc3NlcnRFcXVhbHMoWzI1NSwgMCwgMCwg
MjU1XSwgW2lkWzBdLCBpZFsxXSwgaWRbMl0sIGlkWzNdXSk7CisgIGdsLnJlYWRQaXhlbHMoMCw4
LDEsMSxnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpZCk7CisgIGFzc2VydEVxdWFscyhbMCwg
MCwgMCwgMF0sIFtpZFswXSwgaWRbMV0sIGlkWzJdLCBpZFszXV0pOworCisgIGFbMF0gPSBhWzZd
ID0gYVsxMF0gPSAtMTsKKyAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGEsIGdsLlNU
QVRJQ19EUkFXKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcih2YSwgMiwgZ2wuRkxPQVQsIGZh
bHNlLCAwLCAwKTsKKworICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7CisKKyAg
Z2wucmVhZFBpeGVscyg4LDgsMSwxLGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGlkKTsKKyAg
YXNzZXJ0RXF1YWxzKFsyNTUsIDAsIDAsIDI1NV0sIFtpZFswXSwgaWRbMV0sIGlkWzJdLCBpZFsz
XV0pOworICBnbC5yZWFkUGl4ZWxzKDAsOCwxLDEsZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
aWQpOworICBhc3NlcnRFcXVhbHMoIlRlc3QgdGhhdCBGbG9hdDMyQXJyYXkjW109IHdvcmtlZCBh
bmQgZHJhd0FycmF5cyBkcmV3IGEgZnVsbC13aWR0aCByZWN0YW5nbGUiLAorICAgICAgICAgICAg
ICAgWzI1NSwgMCwgMCwgMjU1XSwgW2lkWzBdLCBpZFsxXSwgaWRbMl0sIGlkWzNdXSk7CisgIGds
LnJlYWRQaXhlbHMoMCwwLDEsMSxnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpZCk7CisgIGFz
c2VydEVxdWFscyhbMCwgMCwgMCwgMF0sIFtpZFswXSwgaWRbMV0sIGlkWzJdLCBpZFszXV0pOwor
fQorCis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4KKyAgYXR0cmlidXRlIHZlYzIgVmVydGV4OworICB2b2lkIG1haW4oKQorICB7CisgICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMC4wLCAxLjApOworICB9Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgaWQ9ImZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICBwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKworICB1bmlmb3JtIHZlYzQgYzsKKyAgdm9pZCBtYWluKCkKKyAgeworICAg
IGdsX0ZyYWdDb2xvciA9IGM7CisgIH0KKzwvc2NyaXB0PgorPHN0eWxlPmNhbnZhc3tib3JkZXI6
IDFweCBzb2xpZCBibGFja308L3N0eWxlPgorPC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0iZ2wi
IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9kZW1vcy9vcGVuZ2xfd2ViLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2RlbW9zL29wZW5nbF93ZWIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZmRiZTNhYzE4YTQ5MWQxYmMyOTcxY2VjOTY5NDczNzIxYTJmM2Yz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9kZW1vcy9vcGVuZ2xfd2ViLmh0bWwKQEAgLTAsMCAr
MSw2MDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioK
KyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPHRpdGxl
Pk9wZW5HTCBmb3IgdGhlIHdlYjwvdGl0bGU+CisKKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24v
eC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorCisgICAgPHNjcmlwdCB0
eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCitmdW5jdGlvbiBsb2cobXNnKSB7Cisg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub3RlJykudGV4dENvbnRlbnQgKz0gIlxuIittc2c7
Cit9CisKKworCisKK2Z1bmN0aW9uIGluaXQoZXYpIHsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbnZhcycpOworICAgIHZhciBnbCA9IGdldEdMQ29udGV4dChj
YW52YXMpOworCisgICAgdmFyIHNoYWRlciA9IG5ldyBTaGFkZXIoZ2wsICJwcGl4LXZlcnQiLCAi
cHBpeC1mcmFnIik7CisgICAgc2hhZGVyLmNvbXBpbGUoKTsKKyAgICB2YXIgZmJvID0gbmV3IEZC
TyhnbCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICB2YXIgZmJvMiA9IG5ldyBG
Qk8oZ2wsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgdmFyIGZibzMgPSBuZXcg
RkJPKGdsLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgIHZhciBkZXB0aCA9IG5l
dyBTaGFkZXIoZ2wsICJkZXB0aC12ZXJ0IiwgImRlcHRoLWZyYWciKTsKKyAgICB2YXIgaWRlbnRp
dHkgPSBuZXcgRmlsdGVyKGdsLCAiaWRlbnRpdHktdmVydCIsICJpZGVudGl0eS1mcmFnIik7Cisg
ICAgdmFyIHVucHJlbXVsdCA9IG5ldyBGaWx0ZXIoZ2wsICJpZGVudGl0eS12ZXJ0IiwgInVucHJl
bXVsdC1mcmFnIik7CisgICAgdmFyIGhibHVyID0gbmV3IEZpbHRlcihnbCwgImlkZW50aXR5LXZl
cnQiLCAiaGJsdXItZnJhZyIpOworICAgIHZhciB2Ymx1ciA9IG5ldyBGaWx0ZXIoZ2wsICJpZGVu
dGl0eS12ZXJ0IiwgInZibHVyLWZyYWciKTsKKyAgICB2YXIgaGRvZiA9IG5ldyBGaWx0ZXIoZ2ws
ICJpZGVudGl0eS12ZXJ0IiwgImhkb2YtZnJhZyIpOworICAgIHZhciB2ZG9mID0gbmV3IEZpbHRl
cihnbCwgImlkZW50aXR5LXZlcnQiLCAidmRvZi1mcmFnIik7CisKKyAgICByZWRyYXcoY2FudmFz
LCBnbCwgc2hhZGVyLCBmYm8sIGZibzIsIGZibzMsIGRlcHRoLCBpZGVudGl0eSwgdW5wcmVtdWx0
LCBoYmx1ciwgdmJsdXIsIGhkb2YsIHZkb2YpOworCisgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24o
KXsKKyAgICAgICAgcmVkcmF3KGNhbnZhcywgZ2wsIHNoYWRlciwgZmJvLCBmYm8yLCBmYm8zLCBk
ZXB0aCwgaWRlbnRpdHksIHVucHJlbXVsdCwgaGJsdXIsIHZibHVyLCBoZG9mLCB2ZG9mKTsKKyAg
ICB9LCAzMyk7Cit9CisKK2Z1bmN0aW9uIGRyYXdDdWJlIChnbCwgc2hhZGVyLCBhbmdsZSwgYXhp
cywgeCx5LHosIHMsIHZhLCBuYSwgdGEpIHsKKyAgICBNYXRyaXguY29weU1hdHJpeChsb29rLCB2
bWF0KTsKKyAgICBNYXRyaXgudHJhbnNsYXRlM0luUGxhY2UoeCx5LHosdm1hdCk7CisgICAgTWF0
cml4LnNjYWxlMUluUGxhY2Uocyx2bWF0KTsKKyAgICBNYXRyaXgucm90YXRlSW5QbGFjZShhbmds
ZSwgYXhpcywgdm1hdCk7CisKKyAgICAvLyBOb3RlOiB3ZSBjb3VsZCBqdXN0IHVzZSBtYXQzKE1W
TWF0cml4KSBhcyB0aGUgbm9ybWFsIG1hdHJpeAorICAgIC8vIGFzIE1WTWF0cml4IGhhcyBvbmx5
IHJvdGF0aW9ucywgdHJhbnNsYXRpb25zIGFuZCB1bmlmb3JtIHNjYWxpbmcKKyAgICAvLyA8PT4g
TVZNYXRyaXggaXMgYSBzY2FsZWQgb3J0aG9ub3JtYWwgbWF0cml4CisgICAgLy8gaGVuY2Ugbm9y
bWFsaXplKG1hdDMoTVZNYXRyaXgpKnYpID09IG5vcm1hbGl6ZShtYXQzKHRyYW5zcG9zZShpbnZl
cnNlKE1WTWF0cml4KSkqdikKKyAgICAvLworICAgIC8vIEJ1dCBsZXQncyBkbyBpdCB0aGUgaGFy
ZCB3YXkgdG8gc2VlIGlmIE1hdHJpeC5pbnZlcnNlM3gzIHdvcmtzLi4uCisgICAgTWF0cml4Lmlu
dmVyc2VUbzN4M0luUGxhY2Uodm1hdCwgbm1hdCk7CisgICAgTWF0cml4LnRyYW5zcG9zZTN4M0lu
UGxhY2Uobm1hdCk7CisKKyAgICBzaGFkZXIudW5pZm9ybU1hdHJpeDRmdigiTVZNYXRyaXgiLCB2
bWF0KTsKKyAgICBzaGFkZXIudW5pZm9ybU1hdHJpeDNmdigiTk1hdHJpeCIsIG5tYXQpOworCisg
ICAgdmFyIGN1YmUgPSBDdWJlLmdldENhY2hlZFZCTyhnbCk7CisgICAgY3ViZS5kcmF3KHZhLCBu
YSwgdGEpOworfQorCit2YXIgY2FyciA9IFtdOworZm9yICh2YXIgaT0wOyBpPDI1OyBpKyspIHsK
KyAgICBjYXJyLnB1c2goW01hdGgucmFuZG9tKCksIE1hdGgucmFuZG9tKCksIE1hdGgucmFuZG9t
KCldKTsKK30KKworZnVuY3Rpb24gZHJhd1NjZW5lIChnbCwgc2hhZGVyLCB2YSwgbmEsIHRhKSB7
CisgICAgdmFyIG90ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgdmFyIHQgPSBvdDsKKwor
ICAgIHNoYWRlci51bmlmb3JtTWF0cml4NGZ2KCJQTWF0cml4IiwgcG1hdCk7CisgICAgZm9yICh2
YXIgaT0wOyBpPGNhcnIubGVuZ3RoOyBpKyspeworICAgICAgICB2YXIgYyA9IGNhcnJbaV07Cisg
ICAgICAgIHZhciBmID0gY1sxXSA8IDAuNSA/IDEgOiAtMTsKKyAgICAgICAgdmFyIHQgPSBvdDsK
KyAgICAgICAgZHJhd0N1YmUoZ2wsIHNoYWRlciwKKyAgICAgICAgICAgICAgICAodC8oZio0MDAq
KGNbMF0rMC41KSkpICUgKDIqTWF0aC5QSSksIGMsCisKKyAgICAgICAgICAgICAgICAwLjQ1KzAu
OCpjWzJdLAorICAgICAgICAgICAgICAgIC0wLjQrTWF0aC5jb3MoKGkvY2Fyci5sZW5ndGgqTWF0
aC5QSSoyKSt0LzEwMDApLAorICAgICAgICAgICAgICAgIDAuOCtNYXRoLnNpbigoaS9jYXJyLmxl
bmd0aCpNYXRoLlBJKjIpK3QvMTAwMCkqMy4yLAorCisgICAgICAgICAgICAgICAgMC4wNSArIE1h
dGgucG93KChjWzBdK2NbMV0rY1syXSkqMC4zMywgMikqMC4zLAorICAgICAgICAgICAgICAgIHZh
LCBuYSwgdGEpOworICAgIH0KK30KKwordmFyIG5tYXQgPSBNYXRyaXgubmV3SWRlbnRpdHkzeDMo
KTsKK3ZhciB2bWF0ID0gTWF0cml4Lm5ld0lkZW50aXR5KCk7Cit2YXIgdm1hdDIgPSBNYXRyaXgu
bmV3SWRlbnRpdHkoKTsKK3ZhciBwbWF0ID0gbnVsbDsKK3ZhciBsb29rID0gTWF0cml4Lmxvb2tB
dChbNCwtMSw4XSwgWy0wLjIsMCwwXSwgWzAsMSwwXSk7Cit2YXIgdXNlRG9GID0gZmFsc2U7CisK
K3ZhciBmaXJzdEZyYW1lID0gdHJ1ZTsKKworZnVuY3Rpb24gcmVkcmF3KGNhbnZhcywgZ2wsIHNo
YWRlciwgZmJvLCBmYm8yLCBmYm8zLCBkZXB0aCwgaWRlbnRpdHksIHVucHJlbXVsdCwgaGJsdXIs
IHZibHVyLCBoZG9mLCB2ZG9mKSB7CisKKyAgICB2YXIgZG9Eb0YgPSB1c2VEb0Y7CisgICAgZ2wu
dmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICBnbC5jbGVh
ckNvbG9yKDAuMCwgMC4wLCAwLjAsIDAuMCk7CisgICAgZ2wuZW5hYmxlKGdsLkRFUFRIX1RFU1Qp
OworCisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKKyAgICBn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisKKyAg
ICBmYm8udXNlKCk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOworCisgICAgc2hhZGVyLnVzZSgpOworCisgICAgdmFyIHZhID0gc2hhZGVy
LmF0dHJpYigiVmVydGV4Iik7CisgICAgdmFyIG5hID0gc2hhZGVyLmF0dHJpYigiTm9ybWFsIik7
CisgICAgdmFyIHRhID0gc2hhZGVyLmF0dHJpYigiVGV4Iik7CisKKyAgICBpZiAocG1hdCA9PSBu
dWxsKQorICAgICAgICBwbWF0ID0gTWF0cml4LnBlcnNwZWN0aXZlKDMwLCBjYW52YXMud2lkdGgv
Y2FudmFzLmhlaWdodCwgMSwgMTAwKTsKKworICAgIHNoYWRlci51bmlmb3JtNGYoIk1hdGVyaWFs
U3BlY3VsYXIiLCAwLjk1LCAwLjksIDAuNiwgMSk7CisgICAgc2hhZGVyLnVuaWZvcm00ZigiTWF0
ZXJpYWxEaWZmdXNlIiwgMC41MCwgMC4zNSwgMC4zNSwgMSk7CisgICAgc2hhZGVyLnVuaWZvcm00
ZigiTWF0ZXJpYWxBbWJpZW50IiwgMC4wLCAwLjEsIDAuMiwgMSk7CisgICAgc2hhZGVyLnVuaWZv
cm0xZigiTWF0ZXJpYWxTaGluaW5lc3MiLCAxLjUpOworCisgICAgc2hhZGVyLnVuaWZvcm00Zigi
R2xvYmFsQW1iaWVudCIsIDAuMSwgMC4xLCAwLjEsIDEpOworCisgICAgc2hhZGVyLnVuaWZvcm00
ZigiTGlnaHRQb3MiLCAxLCA1LCAzLCAxLjApOworCisgICAgc2hhZGVyLnVuaWZvcm00ZigiTGln
aHRTcGVjdWxhciIsIDAuOSwgMC45LCAwLjksIDEpOworICAgIHNoYWRlci51bmlmb3JtNGYoIkxp
Z2h0RGlmZnVzZSIsIDAuOCwgMC44LCAwLjgsIDEpOworICAgIHNoYWRlci51bmlmb3JtNGYoIkxp
Z2h0QW1iaWVudCIsIDAuMCwgMC4wNiwgMC4yLCAxKTsKKyAgICBzaGFkZXIudW5pZm9ybTFmKCJM
aWdodENvbnN0YW50QXR0IiwgMC4wKTsKKyAgICBzaGFkZXIudW5pZm9ybTFmKCJMaWdodExpbmVh
ckF0dCIsIDAuMSk7CisgICAgc2hhZGVyLnVuaWZvcm0xZigiTGlnaHRRdWFkcmF0aWNBdHQiLCAw
LjApOworCisgICAgZHJhd1NjZW5lKGdsLCBzaGFkZXIsIHZhLCBuYSk7CisKKyAgICBpZiAoZG9E
b0YgfHwgZmlyc3RGcmFtZSkgeworCisgICAgICAgIGZibzMudXNlKCk7CisgICAgICAgIGdsLmNs
ZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgICAgICAg
ZGVwdGgudXNlKCk7CisgICAgICAgIHZhciBkdmEgPSBkZXB0aC5hdHRyaWIoIlZlcnRleCIpOwor
CisgICAgICAgIGRyYXdTY2VuZShnbCwgZGVwdGgsIGR2YSk7CisKKyAgICAgICAgZ2wuZGlzYWJs
ZShnbC5ERVBUSF9URVNUKTsKKyAgICAgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMSk7
CisgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIGZibzMudGV4dHVyZSk7Cisg
ICAgICAgIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTApOworCisKKyAgICAgICAgZm9yICh2
YXIgaT0wOyBpPDM7IGkrKykgeworICAgICAgICAgICAgZmJvMi51c2UoKTsKKyAgICAgICAgICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIGZiby50ZXh0dXJlKTsKKworICAgICAgICAg
ICAgaGRvZi5hcHBseShmdW5jdGlvbihmKXsKKyAgICAgICAgICAgICAgICBmLnVuaWZvcm0xaSgi
VGV4dHVyZSIsIDApOworICAgICAgICAgICAgICAgIGYudW5pZm9ybTFpKCJEZXB0aCIsIDEpOwor
ICAgICAgICAgICAgICAgIGYudW5pZm9ybTFmKCJpdGVyIiwgaSk7CisgICAgICAgICAgICAgICAg
Zi51bmlmb3JtMWYoInN0ZXAiLCAxLjAvY2FudmFzLndpZHRoKTsKKyAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICBmYm8udXNlKCk7CisgICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCBmYm8yLnRleHR1cmUpOworCisgICAgICAgICAgICB2ZG9mLmFwcGx5KGZ1bmN0
aW9uKGYpeworICAgICAgICAgICAgICAgIGYudW5pZm9ybTFpKCJUZXh0dXJlIiwgMCk7CisgICAg
ICAgICAgICAgICAgZi51bmlmb3JtMWkoIkRlcHRoIiwgMSk7CisgICAgICAgICAgICAgICAgZi51
bmlmb3JtMWYoIml0ZXIiLCBpKTsKKyAgICAgICAgICAgICAgICBmLnVuaWZvcm0xZigic3RlcCIs
IDEuMC9jYW52YXMud2lkdGgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgIH0K
KyAgICBmaXJzdEZyYW1lID0gZmFsc2U7CisKKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJB
TUVCVUZGRVIsIG51bGwpOworCisgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMSk7Cisg
ICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAgZ2wuYWN0aXZlVGV4
dHVyZShnbC5URVhUVVJFMCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgZmJv
LnRleHR1cmUpOworCisgICAgLy8gVGhlIERvRiBibHVyIGJsdXJzIHRoZSBjb2xvciBmcm9tIHRo
ZSB0cmFuc3BhcmVudCBibGFjayBiYWNrZ3JvdW5kIHdpdGgKKyAgICAvLyB0aGUgY3ViZXMuIFRv
IGdldCByaWQgb2YgdGhlIGJvcmRlciwgd2UgY2FuIHRyZWF0IGl0IGFzIHByZW11bHRpcGxpZWQg
YWxwaGEuCisgICAgLy8gVG8gc2VlIHRoZSBwcm9ibGVtLCB0cnkgcmVwbGFjaW5nIHVucHJlbXVs
dCB3aXRoIGlkZW50aXR5LgorICAgIHVucHJlbXVsdC5hcHBseShmdW5jdGlvbihmKXsKKyAgICAg
IGYudW5pZm9ybTFpKCJUZXh0dXJlIiwgMCk7CisgICAgfSk7CisKK30KKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBpbml0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+CisKKyAgICA8
c2NyaXB0IGlkPSJwcGl4LXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICAgIGF0
dHJpYnV0ZSB2ZWMzIFZlcnRleDsKKyAgICAgIGF0dHJpYnV0ZSB2ZWMzIE5vcm1hbDsKKyAgICAg
IGF0dHJpYnV0ZSB2ZWMyIFRleDsKKworICAgICAgdW5pZm9ybSBtYXQ0IFBNYXRyaXg7CisgICAg
ICB1bmlmb3JtIG1hdDQgTVZNYXRyaXg7CisgICAgICB1bmlmb3JtIG1hdDMgTk1hdHJpeDsKKwor
ICAgICAgdW5pZm9ybSB2ZWM0IE1hdGVyaWFsQW1iaWVudDsKKyAgICAgIHVuaWZvcm0gdmVjNCBN
YXRlcmlhbERpZmZ1c2U7CisKKyAgICAgIHVuaWZvcm0gdmVjNCBMaWdodEFtYmllbnQ7CisgICAg
ICB1bmlmb3JtIHZlYzQgTGlnaHREaWZmdXNlOworCisgICAgICB1bmlmb3JtIHZlYzQgR2xvYmFs
QW1iaWVudDsKKworICAgICAgdW5pZm9ybSB2ZWM0IExpZ2h0UG9zOworCisgICAgICB2YXJ5aW5n
IHZlYzQgZGlmZnVzZSwgYW1iaWVudEdsb2JhbCwgYW1iaWVudDsKKyAgICAgIHZhcnlpbmcgdmVj
MyBub3JtYWwsIGxpZ2h0RGlyLCBoYWxmVmVjdG9yOworICAgICAgdmFyeWluZyBmbG9hdCBkaXN0
OworCisgICAgICB2b2lkIG1haW4oKQorICAgICAgeworICAgICAgICB2ZWM0IHdvcmxkUG9zOwor
ICAgICAgICB2ZWMzIGxpZ2h0VmVjdG9yOworICAgICAgICB2ZWM0IHYgPSB2ZWM0KFZlcnRleCwg
MS4wKTsKKworICAgICAgICAvKiB0cmFuc2Zvcm0gdmVydGV4IG5vcm1hbCBpbnRvIHdvcmxkIHNw
YWNlIGFuZCBub3JtYWxpemUgKi8KKyAgICAgICAgbm9ybWFsID0gbm9ybWFsaXplKE5NYXRyaXgg
KiBOb3JtYWwpOworCisgICAgICAgIC8qIHRyYW5zZm9ybSB2ZXJ0ZXggaW50byB3b3JsZCBzcGFj
ZSBhbmQgY29tcHV0ZSB0aGUgdmVjdG9yCisgICAgICAgICAgZnJvbSBpdCB0byB0aGUgbGlnaHQg
Ki8KKyAgICAgICAgd29ybGRQb3MgPSBNVk1hdHJpeCAqIHY7CisgICAgICAgIGxpZ2h0VmVjdG9y
ID0gdmVjMyhMaWdodFBvcyAtIHdvcmxkUG9zKTsKKyAgICAgICAgbGlnaHREaXIgPSBub3JtYWxp
emUobGlnaHRWZWN0b3IpOworICAgICAgICBkaXN0ID0gbGVuZ3RoKGxpZ2h0VmVjdG9yKTsKKwor
ICAgICAgICAvKiBIYWxmLXZlY3RvciB1c2VkIGluIEJsaW5uLVBob25nIHNoYWRpbmcgZHVlIHRv
IGNvbXB1dGF0aW9uYWwgZWZmaWNpZW5jeSAqLworICAgICAgICBoYWxmVmVjdG9yID0gbm9ybWFs
aXplKGxpZ2h0VmVjdG9yIC0gdmVjMyh3b3JsZFBvcykpOworCisgICAgICAgIGRpZmZ1c2UgPSBN
YXRlcmlhbERpZmZ1c2UgKiBMaWdodERpZmZ1c2U7CisKKyAgICAgICAgLyogVGhlIGFtYmllbnQg
dGVybXMgaGF2ZSBiZWVuIHNlcGFyYXRlZCBzaW5jZSBvbmUgb2YgdGhlbSAqLworICAgICAgICAv
KiBzdWZmZXJzIGF0dGVudWF0aW9uICovCisgICAgICAgIGFtYmllbnQgPSBNYXRlcmlhbEFtYmll
bnQgKiBMaWdodEFtYmllbnQ7CisgICAgICAgIGFtYmllbnRHbG9iYWwgPSBHbG9iYWxBbWJpZW50
ICogTWF0ZXJpYWxBbWJpZW50OworCisgICAgICAgIGdsX1Bvc2l0aW9uID0gUE1hdHJpeCAqIHdv
cmxkUG9zOworICAgICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlwdCBpZD0icHBpeC1m
cmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICAgIHByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworCisgICAgICB1bmlmb3JtIHZlYzQgTGlnaHRTcGVjdWxhcjsKKyAgICAgIHVuaWZv
cm0gdmVjNCBNYXRlcmlhbFNwZWN1bGFyOworICAgICAgdW5pZm9ybSBmbG9hdCBNYXRlcmlhbFNo
aW5pbmVzczsKKworICAgICAgdW5pZm9ybSBmbG9hdCBMaWdodENvbnN0YW50QXR0OworICAgICAg
dW5pZm9ybSBmbG9hdCBMaWdodExpbmVhckF0dDsKKyAgICAgIHVuaWZvcm0gZmxvYXQgTGlnaHRR
dWFkcmF0aWNBdHQ7CisKKyAgICAgIHZhcnlpbmcgdmVjNCBkaWZmdXNlLGFtYmllbnRHbG9iYWws
IGFtYmllbnQ7CisgICAgICB2YXJ5aW5nIHZlYzMgbm9ybWFsLCBsaWdodERpciwgaGFsZlZlY3Rv
cjsKKyAgICAgIHZhcnlpbmcgZmxvYXQgZGlzdDsKKworICAgICAgdm9pZCBtYWluKCkKKyAgICAg
IHsKKyAgICAgICAgdmVjMyBuLCBoYWxmViwgdmlld1YsIGxkaXI7CisgICAgICAgIGZsb2F0IE5k
b3RMLCBOZG90SFY7CisgICAgICAgIHZlYzQgY29sb3IgPSBhbWJpZW50R2xvYmFsOworICAgICAg
ICBmbG9hdCBhdHQ7CisKKyAgICAgICAgbiA9IG5vcm1hbGl6ZShub3JtYWwpOworCisgICAgICAg
IE5kb3RMID0gbWF4KGRvdChuLCBub3JtYWxpemUobGlnaHREaXIpKSwgMC4wKTsKKworICAgICAg
ICBpZiAoTmRvdEwgPiAwLjApIHsKKworICAgICAgICAgIGF0dCA9IDEuMCAvIChMaWdodENvbnN0
YW50QXR0ICsgTGlnaHRMaW5lYXJBdHQgKiBkaXN0ICsgTGlnaHRRdWFkcmF0aWNBdHQgKiBkaXN0
ICogZGlzdCk7CisKKyAgICAgICAgICBjb2xvciArPSBhdHQgKiAoZGlmZnVzZSAqIE5kb3RMICsg
YW1iaWVudCk7CisKKyAgICAgICAgICBoYWxmViA9IG5vcm1hbGl6ZShoYWxmVmVjdG9yKTsKKyAg
ICAgICAgICBOZG90SFYgPSBtYXgoIGRvdChub3JtYWwsIGhhbGZWKSwgMC4wICk7CisKKyAgICAg
ICAgICBjb2xvciArPSBhdHQgKiBNYXRlcmlhbFNwZWN1bGFyICogTGlnaHRTcGVjdWxhciAqIHBv
dyhOZG90SFYsIE1hdGVyaWFsU2hpbmluZXNzKTsKKyAgICAgICAgfQorCisgICAgICAgIGdsX0Zy
YWdDb2xvciA9IGNvbG9yOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgaWQ9
ImRlcHRoLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICAgIGF0dHJpYnV0ZSB2
ZWMzIFZlcnRleDsKKyAgICAgIHVuaWZvcm0gbWF0NCBQTWF0cml4OworICAgICAgdW5pZm9ybSBt
YXQ0IE1WTWF0cml4OworICAgICAgdmFyeWluZyBmbG9hdCBkZXB0aDsKKyAgICAgIHZvaWQgbWFp
bigpCisgICAgICB7CisgICAgICAgIGdsX1Bvc2l0aW9uID0gUE1hdHJpeCAqIChNVk1hdHJpeCAq
IHZlYzQoVmVydGV4LCAxLjApKTsKKyAgICAgICAgZGVwdGggPSAxLjAtKGdsX1Bvc2l0aW9uLnog
LyBnbF9Qb3NpdGlvbi53KTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IGlk
PSJkZXB0aC1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICAgIHByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworCisgICAgICB2YXJ5aW5nIGZsb2F0IGRlcHRoOworICAgICAgdm9p
ZCBtYWluKCkKKyAgICAgIHsKKyAgICAgICAgdmVjNCBjID0gdmVjNChkZXB0aCwgMC4wLCAwLjAs
IDEuMCk7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IGM7CisgICAgICB9CisgICAgPC9zY3JpcHQ+
CisKKyAgICA8c2NyaXB0IGlkPSJpZGVudGl0eS12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRl
eCI+CisgICAgICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CisgICAgICBhdHRyaWJ1dGUgdmVjMiBU
ZXg7CisKKyAgICAgIHZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7CisgICAgICB2b2lkIG1haW4oKQor
ICAgICAgeworICAgICAgICB0ZXhDb29yZDAgPSB2ZWM0KFRleCwwLjAsMC4wKTsKKyAgICAgICAg
Z2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KyAgICA8c2NyaXB0IGlkPSJpZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50
Ij4KKyAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgICB1bmlmb3JtIHNhbXBs
ZXIyRCBUZXh0dXJlOworCisgICAgICB2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOworICAgICAgdm9p
ZCBtYWluKCkKKyAgICAgIHsKKyAgICAgICAgdmVjNCBjID0gdGV4dHVyZTJEKFRleHR1cmUsIHRl
eENvb3JkMC5zdCk7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IGM7CisgICAgICB9CisgICAgPC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBpZD0icHJlbXVsdC1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZy
YWdtZW50Ij4KKyAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgICB1bmlmb3Jt
IHNhbXBsZXIyRCBUZXh0dXJlOworCisgICAgICB2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOworICAg
ICAgdm9pZCBtYWluKCkKKyAgICAgIHsKKyAgICAgICAgdmVjNCBjID0gdGV4dHVyZTJEKFRleHR1
cmUsIHRleENvb3JkMC5zdCk7CisgICAgICAgIGZsb2F0IGEgPSBjLmE7CisgICAgICAgIGMgKj0g
YTsKKyAgICAgICAgYy5hID0gYTsKKyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gYzsKKyAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IGlkPSJ1bnByZW11bHQtZnJhZyIgdHlwZT0ieC1z
aGFkZXIveC1mcmFnbWVudCI+CisgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAg
ICAgdW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKKworICAgICAgdmFyeWluZyB2ZWM0IHRleENv
b3JkMDsKKyAgICAgIHZvaWQgbWFpbigpCisgICAgICB7CisgICAgICAgIHZlYzQgYyA9IHRleHR1
cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QpOworICAgICAgICBmbG9hdCBhID0gYy5hOworICAg
ICAgICBjIC89IGE7CisgICAgICAgIGMuYSA9IGE7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IGM7
CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IGlkPSJoYmx1ci1mcmFnIiB0
eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworCisgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOworICAgICAgdW5pZm9ybSBmbG9h
dCBzdGVwOworICAgICAgZmxvYXQga2VybmVsWzddID0gZmxvYXRbXSgwLjA0NiwgMC4xMTEsIDAu
MjAyLCAwLjI4MywgMC4yMDIsIDAuMTExLCAwLjA0Nik7CisKKyAgICAgIHZhcnlpbmcgdmVjNCB0
ZXhDb29yZDA7CisgICAgICB2b2lkIG1haW4oKQorICAgICAgeworICAgICAgICBpbnQgaT0wOwor
ICAgICAgICBpZiAodGV4dHVyZTJEKFRleHR1cmUsIHRleENvb3JkMC5zdCkuYSA+IDAuMCkgewor
ICAgICAgICAgIHZlYzQgc3VtID0gdmVjNCgwLjApOworICAgICAgICAgIGZvciAoaT0wOyBpPDc7
IGkrKykgeworICAgICAgICAgICAgdmVjNCB0bXAgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29v
cmQwLnN0ICsgdmVjMihpKnN0ZXAsMCkpOworICAgICAgICAgICAgc3VtICs9IHRtcCAqIGtlcm5l
bFtpXTsKKyAgICAgICAgICB9CisgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gc3VtOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRChUZXh0dXJlLCB0
ZXhDb29yZDAuc3QpOworICAgICAgICB9CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBpZD0idmJsdXItZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisgICAgICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVy
ZTsKKyAgICAgIHVuaWZvcm0gZmxvYXQgc3RlcDsKKyAgICAgIGZsb2F0IGtlcm5lbFs3XSA9IGZs
b2F0W10oMC4wNDYsIDAuMTExLCAwLjIwMiwgMC4yODMsIDAuMjAyLCAwLjExMSwgMC4wNDYpOwor
CisgICAgICB2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOworICAgICAgdm9pZCBtYWluKCkKKyAgICAg
IHsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgaWYgKHRleHR1cmUyRChUZXh0dXJlLCB0ZXhD
b29yZDAuc3QpLmEgPiAwLjApIHsKKyAgICAgICAgICB2ZWM0IHN1bSA9IHZlYzQoMC4wKTsKKyAg
ICAgICAgICBmb3IgKGk9MDsgaTw3OyBpKyspIHsKKyAgICAgICAgICAgIHZlYzQgdG1wID0gdGV4
dHVyZTJEKFRleHR1cmUsIHRleENvb3JkMC5zdCArIHZlYzIoMCxpKnN0ZXApKTsKKyAgICAgICAg
ICAgIHN1bSArPSB0bXAgKiBrZXJuZWxbaV07CisgICAgICAgICAgfQorICAgICAgICAgIGdsX0Zy
YWdDb2xvciA9IHN1bTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBnbF9GcmFnQ29sb3Ig
PSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKKyAgICAgICAgfQorICAgICAgfQor
ICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgaWQ9Imhkb2YtZnJhZyIgdHlwZT0ieC1zaGFkZXIv
eC1mcmFnbWVudCI+CisgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAgICAgdW5p
Zm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKKyAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIERlcHRoOwor
ICAgICAgdW5pZm9ybSBmbG9hdCBzdGVwOworICAgICAgdW5pZm9ybSBmbG9hdCBpdGVyOworICAg
ICAgZmxvYXQga2VybmVsWzddID0geyAwLjA0NiwgMC4xMTEsIDAuMjAyLCAwLjI4MywgMC4yMDIs
IDAuMTExLCAwLjA0NiB9OworCisgICAgICB2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOworICAgICAg
dm9pZCBtYWluKCkKKyAgICAgIHsKKyAgICAgICAgdmVjNCB0bXA7CisgICAgICAgIHZlYzQgc3Vt
ID0gdmVjNCgwLjApOworICAgICAgICBib29sIGIgPSAoaXRlciA8IC0yNi4wKzM2LjAqKDEuMC10
ZXh0dXJlMkQoRGVwdGgsIHRleENvb3JkMC5zdCkucikgJiYgdGV4dHVyZTJEKFRleHR1cmUsIHRl
eENvb3JkMC5zdCkuYSA+IDAuMCk7CisgICAgICAgIHRtcCA9IHRleHR1cmUyRChUZXh0dXJlLCB0
ZXhDb29yZDAuc3QgKyB2ZWMyKGZsb2F0KDAtMykqc3RlcCwwKSk7CisgICAgICAgIHN1bSArPSB0
bXAgKiBrZXJuZWxbMF07CisgICAgICAgIHRtcCA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29y
ZDAuc3QgKyB2ZWMyKGZsb2F0KDEtMykqc3RlcCwwKSk7CisgICAgICAgIHN1bSArPSB0bXAgKiBr
ZXJuZWxbMV07CisgICAgICAgIHRtcCA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3Qg
KyB2ZWMyKGZsb2F0KDItMykqc3RlcCwwKSk7CisgICAgICAgIHN1bSArPSB0bXAgKiBrZXJuZWxb
Ml07CisgICAgICAgIHRtcCA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QgKyB2ZWMy
KGZsb2F0KDMtMykqc3RlcCwwKSk7CisgICAgICAgIHN1bSArPSB0bXAgKiBrZXJuZWxbM107Cisg
ICAgICAgIHRtcCA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QgKyB2ZWMyKGZsb2F0
KDQtMykqc3RlcCwwKSk7CisgICAgICAgIHN1bSArPSB0bXAgKiBrZXJuZWxbNF07CisgICAgICAg
IHRtcCA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QgKyB2ZWMyKGZsb2F0KDUtMykq
c3RlcCwwKSk7CisgICAgICAgIHN1bSArPSB0bXAgKiBrZXJuZWxbNV07CisgICAgICAgIHRtcCA9
IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QgKyB2ZWMyKGZsb2F0KDYtMykqc3RlcCww
KSk7CisgICAgICAgIHN1bSArPSB0bXAgKiBrZXJuZWxbNl07CisgICAgICAgIGdsX0ZyYWdDb2xv
ciA9IG1peCh0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KSwgc3VtLCBiID8gMS4wIDog
MC4wKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IGlkPSJ2ZG9mLWZyYWci
IHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICAgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisKKyAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIFRleHR1cmU7CisgICAgICB1bmlmb3JtIHNh
bXBsZXIyRCBEZXB0aDsKKyAgICAgIHVuaWZvcm0gZmxvYXQgc3RlcDsKKyAgICAgIHVuaWZvcm0g
ZmxvYXQgaXRlcjsKKyAgICAgIGZsb2F0IGtlcm5lbFs3XSA9IGZsb2F0WzddKDAuMDQ2LCAwLjEx
MSwgMC4yMDIsIDAuMjgzLCAwLjIwMiwgMC4xMTEsIDAuMDQ2KTsKKworICAgICAgdmFyeWluZyB2
ZWM0IHRleENvb3JkMDsKKyAgICAgIHZvaWQgbWFpbigpCisgICAgICB7CisgICAgICAgIHZlYzQg
dG1wOworICAgICAgICB2ZWM0IHN1bSA9IHZlYzQoMC4wKTsKKyAgICAgICAgYm9vbCBiID0gKGl0
ZXIgPCAtMjYuMCszNi4wKigxLjAtdGV4dHVyZTJEKERlcHRoLCB0ZXhDb29yZDAuc3QpLnIpICYm
IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QpLmEgPiAwLjApOworICAgICAgICB0bXAg
PSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0ICsgdmVjMigwLGZsb2F0KDAtMykqc3Rl
cCkpOworICAgICAgICBzdW0gKz0gdG1wICoga2VybmVsWzBdOworICAgICAgICB0bXAgPSB0ZXh0
dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0ICsgdmVjMigwLGZsb2F0KDEtMykqc3RlcCkpOwor
ICAgICAgICBzdW0gKz0gdG1wICoga2VybmVsWzFdOworICAgICAgICB0bXAgPSB0ZXh0dXJlMkQo
VGV4dHVyZSwgdGV4Q29vcmQwLnN0ICsgdmVjMigwLGZsb2F0KDItMykqc3RlcCkpOworICAgICAg
ICBzdW0gKz0gdG1wICoga2VybmVsWzJdOworICAgICAgICB0bXAgPSB0ZXh0dXJlMkQoVGV4dHVy
ZSwgdGV4Q29vcmQwLnN0ICsgdmVjMigwLGZsb2F0KDMtMykqc3RlcCkpOworICAgICAgICBzdW0g
Kz0gdG1wICoga2VybmVsWzNdOworICAgICAgICB0bXAgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4
Q29vcmQwLnN0ICsgdmVjMigwLGZsb2F0KDQtMykqc3RlcCkpOworICAgICAgICBzdW0gKz0gdG1w
ICoga2VybmVsWzRdOworICAgICAgICB0bXAgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQw
LnN0ICsgdmVjMigwLGZsb2F0KDUtMykqc3RlcCkpOworICAgICAgICBzdW0gKz0gdG1wICoga2Vy
bmVsWzVdOworICAgICAgICB0bXAgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0ICsg
dmVjMigwLGZsb2F0KDYtMykqc3RlcCkpOworICAgICAgICBzdW0gKz0gdG1wICoga2VybmVsWzZd
OworICAgICAgICBnbF9GcmFnQ29sb3IgPSBtaXgodGV4dHVyZTJEKFRleHR1cmUsIHRleENvb3Jk
MC5zdCksIHN1bSwgYiA/IDEuMCA6IDAuMCk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8c3R5bGU+CisgICAgICAqIHsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDBweDsgfQorICAgICAg
aHRtbCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3MDc4ODg7CisgICAgICAgIGNvbG9y
OiAjMjIyMjIyOworICAgICAgfQorICAgICAgI2NhbnZhcyB7CisgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgY3Vyc29yOiBwb2ludGVyOworICAgICAgICB0b3A6IDExNXB4OyBs
ZWZ0OiA1NTBweDsKKyAgICAgIH0KKyAgICAgICNub3RlIHsKKyAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICB0b3A6IDRweDsKKyAgICAgICAgbGVmdDogNHB4OworICAgICAgfQor
ICAgICAgI2NvbnRlbnQgeworICAgICAgICBtYXJnaW4tbGVmdDogOTlweDsKKyAgICAgICAgcGFk
ZGluZy1sZWZ0OiA4cHg7CisgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKKyAgICAgICAgcGFk
ZGluZy1ib3R0b206IDE2cHg7CisgICAgICAgIHdpZHRoOiA2MDBweDsKKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwxLjApOworICAgICAgICB0ZXh0LWFsaWduOiBj
ZW50ZXI7CisgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjUpOwor
ICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZ2JhKDAsMCwwLDAuNzUpOworICAgICAg
fQorICAgICAgaDEgeworICAgICAgICBwYWRkaW5nLXRvcDogMjRweDsKKyAgICAgICAgcGFkZGlu
Zy1ib3R0b206IDE2cHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CisgICAgICAgIGJv
cmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgZm9udC1mYW1pbHk6IFRpbWVz
IE5ldyBSb21hbiwgU2VyaWY7CisgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICBm
b250LXNpemU6IDQwcHg7CisgICAgICB9CisgICAgICAjY29udGVudCBwIHsKKyAgICAgICAgdGV4
dC1pbmRlbnQ6IDI0cHg7CisgICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4OworICAgICAgICBtYXJn
aW4tcmlnaHQ6IDMycHg7CisgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7CisgICAgICAgIGZv
bnQtZmFtaWx5OiBTZXJpZjsKKyAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7CisgICAgICB9
CisgICAgICAjYWJvdmUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRv
cDogMzAwcHg7CisgICAgICAgIGxlZnQ6IDcxNnB4OworICAgICAgICBwYWRkaW5nOiAxMHB4IDIw
cHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwyMjUsMCwwLjUpOworICAgICAg
ICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHJnYmEoMCw2NCwwLDAuNzUpOworICAgICAgICBjb2xv
cjogd2hpdGU7CisgICAgICAgIGZvbnQtc2l6ZTogc21hbGw7CisgICAgICAgIGZvbnQtZmFtaWx5
OiBzYW5zLXNlcmlmOworICAgICAgfQorICAgICAgI2Fib3ZlIHAgeworICAgICAgICB0ZXh0LWFs
aWduOiBjZW50ZXI7CisgICAgICB9CisgICAgPC9zdHlsZT4KKworPC9oZWFkPjxib2R5PgorICAg
IDxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiIHRpdGxlPSJDbGlj
ayB0byB0b2dnbGUgRE9GIHNoYWRlciIgb25jbGljaz0idXNlRG9GID0gIXVzZURvRiI+PC9jYW52
YXM+CisgICAgPHByZSBpZD0ibm90ZSI+PC9wcmU+CisKKyAgICA8ZGl2IGlkPSJjb250ZW50Ij4K
KyAgICA8aDE+T3BlbkdMIGZvciB0aGUgd2ViPC9oMT4KKyAgICA8cD4KK1RoZSBXZWJHTCBzcGVj
aWZpY2F0aW9uIGdpdmVzIHdlYiBkZXZlbG9wZXJzIGFjY2VzcyB0byBhbgorT3BlbkdMIEVTIDIu
MCBkcmF3aW5nIGNvbnRleHQgZm9yIHRoZSBjYW52YXMgdGFnLiBXaGF0IHRoYXQgbWVhbnMgaXMK
K3RoYXQgeW91IGNhbiBmaW5hbGx5IGhhcm5lc3MgdGhlIHBvd2VyIG9mIHRoZSBHUFUgZm9yIGF3
ZXNvbWUgdmlzdWFscworYW5kIGhlYXZ5LWR1dHkgbnVtYmVyIGNydW5jaGluZyBpbiB5b3VyIHdl
YiBhcHBzLiA8L3A+PHA+IE9wZW5HTCBFUyAyLjAgaXMgYSBzdWJzZXQgb2YgT3BlbkdMIDIuMCBh
aW1lZCBhdCBlbWJlZGRlZAorZGV2aWNlcyBhbmQgZ2FtZSBjb25zb2xlcy4gQXMgc3VjaCwgaXQn
cyBhIHZlcnkgbWluaW1hbGlzdGljIGxvdy1sZXZlbAorQVBJLCBldmVuIG1vcmUgc28gdGhhbiBk
ZXNrdG9wIE9wZW5HTC4gSW4gZmFjdCwgaWYgeW91IHRvb2sgZGVza3RvcAorT3BlbkdMIGFuZCBz
dHJpcHBlZCBvdXQgZXZlcnl0aGluZyBidXQgc2hhZGVycywgdmVydGV4IGFycmF5cyBhbmQKK3Rl
eHR1cmVzLCB5b3UnZCBnZXQgc29tZXRoaW5nIHF1aXRlIGxpa2UgT3BlbkdMIEVTIDIuMC4gPC9w
PgorICAgIDxwPgorICAgICAgQXMgdGhlcmUgaXMgbm8gZml4ZWQtZnVuY3Rpb24gcGlwZWxpbmUs
IHlvdSBuZWVkIHRvIHdyaXRlIEdMU0wgc2hhZGVycyB0byBkcmF3IDxpPmFueXRoaW5nPC9pPi4K
K0FuZCB5b3UgbmVlZCB0byBkbyB5b3VyIG93biB0cmFuc2Zvcm1hdGlvbiBtYXRoLCBpbmNsdWRp
bmcga2VlcGluZwordHJhY2sgb2YgdGhlIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBzdGFjay4gU28g
dGhlIHJhdyBBUEkgaXMgcmVhbGx5IG5vdAorZm9yIHRoZSBmYWludCBvZiBoZWFydDsgeW91IGRv
IG5lZWQgdG8ga25vdyB5b3VyIDNEIG1hdGggYW5kIHNoYWRpbmcKK2VxdWF0aW9ucy4gPC9wPgor
ICAgIDxwPiBGb3IgZXhhbXBsZSwgdG8gZHJhdyB0aGUgc3Bpbm5pbmcgY3ViZXMgb24gdGhlCity
aWdodCAtIGFyb3VuZCAyMDAgbGluZXMgb2YgYXBwbGljYXRpb24gY29kZSwgMjUwIGxpbmVzIG9m
IHNoYWRlcnMgYW5kCis4MDAgbGluZXMgb2YgbGlicmFyeSBjb2RlIC0gSSBoYWQgdG8gc2Nyb3Vu
Z2UgdGhlIGludGVybmV0IGZvciA8YSBocmVmPSJodHRwOi8vd3d3LmxpZ2h0aG91c2UzZC5jb20v
b3BlbmdsL2dsc2wvaW5kZXgucGhwP3BvaW50bGlnaHQiPkdMU0wgc2hhZGVyczwvYT4KK3RvIGRv
IHRoZSB0cmFuc2Zvcm1hdGlvbiBhbmQgbGlnaHRpbmcsIHdyaXRlIGEgc21hbGwgbWF0cml4IG1h
dGgKK2xpYnJhcnkgaW4gSmF2YVNjcmlwdCBhbmQgYSBET0YgYmx1ciBzaGFkZXIuIFdoaWxlIGhp
Z2hseSBlZHVjYXRpb25hbCwKK2l0IHdhcyBhbHNvIGEgcmF0aGVyIHN0ZWVwIGhpbGwgdG8gY2xp
bWIuIDwvcD4KKyAgICA8cD4gU28sIHRoZSBpbnRlbmRlZCBhdWRpZW5jZSBvZiB0aGUgcmF3IGNv
bnRleHQKK2ludGVyZmFjZSBhcmUgbm90IHJlYWxseSBlbmQtdXNlcnMsIGJ1dCBsaWJyYXJ5IGRl
dmVsb3BlcnMgd2hvIGNhbgord3JpdGUgZWFzeS10by11c2UgaW50ZXJmYWNlcyB0byB0aGUgZnVu
Y3Rpb25hbGl0eSwgYW5kIDNEIGRldmVsb3BlcnMKK3dobyByZXF1aXJlIGEgaGlnaCBsZXZlbCBv
ZiBjb250cm9sIG92ZXIgdGhlIHJlbmRlcmluZyBwaXBlbGluZS4gPC9wPgorICAgIDxwPiBUaGUg
cmVhbGx5IGNvb2wgdGhpbmcgYWJvdXQgdGhlIE9wZW5HTCBDYW52YXMgaXMKK3RoYXQgaXQgZG9l
c24ndCBtYWtlIHBvbGljeSBkZWNpc2lvbnMuIFRoZXJlJ3Mgbm8gc2luZ2xlIHNldC1pbi1zdG9u
ZQordXNlIGNhc2UgZm9yIGl0OiBJbiBhZGRpdGlvbiB0byAzRCBncmFwaGljcywgeW91IGNhbiBh
bHNvIHVzZSBpdCBmb3IKK2ZpbHRlcmluZyBpbWFnZXMsIHZpc3VhbGl6aW5nIGZsdWlkIGR5bmFt
aWNzLCBkb2luZyByZWFsLXRpbWUgdmlkZW8KK2VmZmVjdHMsIG9yIGp1c3QgY3J1bmNoaW5nIGEg
d2hvbGUgbG90IG9mIEZQIG1hdGguIElmIHlvdSBjYW4gZG8gaXQgb24KK3RoZSBHUFUsIHlvdSdy
ZSBpbiBsdWNrISA8L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iYWJvdmUiPgorICAgICAg
PHA+WW91IGNhbiBhbHNvIHBsYWNlIGNvbnRlbnQgYWJvdmUgdGhlIGNhbnZhczwvcD4KKyAgICA8
L2Rpdj4KKyAgPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZGVtb3MvdmlkZW8uaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZGVtb3MvdmlkZW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWE4ZGExNmY5MDgzY2I2Mjkw
ODg0OGRkNjU4N2RkNTg3YTEyZTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9kZW1vcy92aWRl
by5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8K
KworLS0+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91
dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Cit2YXIgcHJvY2Vzc29y
ID0geworICBsYXN0VGltZSA6IG5ldyBEYXRlLAorICB0aW1lckNhbGxiYWNrOiBmdW5jdGlvbigp
IHsKKyAgICBpZiAodGhpcy52aWRlby5wYXVzZWQgfHwgdGhpcy52aWRlby5lbmRlZCkgeworICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICB0aGlzLmNvbXB1dGVGcmFtZSgpOworICAgIHZhciB0ID0g
bmV3IERhdGU7CisgICAgdmFyIGVsYXBzZWQgPSB0IC0gdGhpcy5sYXN0VGltZTsKKyAgICB0aGlz
Lmxhc3RUaW1lID0gdDsKKyAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHNlbGYudGltZXJDYWxsYmFjaygpOworICAgICAgfSwgTWF0aC5t
YXgoMCwgMzMtZWxhcHNlZCkpOworICB9LAorCisgIGluaXQ6IGZ1bmN0aW9uKCkgeworICAgIGlm
ICh0aGlzLmluaXREb25lKSByZXR1cm47CisgICAgdGhpcy5jMiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjMiIpOworICAgIHRoaXMuY3R4MiA9IGdldEdMQ29udGV4dCh0aGlzLmMyKTsKKyAg
ICB0aGlzLmdyZWVuU2NyZWVuID0gbmV3IEZpbHRlcih0aGlzLmN0eDIsICdpZGVudGl0eS1mbGlw
LXZlcnQnLCAnZ3JlZW5TY3JlZW4nKTsKKyAgICB0aGlzLmN0eDIuYWN0aXZlVGV4dHVyZSh0aGlz
LmN0eDIuVEVYVFVSRTApOworICAgIHRoaXMudGV4ID0gbG9hZFRleHR1cmUodGhpcy5jdHgyLCB0
aGlzLmMxLCBmYWxzZSk7CisgICAgdGhpcy5jdHgyLmFjdGl2ZVRleHR1cmUodGhpcy5jdHgyLlRF
WFRVUkUxKTsKKyAgICB0aGlzLnRleDIgPSBsb2FkVGV4dHVyZSh0aGlzLmN0eDIsIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpJyksIGZhbHNlKTsKKyAgICB0aGlzLmN0eDIuYWN0aXZlVGV4dHVy
ZSh0aGlzLmN0eDIuVEVYVFVSRTApOworICAgIHRoaXMuaW5pdERvbmUgPSB0cnVlOworICB9LAor
CisgIGRvTG9hZDogZnVuY3Rpb24oKSB7CisgICAgdGhpcy52aWRlbyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ2aWRlbyIpOworICAgIHRoaXMuYzEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYzEiKTsKKyAgICB0aGlzLmN0eDEgPSB0aGlzLmMxLmdldENvbnRleHQoIjJkIik7CisgICAg
dGhpcy5jdHgxLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdjb3B5JzsKKyAgICB0aGlzLmN0
eDEuZmlsbFJlY3QoMCwwLHRoaXMuYzEud2lkdGgsIHRoaXMuYzEuaGVpZ2h0KTsKKyAgICB2YXIg
c2VsZiA9IHRoaXM7CisgICAgdGhpcy52aWRlby5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIHNlbGYuaW5pdCgpOworICAgICAgICBzZWxmLndpZHRoID0gc2Vs
Zi52aWRlby52aWRlb1dpZHRoOworICAgICAgICBzZWxmLmhlaWdodCA9IHNlbGYudmlkZW8udmlk
ZW9IZWlnaHQ7CisgICAgICAgIHNlbGYubGFzdFRpbWUgPSBuZXcgRGF0ZTsKKyAgICAgICAgc2Vs
Zi50aW1lckNhbGxiYWNrKCk7CisgICAgICB9LCBmYWxzZSk7CisgIH0sCisKKyAgY29tcHV0ZUZy
YW1lOiBmdW5jdGlvbigpIHsKKy8vICAgICB0aGlzLmN0eDEuZHJhd0ltYWdlKHRoaXMudmlkZW8s
IDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0KTsKKyAgICB0aGlzLmN0eDIudGV4SW1hZ2Uy
RCh0aGlzLmN0eDIuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgdGhpcy52aWRlbyk7CisgICAgdGhpcy5ncmVlblNjcmVlbi5hcHBseShmdW5jdGlvbihz
KSB7CisgICAgICAgIHMudW5pZm9ybTFpKCdUZXh0dXJlJywgMCk7CisgICAgICAgIHMudW5pZm9y
bTFpKCdUZXh0dXJlMicsIDEpOworICAgIH0pOworCisgICAgcmV0dXJuOworICB9Cit9OworCis8
L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImlkZW50aXR5LWZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgorICAgIGF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKKyAgICBhdHRyaWJ1dGUgdmVj
MiBUZXg7CisKKyAgICB2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOworICAgIHZvaWQgbWFpbigpCisg
ICAgeworICAgICAgICB0ZXhDb29yZDAgPSB2ZWM0KFRleC5zLDEuMC1UZXgudCwwLjAsMC4wKTsK
KyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzxzY3JpcHQgaWQ9ImdyZWVuU2NyZWVuIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
KyAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAgIHVuaWZvcm0gc2FtcGxlcjJEIFRl
eHR1cmU7CisgICAgdW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTI7CisKKyAgICB2YXJ5aW5nIHZl
YzQgdGV4Q29vcmQwOworICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAgICB2ZWM0IGMgPSB0
ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKKyAgICAgICAgZmxvYXQgciA9IGMuciAq
IDAuNTsKKyAgICAgICAgZmxvYXQgYSA9IGMuZyAqIDYuMjg7CisgICAgICAgIGZsb2F0IHggPSBj
b3MoYSkgKiByOworICAgICAgICBmbG9hdCB5ID0gc2luKGEpICogcjsKKyAgICAgICAgdmVjNCBj
MiA9IHRleHR1cmUyRChUZXh0dXJlMiwgdmVjMigwLjcreCwgMC41K3kpKTsKKyAgICAgICAgLy8g
U2hhZGVycyB3aXRoIGJyYW5jaGVzIGFyZSBub3QgYWxsb3dlZCB3aGVuIGRlYWxpbmcgd2l0aCBu
b24tU09QIGNvbnRlbnQKKyAgICAgICAgLy8gc28gaW5zdGVhZCBvZiAiaWYgKGIpIGMyLmEgPSAw
OyIsIHdlIHVzZSBtaXgoKQorICAgICAgICBib29sIGIgPSAoYy5nID4gMTIwLjAvMjU1LjAgJiYg
Yy5yID4gMTIwLjAvMjU1LjAgJiYgYy5iIDwgNTAuMC8yNTUuMCk7CisgICAgICAgIGMyLmEgPSBt
aXgoYzIuYSwgMC4wLCBmbG9hdChiKSk7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IGMyOworICAg
IH0KKzwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgIGJvZHkgeworICAgICAgICBiYWNrZ3Jv
dW5kOiBibGFjazsKKyAgICAgICAgY29sb3I6I0NDQ0NDQzsKKyAgICAgIH0KKyAgICAgIGEgewor
ICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICAgIH0KKyAgICAgICNjMiB7CisgICAgICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3Lm1vemJveC5vcmcvcHViL2dyZWVuL2Zvby5w
bmcpOworICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OworICAgICAgfQorICAgICAg
ZGl2IHsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIGJvcmRlciA6MXB4IHNvbGlkICM0
NDQ0NDQ7CisgICAgICAgIHBhZGRpbmc6MTBweDsKKyAgICAgICAgbWFyZ2luOiAxMHB4OworICAg
ICAgICBiYWNrZ3JvdW5kOiMzQjNCM0I7CisgICAgICB9CisgICAgICBpbWcgeyBkaXNwbGF5OiBu
b25lOyB9CisgICAgPC9zdHlsZT4KKyA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0icHJvY2Vzc29y
LmRvTG9hZCgpIj4KKyAgICA8ZGl2PgorICAgICAgICBUaGlzIGlzIGEgcG9ydCBvZiBQYXVsIFJv
dWdldCdzIDxhIGhyZWY9Imh0dHA6Ly9ibG9nLm1vemJveC5vcmcvcG9zdC8yMDA5LzAyLzI1L3Zp
ZGVvLWNhbnZhcyUzQS1zcGVjaWFsLWVmZmVjdHMiPkNhbnZhcytWaWRlbyBncmVlbiBzY3JlZW4g
ZGVtbzwvYT4sIHBsdXMgYSB0ZXh0dXJlIGxvb2t1cCBmcm9tIHRoZSBGaXJlZm94IGxvZ28gYmFz
ZWQgb24gdGhlIHZhbHVlcyBvZiB0aGUgZ3JlZW4gYW5kIHJlZCBjb2xvciBjaGFubmVscy4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgY29udHJvbHM9InRy
dWUiPgorICAgICAgICA8c291cmNlIHNyYz0iaHR0cDovL3d3dy5tb3pib3gub3JnL3B1Yi9ncmVl
bi92aWRlby5vZ3YiPjwvc291cmNlPgorICAgICAgICA8c291cmNlIHNyYz0iaHR0cDovL2NzLmhl
bHNpbmtpLmZpL3UvaWxtYXJpaGUvYzNkL2RlbW9zL3ZpZGVvLm1wNCI+PC9zb3VyY2U+CisgICAg
ICA8L3ZpZGVvPgorICAgICAgPGNhbnZhcyBpZD0iYzEiIHdpZHRoPSIzMjAiIGhlaWdodD0iMTky
Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgPGNhbnZhcyBpZD0iYzIi
IHdpZHRoPSI2NDAiIGhlaWdodD0iMzg0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKyAgICA8aW1n
IGlkPSJpIiBzcmM9Imh0dHA6Ly93d3cubW96Ym94Lm9yZy9wdWIvZ3JlZW4vZm9vLnBuZyI+Cisg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2JpbmRCdWZmZXIu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL2JpbmRCdWZmZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWVjNzE1
ODRjNWRmNzYyYjU3OGEzMTMxOTcxM2JjZDFmMDQyMDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvYmluZEJ1ZmZlci5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoK
KyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVy
bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g
b2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBk
b2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUg
TWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1p
dGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAor
KiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRl
cmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFy
ZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu
dGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJF
IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBS
RVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdF
UyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAor
KiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ
T04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElO
IFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlv
bi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0
ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2dsJyk7CisgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOwor
ICByZXR1cm4gW2dsXTsKK30KKworVGVzdHMudGVzdEJpbmRCdWZmZXJBUlJBWV9CVUZGRVIgPSBm
dW5jdGlvbihnbCkgeworICB2YXIgYiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBhc3NlcnQoZ2wu
Tk9fRVJST1IgPT0gY2hlY2tFcnJvcihnbCwgImdlbkJ1ZmZlcnMiKSk7CisgIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCBiKTsKKyAgYXNzZXJ0KGdsLk5PX0VSUk9SID09IGNoZWNrRXJy
b3IoZ2wsICJiaW5kQnVmZmVyIikpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
bnVsbCk7CisgIGFzc2VydChnbC5OT19FUlJPUiA9PSBjaGVja0Vycm9yKGdsLCAiYmluZEJ1ZmZl
ciAwIikpOworICBnbC5kZWxldGVCdWZmZXIoYik7CisgIGFzc2VydChnbC5OT19FUlJPUiA9PSBj
aGVja0Vycm9yKGdsLCAiZGVsZXRlQnVmZmVycyIpKTsKK30KKworVGVzdHMudGVzdEJpbmRCdWZm
ZXJFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IGZ1bmN0aW9uKGdsKSB7CisgIHZhciBiID0gZ2wuY3Jl
YXRlQnVmZmVyKCk7CisgIGFzc2VydChnbC5OT19FUlJPUiA9PSBjaGVja0Vycm9yKGdsLCAiZ2Vu
QnVmZmVycyIpKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgYik7
CisgIGFzc2VydChnbC5OT19FUlJPUiA9PSBjaGVja0Vycm9yKGdsLCAiYmluZEJ1ZmZlciIpKTsK
KyAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbnVsbCk7CisgIGFzc2Vy
dChnbC5OT19FUlJPUiA9PSBjaGVja0Vycm9yKGdsLCAiYmluZEJ1ZmZlciAwIikpOworICBnbC5k
ZWxldGVCdWZmZXIoYik7CisgIGFzc2VydChnbC5OT19FUlJPUiA9PSBjaGVja0Vycm9yKGdsLCAi
ZGVsZXRlQnVmZmVycyIpKTsKK30KKworPC9zY3JpcHQ+CisKKzxzdHlsZT5jYW52YXN7IHBvc2l0
aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKyAgPGNhbnZhcyBpZD0iZ2wi
IHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwvY2FudmFzPgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL2JpbmRCdWZmZXJCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9iaW5kQnVmZmVyQmFkQXJncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMjg2ZTk0ZWM3YjMxODYwOTgx
OGZkMmI4OGI2YWYxN2I4OWU4ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9i
aW5kQnVmZmVyQmFkQXJncy5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENv
cHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJp
YWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9u
IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMs
IGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
KyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9S
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK
KyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBN
QVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWph
dmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0ID0gZnVu
Y3Rpb24gKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7
CisgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICByZXR1
cm4gW2dsXTsKK30KKworVGVzdHMudGVzdEJpbmRCdWZmZXJBUlJBWV9CVUZGRVIgPSBmdW5jdGlv
bihnbCkgeworICB2YXIgYiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBhc3NlcnRPaygiYmluZCBi
dWZmZXIiLCBmdW5jdGlvbigpe2dsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBiKX0pOwor
ICBhc3NlcnRGYWlsKCJidWZmZXJEYXRhIHRvIG51bGwgYnVmZmVyIiwgZnVuY3Rpb24oKSB7Cisg
ICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOworICAgIGdsLmJ1ZmZlckRh
dGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsxMF0pLCBnbC5TVEFUSUNfRFJB
Vyk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDAsIG5ldyBGbG9hdDMy
QXJyYXkoWzEwXSkpOworICB9KTsKKyAgYXNzZXJ0RmFpbCgiYmluZCB0byBudW1iZXIiLCBmdW5j
dGlvbigpeworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCAxMDAwMDAwMDAwKTsK
KyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbMTBd
KSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCAwLCBuZXcgRmxvYXQzMkFycmF5KFsxMF0pKTsKKyAgfSk7CisgIGFzc2VydE9rKCJiaW5kIHRv
IG51bGwiLCBmdW5jdGlvbigpe2dsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBudWxsKX0p
OworICBnbC5kZWxldGVCdWZmZXIoYik7Cit9CisKK1Rlc3RzLnRlc3RCaW5kQnVmZmVyRUxFTUVO
VF9BUlJBWV9CVUZGRVIgPSBmdW5jdGlvbihnbCkgeworICB2YXIgYiA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICBhc3NlcnRPaygiYmluZCBidWZmZXIiLCBmdW5jdGlvbigpe2dsLmJpbmRCdWZmZXIo
Z2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGIpfSk7CisgIGFzc2VydEZhaWwoImJ1ZmZlckRhdGEg
dG8gbnVsbCBidWZmZXIiLCBmdW5jdGlvbigpIHsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBudWxsKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJS
QVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsxMF0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAg
Z2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDAsIG5ldyBGbG9hdDMyQXJyYXkoWzEw
XSkpOworICB9KTsKKyAgYXNzZXJ0RmFpbCgiYmluZCB0byBudW1iZXIiLCBmdW5jdGlvbigpewor
ICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDEwMDAwMDAwMDApOwor
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJy
YXkoWzEwXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgMCwgbmV3IEZsb2F0MzJBcnJheShbMTBdKSk7CisgIH0pOworICBhc3NlcnRPaygi
YmluZCB0byBudWxsIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgbnVsbCl9KTsKKyAgZ2wuZGVsZXRlQnVmZmVyKGIpOworfQorVGVzdHMu
dGVzdEJpbmRCdWZmZXIgPSBmdW5jdGlvbihnbCkgeworICAgIGFzc2VydEZhaWwoImJpbmQgQVJS
QVlfQlVGRkVSIHRvIG51bWJlciIsCisgICAgICAgIGZ1bmN0aW9uKCl7Z2wuYmluZEJ1ZmZlcihn
bC5BUlJBWV9CVUZGRVIsIDEpO30pOworICAgIGFzc2VydEZhaWwoImJpbmQgRUxFTUVOVF9BUlJB
WV9CVUZGRVIgdG8gbnVtYmVyIiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC5iaW5kQnVmZmVyKGds
LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCAxKTt9KTsKKyAgICBhc3NlcnRGYWlsKCJiaW5kIGJhZCB0
YXJnZXQiLAorICAgICAgICBmdW5jdGlvbigpe2dsLmJpbmRCdWZmZXIoZ2wuRkxPQVQsIDApO30p
OworICAgIGFzc2VydEZhaWwoImJpbmQgQVJSQVlfQlVGRkVSIHRvIHN0cmluZyIsCisgICAgICAg
IGZ1bmN0aW9uKCl7Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsICJmb28iKTt9KTsKKyAg
ICBhc3NlcnRGYWlsKCJiaW5kIEVMRU1FTlRfQVJSQVlfQlVGRkVSIHRvIHN0cmluZyIsCisgICAg
ICAgIGZ1bmN0aW9uKCl7Z2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgImZv
byIpO30pOworfQorCis8L3NjcmlwdD4KKworPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1
dGU7IH08L3N0eWxlPgorPC9oZWFkPjxib2R5PgorICA8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjEi
IGhlaWdodD0iMSI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9iaW5kRnJhbWVidWZmZXJMZWF2ZU5vblplcm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjcyMmExOWI5
Y2NmMjBkY2Y3YWFiODgyNDk4YzQwNjg2MjExZDZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvYmluZEZyYW1lYnVmZmVyTGVhdmVOb25aZXJvLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9v
ciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0
byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisq
KiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhF
IE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoq
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorPHRpdGxlPk9wZW5HTCBm
b3IgdGhlIHdlYjwvdGl0bGU+CisKKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2Ny
aXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKworICAgIDxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KK1Rlc3RzLm1lc3NhZ2UgPSAi
VGhpcyB3YXMgc2VnZmF1bHRpbmcgd2hlbiB0aGUgR0wgY29udGV4dCBnb3QgR0MnZCAoaW4gZ2xY
RGVzdHJveUNvbnRleHQpIjsKK1Rlc3RzLnRlc3RTZWcgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYW52YXMnKTsKKyAgICB2YXIgZ2wg
PSBnZXRHTENvbnRleHQoY2FudmFzKTsKKworICAgIHZhciBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpOworICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKK30K
Kzwvc2NyaXB0PgorCis8L2hlYWQ+PGJvZHk+CisgICAgPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0
aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyRGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVy
RGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzY2E2ZGIzNGZhMjI2ZDIzNDRhZDc2MDkwMWRjMTE4ODRl
ZmQxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJEYXRhLmh0bWwK
QEAgLTAsMCArMSw4NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiog
Ik1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
CisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlh
bHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3Mi
IC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBz
cmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWph
dmFzY3JpcHQiPgorCitUZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7CisgIHZhciBjYW52
YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0gd3JhcEdMQ29u
dGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7CisgIHZhciBidWYgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgdmFyIGVidWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5B
UlJBWV9CVUZGRVIsIGJ1Zik7CisgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZG
RVIsIGVidWYpOworICByZXR1cm4gW2dsLCBidWYsIGVidWZdOworfQorCitUZXN0cy50ZXN0QnVm
ZmVyRGF0YSA9IGZ1bmN0aW9uKGdsLCBidWYsIGVidWYpIHsKKyAgICB2YXIgZGF0YSA9IFswLDAs
MCwwLCAxLDAsMCwwLCAwLDEsMCwwXTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZF
UiwgMTIsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZF
UiwgbmV3IEZsb2F0MzJBcnJheShbXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5idWZmZXJE
YXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShkYXRhKSwgZ2wuU1RBVElDX0RS
QVcpOworICAgIGFzc2VydEVxdWFscyhnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVG
RkVSLCBnbC5CVUZGRVJfU0laRSksIDEyKjQpOworICAgIGFzc2VydEVxdWFscyhnbC5nZXRCdWZm
ZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfVVNBR0UpLCBnbC5TVEFUSUNf
RFJBVyk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJy
YXkoZGF0YSksIGdsLlNUUkVBTV9EUkFXKTsKKyAgICBhc3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVy
UGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1NJWkUpLCAxMio0KTsKKyAgICBh
c3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVG
RkVSX1VTQUdFKSwgZ2wuU1RSRUFNX0RSQVcpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KGRhdGEpLCBnbC5EWU5BTUlDX0RSQVcpOworICAgIGFz
c2VydEVxdWFscyhnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZG
RVJfU0laRSksIDEyKjQpOworICAgIGFzc2VydEVxdWFscyhnbC5nZXRCdWZmZXJQYXJhbWV0ZXIo
Z2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfVVNBR0UpLCBnbC5EWU5BTUlDX0RSQVcpOworCisg
ICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBVaW50MTZBcnJheShkYXRhKSwg
Z2wuU1RBVElDX0RSQVcpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcg
VWludDE2QXJyYXkoZGF0YSksIGdsLlNUUkVBTV9EUkFXKTsKKyAgICBnbC5idWZmZXJEYXRhKGds
LkFSUkFZX0JVRkZFUiwgbmV3IFVpbnQxNkFycmF5KGRhdGEpLCBnbC5EWU5BTUlDX0RSQVcpOwor
ICAgIGFzc2VydEVxdWFscyhnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBn
bC5CVUZGRVJfU0laRSksIDEyKjIpOworICAgIHRocm93RXJyb3IoZ2wsICJhcnJheSBidWZmZXJT
dWJEYXRhIik7Cit9CitUZXN0cy50ZXN0QnVmZmVyRGF0YUVsZW1lbnQgPSBmdW5jdGlvbihnbCwg
YnVmLCBlYnVmKSB7CisgICAgdmFyIGRhdGEgPSBbMCwwLDAsMCwgMSwwLDAsMCwgMCwxLDAsMF07
CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbmV3IFVpbnQxNkFy
cmF5KGRhdGEpLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgYXNzZXJ0RXF1YWxzKGdsLmdldEJ1ZmZl
clBhcmFtZXRlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1VTQUdFKSwgZ2wu
U1RBVElDX0RSQVcpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IG5ldyBVaW50MTZBcnJheShkYXRhKSwgZ2wuU1RSRUFNX0RSQVcpOworICAgIGFzc2VydEVxdWFs
cyhnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGdsLkJVRkZF
Ul9VU0FHRSksIGdsLlNUUkVBTV9EUkFXKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRf
QVJSQVlfQlVGRkVSLCBuZXcgVWludDE2QXJyYXkoZGF0YSksIGdsLkRZTkFNSUNfRFJBVyk7Cisg
ICAgYXNzZXJ0RXF1YWxzKGdsLmdldEJ1ZmZlclBhcmFtZXRlcihnbC5FTEVNRU5UX0FSUkFZX0JV
RkZFUiwgZ2wuQlVGRkVSX1VTQUdFKSwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgICBhc3NlcnRFcXVh
bHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBnbC5CVUZG
RVJfU0laRSksIDEyKjIpOworICAgIHRocm93RXJyb3IoZ2wsICJlbGVtZW50IGFycmF5IGJ1ZmZl
clN1YkRhdGEiKTsKK30KKworVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsLCBidWYsIGVidWYp
IHsKKyAgICBnbC5kZWxldGVCdWZmZXIoYnVmKTsKKyAgICBnbC5kZWxldGVCdWZmZXIoZWJ1Zik7
Cit9CisKKzwvc2NyaXB0PgorPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7IH08L3N0
eWxlPgorPC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIx
NiI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
YnVmZmVyU3ViRGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvYnVmZmVyU3ViRGF0YS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZlMzFkYTBhNTQ1YzYxM2E0OTk1ZGFkZmYwNTQ0NzU3ZmY3MzUyM2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9idWZmZXJTdWJEYXRhLmh0bWwKQEAgLTAsMCAr
MSwxMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioK
KyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNj
cmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91
dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0
Ij4KKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgICB2YXIgZ2wgPSBnZXRHTENvbnRleHQo
Y2FudmFzKTsKKyAgICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgdmFyIGVidWYg
PSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
YnVmKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBlYnVmKTsK
KyAgICByZXR1cm4gW2dsLCBidWYsIGVidWZdOworfQorCitUZXN0cy50ZXN0QnVmZmVyU3ViRGF0
YSA9IGZ1bmN0aW9uKGdsLCBidWYsIGVidWYpIHsKKyAgICB2YXIgZGF0YSA9IFswLDAsMCwwLCAx
LDAsMCwwLCAwLDEsMCwwXTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3
IEZsb2F0MzJBcnJheShkYXRhKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmJ1ZmZlclN1YkRh
dGEoZ2wuQVJSQVlfQlVGRkVSLCAwLCBuZXcgRmxvYXQzMkFycmF5KFsxLDIsMyw0XSkpOworICAg
IGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxNiwgbmV3IEZsb2F0MzJBcnJheShb
MSwxLDEsMV0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMzIsIG5l
dyBGbG9hdDMyQXJyYXkoWzEsMSwxLDFdKSk7CisgICAgYXNzZXJ0RXF1YWxzKGdsLmdldEJ1ZmZl
clBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVIsIGdsLkJVRkZFUl9TSVpFKSwgMTIqNCk7CisgICAg
YXNzZXJ0RXF1YWxzKGdsLmdldEJ1ZmZlclBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVIsIGdsLkJV
RkZFUl9VU0FHRSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShkYXRhKSwgZ2wuU1RSRUFNX0RSQVcpOworICAgIGds
LmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxNiwgbmV3IEZsb2F0MzJBcnJheShbMSwx
LDEsMV0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMCwgbmV3IEZs
b2F0MzJBcnJheShbMSwyLDMsNF0pKTsKKyAgICBhc3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFy
YW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1NJWkUpLCAxMio0KTsKKyAgICBhc3Nl
cnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVS
X1VTQUdFKSwgZ2wuU1RSRUFNX0RSQVcpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVG
RkVSLCBuZXcgRmxvYXQzMkFycmF5KGRhdGEpLCBnbC5EWU5BTUlDX0RSQVcpOworICAgIGdsLmJ1
ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxNiwgbmV3IEZsb2F0MzJBcnJheShbMSwxLDEs
MV0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMCwgbmV3IEZsb2F0
MzJBcnJheShbMSwyLDMsNF0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZF
UiwgMTYsIG5ldyBVaW50MzJBcnJheShbMSwxLDEsMV0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRh
KGdsLkFSUkFZX0JVRkZFUiwgMTYsIG5ldyBJbnQzMkFycmF5KFsxLDEsMSwxXSkpOworICAgIGds
LmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxNiwgbmV3IEludDE2QXJyYXkoWzEsMSwx
LDFdKSk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDE2LCBuZXcgVWlu
dDE2QXJyYXkoWzEsMSwxLDFdKSk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZG
RVIsIDE2LCBuZXcgSW50OEFycmF5KFsxLDEsMSwxXSkpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEo
Z2wuQVJSQVlfQlVGRkVSLCAxNiwgbmV3IFVpbnQ4QXJyYXkoWzEsMSwxLDFdKSk7CisgICAgYXNz
ZXJ0RXF1YWxzKGdsLmdldEJ1ZmZlclBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVIsIGdsLkJVRkZF
Ul9TSVpFKSwgMTIqNCk7CisgICAgYXNzZXJ0RXF1YWxzKGdsLmdldEJ1ZmZlclBhcmFtZXRlcihn
bC5BUlJBWV9CVUZGRVIsIGdsLkJVRkZFUl9VU0FHRSksIGdsLkRZTkFNSUNfRFJBVyk7CisKKyAg
ICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMTIsIGdsLlNUQVRJQ19EUkFXKTsKKyAg
ICBhc3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wu
QlVGRkVSX1NJWkUpLCAxMik7CisgICAgYXNzZXJ0RXF1YWxzKGdsLmdldEJ1ZmZlclBhcmFtZXRl
cihnbC5BUlJBWV9CVUZGRVIsIGdsLkJVRkZFUl9VU0FHRSksIGdsLlNUQVRJQ19EUkFXKTsKKwor
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxMio0LCBnbC5TVEFUSUNfRFJBVyk7
CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDAsIG5ldyBGbG9hdDMyQXJy
YXkoWzEsMiwzLDRdKSk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDE2
LCBuZXcgRmxvYXQzMkFycmF5KFsxLDEsMSwxXSkpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wu
QVJSQVlfQlVGRkVSLCAzMiwgbmV3IEZsb2F0MzJBcnJheShbMSwxLDEsMV0pKTsKKyAgICBhc3Nl
cnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVS
X1NJWkUpLCAxMio0KTsKKyAgICBhc3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGds
LkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1VTQUdFKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxMio0LCBnbC5TVFJFQU1fRFJBVyk7CisgICAg
Z2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDE2LCBuZXcgRmxvYXQzMkFycmF5KFsx
LDEsMSwxXSkpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAwLCBuZXcg
RmxvYXQzMkFycmF5KFsxLDIsMyw0XSkpOworICAgIGFzc2VydEVxdWFscyhnbC5nZXRCdWZmZXJQ
YXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfU0laRSksIDEyKjQpOworICAgIGFz
c2VydEVxdWFscyhnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZG
RVJfVVNBR0UpLCBnbC5TVFJFQU1fRFJBVyk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIDEyKjQsIGdsLkRZTkFNSUNfRFJBVyk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5B
UlJBWV9CVUZGRVIsIDE2LCBuZXcgRmxvYXQzMkFycmF5KFsxLDEsMSwxXSkpOworICAgIGdsLmJ1
ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAwLCBuZXcgRmxvYXQzMkFycmF5KFsxLDIsMyw0
XSkpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxNiwgbmV3IFVpbnQz
MkFycmF5KFsxLDEsMSwxXSkpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCAxNiwgbmV3IEludDMyQXJyYXkoWzEsMSwxLDFdKSk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShn
bC5BUlJBWV9CVUZGRVIsIDE2LCBuZXcgSW50MTZBcnJheShbMSwxLDEsMV0pKTsKKyAgICBnbC5i
dWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMTYsIG5ldyBVaW50MTZBcnJheShbMSwxLDEs
MV0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMTYsIG5ldyBJbnQ4
QXJyYXkoWzEsMSwxLDFdKSk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIs
IDE2LCBuZXcgVWludDhBcnJheShbMSwxLDEsMV0pKTsKKyAgICBhc3NlcnRFcXVhbHMoZ2wuZ2V0
QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1NJWkUpLCAxMio0KTsK
KyAgICBhc3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwg
Z2wuQlVGRkVSX1VTQUdFKSwgZ2wuRFlOQU1JQ19EUkFXKTsKKworICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuQVJSQVlfQlVGRkVSLCBuZXcgVWludDE2QXJyYXkoZGF0YSksIGdsLlNUQVRJQ19EUkFXKTsK
KyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMTYsIG5ldyBVaW50MTZBcnJh
eShbMSwxLDEsMV0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMCwg
bmV3IFVpbnQxNkFycmF5KFsxLDIsMyw0XSkpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBuZXcgVWludDE2QXJyYXkoZGF0YSksIGdsLlNUUkVBTV9EUkFXKTsKKyAgICBnbC5i
dWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMTYsIG5ldyBVaW50MTZBcnJheShbMSwxLDEs
MV0pKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMCwgbmV3IFVpbnQx
NkFycmF5KFsxLDIsMyw0XSkpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBu
ZXcgVWludDE2QXJyYXkoZGF0YSksIGdsLkRZTkFNSUNfRFJBVyk7CisgICAgZ2wuYnVmZmVyU3Vi
RGF0YShnbC5BUlJBWV9CVUZGRVIsIDE2LCBuZXcgVWludDE2QXJyYXkoWzEsMSwxLDFdKSk7Cisg
ICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDAsIG5ldyBVaW50MTZBcnJheShb
MSwyLDMsNF0pKTsKKyAgICBhc3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFS
UkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1NJWkUpLCAxMioyKTsKKyAgICB0aHJvd0Vycm9yKGdsLCAi
YXJyYXkgYnVmZmVyU3ViRGF0YSIpOworfQorVGVzdHMudGVzdEJ1ZmZlclN1YkRhdGFFbGVtZW50
ID0gZnVuY3Rpb24oZ2wsIGJ1ZiwgZWJ1ZikgeworICAgIHZhciBkYXRhID0gWzAsMCwwLDAsIDEs
MCwwLDAsIDAsMSwwLDBdOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZG
RVIsIG5ldyBVaW50MTZBcnJheShkYXRhKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmJ1ZmZl
clN1YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDE2LCBuZXcgVWludDE2QXJyYXkoWzEs
MSwxLDFdKSk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwg
MCwgbmV3IFVpbnQxNkFycmF5KFsxLDIsMyw0XSkpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBVaW50MTZBcnJheShkYXRhKSwgZ2wuU1RSRUFNX0RSQVcp
OworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDE2LCBuZXcg
VWludDE2QXJyYXkoWzEsMSwxLDFdKSk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgMCwgbmV3IFVpbnQxNkFycmF5KFsxLDIsMyw0XSkpOworICAgIGdsLmJ1
ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBVaW50MTZBcnJheShkYXRhKSwg
Z2wuRFlOQU1JQ19EUkFXKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkVMRU1FTlRfQVJSQVlf
QlVGRkVSLCAxNiwgbmV3IFVpbnQxNkFycmF5KFsxLDEsMSwxXSkpOworICAgIGdsLmJ1ZmZlclN1
YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDAsIG5ldyBVaW50MTZBcnJheShbMSwyLDMs
NF0pKTsKKyAgICBhc3NlcnRFcXVhbHMoZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkVMRU1FTlRf
QVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfU0laRSksIDEyKjIpOworICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBVaW50OEFycmF5KGRhdGEpLCBnbC5EWU5BTUlD
X0RSQVcpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDQs
IG5ldyBVaW50OEFycmF5KFsxLDEsMSwxXSkpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIDAsIG5ldyBVaW50OEFycmF5KFsxLDIsMyw0XSkpOworICAgIGFz
c2VydEVxdWFscyhnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IGdsLkJVRkZFUl9TSVpFKSwgMTIpOworICAgIHRocm93RXJyb3IoZ2wsICJlbGVtZW50IGFycmF5
IGJ1ZmZlclN1YkRhdGEiKTsKK30KKworVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsLCBidWYs
IGVidWYpIHsKKyAgICBnbC5kZWxldGVCdWZmZXIoYnVmKTsKKyAgICBnbC5kZWxldGVCdWZmZXIo
ZWJ1Zik7Cit9CisKKzwvc2NyaXB0PgorPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7
IH08L3N0eWxlPgorPC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVp
Z2h0PSIxNiI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvYnVmZmVyU3ViRGF0YUJhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1
YkRhdGFCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk2MWUyZjI0MWJhNWY5YTNhNjc5YzA0MWQw
ZDQ5NDMzNjAwMjdhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2J1ZmZlclN1
YkRhdGFCYWRBcmdzLmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQorCisvKgorKiogQ29weXJp
Z2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhl
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5k
IHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hl
ZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioK
KyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiog
TUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVS
SUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNj
cmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRp
b24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCitUZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlv
biAoKSB7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOwor
ICAgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICAgIHZh
ciBidWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICB2YXIgZWJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWYpOworICAgIGdsLmJp
bmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGVidWYpOworICAgIHJldHVybiBbZ2ws
IGJ1ZiwgZWJ1Zl07Cit9CisKK1Rlc3RzLnRlc3RCdWZmZXJEYXRhID0gZnVuY3Rpb24oZ2wpIHsK
KyAgICB2YXIgZGF0YSA9IFswLDAsMCwwLCAxLDAsMCwwLCAwLDEsMCwwXTsKKyAgICBnbC5idWZm
ZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShkYXRhKSwgZ2wuU1RSRUFN
X0RSQVcpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBV
aW50MTZBcnJheShkYXRhKSwgZ2wuU1RSRUFNX0RSQVcpOworICAgIGFzc2VydE9rKCJ6ZXJvIGxl
bmd0aCBkYXRhIiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgMCwgbmV3IEZsb2F0MzJBcnJheSgwKSk7fSk7CisgICAgYXNzZXJ0RmFpbCgibnVt
YmVyIGZvciBkYXRhIiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC5idWZmZXJTdWJEYXRhKGdsLkFS
UkFZX0JVRkZFUiwgMCwgMTIpO30pOworICAgIGFzc2VydEZhaWwoImJhZCB0YXJnZXQiLAorICAg
ICAgICBmdW5jdGlvbigpe2dsLmJ1ZmZlclN1YkRhdGEoZ2wuVEVYVFVSRV8yRCwgMCwgbmV3IEZs
b2F0MzJBcnJheShbMSwyLDNdKSk7fSk7CisgICAgYXNzZXJ0RmFpbCgiYXJyYXkgZm9yIGRhdGEi
LAorICAgICAgICBmdW5jdGlvbigpe2dsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAw
LCBbMSwyLDNdKTt9KTsKKyAgICBhc3NlcnRPaygiZmxvYXRzIGluIGVsZW1lbnQgYnVmZmVyIiwK
KyAgICAgICAgZnVuY3Rpb24oKXtnbC5idWZmZXJTdWJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVG
RkVSLCAwLCBuZXcgRmxvYXQzMkFycmF5KFsxLDIsM10pKTt9KTsKKyAgICBhc3NlcnRGYWlsKCJu
ZWdhdGl2ZSBvZmZzZXQiLAorICAgICAgICBmdW5jdGlvbigpe2dsLmJ1ZmZlclN1YkRhdGEoZ2wu
RUxFTUVOVF9BUlJBWV9CVUZGRVIsIC0xLCBuZXcgVWludDE2QXJyYXkoWzEsMiwzXSkpO30pOwor
ICAgIGFzc2VydEZhaWwoIm9mZnNldCBvdXQgb2YgcmFuZ2UiLAorICAgICAgICBmdW5jdGlvbigp
e2dsLmJ1ZmZlclN1YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDI0LCBuZXcgVWludDE2
QXJyYXkoWzEsMiwzXSkpO30pOworICAgIGFzc2VydEZhaWwoIm9mZnNldCBvdXQgb2YgcmFuZ2Ui
LAorICAgICAgICBmdW5jdGlvbigpe2dsLmJ1ZmZlclN1YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9C
VUZGRVIsIDI0MDAwMDAsIG5ldyBVaW50MTZBcnJheShbMSwyLDNdKSk7fSk7CisgICAgYXNzZXJ0
RmFpbCgib2Zmc2V0IG91dCBvZiByYW5nZSIsCisgICAgICAgIGZ1bmN0aW9uKCl7Z2wuYnVmZmVy
U3ViRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgMTksIG5ldyBVaW50MTZBcnJheShbMSwy
LDNdKSk7fSk7CisgICAgYXNzZXJ0RmFpbCgiZGF0YSB0b28gbGFyZ2UiLAorICAgICAgICBmdW5j
dGlvbigpe2dsLmJ1ZmZlclN1YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDAsIG5ldyBV
aW50MTZBcnJheShkYXRhLmNvbmNhdChbMV0pKSk7fSk7CisgICAgYXNzZXJ0T2soIm9mZnNldCAr
IGRhdGEgdG9vIGxhcmdlIiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC5idWZmZXJTdWJEYXRhKGds
LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCAxOCwgbmV3IFVpbnQxNkFycmF5KFsxLDIsM10pKTt9KTsK
KyAgICBhc3NlcnRPaygiZ29vZCBhcmdzIiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC5idWZmZXJT
dWJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCAwLCBuZXcgVWludDE2QXJyYXkoWzEsMiwz
XSkpO30pOworICAgIHRocm93RXJyb3IoZ2wsICdidWZmZXJEYXRhMCcpOworICAgIGdsLmJpbmRC
dWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBudWxsKTsKKyAgICBhc3NlcnRGYWlsKCJzZXR0aW5nIGJ1
ZmZlciAwIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZG
RVIsIDAsIG5ldyBGbG9hdDMyQXJyYXkoWzEsMiwzXSkpO30pOworICAgIHRocm93RXJyb3IoZ2ws
ICdidWZmZXJEYXRhMScpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZG
RVIsIG51bGwpOworICAgIGFzc2VydEZhaWwoInNldHRpbmcgYnVmZmVyIDAiLAorICAgICAgICBm
dW5jdGlvbigpe2dsLmJ1ZmZlclN1YkRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIDAsIG5l
dyBVaW50MTZBcnJheShbMSwyLDNdKSk7fSk7CisgICAgdGhyb3dFcnJvcihnbCwgJ2J1ZmZlckRh
dGEyJyk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCwgYnVmLCBlYnVmKSB7Cisg
ICAgZ2wuZGVsZXRlQnVmZmVyKGJ1Zik7CisgICAgZ2wuZGVsZXRlQnVmZmVyKGVidWYpOworfQor
Cis8L3NjcmlwdD4KKzxzdHlsZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4K
KzwvaGVhZD48Ym9keT4KKzxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwv
Y2FudmFzPgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVz
dHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWNkNzIy
ZTcxM2Q3NDE3Nzc1MGFhYWU5N2I3ZjhjNWI1MDIxOWZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvaXNUZXN0cy5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0ID0g
ZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ds
Jyk7CisgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICBy
ZXR1cm4gW2dsXTsKK30KKworVGVzdHMudGVzdElzID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIg
dGV4ID0gbG9hZFRleHR1cmUoZ2wsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcyZCcpKTsKKyAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIHZhciBmYm8gPSBuZXcg
RkJPKGdsLCAxLCAxKTsKKyAgICBmYm8udXNlKCk7CisgICAgdmFyIHByb2cgPSBnbC5jcmVhdGVQ
cm9ncmFtKCk7CisgICAgdmFyIHNoMSA9IGdsLmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVS
KTsKKyAgICB2YXIgc2gyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7Cisg
ICAgdmFyIGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJS
QVlfQlVGRkVSLCBidWYpOworICAgIGFzc2VydCgidGV4IiwgZ2wuaXNUZXh0dXJlKHRleCkpOwor
ICAgIGFzc2VydCgiZmJvIiwgZ2wuaXNGcmFtZWJ1ZmZlcihmYm8uZmJvKSk7CisgICAgYXNzZXJ0
KCJyYm8iLCBnbC5pc1JlbmRlcmJ1ZmZlcihmYm8ucmJvKSk7CisgICAgYXNzZXJ0KCJwcm9nIiwg
Z2wuaXNQcm9ncmFtKHByb2cpKTsKKyAgICBhc3NlcnQoInNoMSIsIGdsLmlzU2hhZGVyKHNoMSkp
OworICAgIGFzc2VydCgic2gyIiwgZ2wuaXNTaGFkZXIoc2gyKSk7CisgICAgYXNzZXJ0KCJidWYi
LCBnbC5pc0J1ZmZlcihidWYpKTsKKyAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7CisgICAgZ2wu
ZGVsZXRlRnJhbWVidWZmZXIoZmJvLmZibyk7CisgICAgZ2wuZGVsZXRlUmVuZGVyYnVmZmVyKGZi
by5yYm8pOworICAgIGdsLmRlbGV0ZVByb2dyYW0ocHJvZyk7CisgICAgZ2wuZGVsZXRlU2hhZGVy
KHNoMSk7CisgICAgZ2wuZGVsZXRlU2hhZGVyKHNoMik7CisgICAgZ2wuZGVsZXRlQnVmZmVyKGJ1
Zik7CisgICAgLy8gTk9URTogd2UgcHVycG9zZWx5IGRvIG5vdCB1bmJpbmQgdGhpbmdzLgorICAg
IGFzc2VydCgidGV4IiwgIWdsLmlzVGV4dHVyZSh0ZXgpKTsKKyAgICBhc3NlcnQoImZibyIsICFn
bC5pc0ZyYW1lYnVmZmVyKGZiby5mYm8pKTsKKyAgICBhc3NlcnQoInJibyIsICFnbC5pc1JlbmRl
cmJ1ZmZlcihmYm8ucmJvKSk7CisgICAgYXNzZXJ0KCJwcm9nIiwgIWdsLmlzUHJvZ3JhbShwcm9n
KSk7CisgICAgYXNzZXJ0KCJzaDEiLCAhZ2wuaXNTaGFkZXIoc2gxKSk7CisgICAgYXNzZXJ0KCJz
aDIiLCAhZ2wuaXNTaGFkZXIoc2gyKSk7CisgICAgYXNzZXJ0KCJidWYiLCAhZ2wuaXNCdWZmZXIo
YnVmKSk7Cit9CisKKzwvc2NyaXB0PgorCis8c3R5bGU+Y2FudmFzeyBwb3NpdGlvbjphYnNvbHV0
ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+CisgIDxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMSIg
aGVpZ2h0PSIxIj48L2NhbnZhcz4KKyAgPGNhbnZhcyBpZD0iMmQiIHdpZHRoPSIxNiIgaGVpZ2h0
PSIxNiI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvaXNUZXN0c0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHNCYWRBcmdzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTNlOGQ4MWFkOWJhYTU2YTVkNzg2ZGFlN2I3MzUwMDNjMTc0OTc0ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL2lzVGVzdHNCYWRBcmdzLmh0bWwKQEAg
LTAsMCArMSwxMDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAor
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFz
IGlkPSJjYW52YXNfZWxlbWVudCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PC9jYW52YXM+Cis8c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisKK2Z1bmN0aW9uIHJ1blRlc3Qo
KQoreworICAgIHNob3VsZFRocm93KCJnbC5pc0J1ZmZlcihnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
KSIpOworICAgIHNob3VsZFRocm93KCJnbC5pc0J1ZmZlcihnbC5jcmVhdGVQcm9ncmFtKCkpIik7
CisgICAgc2hvdWxkVGhyb3coImdsLmlzQnVmZmVyKGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpKSIp
OworICAgIHNob3VsZFRocm93KCJnbC5pc0J1ZmZlcihnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVY
X1NIQURFUikpIik7CisgICAgc2hvdWxkVGhyb3coImdsLmlzQnVmZmVyKGdsLmNyZWF0ZVRleHR1
cmUoKSkiKTsKKworICAgIHNob3VsZFRocm93KCJnbC5pc0ZyYW1lYnVmZmVyKGdsLmNyZWF0ZUJ1
ZmZlcigpKSIpOworICAgIHNob3VsZFRocm93KCJnbC5pc0ZyYW1lYnVmZmVyKGdsLmNyZWF0ZVBy
b2dyYW0oKSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNGcmFtZWJ1ZmZlcihnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNGcmFtZWJ1ZmZlcihnbC5j
cmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUikpIik7CisgICAgc2hvdWxkVGhyb3coImdsLmlz
RnJhbWVidWZmZXIoZ2wuY3JlYXRlVGV4dHVyZSgpKSIpOworCisgICAgc2hvdWxkVGhyb3coImds
LmlzUHJvZ3JhbShnbC5jcmVhdGVCdWZmZXIoKSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNQ
cm9ncmFtKGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkpIik7CisgICAgc2hvdWxkVGhyb3coImdsLmlz
UHJvZ3JhbShnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wu
aXNQcm9ncmFtKGdsLmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKSkiKTsKKyAgICBzaG91
bGRUaHJvdygiZ2wuaXNQcm9ncmFtKGdsLmNyZWF0ZVRleHR1cmUoKSkiKTsKKworICAgIHNob3Vs
ZFRocm93KCJnbC5pc1JlbmRlcmJ1ZmZlcihnbC5jcmVhdGVCdWZmZXIoKSkiKTsKKyAgICBzaG91
bGRUaHJvdygiZ2wuaXNSZW5kZXJidWZmZXIoZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSkiKTsKKyAg
ICBzaG91bGRUaHJvdygiZ2wuaXNSZW5kZXJidWZmZXIoZ2wuY3JlYXRlUHJvZ3JhbSgpKSIpOwor
ICAgIHNob3VsZFRocm93KCJnbC5pc1JlbmRlcmJ1ZmZlcihnbC5jcmVhdGVTaGFkZXIoZ2wuVkVS
VEVYX1NIQURFUikpIik7CisgICAgc2hvdWxkVGhyb3coImdsLmlzUmVuZGVyYnVmZmVyKGdsLmNy
ZWF0ZVRleHR1cmUoKSkiKTsKKworICAgIHNob3VsZFRocm93KCJnbC5pc1NoYWRlcihnbC5jcmVh
dGVCdWZmZXIoKSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNTaGFkZXIoZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNTaGFkZXIoZ2wuY3JlYXRlUHJv
Z3JhbSgpKSIpOworICAgIHNob3VsZFRocm93KCJnbC5pc1NoYWRlcihnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNTaGFkZXIoZ2wuY3JlYXRlVGV4dHVy
ZSgpKSIpOworCisgICAgc2hvdWxkVGhyb3coImdsLmlzVGV4dHVyZShnbC5jcmVhdGVCdWZmZXIo
KSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNUZXh0dXJlKGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkpIik7CisgICAgc2hvdWxkVGhyb3coImdsLmlzVGV4dHVyZShnbC5jcmVhdGVQcm9ncmFtKCkp
Iik7CisgICAgc2hvdWxkVGhyb3coImdsLmlzVGV4dHVyZShnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSkiKTsKKyAgICBzaG91bGRUaHJvdygiZ2wuaXNUZXh0dXJlKGdsLmNyZWF0ZVNoYWRlcihnbC5W
RVJURVhfU0hBREVSKSkiKTsKKworICAgIHNob3VsZEJlKCJnbC5pc0J1ZmZlcihudWxsKSIsICAg
ICAgICAgICAgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImdsLmlzQnVmZmVyKHVuZGVmaW5lZCki
LCAgICAgICAiZmFsc2UiKTsKKworICAgIHNob3VsZEJlKCJnbC5pc0ZyYW1lYnVmZmVyKG51bGwp
IiwgICAgICAgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImdsLmlzRnJhbWVidWZmZXIodW5kZWZp
bmVkKSIsICAiZmFsc2UiKTsKKworICAgIHNob3VsZEJlKCJnbC5pc1Byb2dyYW0obnVsbCkiLCAg
ICAgICAgICAgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImdsLmlzUHJvZ3JhbSh1bmRlZmluZWQp
IiwgICAgICAiZmFsc2UiKTsKKworICAgIHNob3VsZEJlKCJnbC5pc1JlbmRlcmJ1ZmZlcihudWxs
KSIsICAgICAgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImdsLmlzUmVuZGVyYnVmZmVyKHVuZGVm
aW5lZCkiLCAiZmFsc2UiKTsKKworICAgIHNob3VsZEJlKCJnbC5pc1NoYWRlcihudWxsKSIsICAg
ICAgICAgICAgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImdsLmlzU2hhZGVyKHVuZGVmaW5lZCki
LCAgICAgICAiZmFsc2UiKTsKKworICAgIHNob3VsZEJlKCJnbC5pc1RleHR1cmUobnVsbCkiLCAg
ICAgICAgICAgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImdsLmlzVGV4dHVyZSh1bmRlZmluZWQp
IiwgICAgICAiZmFsc2UiKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3RzIHR5cGUgY2hlY2tpbmcg
Zm9yIGlzWCgpIGZ1bmN0aW9ucyIpOwordmFyIGdsID0gV2ViR0xUZXN0VXRpbHMuY3JlYXRlM0RD
b250ZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXNfZWxlbWVudCIpKTsKK3J1blRl
c3QoKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVscy5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMjA1Y2Nj
YTA1MmE2MWY4Y2U5NWI4ZDI3MTEzYjBmOGNlMWViMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy9yZWFkUGl4ZWxzLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQorCisvKgor
KiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBN
YXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisq
KiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVy
aWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJl
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJF
U1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisq
KiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g
VEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
YXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCitUZXN0cy5zdGFydFVuaXQg
PSBmdW5jdGlvbiAoKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Z2wnKTsKKyAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7Cisg
IHJldHVybiBbZ2xdOworfQorCitUZXN0cy50ZXN0UmVhZFBpeGVscyA9IGZ1bmN0aW9uKGdsKSB7
CisgIHZhciBpZCA9IG5ldyBVaW50OEFycmF5KDE2ICogMTYgKiA0KTsKKyAgYXNzZXJ0T2soZnVu
Y3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
aWQpO30pOworICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDE2LDE2LGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGlkKTt9KTsKKyAgYXNzZXJ0T2soZnVuY3Rpb24oKXtn
bC5yZWFkUGl4ZWxzKDE1LDE1LDEsMSxnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpZCk7fSk7
Cit9CitUZXN0cy50ZXN0UmVhZFBpeGVsc1JHQkEgPSBmdW5jdGlvbihnbCkgeworICBnbC5jbGVh
ckNvbG9yKDEsIDAsIDEsIDApOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKyAg
dmFyIGlkID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgIGdsLnJlYWRQaXhlbHMoMSwyLDEsMSxnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpZCk7CisgIGFzc2VydEFycmF5RXF1YWxzKFsyNTUsIDAs
IDI1NSwgMF0sIGlkKTsKK30KKworVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Cit9CisK
Kzwvc2NyaXB0PgorPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7IH08L3N0eWxlPgor
PC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9j
YW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyRC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyRC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3
MmFjNDFhMzhiMzMzNGM0YWY2NzBkMzlmYzQ0ODAyMWExMTA1MWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJELmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQor
CisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisq
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGlu
IHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl
IE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlh
bHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFM
UyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoq
IEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCitUZXN0cy5zdGFy
dFVuaXQgPSBmdW5jdGlvbiAoKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFz
KSk7CisgIHJldHVybiBbZ2xdOworfQorCitUZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7Cisg
IHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleCk7CisgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFwKTsKKyAgcmV0dXJu
IFtnbF0KK30KKworVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCx0ZXgsdGV4Q3ViZU1hcCkg
eworICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKKyAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgbnVsbCk7CisgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsK
KyAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXhDdWJlTWFwKTsKK30KKworVGVzdHMudGVzdFRleEltYWdl
MkQgPSBmdW5jdGlvbihnbCkgeworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIDEsMSwwLGdsLlJHQkEsZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkoWzAs
MCwwLDBdKSk7CisgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMiwx
LDAsZ2wuUkdCQSxnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAs
MCwwXSkpOworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsMiww
LGdsLlJHQkEsZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAs
MF0pKTsKKyAgdmFyIHZhbGlkX3RhcmdldHMgPSBbCisgICAgZ2wuVEVYVFVSRV8yRCwKKyAgICBn
bC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCisgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9O
RUdBVElWRV9YLAorICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKKyAgICBnbC5U
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCisgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9aLAorICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWgorICBdOworICB2YWxp
ZF90YXJnZXRzLmZvckVhY2goZnVuY3Rpb24odCkgeworICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7
Z2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JBLCAxLDEsMCxnbC5SR0JBLGdsLlVOU0lHTkVEX0JZ
VEUsIG5ldyBVaW50OEFycmF5KFswLDAsMCwwXSkpO30pOworICB9KTsKK30KKworVGVzdHMudGVz
dFRleEltYWdlMkROdWxsID0gZnVuY3Rpb24oZ2wpIHsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCAxLDEsMCxnbC5SR0JBLGdsLlVOU0lHTkVEX0JZVEUsIG51bGwp
OworfQorCitUZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24oZ2wpIHsKK30KKworPC9zY3JpcHQ+Cis8
c3R5bGU+Y2FudmFzeyBwb3NpdGlvbjphYnNvbHV0ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+
Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4KKzwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTEJhZEFy
Z3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MQmFkQXJncy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc1NTE3YmEwYTA0MDgwYmEwNGVkMTEyMjQyZjE5ZTNiZjBjMjk2OGIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbApAQCAt
MCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8IS0tCisKKy8q
CisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
KyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
KyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4K
KzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0i
Li4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNj
cmlwdCI+CisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKKyAgdmFyIGNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0
KGdldEdMQ29udGV4dChjYW52YXMpKTsKKyAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsK
KyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgcmV0dXJuIFtnbCwgdGV4
XTsKK30KKworVGVzdHMudGVzdFRleEltYWdlMkQgPSBmdW5jdGlvbihnbCkgeworICAgIHZhciBi
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYicpOworICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjJyk7CisgICAgYXNzZXJ0RmFpbCgiYmFkIGVsZW1lbnQgYiIsCisgICAgICAgIGZ1bmN0aW9u
KCkge2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgYik7IH0pOworICAgIGFzc2VydEZhaWwoImJhZCBlbGVtZW50IGRpdiIs
CisgICAgICAgIGZ1bmN0aW9uKCkge2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wu
UkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgZGl2KTsgfSk7CisgICAgYXNzZXJ0RmFp
bCgibm8gZWxlbWVudCIsCisgICAgICAgIGZ1bmN0aW9uKCkge2dsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgMCk7IH0pOwor
ICAgIGFzc2VydEZhaWwoInN0cmluZyBhcyBkYXRhIiwKKyAgICAgICAgZnVuY3Rpb24oKSB7Z2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCAiZm9vIik7IH0pOworICAgIGFzc2VydE9rKCJjYW52YXMgYXMgZGF0YSIsCisgICAg
ICAgICBmdW5jdGlvbigpIHtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOyB9KTsKKyAgICBhc3NlcnRGYWlsKCJiYWQg
dGFyZ2V0IiwKKyAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4SW1hZ2UyRChnbC5GTE9BVCwgMCwg
Z2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7IH0pOworfQorCitUZXN0cy5l
bmRVbml0ID0gZnVuY3Rpb24oZ2wsIHRleCkgeworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIG51bGwpOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKK30KKworPC9zY3JpcHQ+
Cis8c3R5bGU+Y2FudmFzeyBwb3NpdGlvbjphYnNvbHV0ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJv
ZHk+Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4KKzxj
YW52YXMgaWQ9ImMiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Cis8L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhYjljY2YyNGU0OTQ3
Zjk3YTA5YTdkYWM4YzBjMjcyOTAxOTAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhTdWJJbWFnZTJELmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQorCisvKgorKiog
Q29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh
aW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3Vt
ZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRl
cmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRp
b24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBk
aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFs
cywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1
cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
OgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g
bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs
IHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJP
VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1Mg
T1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP
RgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
TkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhF
IE1BVEVSSUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gt
amF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBw
bGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCitUZXN0cy5zdGFydFVuaXQgPSBm
dW5jdGlvbiAoKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wn
KTsKKyAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7CisgIHJl
dHVybiBbZ2xdOworfQorCitUZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7CisgIHZhciB0ZXgg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRl
eCk7CisgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFwKTsKKyAgcmV0dXJuIFtnbF0KK30K
KworVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCx0ZXgsdGV4Q3ViZU1hcCkgeworICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKKyAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgp
OworICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCBudWxsKTsKKyAgZ2wuZGVs
ZXRlVGV4dHVyZSh0ZXhDdWJlTWFwKTsKK30KKworVGVzdHMudGVzdFRleFN1YkltYWdlMkQgPSBm
dW5jdGlvbihnbCkgeworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IDIsMiwwLGdsLlJHQkEsZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdKSk7CisgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwwLCAxLDEsZ2wuUkdCQSxnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJh
eShbMCwwLDAsMF0pKTsKKyAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAs
IDIsMSxnbC5SR0JBLGdsLlVOU0lHTkVEX0JZVEUsIG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAs
MCwwLDBdKSk7CisgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCAxLDIs
Z2wuUkdCQSxnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCww
XSkpOworICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDEsMCwgMSwxLGdsLlJH
QkEsZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDBdKSk7CisgIGdsLnRl
eFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwxLCAxLDEsZ2wuUkdCQSxnbC5VTlNJR05F
RF9CWVRFLCBuZXcgVWludDhBcnJheShbMCwwLDAsMF0pKTsKKyAgZ2wudGV4U3ViSW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCAxLDEsIDEsMSxnbC5SR0JBLGdsLlVOU0lHTkVEX0JZVEUsIG5ldyBV
aW50OEFycmF5KFswLDAsMCwwXSkpOworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEs
Z2wuUkdCQSwgMSwxLDAsZ2wuUkdCQSxnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheShb
MCwwLDAsMF0pKTsKKyAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCAwLDAsIDEs
MSxnbC5SR0JBLGdsLlVOU0lHTkVEX0JZVEUsIG5ldyBVaW50OEFycmF5KFswLDAsMCwwXSkpOwor
ICB2YXIgdmFsaWRfdGFyZ2V0cyA9IFsKKyAgICBnbC5URVhUVVJFXzJELAorICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKKyAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1gsCisgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAorICAgIGdsLlRFWFRVUkVf
Q1VCRV9NQVBfTkVHQVRJVkVfWSwKKyAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1os
CisgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aCisgIF07CisgIHZhbGlkX3Rhcmdl
dHMuZm9yRWFjaChmdW5jdGlvbih0KSB7CisgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKKyAgICAg
ICAgZ2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JBLCAxLDEsMCxnbC5SR0JBLGdsLlVOU0lHTkVE
X0JZVEUsIG5ldyBVaW50OEFycmF5KFswLDAsMCwwXSkpOworICAgICAgICBnbC50ZXhTdWJJbWFn
ZTJEKHQsIDAsIDAsMCwgMSwxLGdsLlJHQkEsZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJy
YXkoWzAsMCwwLDBdKSk7CisgICAgfSk7CisgIH0pOworfQorCitUZXN0cy5lbmRVbml0ID0gZnVu
Y3Rpb24oZ2wpIHsKK30KKworPC9zY3JpcHQ+Cis8c3R5bGU+Y2FudmFzeyBwb3NpdGlvbjphYnNv
bHV0ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjE2
IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleFN1YkltYWdlMkRIVE1MQmFkQXJncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNDQxZjZjNTEyMmVj
YTQxZjQwYmUyYzdiY2M3OWNlYmMyMjFmZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhTdWJJbWFnZTJESFRNTEJhZEFyZ3MuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEt
LQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoq
CisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
KyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCitUZXN0cy5z
dGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2Fu
dmFzKSk7CisgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIHJldHVybiBbZ2wsIHRleF07Cit9CisKK1Rlc3RzLnRl
c3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIgYiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2InKTsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpOworICAgIGFzc2Vy
dE9rKCJtYWtlIHRleHR1cmUiLAorICAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsg
fSk7CisgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInkgKyBoZWlnaHQg
PiB0ZXh0dXJlIGhlaWdodCIsCisgICAgICAgIGZ1bmN0aW9uKCkge2dsLnRleFN1YkltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgMCwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7IH0p
OworICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJ4ICsgd2lkdGggPiB0
ZXh0dXJlIHdpZHRoIiwKKyAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsgfSk7Cisg
ICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5lZ2F0aXZlIHgiLAorICAg
ICAgICBmdW5jdGlvbigpIHtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIC0xLCAw
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsgfSk7CisgICAgYXNzZXJ0R0xFcnJvcihn
bCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5lZ2F0aXZlIHkiLAorICAgICAgICBmdW5jdGlvbigpIHtn
bC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIC0xLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBjKTsgfSk7CisgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxV
RSwgIm5lZ2F0aXZlIGxldmVsIiwKKyAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4U3ViSW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAtMSwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7
IH0pOworICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAiYmFkIGVsZW1lbnQgYiIsCisgICAg
ICAgIGZ1bmN0aW9uKCkge2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBiKTsgfSk7CisgICAgYXNzZXJ0VGhyb3dOb0dMRXJy
b3IoZ2wsICJiYWQgZWxlbWVudCBkaXYiLAorICAgICAgICBmdW5jdGlvbigpIHtnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
ZGl2KTsgfSk7CisgICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJubyBlbGVtZW50IiwKKyAg
ICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIDApOyB9KTsKKyAgICBhc3NlcnRUaHJvd05vR0xF
cnJvcihnbCwgInN0cmluZyBhcyBkYXRhIiwKKyAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4U3Vi
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
ICJmb28iKTsgfSk7CisgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiYmFk
IHRhcmdldCIsCisgICAgICAgIGZ1bmN0aW9uKCkge2dsLnRleFN1YkltYWdlMkQoZ2wuRkxPQVQs
IDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7IH0pOworICAgIGFzc2VydE9r
KCJnb29kIGFyZ3MiLAorICAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsgfSk7Cisg
ICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3JtYXQgbm90IHNh
bWUgYXMgb3JpZ2luYWwiLAorICAgICAgICBmdW5jdGlvbigpIHtnbC50ZXhTdWJJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsgfSk7Cisg
ICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJ0eXBlIG5vdCBzYW1l
IGFzIG9yaWdpbmFsIiwKKyAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIGMp
OyB9KTsKKyAgICBhc3NlcnRPaygibWFrZSB0ZXh0dXJlIFJHQiIsCisgICAgICAgICBmdW5jdGlv
bigpIHtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5V
TlNJR05FRF9CWVRFLCBjKTsgfSk7CisgICAgYXNzZXJ0T2soImZvcm1hdCBzYW1lIGFzIG9yaWdp
bmFsIFJHQiIsCisgICAgICAgIGZ1bmN0aW9uKCkge2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOyB9KTsKKyAgICBhc3Nl
cnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImZvcm1hdCBub3Qgc2FtZSBhcyBv
cmlnaW5hbCBSR0IiLAorICAgICAgICBmdW5jdGlvbigpIHtnbC50ZXhTdWJJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7IH0pOworICAg
IGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAidHlwZSBub3Qgc2FtZSBh
cyBvcmlnaW5hbCBSR0IiLAorICAgICAgICBmdW5jdGlvbigpIHtnbC50ZXhTdWJJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwgYyk7
IH0pOworICAgIGFzc2VydE9rKCJtYWtlIHRleHR1cmUgUkdCQSA0XzRfNF80IiwKKyAgICAgICAg
IGZ1bmN0aW9uKCkge2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwgYyk7IH0pOworICAgIGFzc2VydE9rKCJm
b3JtYXQgc2FtZSBhcyBvcmlnaW5hbCBSR0JBIDRfNF80XzQiLAorICAgICAgICBmdW5jdGlvbigp
IHtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfU0hPUlRfNF80XzRfNCwgYyk7IH0pOworICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklO
VkFMSURfT1BFUkFUSU9OLCAiZm9ybWF0IG5vdCBzYW1lIGFzIG9yaWdpbmFsIFJHQkEgNF80XzRf
NCIsCisgICAgICAgIGZ1bmN0aW9uKCkge2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgMCwwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOyB9KTsKKyAgICBhc3NlcnRHTEVy
cm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgInR5cGUgbm90IHNhbWUgYXMgb3JpZ2luYWwg
UkdCQSA0XzRfNF80IiwKKyAgICAgICAgZnVuY3Rpb24oKSB7Z2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOyB9KTsKK30K
KworVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsLCB0ZXgpIHsKKyAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCBudWxsKTsKKyAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Cit9CisK
Kzwvc2NyaXB0PgorPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7IH08L3N0eWxlPgor
PC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9j
YW52YXM+Cis8Y2FudmFzIGlkPSJjIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgor
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXgu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXguaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDdm
NmY1ODIyZWMxZmMxZTFiOTAxNTU1M2QwNWU3NzE2OTI2ZjkxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeC5odG1sCkBAIC0wLDAgKzEsOTAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0K
KworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgor
KiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBp
biB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91
dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJp
YWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklB
TFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisq
KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuc3Rh
cnRVbml0ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZh
cykpOworICByZXR1cm4gW2dsXTsKK30KKworVGVzdHMudGVzdFVuaWZvcm1mID0gZnVuY3Rpb24o
Z2wpIHsKKyAgdmFyIHNoID0gbmV3IEZpbHRlcihnbCwgJ2Zvb2Jhci12ZXJ0JywgJ2Zvb2Jhci1m
cmFnJyk7CisgIHNoLmFwcGx5KGZ1bmN0aW9uKGYpeworICAgIHZhciBmb28gPSBmLnVuaWZvcm0o
J2ZvbycpOworICAgIHZhciBiYXIgPSBmLnVuaWZvcm0oJ2JhcicpOworICAgIHZhciBiYXIzID0g
Zi51bmlmb3JtKCdiYXIzJyk7CisgICAgZ2wudW5pZm9ybU1hdHJpeDRmdihmb28sIGZhbHNlLCBb
MSwwLDAsMCwgMCwyLDAsMCwgMCwwLDMsMCwgMCwwLDAsNF0pOworICAgIGdsLnVuaWZvcm1NYXRy
aXgyZnYoYmFyLCBmYWxzZSwgWzIsMSwgMiwyXSk7CisgICAgZ2wudW5pZm9ybU1hdHJpeDNmdihi
YXIzLCBmYWxzZSwgWzIsMiwyLCAyLDIsMiwgMiwxLDJdKTsKKyAgfSk7CisgIHZhciBkID0gbmV3
IFVpbnQ4QXJyYXkoNCk7CisgIGdsLnJlYWRQaXhlbHMoMCwwLDEsMSxnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBkKTsKKyAgYXNzZXJ0RXF1YWxzKFsxLDIsMyw4XSwgW2RbMF0sIGRbMV0sIGRb
Ml0sIGRbM11dKTsKKyAgc2guZGVzdHJveSgpOworfQorCitUZXN0cy5lbmRVbml0ID0gZnVuY3Rp
b24oZ2wpIHsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmb29iYXItdmVydCIgdHlwZT0i
eC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzMgVmVydGV4OworYXR0cmlidXRlIHZl
YzIgVGV4OworCit1bmlmb3JtIG1hdDIgYmFyOwordW5pZm9ybSBtYXQzIGJhcjM7CisKK3Zhcnlp
bmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQoreworICAgIHRleENvb3JkMCA9IHZlYzQo
VGV4LnMsIDEuMC1UZXgudCwgYmFyWzBdWzFdK2JhcjNbMl1bMV0sIDAuMCk7CisgICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZm9v
YmFyLWZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisKK3VuaWZvcm0gbWF0NCBmb287CisKK3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2
b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoZm9vWzBdWzBdLzI1Ni4wLCBm
b29bMV1bMV0vMjU2LjAsIGZvb1syXVsyXS8yNTYuMCwgZm9vWzNdWzNdKnRleENvb3JkMC56LzI1
Ni4wKTsKK30KKzwvc2NyaXB0PgorPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7IH08
L3N0eWxlPgorPC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0
PSIxNiI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdW5pZm9ybU1hdHJpeEJhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRy
aXhCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzA1ZjYzNGMzMTIyNGU5NDI1ZjUyYjcwODlhZDU2
ZTcxMjU1ZmExNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRy
aXhCYWRBcmdzLmh0bWwKQEAgLTAsMCArMSwxNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdo
dCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
KyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0
bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisq
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1F
UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUK
KyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklB
TFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3Jp
cHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
YXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24g
KCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZh
ciB1bndyYXBwZWRHTCA9IGdldEdMQ29udGV4dChjYW52YXMpOworICB2YXIgZ2wgPSB3cmFwR0xD
b250ZXh0KHVud3JhcHBlZEdMKTsKKyAgcmV0dXJuIFtnbCwgdW53cmFwcGVkR0xdOworfQorCitU
ZXN0cy50ZXN0VW5pZm9ybWYgPSBmdW5jdGlvbihnbCwgdW53cmFwcGVkR0wpIHsKKyAgdmFyIHNo
ID0gbmV3IEZpbHRlcihnbCwgJ2Zvb2Jhci12ZXJ0JywgJ2Zvb2Jhci1mcmFnJyk7CisgIHNoLmFw
cGx5KGZ1bmN0aW9uKGYpeworICAgIHZhciBmbTQgPSBmLnVuaWZvcm0oJ2ZtNCcpOworICAgIHZh
ciBmbTIgPSBmLnVuaWZvcm0oJ2ZtMicpOworICAgIHZhciBmbTMgPSBmLnVuaWZvcm0oJ2ZtMycp
OworICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJiYWQgdHJhbnNwb3Nl
IDRmdiIsCisgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybU1hdHJpeDRmdihmbTQsIHRydWUs
IFsxLDAsMCwwLCAwLDIsMCwwLCAwLDAsMywwLCAwLDAsMCw0XSk7fSk7CisgICAgYXNzZXJ0R0xF
cnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgImJhZCB0cmFuc3Bvc2UgM2Z2IiwKKyAgICAgICAg
ZnVuY3Rpb24oKXtnbC51bmlmb3JtTWF0cml4M2Z2KGZtMywgdHJ1ZSwgWzEsMCwwLCAwLDIsMCwg
MCwwLDNdKTt9KTsKKyAgICBhc3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAiYmFk
IHRyYW5zcG9zZSAyZnYiLAorICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm1NYXRyaXgyZnYo
Zm0yLCB0cnVlLCBbMSwwLCAwLDJdKTt9KTsKKyAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwg
ImJhZCBsb2NhdGlvbiIsCisgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybU1hdHJpeDRmdig1
ODg5MzksIGZhbHNlLCBbMSwwLDAsMCwgMCwyLDAsMCwgMCwwLDMsMCwgMCwwLDAsNF0pO30pOwor
ICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAiYmFkIGxvY2F0aW9uIChuZWdhdGl2ZSkiLAor
ICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm1NYXRyaXg0ZnYoLTU4ODkzOSwgZmFsc2UsIFsx
LDAsMCwwLCAwLDIsMCwwLCAwLDAsMywwLCAwLDAsMCw0XSk7fSk7CisgICAgYXNzZXJ0R0xFcnJv
cihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIjE3IHZhbHVlcyB0byA0ZnYiLAorICAgICAgICBmdW5j
dGlvbigpe2dsLnVuaWZvcm1NYXRyaXg0ZnYoZm00LCBmYWxzZSwgWzAsMSwwLDAsMCwgMCwyLDAs
MCwgMCwwLDMsMCwgMCwwLDAsNF0pO30pOworICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFM
SURfVkFMVUUsICI1IHZhbHVlcyB0byAyZnYiLAorICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZv
cm1NYXRyaXgyZnYoZm0yLCBmYWxzZSwgWzAsMiwxLCAyLDJdKTt9KTsKKyAgICBhc3NlcnRHTEVy
cm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAiMTAgdmFsdWVzIHRvIDNmdiIsCisgICAgICAgIGZ1
bmN0aW9uKCl7Z2wudW5pZm9ybU1hdHJpeDNmdihmbTMsIGZhbHNlLCBbMCwyLDIsMiwgMiwyLDIs
IDIsMSwyXSk7fSk7CisgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInRv
byBmZXcgdmFsdWVzIHRvIDRmdiIsCisgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybU1hdHJp
eDRmdihmbTQsIGZhbHNlLCBbMCwwLDAsIDAsMiwwLDAsIDAsMCwzLDAsIDAsMCwwLDRdKTt9KTsK
KyAgICBhc3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAidG9vIGZldyB2YWx1ZXMg
dG8gMmZ2IiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC51bmlmb3JtTWF0cml4MmZ2KGZtMiwgZmFs
c2UsIFsxLCAyLDJdKTt9KTsKKyAgICBhc3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVF
LCAidG9vIGZldyB2YWx1ZXMgdG8gMmZ2IiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC51bmlmb3Jt
TWF0cml4MmZ2KGZtMiwgZmFsc2UsIFtdKTt9KTsKKyAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihn
bCwgInN0cmluZyBmb3IgZGF0YSIsCisgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybU1hdHJp
eDJmdihmbTIsIGZhbHNlLCAiZm00Iik7fSk7CisgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5W
QUxJRF9WQUxVRSwgInRvbyBmZXcgdmFsdWVzIHRvIDNmdiIsCisgICAgICAgIGZ1bmN0aW9uKCl7
Z2wudW5pZm9ybU1hdHJpeDNmdihmbTMsIGZhbHNlLCBbMiwyLCAyLDIsMiwgMiwxLDJdKTt9KTsK
KyAgICBnbC51bmlmb3JtTWF0cml4NGZ2KGZtNCwgZmFsc2UsIFsxLDAsMCwwLCAwLDIsMCwwLCAw
LDAsMywwLCAwLDAsMCw0XSk7CisgICAgZ2wudW5pZm9ybU1hdHJpeDJmdihmbTIsIGZhbHNlLCBb
MiwxLCAyLDJdKTsKKyAgICBnbC51bmlmb3JtTWF0cml4M2Z2KGZtMywgZmFsc2UsIFsyLDIsMiwg
MiwyLDIsIDIsMSwyXSk7CisgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sICIzZnYgb24gbWF0NCIsCisgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybU1hdHJpeDNm
dihmbTQsIGZhbHNlLCBbMSwwLDAsIDAsMiwwLCAwLDAsM10pO30pOworICAgIGFzc2VydEdMRXJy
b3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiM2Z2IG9uIG1hdDIiLAorICAgICAgICBmdW5j
dGlvbigpe2dsLnVuaWZvcm1NYXRyaXgzZnYoZm0yLCBmYWxzZSwgWzAsMiwxLCAwLDIsMiwgMCww
LDBdKTt9KTsKKyAgICBhc3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgIjJm
diBvbSBtYXQzIiwKKyAgICAgICAgZnVuY3Rpb24oKXtnbC51bmlmb3JtTWF0cml4MmZ2KGZtMywg
ZmFsc2UsIFsyLDIsIDIsMl0pO30pOworICAgIGZvciAodmFyIGlpID0gMjsgaWkgPD0gNDsgKytp
aSkgeworICAgICAgdmFyIGFsbCA9IFtdOworICAgICAgdmFyIG1hdHMgPSBbW10sW11dOworICAg
ICAgZm9yICh2YXIgamogPSAwOyBqaiA8IDI7ICsramopIHsKKyAgICAgICAgZm9yICh2YXIga2sg
PSAwOyBrayA8IGlpICogaWk7ICsra2spIHsKKyAgICAgICAgICBtYXRzW2pqXS5wdXNoKGpqICsg
MSk7CisgICAgICAgICAgYWxsLnB1c2goamogKyAxKTsKKyAgICAgICAgfQorICAgICAgfQorICAg
ICAgdmFyIGxvYzBOYW1lID0gJ2FtJyArIGlpICsgJ1swXSc7CisgICAgICB2YXIgbG9jMU5hbWUg
PSAnYW0nICsgaWkgKyAnWzFdJzsKKyAgICAgIHZhciBsb2MwID0gZi51bmlmb3JtKGxvYzBOYW1l
KTsKKyAgICAgIHZhciBsb2MxID0gZi51bmlmb3JtKGxvYzFOYW1lKTsKKyAgICAgIHZhciBmbmFt
ZSA9ICJ1bmlmb3JtTWF0cml4IiArIGlpICsgImZ2IjsKKyAgICAgIGFzc2VydChsb2MwTmFtZSwg
bG9jMCAhPSBudWxsKTsKKyAgICAgIGFzc2VydChsb2MxTmFtZSwgbG9jMSAhPSBudWxsKTsKKyAg
ICAgIGFzc2VydE9rKCJzZXQgYXJyYXkgb2YgMiBtYXRyaWNlcyAiICsgaWkgKyAiZnYiLAorICAg
ICAgICAgIGZ1bmN0aW9uKCl7Z2xbZm5hbWVdLmNhbGwoZ2wsbG9jMCwgZmFsc2UsIGFsbCk7fSk7
CisgICAgICB2YXIgYWN0dWFsID0gdW53cmFwcGVkR0wuZ2V0VW5pZm9ybShzaC5zaGFkZXIucHJv
Z3JhbSwgbG9jMCk7CisgICAgICBhc3NlcnQoImdvdCB2YWx1ZSBmb3IgbG9jMCIsCisgICAgICAg
ICAgICAgZ2wuTk9fRVJST1IgPT0gY2hlY2tFcnJvcihnbCwgImdldFVuaWZvcm0gbG9jMCIpKTsK
KyAgICAgIGFzc2VydEFycmF5RXF1YWxzKG1hdHNbMF0sIGFjdHVhbCk7CisgICAgICB2YXIgYWN0
dWFsID0gdW53cmFwcGVkR0wuZ2V0VW5pZm9ybShzaC5zaGFkZXIucHJvZ3JhbSwgbG9jMSk7Cisg
ICAgICBhc3NlcnQoImdvdCB2YWx1ZSBmb3IgbG9jMSIsCisgICAgICAgICAgICAgZ2wuTk9fRVJS
T1IgPT0gY2hlY2tFcnJvcihnbCwgImdldFVuaWZvcm0gbG9jMSIpKTsKKyAgICAgIGFzc2VydEFy
cmF5RXF1YWxzKG1hdHNbMV0sIGFjdHVhbCk7CisgICAgICBhc3NlcnRPaygic2V0IGFycmF5IG9m
IHNlY29uZCBhcnJheSBvZiAyIG1hdHJpeGVzIiwKKyAgICAgICAgICBmdW5jdGlvbigpe2dsW2Zu
YW1lXS5jYWxsKGdsLCBsb2MxLCBmYWxzZSwgbWF0c1swXSk7fSk7CisgICAgICB2YXIgYWN0dWFs
ID0gdW53cmFwcGVkR0wuZ2V0VW5pZm9ybShzaC5zaGFkZXIucHJvZ3JhbSwgbG9jMSk7CisgICAg
ICBhc3NlcnQoImdvdCB2YWx1ZSBmb3IgbG9jMSIsCisgICAgICAgICAgICAgZ2wuTk9fRVJST1Ig
PT0gY2hlY2tFcnJvcihnbCwgImdldFVuaWZvcm0gbG9jMSIpKTsKKyAgICAgIGFzc2VydEFycmF5
RXF1YWxzKG1hdHNbMF0sIGFjdHVhbCk7CisgICAgICB2YXIgYmlnID0gbWF0c1sxXS5jb25jYXQo
WzNdKTsKKyAgICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJzZXQgYXJy
YXkgb2YgZmlyc3QgYXJyYXkgb2YgMiBtYXRyaXhlcyBwbHVzIDEgdmFsdWUiLAorICAgICAgICAg
IGZ1bmN0aW9uKCl7Z2xbZm5hbWVdLmNhbGwoZ2wsIGxvYzAsIGZhbHNlLCBiaWcpO30pOworICAg
IH0KKyAgfSk7CisgIHZhciBkID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgIGdsLnJlYWRQaXhlbHMo
MCwwLDEsMSxnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBkKTsKKyAgYXNzZXJ0QXJyYXlFcXVh
bHMoWzEsMiwzLDhdLCBkKTsKKyAgc2guZGVzdHJveSgpOworfQorCitUZXN0cy5lbmRVbml0ID0g
ZnVuY3Rpb24oZ2wpIHsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmb29iYXItdmVydCIg
dHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzMgVmVydGV4OworYXR0cmli
dXRlIHZlYzIgVGV4OworCit1bmlmb3JtIG1hdDIgZm0yOwordW5pZm9ybSBtYXQzIGZtMzsKK3Vu
aWZvcm0gbWF0MiBhbTJbMl07Cit1bmlmb3JtIG1hdDMgYW0zWzJdOwordW5pZm9ybSBtYXQ0IGFt
NFsyXTsKKwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQgbWFpbigpCit7CisgICAgdGV4
Q29vcmQwID0gdmVjNChUZXgucywgMS4wLVRleC50LCBmbTJbMF1bMV0rZm0zWzJdWzFdLCAwLjAp
OworICAgIGZsb2F0IGQgPSBhbTJbMF1bMV1bMV0gKyBhbTNbMF1bMl1bMl0gKyBhbTRbMF1bM11b
M10gKworICAgICAgICAgICAgICBhbTJbMV1bMV1bMV0gKyBhbTNbMV1bMl1bMl0gKyBhbTRbMV1b
M11bM107CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wICsgZCAqIDAuMDAwMSk7
Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZvb2Jhci1mcmFnIiB0eXBlPSJ4LXNoYWRlci94
LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1bmlmb3JtIG1hdDQgZm00
OworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFn
Q29sb3IgPSB2ZWM0KGZtNFswXVswXS8yNTYuMCwgZm00WzFdWzFdLzI1Ni4wLCBmbTRbMl1bMl0v
MjU2LjAsIGZtNFszXVszXSp0ZXhDb29yZDAuei8yNTYuMCk7Cit9Cis8L3NjcmlwdD4KKzxzdHls
ZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKzxj
YW52YXMgaWQ9ImdsIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgorPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy91bmlmb3JtZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3ZmIxNDEyOWU2Mjg5ZTZiNDg5NDg5
NGJjZWFmN2NhNzk1MWIwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlm
b3JtZi5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisq
LworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4u
L3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNy
Yz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2
YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgewor
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9
IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICByZXR1cm4gW2dsXTsKK30K
KworVGVzdHMudGVzdFVuaWZvcm1mID0gZnVuY3Rpb24oZ2wpIHsKKyAgdmFyIHNoID0gbmV3IEZp
bHRlcihnbCwgJ2Zvb2Jhci12ZXJ0JywgJ2Zvb2Jhci1mcmFnJyk7CisgIHNoLmFwcGx5KGZ1bmN0
aW9uKGYpeworICAgIHZhciBmb28gPSBmLnVuaWZvcm0oJ2ZvbycpOworICAgIHZhciBiYXIgPSBm
LnVuaWZvcm0oJ2JhcicpOworICAgIGdsLnVuaWZvcm00ZnYoZm9vLCBbMSwyLDMsNF0pOworICAg
IGdsLnVuaWZvcm0xZnYoYmFyLCBbMl0pOworICB9KTsKKyAgdmFyIGQgPSBuZXcgVWludDhBcnJh
eSg0KTsKKyAgZ2wucmVhZFBpeGVscygwLDAsMSwxLGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGQpOworICBhc3NlcnRFcXVhbHMoWzEsMiwzLDhdLCBbZFswXSwgZFsxXSwgZFsyXSwgZFszXV0p
OworICBzaC5hcHBseShmdW5jdGlvbihmKXsKKyAgICB2YXIgZm9vID0gZi51bmlmb3JtKCdmb28n
KTsKKyAgICB2YXIgYmFyID0gZi51bmlmb3JtKCdiYXInKTsKKyAgICBnbC51bmlmb3JtNGYoZm9v
LCAyLDIsMyw0KTsKKyAgICBnbC51bmlmb3JtMWYoYmFyLCAzKTsKKyAgfSk7CisgIGdsLnJlYWRQ
aXhlbHMoMCwwLDEsMSxnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBkKTsKKyAgYXNzZXJ0RXF1
YWxzKFsyLDIsMywxMl0sIFtkWzBdLCBkWzFdLCBkWzJdLCBkWzNdXSk7CisgIHNoLmRlc3Ryb3ko
KTsKK30KKworVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Cit9CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0iZm9vYmFyLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJp
YnV0ZSB2ZWMzIFZlcnRleDsKK2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordW5pZm9ybSBmbG9hdCBi
YXI7CisKK3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQoreworICAgIHRleENv
b3JkMCA9IHZlYzQoVGV4LnMsIDEuMC1UZXgudCwgYmFyLCAwLjApOworICAgIGdsX1Bvc2l0aW9u
ID0gdmVjNChWZXJ0ZXgsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZvb2Jhci1m
cmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworCit1bmlmb3JtIHZlYzQgZm9vOworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBt
YWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGZvby5yLzI1NS4wLCBmb28uZy8yNTUu
MCwgZm9vLmIvMjU1LjAsIGZvby5hKnRleENvb3JkMC56LzI1NS4wKTsKK30KKzwvc2NyaXB0Pgor
PHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7IH08L3N0eWxlPgorPC9oZWFkPjxib2R5
PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Cis8L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWZBcnJheUxlbjEu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjE0NmJlNGM3MzEyY2Q2MzkzYmY0YmQyOTA4ZjhmY2FkMzU2ZjdiOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQXJyYXlMZW4xLmh0bWwKQEAgLTAsMCArMSwxMjEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQv
b3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwg
dG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwor
Kiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l
cmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29w
aWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0
aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh
bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNv
cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRI
RSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z
IEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisq
KiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O
IE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9U
SEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0
eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKwor
VGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250
ZXh0KGNhbnZhcykpOworICByZXR1cm4gW2dsXTsKK30KKworVGVzdHMudGVzdFVuaWZvcm1BcnJh
eSA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIHNoID0gbmV3IEZpbHRlcihnbCwgJ2Zvb2Jhci12
ZXJ0JywgJ2Zvb2Jhci1mcmFnJyk7CisgICAgc2guYXBwbHkoZnVuY3Rpb24oZil7CisgICAgICAg
IHZhciB1bmlWNCA9IGYudW5pZm9ybSgndW5pVjQnKTsKKyAgICAgICAgdmFyIHVuaUZsb2F0ID0g
Zi51bmlmb3JtKCd1bmlGbG9hdCcpOworICAgICAgICBhc3NlcnRPaygiMWZ2IG9uIDFmdiIsCisg
ICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm0xZnYodW5pRmxvYXQsIFsyXSk7fSk7Cisg
ICAgICAgIGFzc2VydE9rKCI1IHZhbHVlcyBvbiAxZnYiLAorICAgICAgICAgICAgZnVuY3Rpb24o
KXtnbC51bmlmb3JtMWZ2KHVuaUZsb2F0LCBbMiwzLDQsNSw2XSk7fSk7CisgICAgICAgIGFzc2Vy
dE9rKCI0ZnYgb24gNGZ2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTRmdih1
bmlWNCwgWzEsIDIsIDMsIDRdKTt9KTsKKyAgICAgICAgYXNzZXJ0T2soIjggdmFsdWVzIG9uIDRm
diIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm00ZnYodW5pVjQsIFsxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4XSk7fSk7CisKKyAgICB2YXIgdW5pZm9ybXNGb3VuZCA9IDA7CisgICAg
dmFyIG51bVVuaWZvcm1zID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihmLnNoYWRlci5wcm9ncmFt
LCBnbC5BQ1RJVkVfVU5JRk9STVMpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtVW5pZm9y
bXM7ICsraSkgeworICAgICAgICB2YXIgdW5pZm9ybU5hbWUgPSBnbC5nZXRBY3RpdmVVbmlmb3Jt
KGYuc2hhZGVyLnByb2dyYW0sIGkpLm5hbWU7CisgICAgICAgIGlmICh1bmlmb3JtTmFtZS5pbmRl
eE9mKCd1bmlWNCcpID09IDAgfHwgdW5pZm9ybU5hbWUuaW5kZXhPZigndW5pRmxvYXQnKSA9PSAw
KSB7CisgICAgICAgICAgICBhc3NlcnQoIlVuaWZvcm0gYXJyYXkgb2YgbGVuZ3RoIDEgZW5kcyB3
aXRoIFswXSIsIHVuaWZvcm1OYW1lLmluZGV4T2YoIlswXSIpICE9IC0xKTsKKyAgICAgICAgICAg
ICsrdW5pZm9ybXNGb3VuZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBhc3NlcnQoIkJvdGggdW5p
Zm9ybXMgZm91bmQiLCB1bmlmb3Jtc0ZvdW5kID09IDIpOworCisgICAgICAgIHVuaVY0ID0gZi51
bmlmb3JtKCd1bmlWNFswXScpOworICAgICAgICB1bmlGbG9hdCA9IGYudW5pZm9ybSgndW5pRmxv
YXRbMF0nKTsKKyAgICAgICAgYXNzZXJ0T2soIjFmdiBvbiAxZnYiLAorICAgICAgICAgICAgZnVu
Y3Rpb24oKXtnbC51bmlmb3JtMWZ2KHVuaUZsb2F0LCBbMl0pO30pOworICAgICAgICBhc3NlcnRP
aygiNSB2YWx1ZXMgb24gMWZ2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTFm
dih1bmlGbG9hdCwgWzIsMyw0LDUsNl0pO30pOworICAgICAgICBhc3NlcnRPaygiNGZ2IG9uIDRm
diIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm00ZnYodW5pVjQsIFsxLCAyLCAz
LCA0XSk7fSk7CisgICAgICAgIGFzc2VydE9rKCI4IHZhbHVlcyBvbiA0ZnYiLAorICAgICAgICAg
ICAgZnVuY3Rpb24oKXtnbC51bmlmb3JtNGZ2KHVuaVY0LCBbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0pO30pOworCisgICAgfSk7CisgICAgdmFyIGQgPSBuZXcgVWludDhBcnJheSg0KTsKKyAgICBn
bC5yZWFkUGl4ZWxzKDAsMCwxLDEsZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgZCk7CisgICAg
YXNzZXJ0QXJyYXlFcXVhbHMoWzEsMiwzLDhdLCBkKTsKKyAgICBzaC5kZXN0cm95KCk7CisgICAg
dGhyb3dFcnJvcihnbCk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCkgeworfQor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZvb2Jhci12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZl
cnRleCI+CithdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CithdHRyaWJ1dGUgdmVjMiBUZXg7CisKK3Vu
aWZvcm0gZmxvYXQgdW5pRmxvYXRbMV07CisKK3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lk
IG1haW4oKQoreworICAgIHRleENvb3JkMCA9IHZlYzQoVGV4LnMsIDEuMC1UZXgudCwgdW5pRmxv
YXRbMF0sIDAuMCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwv
c2NyaXB0PgorPHNjcmlwdCBpZD0iZm9vYmFyLWZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21l
bnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKK3VuaWZvcm0gdmVjNCB1bmlWNFsxXTsK
KwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0Nv
bG9yID0gdmVjNCgKKyAgICAgICAgdW5pVjRbMF0uci8yNTUuMCwKKyAgICAgICAgdW5pVjRbMF0u
Zy8yNTUuMCwKKyAgICAgICAgdW5pVjRbMF0uYi8yNTUuMCwKKyAgICAgICAgdW5pVjRbMF0uYSp0
ZXhDb29yZDAuei8yNTUuMCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT5jYW52YXN7IHBvc2l0aW9u
OmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKzxjYW52YXMgaWQ9ImdsIiB3aWR0
aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3VuaWZvcm1mQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5p
Zm9ybWZCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdiNmRiZTAzZGYxMWMyZWRmOGViOTYxYTRl
NDE0ZmJjNjYwYjY3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1m
QmFkQXJncy5odG1sCkBAIC0wLDAgKzEsMTI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisq
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
KyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisq
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgorKi8KKworLS0+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSIuLi91bml0LmNzcyIgLz4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0
IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgp
IHsKKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICB2YXIg
Z2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4dChjYW52YXMpKTsKKyAgcmV0dXJuIFtnbF07
Cit9CisKK1Rlc3RzLnRlc3RVbmlmb3JtZiA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIHNoID0g
bmV3IEZpbHRlcihnbCwgJ2Zvb2Jhci12ZXJ0JywgJ2Zvb2Jhci1mcmFnJyk7CisgICAgc2guYXBw
bHkoZnVuY3Rpb24oZil7CisgICAgICAgIHZhciB1bmlWNCA9IGYudW5pZm9ybSgndW5pVjQnKTsK
KyAgICAgICAgdmFyIHVuaUZsb2F0ID0gZi51bmlmb3JtKCd1bmlGbG9hdCcpOworICAgICAgICBh
c3NlcnRUaHJvd05vR0xFcnJvcihnbCwgIm51bWJlciBmb3IgbG9jYXRpb24iLAorICAgICAgICAg
ICAgZnVuY3Rpb24oKXtnbC51bmlmb3JtNGZ2KDU4ODgyOTI5LCBbMSwyLDMsNF0pO30pOworICAg
ICAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgIm5lZ2F0aXZlIG51bWJlciBmb3IgbG9jYXRp
b24iLAorICAgICAgICAgICAgZnVuY3Rpb24oKXtnbC51bmlmb3JtNGZ2KC01ODg4MjkyOSwgWzEs
MiwzLDRdKTt9KTsKKyAgICAgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sICIxZnYgb24gNGZ2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTFmdih1
bmlWNCwgWzEsMiwzLDRdKTt9KTsKKyAgICAgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJ
RF9PUEVSQVRJT04sICJtb3JlIHRoYW4gZW5vdWdoIHZhbHVlcyAxZnYiLAorICAgICAgICAgICAg
ZnVuY3Rpb24oKXtnbC51bmlmb3JtMWZ2KHVuaUZsb2F0LCBbMiwzLDQsNSw2XSk7fSk7CisgICAg
ICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiNGZ2IG9uIGZsb2F0
IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTRmdih1bmlGbG9hdCwgWzIsMyw0
LDVdKTt9KTsKKyAgICAgICAgYXNzZXJ0T2soIjRmdiBvbiA0ZnYiLAorICAgICAgICAgICAgZnVu
Y3Rpb24oKXtnbC51bmlmb3JtNGZ2KHVuaVY0LCBbMSwgMiwgMywgNF0pO30pOworICAgICAgICBh
c3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAiNSB2YWx1ZXMgb24gNGZ2IiwKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTRmdih1bmlWNCwgWzEsIDIsIDMsIDQsIDVd
KTt9KTsKKyAgICAgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICI4
IHZhbHVlcyBvbiA0ZnYiLAorICAgICAgICAgICAgZnVuY3Rpb24oKXtnbC51bmlmb3JtNGZ2KHVu
aVY0LCBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0pO30pOworICAgICAgICBhc3NlcnRHTEVycm9y
KGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgIjNmdiBvbiBmbG9hdCIsCisgICAgICAgICAgICBm
dW5jdGlvbigpe2dsLnVuaWZvcm0zZnYodW5pRmxvYXQsIFsyLDMsNF0pO30pOworICAgICAgICBh
c3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgIjJmdiBvbiBmbG9hdCIsCisg
ICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm0yZnYodW5pRmxvYXQsIFsyLDNdKTt9KTsK
KyAgICAgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICIzZnYgb24g
NGZ2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTNmdih1bmlWNCwgWzQsNSw2
XSk7fSk7CisgICAgICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAi
MmZ2IG9uIDRmdiIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm0yZnYodW5pVjQs
IFs1LDZdKTt9KTsKKyAgICAgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sICIxZnYgb24gNGZ2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTFmdih1
bmlWNCwgWzZdKTt9KTsKKyAgICAgICAgYXNzZXJ0T2soIjFmdiBvbiAxZnYiLAorICAgICAgICAg
ICAgZnVuY3Rpb24oKXtnbC51bmlmb3JtMWZ2KHVuaUZsb2F0LCBbMl0pO30pOworICAgICAgICBh
c3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAibm90IGVub3VnaCB2YWx1ZXMgb24g
MWZ2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTFmdih1bmlGbG9hdCwgW10p
O30pOworICAgICAgICBhc3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAibm90IGVu
b3VnaCB2YWx1ZXMgb24gNGZ2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTRm
dih1bmlWNCwgWzMsMyw0XSk7fSk7CisgICAgICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFM
SURfT1BFUkFUSU9OLCAiNGl2IG9uIDRmdiIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVu
aWZvcm00aXYodW5pVjQsIFsxLCAyLCAzLCA0XSk7fSk7CisgICAgICAgIGFzc2VydEdMRXJyb3Io
Z2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiMWl2IG9uIDFmdiIsCisgICAgICAgICAgICBmdW5j
dGlvbigpe2dsLnVuaWZvcm0xaXYodW5pRmxvYXQsIFsyXSk7fSk7CisgICAgfSk7CisgICAgdmFy
IGQgPSBuZXcgVWludDhBcnJheSg0KTsKKyAgICBnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgZCk7CisgICAgYXNzZXJ0QXJyYXlFcXVhbHMoWzEsMiwzLDhd
LCBkKTsKKyAgICBzaC5kZXN0cm95KCk7CisgICAgdGhyb3dFcnJvcihnbCk7Cit9CisKK1Rlc3Rz
LmVuZFVuaXQgPSBmdW5jdGlvbihnbCkgeworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZv
b2Jhci12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBWZXJ0
ZXg7CithdHRyaWJ1dGUgdmVjMiBUZXg7CisKK3VuaWZvcm0gZmxvYXQgdW5pRmxvYXQ7CisKK3Zh
cnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQoreworICAgIHRleENvb3JkMCA9IHZl
YzQoVGV4LnMsIDEuMC1UZXgudCwgdW5pRmxvYXQsIDAuMCk7CisgICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZm9vYmFyLWZyYWci
IHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisK
K3VuaWZvcm0gdmVjNCB1bmlWNDsKKwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQgbWFp
bigpCit7CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgKKyAgICAgICAgdW5pVjQuci8yNTUuMCwK
KyAgICAgICAgdW5pVjQuZy8yNTUuMCwKKyAgICAgICAgdW5pVjQuYi8yNTUuMCwKKyAgICAgICAg
dW5pVjQuYSp0ZXhDb29yZDAuei8yNTUuMCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT5jYW52YXN7
IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKzxjYW52YXMgaWQ9
ImdsIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgorPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1pLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91
bmlmb3JtaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3NjU2Mzk5YWI2NjZmYmJhMjU3Y2MwZTU2MWRhYThl
MGJmMTgzNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtaS5odG1s
CkBAIC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhp
cyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoq
ICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl
Y3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl
ZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJp
YWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoq
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ
TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBP
UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3Nz
IiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5p
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIg
c3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1q
YXZhc2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9IHdyYXBHTENv
bnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICByZXR1cm4gW2dsXTsKK30KKworVGVzdHMu
dGVzdFVuaWZvcm1mID0gZnVuY3Rpb24oZ2wpIHsKKyAgdmFyIHNoID0gbmV3IEZpbHRlcihnbCwg
J2Zvb2Jhci12ZXJ0JywgJ2Zvb2Jhci1mcmFnJyk7CisgIHNoLmFwcGx5KGZ1bmN0aW9uKGYpewor
ICAgIHZhciBmb28gPSBmLnVuaWZvcm0oJ2ZvbycpOworICAgIHZhciBiYXIgPSBmLnVuaWZvcm0o
J2JhcicpOworICAgIGdsLnVuaWZvcm00aXYoZm9vLCBbMSwyLDMsNF0pOworICAgIGdsLnVuaWZv
cm0xaXYoYmFyLCBbMl0pOworICB9KTsKKyAgdmFyIGQgPSBuZXcgVWludDhBcnJheSg0KTsKKyAg
Z2wucmVhZFBpeGVscygwLDAsMSwxLGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGQpOworICBh
c3NlcnRFcXVhbHMoWzEsMiwzLDhdLCBbZFswXSwgZFsxXSwgZFsyXSwgZFszXV0pOworICBzaC5h
cHBseShmdW5jdGlvbihmKXsKKyAgICB2YXIgZm9vID0gZi51bmlmb3JtKCdmb28nKTsKKyAgICB2
YXIgYmFyID0gZi51bmlmb3JtKCdiYXInKTsKKyAgICBnbC51bmlmb3JtNGkoZm9vLCAyLDIsMyw0
KTsKKyAgICBnbC51bmlmb3JtMWkoYmFyLCAzKTsKKyAgfSk7CisgIGdsLnJlYWRQaXhlbHMoMCww
LDEsMSxnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBkKTsKKyAgYXNzZXJ0RXF1YWxzKFsyLDIs
MywxMl0sIFtkWzBdLCBkWzFdLCBkWzJdLCBkWzNdXSk7CisgIHNoLmRlc3Ryb3koKTsKK30KKwor
VGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBp
ZD0iZm9vYmFyLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMz
IFZlcnRleDsKK2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordW5pZm9ybSBpbnQgYmFyOworCit2YXJ5
aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWluKCkKK3sKKyAgICB0ZXhDb29yZDAgPSB2ZWM0
KFRleC5zLCAxLjAtVGV4LnQsIGZsb2F0KGJhciksIDAuMCk7CisgICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZm9vYmFyLWZyYWci
IHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisK
K3VuaWZvcm0gaXZlYzQgZm9vOworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWlu
KCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGZsb2F0KGZvby5yKS8yNTYuMCwgZmxvYXQo
Zm9vLmcpLzI1Ni4wLCBmbG9hdChmb28uYikvMjU2LjAsIGZsb2F0KGZvby5hKSp0ZXhDb29yZDAu
ei8yNTYuMCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRl
OyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKzxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMTYiIGhl
aWdodD0iMTYiPjwvY2FudmFzPgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3VuaWZvcm1pQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybWlCYWRB
cmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJmYzRlNDdlZjllODJmNzAyM2YxYTA4Mjk3MjlhNzk3ZjQ2
OGJiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1pQmFkQXJncy5o
dG1sCkBAIC0wLDAgKzEsMTIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl
CisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1p
dCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBz
dWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j
bHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1h
dGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJ
TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJ
VFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu
CisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBC
RSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklB
TFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKwor
LS0+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0
LmNzcyIgLz4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4u
L3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3Jp
cHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L3gtamF2YXNjcmlwdCI+CisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKKyAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICB2YXIgZ2wgPSB3cmFw
R0xDb250ZXh0KGdldEdMQ29udGV4dChjYW52YXMpKTsKKyAgcmV0dXJuIFtnbF07Cit9CisKK1Rl
c3RzLnRlc3RVbmlmb3JtZiA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIHNoID0gbmV3IEZpbHRl
cihnbCwgJ2Zvb2Jhci12ZXJ0JywgJ2Zvb2Jhci1mcmFnJyk7CisgICAgc2guYXBwbHkoZnVuY3Rp
b24oZil7CisgICAgICAgIHZhciB1bmlJVjQgPSBmLnVuaWZvcm0oJ3VuaUlWNCcpOworICAgICAg
ICB2YXIgdW5pSW50ID0gZi51bmlmb3JtKCd1bmlJbnQnKTsKKyAgICAgICAgYXNzZXJ0VGhyb3dO
b0dMRXJyb3IoZ2wsICJudW1iZXIgYXMgbG9jYXRpb24iLAorICAgICAgICAgICAgZnVuY3Rpb24o
KXtnbC51bmlmb3JtNGl2KDU4ODgyOTI5LCBbMSwyLDMsNF0pO30pOworICAgICAgICBhc3NlcnRU
aHJvd05vR0xFcnJvcihnbCwgIm5lZ2F0aXZlIG51bWJlciBhcyBsb2NhdGlvbiIsCisgICAgICAg
ICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm00aXYoLTU4ODgyOTI5LCBbMSwyLDMsNF0pO30pOwor
ICAgICAgICBhc3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgIm1vcmUgdGhh
biAxIHZhbHVlIHRvIDFpdiIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm0xaXYo
dW5pSW50LCBbMiwzLDQsNSw2XSk7fSk7CisgICAgICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklO
VkFMSURfT1BFUkFUSU9OLCAiNGl2IG9uIGludCIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2ds
LnVuaWZvcm00aXYodW5pSW50LCBbMiwzLDQsNV0pO30pOworICAgICAgICBhc3NlcnRPaygiNGl2
IG9uIDRpdiIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm00aXYodW5pSVY0LCBb
MSwgMiwgMywgNF0pO30pOworICAgICAgICBhc3NlcnRHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZB
TFVFLCAiNSB2YWx1ZXMgb24gNGl2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9y
bTRpdih1bmlJVjQsIFsxLCAyLCAzLCA0LCA1XSk7fSk7CisgICAgICAgIGFzc2VydEdMRXJyb3Io
Z2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiOCB2YWx1ZXMgb24gNGl2IiwKKyAgICAgICAgICAg
IGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTRpdih1bmlJVjQsIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
XSk7fSk7CisgICAgICAgIGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAi
M2l2IG9uIGludCIsCisgICAgICAgICAgICBmdW5jdGlvbigpe2dsLnVuaWZvcm0zaXYodW5pSW50
LCBbMiwzLDRdKTt9KTsKKyAgICAgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04sICIyaXYgb24gaW50IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTJp
dih1bmlJbnQsIFsyLDNdKTt9KTsKKyAgICAgICAgYXNzZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJ
RF9PUEVSQVRJT04sICIzaXYgb24gNGl2IiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5p
Zm9ybTNpdih1bmlJVjQsIFs0LDUsNl0pO30pOworICAgICAgICBhc3NlcnRHTEVycm9yKGdsLCBn
bC5JTlZBTElEX09QRVJBVElPTiwgIjJpdiBvbiA0aXYiLAorICAgICAgICAgICAgZnVuY3Rpb24o
KXtnbC51bmlmb3JtMml2KHVuaUlWNCwgWzUsNl0pO30pOworICAgICAgICBhc3NlcnRHTEVycm9y
KGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgIjFpdiBvbiA0aXYiLAorICAgICAgICAgICAgZnVu
Y3Rpb24oKXtnbC51bmlmb3JtMWl2KHVuaUlWNCwgWzZdKTt9KTsKKyAgICAgICAgYXNzZXJ0R0xF
cnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5vdCBlbm91Z2ggdmFsdWVzIiwKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTFpdih1bmlJbnQsIFtdKTt9KTsKKyAgICAgICAgYXNz
ZXJ0R0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICIxZnYgb24gaW50IiwKKyAgICAg
ICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTFmdih1bmlJbnQsIFsyXSk7fSk7CisgICAgICAg
IGFzc2VydEdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiNGZ2IG9uIGl2ZWM0IiwK
KyAgICAgICAgICAgIGZ1bmN0aW9uKCl7Z2wudW5pZm9ybTRmdih1bmlJVjQsIFsyLDMsNCw1XSk7
fSk7CisgICAgICAgIGdsLnVuaWZvcm0xaXYodW5pSW50LCBbMl0pOworICAgICAgICBnbC51bmlm
b3JtNGl2KHVuaUlWNCwgWzEsIDIsIDMsIDRdKTsKKyAgICB9KTsKKyAgICB2YXIgZCA9IG5ldyBV
aW50OEFycmF5KDQpOworICAgIGdsLnJlYWRQaXhlbHMoMCwwLDEsMSxnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBkKTsKKyAgICBhc3NlcnRBcnJheUVxdWFscyhbMSwyLDMsOF0sIGQpOworICAg
IHNoLmRlc3Ryb3koKTsKKyAgICB0aHJvd0Vycm9yKGdsKTsKK30KKworVGVzdHMuZW5kVW5pdCA9
IGZ1bmN0aW9uKGdsKSB7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZm9vYmFyLXZlcnQi
IHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKK2F0dHJp
YnV0ZSB2ZWMyIFRleDsKKwordW5pZm9ybSBpbnQgdW5pSW50OworCit2YXJ5aW5nIHZlYzQgdGV4
Q29vcmQwOwordm9pZCBtYWluKCkKK3sKKyAgICB0ZXhDb29yZDAgPSB2ZWM0KFRleC5zLCAxLjAt
VGV4LnQsIGZsb2F0KHVuaUludCksIDAuMCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRl
eCwgMS4wKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZm9vYmFyLWZyYWciIHR5cGU9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKK3VuaWZvcm0g
aXZlYzQgdW5pSVY0OworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWluKCkKK3sK
KyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KAorICAgICAgICBmbG9hdCh1bmlJVjQueCkvMjU2LjAs
CisgICAgICAgIGZsb2F0KHVuaUlWNC55KS8yNTYuMCwKKyAgICAgICAgZmxvYXQodW5pSVY0Lnop
LzI1Ni4wLAorICAgICAgICBmbG9hdCh1bmlJVjQuYSkqdGV4Q29vcmQwLnovMjU2LjApOworfQor
PC9zY3JpcHQ+Cis8c3R5bGU+Y2FudmFzeyBwb3NpdGlvbjphYnNvbHV0ZTsgfTwvc3R5bGU+Cis8
L2hlYWQ+PGJvZHk+Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2Nh
bnZhcz4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhB
dHRyaWIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZiYTAyMWEzNzQ3OWJjOTQyNjZjMDIxZDk5NDhhNjUzOGYxNmM3NmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWIuaHRtbApAQCAtMCwwICsxLDE0MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
KyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBk
ZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3
aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg
b2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBN
YXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1B
VEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCit2YXIg
dmVydHMgPSBbMC4wLCAwLjAsIDAuMCwgICAxLjAsIDAuMCwgMC4wLCAgIDAuMCwgMS4wLCAwLjBd
OwordmFyIG5vcm1hbHMgPSBbMC4wLCAwLjAsIDEuMCwgICAwLjAsIDAuMCwgMS4wLCAgIDAuMCwg
MC4wLCAxLjBdOwordmFyIHRleGNvb3JkcyA9IFswLjAsMC4wLCAgMS4wLDAuMCwgIDAuMCwxLjBd
OworCitUZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7CisgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRH
TENvbnRleHQoY2FudmFzKSk7CisgIHZhciBwcm9nID0gbmV3IFNoYWRlcihnbCwgJ3ZlcnQnLCAn
ZnJhZycpOworICBwcm9nLnVzZSgpOworICB2YXIgc2ggPSBwcm9nLnNoYWRlci5wcm9ncmFtOwor
Ly8gICBsb2coZ2wuZ2V0U2hhZGVySW5mb0xvZyhwcm9nLnNoYWRlcnNbMV0pKTsKKyAgdmFyIHYg
PSBnbC5nZXRBdHRyaWJMb2NhdGlvbihzaCwgJ1ZlcnRleCcpOworICB2YXIgbiA9IGdsLmdldEF0
dHJpYkxvY2F0aW9uKHNoLCAnTm9ybWFsJyk7CisgIHZhciB0ID0gZ2wuZ2V0QXR0cmliTG9jYXRp
b24oc2gsICdUZXgnKTsKKyAgcmV0dXJuIFtnbCxwcm9nLHYsbix0XTsKK30KKworVGVzdHMuc2V0
dXAgPSBmdW5jdGlvbihnbCwgcHJvZywgdixuLHQpIHsKKyAgYXNzZXJ0KDAgPT0gZ2wuZ2V0RXJy
b3IoKSk7CisgIHJldHVybiBbZ2wsIHByb2csIHYsbix0XTsKK30KK1Rlc3RzLnRlYXJkb3duID0g
ZnVuY3Rpb24oZ2wsIHByb2csIHYsbix0KSB7CisgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJh
eSh2KTsKKyAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG4pOworICBnbC5kaXNhYmxlVmVy
dGV4QXR0cmliQXJyYXkodCk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCwgcHJv
ZywgdixuLHQpIHsKKyAgcHJvZy5kZXN0cm95KCk7Cit9CisKK1Rlc3RzLnRlc3RWZXJ0ZXhBdHRy
aWIgPSBmdW5jdGlvbihnbCwgcHJvZywgdixuLHQpIHsKKyAgdmFyIHZibyA9IGdsLmNyZWF0ZUJ1
ZmZlcigpOworICB2YXIgdmVydHNBcnIgPSBuZXcgRmxvYXQzMkFycmF5KHZlcnRzKTsKKyAgZ2wu
YmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZibyk7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJS
QVlfQlVGRkVSLCB2ZXJ0c0FyciwgZ2wuU1RBVElDX0RSQVcpOworICBnbC5lbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSh2KTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcih2LCAzLCBnbC5GTE9BVCwg
ZmFsc2UsIDAsIDApOworICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLmRyYXdBcnJheXMoZ2wuVFJJ
QU5HTEVTLCAwLCAzKTt9KTsKKyAgZ2wudmVydGV4QXR0cmliMWZ2KHYsIFsxXSk7CisgIGdsLnZl
cnRleEF0dHJpYjJmdih2LCBbMSwyXSk7CisgIGdsLnZlcnRleEF0dHJpYjNmdih2LCBbMSwyLDNd
KTsKKyAgZ2wudmVydGV4QXR0cmliNGZ2KHYsIFsxLDIsMyw0XSk7CisgIGdsLnZlcnRleEF0dHJp
YjFmKHYsIDEpOworICBnbC52ZXJ0ZXhBdHRyaWIyZih2LCAxLDIpOworICBnbC52ZXJ0ZXhBdHRy
aWIzZih2LCAxLDIsMyk7CisgIGdsLnZlcnRleEF0dHJpYjRmKHYsIDEsMiwzLDQpOworICBhc3Nl
cnRPayhmdW5jdGlvbigpe2dsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTt9KTsKKyAg
dGhyb3dFcnJvcihnbCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBudWxsKTsK
KyAgZ2wuZGVsZXRlQnVmZmVyKHZibyk7CisgIHRocm93RXJyb3IoZ2wpOworfQorVGVzdHMudGVz
dFZlcnRleEF0dHJpYlZCTyA9IGZ1bmN0aW9uKGdsLCBwcm9nLCB2LG4sdCkgeworICB2YXIgdmJv
ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIHZhciB2ZXJ0c0FyciA9IG5ldyBGbG9hdDMyQXJyYXko
dmVydHMpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsKKyAgZ2wuYnVm
ZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHZlcnRzQXJyLCBnbC5TVEFUSUNfRFJBVyk7CisgIGds
LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHYpOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHYs
IDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgIGdsLnZlcnRleEF0dHJpYjFmdih2LCBbMV0p
OworICBnbC52ZXJ0ZXhBdHRyaWIyZnYodiwgWzEsMl0pOworICBnbC52ZXJ0ZXhBdHRyaWIzZnYo
diwgWzEsMiwzXSk7CisgIGdsLnZlcnRleEF0dHJpYjRmdih2LCBbMSwyLDMsNF0pOworICBnbC52
ZXJ0ZXhBdHRyaWIxZih2LCAxKTsKKyAgZ2wudmVydGV4QXR0cmliMmYodiwgMSwyKTsKKyAgZ2wu
dmVydGV4QXR0cmliM2YodiwgMSwyLDMpOworICBnbC52ZXJ0ZXhBdHRyaWI0Zih2LCAxLDIsMyw0
KTsKKyAgYXNzZXJ0T2soZnVuY3Rpb24oKXtnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHYsIDMsIGds
LkZMT0FULCBmYWxzZSwgMCwgMCk7fSk7CisgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Z2wuZHJhd0Fy
cmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpO30pOworICBnbC52ZXJ0ZXhBdHRyaWI0ZnYodiwgWzEs
MiwzLDRdKTsKKyAgYXNzZXJ0T2soZnVuY3Rpb24oKXtnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xF
UywgMCwgMyk7fSk7CisgIHRocm93RXJyb3IoZ2wpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZ
X0JVRkZFUiwgbnVsbCk7CisgIGdsLmRlbGV0ZUJ1ZmZlcih2Ym8pOworICB0aHJvd0Vycm9yKGds
KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZl
cnRleCI+CisgIGF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKKyAgYXR0cmlidXRlIHZlYzMgTm9ybWFs
OworICBhdHRyaWJ1dGUgdmVjMiBUZXg7CisKKyAgdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKKyAg
dm9pZCBtYWluKCkKKyAgeworICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXggKiBOb3JtYWws
IDEuMCk7CisgICAgdGV4Q29vcmQwID0gdmVjNChUZXgsMC4wLDAuMCkgKyBnbF9Qb3NpdGlvbjsK
KyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdt
ZW50Ij4KKyAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgdmFyeWluZyB2ZWM0IHRleENv
b3JkMDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIHZlYzQgYyA9IHRleENvb3JkMDsKKyAgICBn
bF9GcmFnQ29sb3IgPSBjOworICB9Cis8L3NjcmlwdD4KKworCis8c3R5bGU+Y2FudmFzeyBwb3Np
dGlvbjphYnNvbHV0ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+CisgIDxjYW52YXMgaWQ9Imds
IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48L2NhbnZhcz4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy92ZXJ0ZXhBdHRyaWJCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZiMzY2ZjAyOTM0N2I4
MzQ0YTMxYThmMzc3MzI5NzVhZTkwNWViOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3ZlcnRleEF0dHJpYkJhZEFyZ3MuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQorCisv
KgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
CisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
CisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0
aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCit2YXIgdmVydHMgPSBb
MC4wLCAwLjAsIDAuMCwgICAxLjAsIDAuMCwgMC4wLCAgIDAuMCwgMS4wLCAwLjBdOwordmFyIG5v
cm1hbHMgPSBbMC4wLCAwLjAsIDEuMCwgICAwLjAsIDAuMCwgMS4wLCAgIDAuMCwgMC4wLCAxLjBd
OwordmFyIHRleGNvb3JkcyA9IFswLjAsMC4wLCAgMS4wLDAuMCwgIDAuMCwxLjBdOworCitUZXN0
cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQo
Y2FudmFzKSk7CisgIHZhciBwcm9nID0gbmV3IFNoYWRlcihnbCwgJ3ZlcnQnLCAnZnJhZycpOwor
ICBwcm9nLnVzZSgpOworICB2YXIgc2ggPSBwcm9nLnNoYWRlci5wcm9ncmFtOworLy8gICBsb2co
Z2wuZ2V0U2hhZGVySW5mb0xvZyhwcm9nLnNoYWRlcnNbMV0pKTsKKyAgdmFyIHYgPSBnbC5nZXRB
dHRyaWJMb2NhdGlvbihzaCwgJ1ZlcnRleCcpOworICB2YXIgbiA9IGdsLmdldEF0dHJpYkxvY2F0
aW9uKHNoLCAnTm9ybWFsJyk7CisgIHZhciB0ID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24oc2gsICdU
ZXgnKTsKKyAgcmV0dXJuIFtnbCxwcm9nLHYsbix0XTsKK30KKworVGVzdHMuc2V0dXAgPSBmdW5j
dGlvbihnbCwgcHJvZywgdixuLHQpIHsKKyAgYXNzZXJ0KDAgPT0gZ2wuZ2V0RXJyb3IoKSk7Cisg
IHJldHVybiBbZ2wsIHByb2csIHYsbix0XTsKK30KK1Rlc3RzLnRlYXJkb3duID0gZnVuY3Rpb24o
Z2wsIHByb2csIHYsbix0KSB7CisgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSh2KTsKKyAg
Z2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG4pOworICBnbC5kaXNhYmxlVmVydGV4QXR0cmli
QXJyYXkodCk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCwgcHJvZywgdixuLHQp
IHsKKyAgcHJvZy5kZXN0cm95KCk7Cit9CisKKworVGVzdHMudGVzdFZlcnRleEF0dHJpYiA9IGZ1
bmN0aW9uKGdsLCBwcm9nLCB2LG4sdCkgeworICB2YXIgdmJvID0gZ2wuY3JlYXRlQnVmZmVyKCk7
CisgIHZhciB2ZXJ0c0FyciA9IG5ldyBGbG9hdDMyQXJyYXkodmVydHMpOworICBnbC5iaW5kQnVm
ZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsKKyAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIHZlcnRzQXJyLCBnbC5TVEFUSUNfRFJBVyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KHYpOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHYsIDMsIGdsLkZMT0FULCBmYWxzZSwg
MCwgMCk7CisgIGFzc2VydEZhaWwoImJhZCBpbmRleCIsCisgICAgICBmdW5jdGlvbigpe2dsLnZl
cnRleEF0dHJpYjFmKC0xLCAxKTt9KTsKKyAgYXNzZXJ0RmFpbCgiYmFkIGluZGV4IChiaWcgbmVn
YXRpdmUpIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudmVydGV4QXR0cmliMWYoLTY5MDkyMzQyLCAx
KTt9KTsKKyAgYXNzZXJ0RmFpbCgiYmFkIGluZGV4IChiaWcgcG9zaXRpdmUpIiwKKyAgICAgIGZ1
bmN0aW9uKCl7Z2wudmVydGV4QXR0cmliMWYoNTg5Mjg5MzgsIDEpO30pOworICBhc3NlcnRPaygi
YXJyYXkgdG9vIGxhcmdlIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudmVydGV4QXR0cmliMWZ2KHYs
IFsxLDIsMyw0LDVdKTt9KTsKKyAgYXNzZXJ0RmFpbCgiYXJyYXkgdG9vIHNtYWxsIiwKKyAgICAg
IGZ1bmN0aW9uKCl7Z2wudmVydGV4QXR0cmliMWZ2KHYsIFtdKTt9KTsKKyAgYXNzZXJ0T2soImRy
YXciLAorICAgICAgZnVuY3Rpb24oKXtnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMyk7
fSk7CisgIHRocm93RXJyb3IoZ2wpOworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZlcnQi
IHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgYXR0cmlidXRlIHZlYzMgVmVydGV4OworICBh
dHRyaWJ1dGUgdmVjMyBOb3JtYWw7CisgIGF0dHJpYnV0ZSB2ZWMyIFRleDsKKworICB2YXJ5aW5n
IHZlYzQgdGV4Q29vcmQwOworICB2b2lkIG1haW4oKQorICB7CisgICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KFZlcnRleCAqIE5vcm1hbCwgMS4wKTsKKyAgICB0ZXhDb29yZDAgPSB2ZWM0KFRleCwwLjAs
MC4wKSArIGdsX1Bvc2l0aW9uOworICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZyYWciIHR5
cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKwor
ICB2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOworICB2b2lkIG1haW4oKQorICB7CisgICAgdmVjNCBj
ID0gdGV4Q29vcmQwOworICAgIGdsX0ZyYWdDb2xvciA9IGM7CisgIH0KKzwvc2NyaXB0PgorCisK
KzxzdHlsZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9k
eT4KKyAgPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwvY2FudmFzPgorPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50
ZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3ZlcnRleEF0dHJpYlBvaW50ZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNTNhMDJjYjAwZDdiYjRmN2ZhNWE3MTk0NDk0NzlmY2RiZGI4OTlmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlci5odG1sCkBAIC0wLDAg
KzEsMTA2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisq
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoq
CisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4v
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlw
dCI+CisKK3ZhciB2ZXJ0cyA9IFswLjAsIDAuMCwgMC4wLCAgIDEuMCwgMC4wLCAwLjAsICAgMC4w
LCAxLjAsIDAuMF07Cit2YXIgbm9ybWFscyA9IFswLjAsIDAuMCwgMS4wLCAgIDAuMCwgMC4wLCAx
LjAsICAgMC4wLCAwLjAsIDEuMF07Cit2YXIgdGV4Y29vcmRzID0gWzAuMCwwLjAsICAxLjAsMC4w
LCAgMC4wLDEuMF07CisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKKyAgdmFyIGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICB2YXIgZ2wgPSB3cmFwR0xD
b250ZXh0KGdldEdMQ29udGV4dChjYW52YXMpKTsKKyAgdmFyIHByb2cgPSBuZXcgU2hhZGVyKGds
LCAndmVydCcsICdmcmFnJyk7CisgIHByb2cudXNlKCk7CisgIHZhciBzaCA9IHByb2cuc2hhZGVy
LnByb2dyYW07CisvLyAgIGxvZyhnbC5nZXRTaGFkZXJJbmZvTG9nKHByb2cuc2hhZGVyc1sxXSkp
OworICB2YXIgdiA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHNoLCAnVmVydGV4Jyk7CisgIHZhciBu
ID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24oc2gsICdOb3JtYWwnKTsKKyAgdmFyIHQgPSBnbC5nZXRB
dHRyaWJMb2NhdGlvbihzaCwgJ1RleCcpOworICByZXR1cm4gW2dsLHByb2csdixuLHRdOworfQor
CitUZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGdsLCBwcm9nLCB2LG4sdCkgeworICBhc3NlcnQoMCA9
PSBnbC5nZXRFcnJvcigpKTsKKyAgcmV0dXJuIFtnbCwgcHJvZywgdixuLHRdOworfQorVGVzdHMu
dGVhcmRvd24gPSBmdW5jdGlvbihnbCwgcHJvZywgdixuLHQpIHsKKyAgZ2wuZGlzYWJsZVZlcnRl
eEF0dHJpYkFycmF5KHYpOworICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkobik7CisgIGds
LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSh0KTsKK30KKworVGVzdHMuZW5kVW5pdCA9IGZ1bmN0
aW9uKGdsLCBwcm9nLCB2LG4sdCkgeworICBwcm9nLmRlc3Ryb3koKTsKK30KKworVGVzdHMudGVz
dFZlcnRleEF0dHJpYlBvaW50ZXJWQk8gPSBmdW5jdGlvbihnbCwgcHJvZywgdixuLHQpIHsKKyAg
dmFyIHZibyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICB2YXIgdmVydHNBcnIgPSBuZXcgRmxvYXQz
MkFycmF5KHZlcnRzKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZibyk7Cisg
IGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0c0FyciwgZ2wuU1RBVElDX0RSQVcp
OworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHYsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7
CisgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCA0KTsK
KyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOworICBnbC5kZWxldGVCdWZm
ZXIodmJvKTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0IiB0eXBlPSJ4LXNoYWRl
ci94LXZlcnRleCI+CisgIGF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKKyAgYXR0cmlidXRlIHZlYzMg
Tm9ybWFsOworICBhdHRyaWJ1dGUgdmVjMiBUZXg7CisKKyAgdmFyeWluZyB2ZWM0IHRleENvb3Jk
MDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXggKiBO
b3JtYWwsIDEuMCk7CisgICAgdGV4Q29vcmQwID0gdmVjNChUZXgsMC4wLDAuMCkgKyBnbF9Qb3Np
dGlvbjsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcmFnIiB0eXBlPSJ4LXNoYWRlci94
LWZyYWdtZW50Ij4KKyAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgdmFyeWluZyB2ZWM0
IHRleENvb3JkMDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIHZlYzQgYyA9IHRleENvb3JkMDsK
KyAgICBnbF9GcmFnQ29sb3IgPSBjOworICB9Cis8L3NjcmlwdD4KKworCis8c3R5bGU+Y2FudmFz
eyBwb3NpdGlvbjphYnNvbHV0ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+CisgIDxjYW52YXMg
aWQ9ImdsIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48L2NhbnZhcz4KKzwvYm9keT48L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy92ZXJ0ZXhBdHRyaWJQb2ludGVyQmFkQXJncy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYWI0NWYxNDE2Y2FjMGM1MDFiMzZmNzlmNTRjZGQ0NDEwY2MzODZiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdmVydGV4QXR0cmliUG9pbnRlckJhZEFyZ3MuaHRtbApA
QCAtMCwwICsxLDEzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiog
Ik1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
CisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlh
bHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3Mi
IC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBz
cmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWph
dmFzY3JpcHQiPgorCit2YXIgdmVydHMgPSBbMC4wLCAwLjAsIDAuMCwgICAxLjAsIDAuMCwgMC4w
LCAgIDAuMCwgMS4wLCAwLjBdOwordmFyIG5vcm1hbHMgPSBbMC4wLCAwLjAsIDEuMCwgICAwLjAs
IDAuMCwgMS4wLCAgIDAuMCwgMC4wLCAxLjBdOwordmFyIHRleGNvb3JkcyA9IFswLjAsMC4wLCAg
MS4wLDAuMCwgIDAuMCwxLjBdOworCitUZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7Cisg
IHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0g
d3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7CisgIHZhciBwcm9nID0gbmV3IFNo
YWRlcihnbCwgJ3ZlcnQnLCAnZnJhZycpOworICBwcm9nLnVzZSgpOworICB2YXIgc2ggPSBwcm9n
LnNoYWRlci5wcm9ncmFtOworLy8gICBsb2coZ2wuZ2V0U2hhZGVySW5mb0xvZyhwcm9nLnNoYWRl
cnNbMV0pKTsKKyAgdmFyIHYgPSBnbC5nZXRBdHRyaWJMb2NhdGlvbihzaCwgJ1ZlcnRleCcpOwor
ICB2YXIgbiA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHNoLCAnTm9ybWFsJyk7CisgIHZhciB0ID0g
Z2wuZ2V0QXR0cmliTG9jYXRpb24oc2gsICdUZXgnKTsKKyAgcmV0dXJuIFtnbCxwcm9nLHYsbix0
XTsKK30KKworVGVzdHMuc2V0dXAgPSBmdW5jdGlvbihnbCwgcHJvZywgdixuLHQpIHsKKyAgYXNz
ZXJ0KDAgPT0gZ2wuZ2V0RXJyb3IoKSk7CisgIHJldHVybiBbZ2wsIHByb2csIHYsbix0XTsKK30K
K1Rlc3RzLnRlYXJkb3duID0gZnVuY3Rpb24oZ2wsIHByb2csIHYsbix0KSB7CisgIGdsLmRpc2Fi
bGVWZXJ0ZXhBdHRyaWJBcnJheSh2KTsKKyAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG4p
OworICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkodCk7Cit9CisKK1Rlc3RzLmVuZFVuaXQg
PSBmdW5jdGlvbihnbCwgcHJvZywgdixuLHQpIHsKKyAgcHJvZy5kZXN0cm95KCk7Cit9CisKK1Rl
c3RzLnRlc3RWZXJ0ZXhBdHRyaWJQb2ludGVyVkJPID0gZnVuY3Rpb24oZ2wsIHByb2csIHYsbix0
KSB7CisgIHZhciB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgdmFyIHZlcnRzQXJyID0gbmV3
IEZsb2F0MzJBcnJheSh2ZXJ0cyk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2
Ym8pOworICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgdmVydHNBcnIsIGdsLlNUQVRJ
Q19EUkFXKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcih2LCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDAsIDApOworICBhc3NlcnRGYWlsKCJuZWdhdGl2ZSBvZmZzZXQiLAorICAgICAgZnVuY3Rpb24o
KXtnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHYsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgLTQpO30p
OworICBhc3NlcnRPaygib3V0IG9mIHJhbmdlIG9mZnNldCAoT0sgYmVjYXVzZSB3ZSBjYW4gY2hh
bmdlIHRoZSBidWZmZXIgbGF0ZXIpIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudmVydGV4QXR0cmli
UG9pbnRlcih2LCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDEyMDApO30pOworICBhc3NlcnRGYWls
KCJPZmZzZXQgdGhhdCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0eXBlIiwKKyAgICAgIGZ1bmN0aW9u
KCl7Z2wudmVydGV4QXR0cmliUG9pbnRlcih2LCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDMpO30p
OworICBhc3NlcnRGYWlsKCJuZWdhdGl2ZSBzdHJpZGUiLAorICAgICAgZnVuY3Rpb24oKXtnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKHYsIDMsIGdsLkZMT0FULCBmYWxzZSwgLTEsIDApO30pOworICBh
c3NlcnRGYWlsKCJiYWQgc2l6ZSIsCisgICAgICBmdW5jdGlvbigpe2dsLnZlcnRleEF0dHJpYlBv
aW50ZXIodiwgNSwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTt9KTsKKyAgYXNzZXJ0RmFpbCgic3Ry
aWRlIHRoYXQgZG9lc24ndCBtYXRjaCB0eXBlIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudmVydGV4
QXR0cmliUG9pbnRlcih2LCAzLCBnbC5GTE9BVCwgZmFsc2UsIDEsIDApO30pOworICBhc3NlcnRG
YWlsKCJiYWQgdHlwZSIsCisgICAgICBmdW5jdGlvbigpe2dsLnZlcnRleEF0dHJpYlBvaW50ZXIo
diwgMywgZ2wuVEVYVFVSRV8yRCwgZmFsc2UsIDAsIDApO30pOworICBhc3NlcnRGYWlsKCJiYWQg
aW5kZXgiLAorICAgICAgZnVuY3Rpb24oKXtnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKC0xLCAzLCBn
bC5GTE9BVCwgZmFsc2UsIDAsIDApO30pOworICBhc3NlcnRGYWlsKCJiYWQgaW5kZXggKGJpZyBu
ZWdhdGl2ZSkiLAorICAgICAgZnVuY3Rpb24oKXtnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKC04Njkz
OTQ4LCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApO30pOworICBhc3NlcnRGYWlsKCJiYWQgaW5k
ZXggKGJpZyBwb3NpdGl2ZSkiLAorICAgICAgZnVuY3Rpb24oKXtnbC52ZXJ0ZXhBdHRyaWJQb2lu
dGVyKDg2OTM5NDgsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7fSk7CisgIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCBudWxsKTsKKyAgYXNzZXJ0RmFpbCgiYmluZGluZyB0byBudWxs
IGJ1ZmZlciIsCisgICAgICBmdW5jdGlvbigpe2dsLnZlcnRleEF0dHJpYlBvaW50ZXIodiwgMywg
Z2wuRkxPQVQsIGZhbHNlLCAwLCAwKTt9KTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZG
RVIsIHZibyk7CisgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodiwgMywgZ2wuRkxPQVQsIGZhbHNl
LCAwLCAwKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOworICBnbC5k
ZWxldGVCdWZmZXIodmJvKTsKKyAgdGhyb3dFcnJvcihnbCk7Cit9CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBpZD0idmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorICBhdHRyaWJ1dGUgdmVj
MyBWZXJ0ZXg7CisgIGF0dHJpYnV0ZSB2ZWMzIE5vcm1hbDsKKyAgYXR0cmlidXRlIHZlYzIgVGV4
OworCisgIHZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7CisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBn
bF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4ICogTm9ybWFsLCAxLjApOworICAgIHRleENvb3JkMCA9
IHZlYzQoVGV4LDAuMCwwLjApICsgZ2xfUG9zaXRpb247CisgIH0KKzwvc2NyaXB0PgorPHNjcmlw
dCBpZD0iZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisgIHByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworCisgIHZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7CisgIHZvaWQgbWFpbigpCisg
IHsKKyAgICB2ZWM0IGMgPSB0ZXhDb29yZDA7CisgICAgZ2xfRnJhZ0NvbG9yID0gYzsKKyAgfQor
PC9zY3JpcHQ+CisKKworPHN0eWxlPmNhbnZhc3sgcG9zaXRpb246YWJzb2x1dGU7IH08L3N0eWxl
PgorPC9oZWFkPjxib2R5PgorICA8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+
PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9nbHNsL2FycmF5T3V0
T2ZCb3VuZHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvZ2xzbC9hcnJheU91dE9mQm91bmRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTRkMDNkZWI5NTA4NGVhMDJiMGJjN2VlNDk5ZWUzN2MwMWExOTk1ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZ2xzbC9hcnJheU91dE9mQm91bmRzLmh0bWwKQEAgLTAsMCArMSwyNzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVz
dHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9IGdldEdMQ29udGV4dChjYW52YXMpOworICBy
ZXR1cm4gW2dsXTsKK30KKworVGVzdHMudGVzdE9rID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIg
c2ggPSBuZXcgRmlsdGVyKGdsLCAnb2t2ZXJ0JywgJ2ZyYWcnKTsKKyAgICBhc3NlcnRPayhmdW5j
dGlvbigpe3NoLmFwcGx5KCk7fSk7CisgICAgc2guZGVzdHJveSgpOworCisgICAgdmFyIHNoID0g
bmV3IEZpbHRlcihnbCwgJ3ZlcnQnLCAnb2tmcmFnJyk7CisgICAgYXNzZXJ0T2soZnVuY3Rpb24o
KXtzaC5hcHBseSgpO30pOworICAgIHNoLmRlc3Ryb3koKTsKKworICAgIHZhciBzaCA9IG5ldyBG
aWx0ZXIoZ2wsICd2ZXJ0JywgJ2ZyYWcnKTsKKyAgICBhc3NlcnRPayhmdW5jdGlvbigpe3NoLmFw
cGx5KCk7fSk7CisgICAgc2guZGVzdHJveSgpOworfQorCit2YXIgYXJyID0gWydjcicsICdjdycs
ICd2cicsICd2dyddOworYXJyLmZvckVhY2goZnVuY3Rpb24oZSl7CisgICAgaWYgKGUgPT0gJ2Ny
JyB8fCBlID09ICdjdycpIHsKKyAgICAgICAgVGVzdHNbJ3Rlc3QnK2UrJ3ZlcnQnXSA9IGZ1bmN0
aW9uKGdsKSB7CisgICAgICAgICAgICB2YXIgc2ggPSBuZXcgRmlsdGVyKGdsLCBlKyd2ZXJ0Jywg
J2ZyYWcnKTsKKyAgICAgICAgICAgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXtzaC5hcHBseSgpO30p
OworICAgICAgICAgICAgc2guZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorICAgIFRlc3Rz
Wyd0ZXN0JytlKydmcmFnJ10gPSBmdW5jdGlvbihnbCkgeworICAgICAgICB2YXIgc2ggPSBuZXcg
RmlsdGVyKGdsLCAndmVydCcsIGUrJ2ZyYWcnKTsKKyAgICAgICAgYXNzZXJ0RmFpbChmdW5jdGlv
bigpe3NoLmFwcGx5KCk7fSk7CisgICAgICAgIHNoLmRlc3Ryb3koKTsKKyAgICB9Cit9KTsKKwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9Im9rdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgorCisKKyAgYXR0cmlidXRlIHZlYzMgVmVydGV4OworICBhdHRyaWJ1dGUgdmVjMiBUZXg7Cisg
IHZhcnlpbmcgdmVjMiBUZXhDb29yZDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIFRleENvb3Jk
ID0gVGV4OworICAgIGZsb2F0IHhbM107CisgICAgeFswXSA9IDEuMDsKKyAgICB4WzFdID0gMi4w
OworICAgIHhbMl0gPSAzLjA7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgeFsyXSk7
CisgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iY3J2ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZl
cnRleCI+CisKKworICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CisgIGF0dHJpYnV0ZSB2ZWMyIFRl
eDsKKyAgdmFyeWluZyB2ZWMyIFRleENvb3JkOworICB2b2lkIG1haW4oKQorICB7CisgICAgVGV4
Q29vcmQgPSBUZXg7CisgICAgZmxvYXQgeFszXTsKKyAgICB4WzBdID0gMS4wOworICAgIHhbMV0g
PSAyLjA7CisgICAgeFsyXSA9IDMuMDsKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCB4
WzRdKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJjd3ZlcnQiIHR5cGU9Ingtc2hhZGVy
L3gtdmVydGV4Ij4KKworCisgIGF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKKyAgYXR0cmlidXRlIHZl
YzIgVGV4OworICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7CisgIHZvaWQgbWFpbigpCisgIHsKKyAg
ICBUZXhDb29yZCA9IFRleDsKKyAgICBmbG9hdCB4WzNdOworICAgIHhbMF0gPSAxLjA7CisgICAg
eFsxXSA9IDIuMDsKKyAgICB4WzJdID0gMy4wOworICAgIHhbNF0gPSBWZXJ0ZXguejsKKyAgICBn
bF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCB4WzRdKTsKKyAgfQorPC9zY3JpcHQ+Cis8IS0tIFRo
aXMgb25lIGNhbid0IGJlIHJlcXVpcmVkIHRvIGZhaWwgY29tcGlsYXRpb24sIGJlY2F1c2UgdmVy
dGV4IHNoYWRlcnMgbXVzdCBzdXBwb3J0IGFyYml0cmFyeSBhcnJheSBpbmRleGluZyAtLT4KKzxz
Y3JpcHQgaWQ9InZydmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorCisKKyAgYXR0cmli
dXRlIHZlYzMgVmVydGV4OworICBhdHRyaWJ1dGUgdmVjMiBUZXg7CisgIHZhcnlpbmcgdmVjMiBU
ZXhDb29yZDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIFRleENvb3JkID0gVGV4OworICAgIGZs
b2F0IHhbM107CisgICAgeFswXSA9IDEuMDsKKyAgICB4WzFdID0gMi4wOworICAgIHhbMl0gPSAz
LjA7CisgICAgaW50IGlkeCA9IDQgKiBpbnQobWF4KDEuMCwgVmVydGV4LngqMjAuMCkpOworICAg
IGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIHhbaWR4XSk7CisgIH0KKzwvc2NyaXB0PgorPCEt
LSBUaGlzIG9uZSBjYW4ndCBiZSByZXF1aXJlZCB0byBmYWlsIGNvbXBpbGF0aW9uLCBiZWNhdXNl
IHZlcnRleCBzaGFkZXJzIG11c3Qgc3VwcG9ydCBhcmJpdHJhcnkgYXJyYXkgaW5kZXhpbmcgLS0+
Cis8c2NyaXB0IGlkPSJ2d3ZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKworCisgIGF0
dHJpYnV0ZSB2ZWMzIFZlcnRleDsKKyAgYXR0cmlidXRlIHZlYzIgVGV4OworICB2YXJ5aW5nIHZl
YzIgVGV4Q29vcmQ7CisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBUZXhDb29yZCA9IFRleDsKKyAg
ICBmbG9hdCB4WzNdOworICAgIHhbMF0gPSAxLjA7CisgICAgeFsxXSA9IDIuMDsKKyAgICB4WzJd
ID0gMy4wOworICAgIGludCBpZHggPSA0ICogaW50KG1heCgxLjAsIFZlcnRleC54KjIwLjApKTsK
KyAgICB4W2lkeF0gPSBWZXJ0ZXguejsKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCB4
W2lkeF0pOworICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZlcnQiIHR5cGU9Ingtc2hhZGVy
L3gtdmVydGV4Ij4KKworCisgIGF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKKyAgYXR0cmlidXRlIHZl
YzIgVGV4OworICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7CisgIHZvaWQgbWFpbigpCisgIHsKKyAg
ICBUZXhDb29yZCA9IFRleDsKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAwLjApOwor
ICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBpZD0ib2tmcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZy
YWdtZW50Ij4KKworCisgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgIHZhcnlpbmcgdmVj
MiBUZXhDb29yZDsKKworICB2b2lkIG1haW4oKQorICB7CisgICAgZmxvYXQgeFszXTsKKyAgICB4
WzBdID0gMS4wOworICAgIHhbMV0gPSAyLjA7CisgICAgeFsyXSA9IDMuMDsKKyAgICBnbF9GcmFn
Q29sb3IgPSB2ZWM0KDEuMCwgMC4wLCBUZXhDb29yZC5zLCB4WzJdKTsKKyAgfQorPC9zY3JpcHQ+
Cis8c2NyaXB0IGlkPSJjcmZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorCisKKyAg
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgdmFyeWluZyB2ZWMyIFRleENvb3JkOworCisg
IHZvaWQgbWFpbigpCisgIHsKKyAgICBmbG9hdCB4WzNdOworICAgIHhbMF0gPSAxLjA7CisgICAg
eFsxXSA9IDIuMDsKKyAgICB4WzJdID0gMy4wOworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4w
LCAwLjAsIFRleENvb3JkLnMsIHhbNF0pOworICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImN3
ZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisKKworICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7CisKKyAgdm9pZCBtYWluKCkKKyAg
eworICAgIGZsb2F0IHhbM107CisgICAgeFswXSA9IDEuMDsKKyAgICB4WzFdID0gMi4wOworICAg
IHhbMl0gPSAzLjA7CisKKyAgICB4WzRdID0gNi4wOworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQo
MS4wLCAwLjAsIFRleENvb3JkLnMsIHhbNF0pOworICB9Cis8L3NjcmlwdD4KKzwhLS0gVGhpcyBv
bmUgYWN0dWFsbHkgZmFpbHMgYmVjYXVzZSBvZiBXZWJHTCdzIHJlc3RyaWN0aW9ucyBvbiBpbmRl
eGluZyBleHByZXNzaW9ucyBpbiBmcmFnbWVudCBzaGFkZXJzIC0tPgorPHNjcmlwdCBpZD0idnJm
cmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworCisgIHByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworCisgIHZhcnlpbmcgdmVjMiBUZXhDb29yZDsKKworICB2b2lkIG1haW4oKQorICB7
CisgICAgZmxvYXQgeFszXTsKKyAgICB4WzBdID0gMS4wOworICAgIHhbMV0gPSAyLjA7CisgICAg
eFsyXSA9IDMuMDsKKworICAgIGludCBpZHggPSA0ICogaW50KG1heCgxLjAsIFRleENvb3JkLngq
MjAuMCkpOworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAwLjAsIFRleENvb3JkLnMsIHhb
aWR4XSk7CisgIH0KKzwvc2NyaXB0PgorPCEtLSBUaGlzIG9uZSBhY3R1YWxseSBmYWlscyBiZWNh
dXNlIG9mIFdlYkdMJ3MgcmVzdHJpY3Rpb25zIG9uIGluZGV4aW5nIGV4cHJlc3Npb25zIGluIGZy
YWdtZW50IHNoYWRlcnMgLS0+Cis8c2NyaXB0IGlkPSJ2d2ZyYWciIHR5cGU9Ingtc2hhZGVyL3gt
ZnJhZ21lbnQiPgorCisKKyAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgdmFyeWluZyB2
ZWMyIFRleENvb3JkOworCisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBmbG9hdCB4WzNdOworICAg
IHhbMF0gPSAxLjA7CisgICAgeFsxXSA9IDIuMDsKKyAgICB4WzJdID0gMy4wOworCisgICAgaW50
IGlkeCA9IDQgKiBpbnQobWF4KDEuMCwgVGV4Q29vcmQueCoyMC4wKSk7CisgICAgeFtpZHhdID0g
Ni4wOworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAwLjAsIFRleENvb3JkLnMsIHhbaWR4
XSk7CisgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1m
cmFnbWVudCI+CisKKworICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICB2YXJ5aW5nIHZl
YzIgVGV4Q29vcmQ7CisKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIGdsX0ZyYWdDb2xvciA9IHZl
YzQoMS4wLCAwLjAsIFRleENvb3JkLnMsIDEuMCk7CisgIH0KKzwvc2NyaXB0PgorCisKKzxzdHls
ZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKyAg
PGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Cis8L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9nbHNsL2xvbmdMb29wcy5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9nbHNs
L2xvbmdMb29wcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMTFmZGY0YThjZjlkNTA3MzUwN2JmZDQ5MDI2
N2IyNmY1OWExZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2dsc2wvbG9uZ0xvb3BzLmh0bWwK
QEAgLTAsMCArMSwyNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhp
cyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoq
ICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl
Y3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl
ZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJp
YWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoq
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ
TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBP
UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3Nz
IiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5p
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIg
c3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1q
YXZhc2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9IGdldEdMQ29u
dGV4dChjYW52YXMpOworICByZXR1cm4gW2dsXTsKK30KKworVGVzdHMuYXV0b3J1biA9IGZhbHNl
OworVGVzdHMubWVzc2FnZSA9ICJDYXV0aW9uOiBtaWdodCBoYW5nIHlvdXIgR1BVIgorCit2YXIg
YXJyID0gWyd3aGlsZXRydWUnLCAnbG9vcDEwME0nLCAnbG9vcENvbXAnLCAndmFyaWFibGUnXTsK
K2Fyci5mb3JFYWNoKGZ1bmN0aW9uKGUpeworICAgIFRlc3RzWyd0ZXN0JytlKyd2ZXJ0J10gPSBm
dW5jdGlvbihnbCkgeworICAgICAgICB2YXIgc2ggPSBuZXcgRmlsdGVyKGdsLCBlKyd2ZXJ0Jywg
J2ZyYWcnKTsKKyAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIHNoLmFw
cGx5KCk7CisgICAgICAgIH0pOworICAgICAgICBzaC5kZXN0cm95KCk7CisgICAgfQorICAgIFRl
c3RzWyd0ZXN0JytlKydmcmFnJ10gPSBmdW5jdGlvbihnbCkgeworICAgICAgICB2YXIgc2ggPSBu
ZXcgRmlsdGVyKGdsLCAndmVydCcsIGUrJ2ZyYWcnKTsKKyAgICAgICAgYXNzZXJ0T2soZnVuY3Rp
b24oKXsKKyAgICAgICAgICAgIHNoLmFwcGx5KCk7CisgICAgICAgIH0pOworICAgICAgICBzaC5k
ZXN0cm95KCk7CisgICAgfQorfSk7CisKK1Rlc3RzLnRlc3RNYW5kZWxicm90ID0gZnVuY3Rpb24o
Z2wpIHsKKyAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOworICAgIHZhciBzaCA9IG5ldyBG
aWx0ZXIoZ2wsICdpZGVudGl0eS12ZXJ0JywgJ21hbmRlbGJyb3QtZnJhZycpOworICAgIHNoLmFw
cGx5KGZ1bmN0aW9uKHMpeworICAgICAgICBzLnVuaWZvcm0xZigneicsIDAuMTUpOworICAgICAg
ICBzLnVuaWZvcm0xZigneCcsIC0xLjI1KTsKKyAgICB9KTsKKyAgICBmb3IgKHZhciBpPTA7IGk8
MjU2OyBpKyspIHsKKyAgICAgICAgc2guYXBwbHkoKTsKKyAgICB9CisgICAgc2guZGVzdHJveSgp
OworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImlkZW50aXR5LXZlcnQiIHR5cGU9Ingtc2hh
ZGVyL3gtdmVydGV4Ij4KKworICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CisgIGF0dHJpYnV0ZSB2
ZWMyIFRleDsKKworICB2YXJ5aW5nIHZlYzIgdGV4Q29vcmQwOworICB2b2lkIG1haW4oKQorICB7
CisgICAgdGV4Q29vcmQwID0gdmVjMihUZXgucywgVGV4LnQpOworICAgIGdsX1Bvc2l0aW9uID0g
dmVjNChWZXJ0ZXgsIDEuMCk7CisgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0ibWFuZGVsYnJv
dC1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworICAgIHVuaWZvcm0gZmxvYXQgeCx5LHo7CisgICAgdmFyeWluZyB2ZWMyIHRl
eENvb3JkMDsKKyAgICB2ZWM0IGl0ZXJfeihmbG9hdCBjciwgZmxvYXQgY2kpIHsKKyAgICAgICAg
aW50IGk7CisgICAgICAgIGZsb2F0IG56ciwgbnppLCB6ciA9IDAuMCwgemkgPSAwLjA7CisgICAg
ICAgIHZlYzQgY29sb3IgPSB2ZWM0KDAuMCk7CisgICAgICAgIGZvciAoaT0wOyBpPDI1MDA7IGkr
KykgeworICAgICAgICAgICAgbnpyID0genIgKiB6ciAtIHppICogemkgKyBjcjsKKyAgICAgICAg
ICAgIG56aSA9IDIuMCAqIHpyICogemkgKyBjaTsKKyAgICAgICAgICAgIHpyID0gbnpyOworICAg
ICAgICAgICAgemkgPSBuemk7CisgICAgICAgIH0KKyAgICAgICAgY29sb3IgPSB2ZWM0KHppKTsK
KyAgICAgICAgY29sb3IuYSA9IDEuMDsKKyAgICAgICAgcmV0dXJuIGNvbG9yOworICAgIH0KKwor
ICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSBpdGVyX3ooeCt6
KigyLjAqdGV4Q29vcmQwLnMtMS41KSwgeSt6KigyLjAqdGV4Q29vcmQwLnQtMS4wKSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ3aGlsZXRydWV2ZXJ0IiB0eXBlPSJ4LXNoYWRlci94
LXZlcnRleCI+CisKKworICAgIGF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsgYXR0cmlidXRlIHZlYzIg
VGV4OworICAgIHZhcnlpbmcgdmVjMiBUZXhDb29yZDsKKyAgICB2b2lkIG1haW4oKQorICAgIHsK
KyAgICAgICAgZmxvYXQgeiA9IDEuMDsKKyAgICAgICAgd2hpbGUodHJ1ZSkgeyB6ICs9IDAuMTsg
eiAqPSAwLjk5NTsgfQorICAgICAgICBUZXhDb29yZCA9IFRleC5zdDsKKyAgICAgICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KFZlcnRleCwgeik7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJs
b29wMTAwTXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKworCisgICAgYXR0cmlidXRl
IHZlYzMgVmVydGV4OyBhdHRyaWJ1dGUgdmVjMiBUZXg7CisgICAgdmFyeWluZyB2ZWMyIFRleENv
b3JkOworICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgZmxv
YXQgeiA9IDEuMDsKKyAgICAgICAgZm9yIChpID0gMDsgaTwxMDAwMDAwMDAwOyBpKyspIHsKKyAg
ICAgICAgICAgIHogKz0gMC4xOyB6ICo9IDAuOTk1OworICAgICAgICB9CisgICAgICAgIFRleENv
b3JkID0gVGV4LnN0OworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCB6KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9Imxvb3BDb21wdmVydCIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgorCisKKyAgICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7IGF0dHJpYnV0ZSB2ZWMy
IFRleDsKKyAgICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7CisgICAgdm9pZCBtYWluKCkKKyAgICB7
CisgICAgICAgIGZsb2F0IHogPSAxLjA7CisgICAgICAgIHdoaWxlKHogPiAwLjApIHsgeiArPSAw
LjE7IHogKj0gMC45OTU7IH0KKyAgICAgICAgVGV4Q29vcmQgPSBUZXguc3Q7CisgICAgICAgIGds
X1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIHopOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBp
ZD0idmFyaWFibGV2ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisKKworICAgIGF0dHJp
YnV0ZSB2ZWMzIFZlcnRleDsgYXR0cmlidXRlIHZlYzIgVGV4OworICAgIHZhcnlpbmcgdmVjMiBU
ZXhDb29yZDsKKworICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAgICBmbG9hdCB6ID0gMS4w
OworICAgICAgICB3aGlsZSh6ID4gVmVydGV4LnopIHsgeiArPSAwLjE7IHogKj0gMC45OTU7IH0K
KyAgICAgICAgVGV4Q29vcmQgPSBUZXguc3Q7CisgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNChW
ZXJ0ZXgsIHopOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0idmVydCIgdHlwZT0ieC1z
aGFkZXIveC12ZXJ0ZXgiPgorCisKKyAgICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7IGF0dHJpYnV0
ZSB2ZWMyIFRleDsKKyAgICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7CisgICAgdm9pZCBtYWluKCkK
KyAgICB7CisgICAgICAgIFRleENvb3JkID0gVGV4LnN0OworICAgICAgICBnbF9Qb3NpdGlvbiA9
IHZlYzQoVmVydGV4LCAwLjApOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJ3aGls
ZXRydWVmcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworCisgICAgcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7CisgICAgdm9pZCBt
YWluKCkKKyAgICB7CisgICAgICAgIGZsb2F0IHogPSAxLjA7CisgICAgICAgIHdoaWxlKHRydWUp
IHsgeiArPSAwLjE7IHogKj0gMC45OTU7IH0KKyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgx
LjAsIFRleENvb3JkLnMsIFRleENvb3JkLnQsIHopOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlw
dCBpZD0ibG9vcDEwME1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworCisgICAg
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7Cisg
ICAgdm9pZCBtYWluKCkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBmbG9hdCB6ID0g
MS4wOworICAgICAgICBmb3IgKGkgPSAwOyBpPDEwMDAwMDAwMDA7IGkrKykgeworICAgICAgICAg
ICAgeiArPSAwLjE7IHogKj0gMC45OTU7CisgICAgICAgIH0KKyAgICAgICAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNCgxLjAsIFRleENvb3JkLnMsIFRleENvb3JkLnQsIHopOworICAgIH0KKzwvc2NyaXB0
PgorPHNjcmlwdCBpZD0ibG9vcENvbXBmcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
KworCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2YXJ5aW5nIHZlYzIgVGV4
Q29vcmQ7CisgICAgdm9pZCBtYWluKCkKKyAgICB7CisgICAgICAgIGZsb2F0IHogPSBUZXhDb29y
ZC5zOworICAgICAgICB3aGlsZSh6ID4gMC4wKSB7IHogKz0gMC4xOyB6ICo9IDAuOTk1OyB9Cisg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCBUZXhDb29yZC5zLCBUZXhDb29yZC50LCB6
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZhcmlhYmxlZnJhZyIgdHlwZT0ieC1z
aGFkZXIveC1mcmFnbWVudCI+CisKKworICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisg
ICAgdmFyeWluZyB2ZWMyIFRleENvb3JkOworICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAg
ICBmbG9hdCB6ID0gMS4wOworICAgICAgICB3aGlsZSh6ID4gVGV4Q29vcmQucykgeyB6ICs9IDAu
MTsgeiAqPSAwLjk5NTsgfQorICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgVGV4Q29v
cmQucywgVGV4Q29vcmQudCwgeik7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcmFn
IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworCisgIHByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworCisgIHZhcnlpbmcgdmVjMiBUZXhDb29yZDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAg
IGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCBUZXhDb29yZC5zLCBUZXhDb29yZC50LCAxLjApOwor
ICB9Cis8L3NjcmlwdD4KKworCis8c3R5bGU+Y2FudmFzeyBwb3NpdGlvbjphYnNvbHV0ZTsgfTwv
c3R5bGU+Cis8L2hlYWQ+PGJvZHk+CisgIDxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iNTEyIiBoZWln
aHQ9IjUxMiI+PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9nbHNs
L3VuaWZvcm1PdXRPZkJvdW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9nbHNsL3VuaWZvcm1PdXRPZkJvdW5kcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEwMTZjYjcwMjFjM2NlZGNmZjk3MjFiZjg2MDM1MjI2M2FiMTYzYTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2dsc2wvdW5pZm9ybU91dE9mQm91bmRzLmh0bWwKQEAg
LTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAor
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAv
PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3Jj
PSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZh
c2NyaXB0Ij4KKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9IGdldEdMQ29udGV4
dChjYW52YXMpOworICByZXR1cm4gW2dsXTsKK30KKwordmFyIGFyciA9IFsnY3InLCAnY3cnLCAn
dnInLCAndncnLCAndHZ3J107CithcnIuZm9yRWFjaChmdW5jdGlvbihlKXsKKyAgICBUZXN0c1sn
dGVzdCcrZSsndmVydCddID0gZnVuY3Rpb24oZ2wpIHsKKyAgICAgICAgdmFyIHNoID0gbmV3IEZp
bHRlcihnbCwgZSsndmVydCcsICdmcmFnJyk7CisgICAgICAgIGFzc2VydEZhaWwoZnVuY3Rpb24o
KXtzaC5hcHBseShmdW5jdGlvbihmKXsKKyAgICAgICAgICAgIGYudW5pZm9ybTNmdigneCcsIFsw
LjAsIDEuMCwgMi4wXSk7CisgICAgICAgICAgICB0aHJvd0Vycm9yKGUrInZlcnQiKTsKKyAgICAg
ICAgfSk7fSk7CisgICAgICAgIHNoLmRlc3Ryb3koKTsKKyAgICB9CisgICAgVGVzdHNbJ3Rlc3Qn
K2UrJ2ZyYWcnXSA9IGZ1bmN0aW9uKGdsKSB7CisgICAgICAgIHZhciBzaCA9IG5ldyBGaWx0ZXIo
Z2wsICd2ZXJ0JywgZSsnZnJhZycpOworICAgICAgICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7c2gu
YXBwbHkoZnVuY3Rpb24oZil7CisgICAgICAgICAgICBmLnVuaWZvcm0zZnYoJ3gnLCBbMC4wLCAx
LjAsIDIuMF0pOworICAgICAgICAgICAgdGhyb3dFcnJvcihlKyJmcmFnIik7CisgICAgICAgIH0p
O30pOworICAgICAgICBzaC5kZXN0cm95KCk7CisgICAgfQorfSk7CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBpZD0iY3J2ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisKKworICBhdHRyaWJ1
dGUgdmVjMyBWZXJ0ZXg7IGF0dHJpYnV0ZSB2ZWMyIFRleDsKKyAgdW5pZm9ybSBmbG9hdCB4WzNd
OworICB2b2lkIG1haW4oKQorICB7CisgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LnN0
LCBUZXgucywgeFs0XSk7CisgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iY3d2ZXJ0IiB0eXBl
PSJ4LXNoYWRlci94LXZlcnRleCI+CisKKworICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7IGF0dHJp
YnV0ZSB2ZWMyIFRleDsKKyAgdW5pZm9ybSBmbG9hdCB4WzNdOworICB2b2lkIG1haW4oKQorICB7
CisgICAgeFs0XSA9IFZlcnRleC56OworICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXguc3Qs
IFRleC5zLCB4WzRdKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2cnZlcnQiIHR5cGU9
Ingtc2hhZGVyL3gtdmVydGV4Ij4KKworCisgIHVuaWZvcm0gZmxvYXQgeFszXTsKKyAgYXR0cmli
dXRlIHZlYzMgVmVydGV4OyBhdHRyaWJ1dGUgdmVjMiBUZXg7CisgIHZvaWQgbWFpbigpCisgIHsK
KyAgICBmbG9hdCBpZHggPSA0MC4wICogbWF4KDEuMCwgVmVydGV4LngqMjAuMCk7CisgICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgeFsyXSArIFRleC5zICsgeFtpbnQoaWR4KV0pOworICB9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZ3dmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgorCisKKyAgYXR0cmlidXRlIHZlYzMgVmVydGV4OyBhdHRyaWJ1dGUgdmVjMiBUZXg7CisgIHVu
aWZvcm0gZmxvYXQgeFszXTsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIGludCBpZHggPSA0ICog
aW50KG1heCgxLjAsIFZlcnRleC54KjIwLjApKTsKKyAgICB4W2lkeF0gPSBWZXJ0ZXguejsKKyAg
ICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LnN0LCBUZXgucywgeFtpZHhdKTsKKyAgfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IGlkPSJ0dnd2ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisK
KworICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7IGF0dHJpYnV0ZSB2ZWMyIFRleDsKKyAgdW5pZm9y
bSBmbG9hdCB4WzNdOworICB2b2lkIG1haW4oKQorICB7CisgICAgaW50IGlkeCA9IDQgKiBpbnQo
bWF4KDEuMCwgVmVydGV4LngqMjAuMCkpOworICAgIHhbMl0gPSBWZXJ0ZXhbaWR4XTsKKyAgICBn
bF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LnN0LCBUZXgucywgeFsyXSk7CisgIH0KKzwvc2NyaXB0
PgorPHNjcmlwdCBpZD0idmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorCisKKyAgYXR0
cmlidXRlIHZlYzMgVmVydGV4OyBhdHRyaWJ1dGUgdmVjMiBUZXg7CisgIHZhcnlpbmcgdmVjMiBU
ZXhDb29yZDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIFRleENvb3JkID0gVmVydGV4LnN0Owor
ICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIFRleC5zKTsKKyAgfQorPC9zY3JpcHQ+CisK
KzxzY3JpcHQgaWQ9ImNyZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisKKworICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICB1bmlmb3JtIGZsb2F0IHhbM107CisKKyAgdmFy
eWluZyB2ZWMyIFRleENvb3JkOworICB2b2lkIG1haW4oKQorICB7CisgICAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNCgxLjAsIDAuMCwgMC4wLCB4WzRdKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlk
PSJjd2ZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorCisKKyAgcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisKKyAgdW5pZm9ybSBmbG9hdCB4WzNdOworCisgIHZhcnlpbmcgdmVjMiBU
ZXhDb29yZDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIHhbNF0gPSA2LjA7CisgICAgZ2xfRnJh
Z0NvbG9yID0gdmVjNCgxLjAsIDAuMCwgMC4wLCB4WzRdKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJ2cmZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorCisKKyAgcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgdW5pZm9ybSBmbG9hdCB4WzNdOworCisgIHZhcnlpbmcg
dmVjMiBUZXhDb29yZDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIGludCBpZHggPSA0ICogaW50
KG1heCgxLjAsIFRleENvb3JkLnMqMjAuMCkpOworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4w
LCAwLjAsIDAuMCwgeFtpZHhdKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2d2ZyYWci
IHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorCisKKyAgcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisKKyAgdW5pZm9ybSBmbG9hdCB4WzNdOworCisgIHZhcnlpbmcgdmVjMiBUZXhDb29yZDsK
KyAgdm9pZCBtYWluKCkKKyAgeworICAgIGludCBpZHggPSA0ICogaW50KG1heCgxLjAsIFRleENv
b3JkLnMqMjAuMCkpOworICAgIHhbaWR4XSA9IDYuMDsKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0
KDEuMCwgMC4wLCAwLjAsIHhbaWR4XSk7CisgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0idHZ3
ZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisKKworICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworICB1bmlmb3JtIGZsb2F0IHhbM107CisKKyAgdmFyeWluZyB2ZWMyIFRleENv
b3JkOworICB2b2lkIG1haW4oKQorICB7CisgICAgaW50IGlkeCA9IDQgKiBpbnQobWF4KDEuMCwg
VGV4Q29vcmQucyoyMC4wKSk7CisgICAgeFsyXSA9IFRleENvb3JkW2lkeF07CisgICAgZ2xfRnJh
Z0NvbG9yID0gdmVjNCgxLjAsIDAuMCwgMC4wLCB4WzJdKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJmcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworCisgIHByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworCisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBnbF9GcmFnQ29sb3Ig
PSB2ZWM0KDEuMCwgMC4wLCAwLjAsIDEuMCk7CisgIH0KKzwvc2NyaXB0PgorCisKKzxzdHlsZT5j
YW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKyAgPGNh
bnZhcyBpZD0iZ2wiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwvY2FudmFzPgorPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvZ2xzbC91bnVzZWRBdHRyaWJzVW5pZm9ybXMuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZ2xzbC91bnVzZWRBdHRyaWJzVW5pZm9ybXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzdiNzc2YTY4
OTk0ZjlmN2I3NjQyY2U1ZGZjNWEwNWUzNjBmNWFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9n
bHNsL3VudXNlZEF0dHJpYnNVbmlmb3Jtcy5odG1sCkBAIC0wLDAgKzEsMTE1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCisK
Ky8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4g
dGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg
TWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFs
cyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxT
IEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiog
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KKzxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisKK1Rlc3RzLmF1dG9y
dW4gPSBmYWxzZTsKK1Rlc3RzLm1lc3NhZ2UgPSAiQ2F1dGlvbjogbWF5IGNyYXNoIHRoZSBicm93
c2VyIjsKKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9IGdldEdMQ29udGV4dChj
YW52YXMpOworICByZXR1cm4gW2dsXTsKK30KKworVGVzdHMudGVzdFBhc3NpbmdUb29NYW55VkJP
cyA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIHNoID0gbmV3IEZpbHRlcihnbCwgJ3ZlcnQnLCAn
ZnJhZycpOworICAgIGFzc2VydEZhaWwoZnVuY3Rpb24oKXtzaC5hcHBseSgpO30pOworICAgIHNo
LmRlc3Ryb3koKTsKK30KK1Rlc3RzLnRlc3RQYXNzaW5nVG9vTWFueVVuaWZvcm1zID0gZnVuY3Rp
b24oZ2wpIHsKKyAgICB2YXIgc2ggPSBuZXcgRmlsdGVyKGdsLCAndmVydDInLCAnZnJhZzInKTsK
KyAgICBzaC5hcHBseShmdW5jdGlvbihmKXsKKyAgICAgICAgYXNzZXJ0RmFpbChmdW5jdGlvbigp
e2YudW5pZm9ybTFmKCdmb28nLCAzLjApO3Rocm93RXJyb3IoImZvbyIpfSk7CisgICAgICAgIGYu
dW5pZm9ybTFmKCdiYXInLCAxLjApOworICAgICAgICBhc3NlcnRGYWlsKGZ1bmN0aW9uKCl7Zi51
bmlmb3JtMWYoJ2JheicsIDEuMCk7dGhyb3dFcnJvcigiYmF6Iil9KTsKKyAgICB9KTsKKyAgICBz
aC5kZXN0cm95KCk7Cit9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJ2ZXJ0IiB0eXBlPSJ4
LXNoYWRlci94LXZlcnRleCI+CisKKworICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7IGF0dHJpYnV0
ZSB2ZWMyIFRleDsKKyAgdmFyeWluZyB2ZWMyIFRleENvb3JkOworICB2b2lkIG1haW4oKQorICB7
CisgICAgVGV4Q29vcmQgPSBWZXJ0ZXguc3Q7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRl
eCwgMC4wKTsKKyAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZyYWciIHR5cGU9Ingtc2hh
ZGVyL3gtZnJhZ21lbnQiPgorCisKKyAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgdm9p
ZCBtYWluKCkKKyAgeworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAwLjAsIDAuMCwgMS4w
KTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0MiIgdHlwZT0ieC1zaGFkZXIveC12
ZXJ0ZXgiPgorCisKKyAgdW5pZm9ybSBmbG9hdCBmb28sIGJhcjsKKyAgYXR0cmlidXRlIHZlYzMg
VmVydGV4OyBhdHRyaWJ1dGUgdmVjMiBUZXg7CisgIHZhcnlpbmcgdmVjMiBUZXhDb29yZDsKKyAg
dm9pZCBtYWluKCkKKyAgeworICAgIFRleENvb3JkID0gVGV4LnN0OworICAgIGdsX1Bvc2l0aW9u
ID0gdmVjNChWZXJ0ZXgsIGJhcik7CisgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmcmFn
MiIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisKKworICBwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKworICB1bmlmb3JtIGZsb2F0IGJhejsKKworICB2YXJ5aW5nIHZlYzIgVGV4Q29vcmQ7
CisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgVGV4Q29v
cmQucywgMC4wLCAxLjApOworICB9Cis8L3NjcmlwdD4KKworCis8c3R5bGU+Y2FudmFzeyBwb3Np
dGlvbjphYnNvbHV0ZTsgfTwvc3R5bGU+Cis8L2hlYWQ+PGJvZHk+CisgIDxjYW52YXMgaWQ9Imds
IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48L2NhbnZhcz4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2luZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJjYjk1
YTQ5YzFiMWZjOGRmOTZkNWMxZjY0NTNlYjYzMGFjMDU4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvaW5kZXguaHRtbApAQCAtMCwwICsxLDk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdo
dCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
KyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0
bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisq
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1F
UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUK
KyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklB
TFMuCisqLworCistLT4KKyAgICA8dGl0bGU+V2ViR0wgdGVzdHM8L3RpdGxlPgorICA8L2hlYWQ+
CisgIDxib2R5PgorICAgIAorICAgIDxoMT5UZXN0cyBmb3IgdGhlIFdlYkdMIGNhbnZhcyBjb250
ZXh0PC9oMT4KKyAgICAKKyAgICA8aDI+VGhlc2UgdGVzdHMgYXJlIGludGVuZGVkIHRvIHNlcnZl
IHRoZSBmb2xsb3dpbmcgcHVycG9zZXM6PC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+QXNzZXJ0
IHNwZWMgY29uZm9ybWFuY2UgKHNvIHRoYXQgV2ViR0wgcGFnZXMgd29yayB0aGUgc2FtZSBhY3Jv
c3MgYnJvd3NlcnMgYW5kIGhhcmR3YXJlKTwvbGk+CisgICAgICA8bGk+Q2hlY2sgdGhlIHNhZmV0
eSBvZiB0aGUgR0wgYmluZGluZyAoYm91bmRzIGNoZWNraW5nLCBzYW1lIG9yaWdpbiBwb2xpY3kp
PC9saT4KKyAgICAgIDxsaT5Qcm92aWRlIHBlcmZvcm1hbmNlIG51bWJlcnMgZm9yIGRldmVsb3Bl
cnM8L2xpPgorICAgIDwvdWw+CisKKyAgICA8aDI+VGVzdCBydW5uZXJzPC9oMj4KKyAgICA8dWw+
CisgICAgICA8bGk+PGEgaHJlZj0iYWxsX3Rlc3RzX2xpbmtvbmx5Lmh0bWwiPlJ1biB0ZXN0cyBt
YW51YWxseTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9ImFsbF90ZXN0cy5odG1sIj5SdW4g
YWxsIHRlc3RzIGluIHBhcmFsbGVsPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iYWxsX3Rl
c3RzX3NlcXVlbnRpYWwuaHRtbCI+UnVuIGFsbCB0ZXN0cyBzZXF1ZW50aWFsbHk8L2E+PC9saT4K
KyAgICA8L3VsPgorCisKKyAgICA8aDI+RGVtb3M8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT48
YSBocmVmPSJkZW1vcy9vcGVuZ2xfd2ViLmh0bWwiPk9wZW5HTCBmb3IgdGhlIHdlYjwvYT4gKHJl
cXVpcmVzIHdvcmtpbmcgRkJPcyBhbmQgbnVsbCB0ZXh0dXJlcyBvciB1c2luZyBjYW52YXNlcyBh
cyB0ZXh0dXJlcyk8L2xpPgorICAgICAgPGxpPjxhIGhyZWY9ImRlbW9zL3ZpZGVvLmh0bWwiPkdy
ZWVuIHNjcmVlbiB2aWRlbyBkZW1vIHdpdGggYSBjb2xvciByZW1hcHBpbmcgZmlsdGVyPC9hPiAo
cmVxdWlyZXMgbG9hZGluZyAmbHQ7dmlkZW8+IHRvIHRleHR1cmUgd2l0aCB0ZXhJbWFnZTJEKTwv
bGk+CisgICAgPC91bD4KKworICAgIDxoMj5SdW5uaW5nIHRoZSB0ZXN0czwvaDI+CisKKyAgICA8
b2w+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2xlYXJuaW5nd2ViZ2wuY29tL2Jsb2cvP3A9
MTEiPkluc3RhbGwgYSBicm93c2VyIHdpdGggV2ViR0wgc3VwcG9ydDwvYT48L2xpPgorICAgICAg
PGxpPk9wZW4gb25lIG9mIHRoZSB0ZXN0IHJ1bm5lcnMgbGlua2VkIGFib3ZlIGluIHlvdXIgYnJv
d3Nlci48L2xpPgorICAgICAgPGxpPkZvciBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgdGVzdHMsIGdv
IHRoZSA8YSBocmVmPSJodHRwOi8vZ2l0aHViLmNvbS9raWcvY2FudmFzM2QtdGVzdHMiPkdpdEh1
YiBwYWdlPC9hPiwgc2VlIHRoZSByZWFkbWUsIGFuZCBjbG9uZSB0aGUgcmVwby48L2xpPgorICAg
IDwvb2w+CisKKyAgICA8aDI+V2FudCB0byBjb250cmlidXRlPzwvaDI+CisKKyAgICA8cD5TZWUg
dGhlIDxhIGhyZWY9IlJFQURNRS5tZCI+UkVBRE1FPC9hPi48L3A+CisgICAgPHA+U2VlIHRoZSA8
YSBocmVmPSJodHRwOi8vZ2l0aHViLmNvbS9raWcvY2FudmFzM2QtdGVzdHMiPkdpdEh1YiBwYWdl
PC9hPi48L3A+CisgICAgPHA+TWFpbCBtZSBhdCA8YSBocmVmPSJtYWlsdG86aWxtYXJpLmhlaWtr
aW5lbkBnbWFpbC5jb20iPmlsbWFyaS5oZWlra2luZW5AZ21haWwuY29tPC9hPjwvcD4KKworCisg
ICAgPGgyPkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIFdlYkdMPC9oMj4KKworICAgIDx1bD4KKyAg
ICAgIDxsaT48YSBocmVmPSJodHRwOi8vcGxhbmV0LXdlYmdsLm9yZyI+UGxhbmV0IFdlYkdMPC9h
PjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2xlYXJuaW5nd2ViZ2wuY29tIj5MZWFy
bmluZyBXZWJHTDwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cua2hyb25v
cy5vcmcvbWVzc2FnZV9ib2FyZHMvdmlld2ZvcnVtLnBocD9mPTM0Ij5XZWJHTCBvbiBLaHJvbm9z
IE1lc3NhZ2UgQm9hcmRzPC9hPjwvbGk+CisgICAgPC91bD4KKworICAgIDxoMj5EZXZlbG9wZXIg
bGlua3M8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2J1Z3ppbGxh
Lm1vemlsbGEub3JnL2J1Z2xpc3QuY2dpP3F1aWNrc2VhcmNoPXdlYmdsIj5XZWJHTCBvbiBNb3pp
bGxhIEJ1Z3ppbGxhPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9idWd6aWxs
YS53ZWJraXQub3JnL2J1Z2xpc3QuY2dpP3F1aWNrc2VhcmNoPXdlYmdsIj5XZWJHTCBvbiBXZWJL
aXQgQnVnemlsbGE8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vY29kZS5nb29n
bGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2xpc3Q/cT1sYWJlbDozRC1XZWJHTCI+V2ViR0wgb24g
Q2hyb21pdW0gQnVnemlsbGE8L2E+PC9saT4KKyAgICA8L3VsPgorCisKKyAgICA8aDI+TGljZW5z
ZTwvaDI+CisKKyAgICA8cD4KKyAgICAgIFRoZXNlIHRlc3RzIGFyZSByZWxlYXNlZCB1bmRlciB0
aGUgQlNEIGxpY2Vuc2UuIFRoZSBpbWFnZXMgYW5kIHZpZGVvcyB1c2VkIGluIHRoZSB0ZXN0cyBh
cmUgdGhlIHJlc3BlY3RpdmUgcHJvcGVydHkgb2YgdGhlaXIgYXV0aG9ycy4KKyAgICA8L3A+CisK
KyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9wZXJmb3JtYW5jZS9DUFV2c0dQ
VS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9wZXJmb3JtYW5jZS9DUFV2c0dQVS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMWY5
MWNiYzhhYzQwNGMxYjYwOWY0YTc3ODVhN2ZmMDYzMWM5MGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL3BlcmZvcm1hbmNlL0NQVXZzR1BVLmh0bWwKQEAgLTAsMCArMSwzNjAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKwor
LyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorCitUZXN0cy5hdXRv
cnVuID0gZmFsc2U7CitUZXN0cy5tZXNzYWdlID0gIlRoaXMgbWlnaHQgdGFrZSBhIGZldyBzZWNv
bmRzIHRvIHJ1biIKKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24oKSB7CisgIHZhciBnbCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpLmdldENvbnRleHQoR0xfQ09OVEVYVF9JRCk7
CisgIHZhciBjdHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnMmQnKS5nZXRDb250ZXh0KCcy
ZCcpOworICByZXR1cm4gW2dsLCBjdHhdOworfQorCit2YXIga2VybmVsID0gWzAuMDA2LCAwLjA2
MSwgMC4yNDIsIDAuMzgzLCAwLjI0MiwgMC4wNjEsIDAuMDA2XTsKKworVGVzdHMudGVzdEdQVSA9
IGZ1bmN0aW9uKGdsLCBjdHgpIHsKKyAgVGVzdHMuZ3B1R2F1c3NpYW5CbHVyKGdsKTsKK30KKwor
VGVzdHMudGVzdENQVSA9IGZ1bmN0aW9uKGdsLCBjdHgpIHsKKyAgVGVzdHMuY3B1R2F1c3NpYW5C
bHVyKGN0eCk7Cit9CisKK2Z1bmN0aW9uIGhibHVyKGN0eCxpZGF0YSkgeworICB2YXIgZCA9IGlk
YXRhLmRhdGE7CisgIHZhciByZXMgPSBjdHguY3JlYXRlSW1hZ2VEYXRhKDI1NiwyNTYpOworICB2
YXIgcmQgPSByZXMuZGF0YTsKKyAgdmFyIHN1bVI9MC4wLHN1bUc9MC4wLHN1bUI9MC4wLHN1bUE9
MC4wLCBrdj0wLjA7CisgIHZhciBjb2xfb2Zmc2V0ID0gMCwgcm93X29mZnNldCA9IDAsIGs0ID0g
MDsKKyAgZm9yICh2YXIgeT0wOyB5PGlkYXRhLmhlaWdodDsgKyt5KSB7CisgICAgY29sX29mZnNl
dCA9IHkgKiBpZGF0YS53aWR0aCAqIDQ7CisgICAgZm9yICh2YXIgeD0zOyB4PGlkYXRhLndpZHRo
LTM7ICsreCkgeworICAgICAgcm93X29mZnNldCA9IGNvbF9vZmZzZXQreCo0OworICAgICAgc3Vt
Uj1zdW1HPXN1bUI9c3VtQT0wLjA7CisgICAgICBmb3IgKHZhciBrPS0zOyBrPDQ7ICsraykgewor
ICAgICAgICBrNCA9IGsgKiA0OworICAgICAgICBrdiA9IGtlcm5lbFtrKzNdOworICAgICAgICBz
dW1SICs9IGRbcm93X29mZnNldCtrNCswXSAqIGt2OworICAgICAgICBzdW1HICs9IGRbcm93X29m
ZnNldCtrNCsxXSAqIGt2OworICAgICAgICBzdW1CICs9IGRbcm93X29mZnNldCtrNCsyXSAqIGt2
OworICAgICAgICBzdW1BICs9IGRbcm93X29mZnNldCtrNCszXSAqIGt2OworICAgICAgfQorICAg
ICAgcmRbcm93X29mZnNldCswXSA9IE1hdGguZmxvb3Ioc3VtUik7CisgICAgICByZFtyb3dfb2Zm
c2V0KzFdID0gTWF0aC5mbG9vcihzdW1HKTsKKyAgICAgIHJkW3Jvd19vZmZzZXQrMl0gPSBNYXRo
LmZsb29yKHN1bUIpOworICAgICAgcmRbcm93X29mZnNldCszXSA9IE1hdGguZmxvb3Ioc3VtQSk7
CisgICAgfQorICB9CisgIHZhciB4ciA9IDM7CisgIGZvciAodmFyIHk9MDsgeTxpZGF0YS5oZWln
aHQ7ICsreSkgeworICAgIGNvbF9vZmZzZXQgPSB5ICogaWRhdGEud2lkdGggKiA0OworICAgIGZv
ciAodmFyIHg9MDsgeDx4cjsgKyt4KSB7CisgICAgICByb3dfb2Zmc2V0ID0gY29sX29mZnNldCt4
KjQ7CisgICAgICBzdW1SPXN1bUc9c3VtQj1zdW1BPTAuMDsKKyAgICAgIGZvciAodmFyIGs9LTM7
IGs8NDsgKytrKSB7CisgICAgICAgIGlmIChrK3ggPCAwKQorICAgICAgICAgIGs0ID0gMDsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgIGs0ID0gayAqIDQ7CisgICAgICAgIGt2ID0ga2VybmVsW2sr
M107CisgICAgICAgIHN1bVIgKz0gZFtyb3dfb2Zmc2V0K2s0KzBdICoga3Y7CisgICAgICAgIHN1
bUcgKz0gZFtyb3dfb2Zmc2V0K2s0KzFdICoga3Y7CisgICAgICAgIHN1bUIgKz0gZFtyb3dfb2Zm
c2V0K2s0KzJdICoga3Y7CisgICAgICAgIHN1bUEgKz0gZFtyb3dfb2Zmc2V0K2s0KzNdICoga3Y7
CisgICAgICB9CisgICAgICByZFtyb3dfb2Zmc2V0KzBdID0gTWF0aC5mbG9vcihzdW1SKTsKKyAg
ICAgIHJkW3Jvd19vZmZzZXQrMV0gPSBNYXRoLmZsb29yKHN1bUcpOworICAgICAgcmRbcm93X29m
ZnNldCsyXSA9IE1hdGguZmxvb3Ioc3VtQik7CisgICAgICByZFtyb3dfb2Zmc2V0KzNdID0gTWF0
aC5mbG9vcihzdW1BKTsKKyAgICB9CisgIH0KKyAgdmFyIHhyID0gaWRhdGEud2lkdGgtMzsKKyAg
Zm9yICh2YXIgeT0wOyB5PGlkYXRhLmhlaWdodDsgKyt5KSB7CisgICAgY29sX29mZnNldCA9IHkg
KiBpZGF0YS53aWR0aCAqIDQ7CisgICAgZm9yICh2YXIgeD14cjsgeDxpZGF0YS53aWR0aDsgKyt4
KSB7CisgICAgICByb3dfb2Zmc2V0ID0gY29sX29mZnNldCt4KjQ7CisgICAgICBzdW1SPXN1bUc9
c3VtQj1zdW1BPTAuMDsKKyAgICAgIGZvciAodmFyIGs9LTM7IGs8NDsgKytrKSB7CisgICAgICAg
IGlmIChrK3ggPj0gaWRhdGEud2lkdGgpCisgICAgICAgICAgazQgPSAoaWRhdGEud2lkdGgteC0x
KSo0OworICAgICAgICBlbHNlCisgICAgICAgICAgazQgPSBrICogNDsKKyAgICAgICAga3YgPSBr
ZXJuZWxbayszXTsKKyAgICAgICAgc3VtUiArPSBkW3Jvd19vZmZzZXQrazQrMF0gKiBrdjsKKyAg
ICAgICAgc3VtRyArPSBkW3Jvd19vZmZzZXQrazQrMV0gKiBrdjsKKyAgICAgICAgc3VtQiArPSBk
W3Jvd19vZmZzZXQrazQrMl0gKiBrdjsKKyAgICAgICAgc3VtQSArPSBkW3Jvd19vZmZzZXQrazQr
M10gKiBrdjsKKyAgICAgIH0KKyAgICAgIHJkW3Jvd19vZmZzZXQrMF0gPSBNYXRoLmZsb29yKHN1
bVIpOworICAgICAgcmRbcm93X29mZnNldCsxXSA9IE1hdGguZmxvb3Ioc3VtRyk7CisgICAgICBy
ZFtyb3dfb2Zmc2V0KzJdID0gTWF0aC5mbG9vcihzdW1CKTsKKyAgICAgIHJkW3Jvd19vZmZzZXQr
M10gPSBNYXRoLmZsb29yKHN1bUEpOworICAgIH0KKyAgfQorICByZXR1cm4gcmVzOworfQorCitm
dW5jdGlvbiB2Ymx1cihjdHgsaWRhdGEpIHsKKyAgdmFyIGQgPSBpZGF0YS5kYXRhOworICB2YXIg
cmVzID0gY3R4LmNyZWF0ZUltYWdlRGF0YSgyNTYsMjU2KTsKKyAgdmFyIHJkID0gcmVzLmRhdGE7
CisgIHZhciBzdW1SPTAuMCxzdW1HPTAuMCxzdW1CPTAuMCxzdW1BPTAuMCwga3Y9MC4wOworICB2
YXIgY29sX29mZnNldCA9IDAsIHJvd19vZmZzZXQgPSAwLCBrZmFjID0gaWRhdGEud2lkdGgqNDsK
KyAgZm9yICh2YXIgeT0zOyB5PGlkYXRhLmhlaWdodC0zOyArK3kpIHsKKyAgICBjb2xfb2Zmc2V0
ID0geSAqIGlkYXRhLndpZHRoICogNDsKKyAgICBmb3IgKHZhciB4PTA7IHg8aWRhdGEud2lkdGg7
ICsreCkgeworICAgICAgcm93X29mZnNldCA9IGNvbF9vZmZzZXQreCo0OworICAgICAgc3VtUj1z
dW1HPXN1bUI9c3VtQT0wLjA7CisgICAgICBmb3IgKHZhciBrPS0zOyBrPDQ7ICsraykgeworICAg
ICAgICBrNCA9IGsgKiBrZmFjOworICAgICAgICBrdiA9IGtlcm5lbFtrKzNdOworICAgICAgICBz
dW1SICs9IGRbcm93X29mZnNldCtrNCswXSAqIGt2OworICAgICAgICBzdW1HICs9IGRbcm93X29m
ZnNldCtrNCsxXSAqIGt2OworICAgICAgICBzdW1CICs9IGRbcm93X29mZnNldCtrNCsyXSAqIGt2
OworICAgICAgICBzdW1BICs9IGRbcm93X29mZnNldCtrNCszXSAqIGt2OworICAgICAgfQorICAg
ICAgcmRbcm93X29mZnNldCswXSA9IE1hdGguZmxvb3Ioc3VtUik7CisgICAgICByZFtyb3dfb2Zm
c2V0KzFdID0gTWF0aC5mbG9vcihzdW1HKTsKKyAgICAgIHJkW3Jvd19vZmZzZXQrMl0gPSBNYXRo
LmZsb29yKHN1bUIpOworICAgICAgcmRbcm93X29mZnNldCszXSA9IE1hdGguZmxvb3Ioc3VtQSk7
CisgICAgfQorICB9CisgIHZhciB5ciA9IDM7CisgIGZvciAodmFyIHk9MDsgeTx5cjsgKyt5KSB7
CisgICAgY29sX29mZnNldCA9IHkgKiBpZGF0YS53aWR0aCAqIDQ7CisgICAgZm9yICh2YXIgeD0w
OyB4PGlkYXRhLndpZHRoOyArK3gpIHsKKyAgICAgIHJvd19vZmZzZXQgPSBjb2xfb2Zmc2V0K3gq
NDsKKyAgICAgIHN1bVI9c3VtRz1zdW1CPXN1bUE9MC4wOworICAgICAgZm9yICh2YXIgaz0tMzsg
azw0OyArK2spIHsKKyAgICAgICAgaWYgKGsreSA8IDApCisgICAgICAgICAgazQgPSAwOworICAg
ICAgICBlbHNlCisgICAgICAgICAgazQgPSBrICoga2ZhYzsKKyAgICAgICAga3YgPSBrZXJuZWxb
ayszXTsKKyAgICAgICAgc3VtUiArPSBkW3Jvd19vZmZzZXQrazQrMF0gKiBrdjsKKyAgICAgICAg
c3VtRyArPSBkW3Jvd19vZmZzZXQrazQrMV0gKiBrdjsKKyAgICAgICAgc3VtQiArPSBkW3Jvd19v
ZmZzZXQrazQrMl0gKiBrdjsKKyAgICAgICAgc3VtQSArPSBkW3Jvd19vZmZzZXQrazQrM10gKiBr
djsKKyAgICAgIH0KKyAgICAgIHJkW3Jvd19vZmZzZXQrMF0gPSBNYXRoLmZsb29yKHN1bVIpOwor
ICAgICAgcmRbcm93X29mZnNldCsxXSA9IE1hdGguZmxvb3Ioc3VtRyk7CisgICAgICByZFtyb3df
b2Zmc2V0KzJdID0gTWF0aC5mbG9vcihzdW1CKTsKKyAgICAgIHJkW3Jvd19vZmZzZXQrM10gPSBN
YXRoLmZsb29yKHN1bUEpOworICAgIH0KKyAgfQorICB2YXIgeXIgPSBpZGF0YS5oZWlnaHQtMzsK
KyAgZm9yICh2YXIgeT15cjsgeTxpZGF0YS5oZWlnaHQ7ICsreSkgeworICAgIGNvbF9vZmZzZXQg
PSB5ICogaWRhdGEud2lkdGggKiA0OworICAgIGZvciAodmFyIHg9MDsgeDxpZGF0YS53aWR0aDsg
Kyt4KSB7CisgICAgICByb3dfb2Zmc2V0ID0gY29sX29mZnNldCt4KjQ7CisgICAgICBzdW1SPXN1
bUc9c3VtQj1zdW1BPTAuMDsKKyAgICAgIGZvciAodmFyIGs9LTM7IGs8NDsgKytrKSB7CisgICAg
ICAgIGlmIChrK3kgPj0gaWRhdGEuaGVpZ2h0KQorICAgICAgICAgIGs0ID0gKGlkYXRhLmhlaWdo
dC15LTEpKmtmYWM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBrNCA9IGsgKiBrZmFjOworICAg
ICAgICBrdiA9IGtlcm5lbFtrKzNdOworICAgICAgICBzdW1SICs9IGRbcm93X29mZnNldCtrNCsw
XSAqIGt2OworICAgICAgICBzdW1HICs9IGRbcm93X29mZnNldCtrNCsxXSAqIGt2OworICAgICAg
ICBzdW1CICs9IGRbcm93X29mZnNldCtrNCsyXSAqIGt2OworICAgICAgICBzdW1BICs9IGRbcm93
X29mZnNldCtrNCszXSAqIGt2OworICAgICAgfQorICAgICAgcmRbcm93X29mZnNldCswXSA9IE1h
dGguZmxvb3Ioc3VtUik7CisgICAgICByZFtyb3dfb2Zmc2V0KzFdID0gTWF0aC5mbG9vcihzdW1H
KTsKKyAgICAgIHJkW3Jvd19vZmZzZXQrMl0gPSBNYXRoLmZsb29yKHN1bUIpOworICAgICAgcmRb
cm93X29mZnNldCszXSA9IE1hdGguZmxvb3Ioc3VtQSk7CisgICAgfQorICB9CisgIHJldHVybiBy
ZXM7Cit9CisKK1Rlc3RzLmNwdUdhdXNzaWFuQmx1ciA9IGZ1bmN0aW9uKGN0eCkgeworICB2YXIg
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjcHVzdGF0Jyk7CisgIHZhciB0MCA9IG5ldyBE
YXRlKCkuZ2V0VGltZSgpOworICBjdHguZHJhd0ltYWdlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdsb2dvJyksMCwwKTsKKyAgdmFyIGlkYXRhID0gY3R4LmdldEltYWdlRGF0YSgwLDAsMjU2LDI1
Nik7CisgIGZvciAodmFyIGk9MDsgaTwxOyBpKyspeworICAgIGlkYXRhID0gaGJsdXIoY3R4LGlk
YXRhKTsKKyAgICBpZGF0YSA9IHZibHVyKGN0eCxpZGF0YSk7CisgIH0KKyAgY3R4LnB1dEltYWdl
RGF0YShpZGF0YSwgMCwgMCk7CisgIHZhciB0MSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICBz
LnRleHRDb250ZW50ID0gJ0RvbmUhIFRpbWU6ICcrKHQxLXQwKSsnbXMnOworfQorCitUZXN0cy5n
cHVHYXVzc2lhbkJsdXIgPSBmdW5jdGlvbihnbCkgeworICB2YXIgcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdncHVzdGF0Jyk7CisgIHZhciB0MCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwor
CisgIHZhciBmYm8xID0gbmV3IEZCTyhnbCwgMjU2LCAyNTYpOworICB2YXIgZmJvMiA9IG5ldyBG
Qk8oZ2wsIDI1NiwgMjU2KTsKKyAgdmFyIGhibHVyID0gbmV3IEZpbHRlcihnbCwgJ2lkZW50aXR5
LXZlcnQnLCAnaGJsdXItZnJhZycpOworICB2YXIgdmJsdXIgPSBuZXcgRmlsdGVyKGdsLCAnaWRl
bnRpdHktdmVydCcsICd2Ymx1ci1mcmFnJyk7CisgIHZhciBpZGVudGl0eSA9IG5ldyBGaWx0ZXIo
Z2wsICdpZGVudGl0eS12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKKyAgdmFyIGlkZW50aXR5Rmxp
cCA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycp
OworCisgIGdsLnZpZXdwb3J0KDAsMCwyNTYsMjU2KTsKKyAgZ2wuY2xlYXJDb2xvcigwLDAsMSwx
KTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQp
OworICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOworICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRF
WFRVUkUwKTsKKworICBmYm8xLnVzZSgpOworICB2YXIgdGV4ID0gbG9hZFRleHR1cmUoZ2wsIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dvJykpOworICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOworICBpZGVudGl0eUZsaXAuYXBwbHkoKTsgLy8gZHJhdyBpbWFnZQorCisg
IC8vIGdhdXNzaWFuIGJsdXIKKyAgZm9yICh2YXIgaT0wOyBpPDEwMDA7IGkrKykgeworICAgIGZi
bzIudXNlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgZmJvMS50ZXh0dXJl
KTsKKyAgICBoYmx1ci5hcHBseShmdW5jdGlvbihmKXsKKyAgICAgIGYudW5pZm9ybTFmKCd3aWR0
aCcsIDI1Ni4wKTsKKyAgICAgIGYudW5pZm9ybTFpKCdUZXh0dXJlJywgMCk7CisgICAgfSk7Cisg
ICAgZmJvMS51c2UoKTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBmYm8yLnRl
eHR1cmUpOworICAgIHZibHVyLmFwcGx5KGZ1bmN0aW9uKGYpeworICAgICAgZi51bmlmb3JtMWYo
J2hlaWdodCcsIDI1Ni4wKTsKKyAgICAgIGYudW5pZm9ybTFpKCdUZXh0dXJlJywgMCk7CisgICAg
fSk7CisgIH0KKworICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwor
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBmYm8xLnRleHR1cmUpOworICBpZGVudGl0
eS5hcHBseSgpOyAvLyBkcmF3IGJsdXJyZWQgaW1hZ2Ugb24gc2NyZWVuCisKKyAgZmJvMS5kZXN0
cm95KCk7CisgIGZibzIuZGVzdHJveSgpOworICBoYmx1ci5kZXN0cm95KCk7CisgIHZibHVyLmRl
c3Ryb3koKTsKKyAgaWRlbnRpdHkuZGVzdHJveSgpOworICBpZGVudGl0eUZsaXAuZGVzdHJveSgp
OworICBnbC5kZWxldGVUZXh0dXJlKHRleCk7CisgIGNoZWNrRXJyb3IoZ2wsICJlbmQiKTsKKyAg
dmFyIHQxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgIHMudGV4dENvbnRlbnQgPSAnRG9uZSEg
VGltZTogJysodDEtdDApKydtcyc7Cit9CisKKworPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVu
dGl0eS12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisKKyAgYXR0cmlidXRlIHZlYzMg
VmVydGV4OworICBhdHRyaWJ1dGUgdmVjMiBUZXg7CisKKyAgdmFyeWluZyB2ZWM0IHRleENvb3Jk
MDsKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIHRleENvb3JkMCA9IHZlYzQoVGV4LCAwLjAsIDAu
MCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKKyAgfQorPC9zY3JpcHQ+
Cis8c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4KKworICBhdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CisgIGF0dHJpYnV0ZSB2ZWMyIFRleDsKKwor
ICB2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOworICB2b2lkIG1haW4oKQorICB7CisgICAgdGV4Q29v
cmQwID0gdmVjNChUZXgucywgMS4wLVRleC50LCAwLjAsIDAuMCk7CisgICAgZ2xfUG9zaXRpb24g
PSB2ZWM0KFZlcnRleCwgMS4wKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVudGl0
eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworICB1bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOworCisgIHZhcnlpbmcgdmVj
NCB0ZXhDb29yZDA7CisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0
dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlk
PSJoYmx1ci1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworICBwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKworICB1bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOworICB1bmlmb3Jt
IGZsb2F0IHdpZHRoOworCisgIHZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7CisgIHZvaWQgbWFpbigp
CisgIHsKKyAgICBmbG9hdCBrZXJuZWxbN10gPSBmbG9hdFs3XSgwLjAwNiwgMC4wNjEsIDAuMjQy
LCAwLjM4MywgMC4yNDIsIDAuMDYxLCAwLjAwNik7CisgICAgaW50IGk7CisgICAgZmxvYXQgc3Rl
cCA9IDEuMCAvIHdpZHRoOworICAgIHZlYzQgc3VtID0gdmVjNCgwLjApOworICAgIGZvciAoaT0t
MzsgaTw9MzsgaSsrKSB7CisgICAgICB2ZWM0IHRtcCA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhD
b29yZDAuc3QgKyB2ZWMyKGZsb2F0KGkpKnN0ZXAsIDAuMCkpOworICAgICAgc3VtID0gKHRtcCAq
IGtlcm5lbFtpKzNdKSArIHN1bTsKKyAgICB9CisgICAgZ2xfRnJhZ0NvbG9yID0gc3VtOworICB9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZibHVyLWZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJh
Z21lbnQiPgorCisgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgIHVuaWZvcm0gc2FtcGxl
cjJEIFRleHR1cmU7CisgIHVuaWZvcm0gZmxvYXQgaGVpZ2h0OworCisgIHZhcnlpbmcgdmVjNCB0
ZXhDb29yZDA7CisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBmbG9hdCBrZXJuZWxbN10gPSBmbG9h
dFs3XSgwLjAwNiwgMC4wNjEsIDAuMjQyLCAwLjM4MywgMC4yNDIsIDAuMDYxLCAwLjAwNik7Cisg
ICAgaW50IGk7CisgICAgZmxvYXQgc3RlcCA9IDEuMCAvIGhlaWdodDsKKyAgICB2ZWM0IHN1bSA9
IHZlYzQoMC4wKTsKKyAgICBmb3IgKGk9LTM7IGk8PTM7IGkrKykgeworICAgICAgdmVjNCB0bXAg
PSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0ICsgdmVjMigwLjAsIGZsb2F0KGkpKnN0
ZXApKTsKKyAgICAgIHN1bSA9ICh0bXAgKiBrZXJuZWxbaSszXSkgKyBzdW07CisgICAgfQorICAg
IGdsX0ZyYWdDb2xvciA9IHN1bTsKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+PGJvZHk+Cis8aW1n
IGlkPSJsb2dvIiBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBUUFBQUFFQUNBWUFBQUJjY3FobUFBQWdBRWxFUVZSNG5PMTliV2lVWjliLytCSmZzUDhv
SmZYbHlVTUROa1NTZm52R2hnaDJRYWs2SVBSWko5UVB0VElsWU1RMlJRdldIYWdTeGNnaUNZVHR1
bHNDQ2luYjFtV2ZyaXkyMHBTbkxrTDFRMkZxdjVSa3RUaGhheHNlV0ZHWEZRYlpkYy8vdzh5NTVs
em5QdGZMZmM5OUo2T1pDdzczUFRPWlNZejUvYzd2dkZ6blNrRmpOVlpqemR1Vm11c2ZvTEVhcTdI
bWJqVUlvTEVhYXg2dkJnRTBWbVBONDlVZ2dNWnFySG04R2dUUVdJMDFqMWVEQUJxcnNlYnhhaEJB
WXpYV1BGNE5BbWlzeHBySHEwRUFqZFZZODNnMUNLQ3hHbXNlcndZQlBLYXJXSnlHczJjL2hUZmYv
QmplZlBOaldML3RWN0E3ZXdSV3RRd29TNlg2MWRWazlPdFh0UXpBMHgxSDFXZjlmUC83OE9hYkg4
UFpzNS9DNU9Ra2xFcWx1ZjVuTjFiTXEwRUFkYnhtWm1aZzRvdHZGY0Fwc09mS0tFbTgrZWJITVBI
RnQzRHYzcjI1L2xVMVZzVFZJSUE2V2ZmdTNWTmdmN3JqcUIvUTF4NkUxTnFEOEhUSFVWamNjeG9X
OTV5R1JiMi9oYWFCUDhEU1gzd0t5MC84R1phTlhvTmxvOWZnLzMzMEYvaC9ILzBGL25QaS8rQS9K
LzVQUGIvOHhKOWgrWWsvdzdNSFBvVFU2eC9Cb3Q3ZnFzL0N6MCt0UGVoRkRBMVNlUHhXZ3dEbVlK
VktKYmgzN3g2OGYrWi80T2Y3MzNlRHZRTHkxSTRSQlc0RUx3S1pBcDNmSS9pcC9lZkUvNG5QMC9m
d3oxdCs0cy9RTlBBSFNHVitBMnZTdjRSVTU5dk8wT0xuKzkrSHMyYy9iUkJDbmE0R0FjemlLaFFL
OE9hYkg1ZkJZL1Bxblc4clQ0NGVtcG9KL0NiZ285ZW5aZ00rdlY5KzRzOGFDWEREbnluMStrZXd1
T2QwbWFnTWhMQW0vVXQ0Lzh6L3dNUVgzemJ5Q1hXeUdnU1E0Q3FWU2pEeHhiZDJMNy8yWUZsdXYv
NFJMUDNGcDVvdFAvRm5kZlVsQVJ2b1RTVEFWWUpKQWRpTS8zeExmL0VwcERLL01ZWVFxMW9HNE0w
M1A0Ykp5Y201L20rYTE2dEJBQW1zeWNsSkZjdTdQRHhLZXJ6NmdOOUVBRDZndDZrQUUvQlJDVWln
NTFmSjhOK244Z3JzZC9KMHgxRjQ4ODJQb1ZBb3pQVi8zYnhiRFFLSWFXRk1MOHI3dFFjaDlkS2dC
bnB1M1B2YlNFQUNId0kxS2dGSTh0OG5ETENCbi80YnVDbDF3SDVYYTlLL2hMTm5QMjJFQ0xPMEdn
UlE0ekpLL0hXdktVK2ZldjBqU0wzK1VUbUJWcmx5OEljbEFRVGV6d2IvRkFuOHRCcGdJNEdmRGY3
Skt3ZGc4LzRtRXNCL2YyckhTSUFNR2lIQzdLd0dBVVJjRTE5OEMrdTMvU3JvN1R2Zmh0U09rU3J3
KzhlY0JPQWlBWmNLaUNML2ZaS0J0aHlBai93M2daLytPK252QUV1UVVubXhrVGhNWmpVSUlNUkNt
UitJN1p0Zmh0UUxlVmpVKzlzeThDdWdqMElDVVZSQVZPOVBDZUMvMy90ZnErZkg1K0tRLzVRRXBO
OUQ2dldQUkZYUUNBL2lYdzBDOEZqMzd0MkRzMmMvMVlIZi9ISlo1aFBnYzZQQTErNURxZ0FYQVVR
RmYxd0tJS3o4dDRGZkl3RWtVZFp2OEhUSFVUaDc5dE81L3JONElsYURBQ3lyVkNvWmdiKzQ1N1NT
K2h6MDZwNnFnSXBoeDEyWVpLQ05CR29CdjVRSWRDbUJwQlVBVlVtVU5CdEVrTXhxRUlCaFRYenhy
ZXp4WHhvc3kxT004d1VTNEdSZ1VnQlJFb0lVZkxWSWY1K0tRTnl4djY4Q1NQV1BhU3JBUlFScjBy
K0VpUysrbmVzL21jZHlOUWlBclVLaG9DZjNpTlJINEh1Qm4zaC9pUVM0RW5qMndJY2FPUEF4QmYr
ekJ6NVVJSTNEKzl1SWdIdisvMzd2ZnhPWC95YnZuK29mMDhoVS9ZNFpFYXpmOXF0RzFTRGthaEJB
WlJXTDAvRG1teC9yNWJ4S2NvOTZmVzQySXVCL3RGUUIyTUlBbXdMZy9meEptYXYwRjlYNys4VCtv
dmVuaVZVYVpnbkp3amZmL0xpUktQUmNEUUlBZ1BmUC9FOFErSjF2UStxbFFSWHJTeVN3cVBlM3Fz
RW5UQmlBM3Q5WENWQkFJVGlUQkQ4bEFhNEVzQkxnSW9HZkRmNEovdnU5LzRXaFkza1lHam9OaHc4
ZmhzT0hENWNmSDh1cisrRytMWEQ0OEdINCtmNzNZWGYyQ0R4NzRFUFlzT2ZYQWU4dmdWLzdQYitR
MTRoZ1ZjdEFJei9nc2VZMUFSUUtCYjF6ci9ubDhoOVJ4ZXN2N2pudEpJSEk0WUNqSkdpcUJpd2J2
UVpMZi9GcHpkbi9LRXFBNXlCc0N1RFpBeC9Dd0J2dndOQ3hQSHgrYmovY09kVU5jSFVud05XZFVQ
cnFSUFVLUStwNXVMb1RZQ3dOTUphRzB2RXV1SnpmQ3BmelcySG9XQjV5dVJ6OGZQLzdWckp0aEFY
aDE3d2tnSHYzN2dYbFBzYjVMK1RMZ0VmcFh6RkZBaEZDQVZNdWdIci9adzk4cUlHZjV3Q29Fa0NB
aGQzOEU5V1duL2l6NXZsTjNwOVhLemlCUFh2Z1EvajUvdmRoNkZnZWZuOThNNVNPZDhHajRZMEFW
M2ZDd3pPOUFOQVBBRU9hSVZrZ09aU09kOEdkVTkxd09iOFZCdDU0QjNLNVhGa3hWSlNZSW1wQ0JO
aFYyRmpCTmU4SVlISnlVay95clhzTlVodjJLdkFyNENNUkVDVlFpd29RRzRRc1NvQW56QkQwVWpt
UXFvRWt5QUJWZ0N2NUZ6YnhsK29mZzUvdmZ4OE9IejRNbC9OYm9YUzhTeU1GdUxvVE9DR1VyYjlL
RElRVWh2dTJWQWxoeDBqNS81SnRSMjZvQVgzVkRRRjgvMGtlSHYzdFdxTGY0K3paVDhWK2ZRMzhT
Wk9BcFJxQWoyMUtnS29COU14Smh3RlU5bk1sd0FrZ2ROMmZsUHllUGZBaDVISTVwUTRlbk95RzB2
R3VjbGdna2tFL3ViNm9FY0t0d1hZWTd0c0NBMis4VXlaNDFqdlFTQktXVjEwUVFPbXJFM0Qzd0dy
NC9wTjhJcDlmTEU3RHovZS9yNE1mdmI1QUFDb0VJQVFRSUlFNGNnRkNLT0JURnFScUlLbHlvTFFW
T0dyMjMxbjNGeEorcWY0eHlPVnltakpBTXFpR0M5eGVyTnJWblFBVGJVcFJYTTV2aFpGTWx3cjdm
cjcvZlppWm1Vbms3KzF4V25OUEFJVXhtSDVyRGN5OHV4SStQN2MvOW84UE5QU2cxMGN6a0FBbGdq
aEpBQW5nMlFNZmFxRkEyQTVCQkZzU3lVQ2EvVWZRdXp4L0ZQQXI1ZU1vOVczWTgyc1k3dHVpRVlF
V0tzQ0xFQ0FBU0ZXdjM2d0dtR2lEQnllNzRkSHdScGdhNklEaHZpMnc4Zm5lZVQvdGVFNEo0Tkhm
cnNIOVErdGg1dDJWY0d1d0hhWUdPbUw3N0ZLcEJPK2YrUjlaOG5Qd204SUFsaEQwQ1FPY3ZRRzBr
WVgxQlppVUFGY0JzNkVBdVBSUGF0TVBWd0JTcVUvOXZsOGFoSkZNVjRBSVZKand6V3BBQXZqMzM1
dklOVlcxYjFiRG93L0s0Y1dEazkwd05kQUJuNS9iUDI5bkZzNFpBZHk3ZHc5dURiYkR6THNyTlJL
NGQrOGVsRXFsbWxoNVptWkdsL3pZelVmQkx5a0FpUWdRK0o0a1FNR2Z5dnpHR1Fwb05XK0hFcEE2
QkpQTUFkQ3V3TENKUDIvcFQ3Mi9VT05YMlgxU2tVbW4wM0MrdjFWVUJJK0dOeElpU0FVSTROOS9i
eXJiRHlzMFZmQm9lS1BLUTgwblJUQm5CUEQ5SjNrTi9QY1ByWWZwdDliQVA0c1hOQklJKzU5UkxF
NEhXM2tyWTdpTUZpSVhFT2dOaUxFc2FHc09zcEZBRXBuL0pPTitYdm1RdkgrcWYwd0V2N0xGblVZ
MThHaDRZMWtWVExTQjV2MHBBVlJJQUlrQVNRQ0pBUDhHbi9RMUp3VHd6K0lGQlh4S0FqUHZyb1Ry
NDN2aDNyMTd5c0lRUWFGUUNPN1QzN0MzREc2VEF2RElCUmdyQWo1VkFZTUs0Q1Rna3hPZ3dLZjNT
ZlFDME5KZklodCtwTDUvU2ZvVCtZLy9ENm1YQmlHMVlTK3NiTnNHcjZUWFdra0FGWUVHZkFRL0lZ
Ri8vN0FDSG4zUXBSRkI2YXNUa1IzUjQ3Sm1uUUJLcFJMY09kV3RlWDVLQk5OdnJZR1ptUm1ZbVpr
SkVJRnRUWHp4cmNyd0xsdTB1UXg0QkQwRlB4SkNTQktRd29BNEVvSVNFZkM5QWp3UFFQc0NrdTRL
eEVSZzNOS2ZKLzhDM3AvOC9oVDROK3dOWERrSklQQUQ5eDkwVllsQUFEOThzMXBka1FnZW5PeUdo
MmQ2NGRIZnJqMnhpbUJXQ2FCVUtzSHQ3eTRFd0krNUFIenVweXZ2UWJFNDdVMENXcklQNDMwTy9y
VUg3ZUIzSkFOdENVRmJPQkFxRktqY053MzhBWDQyK0tlQVNVMUN6eDc0TURId20waUE3MC9nUFFy
ZW5sL2E2c3MzK25EcFQwbWdZaTB0endSeUFoSVJQQnJlQ0k4KzZOS0FieUlCR2hZOE9ObXQxTUNU
UmdTelJnRDR5N3R6cWx2MC9Kd1Fpc1ZwUlFKSUJGeUthWm4rNXBkMXo3LzJZTFhMRDhHUHVZQW9L
Z0RscDFRV3JLRXFzR0hQcitGbmczK0MwZEZSdUhUcEV0eis3Z0w4czFnMStNZnY0TktsUzFvZUFF
R0dRSnlOVm1EZWdSaEwxcDlZQVB5MkhJQkFBcFFBVE9EbitRRWorSW5Sc09EaG1WNXZSZnE0ckZr
bEFPcjlUU1NBOTk5L2t0ZElnUC9pc1o5ZkJEOGFCejhDMzBVRUVmSUIxcVJnSlErQTEvODY4REdN
am83Q1QxZmUwNERPZ1gvN3V3dndzOEUvUWFwL0xOQWhpRUNqWmNDNEI0UkkzcDgzSTRYeC9xTDhw
eUVBTFpHUzNaYWFFbmdocndFL2s4bkE1ZnhXdUg5b2ZRRDRxaXB3ZGFmSzlnZGVxd0JkQWo4cUFa
NGtmUFMzYXpBek0vTkU1QVptaFFDNDl6ZDVmZjY0Y08wS1RFNU9haVNBdjNRRS83SkZtMlh3Y3hY
QVF3SlhPQ0NRZ0xaSktHU2I4SVk5djRieDhYSGw0VG5ndVkyUGo4T3pCejRNYkIzbWVRRUtWQW5B
Y1hqK1dPTithZGlIWWFzdkpZSGQyU09ReldaaHVHOExEUGR0Q1hRSW1nd2xQTFlTOHowRWo0WTNs
a0Z1QWo4aEFSaExLeEs1L2QyRkowSU56Qm9CRkl2VEN1QVMyS1hIMzMrU2gwS2hBSk9Ua3lvVVVE
WCs1cGNobFVxYndXOEtCWHlTZ283ZUFGZENrS3FCTjkvOEdDNWR1bVFFT3Z6amR3Q0ZNYzBPSHo2
c0FjSTBQNEEzQVVtZ2R4RUJmVjBpRWF3RThBYWtxT0NuLzVaVS94aHMyUE5yR0hqakhmajk4YzF3
T2I4VnBnWTYxQjRBYlBDaGdLYXYyYkwvcG51NHVyUDhPNi9zSjNoNHBsZHRRWFlTd0VTYklvRkh3
eHNCQ21PUFBRa2tUZ0RvL2IvL0pHL00vSnV1dC9ldGdzSzFLMUFvRkZRNEVBcjhsQVNRQUtnQ3NQ
VUgyTUlBUTZzd0pZR2Y3MzgvNE8wUjdQOHNYZ2lBdnZUVkNTaDlkUUp5dVp5WUpKU1VBSmZxUHNE
M2VaNS9KaEtCYTdPUFMvcHJ4blpHTHVyOUxlek9Ib0doWTNtNE5kZ2U3UEpUOHdQMG5ZQ2NJSHp6
QUJvUjRMV3lmOEFFL2tjZmRHa2tnTWxCWHJKK25OYXNFUUROOU52aWYvNlloZ0psMlovV3dZOVpm
NXI5ZDVHQUJINlhFdkJVQVFoOEt2RWxzRlBRbDc0NkFRL1A5TUx1N0JFeFdjaVZBRXAvQ2FpK1pN
REJ6VXVKMG1kaVBrRHkvbEtPd2hielN4dWo2TDk1ZC9hSXZmK2ZlSEU2VklRcUJDY0pqS1dyN3ll
ZlYvcnFoR29RNG9Za3dQc0Zpc1ZwS3duVUt6a2tTZ0NsVWduZ1h6K1VKYnpGMjl0ZXUzdGdOVndm
MzFzR0IvWDh6Uy83Z1IrOXZrUUNQZzFDbnAyQ0cvYjhHaTVkdWhTUTlCTFlLZWp4bXN2bEF2a0RV
OG5RQi93U0dkaEFUVW5BOVo1SWNYOEk4SFBiblQwU1VBVlkyMWRUaFJpQTRlcE9Zd1ZBQSs5eCtU
UEs5LzFWVlRCQndQOUJwYStBNUFSS1g1MHdWcXNBeXZ0ZXNLZWdubGJpQkhEdjNqMjRQcjVYQlAy
dHdYYVJCSGhPNFA2aDlkQ1gyVlFHZmlwZEJiOUVBR0dWQUswS1JBZ0ZGdmVjaHFHaDA2RUJUMjI0
YjR0ZTVqSVJRS1Vhd0FlRFJpRUJtdUduTGI4OCs4OEpBaFdBQy95VUJKYis0dE5JNE5lYWdYYU13
TzdzRVRVclFONFZHQndlVXZycWhBWlVFeGtvTmNDVmhVQUNtaEV5K2VuS2U4YStsVUtoQUhkT2RW
ZTJNdGZQU293QUVQejM3dDJEcVlFT2J3VWdFY0gwVzJ2ZzlyNVYwSmZacElQZlJnUyt1WUFhdWdR
WDk1eUdhMzg4YWdXNkJIaHFVd01kY3E5N3BhTEFRY0ZCR3BZRStIdDV2NzlKNmtkTit0SFBYRFo2
VFQzdjQvbTFkbUJTQ2x5LzdWZUI4QUNsZnhsZ0JpSmdxb0RmUHpqWkRmcFlNanB3cEVvRWxBQzBw
T0JZR242NjhwNVl0Z1lBT04vZnFrS0dlbG1KRTBDeE9PMk04MDBkZ1FqK3V3ZFd3L1JiYTJCcTcx
TFkrSHl2SGdMNGdqOU1Qc0NqUzNEOXRsL0I5NS9ramFESE5sSnF1QVVWN2Y2aDlkWFB4T1lXaXhM
ZzNqK0tFcUFIZi9ENWZoZ0NtQkordE01dnEvblR1Qi8zS3FUR0NocTUwSnEvdFFSbzZRZlkrSHl2
bUNkUTJYNXhuRmc1WHlDRkFyUnZRQU0rSHpveWxsYmdSNk9mZGZ1N0N3RVNLSlZLTU55M1JYM3RQ
NHNYa29KZXFKVTRBZngwNVQydjBoKy9UcisxUm5sK3ZFNE5kQ2dTc0NvQUV4bVk4Z0cwS3VDaEF0
WnYrNVhWdTFQd0k5aXBsN3AvYUQzY1A3UWVzdGxzdGFtRmRoc2FWQUQxcGhMNGZjaUE3KzdqOS9U
clRGN2ZkNWNmZmg0RmYycXNvQXdWZ1c4SUVHZ0llcWs4L0JPYmdSREk5UGN0RWtFbHZuOTRwamRB
QkNvY3VMb1Q5RWxEN0VxcUVKd0VIcDdwRlVsZ2ZIeGNJNDk2bUVHUUNBRWcrR2RtWnVEemMvdmg3
b0hWemhBQUFVOE53VCsxZHluYzNyY0tidXhhQVRkMnJZRHovYTF1RWhCc2QvWUliSHkrVncyaC9Q
emNmdTE2K1BCaDJKMDlVazQ0R2tnQXdXOENQdmZ3ZU9XbXBMK3d3UVgveU5IeklTQmM0T2RFd0dX
K2FXTVBIekNLN3dzaiszbk1Ud0V2Z2Q5R0JDTHdhWk1WYWN0VzVMbGhML1JsTnNHZFU4RXFRRlYy
eTJxQTV3aDBKY0FuRFJIN1puVTVzZmRCa0VRZW51blYrbGZ1M2JzSGs1T1Q1YUUzMzZ5dW05Mkdp
Uk1Bai8rNWwrZmdsMEEvL2RZYUJYNjBtenVhWVdYYk5pTUo3TTRlZ2NPSEQ4UG41L2JEVDFmZWc5
SlhKK0NuSys5cGlUcDhUSi9IcjhQcnRUOGVoZEhSVVJoNDR4M1luVDBDbC9OYkl3R2VHNDZ5VnFC
bllRQTIzaUFRVE43ZlJRcTIvZnkyTWQrVUJIeGpmcFBYcDQ5TkpNQ0p3RW9Dd3RaZ3BlTFd2UWJE
ZlZ2a0ppQmE5dVB4UFpQeHVoSXdFQUM4V0M0WFZ0N0w4d0VQei9ScSsxbG1abWJLWVFEWmJHU3JI
TXpHU3B3QXB0OWFFNUQ3SnVDajNkaTFBcVlHT2dLZ1J5dHNYd2czZHpURDlaNWxzTEp0R3l4YnRC
azJQbDh1cFgxK2JyK0t6VkdtMDFpZEFweVRnVVFTOUhVS2VoZllxZFFYdlQ4T3dPVDk3WlhIQ0Vy
OE9ocTcrNFFCdHIzOHJuUDk2UGZCZklBSi9FaFVIUEFjOUM3d1UxdjZpMC85d00veko1WGY0Y3Ey
YmJDeWJSdmNHbXhYNFFBbEJHT01UOVNBUmdRYzlOcTRzZktWcXdBa2dKK3V2S2Uxc3c4ZHk1ZDNK
UDY5U2FrQTNGY3dGMFFRT3dGUThCZUwwNkxYNTdFOWVuaThUdTFkS2dLZVhxLzNMSVByUGN0Z2Fx
RERLTW0vL3lRUDMzK1NEeVRva0JCTXhNQkpBc0V2Z2RvR2RNbnVIbGhkOXY1SUFOVHdqN3VTUEtQ
bjhVa0FNNWtMNEdIQ0FLNEVzQVhaUmtaYzlvY0J2ekpwVXhVZnhrSTNhSkVOUXRSR01wYlNYMkNp
TUVueUVUQS9PTmxkOXZSODJLaTZsbzFYQmREb25wWkxseTZWVDBtQ2xGSUJ4ZUswT0FSbk5sYWlC
SEQ3dXdzSzREWnZUK043Q2ZnVTlQZ2M5b3p6cEp2TmtBem9QYy9nUTJGTUpJZ3dJTGVaNXYwcnR2
UVhuMEtxZjB6cnVhZmdseVIxVkFMd0lRZmI1N3ErZDFTdnp4V0FOZjZuOHArV1oya29WVkVDcVEx
N0laMU9LelVnWi94cG5GKzVuOURuQmNKWVdubDhQbVpNczRrMlVRbGdTL3ZrNUNTYzcyOVZRMGtl
RFpkSGtQRWhPRThFQVh4K2JuOW9iNC94ZldIN1FyaXhhNFVDUGZYNFZIN3pPQnl0Vm1LZ0JPRWIx
L3RZTHBjVHdZOXluNS9CaDZBSVN3SXV6eDZGQUh6Qlh3c0JMQnU5SnN0L0FuNmxBcmdDWUZ1RkZR
bXNldzFXdG0xVE93Z0Rzd0ZNY1g0bFdhZmkrdys2d0FwK1JnSlVEZURHdGtLaFVNMERWRlFEcW9D
d1U3RGlXTEVUQVA3d3hlSTBmSDV1ZjJodlQrTjdDdnliTzVxOUFPWWlockRrOFBCTWJ5U2czejJ3
V3J5bndPZG1BNytQOTdXcEFCK0NxSVVBWXBIOUR1OGZrUDg4RjRDSlFCTVJOTDhNZlpsTllqTlFP
VUVveFBra3lhZm1CeGlBanhPSU1TZkFrNE0vWFhrUEpyNzRGb2FPNWRYbi9QdUhGVllWa0RRSnhF
b0ExUHRqeHJNV2I4KzlmaTNHRTNlKzVCREYrMHZndjN0Z05Wek9iOVc4dmd2OHBqcDZXQ0x3VlFo
aENjQUUrcWpnVDQwVnlsVUZtL1NYRkFBbEFBUS9rZ0VMQjFhMmJZTjBPZzEzVHNrRFFxcXhmalhP
NTVuK3dGa0REUHhvVW4vQXBVdVg0TktsUzNCcnNGMjlGMVVBNWdtS3hlbFpVd0dKRVVDeE9BM24r
MXZoN29IVmNITkhzOUhiVTlCejhFdGVuNElyVGpNUmd3L1FwYXYwM083c0VTWDFNZDZuc1Q3My9G
SGxmNVR3d0pYWWN3RS9EdkNueGdybGlvSkwrcHNVZ0lNRU1CUklOYjhNNlhSYUN3bGtFdERCclRM
OWxWQkFBajJmUE15VGd0OS9rb2RMbHk3QitmN1c2dWRYVkFET3dpd1c1U2xZU2F6RUNTQ3N0Ny9Z
M2dUWGU1YkJqVjByQW9DeUFTNEpVdkFGdXczOGFEUHZyaXh2NTJYZzV3ay9FekFrTDFzcitIbWlz
VmJaSDVkcEEwRU4yWCtqQ25DUkFNc0xUQTEweU4yQWxRbkMzTXNqQ1lpanhoMGtnTE1MTGwyNkJM
bGNUdnRzR0N1cmt0bFdBWWtSd09Ua0pJeGt1c1R5SFFmK3hmWW1LR3hmQ0JmYm0rRG1qbWE0dlc5
VkFFQ1MrWGpkT0pTRFNkTDcvSXhvbVAybmt0OEgrSlFBZkx4dlVwYWsxeGRWQUpYK09GUFJKdjhs
QXVDYnZBUWxnQ1NBSVFFbkFVbnFZM3p2QXI0aWdHOVdhMHJnK3ZoZUdEcVcxd21tMGxYSSt3YVNK
b0ZZQ1lBbUFJdkZhYmpZM21UMDl1anA2Zlhtam1hWWVYVzVDaHZ1SGxnTk02OHVoL3VIMWhzZit4
QkVMY3JCRi93dU12ajk4YzBxeTA4SndCY1U5UXIrdUExL0w1Z014QjJReTBhdnlUTVpYZUNYQ0FC
blJHN1lxdzZQd1oxNkxoTFE0dnVKTnZOaEk4S2hJM1NTMExVL0hvVzcxMGdZVVFrRHJvL3ZWZVhD
WWxHZmhabkVpbDBCb1B4SEJjREJqNEQvOHJsRlR2QmpEc0NYRE9qais0ZldxOGRSbFlNUHNGMnY0
NzlwdUc4TFpMTlpzY0VuckptQUx4R0I2MnRzajAyZVBtbnc4ME5KbDQxZUs4OFRlR2xRQnIxRUF0
d2NPWUZVODh1cXQ4UkVBbHJNWDVIMkN1d0c0R3RIa0JFVmNPZFVOOXk5VmtreUlxbE1sSHNQcEdH
NFNXMGNpbzBBZVB3L09UbXBTWHZ1N2I5OGJwRWlBUVQvekt2TE5mRGJycEpTd0dzdDltTjJnZlo1
WVkyK0QrOXY3MXNGNTFxYjRGeHJFMlF5bVdxYmI0MkFNZVVGWElxaEZ2QW5aVkl5bEpKQVlCT1Fq
L3gvYWJCY1ZlQWtRQ2RGVXlMWXNGZnRLcFFTZzJKOFA5Rm1Ccjl3OEFpU3dNTXp2VW9CS0FLb3ZF
Nkg0UmFMeWFxQXhBaWdVQ2pBU0tZTHZ1NWNJb0lmcnpkMnJWREFweVFnZ1ZNaUNoZVk2VFdLaFFF
NnY5SjdKSUJ6clUyd2Z0dXZZaUVBRXhuNGVHOFg4R2NEOUM3d1V4SlFlUUdUOU9mZ2Z5R3YycGNE
Q2tBaWdlYVhWVHMyN1JxMGtnQTVVTVRYYUpPUUZrSlVQaHVUZ2RnMFZDdyt4Z1RBUFQwRi85ZWRT
eFNRZjh3dWdCdTdWcWdyQmJ0RUVET3ZMb2ZiKzFacDF6QkU0RU1NOUhPamdCL2ZqODk5dGlBRmU5
WXRVU1N3WWMrdkV3T1VDL1N1cjVrTjBJY0JQeDFGcGxVSExDU3dxUGUzS3VHYTJqRVNEQWQ0THVB
bC9SUWlLU21vamhVVGtueE80TlBEUjdBcU1CRlVEMGdRdEhXNFdFeXVJcEFvQVp4ckRYcjlpMDh0
Z09zOXkrREg3QUlGZnRNOWdwNkNuM1lXeGtFQ1BncEE4dXdjNEZJWWd2YzBCT0FrRUxjU0NFTVFj
MjFod004N0c1Zis0bE9qNTA5MXZpMk9NVlBsUmRwQ3ZHTkVQSklzbTgyYVNjQlQ4bk55VUNRdzBW
WlZBSVl3NGZOeisyRnljaElLMTY0a3FnSVNWd0RLbmxvQVh6NjNDQXJiRjRwQU56MkhWdzU4aVFE
Q0VFSFVjRUM2Y2pMZ1A4dU5YU3NDQ21BMmxFQTltdy93VGVCWEljSHJIeGxqL3pCbkdQQVRpbEVO
WkxOWnVUSXdFUVN1MCt1VGUwd0ltajVIaFFHem9BSVNJWURKeVVtZEFDcmdSNUJqWXhDWC9pWUZR
RGNUeFVFQ1BrWS9Sd0k0enorWVhzUDNjdUR2V2JjRVBsdVFnbk90VGVVSlJIVUF5bm9BdnduNEpo
SlFFcCtBSDZjUytRNHpWUk9McVJLb2hBSTRYRVJzRkFyajlRMUhqNW55Qk5nMm5IUXlNREVDbUp5
Y2hIT3RaZkIvM2JrRXB2WXVoWmxYbDZzcjNSc2dFUUZlcFMzRU5rdUtCR3hBbDhpQ2tzYVAyUVVC
NzQvZ255OUtnTzV2Q0NQNWJkdVg2Vm1GR09mYlBIOFlFcUR6R2F5VkFVK3Y3eUlBVGhxUGhqZkN0
VDhlMVZUQVkwVUFxQUFRNkh3M0lKSUFYcmtLd0UxRTByZ3dIeEtJeXlSdnpoT0VKcVZBSDNNRndP
MWllMU41U0dnZGdIV3V2TDRFZnRveTdTU0JTdVkveWpoemZsSXhiVWZlc09mWDlxUWdBNzRWOU15
TTd4MHI3MVdZK09MYlJNT0FSQWxnYXU5U0JmN2IrMWFwZTY0R3VCS1llWFc1T0NUVWh3VGlpUFZk
UkdEei9OTFgzZHpSN0FUL3VkWnlvalNiemM1SlluQ3V2TDVQd3M4SC9LZ0NmTURQU1NCd2doRlZB
UlVTTU9ZRFhFQ09TQUtQUHVpQ082ZTZ5MkVBT1I4emJoV1FHQUZjSDkrckFaT0NYMUlCU0FJMjhM
dElJSTY2djAzK3U0QXV2ZGVVQTdqNDFBS05BS2lOWkxwcTZoU3NCL1AxK0ZIQWo4Q1hTQ0RLUVNZ
U0NXamp5U3Vod08rUGJ6YUdBcjVnZDVFQU5icDlPS2t3SUhZQ0tCYW40ZnRQOGdxVUVsQXhGSkR5
QWk3d1N5UkFRUjhuQ1pqa3ZnUndtMUtRQ01BRWZpeVpqbVM2NE5rREh6NVdSRkNyeDNlQm53UGZC
WDdKNjV2aWY2NEExSlVlVE9Mb0QvQUcvRVNiMTlkaEhpREpaR0RzQlBEVGxmZTBPWUNjQkV4S0FC
L2pGR0ZmRXJDQlB5NFNzT1VCZkVoaDV0WGxTdWFqNTVlQXoxdW5DOXNYUWk2WGcvODY4TEd5ZWlX
RE1CN2ZwOFRuSS90ZG5sOENQeDFoN2pySVZBc0RLcUZBTHBlemhnTGV3S2YzSnF2MEF5UVpCc1Mz
R2FoeUNuQVl5YzZUZ3h6OE5pSXdnVDlwNE5QblRmMEFrb3I0OHJsRmdaaWZnNTl2amNZTlZJWHRD
Nkd3ZmFGcXE2YWYxWmZaQksrazEwSW1rMUdtcGc3WGtjZDNlZjB3MGo4SytNUElmMzZRcVRhZndG
QVZnTEcwSC9qNTFhWUFQdWlDcVlHT1JNT0FXQlhBblZQZDNuRTdWd0lVOEJ6NC9ERUZQNXFOQkpJ
Z0JCZm9KUVZnTTc1cGFtcnZVbTErQWhxK2ppU0M1Y1hOYTZyVzB2S01zbm9BZmkyZ0R3TjQzNlNm
RS94Q0hvQ0dBYVl1UVNQSXcxN3hmcUlON3B6cWh2SHhjV05UVUswck5nTDQvcE84VTdxYlNJQVNB
Q2NCNlROZGNqK09FTUJVNmdzRGVtcUY3UXVOMGgvQlQ2OFMrUGxZTmRwVXRHZmRFZ1greld1YUlM
V3dwV3lWR1FSUmN3a1U3RkdrdnFtcnI1WmtYNWlrbnkvNFRTUVFXUVZNdEptdmFCNWs4R2g0STR5
UGp5Y1dCc1JDQVBRRW9PbTMxc0RVUUVjb0V1Q0F0NUVBOWZwSms0RGs2YU51T1Vad215US9sZnNV
K0hTTUd1Mmd4QkxyeFhhZEFKQUVGQUc4TkNnQ2w0STZMckJIOGZxK2liOWFZbjViN2Q4Ry9FQTFn
TTBvTkxVSmkyQTNHZjA2Nlo3a0FTNWR1cVNhN09xS0FLajNENk1DTUFHSW9PZkdQODhtKzVOS0FN
WmxOM2F0Y01iN1B1Q241VkxjSTFIWXZ0QklBQlJndFFLNlZ2QXZQL0huS3BoZS8wZ0VPNEkxRHZD
SGp2dDlTYUN5TFZrcUN5b1ZNTkVXamdna0l3MUJOQTlRTEZabkJzNDlBZnpyQndWVTlQd3VKWUEx
ZS93RE5nR2YzblBQN3hQL3h4VUNSSlg5SmdMZ25wOUxmNXZueDgraVYxUVlTQUNwaFMyd1o5MFN5
T1Z5bW95ZWJjQno4bEdaZFhMd3B3WktOZzNZcDlTWGxPZFhQK3ZySDhIUXNUeGN6bTh0SjFlSkNu
aTY0Nmg4bHVCRVcyejI2SU11dUp6ZldnMERZczREMUV3QTZQMTlZdmZwdDhxbi9sTHdtcncvL1J6
dStSOUhCWEI3M3lwanZDL0YraFQ4dEVQU2RMMjVveG5POTdmQzBMRjgrWURUZi8wQW41L2JyNEdF
Uys4NEFPOENQeVVCcmE0dW5md2pHQUk2S2MvdlF3UzdzMGZVUk4rQk45N1J6aWdROXdsODBHVUc5
ZFdkNFVrZ3dUeEFiUVR3cng5Z2FxQkRBeTArbHBTQUpPRnRCQ0NCWDNwczh2eW0xK2ZLSk0vdmt2
elV5MHYzdC9ldFVtY2FQdnJiTmMxK052Z25iUkl4ZWxJTzRGcUI3NXZnQzhUU0pxTVRnUzN0dmJW
NC9qRHlQL1g2UnhyQWYwR3hRWlVBQUNBQVNVUkJWSDk4c3dvRE1wa01QRHpUcTRVQVZoVndkYWRH
QXB3c3hNZGphVVVBTkF5WWN3S2czdDhWdjBzZW5FcDl5V2lvNEpMOUxoS1lhNFZ3ZTk4cThSQVVH
L2hOSHYvMnZsVnc1MVIzK2ZUaWYvMmdBRS92aDQ3bHhWT0lwQVJjTGZLZXkzeGJRazlycXZFRXYr
LzIzakNlUHl6NFU2OS9CSmZ6VzdXcHZrZ0NpM3RPdzYzQjlrQWV3S29DWUVnRE83L3krd2NudTdW
RVlKejlBRFVSd0oxVDNWNEVZQUt4Uy82NzRuNlgxUXY0cWRlV1luNVR2TS9CZjJ1d0hVcGZuUWdB
WGlPQmYvd09ob1pPaXljUSs1S0E5SHl0VFR6TFQveFpqUE9Ob0NjSGdpenEvYTBXQ2tqM2NjVDht
bVYrRThnRFBQcWdTeDBNOHVCa2QvbWcxeGZ5MEpmWkZNZ0Y0TUNQQU1Ddjdpd1R3TldkNnZOc1pJ
QmZjem0vRmM2ZS9UVDJQRUJrQXJqOTNRV25mSGVCMlBiZVdzSHZJb0haOXY2Y0FDam9KYzlQOTBs
SUVwK0NIdTMyZHhlcThTbnVadzlKQXFZckI1NHY2S1V3SUFCOHd5bEEvSXB6L21xcDg0Y21nZ29a
REx6eFRobllsVk44RU9qWmJCWlNMK1JWWTVCMmtLZ0FhRTRBRk9SR0lxaFVBbWdlWU00SndDYi9m
VDI0Yjl3dmdUL3U0Uit6UlFLdVREOFN4ZlJiYStEN1QvTHd6K0tGQU5BbEVqaDgrSEI1dUdYL21C
cHl5VWtBd3dFRXRDVGZwU3R2aHJHVjhuenErZEs1ZitJUllQUWNBQndKVGlvSExzOGZCZlJVOXVQ
OW90N2Z3b1k5djlhR2dORDUvcWtYOHZMQkloS1lrUUJnU0lHYmtnQTM3QVc0YzZvYlJrZEhZMDhF
UmlLQVVxbFVFL2h0OGI4dDdrY0NvT0N2WnlLZ3pVTzM5NjJDdXdkV081Tjk5dyt0aDUrdXZBZi9M
RjVRNEpkSUFNRi8rN3NMa01sa3luUHRYeHFzZ3A4cWdmNnhNZ2djdVFEcDhkSmZmQm9BUDcraVo3
WUJuOTZiRHYwMG52L0h4b0ZUSlJCWHZHOGtnc3F4Wkl0NmY2dWZGRFRScG9CK09iOFZYa212RmZN
QUFTOVBDRUNwQVBLMUpudHdzanVSUkdBa0FyajkzUVVvSGUrS0pOOWRCT0FEZnRNSXNIb2lBOTQ1
aUNUQVFhOGsvMEFIbEw0NkFiZS9Ld01mcnpZUytQemMvc0RCbDRvRWhCQ0FsOVE0V0NWWm4zcjlJ
Ky9TSFNVQ1V4c3ZFb3BHVWd6ODJ2bC8wbGtBckg4Z3JuSWY5ZmcwRDRBa29MTDdlRW9Ra2Z1dnBO
Y0c5Z2R3WU1OWU9rQUFHbEVZaUFDUEdVY0ZFR2NpTURRQmxFb2xxL3ozQWI4cC9nOExmaHNaektW
eDBOTXpCYWJmV3FONWYvVDRVQmlEMjk5ZFVGY0V2MFFBMU92VGMrOXRDc0NWQjdERjdHSHE5aWpK
TWVsSGdVOFZoZFByVTlEekU0RXl2NG5WODFQWlQwRlBRNTlGdmI4dDEvd3JSNFBqZ1o0STlsdUQ3
U29Nb0tjQmN4QnJCQUJEMWVjTmh1L0ZTb0NwSVdoV0ZZQXArei96cWpsMmR4R0FTL3E3d005SGd1
SFBNdHRlM3daK1NnSVk0ME5oVEFRL0p3RWtnTS9QN1ZmQXB3U2dLUUFoRVVqalpxa253Rmk2OHkz
YnNaS2Q4dktWUEFFbG5rQzhqeUNuUUpjOFB6V0RDZ2pyK2FXWVh5TUJQSms0OHh1NG5OOEtEMDUy
VndtQUpRU25Cam9DUFFFWXcyc0U4SS9mZVJPQUlvSktxS0VxQVpWRTRFOVgzcXRwVG1Cb0FuajB0
MnZXMkowQ3p6Y0I2Sk13dE0wVjRPQ2ZDK0M3UEQ4L1RQVCtvZlh3OEV3djNQN3Vnb3I1OGNwVkFO
N25jamtSL0tMMzl3d0JYRXJBQy9qa3NkWXZYN25TNzV0Ni9hTUE0UG1SMzE0SGdCSUNpRHZtNTU0
ZmlRQjcvLy85d3dxUVZJQVVBZ1NNSzRCS0dPQmp2QkpRS0JUVTM5Q3NFY0JQVjk0ekp2MG9LTERs
VnlJQ1RnQXU1ZUF6WEVRQy8yd1FnUy80N3g5YUQ5TnZyUWtjUDE0NjNpV0dBSlFFZnJyeUhxVFQ2
UUQ0cmQ2L1J2RGphd0ZBTytyMllrYWZ0UFRTelRTaTNQZTFTcmdSUjh5dlBENS9idTFCU0hXK0RZ
dDdUc1BpbnRQUWw5a1VKQUNtQWdJaEFMdHlBaWg5ZFVJUEVSd0tZSHg4dkR3Zm9ISjI0T1g4Vm5o
NHBuZjJDT0RobVY0citMRitiVk1CZEFPUXkvdlQ4V0tjQkNnUjhPODVHNTdmMStOTHdFZTdjNm9i
N2g5YUw0WUNVQmhUa3IrbDVabWF3Qy8xMVBNRW5aUzhheHI0Z3hQOFVnS1B4L1ppVW8vSDltSE1B
djRvcFQ1SitxZldIb1JVcWw4WkhoS2lLZ0dDQ3BCMkIrSjlPWHdZQ3BxTk1BZ0JTSWxBTEJGR0RR
TkNFNENVdU9QZ2w1U0FxUUxnSS8xdFc0dHA2REhiWHAvSC9Kd0lxTnlYckhTOFM1SEFnNVBkQ3ZT
RmExY0FDbU13M0xlbERQVEZuV2J3VzREUHZUOWVmWUJQcjZxRHp4UDh4aG8rdjRiMS9KMXZxNjVB
ayt5dkplYW5qeGYzbkE0UVFGOW1VeG5FRTIwYUFmejc3MDBpNERGNVI1OHJmWFhDU0FEUyt6bWhv
QUxBTUFDZkx4YWpKUU5ERVFDUC94RndPTm1IQTUrQ1VsSUFyc1NmRGZ5dXVZQkplMzRFT2dYODdY
MnJOTkJMbnYvV1lIdkErK1AxNFpsZUZRNk1aTHJNbnYrbHdWQnhmeGp2YjdySHBKN2s0VzJaZkdz
NUx3VHcxV2NRa0d2ZU82d1IyYzh6LzZnQUZ2ZWNMbi92Q2dGa01wbHFndzlWQUt3dndBWmlVUUZj
M1dsOUgxVUFROGZ5TUQ0K0RoTmZmQXZYL25oVWZRM21BY0tTUUNnQ29QRS9sZjY4QkNjcEFRbll0
WGgvMDJpd0pMMCtuUTRreVg2WHgrZGUvLzZoOWZEZ1pMZW1BbjY2OGg2TVpMb2d0YkRGSHZPSEJM
OUVBaExnVGM4YjViM0oyOWNLZWdwOHZLOG9nTlNPRWUwNURBbDhwYitVN1YvY2M3b3EvVE8vcVhy
K3RRZkwxdnd5Ykh5KzEwZ0F0RHVReXZjQWlBVUN3RHlBVFRsSWVZRFB6KzFYcjMvL1NWN3JDZkFs
Z1ZBRVFDZi9TT1U1cWdRNEdYQUNrSlNCcEJJUTdQU2V2MzgyQ01BbjNuZUJuM3Y4TzZlNm9YUzhT
NEgvenFsdW1Ccm9jSVBmUS9xYlBMOE4rQ1lpU0wzK2tTenZMVEkvTXVnNStCSGswbVArV29nNnYz
cU9TSHd1K1ZOckQ2cmN4K0tlMDdBN2U2UUticTRBV0RMUUdOZExDZ0Q2dlJRQUVnRG1BWENINHNN
enZYQTV2elZ3ZEpnUENZUWlnRHVuS24ra0pNUHYwNVREOHdDKzNwL3ZLc1I3cWVTWVpLelA0M3di
Nkxuc3Z6WFlycncrZ2gwOVB3WCtnNVBWZXluakh6Ym05L0g4dmtaTGQ4YTRudC9ibnZNQnZZa0VL
T0RwYTVYd0lFek12N2pudEE1NFpvdDdUbXZKejkzWkkzQnJzQjFnTEEzLy9udFR1UnNRdXdJcllZ
REpjejhhM2xpcEFQU0xKR0JURHZRenFRSkFBb0NyTytIT3FXNnROZGlYQkVJUndLM0JkZzNNcnFZ
Y3FnaHNnTGQ1ZjRrRU9Ga2tRUUltankvSmZsdVduMHQreWV2ejYvbitWdTh1UDNWNFJVTGc1NTE3
b3Bldkpac2ZCdlNjQUhhTTZLRkJtSklmWGp2Zmh0VGFneklackQxWS9qcENBQWhNSkFCcTJQUmpq
UC9IMG9BZVg3ZGdIb0FDbjM3T25WUGRNRFIwR3NiSHg1WDN4eDRCYkEwT1F3TGVCUERvYjlmZ3px
bHVCYnlwZ1E1dHByK0xETUlRZ0cwNk1JLzdrd0MvdElrbkxQQVI4TlRydThCUFZVQ1lMajhPL3Jn
Sm9HbmdEN1Y1ZHAvNDNnZjBucExmNVBsTm5YNWEzWjhTUU9mYmlnQVc5NXl1SmdFdEJNQTl0MFlB
U2dFSVZpRUFteExBeDZPam96QTZPcW8rRTB2emZJT1FUMUxRbXdCdWYzZEJ4ZDZZcU9MbE9Cc1Ir
SUovNXRYbEd1RHBQWmYrY1lLLzFvWWU3dkZObmwrUy9QVCs0WmxlZUhDeUcwN2svaU5TekI4MytL
a0txRG0yTjNuNU1DU3dZVy8xM2hYdjJ6dy96UVZJNENmZUg5V1BTd0h3RFVLQm5nQVBBckFsQU5H
R2p1VlZBaEJIakQwYTNpaWVIK2lhRitCTkFOOS9rb2VIWjNxVnBKQW0vdHBJd0RjTW9FMUNYQUh3
ejRqYjYvdkUrcjZKUGg3dnU0RC80R1FaL0VnQ3R3YmJyZUNuMHAvM3cxTUM0RVJnZTJ4NnIycTRp
ZUwxYlJJL3JOZG5KR0NVL1Fhdzg5MTlYQUdvMmorR0JDai9LeUVBUFJIbzN6K3NLSU9lWGRXdVBy
RUUrR0lGOFB4YXZzZS9CeWtNb0NwZzZGaDVKUG5ETTcwNkFaRFRnM2dvVURNQlBQcmJOWFZ2T2dP
UWt3Q3YxWWVWLzY3TlFrbkcrMUZpZlpyd004bDlrOWVYcnVsMFdpejNhWEgvNng4NXdSL1hWU1VE
bzBqN1drQlB2VDY5bDhJQVd0LzNKQU9icVVUZ0MzbGRBVlFHZ3lpcmtBQU5BN0Q3cjlvRitDSUR2
MDRFWG4wRVkya1k3dHVpSlFCeFA0SHBGT0ZZQ0FCWHFWU0NhMzg4Nmp6S0d3a2diQUxRZDhCSVhK
S2ZTdjg0dkQ2UCtVMnhQb0tjM21OUzU5SHdSbmg0cGhmNk1wc0NDc0FHL2poSklQWDZSK0pqREFX
Y3dJOFQ5UFF4WHRlOXBpVURuYnY2Sk0vUEh2UFhlQWlReldiTkJGQXhtZ2pFSzVKQUZmUXlFZmpt
QUg1L2ZMTWFSNDdodzhNenZkb21JYTRDWWlXQXkvbXRnYnE4aVFTaVpQOXQyNHhwRWpET0pGOFVy
MitLOVgza1BwWlVxZGZuOTFNREhYYjViL0QrdFpDQjdiUFFGQWtrS085RjBIUHdiOWhibHV3Yjl2
cDVlaW54WndJK2svOXIwci9VamdZM0VnRGJGMEJsZlpBQW1GVkFMdVVBZUMvQXJjSDJhbDlCSlFU
Z3cwS0t4ZWxrQ0lDZkFHUXlWN0tQWHlYNWIxSVJjUUZmOHY0MnI0K3R2Q2FwNzVMOUZPVDRHRDAr
QlQ4K3BpR0EycDVLd0c5U0FWSE5sd2lzSkJDSHZIZDVmZ3IrdFFlMU9ZVld6KzhEZk9iOU1mRTUz
TGRGL1g4aDJMMEpZS0xOU1FDUFB1aFNaVDFUTlFGTGZscFprUk1BbXhrNE16TVRId0h3ZzBCTlJH
Q1Qvak92Qm5jTm1nZ2dydGcvVEpZL2FrZWZ6ZHNqNEUweHY4a3ltVXd3QkhqOUkyc0lNRnVtY2dK
UlBMME4vQ2JRUzFmOG1yQ0p2eGZ5NWZlL2tOZmpmZXI5OGJsS0F4VHVCbnowUVpjQ3YzVGxPd0F4
VzE5dUdIcXhBcnN5Nkt2UHZTaVdBbmtTVUt3cVZON0had1ZRRlJBTEFaUktKVFVPM0VZQ051bHZB
dWpVM3FYZVk4TGlrdng4U285dm5NODlQMTV0ZFgzdS9kSHJTOUtmMm5EZkZxUDhUMG9GK0lKZkl3
R0pDT2h6Tms4dlNYMzA3aHpvZUkrdnIzdXRTZ2lkYndlR2VGRFByemIzMFBjZzRQSDdDZ2xBVkFB
cUJMQVFBTjBUZ0FCK2NMSzdNa1BnUlpFRTFIMUZQVWloQUZVQytuQ1JmdFVKeUllR0prSUFQMTE1
ejlxbzR5UDk2Y3g3ZXZVZE1WWnJoajlNRHo4QzNxZWJ6eFRqYy9CVHNHUGl6MlRuKzF1dE9ZRFpB
RDhuR3ZvOTFYTnNnNDVTS3I1ZTNnVitJdmNWOE5jZXJMNU9RUzE1ZmdwOENmenNPUXArSkFCMURt
Q0ZBS2dwNzI4SUFiUmVBUVgrbEg2UFEwS3hhaUQwRkdpdmt5N0NxWUVPZmF0dzNBUlFLcFhnM3Ix
N3pzTkFYVmwvdmxPUVBvN1QrL3Q0Zlo4a0g1YjIrTjU5VzRaZjh2Z216eThaWm5XMVBBREtmMndD
WW1HQUZad1dwZUQ3OWRKci9GNjExdkxITm0vUHdZNnZJYWdwQ1NCNHVmZEh3K2U0M0RlQmY4ZEk5
Ym5tbDNYWlg3blNGbWdWZTArMEJRaUFFZ0VuQUgzelVCWDR1aHBJaVJVRVBoQkVVd1dFQU9nbUlT
a1BFQnNCOElsQWxBeDh2RCtDRTRGUHkzRStRMEtqZW4xS0FnaDZIdlBqOHpkMnJZQ2JPNXFWZmQy
NUJMN3VYQUxYZTVhcGUycjQvUFdlWmNxKzdsd0NVd01kY0hOSE0wd05kR2lLd05kUTJta0tZTWRJ
VlFXd0dyZ054TFZjdmNIUDdhWEI4Tmw4N3UwcHNFM0Fsd3dKUnlJSm1nTkE4T1BQUkVtQXlQL0ZQ
YWVycC85WUNFQlNBSHlBaUdULy9udVRGZ0p3RmNEM0JtajdDaW9LWUhSMFZNd0R4RW9BRXZoOXB2
c2dlQ25nNlQzUEFZVE5JWmpxK253ZlA3MVN1N21qR2I1OGJoRmNmR29CWEh4cUFYejUzQ0w0YkVG
S3U4Zlg2Ulh2dis1Y29qMzNkZWNTT05mYUJDMHR6MEJxWVl0bWU5WXRnUk81LzRETCthMktGS2pY
ZjNpbUYwcGZuVkQzdEJlQVZnSW9DWEF3bW9EcUEzWWZvRHZCanh0MWJHQVhzdmtpMkNYZyt4S0J6
WnBmcm43V0MzbElMZTRVRlFDU2dKTGhIZ1NnZ1ppUEVET1JBTXNmMkVxQjFkbUNaUUlZN3R1aUVR
QTlQS1JZbks2ZEFMQ2p5QVQrbXp1YW5RU0FtNGZvVGtHcUJuem5CUHFvQU4rdlF3K1BBS2RYbitj
Ui9QajQ2ODRsc0dmZEVnM3dMUzNQUUdweHAzNWxyNDlrdWtReWdLczd4V1lnVXh0c1dDQ0hCcmFQ
Y2ZBN1NuZ0t6Rkp5THc2Z2M4Q3pxK3IyVzloaUJEOFNBSXlseTRDbUpNQUlnU3VBYXR3ZmpnQk1l
d01lZmRCVkdTMVdiaVBHWEJIdUVod2ZINDlYQWFEM241bVpFY0UvTmRBQjEzdVdlVFg2VU85UFZR
QWxBRmNKMGRaTEVNYXU5eXlEaTA4dHNJSmVlb3hlbmovM2RlY1MyTHltcVF6c0N0QnhwaC9POWFQ
UDRUMGxoTTFybXVCOGY2c0MvL2VmNUkwRVVOTklyS1FzOHh1NWZNZVRldExWZGg4SDRFMGtnRkov
WVl1Uyt6eiszNTA5QXFYajVMdytCRDRuZ29tMm9PZW1Nd01jQk9EMC9Eeitad3JBZEhwUUxBUmdP
aEVZejdyM0lRRFRUa0dhQTNCOWppOFIyRWlCQTVpRG5IdDJLdTNwYy9ScjBmTXJVQXVnNTNQKytH
dFVJYUFxQ093SHdOWlhReTVnVHMxVXUrZHkzaVh4NC9MMk51RGpmZWZiNWQvcndoWkliZGdiOFA2
TGUwNVgyNEN4QWtEQnp3aEJBK3BFbXpZNFJCb2tvc2lCOUJEWWRnWHF1d3JMUTBYN01wdEVCVkFz
eGhBQ3VBamdzd1VwTDlEeTNZSzBad0FWUU5qMjRWckJMOGw0SDA4dlBhWVNYKzNuRjBCdm12UWJt
QUtFWVlLMEg0RDB2OWNOQ2V3WU1jdjZKRDI5cjhmbjk4MHZ3K1g4MW5LelZlWTMxZDgzSy85aEY2
Qks2RG1NQWxadEZMS1lJZ2RIRGtBbEFXbjhELzFxZ3hEbUFIQm9hR3dLQU9XL1JBQW9vOE1TZ0RU
V082ejN0MTF0NEtjQXBnazhEbXp1K2Zsait0ekY5aWJsL2FrM2Q0SGNTZ0NtQWFEMUdnYThrQTk2
ZUE1KytseFNIdDhRNjFQZ1V3SjROTHl4M0hDRkJFRG1IbUR6a05wOTV3SS9HKzdwQXIvV0cxQlJB
TFo1QU5YNmYxVUJQQnJlQ0xsY0RvYUdUc2NmQXRENC8vcjQzc0M1Z0pqNTlnRXVCYjgwMlRmSzdz
RXdaSEM5WjVrR2NBbnMwbVB1N2ZrVjViOXBqTGZwT0MvYmE5b3dFRDRUZ0J6TFBkY0VvSDEvS3ZX
bCtENHU3eStCM2NQYlN5UndPYisxSE5zUGI0VHovYTFsRmRmOHNqNzRwUFB0Y2drUTQzOEhBU2pB
ZnREbFRRQllCcFI2LzJsWThQQk1yd1orZ0g0b0hlK0N3NGNQRzBPQVdBbUFaLzVSTnZzU2dHblBB
RllGNGdLL1ZCV1FNdlpod1c2NnZwSmU2L1Q4Q0dZUjREYkRRUndXQlRDYlJHQThVZ3RyNnlZdkgx
ZFN6OGZMMjRpZ1lzc1dWYmZWb25jOTM5OWFUdHFTcmM1UGR4eFY4aDlKd0VnRzFITi9zN29LY0o5
UVlLSXRVUHVYKy85Ui9sZTdBQ2tCSktvQXVQZEh3RVFsQUFybU1ON2ZCWDVPQkJ5d1BqRTlsZmxT
QXhCOVBwMU8yMC93aVdKVStyTmVBRmNZWUJ5TjVmazRBRzdUYy9TZU50NGtVYjd6SVFFTDRFMGhB
Q29BdEZmU2E3VzI1a3dtVS9hOERQZ2lHUkR3OG1FaDRwVVFCQzBobXBRQTkvNXdkU2Y4L3ZqbW9B
S29uQjFZTE5hb0FMRCtQek16by9ZaDN4cHNoeHU3VnNCbkMxS3hFY0NQMlFXSjVBQit6QzVRVFQ2
UzFIZEplOU05N3dUY3ZLYkpQY2RmdXI2UXQ3OHV5SDhlQW5BVjRBVm04bnhZOEFmZWg2L1I3cnJa
QUg4TndFZWo1LzJoQ3JnMTJGNysvNnNRd0hEZmxuSnNUMHdpQUl6L1lTeGRsZjgrSkZDNThnb0M3
d2NvbC8vb1ZPR3lBaGpKbEVNQVdnYU1OUVNZbVptQlluRmFzZVd0d1hZVlEzKzJJT1ZWQXZRaGdD
am1Rd0sxZW5xWFhlOVpCcStrMTRZRFAwcDYxMk51QWdHRTh0S21rVmtlWDIvY2IxOTViWEhQNmRt
cjNkY0lmRFRjNGNkNytFY3lYVW9GWE01dkRRQmZJZ050SHFBd0t5QkFCdXdlMzIvY0JhaWRLMUFk
SnRxWDJRUkR4L0phQ0JBTEFWRDVUeFhBMUVDSEF2OW5DMUplWFlDVUFMRGJMMnpNSHdYOFAyWVhP
RDE3TGVCSEF1Q3ovRVh3bTBCTngyeno1d3pneHcwdmdVRVhnb2Mya1lSMVhIYklxL281Wmt2bTF3
aDhUUFJwSi80U0NYN25WRGM4M1hFVVVodjJxb1NleTZqbk5vTGZRZ2lhZ21DN0FIbjNINUlBYmhr
Zk9wWVg5d0lVaTlQUkp3SlJBa0FGUUV0L1ZBSDR4T1J4RW9CdkRnQTM1dmhJK2FoMmMwY3p6THk2
dkp3SG9FaytIL0Q3R282bk1pZ0FreXhQK25IZ3lqZmdZREl0VEVMUEpmRnJCRDRsQUZRQXVHR0hx
d0JzQUVKWjcwVUFIM1NGSXdDY0ptVG9BRFJsLzNHT1lEYWJWU0VBSllDYXR3T2JGQUFGLzJjTFVs
RFl2dENaZ2NjV1lMcDlPQ29CaE1rQm1HTDd1T3g2enpKRkFLZ0NBakUrQno4RHMrbm9iUlB3cWNl
MUtZQkVyNlo3M0dKYjJYV25majRrQWQ4U1hnS0ExNnd5c0VTZDkxY2hBTnJJOCtCa3QxWWxjSklB
QW5laUxSWUNDR2IvbWZ5SGZyZzEyQTREYjd5amVnQ2tlUUN4S0lESnlVbTRuTjhLOXcrdDE4Q1BJ
WUNwOFlidTk4Y2VnREF0djFISWdCTkFuR0NYcnZodm0zbDFlWFdTcitENXRiUG1vbGdGWUU3dzQy
dTFQcmJNMURQTjJETk8zZTE4MnordVR3THdGVnUyYUxQeS9vdDdUZ2RPL1AzMzM1dUM4cHQ3WmZU
Mi9NcXkvNmFaZ2JaaG9xYTlBSkwzeHowQXZBTEFTNEN4aGdDWU9KTVVBQWU4UkFRK0UzL2lVQUEv
Wmhkb2UvbmpCajI5M3RpMVFwdEJrTWxrQXQ1ZmdaL01tK1B6NTB5QWw5NWpWQUlTU0EzZTJ2VzY5
cHhFTUk2ZlF3Ti9XTkFuU0FLcHpyZFZvNCthOVUrUC9KNW84eUlCOVQ2eVJ4L2xQd1c2TkRhTUUw
RmdENEVvLzgwVkFGTVhZT3dLZ010L2t3S1FpT0RIYkhYdWY1UWNBQ1VNM3dSZ1dLQzd3RTRIZnVB
OWZqODZkMkRqODcyNkF1REFkaG45T3NON1RFcEFVZ2FMZTA1N3Z5NTZkSWswaE1lQjU3ajBueVZQ
cjJRK2doMm5ENUhkZnFuT3QyRk4rcGZ3YUhnamxJNFRBbUJiZWprQmFKNlplMncySXN3R2ZHMlVH
Q01kbkI0VmJQNGhSRkRaQkdUcUFveE5BUlNMMDBvQmNQQWpBZENUZ0tVckFyZmVGSUNQaDVkQVQ0
MkNINGVRVEwrMXBrd0NYQUg0RW9ERkpDOXJHM0Z0OVBTbTkxbSt4dWRlTXgvUUowUUVkRmNmTjZv
Q0ZOREkxbHdUQVVneE9wZi9OaEl3WGxuU1QxTWN0UE9QN1FLa0NVQlREMENzQ2tBaWdPczl5OFM5
L3ZSeG5BVGdtd09RQ0lBRFBDcm9PUUh3Y3dZMEVzRDk1bml0a1FCOEFXNERhR2hQSHRVMjdFM1d5
eHRpZkM3M2JTU0FuWURhL3Z3SmN4aGdKSVdKTnV1a0lENDhsQklBN3dDVXQvN3FKREExMEtGdEFz
TDRIM2NDeGtZQXhlSTBURTVPd3Vmbjlvc0U4SFhuRWlQdytkbUFOQW1ZaEFLUVNvQXU3KzREY3BQ
ZDNORWN5QUZRRXJpOWJ4VmtzMWwxaEpWMjZHVE1ST0FraHdpdjEycUxlMDdQU2x4UGdZLzM2cm5L
WVoraUF1aDhXMVFBdkRISVJ4RzR3RzhrZ1lrMkVmemxuNG1DWHQ4RGNMNi90VndCRUhvQWFQd2Zt
UUR3elVnQTQrUGpSZ1ZBUjN6WlRnYW1neitTN0FOQUF2Q1I5bUhBYnJwS2cwZ3BJZVJ5dVVSVlFG
MWJBc0FQZUhvSENYQUNlTHJqcUVZQXBlTmRnYWs5Y1h0L28wM0lMY0NtMmo4MkFKM0kvWWRXQWpR
bEFHTUxBYTc5OGFoSUFGOCt0OGdJZms0QXRCSVFSZ0ZJWCt1YkE2alZ5N3ZBejVPQUpqSVk3dHVp
azhBY0tBTE5kb3pBK20yL2dsd3VCd052dkFQRGZWdlV5YlBEZlZzZ2w4dEJMcGVEM2Rrak5YMFBW
UUpNQVBnYzZLWXJEUVcweENCUkFPWERPNktGQVpIQlg5a0N6T04vZmQrL0RuNk0vek9aakZjSnNG
UXFSU2NBYkFLYW5KeUVTNWN1T1FuQU5QR0hXaTBoUUpnbW9GcUFiZ0k3ZHY3WkZBQy8wZ25GSTVr
dVdML3RWMFlDU0Z3ZDdCaUJYQzRIdzMxYkFzZWc0ZmtIOUZRalBKdWdkTHdMTHVlM1FpNlhnL1hi
ZmlVVGxxRzhxZllJeE96cFE1RkJCZlRVOHkvdU9RMnB0UWMxQXRBR2RQZ1NnSEJRU0JpVHlveDY4
aTlJQkE5T2Rxc0VvRzBiY0UwRXdFT0FRcUVnRXNERnAvUmhIL3hxSW9DcHZVc1Ryd0xVNHRsZFYy
bzIrVStmbjM1ckRVenRYU3FTUUdKa1VQSDBDSHEwdXdkV0I4RE83ZnRQOHVxS284b2ZuT3lHNGI0
dDFYOUQ1amZPSzUyeUUwVVIrSHI2QURtazBvRThnRWtCYVB2MzJZZ3VwL2VmYUROT0NYYkpmKzc5
Y1NDc3JBRDArTituQWxDVEF1QUVJUFVCZkxZZ0ZlcVVZTXdEMUZJRjhGRUFramMzZVhxVFp6ZUJu
ajkyeVgrdUJEQTVxQ1dtSk9Cd0l2QWhCK0tKT2ZEUjQ2T25wMGVYVWFQUElRbVV2anBSM3BCU0dJ
UHZQeW1YejRiN3RnU1VqUFp2ZUNGZms3VDNpZThEWUJldUZQaFBkeHd0Yi9UcGZCdWU3amdxS2dB
MGIrK1BvSmVJUUNLRXluTzBoVmc3KzgvaS9iWDQzN0lKS1BZUW9GQW93TG5XSnBFQWJ1eGE0VTBB
bUFkSVlqY2dyUVJRc0VxQUR1UGhYZWJLQWZDRFN2QWVELzhNUXdUVzV5cmczL2g4TDF6T2J4VlBQ
S1lBTjExTmFxRDAxUW40NmNwN0FJVXgrR2Z4QWp3ODB3dFRBeDJ3TzN0RXptL1VLUHNqZS96S2xT
Y0JVUWtnK0xQWnJDb0RTb002Nkl3L01mTS8wU1pQQi9hNWZyTmFUdndGK3Y3WnRkSUE1TE1Id0pZ
QTlDSUFtZ1FzRkFvd2t1a0tSUUFtbWU5ekFJaFBNdEJGQW1FQmI3cjNJUUNUL0RjZFVZWmZNLzNX
R3VqTGJGS1NXdjJ4MHVtMEhqSWJkN2RORFhRRWpqN2pIbDhDdkEzODlMUWlLSXhwSkZENjZnU1Vq
bmVWOTBGVUVtNWErMjlJV2UvOW5NSGpMMXUwV1RNcStUVVNXSHRRZFFKcUNvQmNyWGtBMTRodzEz
VkN6djZMWFg4Vnc5OTFIQW5BU0FRdzNMZkZXQXJrNE1mSlFSS1FhOWtPSERZUkdFWFNSMVVBa3V5
WDFJQjBZT25VUUFjTTkyMkJOZWxmQm9CdkEvM3U3SkZBVW85NmZCcm4rM2grbXhwQUZjQ1ZBQlRH
NE1ISjd2SWdEVWZ5TG9yRU40RmZlcXlCbjRCZFVnQjltVTA2QWJBaEhhYTJZSjhKd1pwSkpDQnQv
TEhGL3BVTlFEVCtIenFXaC9IeGNUaDc5bE94QlRnV0FpZ1d5NjNBaFVJQlJrZEhqWlVBRG41VUFG
S3NiMG9ReHBVRHdQczR3QjFWQVZDUVMyckFaa2dHdzMxYllIZjJDR3g4dmhkMlo0L0E3dXdSNk10
c1V1VTYyM0huRXVnbHc2K2x4NkZMcEVHVndQZWY1QUVLWXdDRk1iajkzUVg0WjdGc2xBUmNuanlz
eEhlQm5YL05za1diQTdFL0p3T2M5NjhSZ0xCTFQvVCtZUWhBTW1QZDN4ei9QeG91enluSTVYS0Ir
SitlQjVpWUFyQ1ZBaW53OGY1Nmp6d3VES1Z2TFNHQWJ5SXdDY01UaE9uVnBBSmNudDltK1BWNGVq
SDE4Qnp3UE1ISFFZN2c1Z2xCSHlzZDd3cVFBRmNCU0FRUFRuYVhoNk9FbFBsaHdlOGlBcXNDV0hz
UVVtc1BWdmY3VzRaNDFPejl1WkhrbjFiNkM3VDlCcnYvSGcxdk5NZi9RZ2RnN0FSUXVIWkZKQUNz
Qk5DQkg5TnZyWUhyUGN0RUJZQmhRQzNlM3dYK3VFa0F3WTZmU1QrYnR3T2JTS0FXTWpCNWVrbnVj
N0NiZ084aUFmNDVybEFBaWVCeWZxdFJydnNBblh0eUh1dmJRTS9qZnluMng5MkJkMDZWZjEvU05s
NFRBY1RwL2JVVGZ3TGdEOHIvcVlHT2F2Mi9JditqSmdCREVVQ3hXQTRCSnI3NDFsZ0o0UExmcGdD
aUVJQlBBbEFpZzdpOFBQMHNmazhWUUJnU2lNTTRXRGt4U0VRUnh2dFRrOElCaVFTKy95U3ZlV2tm
RXJCbDhxTmFhdTFCVmZhajVUL01BU0Job21lV2huZndrM21kNEw2NjAvbzZuLzFYOWY0dlZnQ1BW
OTN3Rk9CY0xtZWRBZUFyL3lNUlFPSGFGV01sNEhyUE1nMzhTQUMyTUdBMkZJQXZDWmdBenozOXpS
M2x1ajk5RFIrN0VvRnhlbjhPYUVrVm1NQmZPdDRWV1FsSUtnRDdBMjUvVjA0STNqblZMY2JtVVlF
ZTJ2T2pjaEM4LzlNZFJ5RzE5bUIxR2hEcjVlZmJkVFc1UGlHZkI2RHVyKzRzRzYwT2NPUGp2c2JT
RmRCVFkwUndkYWNxLzJIOGJ6c0hJRFlDb0dQQmtRQ0dqdVdOZVFEcDdFQ2JDZ2hMQWo3Z2w0Z0Fn
UnNGOVB5NTIvdFdpZUIzOVFJa3BRQWtzTHVJUUNJR0cvaVJOQ1FWUUluZzRabGVLQjN2S2ljQ0Jj
RDZsTzZpZW4wRmVoSTJpT0N2eUgrY0NFd0pRTnF1UzZmLzJNQmZuaXBVQnF2cEJDRnA4aS9BaTVY
MlkwNEN4Q3J4Z1Q0UkVRQUFJQUJKUkVGVWZ5YVRpYVVCeUlzQUFJUjI0R3RYakluQWkwOHRFQW5B
ZG5SWTFObUFQZ2xBS1NGb0F2eU5YU3ZVY3lhQTArZFI4azhOZEdoVkFMbzEyaFlPSkpFSGlBUHNN
Kyt1RE9RTHBEQUQ3M21Pb0hTOEM2WUdPc3FIYktiU3lreWVYSXJ6b3dLZkp3WVI2Rkx5anlZQVM4
Zk52Znphc0E3TGdTREsrMWVTZFVhRndBZUprRm1FWmJDblJBSjROTHhSN2YrMzFmK0xSZi80UHhv
QlZDb0JwanpBMUVCSHFOT0RPWURqQUw4dEZEQjVlaC92THNsOWZpMXNYd2dYMjV2Z3hxNFZzVllE
WE1BUEEzNGZRc0FlQ3Q0K2plK1pHdWlBUGV1V3dFaW03TzNQOTdmQzFONmw1V08xRnJhVXo5Y2pC
QkFGMktHOFBma2VrdWZYd005YWdGMjcrVnluQVZXOS94QUFERGxQRHFJS2dHOUIxallqb1RLb2VI
OHMvOFVWLzNzUmdLa1VhTW9EM056UjdFVUFFbWpqVmdBbUFwRGtQUVU2ZjR5a2dHQkdRQ05oOE1m
bldwdmdYR3NUWE85WkpucitKSktBWVJTQkxTZHdlOThxNjZhcGM2MU41Uk4wOFNodHlSWjNpZ1FR
Rndud3NDSHdmZGE5QnFtMUI4dmJtRW5NajlmVTJvTmFDN0JyTjU5NEJnQUNHaDlmM1Fud2o5OHBB
aEJKZ0dmK3YxbXRnViszRnhVaG9BS1I0djlhNUg5a0FnaVRCN2plczB4TkR2YUozV3ZOQWZpUWdT
bVJSNEhPcnhJUlNLL2ZQYkFhTHJZM0tSSTQxOW9FaGUwTFl3ZS95L3VIVVFMbzhXL3UwT2NuSU9n
TDJ4ZkN1ZFltTytnUitKUUFZbFFCVW55dldvNHhsMUFoaHNVOTVYSGZEMDUyNjhESHdhQmMvaysw
NmYzNUhnUVFBSG5GK3dNTWFlUWdnUit2dXJjUEd0MlJlT2RVdHpYK3A0ZUFKRVlBeFdJMUVlaWJC
N2k1bzFtTkRYTjU2Q1NyQUtiS3dQMUQ2MFh3NDJQNitzeXJ5OVZqQlAzOVErdTFIZ0I4blJJQUo0
STRRNEdvWVlBazlhV2hLUmZiUFR4K0NBS0lsTWxuTXA5NmVSN1gwL3IrMUVDSEJub2tnMVV0QTdy
OFIvQWJyczRUZ1JENC8vZ2RZTGVlNmRRZzZ2MHBBUmlKWUtJTkhwN3BoWkZNVjdYOTF4SC8rNEkv
TWdGTWZQR3RkeDRBRmNERnA4emdOTFVMUndrRHdvUUNrcWUzZWZpN0IxWmI1Ly9SSzFjQjFMNThi
cEg2bkRqVmdPK1ZlM3NUK0RldjhmRDZOdkFiQ01CR0FsYlFjeU9nbHRwN3ovZTNhcklmYmJodmkz
WWt1S1lBaEtzVi9FVDZ3ejkrcHlvQXBqTUR0Wk9ERFVaekFmZytsUDl4eHY5ZUJBQmdyZ1RZTmdi
eEhBRHVHT1NnUnd1ek1jaFhBZmdxQWhySGM2bHY4L3owUGZReFZnRk1CRUFOSlhhdDN0OG0vZkhm
STRGZHVyL1lIZ0w0VXV5UEZRQUxBV2hKdXpDZzUxWUpCV2ljanhPTVJqSmRBWkpJclQwSVV3TWRx
bHlKTXYzdXRaUng4NDdrMFdYdlB5UVNRRUQ2ODEySEppS1lhTlBrdjlUL1gwdjg3MDBBcGtTZ2FX
TVFEUU5RQWREaG9STDRmQW5BQi94aFFnSHEwU2tSME9RZEI3ZXZkTGVwQU1rdXRwZnRlczh5Vlpi
MCtUNzQ4OTNldDBybE53cmJGeHJQUkRTQnY3QjlJZXhadHlRODZDTW9BSWtFSWhzcjdhRjNUNmYx
MTFhMURLakRQclVFSUFXK1lOSlJZT1dEUkJqNC8vRTdwL2VIQ1hadW9JVUk4TDFTOTE4dC9mK3hF
WUJQR0lBNUFFd1FJamdSYkhTYThHeFVBVXpHWTNnYitLblpBT3FyQWpnSjhIc2tCcGQ5K2R5aWdH
RWZCaEpCWWZ0Q2tRUUsyeGZXQm5vSi9KNEVFTWFXTFNxMzkvTEVYMnJ0UWNqbGNuRC8wSG9GOEkz
UDl3YmsvOVJBUnpEK0QwRUFpalNvOUtja1FBNFFEUnowWWRwd3hHWVFvUGZuMlgvWC92K1ptWmxR
NEk5RUFNVmlOUkY0OXV5bnpuTGdqVjByQW9ORHBMTUQrUFRncFBvQVhDUVFaOWZlL1VQclE2c0FE
bndmSXZqeXVVVWlBWHpkdVFRdXRqY3A4SnU4dnBiaHB6SmVBcjB2OEJNQVB3STl0ZTYxQUNrODNY
RlVBLy9VUUlkS0ZLYldIb1JVcWw5NWY2VUFQRGYxcUJDQU51OEk0Qzk5ZFVJOExGUjVmMkdqa1lr
UTZQdlM2WFFzOC85cUpnQXBEMkFNQTlxYnlvTS9Cem9DK1FFSi9MZjNyUW8xSkRSdUJZQS9rODJi
UjQzUHd4S0FCSDRFdVM4SllDeFB3UytSZ0pibzR3QzJ4ZmdtMENmdCtSV2dkV0tZR3VoUXV5QlJO
cHU4UDVmL05pTGdoMzlXSi9ZTUJVa0FXNENsWHYrSk5uR2prV2tHQWU0UVJQa2ZaL3R2YUFJQU1I
Y0VqbytQVzhNQUpJQ0xUeTFRWmp0RFlMWnpBQ1lsRUVjeURoK2psNDFLQURZRllQTCtGUHhjQVJp
OXZrUUFIUEF1OE1mdDlVbWNyMlgwMTcybStnRm9WaC9iay9zeW05VFhyV29aMENiLzBQcS9UNGRm
WUdJUHpmcXpCS0IwWmlCdE5ESWRHcW9SQUprTy9FcDZiZXp0djVFSXdKWUg2TXRzTW9ZQjUvdGJB
d1NBZFhWcVlVYUUrVllCa2lJQjMrdzd2ZnFHQXE0Y2dFUUVKaEtRY2dDQlRqNEc0SlZ0Mjl5bHZk
a0VQa3YwOGJJZTd1aEQ0T045T3AyR1ZLcGZrUUJWQnlqL2VVZWZSQUNsNDBUT20rSis3QURrd0Nm
U1A3Qy93RUFDZEwvQXJjRjJsZjMzT1FFNHJQZVBUQURGb3Q0UU5EbzZLbzRMdjlqZUJOTnZyZEhB
Zi9HcEJZR1RoT2daQXI1NWdDUVZnSWtFd3JiYzFoSUsrTWIvUGptQTZ6M0xndGw5RzVqbktNSG5R
d0E4cTQ4bFAwb0NwZU9Wa1dUclhvTlVxajlROStkbFBSc0phRUMyZ0YvRi80d0VUQjJHeGxPRXlX
ZGc4aThwK1IrSkFLUThBSVlCRWdsTURYUW8wRk1DdUxtaldRMFFRZkQ3cW9EWlVBQzBKQmlHQ0Z3
RUVUWDU1MG9DU2lIQW5uVkxORy9mMHZLTUVmUXIyN2JOdmN3UFFRQlBkeHlGcVlFT0RmUklBdWY3
Vzh2ZWY5MXJzUEg1WHQzelcycjZvcWt0dTRhNG44VC9BYzhmOXNEUWllcVU0RHVueW1QVmpPVS9R
ZjRuU2dDVUJQaStnUEh4Y2NqbGNzYW1JQVEvdmFJSzhEbEhZTFp5QUFoNm14cXdlWGlmZTkvU1lC
Z0ZRTU1Hc1h2UEFXb0YvdWFYNnhQOG1QMG5uaCs3L1NUdnI4YVRyM3N0a1Bpajh0L0hZQ3hkOXU0
MjhNTVFQRHpURy9UK1lVOEtJbE9DUnpKZGtNMW1BKzIvVXZkZmxQSmZ6UVJRTEU1cmVRQlRNbEFD
UDE1Tlp3bjRoQUZKVkFFa0lzQitBS2tLSUhsK256RGg3b0hWc0dmZEVqalgycVN1WVd6UHVpV3da
OTBTZDZ1dXc2TWo4T2tRam5vR1BtL2w1YWJGLzgwdncwaW1xOXJ4RndIOHBlTmQxVDMrVXRLUEVJ
SW8vUkg0L0NyWmhNWDdKeVQvWXlFQVdnMHdKUU81NTZjbUVZQXJESENCUDRsUUlFeFk0RklIbEFR
MnIya3lXbXBoUzdoK2ZNL1luUUovMmFMTjVjZk5MOWNYK0FYcGo1MThFdmlwTFZ1MFdlMEdESUMv
RWdKUU1wQ0lvVHFuYjBnM0FmeWxyMDRFaDN3Z0FaaElnSk9CNFAzRFpQOW5oUUFBcXVWQXFSb3dk
Q3d2SndPZldxQ3kwRktXT25DYTBFQ0hkWXhZMGdyQUJueEpEYmlVZ0UwVmpHUzYvSGZiMWRDWW8z
bjd4WjNWWmhvOG5LTWV3WjlLYTgwOE52RFQrSDlsMnphdEtZakgvNXdNSkVLQWliWWcrRzN5bi9Z
TFVQQnpFcENJWUtKTmhSRFUrNHV6LzJMSy91TUtUUUFtRllBLzRDdnB0U0lCU09ESFpCWG1BdWhB
MFJ1N1ZvZ2tNQmM1QUFRK0p3RWZNckRsRE5CdTdtaXVrb0F0QzIrUzlZNjRYY1g0cVRTc2JOdW1l
MzA2bzcvZXdJOEtvTkxGNS9MOHVBR0k3Z2ZnQ29BVEFZeWx0ZGVxWTdyb2VYd1dFc0QyWDlMdzQy
MUlBRGJ2bjZEOEI0aUJBSGcxNFBEaHc2SUtNQkhBMTUxTDFPWWhUZ0xZTXpEYlZRQUtibHRlZ0Y0
cEVkakFiaUtLMi90VzZlTzBUS0QycmN0ekFGZEF6b0d2ZXVyckVmek5MenZCenhPQTUvdGJaZkJq
OHc4Q25vY0Z0TjFYT3BURHBBQ3U3cXdtQUQwNkM0MzdESWozbDVKL1NjaC9nQWdFQUdDdkJveVBq
OE9lZFV2RVhBQU5BMmlYMnNXbkZxaFFnQklBYmlUaVNvQ0NOZWtjZ09UOXc1Q0FiNDhBRFFsQ2dk
d0hzSWF6K3ZqNzZXRE8rakIvenkrQjNVWUVKbUt3bnN3amtJQUovTjVrUU5UREsrbTF5dnZUMm4r
Y3ZmOTgxVXdBeGFMZUZHUXJDZkpkYWZUeHhhY1d3STFkSzlRMllxb0NNRmZnU3dCeEE5K1dEekNS
QUQ0T1d4MjRlNkE4ZENTZHJ0MHJhNE0yS1BEeDFONTFyMVVOazIzMVFnQ0xPNkV2c3lrMCtHc2hB
OU9CSExad2dDYitwT1lpS3drUThJZjEvblZCQU5MZUFPd01sRXFDRjU5YW9EclRLQW5nMEpDTFR5
MkFxYjFMRlFsTURYVEE5RnRyMUh0ZEtpQU9JdUI1QUp2ME55a0JTUkc0cWdQOHVabFhsNWZWZ0Fm
dytXaHNEbnlOQURqb0tmaXBtWTcybmlYd2oyVDhnRzhEZlR6Z3R4QUFOditZZWdnbUhIc05TT09R
eS92WE92bkh0Q0lSQUlCOWI4RDQrRGhrczFsckxvQ1NBTjdqNjN5ME9DMGpZazVBQW0vY0tzQ25F
dUFDUDFVQ3ZnbERVUTBZUExzVDhCcDQrNFBneDM3NXNKWVVHU3p1VkhGOEhKN2Zod1NNcC9FNFNJ
QjIvTGxJSUtBR2lQZS9uTitxWmY1TjNyOVFLS2pHbjdvaWdHSXgyQk5nVWdFNElSaEpBQW1nc0gy
aElndytXQlRiaWZsUUVaUEZyUUo0NWo5TUNPQXpWOERWTDNEM3dHbzQzOTlxQkxvUjhCTDRLMWwx
bytjUFkyeGZmaTIyYk5GbWFHbDVKdERlRzRVSWFnZS9Cd2xVdkQ4MzMrNUN1dU52ODVvbUwrOWZM
RTdIbHZ6REZaa0FBT3c5QWFPam8wWVZjUEdwQlZEWXZsQUhmMlg3cW1tNjhJMWRLN1M5QkhGN2Ux
c09nSUpmVWdKaFZJQ05ERnpWZzl2N1ZrRmZacE1iOEtuK1NsalFYd1UvSGFaQmhtU0k5elpEOGxD
ZlhadTNSK3ZMYklMN2g5WkhBbjhVRWlobisxOEU2M2w4anBONnRaNy9NR1JBbW9aR01sM0srOXRp
LzdpVGY3aHFJZ0JYTW5CMGROUllFYUFLZ0JwVkFad0VzR0tBWVVTU0JDQ3BBWnZrZDVHQVN3V0VJ
WU9wZ1k1eXlkRGs2Zm1WUy8yNWt2MUM5V0xab3MyaEpIK1lNTURrK2VYRE9NTVJnUXY4SmpLZzN2
L1I4RVpvYVhsR1NYL2YyTC91Q01BMEtBUXJBcElLd0ZEZ1ludVRSZ0IwaUNqUENVd05kR2o1Z0s4
N2x5UUtlRnZHUDZ6bnIzWEVtSWtJTmo3ZkszdjdWTDkrYndJK2Y4NUZGQmh5UkFDN2VwNGsrbXIx
K2o3eGYzVHd5eVR3OEV5dnZQUFBod2pJbG1TYStIUEYvc1ZpL040Zm9FWUNBS2hOQmRCUWdCb21C
Q1VTdUxGcmhkWklsRVFvSUhVRSttYisrVFZzUGlBcUVaUlA0MlhnNTJZRHVPdmVkcVVoQVcwczR0
ZksvU3ZwdFRBMTBCRWIrSDJ6L1REUnBnN2hkSjdHYXlJQnR1MlhtdFlSYUFFL2p2cWlpYis1OFA0
QU1SSkFWQldBbFFCdUVsbGdid0RPdThNd0l1a2NBSS8vcVlmM1VRSVM2T002SW96YlNLWXlEZGRF
QWk0aThGRUNQZ1FodEJmSERmeFFzbitpallCZVBvSFhTd2xjM2FubEVYeUpnRDcvNEdTM2x2aVRl
djZUcXZ2elZUTUJBTGhMZ2tORHA4VTlBcHdFcHZZdVZWZXVBbkRDRURZTDBhN0NKQk9DcG9wQTFO
aC9OczRHeE5IbWZabE5zS3Bsd0U0QVliMjk3N1Z5djJ6Ulp1akxiRkxaL1NUQTd5SUJQSVpMTzNI
WFN3VUVTY0FHZkY5U2VDVzlWbzM2Y3ZYOEorbjlBUklnQUU0Q3lHaUhEeDgybGdXeDNiZXdmU0g4
NVkwbGlnUzRhcUJkZ1pnUHdDR1hTZVlBK0wxUDNPL1RCeEEzRVVpSGYyS0kwSmZacENzREEyRGp1
SzVxR1lDTnovZkM1ZnhXdUh0Z3RSVzBjV2IrQXlUd1FYa09Qejl4TnpJSkNIRjhtTWRZODI5cGVh
WXV2RDlBVEFRQTRGWUJvNk9qa0U2bmphRUFKZ1VSL0tnR2JKdUs4SkNMdUZWQVZLOXZ5d01rb1FK
Y0pHQzZqbVM2ZEVMd0lRUGJmYW9mTmo3ZkMzMlpUVERjdDBXQkdvbUlBejNwRUtCMHZJdEkvdUNK
dTV3TXZLeFM5cXZGWUN3ZGtQNm0wMzZTVFB6UmxRZ0JGSXR5TG1Eb1dONllFS1JLQUFsZ2F1L1NR
RlVBWnd2UXZRU29IcExLQVpoeUFsR1ZRRndrRUdVNnNXUlRBeDF3dnI4VitqS2JWQTdCWmlPWkx0
aWRQUUkzZHpURDVmeldBTWhOMTdDZVB5eFJxT1llVGZMYndlK1hGK2pYZHcxRzhQeFUrdlB0dmtu
ditMT3QyQWdBd0U4RjJCS0NOTmFmMnJzVS92TEdFakVmUUJVQTdpMHdoUUkvWnN0YmlzTVN3SS9a
QlFxNHBnN0FzQ1NRVkJnUXh2dmJpTURIVEo3ZEYveGhnRzhqRUpQM3ArZnNTY2R0QjQvajlsQUNO
WGgvR0NzZkJ6NDEwS0ZKZjJQVHp5eDZmNEFFQ2FCWU5Lc0FXMEtRZ3Z3dmJ5eUI4LzJ0Z1h3QWJo
K21ld2t3SEpCQ0Fmd2FlanF4ci95WFpnUDRoZ1MyTUNBSitSOEYvQzVDNElDL2UyQjFhQkt3Z1or
SEJ0TDM5dkgrTU5HbUhhM2xJZ0h1K1cwNUFTU1pxSjcvenFsdUJYN2M3V2NxKzAxT1RtckRQaDhy
QWdBd3p3cmdLc0NXRUtSQVJ5WEE4d0hZUU9STEFtRkRCUmZnYmVHQVZPK2ZqUnhBbEdzWXp4OEYv
RDQ1QUYrVllmTCtkNitsUlBDYlNJQStMMVVITkRQVS9IMnovdGp3ZzF0OWFleHZxdmtYaTdQai9R
RVNKZ0JUUldCbzZMUXpJY2lUZ3hJSm9Pem5MY1ZTaCtDTlhTdTBNL0Y4aU1BRS9Ick9BZmhlRWRD
KzNsOENkTlF3Z0w3ZjlqTzRQZ01tMm5Ud0cwakFwZ0pNU2dEZ1JZQnZWa2YyL1BSc1A1NzF0eVgr
a2k3NzhSVTdBUUQ0ZFFjT0RaMkd6V3ZjS2tEdEMyaHZncis4c1VUTEIyQW93SnVJRU9nOHBrZncw
MTJJVWxqZ0MzeFhMcUNlY3dCaGxJQUUrTENlbnIvWDlIUDdoZ0YzcjZYSzRQOTdVeVFTQ0Q0ZkpJ
RmFNLzYzQnR0bDhGczYvb3JGNUJOL2RDVktBS2FCSWFnQ1hMMEJwdFpoU2dLbVRrSWtCeDhTS0d4
ZmFNMFAyRUlBNlRXVDUwOEsvR0dVZ0kvbmw2Uy9qM2QyRVlTTnNIeFVRT2w0Ri96MWJCbnNDSG9L
L3J2WEt1QkdBdkRJQjFTQnI1TUF6L3FIVlFKM1RwVzcvV2pXdjE0U2YzUWxRZ0FBYmhXQUpKREpa
THhEQVNyOTZYdHM3Y1M4QWtCQno2OW9ObkJMU1VGWExtQzJWRUFTbmg5Skk0emNwKy9CZnk4YVBy
NS9hTDI2K3FpQW1YZFhLcS9QalJOQm1IeEFVQTI4cUE3cGlCcnpZOGxQaXZ0dE5mOWljWGE5UDhB
c0VBQ3FnR0pSUDBrSUpkRFFzVHkwdER3VGlnQnNuWVMwbWVoaWU1TklBaWJnOHcxSnFDQk1NYjhw
WVdpYUZzUnRMc09Cc0VyQUZoWklrbDRpeHBzN21yVi91eS80ZllDUDRVQ0FBRHh6QXNyN2s3amZG
L0RjYU55dnpmZ2o3YjU4eG4reE9QdmVIeUJCQWdDUXk0S1RrNU1CRlhENDhHRm5nNUJ2c3BEdUth
RHpCWkFFZnN3dVVHY09tTUJQdHlYamFISlhPT0FLQmVoOWtzQ1BxZ2g4QVcrSzQ5SHdkNFZId0NQ
bzhTb3BBUk5CL2ZWc0dlaDQ5U1lDaXhMUU0vOU1DYkRUZWFNb0FLejNvL1FmZU9NZDgxWmZnL1Iv
NGdoQUN3V3VYUW1HQXNmeWtNMW1RK1VEYkNSZzZpU2tPUUUra2Noa05NeHdsUXROK3dYbUF2d3VR
Z2liQTNBWmdwNWY3eDRvenpYRUs2b0QwODgxOCs1SytPdlpsRGY0QXlRZ0pRVTlTNE5Sd0UvZmcv
VitHdmNiZS8xWjFoOFArTHgzNzE2U2tBeXNSQWtBd0crQ01GWUZ3cFFHWFlsQ1NnSTBhWWdrOEdO
V25rVmdJd0dxQmx6QXgrY2xOVENYSkpDRTNkelJERGQzTk1PTlhTdWNDZ0RKZ0NzQUNud1RBWVJS
QXFKWlNNQ1U5QXRqbTljMHlYRy9JK3MvRjlJZlYrSUVBT0FlSUVwRGdjMXJtbW9tQWFvRXNKMllK
dzJ4UmRnRWVocEcwRkFDazVDMlNnRW5CQW4wVHdJSklOQ3BJUWtnK0dkZVhhNUFqeVF3OCtweW1C
cm9NQUtmZzk5SEJTRDRuVGtCaVFRbXdpZjl1R0hTajBwL1c2Ly9YRXQvWExOS0FMWU9RVTRDdFJJ
QTdSMFFPd2tyM3R3VkFrajVCS29tZkpSQUVxVkFVd3crVjhEbkJNRERBQXArUEFGYUFuNnRaR0FO
QlNRVk1GRWIrSEd3WjlpNGY3WWJma3hyVmdnQXdONGh5S3NDdVZ3dWxxUWd6ZzlBRXVBN0N4SEVm
RFFaSFV6Q241TTJKcG1TaEx4NmdQMEgrUFZ6N2NHakFoLy9EWGpsaGw5SFBUOG0vNmpITjNuL1dw
U0FzenBBS2dNdzBhYjErVWV4OC8ydGtGcllFb2o3cFpMZlhEYjhtTmFzRVFDQWZ5Z3dOSFFhK2pL
YllpR0J6eFpVOXczd1RrSktGQ2p0VFNUZ21sWkVpVUNhS1loMmMwZXpTQ0tVSENoNDZzR3dha0xO
UmdDVUNEQU0rOHNiUytDdloxT0JxdzhKMUJJU21KU0FiN25QWmp6akw0Ry9IdU4rdXVhRUFIeERn
VXdtRTB0bGdDY0hiVGtHcWdaY0pHQTY4MERhZmt5VmdZa0lYRC8vYkNvSGxQTFlWazMzVWRoSTRN
YXVGUnJvT2ZobjNsMFpBUCtza1VERis5Kzlsb0lISjd0akE3ODAzc3VuNURmdkNBREFyMDBZcXdJ
RGI3d0Q2WFE2VmhMNDhybEZNTFYzcWZOcitaeENPcXFNVGl5eWtjblhuVXNDTGNaY0hlQW1wYkQv
RmxRTmNaRUNCVHcxSC9EejN3c0hQeG9GZnhRU0NGc1ZrRWlBeHZ4UjVUK1crekRweHlmNzJzQmZM
TmFIOU1jMTZ3UUFZSjhid1BNQlNBSnhWQVlvRVdEczcvcGFuRkJFU1FBckMxS1owZmI5cEczS1ZC
a2cyS0wrdStqUjZ4eXdITGdJY1B6WjZYSHRrbEVpa0JRU0JiK05CR3BWQXJXVUJtR2lEZTRmV2g4
QWRCZ2l3QjUvTFBlNSt2enJNZTZuYTA0SndHZXZBSkpBUzhzenNaSUFBdFAzNi9nZk92K2pseEtN
cHMvNnVuTkpJRXpneWdDOXNjL1BLQTFQcFZlK2VZcXFJVTRjbkFUb3hpbGJsUVIvRitmN1c0M2dq
eU1YRUtWSjZPNjFjcDJmQWoySzl6ZUIzemZwTjljbFAybk5DUUVBbUVNQkV3bmtjcmxFU0NBc1la
Zzgzdm4rVm5WK1lkalBSTERaVGo1R0lOclVCZ2MrdmRxQVR3MUpBQ3NlUHQyU25BUndrbE5VRWdq
VEcrQkRCbkdEMzVYeFJ3TEExdmRpc2I3aWZycm1qQUFBL1BJQk5DbVlsQklJVFFUdFRhckhRSks5
dGNoNERtWk1OdUpuVXZEaStZbStuNFZmanlSQXoxbEV3ME5hT1FtWWRseWk4UnlKS3hSdzVRVGlV
Z0owWmlBSHZ5OFJPTUhQTnZuVWU5eFAxNXdUZ0NzZlFKT0NodzhmaGx3dUYxdTNZQndneGFRaVZR
SUloakJaL3RuNFdUbXBTQ1JBd3dBZkVwQjZKVnhLQUlFdjVRSHdjUlR3MDN0YTQ1ZkE3MHNDdFlD
L1hwcDliR3RPQ1FCQXpnZElZOFNRQk9vbEhKQUFSdHVQNDFRRGNaT0FTd1Y4M2JsRVRWdjJEUWRz
MVpLb0tzQVZDcGlJZ0VwKzE3Vlc4UHRzOHFsWDhBUFVBUUVBV1BvREpCSTRsbGRLSU00U1laeEdq
ejVYZXhIYTYrUG45RlVDVVhNQ2xBZ2taZVJiRWZCUkFwUUk4RjRhR3NyQm5oVDRINGVrSDE5MVFR
QUEvazFDbEFRd0oxQ1BKS0FBVnpuRTFMU2ZZTGJCYnlNQkNmaW1NTUNsQk9qVnR6UklTY0MzTkVo
SndEWTVPRXdPQUp0OEpQQzdhdjMxbnZUanEyNElBTUM4WDBDc0RGUWFoYkJQSUs2MjRhUnRydk1D
cm9TZ2xCTXdKUVo5d3dFRXQ2dE0rTmV6S1pqYXV6UzBFckNkRnhBMkJ6QTEwQUdwaFMxR3orOVQ2
NmZnci9kVmR3UmdTZ3FheW9NMEhIaGNTS0FlakJJQUVsT1lNQUJ6Qkw2bFFkOWNnRlFtdENrQjEr
aHczekRnd2NsdWJXTlBIT0N2WjgrUHE2NElBQ0FjQ2ZDY1FDYVRxWnNLd2VOZ3ZrbEJTZ0kwTVJn
bUZEQ1ZUSDE3QTdnU3NFME9qcUlFUmpKZFR2RHpiRDhGLytPUThaZFczUkVBZ0wweXdNOFhRQkxB
NmtBbWs2bTdDa0U5bXk4SjBEQ2cxc3FBanhLUXFnTklDRDRqeW4zQS8rQmtONVNPZDhFcjZiWGF4
cDR3bnI4ZU4vaUVXWFZKQUFEdThxQXRNWmpOWnVzK09WZ3ZaaU1BYkVDaVJJQUtJSW9Tb0lRUVJR
bmNQZUIzaXBCTkJWQVN1RFhZRHB2WE5GbkJiOHYyUHc2TlBxNVZ0d1FBNEs4RXBHWWhUQTQyUW9K
d1JQRFpBbnMrQUdOL21nTnc1UU5xeVFuTXZMdFNUVkZ5RFRWMWtRQUZQNDd1cHNrK24yei9rd1Ir
Z0RvbkFJRGFTYUFSRXZpQm41S0FLeCtBQ2dDQmovZSs0RWNWNE5vdmdPQ25oNGlZU0NCTU1oQWx2
d244ODhIejQ2cDdBZ0NJVGdKSUJOZzUyS2dTdUluQVZ3bElST0RiSk9UYVBzeFBFa0tyVlFGTURY
U0lrbisrZ2gvZ01TRUFnR2drZ0Z1SjhUODNuVTQzMUVBSUV2Q3BEUEJqMm0xS3dKUVFQTi9mQ2xO
N2w4THRmYXZVS0RRRVAwNFBycFVFY0hBbmVuMEtmdndid1R5U0xkdGZMRDYrQ1Q5cFBUWUVBT0JI
QXFaZUFVb0VxQVlhUkJBRXZ5OEptQnFFZkpVQVZRUDBIQUZwaFBqZEE2dGgrcTAxa1FqZy9xSDFB
Y2t2Z2QrMHBaZUR2MWg4TWp3L3JzZUtBQURDa3dEUEMzQTEwS2dVeUVUQXljQVdCbEFsd0tzRE5o
SzRzV3VGR2tWR3B3ZmYzTkdzVGhCQzRQdW9BSjRIb0lrK09zVERWT2F6N2VvckZwOHN6NC9yc1NN
QVhKUUVwQTFFcHBDQUUwRkx5ek93ZVUxVGd3Z3NKRUJuRC9pUWdLMC93SGFXQUpJQVAweDA1dFhs
V2lMUXBRUm9yQzk1ZlNuZW40L2dCM2lNQ1lCM0RMcDZCYVQyWVpSL1dDbUk0MENTSjhuQ2JCOTJr
WURQR1FMbytXL3NXcUZ5QVBnY2doL0p3QVIrN09pandKYzI5RmlUZmZNRS9BQ1BNUUVBVkVtZ1ZD
cUpKT0FLQ1V4aFFTTS9FSTRFTUJlQTFRQStsTlIxaGdBbEFYNnVJQklDSmdaTnB3bWozUGZ4K2lq
NTV6djRBUjV6QWdEUWxVRFl2SUNrQnJMWmJJTUlHQUY4dGlBWUJraEpRVDVJTkF3SjBMTUU2YUdp
NlBHNUVzRHIrZjVXMkx5bUtlRDFwY1llbStUSEdYN1NNSThuRmZ3QVR3QUI0T0lrUVBNQ2s1T1Q1
cENBcUFGYUtXZ1FRWkFFdUJMZ3dMZWRJeENHQkdnK0FNSFBTNE0zZHEwUTQveTR2UDdqTU13amp2
WEVFQUNBVEFMRm9xNEdKcjc0MXFvR09BbFFJcGpQYmNWMG1qQ2ZHMmc2UnlBTUFiZ1NnUWora1V5
WE4vRFI2MXRMZkE3Si95U0RIK0FKSXdBQWo1REFrQ0RrdVFGS0JKZ294R1JoYW1FTG5HdDk4c21B
VndJUS9QallSQUJoVlFDQ241NHN6SThYOXdFK3IrdlRvWjJtK3Y1OGl2ZWw5Y1FSQUM0Zk5TRGxC
dWpPUWlrL2tNMW1GUkZRVmZBa2tJR3BGWmdTQUVwL3JnUmNLZ0NCYndzQnNDOEFFNEZUQXgyd1o5
MFNNYm5IZ1UvSjJoWHIyeVQvZkFJL3dCTk1BQUFlSk9CS0Vsb1VBUklCaGdlUGM2NkFOLzV3d0V0
WFZ4akFWUUFlZk9LVEMwQnZqNGs5Ri9DMWJyNEs4R21zYi9QNnhlTDB2Skw4ZkQzUkJBQWdod1Er
YWtES0QvQ3lJVmNGNlhRYVVndGJJTFd3UlpGQnZSTUNCNzVFQ2lidzA4YytLc0FFL3VzOXkyQWsw
d1Y3MWkyQjFNSVd6ZHRMbVgxYm5HOEVQdlA2eGVMOGkvZWw5Y1FUQUM1S0FxYmNnSk1JSElvQWlZ
QXFnOVRDRnRWcFdLOWt3RW1BQTk5MEx6VUNoY2tGN0ZtM1JIbDYyckpyOHZhU3gzZkpmWmZYbjIr
U242OTVRd0FBbm1vZ2dpS1FLZ2Y0eDh1VkFRMFY2b2tRcEpIaEVobEl5VUNmaXNERjlpWk4ydHM4
dmMzYlMxS2ZBci9oOWNPdGVVVUF1RXlWZ21JeHZDS0lRZ2FvREdpNGdBcGhya2hCQ2dWOEZRQ2ZE
M0N1dGF4NFVOSkxnSmZNNXUxNUk0OFA4RTBaL3ZudTllbWFsd1FBRUNTQnFFUWdxUUw2Ujh2SndC
WXFjRktZTFdLUXdNODlQKzBEUUxCVG9GUFA3Z3Q0V3liZkpQT2pBTC9oOWMxcjNoSUFMaHNSNExo
bmlRam9aR0tYS3VCazRDSUVFeWx3Y2tDQ1FMdllYaVVMdkhjQlB6QUl0TDFKKzB6OFBoTEFKYkNI
QWJ3azd5bm9lWHdmQnZqRllzUHIrNng1VHdDNGJQbUJZdEdzQ0t5cXdFTVpJQm1ZUWdhUkdCWjNX
Z2tpQ2NOU3B5L1FUV0NYUU04bjh1RHZqWUllcjFweUx3VHdHK0NYVjRNQTJBcERCQk5mZkJzSUR5
NWR1cVQ5MFpySUlBd2hjS1hBeVlFVEJPMU40SWJrWVRMOEhCK0FtNER1QTNhdGZGYzUxNEY2ZXBP
M2R3Ry9JZmZEclFZQkdKWVBFZmlxQWhzWjJKS0lZWWpCUkJLY0xFeVBiVmVUY1pDYndDN0tlaGJU
YzA4dmdyN2g4V05mRFFKd0xGT093SmducU93MW9JTktlWmVobEVDVUZBTHZOekFwQmhOSlVMS1Fp
SU0vWjNxLzlIMGtqODQ5T3lVNDdkOUpFbmsyVHk5NSt3Ync0MTBOQXZCY0xpSW9GbVZWd0pXQlRS
MUlLa0ZTQ2tnTU50VmdlODduTlpNU3dlL0xnUjd3N0I0ZW5wS2pDZlF1bWQ4QWZtMnJRUUFobDBR
RVBtVFJwc3Q1QUFBQnIwbEVRVlNBTXdta1VFRktKSEppVUtSQXdDVVJnODBrMEVyUFNSNGN2YmhX
a2lOeHV4Uy8rNEQ5MHFWTEtwZkNRZDhBZnZLclFRQTFMSnNxc0NvRE1wdkFSeUZ3VXBESUlVQVNM
TFNnaXNMNEd2UGMxSU56Z0p0QTd1UGRUVjdlQi9RTjRNZTdHZ1FRdzZLekNYM0pJRUFJUXY1QUlv
WXdCR0VpREJlUVRaL2hDL0lBMEZrQ3orVGxpOFVHNkdkN05RZ2c1dVZEQm1FSXdhWVVUTWFCeWNF
cUVZbjBtdlNaSnBCTG1YcVhoeThXcDdYZmlRbjBEZUFudHhvRWtPQXlrWUdORUlwRkQxSXdrQU1s
aVRDRUlZR2EzcXNZM1FKd0NlZ2M3TVdpR2ZENE8ycUFmblpYZ3dCbWFYRXljQ2tFVGdyRjRuUUFY
Sk9UazA1QXhtM1N6OEIvem1KeE92QnY0UVRZOFBMMXNSb0VNRWZMaHhCTVNrRWlCelFFcEFUVXNF
WS9qeHY5V1h6QjNnQjgvYTBHQWRUUm91Q1F3Z1lmZ3JBUmhzL1ZaZlI3K3dLOUFmajZYUTBDcVBN
bEFVbFNER0dNQTlnSDBCTEFHMEIvL0ZlREFCN2pKWUhQUkJRY3NDNFEyNnl4bnB6VklJREdhcXg1
dkJvRTBGaU5OWTlYZ3dBYXE3SG04V29RUUdNMTFqeGVEUUpvck1hYXg2dEJBSTNWV1BONE5RaWdz
UnBySHE4R0FUUldZODNqOWY4Qlh3MjZ6eGcvVTBnQUFBQUFTVVZPUks1Q1lJST0iIHdpZHRoPSIy
NTYiIGhlaWdodD0iMjU2Ij48YnI+Cis8ZGl2IGlkPSJjcHUiPkNQVSAxeCBHYXVzc2lhbiBibHVy
PC9kaXY+Cis8ZGl2IGlkPSJjcHVzdGF0Ij48L2Rpdj4KKzxjYW52YXMgaWQ9IjJkIiB3aWR0aD0i
MjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Cis8ZGl2IGlkPSJncHUiPkdQVSAxMDAweCBHYXVz
c2lhbiBibHVyPC9kaXY+Cis8ZGl2IGlkPSJncHVzdGF0Ij48L2Rpdj4KKzxjYW52YXMgaWQ9Imds
IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+PGJyPgorPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvcGVyZm9ybWFuY2UvYmFuZHdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3BlcmZv
cm1hbmNlL2JhbmR3aWR0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyYzUyNGQ2N2IwNjllYTEwMjQ5YTM1
YTk2ZjdjMjU4ZmU1M2I0NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3BlcmZvcm1hbmNlL2Jh
bmR3aWR0aC5odG1sCkBAIC0wLDAgKzEsMjM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisq
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
KyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisq
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgorKi8KKworLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3Jp
cHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
YXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuYXV0b3J1biA9IGZhbHNlOworVGVz
dHMubWVzc2FnZSA9ICJUaGlzIG1pZ2h0IHRha2UgYSBzZWNvbmQgb3IgdHdvLiBUYWtlIHRoZSB1
cGxvYWQgbnVtYmVycyB3aXRoIGEgZG9zZSBvZiBzYWx0LCBhcyB0aGVyZSdzIG5vIGRyYXdpbmcg
Y29kZSB1c2luZyB0aGUgZGF0YS4iOworCitUZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7
CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGds
ID0gZ2V0R0xDb250ZXh0KGNhbnZhcyk7CisgIHJldHVybiBbZ2xdOworfQorCitUZXN0cy50ZXN0
VGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1
cmUoKTsKKyAgICB2YXIgdGV4QXJyID0gbmV3IEFycmF5KDI1NioyNTYqNCk7CisgICAgdmFyIGJ1
ZkRhdGEgPSBuZXcgQXJyYXkoMjU2KjI1Nio0KTsKKyAgICBmb3IgKHZhciBpPTA7IGk8dGV4QXJy
Lmxlbmd0aDsgaSsrKSB0ZXhBcnJbaV0gPSAwOworICAgIGZvciAodmFyIGk9MDsgaTxidWZEYXRh
Lmxlbmd0aDsgaSsrKSBidWZEYXRhW2ldID0gMC41OworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleCk7CisgICAgdGltZSgidGV4SW1hZ2UyRCIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICBmb3IgKHZhciBpPTA7IGk8MTAwOyBpKyspCisgICAgICAgICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCB0ZXhBcnIpOworICAgIH0pOworICAgIHRpbWUoInRleEltYWdlMkQiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEwMDsgaSsrKQorICAgICAgICAgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgdGV4QXJyKTsKKyAgICB9KTsKKyAgICB0aW1lKCJ0ZXhT
dWJJbWFnZTJEIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGZvciAodmFyIGk9MDsgaTwxMDA7IGkr
KykKKyAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwg
MjU2LCAyNTYsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHRleEFycik7CisgICAgfSk7Cisg
ICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dvJyk7CisgICAgdGltZSgi
dGV4SW1hZ2UyREhUTUwiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEw
MDsgaSsrKQorICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5S
R0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOworICAgIH0pOworICAgIHRpbWUo
InRleFN1YkltYWdlMkRIVE1MIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGZvciAodmFyIGk9MDsg
aTwxMDA7IGkrKykKKyAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKKyAgICB9KTsKKyAgICB2
YXIgYnVmcyA9IFtnbC5jcmVhdGVCdWZmZXIoKSwgZ2wuY3JlYXRlQnVmZmVyKCldOworICAgIHZh
ciBidWYgPSBidWZzWzBdLCBidWYyID0gYnVmc1sxXTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgYnVmKTsKKyAgICB2YXIgYnVmQXJyID0gbmV3IEZsb2F0MzJBcnJheShidWZE
YXRhKTsKKyAgICB0aW1lKCJidWZmZXJEYXRhTm9DaGFuZ2UiLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgZm9yICh2YXIgaT0wOyBpPDEwMDsgaSsrKQorICAgICAgICAgICAgZ2wuYnVmZmVyRGF0YShn
bC5BUlJBWV9CVUZGRVIsIGJ1ZkFyciwgZ2wuU1RBVElDX0RSQVcpOworICAgIH0pOworICAgIHRp
bWUoImJ1ZmZlclN1YkRhdGFOb0NoYW5nZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZh
ciBpPTA7IGk8MTAwOyBpKyspCisgICAgICAgICAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgMCwgYnVmQXJyKTsKKyAgICB9KTsKKyAgICB0aW1lKCJidWZmZXJEYXRhIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIHZhciBidWZBcnIgPSBuZXcgRmxvYXQzMkFycmF5KGJ1ZkRhdGEp
OworICAgICAgICBmb3IgKHZhciBpPTA7IGk8MjU7IGkrKykKKyAgICAgICAgICAgIGdsLmJ1ZmZl
ckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBidWZBcnIsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICB9KTsK
KyAgICB0aW1lKCJidWZmZXJTdWJEYXRhIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBidWZB
cnIgPSBuZXcgRmxvYXQzMkFycmF5KGJ1ZkRhdGEpOworICAgICAgICBmb3IgKHZhciBpPTA7IGk8
MjU7IGkrKykKKyAgICAgICAgICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAw
LCBidWZBcnIpOworICAgIH0pOworICAgIHZhciBzaCA9IG5ldyBTaGFkZXIoZ2wsICd2ZXJ0LXYn
LCAnZnJhZy12Jyk7CisgICAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKKyAgICBzaC51c2Uo
KTsKKyAgICB2YXIgdiA9IHNoLmF0dHJpYignVmVydGV4Jyk7CisgICAgZm9yICh2YXIgaT0wOyBp
PDE2OyBpKyspCisgICAgICAgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpKTsKKyAgICBn
bC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh2KTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KHYsIDQsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAgdGltZSgidmVydGljZURyYXciLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEwMDsgaSsrKQorICAgICAgICAg
ICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDI1NioyNTYpOworICAgICAgICBnbC5y
ZWFkUGl4ZWxzKDAsMCwxLDEsZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSk7CisgICAgfSk7Cisg
ICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZjIpOworICAgIGdsLmJ1ZmZlckRh
dGEoZ2wuQVJSQVlfQlVGRkVSLCBidWZBcnIsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICB0aW1lKCJ2
ZXJ0aWNlRHJhd0MiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEwMDsg
aSsrKSB7CisgICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgKGkgJSAy
ID09IDApID8gYnVmIDogYnVmMik7CisgICAgICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFO
R0xFUywgMCwgMjU2KjI1Nik7CisgICAgICAgIH0KKyAgICAgICAgZ2wucmVhZFBpeGVscygwLDAs
MSwxLGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUpOworICAgIH0pOworICAgIC8vIERyYXdpbmcg
YXJyYXlzIHdpdGggdmVydGV4QXR0cmliUG9pbnRlciBzZWVtcyB0byBoYXZlIGJlZW4gcmVtb3Zl
ZCBmcm9tIFdlYkdMLgorLyogICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwp
OworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodiwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAwLCBi
dWZBcnIpOworICAgIHRpbWUoInZlcnRpY2VEcmF3VkEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
Zm9yICh2YXIgaT0wOyBpPDEwMDsgaSsrKQorICAgICAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5U
UklBTkdMRVMsIDAsIDI1NioyNTYpOworICAgICAgICBnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSk7CisgICAgfSk7CisgICAgdGltZSgidmVydGljZURyYXdW
QUMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEwMDsgaSsrKSB7Cisg
ICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHYsIDQsIGdsLkZMT0FULCBmYWxzZSwg
MCwgYnVmQXJyKTsKKyAgICAgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAy
NTYqMjU2KTsKKyAgICAgICAgfQorICAgICAgICBnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSk7CisgICAgfSk7Ki8KKyAgICBzaC5kZXN0cm95KCk7CisgICAg
c2ggPSBuZXcgRmlsdGVyKGdsLCAndmVydC10JywgJ2ZyYWctdCcpOworICAgIHNoLmFwcGx5KCk7
CisgICAgdGltZSgidGV4dHVyZURyYXciLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIg
aT0wOyBpPDEwMDA7IGkrKykKKyAgICAgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVT
LCAwLCA2KTsKKyAgICAgICAgZ2wucmVhZFBpeGVscygwLDAsMSwxLGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUpOworICAgIH0pOworICAgIHNoLmRlc3Ryb3koKTsKKyAgICB0aW1lKCJyZWFkUGl4
ZWxzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGZvciAodmFyIGk9MDsgaTwxMDA7IGkrKykKKyAg
ICAgICAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMjU2LCAyNTYsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUpOworICAgIH0pOworICAgIHRpbWUoImdldEltYWdlRGF0YSIsIGZ1bmN0aW9uKCkg
eworICAgICAgICBmb3IgKHZhciBpPTA7IGk8MTAwOyBpKyspCisgICAgICAgICAgICBnbC5nZXRJ
bWFnZURhdGEoMCwgMCwgMjU2LCAyNTYpOworICAgIH0pOworICAgIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfMkQsIG51bGwpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBu
dWxsKTsKKyAgICBidWZzLmZvckVhY2goZnVuY3Rpb24oYnVmKXsgZ2wuZGVsZXRlQnVmZmVyKGJ1
ZikgfSk7CisgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOworfQorCisKK1Rlc3RzLmVuZFVuaXQg
PSBmdW5jdGlvbihnbCkgeworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZlcnQtdiIgdHlw
ZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorCisgIGF0dHJpYnV0ZSB2ZWM0IFZlcnRleDsKKyAgdm9p
ZCBtYWluKCkKKyAgeworICAgIGdsX1Bvc2l0aW9uID0gVmVydGV4OworICB9Cis8L3NjcmlwdD4K
KzxzY3JpcHQgaWQ9ImZyYWctdiIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisKKyAgcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgdm9pZCBtYWluKCkKKyAgeworICAgIGdsX0ZyYWdD
b2xvciA9IHZlYzQoMS4wLCAwLjAsIDAuMCwgMS4wKTsKKyAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0
IGlkPSJ2ZXJ0LXQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKworCisgIGF0dHJpYnV0ZSB2
ZWMzIFZlcnRleDsKKyAgYXR0cmlidXRlIHZlYzIgVGV4OworICB2YXJ5aW5nIHZlYzIgdGV4Q29v
cmQwOworICB2b2lkIG1haW4oKQorICB7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwg
MS4wKTsKKyAgICB0ZXhDb29yZDAgPSBUZXg7CisgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0i
ZnJhZy10IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKworICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworICB1bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOworCisgIHZhcnlpbmcgdmVj
MiB0ZXhDb29yZDA7CisgIHZvaWQgbWFpbigpCisgIHsKKyAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0
dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwKTsKKyAgfQorPC9zY3JpcHQ+CisKKzxzdHlsZT5jYW52
YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9CitpbWd7IGRpc3BsYXk6bm9uZTsgfTwvc3R5bGU+Cis8
L2hlYWQ+PGJvZHk+Cis8aDM+MTAweCAyNTZ4MjU2eDQgdGV4dHVyZSB1cGxvYWQgd2l0aCB0ZXhJ
bWFnZTJEICgyNi4yTUIgdG90YWwpPC9oMz4KKzxwIGlkPSJ0ZXhJbWFnZTJEIj48L3A+Cis8aDM+
MTAweCAyNTZ4MjU2eDQgdGV4dHVyZSB1cGxvYWQgd2l0aCB0ZXhTdWJJbWFnZTJEICgyNi4yTUIg
dG90YWwpPC9oMz4KKzxwIGlkPSJ0ZXhTdWJJbWFnZTJEIj48L3A+Cis8aDM+MTAweCAyNTZ4MjU2
eDQgdGV4dHVyZSB1cGxvYWQgd2l0aCB0ZXhJbWFnZTJESFRNTCAoMjYuMk1CIHRvdGFsKTwvaDM+
Cis8cCBpZD0idGV4SW1hZ2UyREhUTUwiPjwvcD4KKzxoMz4xMDB4IDI1NngyNTZ4NCB0ZXh0dXJl
IHVwbG9hZCB3aXRoIHRleFN1YkltYWdlMkRIVE1MICgyNi4yTUIgdG90YWwpPC9oMz4KKzxwIGlk
PSJ0ZXhTdWJJbWFnZTJESFRNTCI+PC9wPgorPGgzPjEwMHggMjU2eDI1Nng0IHJlYWRQaXhlbHMg
KDI2LjJNQiB0b3RhbCk8L2gzPgorPHAgaWQ9InJlYWRQaXhlbHMiPjwvcD4KKzxoMz4xMDB4IDI1
NngyNTZ4NCBnZXRJbWFnZURhdGEgKDI2LjJNQiB0b3RhbCk8L2gzPgorPHAgaWQ9ImdldEltYWdl
RGF0YSI+PC9wPgorPGgzPjI1eCAyNTZ4MjU2eDQgZmxvYXQgYnVmZmVyRGF0YSAoNi42TUIgdG90
YWwpPC9oMz4KKzxwIGlkPSJidWZmZXJEYXRhIj48L3A+Cis8aDM+MjV4IDI1NngyNTZ4NCBmbG9h
dCBidWZmZXJTdWJEYXRhICg2LjZNQiB0b3RhbCk8L2gzPgorPHAgaWQ9ImJ1ZmZlclN1YkRhdGEi
PjwvcD4KKzxoMz4xMDB4IDI1NngyNTZ4NCBmbG9hdCBidWZmZXJEYXRhLCByZXVzZSBGbG9hdDMy
QXJyYXkgKDI2LjJNQiB0b3RhbCk8L2gzPgorPHAgaWQ9ImJ1ZmZlckRhdGFOb0NoYW5nZSI+PC9w
PgorPGgzPjEwMHggMjU2eDI1Nng0IGZsb2F0IGJ1ZmZlclN1YkRhdGEsIHJldXNlIEZsb2F0MzJB
cnJheSAoMjYuMk1CIHRvdGFsKTwvaDM+Cis8cCBpZD0iYnVmZmVyU3ViRGF0YU5vQ2hhbmdlIj48
L3A+Cis8aDM+MTAweCAyNTZ4MjU2IHZlcnQgVkJPIGRyYXc8L2gzPgorPHAgaWQ9InZlcnRpY2VE
cmF3Ij48L3A+Cis8aDM+MTAweCAyNTZ4MjU2IHZlcnQgVkJPIGRyYXcsIGNoYW5nZSBWQk8gYWZ0
ZXIgZWFjaCBkcmF3PC9oMz4KKzxwIGlkPSJ2ZXJ0aWNlRHJhd0MiPjwvcD4KKzwhLS08aDM+MTAw
eCAyNTZ4MjU2IHZlcnQgdmVydGV4IGFycmF5IGRyYXc8L2gzPgorPHAgaWQ9InZlcnRpY2VEcmF3
VkEiPjwvcD4KKzxoMz4xMDB4IDI1NngyNTYgdmVydCB2ZXJ0ZXggYXJyYXkgZHJhdywgY2hhbmdl
IGFycmF5IGFmdGVyIGVhY2ggZHJhdzwvaDM+Cis8cCBpZD0idmVydGljZURyYXdWQUMiPjwvcD4t
LT4KKzxoMz4xMDAweCAyNTZ4MjU2IHRleHR1cmUgZHJhdzwvaDM+Cis8cCBpZD0idGV4dHVyZURy
YXciPjwvcD4KKzxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52
YXM+Cis8aW1nIGlkPSJsb2dvIiBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dn
b0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNBWUFBQUJjY3FobUFBQWdBRWxFUVZSNG5PMTliV2lVWjli
LytCSmZzUDhvSmZYbHlVTUROa1NTZm52R2hnaDJRYWs2SVBSWko5UVB0VElsWU1RMlJRdldIYWdT
eGNnaUNZVHR1bHNDQ2luYjFtV2ZyaXkyMHBTbkxrTDFRMkZxdjVSa3RUaGhheHNlV0ZHWEZRYlpk
Yy8vdzh5NTVsem5QdGZMZmM5OUo2T1pDdzczUFRPWlNZejUvYzd2dkZ6blNrRmpOVlpqemR1Vm11
c2ZvTEVhcTdIbWJqVUlvTEVhYXg2dkJnRTBWbVBONDlVZ2dNWnFySG04R2dUUVdJMDFqMWVEQUJx
cnNlYnhhaEJBWXpYV1BGNE5BbWlzeHBySHEwRUFqZFZZODNnMUNLQ3hHbXNlcndZQlBLYXJXSnlH
czJjL2hUZmYvQmplZlBOaldML3RWN0E3ZXdSV3RRd29TNlg2MWRWazlPdFh0UXpBMHgxSDFXZjlm
UC83OE9hYkg4UFpzNS9DNU9Ra2xFcWx1ZjVuTjFiTXEwRUFkYnhtWm1aZzRvdHZGY0Fwc09mS0tF
bTgrZWJITVBIRnQzRHYzcjI1L2xVMVZzVFZJSUE2V2ZmdTNWTmdmN3JqcUIvUTF4NkUxTnFEOEhU
SFVWamNjeG9XOTV5R1JiMi9oYWFCUDhEU1gzd0t5MC84R1phTlhvTmxvOWZnLzMzMEYvaC9ILzBG
L25QaS8rQS9KLzVQUGIvOHhKOWgrWWsvdzdNSFBvVFU2eC9Cb3Q3ZnFzL0N6MCt0UGVoRkRBMVNl
UHhXZ3dEbVlKVktKYmgzN3g2OGYrWi80T2Y3MzNlRHZRTHkxSTRSQlc0RUx3S1pBcDNmSS9pcC9l
ZkUvNG5QMC9md3oxdCs0cy9RTlBBSFNHVitBMnZTdjRSVTU5dk8wT0xuKzkrSHMyYy9iUkJDbmE0
R0FjemlLaFFLOE9hYkg1ZkJZL1Bxblc4clQ0NGVtcG9KL0NiZ285ZW5aZ00rdlY5KzRzOGFDWERE
bnluMStrZXd1T2QwbWFnTWhMQW0vVXQ0Lzh6L3dNUVgzemJ5Q1hXeUdnU1E0Q3FWU2pEeHhiZDJM
Ny8yWUZsdXYvNFJMUDNGcDVvdFAvRm5kZlVsQVJ2b1RTVEFWWUpKQWRpTS8zeExmL0VwcERLL01Z
WVFxMW9HNE0wM1A0Ykp5Y201L20rYTE2dEJBQW1zeWNsSkZjdTdQRHhLZXJ6NmdOOUVBRDZndDZr
QUUvQlJDVWlnNTFmSjhOK244Z3JzZC9KMHgxRjQ4ODJQb1ZBb3pQVi8zYnhiRFFLSWFXRk1MOHI3
dFFjaDlkS2dCbnB1M1B2YlNFQUNId0kxS2dGSTh0OG5ETENCbi80YnVDbDF3SDVYYTlLL2hMTm5Q
MjJFQ0xPMEdnUlE0ekpLL0hXdktVK2ZldjBqU0wzK1VUbUJWcmx5OEljbEFRVGV6d2IvRkFuOHRC
cGdJNEdmRGY3Skt3ZGc4LzRtRXNCL2YyckhTSUFNR2lIQzdLd0dBVVJjRTE5OEMrdTMvU3JvN1R2
Zmh0U09rU3J3KzhlY0JPQWlBWmNLaUNML2ZaS0J0aHlBai93M2daLytPK252QUV1UVVubXhrVGhN
WmpVSUlNUkNtUitJN1p0Zmh0UUxlVmpVKzlzeThDdWdqMElDVVZSQVZPOVBDZUMvMy90ZnErZkg1
K0tRLzVRRXBOOUQ2dldQUkZYUUNBL2lYdzBDOEZqMzd0MkRzMmMvMVlIZi9ISlo1aFBnYzZQQTEr
NURxZ0FYQVVRRmYxd0tJS3o4dDRGZkl3RWtVZFp2OEhUSFVUaDc5dE81L3JONElsYURBQ3lyVkNv
WmdiKzQ1N1NTK2h6MDZwNnFnSXBoeDEyWVpLQ05CR29CdjVRSWRDbUJwQlVBVlVtVU5CdEVrTXhx
RUlCaFRYenhyZXp4WHhvc3kxT004d1VTNEdSZ1VnQlJFb0lVZkxWSWY1K0tRTnl4djY4Q1NQV1Bh
U3JBUlFScjByK0VpUysrbmVzL21jZHlOUWlBclVLaG9DZjNpTlJINEh1Qm4zaC9pUVM0RW5qMndJ
Y2FPUEF4QmYrekJ6NVVJSTNEKzl1SWdIdisvMzd2ZnhPWC95YnZuK29mMDhoVS9ZNFpFYXpmOXF0
RzFTRGthaEJBWlJXTDAvRG1teC9yNWJ4S2NvOTZmVzQySXVCL3RGUUIyTUlBbXdMZy9meEptYXYw
RjlYNys4VCtvdmVuaVZVYVpnbkp3amZmL0xpUktQUmNEUUlBZ1BmUC9FOFErSjF2UStxbFFSWHJT
eVN3cVBlM3FzRW5UQmlBM3Q5WENWQkFJVGlUQkQ4bEFhNEVzQkxnSW9HZkRmNEovdnU5LzRXaFkz
a1lHam9OaHc4ZmhzT0hENWNmSDh1cisrRytMWEQ0OEdINCtmNzNZWGYyQ0R4NzRFUFlzT2ZYQWU4
dmdWLzdQYitRMTRoZ1ZjdEFJei9nc2VZMUFSUUtCYjF6ci9ubDhoOVJ4ZXN2N2pudEpJSEk0WUNq
SkdpcUJpd2J2UVpMZi9GcHpkbi9LRXFBNXlCc0N1RFpBeC9Dd0J2dndOQ3hQSHgrYmovY09kVU5j
SFVud05XZFVQcnFSUFVLUStwNXVMb1RZQ3dOTUphRzB2RXV1SnpmQ3BmelcySG9XQjV5dVJ6OGZQ
LzdWckp0aEFYaDE3d2tnSHYzN2dYbFBzYjVMK1RMZ0VmcFh6RkZBaEZDQVZNdWdIci9adzk4cUlH
ZjV3Q29Fa0NBaGQzOEU5V1duL2l6NXZsTjNwOVhLemlCUFh2Z1EvajUvdmRoNkZnZWZuOThNNVNP
ZDhHajRZMEFWM2ZDd3pPOUFOQVBBRU9hSVZrZ09aU09kOEdkVTkxd09iOFZCdDU0QjNLNVhGa3hW
SlNZSW1wQ0JOaFYyRmpCTmU4SVlISnlVay95clhzTlVodjJLdkFyNENNUkVDVlFpd29RRzRRc1Nv
QW56QkQwVWptUXFvRWt5QUJWZ0N2NUZ6YnhsK29mZzUvdmZ4OE9IejRNbC9OYm9YUzhTeU1GdUxv
VE9DR1VyYjlLRElRVWh2dTJWQWxoeDBqNS81SnRSMjZvQVgzVkRRRjgvMGtlSHYzdFdxTGY0K3pa
VDhWK2ZRMzhTWk9BcFJxQWoyMUtnS29COU14Smh3RlU5bk1sd0FrZ2ROMmZsUHllUGZBaDVISTVw
UTRlbk95RzB2R3VjbGdna2tFL3ViNm9FY0t0d1hZWTd0c0NBMis4VXlaNDFqdlFTQktXVjEwUVFP
bXJFM0Qzd0dyNC9wTjhJcDlmTEU3RHovZS9yNE1mdmI1QUFDb0VJQVFRSUlFNGNnRkNLT0JURnFS
cUlLbHlvTFFWT0dyMjMxbjNGeEorcWY0eHlPVnltakpBTXFpR0M5eGVyTnJWblFBVGJVcFJYTTV2
aFpGTWx3cjdmcjcvZlppWm1Vbms3KzF4V25OUEFJVXhtSDVyRGN5OHV4SStQN2MvOW84UE5QU2cx
MGN6a0FBbGdqaEpBQW5nMlFNZmFxRkEyQTVCQkZzU3lVQ2EvVWZRdXp4L0ZQQXI1ZU1vOVczWTgy
c1k3dHVpRVlFV0tzQ0xFQ0FBU0ZXdjM2d0dtR2lEQnllNzRkSHdScGdhNklEaHZpMnc4Zm5lZVQv
dGVFNEo0TkhmcnNIOVErdGg1dDJWY0d1d0hhWUdPbUw3N0ZLcEJPK2YrUjlaOG5Qd204SUFsaEQw
Q1FPY3ZRRzBrWVgxQlppVUFGY0JzNkVBdVBSUGF0TVBWd0JTcVUvOXZsOGFoSkZNVjRBSVZKand6
V3BBQXZqMzM1dklOVlcxYjFiRG93L0s0Y1dEazkwd05kQUJuNS9iUDI5bkZzNFpBZHk3ZHc5dURi
YkR6THNyTlJLNGQrOGVsRXFsbWxoNVptWkdsL3pZelVmQkx5a0FpUWdRK0o0a1FNR2Z5dnpHR1Fw
b05XK0hFcEE2QkpQTUFkQ3V3TENKUDIvcFQ3Mi9VT05YMlgxU2tVbW4wM0MrdjFWVUJJK0dOeElp
U0FVSTROOS9ieXJiRHlzMFZmQm9lS1BLUTgwblJUQm5CUEQ5SjNrTi9QY1ByWWZwdDliQVA0c1hO
QklJKzU5UkxFNEhXM2tyWTdpTUZpSVhFT2dOaUxFc2FHc09zcEZBRXBuL0pPTitYdm1RdkgrcWYw
d0V2N0xGblVZMThHaDRZMWtWVExTQjV2MHBBVlJJQUlrQVNRQ0pBUDhHbi9RMUp3VHd6K0lGQlh4
S0FqUHZyb1RyNDN2aDNyMTd5c0lRUWFGUUNPN1QzN0MzREc2VEF2RElCUmdyQWo1VkFZTUs0Q1Rn
a3hPZ3dLZjNTZlFDME5KZklodCtwTDUvU2ZvVCtZLy9ENm1YQmlHMVlTK3NiTnNHcjZUWFdra0FG
WUVHZkFRL0lZRi8vN0FDSG4zUXBSRkI2YXNUa1IzUjQ3Sm1uUUJLcFJMY09kV3RlWDVLQk5OdnJZ
R1ptUm1ZbVprSkVJRnRUWHp4cmNyd0xsdTB1UXg0QkQwRlB4SkNTQktRd29BNEVvSVNFZkM5QWp3
UFFQc0NrdTRLeEVSZzNOS2ZKLzhDM3AvOC9oVDROK3dOWERrSklQQUQ5eDkwVllsQUFEOThzMXBk
a1FnZW5PeUdoMmQ2NGRIZnJqMnhpbUJXQ2FCVUtzSHQ3eTRFd0krNUFIenVweXZ2UWJFNDdVMENX
cklQNDMwTy9yVUg3ZUIzSkFOdENVRmJPQkFxRktqY053MzhBWDQyK0tlQVNVMUN6eDc0TURId20w
aUE3MC9nUFFyZW5sL2E2c3MzK25EcFQwbWdZaTB0endSeUFoSVJQQnJlQ0k4KzZOS0FieUlCR2hZ
OE9ObXQxTUNUUmdTelJnRDR5N3R6cWx2MC9Kd1Fpc1ZwUlFKSUJGeUthWm4rNXBkMXo3LzJZTFhM
RDhHUHVZQW9LZ0RscDFRV3JLRXFzR0hQcitGbmczK0MwZEZSdUhUcEV0eis3Z0w4czFnMStNZnY0
TktsUzFvZUFFR0dRSnlOVm1EZWdSaEwxcDlZQVB5MkhJQkFBcFFBVE9EbitRRWorSW5Sc09EaG1W
NXZSZnE0ckZrbEFPcjlUU1NBOTk5L2t0ZElnUC9pc1o5ZkJEOGFCejhDMzBVRUVmSUIxcVJnSlEr
QTEvODY4REdNam83Q1QxZmUwNERPZ1gvN3V3dndzOEUvUWFwL0xOQWhpRUNqWmNDNEI0UkkzcDgz
STRYeC9xTDhweUVBTFpHUzNaYWFFbmdocndFL2s4bkE1ZnhXdUg5b2ZRRDRxaXB3ZGFmSzlnZGVx
d0JkQWo4cUFaNGtmUFMzYXpBek0vTkU1QVptaFFDNDl6ZDVmZjY0Y08wS1RFNU9haVNBdjNRRS83
SkZtMlh3Y3hYQVF3SlhPQ0NRZ0xaSktHU2I4SVk5djRieDhYSGw0VG5ndVkyUGo4T3pCejRNYkIz
bWVRRUtWQW5BY1hqK1dPTithZGlIWWFzdkpZSGQyU09ReldaaHVHOExEUGR0Q1hRSW1nd2xQTFlT
OHowRWo0WTNsa0Z1QWo4aEFSaExLeEs1L2QyRkowSU56Qm9CRkl2VEN1QVMyS1hIMzMrU2gwS2hB
Sk9Ua3lvVVVEWCs1cGNobFVxYndXOEtCWHlTZ283ZUFGZENrS3FCTjkvOEdDNWR1bVFFT3Z6amR3
Q0ZNYzBPSHo2c0FjSTBQNEEzQVVtZ2R4RUJmVjBpRWF3RThBYWtxT0NuLzVaVS94aHMyUE5yR0hq
akhmajk4YzF3T2I4VnBnWTYxQjRBYlBDaGdLYXYyYkwvcG51NHVyUDhPNi9zSjNoNHBsZHRRWFlT
d0VTYklvRkh3eHNCQ21PUFBRa2tUZ0RvL2IvL0pHL00vSnV1dC9ldGdzSzFLMUFvRkZRNEVBcjhs
QVNRQUtnQ3NQVUgyTUlBUTZzd0pZR2Y3MzgvNE8wUjdQOHNYZ2lBdnZUVkNTaDlkUUp5dVp5WUpK
U1VBSmZxUHNEM2VaNS9KaEtCYTdPUFMvcHJ4blpHTHVyOUxlek9Ib0doWTNtNE5kZ2U3UEpUOHdQ
MG5ZQ2NJSHp6QUJvUjRMV3lmOEFFL2tjZmRHa2tnTWxCWHJKK25OYXNFUUROOU52aWYvNlloZ0ps
MlovV3dZOVpmNXI5ZDVHQUJINlhFdkJVQVFoOEt2RWxzRlBRbDc0NkFRL1A5TUx1N0JFeFdjaVZB
RXAvQ2FpK1pNREJ6VXVKMG1kaVBrRHkvbEtPd2hielN4dWo2TDk1ZC9hSXZmK2ZlSEU2VklRcUJD
Y0pqS1dyN3llZlYvcnFoR29RNG9Za3dQc0Zpc1ZwS3duVUt6a2tTZ0NsVWduZ1h6K1VKYnpGMjl0
ZXUzdGdOVndmMzFzR0IvWDh6Uy83Z1IrOXZrUUNQZzFDbnAyQ0cvYjhHaTVkdWhTUTlCTFlLZWp4
bXN2bEF2a0RVOG5RQi93U0dkaEFUVW5BOVo1SWNYOEk4SFBiblQwU1VBVlkyMWRUaFJpQTRlcE9Z
d1ZBQSs5eCtUUEs5LzFWVlRCQndQOUJwYStBNUFSS1g1MHdWcXNBeXZ0ZXNLZWdubGJpQkhEdjNq
MjRQcjVYQlAydHdYYVJCSGhPNFA2aDlkQ1gyVlFHZmlwZEJiOUVBR0dWQUswS1JBZ0ZGdmVjaHFH
aDA2RUJUMjI0YjR0ZTVqSVJRS1Vhd0FlRFJpRUJtdUduTGI4OCs4OEpBaFdBQy95VUJKYis0dE5J
NE5lYWdYYU13TzdzRVRVclFONFZHQndlVXZycWhBWlVFeGtvTmNDVmhVQUNtaEV5K2VuS2U4YSts
VUtoQUhkT2RWZTJNdGZQU293QUVQejM3dDJEcVlFT2J3VWdFY0gwVzJ2ZzlyNVYwSmZacElQZlJn
Uyt1WUFhdWdRWDk1eUdhMzg4YWdXNkJIaHFVd01kY3E5N3BhTEFRY0ZCR3BZRStIdDV2NzlKNmtk
Tit0SFBYRFo2VFQzdjQvbTFkbUJTQ2x5LzdWZUI4QUNsZnhsZ0JpSmdxb0RmUHpqWkRmcFlNanB3
cEVvRWxBQzBwT0JZR242NjhwNVl0Z1lBT04vZnFrS0dlbG1KRTBDeE9PMk04MDBkZ1FqK3V3ZFd3
L1JiYTJCcTcxTFkrSHl2SGdMNGdqOU1Qc0NqUzNEOXRsL0I5NS9ramFESE5sSnF1QVVWN2Y2aDlk
WFB4T1lXaXhMZzNqK0tFcUFIZi9ENWZoZ0NtQkordE01dnEvblR1Qi8zS3FUR0NocTUwSnEvdFFS
bzZRZlkrSHl2bUNkUTJYNXhuRmc1WHlDRkFyUnZRQU0rSHpveWxsYmdSNk9mZGZ1N0N3RVNLSlZL
TU55M1JYM3RQNHNYa29KZXFKVTRBZngwNVQydjBoKy9UcisxUm5sK3ZFNE5kQ2dTc0NvQUV4bVk4
Z0cwS3VDaEF0WnYrNVhWdTFQd0k5aXBsN3AvYUQzY1A3UWVzdGxzdGFtRmRoc2FWQUQxcGhMNGZj
aUE3KzdqOS9UclRGN2ZkNWNmZmg0RmYycXNvQXdWZ1c4SUVHZ0llcWs4L0JPYmdSREk5UGN0RWtF
bHZuOTRwamRBQkNvY3VMb1Q5RWxEN0VxcUVKd0VIcDdwRlVsZ2ZIeGNJNDk2bUVHUUNBRWcrR2Rt
WnVEemMvdmg3b0hWemhBQUFVOE53VCsxZHluYzNyY0tidXhhQVRkMnJZRHovYTF1RWhCc2QvWUli
SHkrVncyaC9QemNmdTE2K1BCaDJKMDlVazQ0R2tnQXdXOENQdmZ3ZU9XbXBMK3d3UVgveU5IeklT
QmM0T2RFd0dXK2FXTVBIekNLN3dzaiszbk1Ud0V2Z2Q5R0JDTHdhWk1WYWN0VzVMbGhML1JsTnNH
ZFU4RXFRRlYyeTJxQTV3aDBKY0FuRFJIN1puVTVzZmRCa0VRZW51blYrbGZ1M2JzSGs1T1Q1YUUz
MzZ5dW05MkdpUk1Bai8rNWwrZmdsMEEvL2RZYUJYNjBtenVhWVdYYk5pTUo3TTRlZ2NPSEQ4UG41
L2JEVDFmZWc5SlhKK0NuSys5cGlUcDhUSi9IcjhQcnRUOGVoZEhSVVJoNDR4M1luVDBDbC9OYkl3
R2VHNDZ5VnFCbllRQTIzaUFRVE43ZlJRcTIvZnkyTWQrVUJIeGpmcFBYcDQ5TkpNQ0p3RW9Dd3Ra
Z3BlTFd2UWJEZlZ2a0ppQmE5dVB4UFpQeHVoSXdFQUM4V0M0WFZ0N0w4d0VQei9ScSsxbG1abWJL
WVFEWmJHU3JITXpHU3B3QXB0OWFFNUQ3SnVDajNkaTFBcVlHT2dLZ1J5dHNYd2czZHpURDlaNWxz
TEp0R3l4YnRCazJQbDh1cFgxK2JyK0t6VkdtMDFpZEFweVRnVVFTOUhVS2VoZllxZFFYdlQ4T3dP
VDk3WlhIQ0VyOE9ocTcrNFFCdHIzOHJuUDk2UGZCZklBSi9FaFVIUEFjOUM3d1UxdjZpMC85d00v
eko1WGY0Y3EyYmJDeWJSdmNHbXhYNFFBbEJHT01UOVNBUmdRYzlOcTRzZktWcXdBa2dKK3V2S2Ux
c3c4ZHk1ZDNKUDY5U2FrQTNGY3dGMFFRT3dGUThCZUwwNkxYNTdFOWVuaThUdTFkS2dLZVhxLzNM
SVByUGN0Z2FxRERLTW0vL3lRUDMzK1NEeVRva0JCTXhNQkpBc0V2Z2RvR2RNbnVIbGhkOXY1SUFO
VHdqN3VTUEtQbjhVa0FNNWtMNEdIQ0FLNEVzQVhaUmtaYzlvY0J2ekpwVXhVZnhrSTNhSkVOUXRS
R01wYlNYMkNpTUVueUVUQS9PTmxkOXZSODJLaTZsbzFYQmREb25wWkxseTZWVDBtQ2xGSUJ4ZUsw
T0FSbk5sYWlCSEQ3dXdzSzREWnZUK043Q2ZnVTlQZ2M5b3p6cEp2TmtBem9QYy9nUTJGTUpJZ3dJ
TGVaNXYwcnR2UVhuMEtxZjB6cnVhZmdseVIxVkFMd0lRZmI1N3ErZDFTdnp4V0FOZjZuOHArV1oy
a29WVkVDcVExN0laMU9LelVnWi94cG5GKzVuOURuQmNKWVdubDhQbVpNczRrMlVRbGdTL3ZrNUNT
YzcyOVZRMGtlRFpkSGtQRWhPRThFQVh4K2JuOW9iNC94ZldIN1FyaXhhNFVDUGZYNFZIN3pPQnl0
Vm1LZ0JPRWIxL3RZTHBjVHdZOXluNS9CaDZBSVN3SXV6eDZGQUh6Qlh3c0JMQnU5SnN0L0FuNmxB
cmdDWUZ1RkZRbXNldzFXdG0xVE93Z0Rzd0ZNY1g0bFdhZmkrdys2d0FwK1JnSlVEZURHdGtLaFVN
MERWRlFEcW9Dd1U3RGlXTEVUQVA3d3hlSTBmSDV1ZjJodlQrTjdDdnliTzVxOUFPWWlockRrOFBC
TWJ5U2czejJ3V3J5bndPZG1BNytQOTdXcEFCK0NxSVVBWXBIOUR1OGZrUDg4RjRDSlFCTVJOTDhN
ZlpsTllqTlFPVUVveFBra3lhZm1CeGlBanhPSU1TZkFrNE0vWFhrUEpyNzRGb2FPNWRYbi9QdUhG
VllWa0RRSnhFb0ExUHRqeHJNV2I4KzlmaTNHRTNlKzVCREYrMHZndjN0Z05Wek9iOVc4dmd2OHBq
cDZXQ0x3VlFoaENjQUUrcWpnVDQwVnlsVUZtL1NYRkFBbEFBUS9rZ0VMQjFhMmJZTjBPZzEzVHNr
RFFxcXhmalhPNTVuK3dGa0REUHhvVW4vQXBVdVg0TktsUzNCcnNGMjlGMVVBNWdtS3hlbFpVd0dK
RVVDeE9BM24rMXZoN29IVmNITkhzOUhiVTlCejhFdGVuNElyVGpNUmd3L1FwYXYwM083c0VTWDFN
ZDZuc1Q3My9GSGxmNVR3d0pYWWN3RS9EdkNueGdybGlvSkwrcHNVZ0lNRU1CUklOYjhNNlhSYUN3
bGtFdERCclRMOWxWQkFBajJmUE15VGd0OS9rb2RMbHk3QitmN1c2dWRYVkFET3dpd1c1U2xZU2F6
RUNTQ3N0Ny9ZM2dUWGU1YkJqVjByQW9DeUFTNEpVdkFGdXczOGFEUHZyaXh2NTJYZzV3ay9FekFr
TDFzcitIbWlzVmJaSDVkcEEwRU4yWCtqQ25DUkFNc0xUQTEweU4yQWxRbkMzTXNqQ1lpanhoMGtn
TE1MTGwyNkJMbGNUdnRzR0N1cmt0bFdBWWtSd09Ua0pJeGt1c1R5SFFmK3hmWW1LR3hmQ0JmYm0r
RG1qbWE0dlc5VkFFQ1MrWGpkT0pTRFNkTDcvSXhvbVAybmt0OEgrSlFBZkx4dlVwYWsxeGRWQUpY
K09GUFJKdjhsQXVDYnZBUWxnQ1NBSVFFbkFVbnFZM3p2QXI0aWdHOVdhMHJnK3ZoZUdEcVcxd21t
MGxYSSt3YVNKb0ZZQ1lBbUFJdkZhYmpZM21UMDl1anA2Zlhtam1hWWVYVzVDaHZ1SGxnTk02OHVo
L3VIMWhzZit4QkVMY3JCRi93dU12ajk4YzBxeTA4SndCY1U5UXIrdUExL0w1Z014QjJReTBhdnlU
TVpYZUNYQ0FCblJHN1lxdzZQd1oxNkxoTFE0dnVKTnZOaEk4S2hJM1NTMExVL0hvVzcxMGdZVVFr
RHJvL3ZWZVhDWWxHZmhabkVpbDBCb1B4SEJjREJqNEQvOHJsRlR2QmpEc0NYRE9qais0ZldxOGRS
bFlNUHNGMnY0NzlwdUc4TFpMTlpzY0VuckptQUx4R0I2MnRzajAyZVBtbnc4ME5KbDQxZUs4OFRl
R2xRQnIxRUF0d2NPWUZVODh1cXQ4UkVBbHJNWDVIMkN1d0c0R3RIa0JFVmNPZFVOOXk5VmtreUlx
bE1sSHNQcEdHNFNXMGNpbzBBZVB3L09UbXBTWHZ1N2I5OGJwRWlBUVQvekt2TE5mRGJycEpTd0dz
dDltTjJnZlo1WVkyK0QrOXY3MXNGNTFxYjRGeHJFMlF5bVdxYmI0MkFNZVVGWElxaEZ2QW5aVkl5
bEpKQVlCT1FqL3gvYWJCY1ZlQWtRQ2RGVXlMWXNGZnRLcFFTZzJKOFA5Rm1Ccjl3OEFpU3dNTXp2
VW9CS0FLb3ZFNkg0UmFMeWFxQXhBaWdVQ2pBU0tZTHZ1NWNJb0lmcnpkMnJWREFweVFnZ1ZNaUNo
ZVk2VFdLaFFFNnY5SjdKSUJ6clUyd2Z0dXZZaUVBRXhuNGVHOFg4R2NEOUM3d1V4SlFlUUdUOU9m
Z2Z5R3YycGNEQ2tBaWdlYVhWVHMyN1JxMGtnQTVVTVRYYUpPUUZrSlVQaHVUZ2RnMFZDdyt4Z1RB
UFQwRi85ZWRTeFNRZjh3dWdCdTdWcWdyQmJ0RUVET3ZMb2ZiKzFacDF6QkU0RU1NOUhPamdCL2Zq
ODk5dGlBRmU5WXRVU1N3WWMrdkV3T1VDL1N1cjVrTjBJY0JQeDFGcGxVSExDU3dxUGUzS3VHYTJq
RVNEQWQ0THVBbC9SUWlLU21vamhVVGtueE80TlBEUjdBcU1CRlVEMGdRdEhXNFdFeXVJcEFvQVp4
ckRYcjlpMDh0Z09zOXkrREg3QUlGZnRNOWdwNkNuM1lXeGtFQ1BncEE4dXdjNEZJWWd2YzBCT0Fr
RUxjU0NFTVFjMjFod004N0c1Zis0bE9qNTA5MXZpMk9NVlBsUmRwQ3ZHTkVQSklzbTgyYVNjQlQ4
bk55VUNRdzBWWlZBSVl3NGZOeisyRnljaElLMTY0a3FnSVNWd0RLbmxvQVh6NjNDQXJiRjRwQU56
MkhWdzU4aVFEQ0VFSFVjRUM2Y2pMZ1A4dU5YU3NDQ21BMmxFQTltdy93VGVCWEljSHJIeGxqL3pC
bkdQQVRpbEVOWkxOWnVUSXdFUVN1MCt1VGUwd0ltajVIaFFHem9BSVNJWURKeVVtZEFDcmdSNUJq
WXhDWC9pWUZRRGNUeFVFQ1BrWS9Sd0k0enorWVhzUDNjdUR2V2JjRVBsdVFnbk90VGVVSlJIVUF5
bm9BdnduNEpoSlFFcCtBSDZjUytRNHpWUk9McVJLb2hBSTRYRVJzRkFyajlRMUhqNW55Qk5nMm5I
UXlNREVDbUp5Y2hIT3RaZkIvM2JrRXB2WXVoWmxYbDZzcjNSc2dFUUZlcFMzRU5rdUtCR3hBbDhp
Q2tzYVAyUVVCNzQvZ255OUtnTzV2Q0NQNWJkdVg2Vm1GR09mYlBIOFlFcUR6R2F5VkFVK3Y3eUlB
VGhxUGhqZkN0VDhlMVZUQVkwVUFxQUFRNkh3M0lKSUFYcmtLd0UxRTByZ3dIeEtJeXlSdnpoT0VK
cVZBSDNNRndPMWllMU41U0dnZGdIV3V2TDRFZnRveTdTU0JTdVkveWpoemZsSXhiVWZlc09mWDlx
UWdBNzRWOU15TTd4MHI3MVdZK09MYlJNT0FSQWxnYXU5U0JmN2IrMWFwZTY0R3VCS1llWFc1T0NU
VWh3VGlpUFZkUkdEei9OTFgzZHpSN0FUL3VkWnlvalNiemM1SlluQ3V2TDVQd3M4SC9LZ0NmTURQ
U1NCd2doRlZBUlVTTU9ZRFhFQ09TQUtQUHVpQ082ZTZ5MkVBT1I4emJoV1FHQUZjSDkrckFaT0NY
MUlCU0FJMjhMdElJSTY2djAzK3U0QXV2ZGVVQTdqNDFBS05BS2lOWkxwcTZoU3NCL1AxK0ZIQWo4
Q1hTQ0RLUVNZU0NXamp5U3Vod08rUGJ6YUdBcjVnZDVFQU5icDlPS2t3SUhZQ0tCYW40ZnRQOGdx
VUVsQXhGSkR5QWk3d1N5UkFRUjhuQ1pqa3ZnUndtMUtRQ01BRWZpeVpqbVM2NE5rREh6NVdSRkNy
eDNlQm53UGZCWDdKNjV2aWY2NEExSlVlVE9Mb0QvQUcvRVNiMTlkaEhpREpaR0RzQlBEVGxmZTBP
WUNjQkV4S0FCL2pGR0ZmRXJDQlB5NFNzT1VCZkVoaDV0WGxTdWFqNTVlQXoxdW5DOXNYUWk2WGcv
ODY4TEd5ZWlXRE1CN2ZwOFRuSS90ZG5sOENQeDFoN2pySVZBc0RLcUZBTHBlemhnTGV3S2YzSnF2
MEF5UVpCc1MzR2FoeUNuQVl5YzZUZ3h6OE5pSXdnVDlwNE5QblRmMEFrb3I0OHJsRmdaaWZnNTl2
amNZTlZJWHRDNkd3ZmFGcXE2YWYxWmZaQksrazEwSW1rMUdtcGc3WGtjZDNlZjB3MGo4SytNUElm
MzZRcVRhZndGQVZnTEcwSC9qNTFhWUFQdWlDcVlHT1JNT0FXQlhBblZQZDNuRTdWd0lVOEJ6NC9E
RUZQNXFOQkpJZ0JCZm9KUVZnTTc1cGFtcnZVbTErQWhxK2ppU0M1Y1hOYTZyVzB2S01zbm9BZmky
Z0R3TjQzNlNmRS94Q0hvQ0dBYVl1UVNQSXcxN3hmcUlON3B6cWh2SHhjV05UVUswck5nTDQvcE84
VTdxYlNJQVNBQ2NCNlROZGNqK09FTUJVNmdzRGVtcUY3UXVOMGgvQlQ2OFMrUGxZTmRwVXRHZmRF
Z1greld1YUlMV3dwV3lWR1FSUmN3a1U3RkdrdnFtcnI1WmtYNWlrbnkvNFRTUVFXUVZNdEptdmFC
NWs4R2g0STR5UGp5Y1dCc1JDQVBRRW9PbTMxc0RVUUVjb0V1Q0F0NUVBOWZwSms0RGs2YU51T1Va
d215US9sZnNVK0hTTUd1Mmd4QkxyeFhhZEFKQUVGQUc4TkNnQ2w0STZMckJIOGZxK2liOWFZbjVi
N2Q4Ry9FQTFnTTBvTkxVSmkyQTNHZjA2Nlo3a0FTNWR1cVNhN09xS0FLajNENk1DTUFHSW9PZkdQ
ODhtKzVOS0FNWmxOM2F0Y01iN1B1Q241VkxjSTFIWXZ0QklBQlJndFFLNlZ2QXZQL0huS3BoZS8w
Z0VPNEkxRHZDSGp2dDlTYUN5TFZrcUN5b1ZNTkVXamdna0l3MUJOQTlRTEZabkJzNDlBZnpyQndW
VTlQd3VKWUExZS93RE5nR2YzblBQN3hQL3h4VUNSSlg5SmdMZ25wOUxmNXZueDgraVYxUVlTQUNw
aFMyd1o5MFN5T1Z5bW95ZWJjQno4bEdaZFhMd3B3WktOZzNZcDlTWGxPZFhQK3ZySDhIUXNUeGN6
bTh0SjFlSkNuaTY0Nmg4bHVCRVcyejI2SU11dUp6ZldnMERZczREMUV3QTZQMTlZdmZwdDhxbi9s
THdtcncvL1J6dStSOUhCWEI3M3lwanZDL0YraFQ4dEVQU2RMMjVveG5POTdmQzBMRjgrWURUZi8w
QW41L2JyNEdFUys4NEFPOENQeVVCcmE0dW5md2pHQUk2S2MvdlF3UzdzMGZVUk4rQk45N1J6aWdR
OXdsODBHVUc5ZFdkNFVrZ3dUeEFiUVR3cng5Z2FxQkRBeTArbHBTQUpPRnRCQ0NCWDNwczh2eW0x
K2ZLSk0vdmt2elV5MHYzdC9ldFVtY2FQdnJiTmMxK052Z25iUkl4ZWxJTzRGcUI3NXZnQzhUU0px
TVRnUzN0dmJWNC9qRHlQL1g2UnhyQWYwR3hRWlVBQUNBQVNVUkJWSDk4c3dvRE1wa01QRHpUcTRV
QVZoVndkYWRHQXB3c3hNZGphVVVBTkF5WWN3S2czdDhWdjBzZW5FcDl5V2lvNEpMOUxoS1lhNFZ3
ZTk4cThSQVVHL2hOSHYvMnZsVnc1MVIzK2ZUaWYvMmdBRS92aDQ3bHhWT0lwQVJjTGZLZXkzeGJR
azlycXZFRXYrLzIzakNlUHl6NFU2OS9CSmZ6VzdXcHZrZ0NpM3RPdzYzQjlrQWV3S29DWUVnRE83
L3krd2NudTdWRVlKejlBRFVSd0oxVDNWNEVZQUt4Uy82NzRuNlgxUXY0cWRlV1luNVR2TS9CZjJ1
d0hVcGZuUWdBWGlPQmYvd09ob1pPaXljUSs1S0E5SHl0VFR6TFQveFpqUE9Ob0NjSGdpenEvYTBX
Q2tqM2NjVDhtbVYrRThnRFBQcWdTeDBNOHVCa2QvbWcxeGZ5MEpmWkZNZ0Y0TUNQQU1Ddjdpd1R3
TldkNnZOc1pJQmZjem0vRmM2ZS9UVDJQRUJrQXJqOTNRV25mSGVCMlBiZVdzSHZJb0haOXY2Y0FD
am9KYzlQOTBsSUVwK0NIdTMyZHhlcThTbnVadzlKQXFZckI1NHY2S1V3SUFCOHd5bEEvSXB6L21x
cDg0Y21nZ29aREx6eFRobllsVk44RU9qWmJCWlNMK1JWWTVCMmtLZ0FhRTRBRk9SR0lxaFVBbWdl
WU00SndDYi9mVDI0Yjl3dmdUL3U0Uit6UlFLdVREOFN4ZlJiYStEN1QvTHd6K0tGQU5BbEVqaDgr
SEI1dUdYL21CcHl5VWtBd3dFRXRDVGZwU3R2aHJHVjhuenErZEs1ZitJUllQUWNBQndKVGlvSExz
OGZCZlJVOXVQOW90N2Z3b1k5djlhR2dORDUvcWtYOHZMQkloS1lrUUJnU0lHYmtnQTM3QVc0YzZv
YlJrZEhZMDhFUmlLQVVxbFVFL2h0OGI4dDdrY0NvT0N2WnlLZ3pVTzM5NjJDdXdkV081Tjk5dyt0
aDUrdXZBZi9MRjVRNEpkSUFNRi8rN3NMa01sa3luUHRYeHFzZ3A4cWdmNnhNZ2djdVFEcDhkSmZm
Qm9BUDcraVo3WUJuOTZiRHYwMG52L0h4b0ZUSlJCWHZHOGtnc3F4Wkl0NmY2dWZGRFRScG9CK09i
OFZYa212RmZNQUFTOVBDRUNwQVBLMUpudHdzanVSUkdBa0FyajkzUVVvSGUrS0pOOWRCT0FEZnRN
SXNIb2lBOTQ1aUNUQVFhOGsvMEFIbEw0NkFiZS9Ld01mcnpZUytQemMvc0RCbDRvRWhCQ0FsOVE0
V0NWWm4zcjlJKy9TSFNVQ1V4c3ZFb3BHVWd6ODJ2bC8wbGtBckg4Z3JuSWY5ZmcwRDRBa29MTDdl
RW9Ra2Z1dnBOY0c5Z2R3WU1OWU9rQUFHbEVZaUFDUEdVY0ZFR2NpTURRQmxFb2xxL3ozQWI4cC9n
OExmaHNaektWeDBOTXpCYWJmV3FONWYvVDRVQmlEMjk5ZFVGY0V2MFFBMU92VGMrOXRDc0NWQjdE
RjdHSHE5aWpKTWVsSGdVOFZoZFByVTlEekU0RXl2NG5WODFQWlQwRlBRNTlGdmI4dDEvd3JSNFBq
Z1o0STlsdUQ3U29Nb0tjQmN4QnJCQUJEMWVjTmh1L0ZTb0NwSVdoV0ZZQXArei96cWpsMmR4R0FT
L3E3d005SGd1SFBNdHRlM3daK1NnSVk0ME5oVEFRL0p3RWtnTS9QN1ZmQXB3U2dLUUFoRVVqalpx
a253Rmk2OHkzYnNaS2Q4dktWUEFFbG5rQzhqeUNuUUpjOFB6V0RDZ2pyK2FXWVh5TUJQSms0OHh1
NG5OOEtEMDUyVndtQUpRU25Cam9DUFFFWXcyc0U4SS9mZVJPQUlvSktxS0VxQVpWRTRFOVgzcXRw
VG1Cb0FuajB0MnZXMkowQ3p6Y0I2Sk13dE0wVjRPQ2ZDK0M3UEQ4L1RQVCtvZlh3OEV3djNQN3Vn
b3I1OGNwVkFON25jamtSL0tMMzl3d0JYRXJBQy9qa3NkWXZYN25TNzV0Ni9hTUE0UG1SMzE0SGdC
SUNpRHZtNTU0ZmlRQjcvLy85d3dxUVZJQVVBZ1NNSzRCS0dPQmp2QkpRS0JUVTM5Q3NFY0JQVjk0
ekp2MG9LTERsVnlJQ1RnQXU1ZUF6WEVRQy8yd1FnUy80N3g5YUQ5TnZyUWtjUDE0NjNpV0dBSlFF
ZnJyeUhxVFQ2UUQ0cmQ2L1J2RGphd0ZBTytyMllrYWZ0UFRTelRTaTNQZTFTcmdSUjh5dlBENS9i
dTFCU0hXK0RZdDdUc1BpbnRQUWw5a1VKQUNtQWdJaEFMdHlBaWg5ZFVJUEVSd0tZSHg4dkR3Zm9I
SjI0T1g4Vm5oNHBuZjJDT0RobVY0citMRitiVk1CZEFPUXkvdlQ4V0tjQkNnUjhPODVHNTdmMStO
THdFZTdjNm9iN2g5YUw0WUNVQmhUa3IrbDVabWF3Qy8xMVBNRW5aUzhheHI0Z3hQOFVnS1B4L1pp
VW8vSDltSE1BdjRvcFQ1SitxZldIb1JVcWw4WkhoS2lLZ0dDQ3BCMkIrSjlPWHdZQ3BxTk1BZ0JT
SWxBTEJGR0RRTkNFNENVdU9QZ2w1U0FxUUxnSS8xdFc0dHA2REhiWHAvSC9Kd0lxTnlYckhTOFM1
SEFnNVBkQ3ZTRmExY0FDbU13M0xlbERQVEZuV2J3VzREUHZUOWVmWUJQcjZxRHp4UDh4aG8rdjRi
MS9KMXZxNjVBayt5dkplYW5qeGYzbkE0UVFGOW1VeG5FRTIwYUFmejc3MDBpNERGNVI1OHJmWFhD
U0FEUyt6bWhvQUxBTUFDZkx4YWpKUU5ERVFDUC94RndPTm1IQTUrQ1VsSUFyc1NmRGZ5dXVZQkpl
MzRFT2dYODdYMnJOTkJMbnYvV1lIdkErK1AxNFpsZUZRNk1aTHJNbnYrbHdWQnhmeGp2YjdySHBK
N2s0VzJaZkdzNUx3VHcxV2NRa0d2ZU82d1IyYzh6LzZnQUZ2ZWNMbi92Q2dGa01wbHFndzlWQUt3
dndBWmlVUUZjM1dsOUgxVUFROGZ5TUQ0K0RoTmZmQXZYL25oVWZRM21BY0tTUUNnQ29QRS9sZjY4
QkNjcEFRbll0WGgvMDJpd0pMMCtuUTRreVg2WHgrZGUvLzZoOWZEZ1pMZW1BbjY2OGg2TVpMb2d0
YkRGSHZPSEJMOUVBaExnVGM4YjViM0oyOWNLZWdwOHZLOG9nTlNPRWUwNURBbDhwYitVN1YvY2M3
b3EvVE8vcVhyK3RRZkwxdnd5Ykh5KzEwZ0F0RHVReXZjQWlBVUN3RHlBVFRsSWVZRFB6KzFYcjMv
L1NWN3JDZkFsZ1ZBRVFDZi9TT1U1cWdRNEdYQUNrSlNCcEJJUTdQU2V2MzgyQ01BbjNuZUJuM3Y4
TzZlNm9YUzhTNEgvenFsdW1Ccm9jSVBmUS9xYlBMOE4rQ1lpU0wzK2tTenZMVEkvTXVnNStCSGsw
bVArV29nNnYzcU9TSHd1K1ZOckQ2cmN4K0tlMDdBN2U2UUticTRBV0RMUUdOZExDZ0Q2dlJRQUVn
RG1BWENINHNNenZYQTV2elZ3ZEpnUENZUWlnRHVuS24ra0pNUHYwNVREOHdDKzNwL3ZLc1I3cWVT
WVpLelA0M3diNkxuc3Z6WFlycncrZ2gwOVB3WCtnNVBWZXluakh6Ym05L0g4dmtaTGQ4YTRudC9i
bnZNQnZZa0VLT0RwYTVYd0lFek12N2pudEE1NFpvdDdUbXZKejkzWkkzQnJzQjFnTEEzLy9udFR1
UnNRdXdJcllZREpjejhhM2xpcEFQU0xKR0JURHZRenFRSkFBb0NyTytIT3FXNnROZGlYQkVJUndL
M0JkZzNNcnFZY3FnaHNnTGQ1ZjRrRU9Ga2tRUUltankvSmZsdVduMHQreWV2ejYvbitWdTh1UDNW
NFJVTGc1NTE3b3Bldkpac2ZCdlNjQUhhTTZLRkJtSklmWGp2Zmh0VGFneklackQxWS9qcENBQWhN
SkFCcTJQUmpqUC9IMG9BZVg3ZGdIb0FDbjM3T25WUGRNRFIwR3NiSHg1WDN4eDRCYkEwT1F3TGVC
UERvYjlmZ3pxbHVCYnlwZ1E1dHByK0xETUlRZ0cwNk1JLzdrd0MvdElrbkxQQVI4TlRydThCUFZV
Q1lMajhPL3JnSm9HbmdEN1Y1ZHAvNDNnZjBucExmNVBsTm5YNWEzWjhTUU9mYmlnQVc5NXl1SmdF
dEJNQTl0MFlBU2dFSVZpRUFteExBeDZPam96QTZPcW8rRTB2emZJT1FUMUxRbXdCdWYzZEJ4ZDZZ
cU9MbE9Cc1IrSUovNXRYbEd1RHBQWmYrY1lLLzFvWWU3dkZObmwrUy9QVCs0WmxlZUhDeUcwN2sv
aU5TekI4MytLa0txRG0yTjNuNU1DU3dZVy8xM2hYdjJ6dy96UVZJNENmZUg5V1BTd0h3RFVLQm5n
QVBBckFsQU5HR2p1VlZBaEJIakQwYTNpaWVIK2lhRitCTkFOOS9rb2VIWjNxVnBKQW0vdHBJd0Rj
TW9FMUNYQUh3ejRqYjYvdkUrcjZKUGg3dnU0RC80R1FaL0VnQ3R3YmJyZUNuMHAvM3cxTUM0RVJn
ZTJ4NnIycTRpZUwxYlJJL3JOZG5KR0NVL1Fhdzg5MTlYQUdvMmorR0JDai9LeUVBUFJIbzN6K3NL
SU9lWGRXdVByRUUrR0lGOFB4YXZzZS9CeWtNb0NwZzZGaDVKUG5ETTcwNkFaRFRnM2dvVURNQlBQ
cmJOWFZ2T2dPUWt3Q3YxWWVWLzY3TlFrbkcrMUZpZlpyd004bDlrOWVYcnVsMFdpejNhWEgvNng4
NXdSL1hWU1VEbzBqN1drQlB2VDY5bDhJQVd0LzNKQU9icVVUZ0MzbGRBVlFHZ3lpcmtBQU5BN0Q3
cjlvRitDSUR2MDRFWG4wRVkya1k3dHVpSlFCeFA0SHBGT0ZZQ0FCWHFWU0NhMzg4Nmp6S0d3a2di
QUxRZDhCSVhKS2ZTdjg0dkQ2UCtVMnhQb0tjM21OUzU5SHdSbmg0cGhmNk1wc0NDc0FHL2poSklQ
WDZSK0pqREFXY3dJOFQ5UFF4WHRlOXBpVURuYnY2Sk0vUEh2UFhlQWlReldiTkJGQXhtZ2pFSzVK
QUZmUXlFZmptQUg1L2ZMTWFSNDdodzhNenZkb21JYTRDWWlXQXkvbXRnYnE4aVFTaVpQOXQyNHhw
RWpET0pGOFVyMitLOVgza1BwWlVxZGZuOTFNREhYYjViL0QrdFpDQjdiUFFGQWtrS085RjBIUHdi
OWhibHV3Yjl2cDVlaW54WndJK2svOXIwci9VamdZM0VnRGJGMEJsZlpBQW1GVkFMdVVBZUMvQXJj
SDJhbDlCSlFUZ3cwS0t4ZWxrQ0lDZkFHUXlWN0tQWHlYNWIxSVJjUUZmOHY0MnI0K3R2Q2FwNzVM
OUZPVDRHRDArQlQ4K3BpR0EycDVLd0c5U0FWSE5sd2lzSkJDSHZIZDVmZ3IrdFFlMU9ZVld6KzhE
Zk9iOU1mRTUzTGRGL1g4aDJMMEpZS0xOU1FDUFB1aFNaVDFUTlFGTGZscFprUk1BbXhrNE16TVRI
d0h3ZzBCTlJHQ1Qvak92Qm5jTm1nZ2dydGcvVEpZL2FrZWZ6ZHNqNEUweHY4a3ltVXd3QkhqOUky
c0lNRnVtY2dKUlBMME4vQ2JRUzFmOG1yQ0p2eGZ5NWZlL2tOZmpmZXI5OGJsS0F4VHVCbnowUVpj
Q3YzVGxPd0F4VzE5dUdIcXhBcnN5Nkt2UHZTaVdBbmtTVUt3cVZON0had1ZRRlJBTEFaUktKVFVP
M0VZQ051bHZBdWpVM3FYZVk4TGlrdng4U285dm5NODlQMTV0ZFgzdS9kSHJTOUtmMm5EZkZxUDhU
MG9GK0lKZkl3R0pDT2h6Tms4dlNYMzA3aHpvZUkrdnIzdXRTZ2lkYndlR2VGRFByemIzMFBjZzRQ
SDdDZ2xBVkFBcUJMQVFBTjBUZ0FCK2NMSzdNa1BnUlpFRTFIMUZQVWloQUZVQytuQ1JmdFVKeUll
R0prSUFQMTE1ejlxbzR5UDk2Y3g3ZXZVZE1WWnJoajlNRHo4QzNxZWJ6eFRqYy9CVHNHUGl6MlRu
KzF1dE9ZRFpBRDhuR3ZvOTFYTnNnNDVTS3I1ZTNnVitJdmNWOE5jZXJMNU9RUzE1ZmdwOENmenNP
UXArSkFCMURtQ0ZBS2dwNzI4SUFiUmVBUVgrbEg2UFEwS3hhaUQwRkdpdmt5N0NxWUVPZmF0dzNB
UlFLcFhnM3IxN3pzTkFYVmwvdmxPUVBvN1QrL3Q0Zlo4a0g1YjIrTjU5VzRaZjh2Z216eThaWm5X
MVBBREtmMndDWW1HQUZad1dwZUQ3OWRKci9GNjExdkxITm0vUHdZNnZJYWdwQ1NCNHVmZEh3K2U0
M0RlQmY4ZEk5Ym5tbDNYWlg3blNGbWdWZTArMEJRaUFFZ0VuQUgzelVCWDR1aHBJaVJVRVBoQkVV
d1dFQU9nbUlTa1BFQnNCOElsQWxBeDh2RCtDRTRGUHkzRStRMEtqZW4xS0FnaDZIdlBqOHpkMnJZ
Q2JPNXFWZmQyNUJMN3VYQUxYZTVhcGUycjQvUFdlWmNxKzdsd0NVd01kY0hOSE0wd05kR2lLd05k
UTJta0tZTWRJVlFXd0dyZ054TFZjdmNIUDdhWEI4Tmw4N3UwcHNFM0Fsd3dKUnlJSm1nTkE4T1BQ
UkVtQXlQL0ZQYWVycC85WUNFQlNBSHlBaUdULy9udVRGZ0p3RmNEM0JtajdDaW9LWUhSMFZNd0R4
RW9BRXZoOXB2c2dlQ25nNlQzUEFZVE5JWmpxK253ZlA3MVN1N21qR2I1OGJoRmNmR29CWEh4cUFY
ejUzQ0w0YkVGS3U4Zlg2Ulh2dis1Y29qMzNkZWNTT05mYUJDMHR6MEJxWVl0bWU5WXRnUk81LzRE
TCthMktGS2pYZjNpbUYwcGZuVkQzdEJlQVZnSW9DWEF3bW9EcUEzWWZvRHZCanh0MWJHQVhzdmtp
MkNYZyt4S0J6WnBmcm43V0MzbElMZTRVRlFDU2dKTGhIZ1NnZ1ppUEVET1JBTXNmMkVxQjFkbUNa
UUlZN3R1aUVRQTlQS1JZbks2ZEFMQ2p5QVQrbXp1YW5RU0FtNGZvVGtHcUJuem5CUHFvQU4rdlF3
K1BBS2RYbitjUi9QajQ2ODRsc0dmZEVnM3dMUzNQUUdweHAzNWxyNDlrdWtReWdLczd4V1lnVXh0
c1dDQ0hCcmFQY2ZBN1NuZ0t6Rkp5THc2Z2M4Q3pxK3IyVzloaUJEOFNBSXlseTRDbUpNQUlnU3VB
YXR3ZmpnQk1ld01lZmRCVkdTMVdiaVBHWEJIdUVod2ZINDlYQWFEM241bVpFY0UvTmRBQjEzdVdl
VFg2VU85UFZRQWxBRmNKMGRaTEVNYXU5eXlEaTA4dHNJSmVlb3hlbmovM2RlY1MyTHltcVF6c0N0
QnhwaC9POWFQUDRUMGxoTTFybXVCOGY2c0MvL2VmNUkwRVVOTklyS1FzOHh1NWZNZVRldExWZGg4
SDRFMGtnRkovWVl1Uyt6eiszNTA5QXFYajVMdytCRDRuZ29tMm9PZW1Nd01jQk9EMC9Eeitad3JB
ZEhwUUxBUmdPaEVZejdyM0lRRFRUa0dhQTNCOWppOFIyRWlCQTVpRG5IdDJLdTNwYy9ScjBmTXJV
QXVnNTNQKytHdFVJYUFxQ093SHdOWlhReTVnVHMxVXUrZHkzaVh4NC9MMk51RGpmZWZiNWQvcndo
WkliZGdiOFA2TGUwNVgyNEN4QWtEQnp3aEJBK3BFbXpZNFJCb2tvc2lCOUJEWWRnWHF1d3JMUTBY
N01wdEVCVkFzeGhBQ3VBamdzd1VwTDlEeTNZSzBad0FWUU5qMjRWckJMOGw0SDA4dlBhWVNYKzNu
RjBCdm12UWJtQUtFWVlLMEg0RDB2OWNOQ2V3WU1jdjZKRDI5cjhmbjk4MHZ3K1g4MW5LelZlWTMx
ZDgzSy85aEY2Qks2RG1NQWxadEZMS1lJZ2RIRGtBbEFXbjhELzFxZ3hEbUFIQm9hR3dLQU9XL1JB
QW9vOE1TZ0RUV082ejN0MTF0NEtjQXBnazhEbXp1K2Zsait0ekY5aWJsL2FrM2Q0SGNTZ0NtQWFE
MUdnYThrQTk2ZUE1KytseFNIdDhRNjFQZ1V3SjROTHl4M0hDRkJFRG1IbUR6a05wOTV3SS9HKzdw
QXIvV0cxQlJBTFo1QU5YNmYxVUJQQnJlQ0xsY0RvYUdUc2NmQXRENC8vcjQzc0M1Z0pqNTlnRXVC
YjgwMlRmSzdzRXdaSEM5WjVrR2NBbnMwbVB1N2ZrVjViOXBqTGZwT0MvYmE5b3dFRDRUZ0J6TFBk
Y0VvSDEvS3ZXbCtENHU3eStCM2NQYlN5UndPYisxSE5zUGI0VHovYTFsRmRmOHNqNzRwUFB0Y2dr
UTQzOEhBU2pBZnREbFRRQllCcFI2LzJsWThQQk1yd1orZ0g0b0hlK0N3NGNQRzBPQVdBbUFaLzVS
TnZzU2dHblBBRllGNGdLL1ZCV1FNdlpod1c2NnZwSmU2L1Q4Q0dZUjREYkRRUndXQlRDYlJHQThV
Z3RyNnlZdkgxZFN6OGZMMjRpZ1lzc1dWYmZWb25jOTM5OWFUdHFTcmM1UGR4eFY4aDlKd0VnRzFI
Ti9zN29LY0o5UVlLSXRVUHVYKy85Ui9sZTdBQ2tCSktvQXVQZEh3RVFsQUFybU1ON2ZCWDVPQkJ5
d1BqRTlsZmxTQXhCOVBwMU8yMC93aVdKVStyTmVBRmNZWUJ5TjVmazRBRzdUYy9TZU50NGtVYjd6
SVFFTDRFMGhBQ29BdEZmU2E3VzI1a3dtVS9hOERQZ2lHUkR3OG1FaDRwVVFCQzBobXBRQTkvNXdk
U2Y4L3ZqbW9BS29uQjFZTE5hb0FMRCtQek16by9ZaDN4cHNoeHU3VnNCbkMxS3hFY0NQMlFXSjVB
Qit6QzVRVFQ2UzFIZEplOU05N3dUY3ZLYkpQY2RmdXI2UXQ3OHV5SDhlQW5BVjRBVm04bnhZOEFm
ZWg2L1I3cnJaQUg4TndFZWo1LzJoQ3JnMTJGNysvNnNRd0hEZmxuSnNUMHdpQUl6L1lTeGRsZjgr
SkZDNThnb0M3d2NvbC8vb1ZPR3lBaGpKbEVNQVdnYU1OUVNZbVptQlluRmFzZVd0d1hZVlEzKzJJ
T1ZWQXZRaGdDam1Rd0sxZW5xWFhlOVpCcStrMTRZRFAwcDYxMk51QWdHRTh0S21rVmtlWDIvY2Ix
OTViWEhQNmRtcjNkY0lmRFRjNGNkNytFY3lYVW9GWE01dkRRQmZJZ050SHFBd0t5QkFCdXdlMzIv
Y0JhaWRLMUFkSnRxWDJRUkR4L0phQ0JBTEFWRDVUeFhBMUVDSEF2OW5DMUplWFlDVUFMRGJMMnpN
SHdYOFAyWVhPRDE3TGVCSEF1Q3ovRVh3bTBCTngyeno1d3pneHcwdmdVRVhnb2Mya1lSMVhIYklx
L281Wmt2bTF3aDhUUFJwSi80U0NYN25WRGM4M1hFVVVodjJxb1NleTZqbk5vTGZRZ2lhZ21DN0FI
bjNINUlBYmhrZk9wWVg5d0lVaTlQUkp3SlJBa0FGUUV0L1ZBSDR4T1J4RW9CdkRnQTM1dmhJK2Fo
MmMwY3p6THk2dkp3SG9FaytIL0Q3R282bk1pZ0FreXhQK25IZ3lqZmdZREl0VEVMUEpmRnJCRDRs
QUZRQXVHR0hxd0JzQUVKWjcwVUFIM1NGSXdDY0ptVG9BRFJsLzNHT1lEYWJWU0VBSllDYXR3T2JG
QUFGLzJjTFVsRFl2dENaZ2NjV1lMcDlPQ29CaE1rQm1HTDd1T3g2enpKRkFLZ0NBakUrQno4RHMr
bm9iUlB3cWNlMUtZQkVyNlo3M0dKYjJYV25majRrQWQ4U1hnS0ExNnd5c0VTZDkxY2hBTnJJOCtC
a3QxWWxjSklBQW5laUxSWUNDR2IvbWZ5SGZyZzEyQTREYjd5amVnQ2tlUUN4S0lESnlVbTRuTjhL
OXcrdDE4Q1BJWUNwOFlidTk4Y2VnREF0djFISWdCTkFuR0NYcnZodm0zbDFlWFdTcitENXRiUG1v
bGdGWUU3dzQydTFQcmJNMURQTjJETk8zZTE4MnordVR3THdGVnUyYUxQeS9vdDdUZ2RPL1AzMzM1
dUM4cHQ3WmZUMi9NcXkvNmFaZ2JaaG9xYTlBSkwzeHowQXZBTEFTNEN4aGdDWU9KTVVBQWU4UkFR
K0UzL2lVQUEvWmhkb2UvbmpCajI5M3RpMVFwdEJrTWxrQXQ1ZmdaL01tK1B6NTB5QWw5NWpWQUlT
U0EzZTJ2VzY5cHhFTUk2ZlF3Ti9XTkFuU0FLcHpyZFZvNCthOVUrUC9KNW84eUlCOVQ2eVJ4L2xQ
d1c2TkRhTUUwRmdENEVvLzgwVkFGTVhZT3dLZ010L2t3S1FpT0RIYkhYdWY1UWNBQ1VNM3dSZ1dL
Qzd3RTRIZnVBOWZqODZkMkRqODcyNkF1REFkaG45T3NON1RFcEFVZ2FMZTA1N3Z5NTZkSWswaE1l
QjU3ajBueVZQcjJRK2doMm5ENUhkZnFuT3QyRk4rcGZ3YUhnamxJNFRBbUJiZWprQmFKNlplMncy
SXN3R2ZHMlVHQ01kbkI0VmJQNGhSRkRaQkdUcUFveE5BUlNMMDBvQmNQQWpBZENUZ0tVckFyZmVG
SUNQaDVkQVQ0MkNINGVRVEwrMXBrd0NYQUg0RW9ERkpDOXJHM0Z0OVBTbTkxbSt4dWRlTXgvUUow
UUVkRmNmTjZvQ0ZOREkxbHdUQVVneE9wZi9OaEl3WGxuU1QxTWN0UE9QN1FLa0NVQlREMENzQ2tB
aWdPczl5OFM5L3ZSeG5BVGdtd09RQ0lBRFBDcm9PUUh3Y3dZMEVzRDk1bml0a1FCOEFXNERhR2hQ
SHRVMjdFM1d5eHRpZkM3M2JTU0FuWURhL3Z3SmN4aGdKSVdKTnV1a0lENDhsQklBN3dDVXQvN3FK
REExMEtGdEFzTDRIM2NDeGtZQXhlSTBURTVPd3Vmbjlvc0U4SFhuRWlQdytkbUFOQW1ZaEFLUVNv
QXU3KzREY3BQZDNORWN5QUZRRXJpOWJ4VmtzMWwxaEpWMjZHVE1ST0FraHdpdjEycUxlMDdQU2x4
UGdZLzM2cm5LWVoraUF1aDhXMVFBdkRISVJ4RzR3RzhrZ1lrMkVmemxuNG1DWHQ4RGNMNi90VndC
RUhvQWFQd2ZtUUR3elVnQTQrUGpSZ1ZBUjN6WlRnYW1neitTN0FOQUF2Q1I5bUhBYnJwS2cwZ3BJ
ZVJ5dVVSVlFGMWJBc0FQZUhvSENYQUNlTHJqcUVZQXBlTmRnYWs5Y1h0L28wM0lMY0NtMmo4MkFK
M0kvWWRXQWpRbEFHTUxBYTc5OGFoSUFGOCt0OGdJZms0QXRCSVFSZ0ZJWCt1YkE2alZ5N3ZBejVP
QUpqSVk3dHVpazhBY0tBTE5kb3pBK20yL2dsd3VCd052dkFQRGZWdlV5YlBEZlZzZ2w4dEJMcGVE
M2Rrak5YMFBWUUpNQVBnYzZLWXJEUVcweENCUkFPWERPNktGQVpIQlg5a0N6T04vZmQrL0RuNk0v
ek9aakZjSnNGUXFSU2NBYkFLYW5KeUVTNWN1T1FuQU5QR0hXaTBoUUpnbW9GcUFiZ0k3ZHY3WkZB
Qy8wZ25GSTVrdVdML3RWMFlDU0Z3ZDdCaUJYQzRIdzMxYkFzZWc0ZmtIOUZRalBKdWdkTHdMTHVl
M1FpNlhnL1hiZmlVVGxxRzhxZllJeE96cFE1RkJCZlRVOHkvdU9RMnB0UWMxQXRBR2RQZ1NnSEJR
U0JpVHlveDY4aTlJQkE5T2Rxc0VvRzBiY0UwRXdFT0FRcUVnRXNERnAvUmhIL3hxSW9DcHZVc1Ry
d0xVNHRsZFYybzIrVStmbjM1ckRVenRYU3FTUUdKa1VQSDBDSHEwdXdkV0I4RE83ZnRQOHVxS284
b2ZuT3lHNGI0dDFYOUQ1amZPSzUyeUUwVVIrSHI2QURtazBvRThnRWtCYVB2MzJZZ3VwL2VmYURO
T0NYYkpmKzc5Y1NDc3JBRDArTituQWxDVEF1QUVJUFVCZkxZZ0ZlcVVZTXdEMUZJRjhGRUFramMz
ZVhxVFp6ZUJuajkyeVgrdUJEQTVxQ1dtSk9Cd0l2QWhCK0tKT2ZEUjQ2T25wMGVYVWFQUElRbVV2
anBSM3BCU0dJUHZQeW1YejRiN3RnU1VqUFp2ZUNGZms3VDNpZThEWUJldUZQaFBkeHd0Yi9UcGZC
dWU3amdxS2dBMGIrK1BvSmVJUUNLRXluTzBoVmc3KzgvaS9iWDQzN0lKS1BZUW9GQW93TG5XSnBF
QWJ1eGE0VTBBbUFkSVlqY2dyUVJRc0VxQUR1UGhYZWJLQWZDRFN2QWVELzhNUXdUVzV5cmczL2g4
TDF6T2J4VlBQS1lBTjExTmFxRDAxUW40NmNwN0FJVXgrR2Z4QWp3ODB3dFRBeDJ3TzN0RXptL1VL
UHNqZS96S2xTY0JVUWtnK0xQWnJDb0RTb002Nkl3L01mTS8wU1pQQi9hNWZyTmFUdndGK3Y3WnRk
SUE1TE1Id0pZQTlDSUFtZ1FzRkFvd2t1a0tSUUFtbWU5ekFJaFBNdEJGQW1FQmI3cjNJUUNUL0Rj
ZFVZWmZNLzNXR3VqTGJGS1NXdjJ4MHVtMEhqSWJkN2RORFhRRWpqN2pIbDhDdkEzODlMUWlLSXhw
SkZENjZnU1VqbmVWOTBGVUVtNWErMjlJV2UvOW5NSGpMMXUwV1RNcStUVVNXSHRRZFFKcUNvQmNy
WGtBMTRodzEzVkN6djZMWFg4Vnc5OTFIQW5BU0FRdzNMZkZXQXJrNE1mSlFSS1FhOWtPSERZUkdF
WFNSMVVBa3V5WDFJQjBZT25VUUFjTTkyMkJOZWxmQm9CdkEvM3U3SkZBVW85NmZCcm4rM2grbXhw
QUZjQ1ZBQlRHNE1ISjd2SWdEVWZ5TG9yRU40RmZlcXlCbjRCZFVnQjltVTA2QWJBaEhhYTJZSjhK
d1pwSkpDQnQvTEhGL3BVTlFEVCtIenFXaC9IeGNUaDc5bE94QlRnV0FpZ1d5NjNBaFVJQlJrZEhq
WlVBRG41VUFGS3NiMG9ReHBVRHdQczR3QjFWQVZDUVMyckFaa2dHdzMxYllIZjJDR3g4dmhkMlo0
L0E3dXdSNk10c1V1VTYyM0huRXVnbHc2K2x4NkZMcEVHVndQZWY1QUVLWXdDRk1iajkzUVg0WjdG
c2xBUmNuanlzeEhlQm5YL05za1diQTdFL0p3T2M5NjhSZ0xCTFQvVCtZUWhBTW1QZDN4ei9QeG91
enluSTVYS0IrSitlQjVpWUFyQ1ZBaW53OGY1Nmp6d3VES1Z2TFNHQWJ5SXdDY01UaE9uVnBBSmNu
dDltK1BWNGVqSDE4Qnp3UE1ISFFZN2c1Z2xCSHlzZDd3cVFBRmNCU0FRUFRuYVhoNk9FbFBsaHdl
OGlBcXNDV0hzUVVtc1BWdmY3VzRaNDFPejl1WkhrbjFiNkM3VDlCcnYvSGcxdk5NZi9RZ2RnN0FS
UXVIWkZKQUNzQk5DQkg5TnZyWUhyUGN0RUJZQmhRQzNlM3dYK3VFa0F3WTZmU1QrYnR3T2JTS0FX
TWpCNWVrbnVjN0NiZ084aUFmNDVybEFBaWVCeWZxdFJydnNBblh0eUh1dmJRTS9qZnluMng5MkJk
MDZWZjEvU05sNFRBY1RwL2JVVGZ3TGdEOHIvcVlHT2F2Mi9JditqSmdCREVVQ3hXQTRCSnI3NDFs
Z0o0UExmcGdDaUVJQlBBbEFpZzdpOFBQMHNmazhWUUJnU2lNTTRXRGt4U0VRUnh2dFRrOElCaVFT
Ky95U3ZlV2tmRXJCbDhxTmFhdTFCVmZhajVUL01BU0Job21lV2huZndrM21kNEw2NjAvbzZuLzFY
OWY0dlZnQ1BWOTN3Rk9CY0xtZWRBZUFyL3lNUlFPSGFGV01sNEhyUE1nMzhTQUMyTUdBMkZJQXZD
WmdBenozOXpSM2x1ajk5RFIrN0VvRnhlbjhPYUVrVm1NQmZPdDRWV1FsSUtnRDdBMjUvVjA0STNq
blZMY2JtVVlFZTJ2T2pjaEM4LzlNZFJ5RzE5bUIxR2hEcjVlZmJkVFc1UGlHZkI2RHVyKzRzRzYw
T2NPUGp2c2JTRmRCVFkwUndkYWNxLzJIOGJ6c0hJRFlDb0dQQmtRQ0dqdVdOZVFEcDdFQ2JDZ2hM
QWo3Z2w0Z0FnUnNGOVB5NTIvdFdpZUIzOVFJa3BRQWtzTHVJUUNJR0cvaVJOQ1FWUUluZzRabGVL
QjN2S2ljQ0JjRDZsTzZpZW4wRmVoSTJpT0N2eUgrY0NFd0pRTnF1UzZmLzJNQmZuaXBVQnF2cEJD
RnA4aS9BaTVYMlkwNEN4Q3J4Z1Q0UkVRQUFJQUJKUkVGVWZ5YVRpYVVCeUlzQUFJUjI0R3RYaklu
QWkwOHRFQW5BZG5SWTFObUFQZ2xBS1NGb0F2eU5YU3ZVY3lhQTArZFI4azhOZEdoVkFMbzEyaFlP
SkpFSGlBUHNNKyt1RE9RTHBEQUQ3M21Pb0hTOEM2WUdPc3FIYktiU3lreWVYSXJ6b3dLZkp3WVI2
Rkx5anlZQVM4Zk52Znphc0E3TGdTREsrMWVTZFVhRndBZUprRm1FWmJDblJBSjROTHhSN2YrMzFm
K0xSZi80UHhvQlZDb0JwanpBMUVCSHFOT0RPWURqQUw4dEZEQjVlaC92THNsOWZpMXNYd2dYMjV2
Z3hxNFZzVllEWE1BUEEzNGZRc0FlQ3Q0K2plK1pHdWlBUGV1V3dFaW03TzNQOTdmQzFONmw1V08x
RnJhVXo5Y2pCQkFGMktHOFBma2VrdWZYd005YWdGMjcrVnluQVZXOS94QUFERGxQRHFJS2dHOUIx
allqb1RLb2VIOHMvOFVWLzNzUmdLa1VhTW9EM056UjdFVUFFbWpqVmdBbUFwRGtQUVU2ZjR5a2dH
QkdRQ05oOE1mbldwdmdYR3NUWE85WkpucitKSktBWVJTQkxTZHdlOThxNjZhcGM2MU41Uk4wOFNo
dHlSWjNpZ1FRRndud3NDSHdmZGE5QnFtMUI4dmJtRW5NajlmVTJvTmFDN0JyTjU5NEJnQUNHaDlm
M1Fud2o5OHBBaEJKZ0dmK3YxbXRnViszRnhVaG9BS1I0djlhNUg5a0FnaVRCN2plczB4TkR2YUoz
V3ZOQWZpUWdTbVJSNEhPcnhJUlNLL2ZQYkFhTHJZM0tSSTQxOW9FaGUwTFl3ZS95L3VIVVFMbzhX
L3UwT2NuSU9nTDJ4ZkN1ZFltTytnUitKUUFZbFFCVW55dldvNHhsMUFoaHNVOTVYSGZEMDUyNjhE
SHdhQmMvayswNmYzNUhnUVFBSG5GK3dNTWFlUWdnUit2dXJjUEd0MlJlT2RVdHpYK3A0ZUFKRVlB
eFdJMUVlaWJCN2k1bzFtTkRYTjU2Q1NyQUtiS3dQMUQ2MFh3NDJQNitzeXJ5OVZqQlAzOVErdTFI
Z0I4blJJQUo0STRRNEdvWVlBazlhV2hLUmZiUFR4K0NBS0lsTWxuTXA5NmVSN1gwL3IrMUVDSEJu
b2tnMVV0QTdyOFIvQWJyczRUZ1JENC8vZ2RZTGVlNmRRZzZ2MHBBUmlKWUtJTkhwN3BoWkZNVjdY
OTF4SC8rNEkvTWdGTWZQR3RkeDRBRmNERnA4emdOTFVMUndrRHdvUUNrcWUzZWZpN0IxWmI1Ly9S
SzFjQjFMNThicEg2bkRqVmdPK1ZlM3NUK0RldjhmRDZOdkFiQ01CR0FsYlFjeU9nbHRwN3ovZTNh
cklmYmJodmkzWWt1S1lBaEtzVi9FVDZ3ejkrcHlvQXBqTUR0Wk9ERFVaekFmZytsUDl4eHY5ZUJB
QmdyZ1RZTmdieEhBRHVHT1NnUnd1ek1jaFhBZmdxQWhySGM2bHY4L3owUGZReFZnRk1CRUFOSlhh
dDN0OG0vZkhmSTRGZHVyL1lIZ0w0VXV5UEZRQUxBV2hKdXpDZzUxWUpCV2ljanhPTVJqSmRBWkpJ
clQwSVV3TWRxbHlKTXYzdXRaUng4NDdrMFdYdlB5UVNRRUQ2ODEySEppS1lhTlBrdjlUL1gwdjg3
MDBBcGtTZ2FXTVFEUU5RQWREaG9STDRmQW5BQi94aFFnSHEwU2tSME9RZEI3ZXZkTGVwQU1rdXRw
ZnRlczh5VlpiMCtUNzQ4OTNldDBybE53cmJGeHJQUkRTQnY3QjlJZXhadHlRODZDTW9BSWtFSWhz
cjdhRjNUNmYxMTFhMURLakRQclVFSUFXK1lOSlJZT1dEUkJqNC8vRTdwL2VIQ1hadW9JVUk4TDFT
OTE4dC9mK3hFWUJQR0lBNUFFd1FJamdSYkhTYThHeFVBVXpHWTNnYitLblpBT3FyQWpnSjhIc2tC
cGQ5K2R5aWdHRWZCaEpCWWZ0Q2tRUUsyeGZXQm5vSi9KNEVFTWFXTFNxMzkvTEVYMnJ0UWNqbGNu
RC8wSG9GOEkzUDl3YmsvOVJBUnpEK0QwRUFpalNvOUtja1FBNFFEUnowWWRwd3hHWVFvUGZuMlgv
WC92K1ptWmxRNEk5RUFNVmlOUkY0OXV5bnpuTGdqVjByQW9ORHBMTUQrUFRncFBvQVhDUVFaOWZl
L1VQclE2c0FEbndmSXZqeXVVVWlBWHpkdVFRdXRqY3A4SnU4dnBiaHB6SmVBcjB2OEJNQVB3STl0
ZTYxQUNrODNYRlVBLy9VUUlkS0ZLYldIb1JVcWw5NWY2VUFQRGYxcUJDQU51OEk0Qzk5ZFVJOExG
UjVmMkdqa1lrUTZQdlM2WFFzOC85cUpnQXBEMkFNQTlxYnlvTS9Cem9DK1FFSi9MZjNyUW8xSkRS
dUJZQS9rODJiUjQzUHd4S0FCSDRFdVM4SllDeFB3UytSZ0pibzR3QzJ4ZmdtMENmdCtSV2dkV0tZ
R3VoUXV5QlJOcHU4UDVmL05pTGdoMzlXSi9ZTUJVa0FXNENsWHYrSk5uR2prV2tHQWU0UVJQa2Za
L3R2YUFJQU1IY0VqbytQVzhNQUpJQ0xUeTFRWmp0RFlMWnpBQ1lsRUVjeURoK2psNDFLQURZRllQ
TCtGUHhjQVJpOXZrUUFIUEF1OE1mdDlVbWNyMlgwMTcybStnRm9WaC9iay9zeW05VFhyV29aMENi
LzBQcS9UNGRmWUdJUHpmcXpCS0IwWmlCdE5ESWRHcW9SQUprTy9FcDZiZXp0djVFSXdKWUg2TXRz
TW9ZQjUvdGJBd1NBZFhWcVlVYUUrVllCa2lJQjMrdzd2ZnFHQXE0Y2dFUUVKaEtRY2dDQlRqNEc0
SlZ0Mjl5bHZka0VQa3YwOGJJZTd1aEQ0T045T3AyR1ZLcGZrUUJWQnlqL2VVZWZSQUNsNDBUT20r
Sis3QURrd0NmU1A3Qy93RUFDZEwvQXJjRjJsZjMzT1FFNHJQZVBUQURGb3Q0UU5EbzZLbzRMdjlq
ZUJOTnZyZEhBZi9HcEJZR1RoT2daQXI1NWdDUVZnSWtFd3JiYzFoSUsrTWIvUGptQTZ6M0xndGw5
RzVqbktNSG5Rd0E4cTQ4bFAwb0NwZU9Wa1dUclhvTlVxajlROStkbFBSc0phRUMyZ0YvRi80d0VU
QjJHeGxPRXlXZGc4aThwK1IrSkFLUThBSVlCRWdsTURYUW8wRk1DdUxtaldRMFFRZkQ3cW9EWlVB
QzBKQmlHQ0Z3RUVUWDU1MG9DU2lIQW5uVkxORy9mMHZLTUVmUXIyN2JOdmN3UFFRQlBkeHlGcVlF
T0RmUklBdWY3Vzh2ZWY5MXJzUEg1WHQzelcycjZvcWt0dTRhNG44VC9BYzhmOXNEUWllcVU0RHVu
eW1QVmpPVS9RZjRuU2dDVUJQaStnUEh4Y2NqbGNzYW1JQVEvdmFJSzhEbEhZTFp5QUFoNm14cXdl
WGlmZTkvU1lCZ0ZRTU1Hc1h2UEFXb0YvdWFYNnhQOG1QMG5uaCs3L1NUdnI4YVRyM3N0a1Bpajh0
L0hZQ3hkOXU0MjhNTVFQRHpURy9UK1lVOEtJbE9DUnpKZGtNMW1BKzIvVXZkZmxQSmZ6UVJRTEU1
cmVRQlRNbEFDUDE1Tlp3bjRoQUZKVkFFa0lzQitBS2tLSUhsK256RGg3b0hWc0dmZEVqalgycVN1
WVd6UHVpV3daOTBTZDZ1dXc2TWo4T2tRam5vR1BtL2w1YWJGLzgwdncwaW1xOXJ4RndIOHBlTmQx
VDMrVXRLUEVJSW8vUkg0L0NyWmhNWDdKeVQvWXlFQVdnMHdKUU81NTZjbUVZQXJESENCUDRsUUlF
eFk0RklIbEFRMnIya3lXbXBoUzdoK2ZNL1luUUovMmFMTjVjZk5MOWNYK0FYcGo1MThFdmlwTFZ1
MFdlMEdESUMvRWdKUU1wQ0lvVHFuYjBnM0FmeWxyMDRFaDN3Z0FaaElnSk9CNFAzRFpQOW5oUUFB
cXVWQXFSb3dkQ3d2SndPZldxQ3kwRktXT25DYTBFQ0hkWXhZMGdyQUJueEpEYmlVZ0UwVmpHUzYv
SGZiMWRDWW8zbjd4WjNWWmhvOG5LTWV3WjlLYTgwOE52RFQrSDlsMnphdEtZakgvNXdNSkVLQWli
WWcrRzN5bi9ZTFVQQnpFcENJWUtKTmhSRFUrNHV6LzJMSy91TUtUUUFtRllBLzRDdnB0U0lCU09E
SFpCWG1BdWhBMFJ1N1ZvZ2tNQmM1QUFRK0p3RWZNckRsRE5CdTdtaXVrb0F0QzIrUzlZNjRYY1g0
cVRTc2JOdW1lMzA2bzcvZXdJOEtvTkxGNS9MOHVBR0k3Z2ZnQ29BVEFZeWx0ZGVxWTdyb2VYd1dF
c0QyWDlMdzQyMUlBRGJ2bjZEOEI0aUJBSGcxNFBEaHc2SUtNQkhBMTUxTDFPWWhUZ0xZTXpEYlZR
QUtibHRlZ0Y0cEVkakFiaUtLMi90VzZlTzBUS0QycmN0ekFGZEF6b0d2ZXVyckVmek5MenZCenhP
QTUvdGJaZkJqOHc4Q25vY0Z0TjFYT3BURHBBQ3U3cXdtQUQwNkM0MzdESWozbDVKL1NjaC9nQWdF
QUdDdkJveVBqOE9lZFV2RVhBQU5BMmlYMnNXbkZxaFFnQklBYmlUaVNvQ0NOZWtjZ09UOXc1Q0Fi
NDhBRFFsQ2dkd0hzSWF6K3ZqNzZXRE8rakIvenkrQjNVWUVKbUt3bnN3amtJQUovTjVrUU5UREsr
bTF5dnZUMm4rY3ZmOTgxVXdBeGFMZUZHUXJDZkpkYWZUeHhhY1d3STFkSzlRMllxb0NNRmZnU3dC
eEE5K1dEekNSQUQ0T1d4MjRlNkE4ZENTZHJ0MHJhNE0yS1BEeDFONTFyMVVOazIzMVFnQ0xPNkV2
c3lrMCtHc2hBOU9CSExad2dDYitwT1lpS3drUThJZjEvblZCQU5MZUFPd01sRXFDRjU5YW9EclRL
QW5nMEpDTFR5MkFxYjFMRlFsTURYVEE5RnRyMUh0ZEtpQU9JdUI1QUp2ME55a0JTUkc0cWdQOHVa
bFhsNWZWZ0FmdytXaHNEbnlOQURqb0tmaXBtWTcybmlYd2oyVDhnRzhEZlR6Z3R4QUFOditZZWdn
bUhIc05TT09ReS92WE92bkh0Q0lSQUlCOWI4RDQrRGhrczFsckxvQ1NBTjdqNjN5ME9DMGpZazVB
QW0vY0tzQ25FdUFDUDFVQ3ZnbERVUTBZUExzVDhCcDQrNFBneDM3NXNKWVVHU3p1VkhGOEhKN2Zo
d1NNcC9FNFNJQjIvTGxJSUtBR2lQZS9uTitxWmY1TjNyOVFLS2pHbjdvaWdHSXgyQk5nVWdFNElS
aEpBQW1nc0gyaElndytXQlRiaWZsUUVaUEZyUUo0NWo5TUNPQXpWOERWTDNEM3dHbzQzOTlxQkxv
UjhCTDRLMWwxbytjUFkyeGZmaTIyYk5GbWFHbDVKdERlRzRVSWFnZS9Cd2xVdkQ4MzMrNUN1dU52
ODVvbUwrOWZMRTdIbHZ6REZaa0FBT3c5QWFPam8wWVZjUEdwQlZEWXZsQUhmMlg3cW1tNjhJMWRL
N1M5QkhGN2Uxc09nSUpmVWdKaFZJQ05ERnpWZzl2N1ZrRmZacE1iOEtuK1NsalFYd1UvSGFaQmht
U0k5elpEOGxDZlhadTNSK3ZMYklMN2g5WkhBbjhVRWlobisxOEU2M2w4anBONnRaNy9NR1JBbW9a
R01sM0srOXRpLzdpVGY3aHFJZ0JYTW5CMGROUllFYUFLZ0JwVkFad0VzR0tBWVVTU0JDQ3BBWnZr
ZDVHQVN3V0VJWU9wZ1k1eXlkRGs2Zm1WUy8yNWt2MUM5V0xab3MyaEpIK1lNTURrK2VYRE9NTVJn
UXY4SmpLZzN2L1I4RVpvYVhsR1NYL2YyTC91Q01BMEtBUXJBcElLd0ZEZ1ludVRSZ0IwaUNqUENV
d05kR2o1Z0s4N2x5UUtlRnZHUDZ6bnIzWEVtSWtJTmo3ZkszdjdWTDkrYndJK2Y4NUZGQmh5UkFD
N2VwNGsrbXIxK2o3eGYzVHd5eVR3OEV5dnZQUFBod2pJbG1TYStIUEYvc1ZpL040Zm9FWUNBS2hO
QmRCUWdCb21CQ1VTdUxGcmhkWklsRVFvSUhVRSttYisrVFZzUGlBcUVaUlA0MlhnNTJZRHVPdmVk
cVVoQVcwczR0ZksvU3ZwdFRBMTBCRWIrSDJ6L1REUnBnN2hkSjdHYXlJQnR1MlhtdFlSYUFFL2p2
cWlpYis1OFA0QU1SSkFWQldBbFFCdUVsbGdid0RPdThNd0l1a2NBSS8vcVlmM1VRSVM2T002SW96
YlNLWXlEZGRFQWk0aThGRUNQZ1FodEJmSERmeFFzbitpallCZVBvSFhTd2xjM2FubEVYeUpnRDcv
NEdTM2x2aVRldjZUcXZ2elZUTUJBTGhMZ2tORHA4VTlBcHdFcHZZdVZWZXVBbkRDRURZTDBhN0NK
Qk9DcG9wQTFOaC9OczRHeE5IbWZabE5zS3Bsd0U0QVliMjk3N1Z5djJ6Ulp1akxiRkxaL1NUQTd5
SUJQSVpMTzNIWFN3VUVTY0FHZkY5U2VDVzlWbzM2Y3ZYOEorbjlBUklnQUU0Q3lHaUhEeDgybGdX
eDNiZXdmU0g4NVkwbGlnUzRhcUJkZ1pnUHdDR1hTZVlBK0wxUDNPL1RCeEEzRVVpSGYyS0kwSmZa
cENzREEyRGp1SzVxR1lDTnovZkM1ZnhXdUh0Z3RSVzBjV2IrQXlUd1FYa09Qejl4TnpJSkNIRjht
TWRZODI5cGVhWXV2RDlBVEFRQTRGWUJvNk9qa0U2bmphRUFKZ1VSL0tnR2JKdUs4SkNMdUZWQVZL
OXZ5d01rb1FKY0pHQzZqbVM2ZEVMd0lRUGJmYW9mTmo3ZkMzMlpUVERjdDBXQkdvbUlBejNwRUtC
MHZJdEkvdUNKdTV3TXZLeFM5cXZGWUN3ZGtQNm0wMzZTVFB6UmxRZ0JGSXR5TG1Eb1dONllFS1JL
QUFsZ2F1L1NRRlVBWnd2UXZRU29IcExLQVpoeUFsR1ZRRndrRUdVNnNXUlRBeDF3dnI4VitqS2JW
QTdCWmlPWkx0aWRQUUkzZHpURDVmeldBTWhOMTdDZVB5eFJxT1llVGZMYndlK1hGK2pYZHcxRzhQ
eFUrdlB0dmtuditMT3QyQWdBd0U4RjJCS0NOTmFmMnJzVS92TEdFakVmUUJVQTdpMHdoUUkvWnN0
YmlzTVN3SS9aQlFxNHBnN0FzQ1NRVkJnUXh2dmJpTURIVEo3ZEYveGhnRzhqRUpQM3ArZnNTY2R0
QjQvajlsQUNOWGgvR0NzZkJ6NDEwS0ZKZjJQVHp5eDZmNEFFQ2FCWU5Lc0FXMEtRZ3Z3dmJ5eUI4
LzJ0Z1h3QWJoK21ld2t3SEpCQ0Fmd2FlanF4ci95WFpnUDRoZ1MyTUNBSitSOEYvQzVDNElDL2Uy
QjFhQkt3Z1orSEJ0TDM5dkgrTU5HbUhhM2xJZ0h1K1cwNUFTU1pxSjcvenFsdUJYN2M3V2NxKzAx
T1RtckRQaDhyQWdBd3p3cmdLc0NXRUtSQVJ5WEE4d0hZUU9STEFtRkRCUmZnYmVHQVZPK2ZqUnhB
bEdzWXp4OEYvRDQ1QUYrVllmTCtkNitsUlBDYlNJQStMMVVITkRQVS9IMnovdGp3ZzF0OWFleHZx
dmtYaTdQai9RRVNKZ0JUUldCbzZMUXpJY2lUZ3hJSm9Pem5MY1ZTaCtDTlhTdTBNL0Y4aU1BRS9I
ck9BZmhlRWRDKzNsOENkTlF3Z0w3ZjlqTzRQZ01tMm5Ud0cwakFwZ0pNU2dEZ1JZQnZWa2YyL1BS
c1A1NzF0eVgra2k3NzhSVTdBUUQ0ZFFjT0RaMkd6V3ZjS2tEdEMyaHZncis4c1VUTEIyQW93SnVJ
RU9nOHBrZncwMTJJVWxqZ0MzeFhMcUNlY3dCaGxJQUUrTENlbnIvWDlIUDdoZ0YzcjZYSzRQOTdV
eVFTQ0Q0ZkpJRmFNLzYzQnR0bDhGczYvb3JGNUJOL2RDVktBS2FCSWFnQ1hMMEJwdFpoU2dLbVRr
SWtCeDhTS0d4ZmFNMFAyRUlBNlRXVDUwOEsvR0dVZ0kvbmw2Uy9qM2QyRVlTTnNIeFVRT2w0Ri96
MWJCbnNDSG9LL3J2WEt1QkdBdkRJQjFTQnI1TUF6L3FIVlFKM1RwVzcvV2pXdjE0U2YzUWxRZ0FB
YmhXQUpKREpaTHhEQVNyOTZYdHM3Y1M4QWtCQno2OW9ObkJMU1VGWExtQzJWRUFTbmg5Skk0emNw
Ky9CZnk4YVByNS9hTDI2K3FpQW1YZFhLcS9QalJOQm1IeEFVQTI4cUE3cGlCcnpZOGxQaXZ0dE5m
OWljWGE5UDhBc0VBQ3FnR0pSUDBrSUpkRFFzVHkwdER3VGlnQnNuWVMwbWVoaWU1TklBaWJnOHcx
SnFDQk1NYjhwWVdpYUZzUnRMc09Cc0VyQUZoWklrbDRpeHBzN21yVi91eS80ZllDUDRVQ0FBRHh6
QXNyN2s3amZGL0RjYU55dnpmZ2o3YjU4eG4reE9QdmVIeUJCQWdDUXk0S1RrNU1CRlhENDhHRm5n
NUJ2c3BEdUthRHpCWkFFZnN3dVVHY09tTUJQdHlYamFISlhPT0FLQmVoOWtzQ1BxZ2g4QVcrSzQ5
SHdkNFZId0NQbzhTb3BBUk5CL2ZWc0dlaDQ5U1lDaXhMUU0vOU1DYkRUZWFNb0FLejNvL1FmZU9N
ZDgxWmZnL1IvNGdoQUN3V3VYUW1HQXNmeWtNMW1RK1VEYkNSZzZpU2tPUUUra2Noa05NeHdsUXRO
K3dYbUF2d3VRZ2liQTNBWmdwNWY3eDRvenpYRUs2b0QwODgxOCs1SytPdlpsRGY0QXlRZ0pRVTlT
NE5Sd0UvZmcvVitHdmNiZS8xWjFoOFArTHgzNzE2U2tBeXNSQWtBd0crQ01GWUZ3cFFHWFlsQ1Nn
STBhWWdrOEdOV25rVmdJd0dxQmx6QXgrY2xOVENYSkpDRTNkelJERGQzTk1PTlhTdWNDZ0RKZ0Nz
QUNud1RBWVJSQXFKWlNNQ1U5QXRqbTljMHlYRy9JK3MvRjlJZlYrSUVBT0FlSUVwRGdjMXJtbW9t
QWFvRXNKMllKdzJ4UmRnRWVocEcwRkFDazVDMlNnRW5CQW4wVHdJSklOQ3BJUWtnK0dkZVhhNUFq
eVF3OCtweW1Ccm9NQUtmZzk5SEJTRDRuVGtCaVFRbXdpZjl1R0hTajBwL1c2Ly9YRXQvWExOS0FM
WU9RVTRDdFJJQTdSMFFPd2tyM3R3VkFrajVCS29tZkpSQUVxVkFVd3crVjhEbkJNRERBQXArUEFG
YUFuNnRaR0FOQlNRVk1GRWIrSEd3WjlpNGY3WWJma3hyVmdnQXdONGh5S3NDdVZ3dWxxUWd6ZzlB
RXVBN0N4SEVmRFFaSFV6Q241TTJKcG1TaEx4NmdQMEgrUFZ6N2NHakFoLy9EWGpsaGw5SFBUOG0v
NmpITjNuL1dwU0FzenBBS2dNdzBhYjErVWV4OC8ydGtGcllFb2o3cFpMZlhEYjhtTmFzRVFDQWZ5
Z3dOSFFhK2pLYllpR0J6eFpVOXczd1RrSktGQ2p0VFNUZ21sWkVpVUNhS1loMmMwZXpTQ0tVSENo
NDZzR3dha0xOUmdDVUNEQU0rOHNiUytDdloxT0JxdzhKMUJJU21KU0FiN25QWmp6akw0Ry9IdU4r
dXVhRUFIeERnVXdtRTB0bGdDY0hiVGtHcWdaY0pHQTY4MERhZmt5VmdZa0lYRC8vYkNvSGxQTFlW
azMzVWRoSTRNYXVGUnJvT2ZobjNsMFpBUCtza1VERis5Kzlsb0lISjd0akE3ODAzc3VuNURmdkNB
REFyMDBZcXdJRGI3d0Q2WFE2VmhMNDhybEZNTFYzcWZOcitaeENPcXFNVGl5eWtjblhuVXNDTGNa
Y0hlQW1wYkQvRmxRTmNaRUNCVHcxSC9EejN3c0hQeG9GZnhRU0NGc1ZrRWlBeHZ4UjVUK1crekRw
eHlmNzJzQmZMTmFIOU1jMTZ3UUFZSjhid1BNQlNBSnhWQVlvRVdEczcvcGFuRkJFU1FBckMxS1ow
ZmI5cEczS1ZCa2cyS0wrdStqUjZ4eXdITGdJY1B6WjZYSHRrbEVpa0JRU0JiK05CR3BWQXJXVUJt
R2lEZTRmV2g4QWRCZ2l3QjUvTFBlNSt2enJNZTZuYTA0SndHZXZBSkpBUzhzenNaSUFBdFAzNi9n
Zk92K2pseEtNcHMvNnVuTkpJRXpneWdDOXNjL1BLQTFQcFZlK2VZcXFJVTRjbkFUb3hpbGJsUVIv
RitmN1c0M2dqeU1YRUtWSjZPNjFjcDJmQWoySzl6ZUIzemZwTjljbFAybk5DUUVBbUVNQkV3bmtj
cmxFU0NBc1laZzgzdm4rVm5WK1lkalBSTERaVGo1R0lOclVCZ2MrdmRxQVR3MUpBQ3NlUHQyU25B
UndrbE5VRWdqVEcrQkRCbkdEMzVYeFJ3TEExdmRpc2I3aWZycm1qQUFBL1BJQk5DbVlsQklJVFFU
dFRhckhRSks5dGNoNERtWk1OdUpuVXZEaStZbStuNFZmanlSQXoxbEV3ME5hT1FtWWRseWk4UnlK
S3hSdzVRVGlVZ0owWmlBSHZ5OFJPTUhQTnZuVWU5eFAxNXdUZ0NzZlFKT0NodzhmaGx3dUYxdTNZ
QndneGFRaVZRSUloakJaL3RuNFdUbXBTQ1JBd3dBZkVwQjZKVnhLQUlFdjVRSHdjUlR3MDN0YTQ1
ZkE3MHNDdFlDL1hwcDliR3RPQ1FCQXpnZElZOFNRQk9vbEhKQUFSdHVQNDFRRGNaT0FTd1Y4M2Js
RVRWdjJEUWRzMVpLb0tzQVZDcGlJZ0VwKzE3Vlc4UHRzOHFsWDhBUFVBUUVBV1BvREpCSTRsbGRL
SU00U1laeEdqejVYZXhIYTYrUG45RlVDVVhNQ2xBZ2taZVJiRWZCUkFwUUk4RjRhR3NyQm5oVDRI
NGVrSDE5MVFRQUEvazFDbEFRd0oxQ1BKS0FBVnpuRTFMU2ZZTGJCYnlNQkNmaW1NTUNsQk9qVnR6
UklTY0MzTkVoSndEWTVPRXdPQUp0OEpQQzdhdjMxbnZUanEyNElBTUM4WDBDc0RGUWFoYkJQSUs2
MjRhUnRydk1Dcm9TZ2xCTXdKUVo5d3dFRXQ2dE0rTmV6S1pqYXV6UzBFckNkRnhBMkJ6QTEwQUdw
aFMxR3orOVQ2NmZnci9kVmR3UmdTZ3FheW9NMEhIaGNTS0FlakJJQUVsT1lNQUJ6Qkw2bFFkOWNn
RlFtdENrQjEraHczekRnd2NsdWJXTlBIT0N2WjgrUHE2NElBQ0FjQ2ZDY1FDYVRxWnNLd2VOZ3Zr
bEJTZ0kwTVJnbUZEQ1ZUSDE3QTdnU3NFME9qcUlFUmpKZFR2RHpiRDhGLytPUThaZFczUkVBZ0ww
eXdNOFhRQkxBNmtBbWs2bTdDa0U5bXk4SjBEQ2cxc3FBanhLUXFnTklDRDRqeW4zQS8rQmtONVNP
ZDhFcjZiWGF4cDR3bnI4ZU4vaUVXWFZKQUFEdThxQXRNWmpOWnVzK09WZ3ZaaU1BYkVDaVJJQUtJ
SW9Tb0lRUVJRbmNQZUIzaXBCTkJWQVN1RFhZRHB2WE5GbkJiOHYyUHc2TlBxNVZ0d1FBNEs4RXBH
WWhUQTQyUW9Kd1JQRFpBbnMrQUdOL21nTnc1UU5xeVFuTXZMdFNUVkZ5RFRWMWtRQUZQNDd1cHNr
K24yei9rd1IrZ0RvbkFJRGFTYUFSRXZpQm41S0FLeCtBQ2dDQmovZSs0RWNWNE5vdmdPQ25oNGlZ
U0NCTU1oQWx2d244ODhIejQ2cDdBZ0NJVGdKSUJOZzUyS2dTdUluQVZ3bElST0RiSk9UYVBzeFBF
a0tyVlFGTURYU0lrbisrZ2gvZ01TRUFnR2drZ0Z1SjhUODNuVTQzMUVBSUV2Q3BEUEJqMm0xS3dK
UVFQTi9mQ2xON2w4THRmYXZVS0RRRVAwNFBycFVFY0hBbmVuMEtmdndid1R5U0xkdGZMRDYrQ1Q5
cFBUWUVBT0JIQXFaZUFVb0VxQVlhUkJBRXZ5OEptQnFFZkpVQVZRUDBIQUZwaFBqZEE2dGgrcTAx
a1FqZy9xSDFBY2t2Z2QrMHBaZUR2MWg4TWp3L3JzZUtBQURDa3dEUEMzQTEwS2dVeUVUQXljQVdC
bEFsd0tzRE5oSzRzV3VGR2tWR3B3ZmYzTkdzVGhCQzRQdW9BSjRIb0lrK09zVERWT2F6N2VvckZw
OHN6NC9yc1NNQVhKUUVwQTFFcHBDQUUwRkx5ek93ZVUxVGd3Z3NKRUJuRC9pUWdLMC93SGFXQUpJ
QVAweDA1dFhsV2lMUXBRUm9yQzk1ZlNuZW40L2dCM2lNQ1lCM0RMcDZCYVQyWVpSL1dDbUk0MENT
SjhuQ2JCOTJrWURQR1FMbytXL3NXcUZ5QVBnY2doL0p3QVIrN09pandKYzI5RmlUZmZNRS9BQ1BN
UUVBVkVtZ1ZDcUpKT0FLQ1V4aFFTTS9FSTRFTUJlQTFRQStsTlIxaGdBbEFYNnVJQklDSmdaTnB3
bWozUGZ4K2lqNTV6djRBUjV6QWdEUWxVRFl2SUNrQnJMWmJJTUlHQUY4dGlBWUJraEpRVDVJTkF3
SjBMTUU2YUdpNlBHNUVzRHIrZjVXMkx5bUtlRDFwY1llbStUSEdYN1NNSThuRmZ3QVR3QUI0T0lr
UVBNQ2s1T1Q1cENBcUFGYUtXZ1FRWkFFdUJMZ3dMZWRJeENHQkdnK0FNSFBTNE0zZHEwUTQveTR2
UDdqTU13amp2WEVFQUNBVEFMRm9xNEdKcjc0MXFvR09BbFFJcGpQYmNWMG1qQ2ZHMmc2UnlBTUFi
Z1NnUWora1V5WE4vRFI2MXRMZkE3Si95U0RIK0FKSXdBQWo1REFrQ0RrdVFGS0JKZ294R1JoYW1F
TG5HdDk4c21BVndJUS9QallSQUJoVlFDQ241NHN6SThYOXdFK3IrdlRvWjJtK3Y1OGl2ZWw5Y1FS
QUM0Zk5TRGxCdWpPUWlrL2tNMW1GUkZRVmZBa2tJR3BGWmdTQUVwL3JnUmNLZ0NCYndzQnNDOEFF
NEZUQXgyd1o5MFNNYm5IZ1UvSjJoWHIyeVQvZkFJL3dCTk1BQUFlSk9CS0Vsb1VBUklCaGdlUGM2
NkFOLzV3d0V0WFZ4akFWUUFlZk9LVEMwQnZqNGs5Ri9DMWJyNEs4R21zYi9QNnhlTDB2Skw4ZkQz
UkJBQWdod1ErYWtES0QvQ3lJVmNGNlhRYVVndGJJTFd3UlpGQnZSTUNCNzVFQ2lidzA4YytLc0FF
L3VzOXkyQWswd1Y3MWkyQjFNSVd6ZHRMbVgxYm5HOEVQdlA2eGVMOGkvZWw5Y1FUQUM1S0FxYmNn
Sk1JSElvQWlZQXFnOVRDRnRWcFdLOWt3RW1BQTk5MEx6VUNoY2tGN0ZtM1JIbDYyckpyOHZhU3gz
ZkpmWmZYbjIrU242OTVRd0FBbm1vZ2dpS1FLZ2Y0eDh1VkFRMFY2b2tRcEpIaEVobEl5VUNmaXNE
RjlpWk4ydHM4dmMzYlMxS2ZBci9oOWNPdGVVVUF1RXlWZ21JeHZDS0lRZ2FvREdpNGdBcGhya2hC
Q2dWOEZRQ2ZEM0N1dGF4NFVOSkxnSmZNNXUxNUk0OFA4RTBaL3ZudTllbWFsd1FBRUNTQnFFUWdx
UUw2Ujh2SndCWXFjRktZTFdLUXdNODlQKzBEUUxCVG9GUFA3Z3Q0V3liZkpQT2pBTC9oOWMxcjNo
SUFMaHNSNExobmlRam9aR0tYS3VCazRDSUVFeWx3Y2tDQ1FMdllYaVVMdkhjQlB6QUl0TDFKKzB6
OFBoTEFKYkNIQWJ3azd5bm9lWHdmQnZqRllzUHIrNng1VHdDNGJQbUJZdEdzQ0t5cXdFTVpJQm1Z
UWdhUkdCWjNXZ2tpQ2NOU3B5L1FUV0NYUU04bjh1RHZqWUllcjFweUx3VHdHK0NYVjRNQTJBcERC
Qk5mZkJzSUR5NWR1cVQ5MFpySUlBd2hjS1hBeVlFVEJPMU40SWJrWVRMOEhCK0FtNER1QTNhdGZG
YzUxNEY2ZXBPM2R3Ry9JZmZEclFZQkdKWVBFZmlxQWhzWjJKS0lZWWpCUkJLY0xFeVBiVmVUY1pD
YndDN0tlaGJUYzA4dmdyN2g4V05mRFFKd0xGT093SmducU93MW9JTktlWmVobEVDVUZBTHZOekFw
QmhOSlVMS1FpSU0vWjNxLzlIMGtqODQ5T3lVNDdkOUpFbmsyVHk5NSt3Ync0MTBOQXZCY0xpSW9G
bVZWd0pXQlRSMUlLa0ZTQ2tnTU50VmdlODduTlpNU3dlL0xnUjd3N0I0ZW5wS2pDZlF1bWQ4QWZt
MnJRUUFobDBRRVBtVFJwc3Q1QUFBQnIwbEVRVlNBTXdta1VFRktKSEppVUtSQXdDVVJnODBrMEVy
UFNSNGN2YmhXa2lOeHV4Uy8rNEQ5MHFWTEtwZkNRZDhBZnZLclFRQTFMSnNxc0NvRE1wdkFSeUZ3
VXBESUlVQVNMTFNnaXNMNEd2UGMxSU56Z0p0QTd1UGRUVjdlQi9RTjRNZTdHZ1FRdzZLekNYM0pJ
RUFJUXY1QUlvWXdCR0VpREJlUVRaL2hDL0lBMEZrQ3orVGxpOFVHNkdkN05RZ2c1dVZEQm1FSXdh
WVVUTWFCeWNFcUVZbjBtdlNaSnBCTG1YcVhoeThXcDdYZmlRbjBEZUFudHhvRWtPQXlrWUdORUlw
RkQxSXdrQU1saVRDRUlZR2EzcXNZM1FKd0NlZ2M3TVdpR2ZENE8ycUFmblpYZ3dCbWFYRXljQ2tF
VGdyRjRuUUFYSk9UazA1QXhtM1N6OEIvem1KeE92QnY0UVRZOFBMMXNSb0VNRWZMaHhCTVNrRWlC
elFFcEFUVXNFWS9qeHY5V1h6QjNnQjgvYTBHQWRUUm91Q1F3Z1lmZ3JBUmhzL1ZaZlI3K3dLOUFm
ajZYUTBDcVBNbEFVbFNER0dNQTlnSDBCTEFHMEIvL0ZlREFCN2pKWUhQUkJRY3NDNFEyNnl4bnB6
VklJREdhcXg1dkJvRTBGaU5OWTlYZ3dBYXE3SG04V29RUUdNMTFqeGVEUUpvck1hYXg2dEJBSTNW
V1BONE5RaWdzUnBySHE4R0FUUldZODNqOWY4Qlh3MjZ6eGcvVTBnQUFBQUFTVVZPUks1Q1lJST0i
IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL3BlcmZvcm1hbmNlL2pzR0NQYXVzZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9wZXJmb3JtYW5jZS9qc0dDUGF1
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZmYwY2YzYmUwMTQwNzYxMmNkNWU2ZDAxNTliMjIyNzkzNmVk
MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9wZXJmb3JtYW5jZS9qc0dDUGF1c2UuaHRtbApA
QCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAi
TWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQK
KyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFs
cy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIg
Lz4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNy
Yz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2
YXNjcmlwdCI+CisKK1Rlc3RzLmF1dG9ydW4gPSBmYWxzZTsKKworVGVzdHMudGVzdEludGVydmFs
ID0gZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R0TWF4JykudGV4
dENvbnRlbnQgPSAiUnVubmluZywgcGxlYXNlIHdhaXQuLi4iOworICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHZhciB0MCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgICAg
ICB2YXIgdCA9IHQwOworICAgICAgICB2YXIgZHRNYXggPSAwOworICAgICAgICB2YXIgZnJhbWVz
ID0gW107CisgICAgICAgIHZhciBpdjsKKyAgICAgICAgaXYgPSBzZXRJbnRlcnZhbChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh0ID4gdDAgKyAxMDAwMCkgeworICAgICAgICAgICAgICAg
IHZhciBoaXN0ID0gW107CisgICAgICAgICAgICAgICAgdmFyIGR0TWVkID0gMCwgbWF4aSA9IFsw
LCAwXTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpPTA7IGk8ZHRNYXg7IGkrKykgaGlzdFtp
XSA9IDA7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaT0wOyBpPGZyYW1lcy5sZW5ndGg7IGkr
KykKKyAgICAgICAgICAgICAgICAgICAgaGlzdFtmcmFtZXNbaV1dKys7CisgICAgICAgICAgICAg
ICAgZm9yICh2YXIgaT0wOyBpPGhpc3QubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgICAg
IGlmIChoaXN0W2ldID4gbWF4aVsxXSkgbWF4aSA9IFtpLCBoaXN0W2ldXTsKKyAgICAgICAgICAg
ICAgICBkdE1lZCA9IG1heGlbMF07CisgICAgICAgICAgICAgICAgdmFyIGR0QXZnID0gZnJhbWVz
LnJlZHVjZShmdW5jdGlvbihzLGkpe3JldHVybiBzICsgaTt9KS9mcmFtZXMubGVuZ3RoOworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdE1heCcpLnRleHRDb250ZW50
ID0gIkxvbmdlc3QgZnJhbWU6ICIgKyBkdE1heCArICIgbXMuIEF2ZXJhZ2UgZnJhbWU6ICIgKyBN
YXRoLmZsb29yKGR0QXZnKjEwMCkqMC4wMSArICIgbXMuIE1lZGlhbiBmcmFtZTogIiArIGR0TWVk
ICsgIiBtcy4iOworICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaXYpOworICAgICAgICAg
ICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R0Q2FudmFzJyk7CisgICAg
ICAgICAgICAgICAgYy53aWR0aCA9IGZyYW1lcy5sZW5ndGg7CisgICAgICAgICAgICAgICAgYy5o
ZWlnaHQgPSBkdE1heDsKKyAgICAgICAgICAgICAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcy
ZCcpOworICAgICAgICAgICAgICAgIGZvciAodmFyIGk9MDsgaTxmcmFtZXMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICAgICAgICAgIGN0eC5maWxsUmVjdChpLDAsMSxmcmFtZXNbaV0pOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHQxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7Cisg
ICAgICAgICAgICBpZiAodDEtdCA+IGR0TWF4KSBkdE1heCA9IHQxLXQ7CisgICAgICAgICAgICBm
cmFtZXMucHVzaCh0MS10KTsKKyAgICAgICAgICAgIHQgPSB0MTsKKyAgICAgICAgICAgIHZhciBy
b3QgPSBNYXRyaXgucm90YXRlKCh0LzQwMCkgJSAoMipNYXRoLlBJKSwgWzAsIDErKHQlMTAwMCks
IDFdKTsKKyAgICAgICAgICAgIHZhciB0cmFucyA9IE1hdHJpeC50cmFuc2xhdGUzKDAsIE1hdGgu
Y29zKHQvMTAwMCkqMSwgTWF0aC5zaW4odC8xMDAwKSozKTsKKyAgICAgICAgICAgIGZvciAodmFy
IGk9MDsgaTwyMDA7IGkrKykKKyAgICAgICAgICAgICAgICB2YXIgbWF0ID0gTWF0cml4Lm11bDR4
NChyb3QsIHRyYW5zKTsKKyAgICAgICAgfSwgMTYpOworICAgIH0sIDApOworfQorCis8L3Njcmlw
dD4KKzxzdHlsZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48
Ym9keT4KKzxoMz4xMCBzZWNvbmRzIG9mIDYwZnBzIDIwMHggbXVsNHg0LCBmcmFtZSB0aW1lIHN0
YXRpc3RpY3M8L2gzPgorPHAgaWQ9ImR0TWF4Ij48L3A+Cis8Y2FudmFzIGlkPSJkdENhbnZhcyI+
PC9jYW52YXM+Cis8L2JvZHk+PC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3BlcmZvcm1hbmNl
L2pzTWF0cml4TXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9wZXJmb3JtYW5jZS9qc01hdHJpeE11bHQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MTBmZTRmZDM2ZTcyMzYyODMyYTVlMDU3OWY4ZDY4NmRiYjhlOTgyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9wZXJmb3JtYW5jZS9qc01hdHJpeE11bHQuaHRtbApAQCAtMCww
ICsxLDc3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisq
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoq
CisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4v
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlw
dCI+CisKK1Rlc3RzLmF1dG9ydW4gPSBmYWxzZTsKK1Rlc3RzLm1lc3NhZ2UgPSAiVGhpcyBtaWdo
dCB0YWtlIGEgc2Vjb25kIG9yIHR3byAob3IgdGVuKSI7CisKK1Rlc3RzLnRlc3RNYXRyaXhNdWx0
aXBseSA9IGZ1bmN0aW9uKCkgeworICAgIHRpbWUoInRlc3RNYXRyaXhNdWx0aXBseSIsIGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIgbWF0ID0gTWF0cml4LmlkZW50aXR5OworICAgICAgICBmb3Ig
KHZhciBpPTA7IGk8MTAwMDAwMDsgaSsrKQorICAgICAgICAgICAgTWF0cml4Lm11bDR4NChtYXQs
IG1hdCk7CisgICAgfSk7Cit9CitUZXN0cy50ZXN0VHJhbnNmb3JtU3RhY2sgPSBmdW5jdGlvbigp
IHsKKyAgICB0aW1lKCJ0ZXN0VHJhbnNmb3JtU3RhY2siLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
dmFyIGogPSAwOworICAgICAgICBmb3IgKHZhciBpPTA7IGk8MTAwMDsgaSsrKSB7CisgICAgICAg
ICAgICB2YXIgdCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgdmFyIHBtYXQg
PSBNYXRyaXgucGVyc3BlY3RpdmUoMzAsIDYwMC80MDAsIDEsIDEwMCsodCUxMDAwKSk7CisgICAg
ICAgICAgICB2YXIgbG9vayA9IE1hdHJpeC5sb29rQXQoWzQsLTEsOF0sIFstMC4yLDArKHQlMTAw
MCksMF0sIFswLDEsMF0pOworICAgICAgICAgICAgdmFyIHJvdCA9IE1hdHJpeC5yb3RhdGUoKHQv
NDAwKSAlICgyKk1hdGguUEkpLCBbMCwgMSsodCUxMDAwKSwgMV0pOworICAgICAgICAgICAgdmFy
IHRyYW5zID0gTWF0cml4LnRyYW5zbGF0ZTMoMCwgTWF0aC5jb3ModC8xMDAwKSoxLCBNYXRoLnNp
bih0LzEwMDApKjMpOworICAgICAgICAgICAgdmFyIHNjYSA9IE1hdHJpeC5zY2FsZTEoMC42Kyh0
JTEwMDApKTsKKyAgICAgICAgICAgIHZhciB2bWF0ID0gTWF0cml4LmlkZW50aXR5OworICAgICAg
ICAgICAgdm1hdCA9IE1hdHJpeC5tdWw0eDQodm1hdCwgcG1hdCk7CisgICAgICAgICAgICB2bWF0
ID0gTWF0cml4Lm11bDR4NCh2bWF0LCBsb29rKTsKKyAgICAgICAgICAgIHZtYXQgPSBNYXRyaXgu
bXVsNHg0KHZtYXQsIHRyYW5zKTsKKyAgICAgICAgICAgIHZtYXQgPSBNYXRyaXgubXVsNHg0KHZt
YXQsIHNjYSk7CisgICAgICAgICAgICB2bWF0ID0gTWF0cml4Lm11bDR4NCh2bWF0LCByb3QpOwor
ICAgICAgICAgICAgaiArPSB2bWF0Lmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBUZXN0cy5q
ID0gajsKKyAgICB9KTsKK30KKworCis8L3NjcmlwdD4KKzxzdHlsZT5jYW52YXN7IHBvc2l0aW9u
OmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKzxoMz4xMDAwMDAweCBKYXZhU2Ny
aXB0IE1hdHJpeC5tdWw0eDQ8L2gzPgorPHAgaWQ9InRlc3RNYXRyaXhNdWx0aXBseSI+PC9wPgor
PGgzPjEwMDB4IEphdmFTY3JpcHQgdHJhbnNmb3JtIHN0YWNrPC9oMz4KKzxwIGlkPSJ0ZXN0VHJh
bnNmb3JtU3RhY2siPjwvcD4KKzwvYm9keT48L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvcGVy
Zm9ybWFuY2UvanNUb0dMT3ZlcmhlYWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvcGVyZm9ybWFuY2UvanNUb0dMT3Zl
cmhlYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTU1ZWE3MzM3NzUyMDU0MDI3NzNhZDYyMDMyMjdjNjcx
ZDNiYTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9wZXJmb3JtYW5jZS9qc1RvR0xPdmVyaGVh
ZC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLwor
CistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3Vu
aXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0i
Li4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNj
cmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRp
b24veC1qYXZhc2NyaXB0Ij4KKworVGVzdHMuYXV0b3J1biA9IGZhbHNlOworVGVzdHMubWVzc2Fn
ZSA9ICJUaGlzIG1pZ2h0IHRha2UgYSBzZWNvbmQgb3IgdHdvIjsKKworVGVzdHMudGVzdEdMT3Zl
cmhlYWQgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ2wgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZ2wiKS5nZXRDb250ZXh0KEdMX0NPTlRFWFRfSUQpOworICAgIHZhciBmYWtlR2wgPSB7Z2V0
RXJyb3I6IGZ1bmN0aW9uKCl7wqByZXR1cm4gMDsgfX07CisgICAgdGltZSgidGVzdEdMT3Zlcmhl
YWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEwMDAwMDA7IGkrKykK
KyAgICAgICAgICAgIGdsLmdldEVycm9yKCk7CisgICAgfSk7CisgICAgdGltZSgidGVzdEpTT3Zl
cmhlYWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEwMDAwMDA7IGkr
KykKKyAgICAgICAgICAgIGZha2VHbC5nZXRFcnJvcigpOworICAgIH0pOworICAgIHRpbWUoInRl
c3RMb29wT3ZlcmhlYWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPDEw
MDAwMDA7KQorICAgICAgICAgICAgaSsrOworICAgIH0pOworfQorCis8L3NjcmlwdD4KKzxzdHls
ZT5jYW52YXN7IHBvc2l0aW9uOmFic29sdXRlOyB9PC9zdHlsZT4KKzwvaGVhZD48Ym9keT4KKzxj
YW52YXMgaWQ9ImdsIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgorPGgzPjEwMDAw
MDB4IGdsLmdldEVycm9yKCkgKG1lYXN1cmluZyBKUy0+R0wgY2FsbCBvdmVyaGVhZCk8L2gzPgor
PHAgaWQ9InRlc3RHTE92ZXJoZWFkIj48L3A+Cis8aDM+MTAwMDAwMHggZmFrZUdsLmdldEVycm9y
KCkgKG1lYXN1cmluZyBKUy0+SlMgY2FsbCBvdmVyaGVhZCk8L2gzPgorPHAgaWQ9InRlc3RKU092
ZXJoZWFkIj48L3A+Cis8aDM+MTAwMDAwMHggaSsrIChtZWFzdXJpbmcgbG9vcCBvdmVyaGVhZCk8
L2gzPgorPHAgaWQ9InRlc3RMb29wT3ZlcmhlYWQiPjwvcD4KKzwvYm9keT48L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvdW5pdC5jc3MgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3NzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NThi
NDNiZDlkZGYwYmYxYzAyYWY1YTVmNjE2OTRmZjgwZTUzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL3VuaXQuY3NzCkBAIC0wLDAgKzEsNjYgQEAKKy8qCitUZXN0cyBmb3IgdGhlIE9wZW5HTCBF
UyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAorCitDb3B5cmlnaHQgKEMpIDIwMDkgIElsbWFyaSBI
ZWlra2luZW4gPGlsbWFyaS5oZWlra2luZW5AZ21haWwuY29tPgorCitQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorb2J0YWluaW5nIGEg
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KK2ZpbGVz
ICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKK3Jlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLAor
Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZQorU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo
ZSBmb2xsb3dpbmcKK2NvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJF
IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBS
RVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMKK09GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVAorSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UiBMSUFCSUxJVFksCitXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcKK0ZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKK09USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K
KworKi8KKy5vayB7CisgIGNvbG9yOiBncmVlbjsKK30KKy5mYWlsIHsKKyAgY29sb3I6IHJlZDsK
K30KK2NhbnZhcyB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CisjdGVzdC1zdGF0dXMgeworICBmb250
LXNpemU6IGxhcmdlOworfQorCisjdGVzdC1sb2cgeworICBwYWRkaW5nLWxlZnQ6IDAuNWVtOwor
ICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTsKKyAgYmFja2dyb3VuZDogd2hpdGU7CisgIGNvbG9yOiBi
bGFjazsKK30KKyN0ZXN0LWxvZyA+IGRpdiB7CisgIHBhZGRpbmctYm90dG9tOiAwLjVlbTsKK30K
KyN0ZXN0LWxvZyBoMiB7CisgIGZvbnQtc2l6ZTogMWVtOworICBtYXJnaW4tYm90dG9tOiAwZW07
CisgIHBhZGRpbmctdG9wOiAwLjVlbTsKK30KKyN0ZXN0LWxvZyBoMyB7CisgIGZvbnQtc2l6ZTog
c21hbGw7CisgIG1hcmdpbi1sZWZ0OiAxLjVlbTsKKyAgbWFyZ2luLWJvdHRvbTogMGVtOworICBt
YXJnaW4tdG9wOiAwLjVlbTsKK30KKyN0ZXN0LWxvZyBwIHsKKyAgbWFyZ2luLWxlZnQ6IDRlbTsK
KyAgZm9udC1zaXplOiBzbWFsbDsKKyAgbWFyZ2luLXRvcDogMGVtOworICBtYXJnaW4tYm90dG9t
OiAwLjJlbTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qcyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jYTlmYWFjNWIyNDIzOGQ3YzI2NjExMTQ4MWRmM2FlYjJmZTVkODFjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS91bml0LmpzCkBAIC0wLDAgKzEsOTExIEBACisvKgorVW5pdCB0ZXN0
aW5nIGxpYnJhcnkgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhUTUwgQ2FudmFzIGNvbnRleHQKKyov
CisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioK
KyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAor
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLyogLS0gcGxhZm9ybSBzcGVjaWZpYyBjb2Rl
IC0tICovCisKKy8vIFdlYktpdAoraWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyID0gd2lu
ZG93LnRlc3RSdW5uZXI7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVu
YWJsZWQiLCAiMSIpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAvLyBUaGUgV2ViS2l0IHRl
c3Rpbmcgc3lzdGVtIGNvbXBhcmVzIGNvbnNvbGUgb3V0cHV0LgorICAvLyBCZWNhdXNlIHRoZSBv
dXRwdXQgb2YgdGhlIFdlYkdMIFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQKKyAgLy8gd2UgdHVybiBv
ZmYgY29uc29sZSBtZXNzYWdlcy4KKyAgd2luZG93LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7
IH07CisgIHdpbmRvdy5jb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisKKyAgLy8gUkFG
IGRvZXNuJ3Qgd29yayBpbiBMYXlvdXRUZXN0cy4gRGlzYWJsZSBpdCBzbyB0aGUgdGVzdHMgd2ls
bAorICAvLyB1c2Ugc2V0VGltZW91dCBpbnN0ZWFkLgorICB3aW5kb3cucmVxdWVzdEFuaW1hdGlv
bkZyYW1lID0gdW5kZWZpbmVkOworICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1l
ID0gdW5kZWZpbmVkOworfQorCitpZiAod2luZG93LmludGVybmFscykgeworICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7Cit9
CisKKy8qIC0tIGVuZCBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIC0tKi8KK1Rlc3RzID0geworICBh
dXRvcnVuIDogdHJ1ZSwKKyAgbWVzc2FnZSA6IG51bGwsCisgIGRlbGF5IDogMCwKKworICBzdGFy
dFVuaXQgOiBmdW5jdGlvbigpeyByZXR1cm4gW107IH0sCisgIHNldHVwIDogZnVuY3Rpb24oKSB7
IHJldHVybiBhcmd1bWVudHM7IH0sCisgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7fSwKKyAgZW5k
VW5pdCA6IGZ1bmN0aW9uKCkge30KK30KKwordmFyIF9fdGVzdFN1Y2Nlc3NfXyA9IHRydWU7Cit2
YXIgX190ZXN0RmFpbENvdW50X18gPSAwOwordmFyIF9fdGVzdExvZ19fOwordmFyIF9fYmFja2xv
Z19fID0gW107CisKK09iamVjdC50b1NvdXJjZSA9IGZ1bmN0aW9uKGEsIHNlZW4peworICBpZiAo
YSA9PSBudWxsKSByZXR1cm4gIm51bGwiOworICBpZiAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nKSBy
ZXR1cm4gYSA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgIGlmICh0eXBlb2YgYSA9PSAnc3RyaW5nJykg
cmV0dXJuICciJyArIGEucmVwbGFjZSgvIi9nLCAnXFwiJykgKyAnIic7CisgIGlmIChhIGluc3Rh
bmNlb2YgSFRNTEVsZW1lbnQpIHJldHVybiBhLnRvU3RyaW5nKCk7CisgIGlmIChhLndpZHRoICYm
IGEuaGVpZ2h0ICYmIGEuZGF0YSkgcmV0dXJuICJbSW1hZ2VEYXRhXSI7CisgIGlmIChhIGluc3Rh
bmNlb2YgQXJyYXkpIHsKKyAgICBpZiAoIXNlZW4pIHNlZW4gPSBbXTsKKyAgICB2YXIgaWR4ID0g
c2Vlbi5pbmRleE9mKGEpOworICAgIGlmIChpZHggIT0gLTEpIHJldHVybiAnIycrKGlkeCsxKSsn
Iyc7CisgICAgc2Vlbi51bnNoaWZ0KGEpOworICAgIHZhciBzcmNzID0gYS5tYXAoZnVuY3Rpb24o
byl7IHJldHVybiBPYmplY3QudG9Tb3VyY2UobyxzZWVuKSB9KTsKKyAgICB2YXIgcHJlZml4ID0g
Jyc7CisgICAgaWR4ID0gc2Vlbi5pbmRleE9mKGEpOworICAgIGlmIChpZHggIT0gLTEpIHByZWZp
eCA9ICcjJysoaWR4KzEpKyc9JzsKKyAgICByZXR1cm4gcHJlZml4ICsgJ1snICsgc3Jjcy5qb2lu
KCIsICIpICsgJ10nOworICB9CisgIGlmICh0eXBlb2YgYSA9PSAnb2JqZWN0JykgeworICAgIGlm
ICghc2Vlbikgc2VlbiA9IFtdOworICAgIHZhciBpZHggPSBzZWVuLmluZGV4T2YoYSk7CisgICAg
aWYgKGlkeCAhPSAtMSkgcmV0dXJuICcjJysoaWR4KzEpKycjJzsKKyAgICBzZWVuLnVuc2hpZnQo
YSk7CisgICAgdmFyIG1lbWJlcnMgPSBbXTsKKyAgICB2YXIgbmFtZTsKKyAgICB0cnkgeworICAg
ICAgZm9yICh2YXIgaSBpbiBhKSB7CisgICAgICAgIGlmIChpLnNlYXJjaCgvXlthLXpBLVowLTld
KyQvKSAhPSAtMSkKKyAgICAgICAgICBuYW1lID0gaTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
IG5hbWUgPSAnIicgKyBpLnJlcGxhY2UoLyIvZywgJ1xcIicpICsgJyInOworICAgICAgICB2YXIg
YWk7CisgICAgICAgIHRyeSB7IGFpID0gYVtpXTsgfQorICAgICAgICBjYXRjaChlKSB7IGFpID0g
J251bGwgLypFUlJPUl9BQ0NFU1NJTkcqLyc7IH0KKyAgICAgICAgdmFyIHMgPSBuYW1lICsgJzon
ICsgT2JqZWN0LnRvU291cmNlKGFpLCBzZWVuKTsKKyAgICAgICAgbWVtYmVycy5wdXNoKHMpOwor
ICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHt9CisgICAgdmFyIHByZWZpeCA9ICcnOworICAgIGlk
eCA9IHNlZW4uaW5kZXhPZihhKTsKKyAgICBpZiAoaWR4ICE9IC0xKSBwcmVmaXggPSAnIycrKGlk
eCsxKSsnPSc7CisgICAgcmV0dXJuIHByZWZpeCArICd7JyArIG1lbWJlcnMuam9pbigiLCAiKSAr
ICd9JworICB9CisgIGlmICh0eXBlb2YgYSA9PSAnZnVuY3Rpb24nKQorICAgIHJldHVybiAnKCcr
YS50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIgIikucmVwbGFjZSgvXHMrL2csICIgIikrJykn
OworICByZXR1cm4gYS50b1N0cmluZygpOworfQorCitmdW5jdGlvbiBmb3JtYXRFcnJvcihlKSB7
CisgIGlmICh3aW5kb3cuY29uc29sZSkgY29uc29sZS5sb2coZSk7CisgIHZhciBwYXRoU2VncyA9
IGxvY2F0aW9uLmhyZWYudG9TdHJpbmcoKS5zcGxpdCgiLyIpOworICB2YXIgY3VycmVudERvYyA9
IGUubGluZU51bWJlciAhPSBudWxsID8gcGF0aFNlZ3NbcGF0aFNlZ3MubGVuZ3RoIC0gMV0gOiBu
dWxsOworICB2YXIgdHJhY2UgPSAoZS5maWxlbmFtZSB8fCBjdXJyZW50RG9jKSArICI6IiArIGUu
bGluZU51bWJlciArIChlLnRyYWNlID8gIlxuIitlLnRyYWNlIDogIiIpOworICByZXR1cm4gZS5t
ZXNzYWdlICsgIlxuIiArIHRyYWNlOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgdmFy
IGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1zdGF0dXMnKTsKKyAgaWYgKGggPT0g
bnVsbCkgeworICAgIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMScpOworICAgIGguaWQg
PSAndGVzdC1zdGF0dXMnOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCk7CisgIH0K
KyAgaC50ZXh0Q29udGVudCA9ICIiOworICB2YXIgbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QtbG9nJyk7CisgIGlmIChsb2cgPT0gbnVsbCkgeworICAgIGxvZyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGxvZy5pZCA9ICd0ZXN0LWxvZyc7CisgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2cpOworICB9CisgIHdoaWxlIChsb2cuY2hpbGROb2Rl
cy5sZW5ndGggPiAwKQorICAgIGxvZy5yZW1vdmVDaGlsZChsb2cuZmlyc3RDaGlsZCk7CisKKyAg
dmFyIHNldHVwX2FyZ3MgPSBbXTsKKworICBpZiAoVGVzdHMuc3RhcnRVbml0ICE9IG51bGwpIHsK
KyAgICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRy
eSB7CisgICAgICBzZXR1cF9hcmdzID0gVGVzdHMuc3RhcnRVbml0KCk7CisgICAgICBpZiAoX190
ZXN0TG9nX18uY2hpbGROb2Rlcy5sZW5ndGggPiAwKQorICAgICAgICBsb2cuYXBwZW5kQ2hpbGQo
X190ZXN0TG9nX18pOworICAgIH0gY2F0Y2goZSkgeworICAgICAgdGVzdEZhaWxlZCgic3RhcnRV
bml0IiwgZm9ybWF0RXJyb3IoZSkpOworICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19f
KTsKKyAgICAgIHByaW50VGVzdFN0YXR1cygpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQor
CisgIHZhciB0ZXN0c1J1biA9IGZhbHNlOworICB2YXIgYWxsVGVzdHNTdWNjZXNzZnVsID0gdHJ1
ZTsKKworICBmb3IgKHZhciBpIGluIFRlc3RzKSB7CisgICAgaWYgKGkuc3Vic3RyaW5nKDAsNCkg
IT0gInRlc3QiKSBjb250aW51ZTsKKyAgICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOworICAgIF9fdGVzdFN1Y2Nlc3NfXyA9IHRydWU7CisgICAgdHJ5IHsKKyAg
ICAgIGRvVGVzdE5vdGlmeSAoaSk7CisgICAgICB2YXIgYXJncyA9IHNldHVwX2FyZ3M7CisgICAg
ICBpZiAoVGVzdHMuc2V0dXAgIT0gbnVsbCkKKyAgICAgICAgYXJncyA9IFRlc3RzLnNldHVwLmFw
cGx5KFRlc3RzLCBzZXR1cF9hcmdzKTsKKyAgICAgIFRlc3RzW2ldLmFwcGx5KFRlc3RzLCBhcmdz
KTsKKyAgICAgIGlmIChUZXN0cy50ZWFyZG93biAhPSBudWxsKQorICAgICAgICBUZXN0cy50ZWFy
ZG93bi5hcHBseShUZXN0cywgYXJncyk7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAgICB0
ZXN0RmFpbGVkKGksIGUubmFtZSwgZm9ybWF0RXJyb3IoZSkpOworICAgIH0KKyAgICBpZiAoX190
ZXN0U3VjY2Vzc19fID09IGZhbHNlKSB7CisgICAgICArK19fdGVzdEZhaWxDb3VudF9fOworICAg
IH0KKyAgICB2YXIgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gyJyk7CisgICAgaC50ZXh0
Q29udGVudCA9IGk7CisgICAgX190ZXN0TG9nX18uaW5zZXJ0QmVmb3JlKGgsIF9fdGVzdExvZ19f
LmZpcnN0Q2hpbGQpOworICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7CisgICAgYWxs
VGVzdHNTdWNjZXNzZnVsID0gYWxsVGVzdHNTdWNjZXNzZnVsICYmIF9fdGVzdFN1Y2Nlc3NfXyA9
PSB0cnVlOworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKF9fdGVzdFN1Y2Nlc3NfXywg
aSk7CisgICAgZG9UZXN0Tm90aWZ5IChpKyItLSIrKF9fdGVzdFN1Y2Nlc3NfXz8iT0siOiJGQUlM
IikpOworICAgIHRlc3RzUnVuID0gdHJ1ZTsKKyAgfQorCisgIHByaW50VGVzdFN0YXR1cyh0ZXN0
c1J1bik7CisgIGlmIChUZXN0cy5lbmRVbml0ICE9IG51bGwpIHsKKyAgICBfX3Rlc3RMb2dfXyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRyeSB7CisgICAgICBUZXN0cy5l
bmRVbml0LmFwcGx5KFRlc3RzLCBzZXR1cF9hcmdzKTsKKyAgICAgIGlmIChfX3Rlc3RMb2dfXy5j
aGlsZE5vZGVzLmxlbmd0aCA+IDApCisgICAgICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2df
Xyk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICB0ZXN0RmFpbGVkKCJlbmRVbml0IiwgZS5uYW1l
LCBmb3JtYXRFcnJvcihlKSk7CisgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOwor
ICAgIH0KKyAgfQorICBub3RpZnlGaW5pc2hlZFRvSGFybmVzcyhhbGxUZXN0c1N1Y2Nlc3NmdWws
ICJmaW5pc2hlZCB0ZXN0cyIpOworfQorCitmdW5jdGlvbiBkb1Rlc3ROb3RpZnkobmFtZSkgewor
ICAvL3RyecKgeworICAvLyAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAvLyAg
eGhyLm9wZW4oIkdFVCIsICJodHRwOi8vbG9jYWxob3N0Ojg4ODgvIituYW1lLCB0cnVlKTsKKyAg
Ly8gIHhoci5zZW5kKG51bGwpOworICAvL30gY2F0Y2goZSkge30KK30KKworZnVuY3Rpb24gdGVz
dEZhaWxlZChhc3NlcnROYW1lLCBuYW1lKSB7CisgIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgIHZhciBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKKyAg
dmFyIGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICBoLmFwcGVuZENoaWxk
KGQxKTsKKyAgZDEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkZBSUw6ICIp
KTsKKyAgZDEuc3R5bGUuY29sb3IgPSAicmVkIjsKKyAgaC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgKKyAgICAgIG5hbWU9PW51bGwgPyBhc3NlcnROYW1lIDogbmFtZSArICIg
KGluICIgKyBhc3NlcnROYW1lICsgIikiKSk7CisgIGQuYXBwZW5kQ2hpbGQoaCk7CisgIHZhciBh
cmdzID0gW10KKyAgZm9yICh2YXIgaT0yOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAg
IHZhciBhID0gYXJndW1lbnRzW2ldOworICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgncCcpOworICAgIHAuc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUnOworICAgIHAudGV4dENvbnRl
bnQgPSAoYSA9PSBudWxsKSA/ICJudWxsIiA6CisgICAgICAgICAgICAgICAgICAgICh0eXBlb2Yg
YSA9PSAnYm9vbGVhbicgfHwgdHlwZW9mIGEgPT0gJ3N0cmluZycpID8gYSA6IE9iamVjdC50b1Nv
dXJjZShhKTsKKyAgICBhcmdzLnB1c2gocC50ZXh0Q29udGVudCk7CisgICAgZC5hcHBlbmRDaGls
ZChwKTsKKyAgfQorICBfX3Rlc3RMb2dfXy5hcHBlbmRDaGlsZChkKTsKKyAgX190ZXN0U3VjY2Vz
c19fID0gZmFsc2U7CisgIGRvVGVzdE5vdGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFy
Z3MpLmpvaW4oIi0tIikpOworfQorCitmdW5jdGlvbiB0ZXN0UGFzc2VkKGFzc2VydE5hbWUsIG5h
bWUpIHsKKyAgdmFyIGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgdmFyIGgg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpOworICB2YXIgZDEgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7CisgIGguYXBwZW5kQ2hpbGQoZDEpOworICBkMS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUEFTUzogIikpOworICBkMS5zdHlsZS5jb2xvciA9
ICJncmVlbiI7CisgIGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoCisgICAg
ICBuYW1lPT1udWxsID8gYXNzZXJ0TmFtZSA6IG5hbWUgKyAiIChpbiAiICsgYXNzZXJ0TmFtZSAr
ICIpIikpOworICBkLmFwcGVuZENoaWxkKGgpOworICB2YXIgYXJncyA9IFtdCisgIGZvciAodmFy
IGk9MjsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgYSA9IGFyZ3VtZW50c1tp
XTsKKyAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgICBwLnN0eWxl
LndoaXRlU3BhY2UgPSAncHJlJzsKKyAgICBwLnRleHRDb250ZW50ID0gKGEgPT0gbnVsbCkgPyAi
bnVsbCIgOgorICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nIHx8IHR5
cGVvZiBhID09ICdzdHJpbmcnKSA/IGEgOiBPYmplY3QudG9Tb3VyY2UoYSk7CisgICAgYXJncy5w
dXNoKHAudGV4dENvbnRlbnQpOworICAgIGQuYXBwZW5kQ2hpbGQocCk7CisgIH0KKyAgX190ZXN0
TG9nX18uYXBwZW5kQ2hpbGQoZCk7CisgIGRvVGVzdE5vdGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0u
Y29uY2F0KGFyZ3MpLmpvaW4oIi0tIikpOworfQorCitmdW5jdGlvbiBjaGVja1Rlc3RTdWNjZXNz
KCkgeworICByZXR1cm4gX190ZXN0RmFpbENvdW50X18gPT0gMDsKK30KKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpeworICBmb3IgKHZhciBpPTA7IGk8X19iYWNr
bG9nX18ubGVuZ3RoOyBpKyspCisgICAgbG9nKF9fYmFja2xvZ19fW2ldKTsKK30sIGZhbHNlKTsK
KworZnVuY3Rpb24gbG9nKG1zZykgeworICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3AnKTsKKyAgdmFyIGEgPSBbXTsKKyAgZm9yICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7
IGkrKykKKyAgICBhLnB1c2goYXJndW1lbnRzW2ldKTsKKyAgcC50ZXh0Q29udGVudCA9IGEuam9p
bigiLCAiKTsKKyAgaWYgKCFfX3Rlc3RMb2dfXykgeworICAgIGlmIChkb2N1bWVudC5ib2R5KQor
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwKTsKKyAgICBlbHNlCisgICAgICBfX2Jh
Y2tsb2dfXy5wdXNoKG1zZyk7CisgIH0gZWxzZSB7CisgICAgX190ZXN0TG9nX18uYXBwZW5kQ2hp
bGQocCk7CisgIH0KK30KKworZnVuY3Rpb24gcHJpbnRUZXN0U3RhdHVzKHRlc3RzUnVuKSB7Cisg
IHZhciBzdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1zdGF0dXMnKTsKKyAg
aWYgKHRlc3RzUnVuKSB7CisgICAgc3RhdHVzLmNsYXNzTmFtZSA9IGNoZWNrVGVzdFN1Y2Nlc3Mo
KSA/ICdvaycgOiAnZmFpbCc7CisgICAgc3RhdHVzLnRleHRDb250ZW50ID0gY2hlY2tUZXN0U3Vj
Y2VzcygpID8gIlBBU1MiIDogIkZBSUwiOworICB9IGVsc2UgeworICAgIHN0YXR1cy5jbGFzc05h
bWUgPSAnZmFpbCc7CisgICAgc3RhdHVzLnRleHRDb250ZW50ID0gIk5PIFRFU1RTIEZPVU5EIjsK
KyAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRGYWlsKG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVs
bCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdHJ5IHsg
ZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyB9CisgIGlmICghcikgeworICAgIHRlc3RGYWlsZWQo
ImFzc2VydEZhaWwiLCBuYW1lLCBmKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7Cisg
ICAgdGVzdFBhc3NlZCgiYXNzZXJ0RmFpbCIsIG5hbWUsIGYpOworICAgIHJldHVybiB0cnVlOwor
ICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydE9rKG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkg
eyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdmFyIGVycjsK
KyAgdHJ5IHsgZigpOyByPXRydWU7IH0gY2F0Y2goZSkgeyBlcnIgPSBlOyB9CisgIGlmICghcikg
eworICAgIHRlc3RGYWlsZWQoImFzc2VydE9rIiwgbmFtZSwgZiwgZXJyLnRvU3RyaW5nKCkpOwor
ICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnRPayIs
IG5hbWUsIGYpOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydChu
YW1lLCB2KSB7CisgIGlmICh2ID09IG51bGwpIHsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Cisg
IGlmICghdikgeworICAgIHRlc3RGYWlsZWQoImFzc2VydCIsIG5hbWUsIHYpOworICAgIHJldHVy
biBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnQiLCBuYW1lLCB2KTsK
KyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRQcm9wZXJ0eShuYW1l
LCB2LCBwKSB7CisgIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gcDsg
fQorICBpZiAodltwXSA9PSBudWxsKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0UHJvcGVydHki
LCBuYW1lKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgi
YXNzZXJ0UHJvcGVydHkiLCBuYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5j
dGlvbiBjb21wYXJlKGEsYikgeworICBpZiAodHlwZW9mIGEgPT0gJ251bWJlcicgJiYgdHlwZW9m
IGIgPT0gJ251bWJlcicpIHsKKyAgICByZXR1cm4gYSA9PSBiOworICB9IGVsc2UgeworICAgIHJl
dHVybiBPYmplY3QudG9Tb3VyY2UoYSkgPT0gT2JqZWN0LnRvU291cmNlKGIpOworICB9Cit9CisK
K2Z1bmN0aW9uIGFzc2VydEVxdWFscyhuYW1lLCB2LCBwKSB7CisgIGlmIChwID09IG51bGwpIHsg
cCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICBpZiAoIWNvbXBhcmUodiwgcCkpIHsK
KyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRFcXVhbHMiLCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4g
ZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiYXNzZXJ0RXF1YWxzIiwgbmFtZSwg
diwgcCk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0QXJyYXlF
cXVhbHMobmFtZSwgdiwgcCkgeworICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsg
bmFtZSA9IG51bGw7IH0KKyAgaWYgKCF2KSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlF
cXVhbHM6IGZpcnN0IGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorICBpZiAoIXApIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFs
czogc2Vjb25kIGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxz
ZTsKKyAgfQorICBpZiAodi5sZW5ndGggIT0gcC5sZW5ndGgpIHsKKyAgICB0ZXN0RmFpbGVkKCJh
c3NlcnRBcnJheUVxdWFscyIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAgfQor
ICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdi5sZW5ndGg7ICsraWkpIHsKKyAgICBpZiAodltpaV0g
IT0gcFtpaV0pIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxzIiwgbmFtZSwg
diwgcCk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQoImFz
c2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7CisgIHJldHVybiB0cnVlOworfQorCitmdW5j
dGlvbiBhc3NlcnROb3RFcXVhbHMobmFtZSwgdiwgcCkgeworICBpZiAocCA9PSBudWxsKSB7IHAg
PSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgaWYgKGNvbXBhcmUodiwgcCkpIHsKKyAg
ICB0ZXN0RmFpbGVkKCJhc3NlcnROb3RFcXVhbHMiLCBuYW1lLCB2LCBwKQorICAgIHJldHVybiBm
YWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnROb3RFcXVhbHMiLCBuYW1l
LCB2LCBwKQorICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0aW9uIHRpbWUoZWxlbWVu
dElkLCBmKSB7CisgICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQp
OworICAgIHZhciB0MCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgIGYoKTsKKyAgICB2YXIg
dDEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKKyAgICBzLnRleHRDb250ZW50ID0gJ0VsYXBzZWQ6
ICcrKHQxLXQwKSsnIG1zJzsKK30KKworZnVuY3Rpb24gcmFuZG9tRmxvYXQgKCkgeworICAgIC8v
IG5vdGUgdGhhdCBpbiBmdXp6LXRlc3RpbmcsIHRoaXMgY2FuIHVzZWQgYXMgdGhlIHNpemUgb2Yg
YSBidWZmZXIgdG8gYWxsb2NhdGUuCisgICAgLy8gc28gaXQgc2hvdWxkbid0IHJldHVybiBhc3Ry
b25vbWljIHZhbHVlcy4gVGhlIG1heGltdW0gdmFsdWUgMTAwMDAwMDAgaXMgYWxyZWFkeSBxdWl0
ZSBiaWcuCisgICAgdmFyIGZhYyA9IDEuMDsKKyAgICB2YXIgciA9IE1hdGgucmFuZG9tKCk7Cisg
ICAgaWYgKHIgPCAwLjI1KQorICAgICAgICBmYWMgPSAxMDsKKyAgICBlbHNlIGlmIChyIDwgMC40
KQorICAgICAgICBmYWMgPSAxMDA7CisgICAgZWxzZSBpZiAociA8IDAuNSkKKyAgICAgICAgZmFj
ID0gMTAwMDsKKyAgICBlbHNlIGlmIChyIDwgMC42KQorICAgICAgICBmYWMgPSAxMDAwMDA7Cisg
ICAgZWxzZSBpZiAociA8IDAuNykKKyAgICAgICAgZmFjID0gMTAwMDAwMDA7CisgICAgZWxzZSBp
ZiAociA8IDAuOCkKKyAgICAgICAgZmFjID0gTmFOOworICAgIHJldHVybiAtMC41KmZhYyArIE1h
dGgucmFuZG9tKCkgKiBmYWM7Cit9CitmdW5jdGlvbiByYW5kb21GbG9hdEZyb21SYW5nZShsbywg
aGkpIHsKKyAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOworICBpZiAociA8IDAuMDUpCisgICAgcmV0
dXJuIGxvOworICBlbHNlIGlmIChyID4gMC45NSkKKyAgICByZXR1cm4gaGk7CisgIGVsc2UKKyAg
ICByZXR1cm4gbG8gKyBNYXRoLnJhbmRvbSgpKihoaS1sbyk7Cit9CitmdW5jdGlvbiByYW5kb21J
bnQgKHN6KSB7CisgIGlmIChzeiAhPSBudWxsKQorICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgu
cmFuZG9tKCkqc3opOworICBlbHNlCisgICAgcmV0dXJuIE1hdGguZmxvb3IocmFuZG9tRmxvYXQo
KSk7Cit9CitmdW5jdGlvbiByYW5kb21JbnRGcm9tUmFuZ2UobG8sIGhpKSB7CisgIHJldHVybiBN
YXRoLmZsb29yKHJhbmRvbUZsb2F0RnJvbVJhbmdlKGxvLCBoaSkpOworfQorZnVuY3Rpb24gcmFu
ZG9tTGVuZ3RoICgpIHsKKyAgICB2YXIgbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1
Nik7CisgICAgaWYgKE1hdGgucmFuZG9tIDwgMC41KSBsID0gbCAvIDEwOworICAgIGlmIChNYXRo
LnJhbmRvbSA8IDAuMykgbCA9IGwgLyAxMDsKKyAgICByZXR1cm4gbDsKK30KK2Z1bmN0aW9uIHJh
bmRvbVNtYWxsSW50QXJyYXkgKCkgeworICAgIHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7CisgICAg
dmFyIHMgPSBuZXcgQXJyYXkobCk7CisgICAgZm9yICh2YXIgaT0wOyBpPGw7IGkrKykKKyAgICAg
ICAgc1tpXSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NiktMTsKKyAgICByZXR1cm4g
czsKK30KK2Z1bmN0aW9uIHJhbmRvbUZsb2F0QXJyYXkgKCkgeworICAgIHZhciBsID0gcmFuZG9t
TGVuZ3RoKCk7CisgICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7CisgICAgZm9yICh2YXIgaT0wOyBp
PGw7IGkrKykKKyAgICAgICAgc1tpXSA9IHJhbmRvbUZsb2F0KCk7CisgICAgcmV0dXJuIHM7Cit9
CitmdW5jdGlvbiByYW5kb21JbnRBcnJheSAoKSB7CisgICAgdmFyIGwgPSByYW5kb21MZW5ndGgo
KTsKKyAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKKyAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsr
KQorICAgICAgICBzW2ldID0gcmFuZG9tRmxvYXQoKTsKKyAgICByZXR1cm4gczsKK30KK2Z1bmN0
aW9uIHJhbmRvbU1peGVkQXJyYXkgKCkgeworICAgIHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7Cisg
ICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7CisgICAgZm9yICh2YXIgaT0wOyBpPGw7IGkrKykKKyAg
ICAgICAgc1tpXSA9IHJhbmRvbU5vbkFycmF5KCk7CisgICAgcmV0dXJuIHM7Cit9CitmdW5jdGlv
biByYW5kb21BcnJheSAoKSB7CisgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOworICAgIGlmIChy
IDwgMC4zKQorICAgICAgICByZXR1cm4gcmFuZG9tRmxvYXRBcnJheSgpOworICAgIGVsc2UgaWYg
KHIgPCAwLjYpCisgICAgICAgIHJldHVybiByYW5kb21JbnRBcnJheSgpOworICAgIGVsc2UgaWYg
KHIgPCAwLjgpCisgICAgICAgIHJldHVybiByYW5kb21TbWFsbEludEFycmF5KCk7CisgICAgZWxz
ZQorICAgICAgICByZXR1cm4gcmFuZG9tTWl4ZWRBcnJheSgpOworfQorZnVuY3Rpb24gcmFuZG9t
U3RyaW5nICgpIHsKKyAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcs
IHJhbmRvbVNtYWxsSW50QXJyYXkoKSk7Cit9CitmdW5jdGlvbiByYW5kb21HTENvbnN0YW50ICgp
IHsKKyAgICByZXR1cm4gR0xDb25zdGFudHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogR0xD
b25zdGFudHMubGVuZ3RoKV07Cit9CisKK2Z1bmN0aW9uIHJhbmRvbU5vbkFycmF5KCkgeworICAg
IHZhciByID0gTWF0aC5yYW5kb20oKTsKKyAgICBpZiAociA8IDAuMjUpIHsKKyAgICAgICAgcmV0
dXJuIHJhbmRvbUZsb2F0KCk7CisgICAgfSBlbHNlIGlmIChyIDwgMC42KSB7CisgICAgICAgIHJl
dHVybiByYW5kb21JbnQoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjcpIHsKKyAgICAgICAgcmV0
dXJuIChyIDwgMC42NSk7CisgICAgfSBlbHNlIGlmIChyIDwgMC44NykgeworICAgICAgICByZXR1
cm4gcmFuZG9tU3RyaW5nKCk7CisgICAgfSBlbHNlIGlmIChyIDwgMC45OCkgeworICAgICAgICBy
ZXR1cm4gcmFuZG9tR0xDb25zdGFudCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBu
dWxsOworICAgIH0KK30KKworZnVuY3Rpb24gZ2VuZXJhdGVSYW5kb21BcmcocG9zLCBjb3VudCkg
eworICAgIGlmIChwb3MgPT0gMCAmJiBNYXRoLnJhbmRvbSgpIDwgMC41KQorICAgICAgICByZXR1
cm4gcmFuZG9tR0xDb25zdGFudCgpOworICAgIGlmIChwb3MgPT0gY291bnQtMSAmJiBNYXRoLnJh
bmRvbSgpIDwgMC4yNSkKKyAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPCAwLjUpCisgICAgICAg
ICAgICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
dHVybiByYW5kb21BcnJheSgpOworICAgIHZhciByID0gTWF0aC5yYW5kb20oKTsKKyAgICBpZiAo
ciA8IDAuMjUpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbUZsb2F0KCk7CisgICAgfSBlbHNlIGlm
IChyIDwgMC42KSB7CisgICAgICAgIHJldHVybiByYW5kb21JbnQoKTsKKyAgICB9IGVsc2UgaWYg
KHIgPCAwLjcpIHsKKyAgICAgICAgcmV0dXJuIChyIDwgMC42NSk7CisgICAgfSBlbHNlIGlmIChy
IDwgMC43NykgeworICAgICAgICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7CisgICAgfSBlbHNlIGlm
IChyIDwgMC44NCkgeworICAgICAgICByZXR1cm4gcmFuZG9tQXJyYXkoKTsKKyAgICB9IGVsc2Ug
aWYgKHIgPCAwLjk4KSB7CisgICAgICAgIHJldHVybiByYW5kb21HTENvbnN0YW50KCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQorCisKK2Z1bmN0aW9uIGdl
bmVyYXRlUmFuZG9tQXJncyhjb3VudCkgeworICAgIHZhciBhcnIgPSBuZXcgQXJyYXkoY291bnQp
OworICAgIGZvciAodmFyIGk9MDsgaTxjb3VudDsgaSsrKQorICAgICAgICBhcnJbaV0gPSBnZW5l
cmF0ZVJhbmRvbUFyZyhpLCBjb3VudCk7CisgICAgcmV0dXJuIGFycjsKK30KKworLy8gcWMgKGFy
ZzFnZW4sIGFyZzJnZW4sIC4uLiwgcHJlZGljYXRlKQorLy8gcWMgKHJhbmRvbVN0cmluZywgcmFu
ZG9tSW50LCByYW5kb21JbnQsIGZ1bmN0aW9uKHMsaSxqKXsgcy5zdWJzdHJpbmcoaSxqKSB9KQor
ZnVuY3Rpb24gcWMoKSB7Cit9CisKK0dMQ29uc3RhbnRzID0gWworMSwKKzB4MDAwMDAxMDAsCisw
eDAwMDAwNDAwLAorMHgwMDAwNDAwMCwKKzB4MDAwMCwKKzB4MDAwMSwKKzB4MDAwMiwKKzB4MDAw
MywKKzB4MDAwNCwKKzB4MDAwNSwKKzB4MDAwNiwKKzAsCisxLAorMHgwMzAwLAorMHgwMzAxLAor
MHgwMzAyLAorMHgwMzAzLAorMHgwMzA0LAorMHgwMzA1LAorMHgwMzA2LAorMHgwMzA3LAorMHgw
MzA4LAorMHg4MDA2LAorMHg4MDA5LAorMHg4MDA5LAorMHg4ODNELAorMHg4MDBBLAorMHg4MDBC
LAorMHg4MEM4LAorMHg4MEM5LAorMHg4MENBLAorMHg4MENCLAorMHg4MDAxLAorMHg4MDAyLAor
MHg4MDAzLAorMHg4MDA0LAorMHg4MDA1LAorMHg4ODkyLAorMHg4ODkzLAorMHg4ODk0LAorMHg4
ODk1LAorMHg4OEUwLAorMHg4OEU0LAorMHg4OEU4LAorMHg4NzY0LAorMHg4NzY1LAorMHg4NjI2
LAorMHgwNDA0LAorMHgwNDA1LAorMHgwNDA4LAorMHgwREUxLAorMHgwQjQ0LAorMHgwQkUyLAor
MHgwQkQwLAorMHgwQjkwLAorMHgwQjcxLAorMHgwQzExLAorMHg4MDM3LAorMHg4MDlFLAorMHg4
MEEwLAorMCwKKzB4MDUwMCwKKzB4MDUwMSwKKzB4MDUwMiwKKzB4MDUwNSwKKzB4MDkwMCwKKzB4
MDkwMSwKKzB4MEIyMSwKKzB4ODQ2RCwKKzB4ODQ2RSwKKzB4MEI0NSwKKzB4MEI0NiwKKzB4MEI3
MCwKKzB4MEI3MiwKKzB4MEI3MywKKzB4MEI3NCwKKzB4MEI5MSwKKzB4MEI5MiwKKzB4MEI5NCwK
KzB4MEI5NSwKKzB4MEI5NiwKKzB4MEI5NywKKzB4MEI5MywKKzB4MEI5OCwKKzB4ODgwMCwKKzB4
ODgwMSwKKzB4ODgwMiwKKzB4ODgwMywKKzB4OENBMywKKzB4OENBNCwKKzB4OENBNSwKKzB4MEJB
MiwKKzB4MEMxMCwKKzB4MEMyMiwKKzB4MEMyMywKKzB4MENGNSwKKzB4MEQwNSwKKzB4MEQzMywK
KzB4MEQzQSwKKzB4MEQ1MCwKKzB4MEQ1MiwKKzB4MEQ1MywKKzB4MEQ1NCwKKzB4MEQ1NSwKKzB4
MEQ1NiwKKzB4MEQ1NywKKzB4MkEwMCwKKzB4ODAzOCwKKzB4ODA2OSwKKzB4ODBBOCwKKzB4ODBB
OSwKKzB4ODBBQSwKKzB4ODBBQiwKKzB4ODZBMiwKKzB4ODZBMywKKzB4MTEwMCwKKzB4MTEwMSwK
KzB4MTEwMiwKKzB4ODE5MiwKKzB4MTQwMCwKKzB4MTQwMSwKKzB4MTQwMiwKKzB4MTQwMywKKzB4
MTQwNCwKKzB4MTQwNSwKKzB4MTQwNiwKKzB4MTQwQywKKzB4MTkwMiwKKzB4MTkwNiwKKzB4MTkw
NywKKzB4MTkwOCwKKzB4MTkwOSwKKzB4MTkwQSwKKzB4ODAzMywKKzB4ODAzNCwKKzB4ODM2MywK
KzB4OEIzMCwKKzB4OEIzMSwKKzB4ODg2OSwKKzB4OERGQiwKKzB4OERGQywKKzB4OEI0RCwKKzB4
OEI0QywKKzB4ODg3MiwKKzB4OERGRCwKKzB4OEI0RiwKKzB4OEI4MCwKKzB4OEI4MiwKKzB4OEI4
MywKKzB4OEI4NSwKKzB4OEI4NiwKKzB4OEI4NywKKzB4OEI4OSwKKzB4OEI4QSwKKzB4OEI4QywK
KzB4OEI4RCwKKzB4MDIwMCwKKzB4MDIwMSwKKzB4MDIwMiwKKzB4MDIwMywKKzB4MDIwNCwKKzB4
MDIwNSwKKzB4MDIwNiwKKzB4MDIwNywKKzB4MUUwMCwKKzB4MUUwMSwKKzB4MUUwMiwKKzB4MUUw
MywKKzB4MTUwQSwKKzB4ODUwNywKKzB4ODUwOCwKKzB4MUYwMCwKKzB4MUYwMSwKKzB4MUYwMiwK
KzB4MUYwMywKKzB4MjYwMCwKKzB4MjYwMSwKKzB4MjcwMCwKKzB4MjcwMSwKKzB4MjcwMiwKKzB4
MjcwMywKKzB4MjgwMCwKKzB4MjgwMSwKKzB4MjgwMiwKKzB4MjgwMywKKzB4MTcwMiwKKzB4ODUx
MywKKzB4ODUxNCwKKzB4ODUxNSwKKzB4ODUxNiwKKzB4ODUxNywKKzB4ODUxOCwKKzB4ODUxOSwK
KzB4ODUxQSwKKzB4ODUxQywKKzB4ODRDMCwKKzB4ODRDMSwKKzB4ODRDMiwKKzB4ODRDMywKKzB4
ODRDNCwKKzB4ODRDNSwKKzB4ODRDNiwKKzB4ODRDNywKKzB4ODRDOCwKKzB4ODRDOSwKKzB4ODRD
QSwKKzB4ODRDQiwKKzB4ODRDQywKKzB4ODRDRCwKKzB4ODRDRSwKKzB4ODRDRiwKKzB4ODREMCwK
KzB4ODREMSwKKzB4ODREMiwKKzB4ODREMywKKzB4ODRENCwKKzB4ODRENSwKKzB4ODRENiwKKzB4
ODRENywKKzB4ODREOCwKKzB4ODREOSwKKzB4ODREQSwKKzB4ODREQiwKKzB4ODREQywKKzB4ODRE
RCwKKzB4ODRERSwKKzB4ODRERiwKKzB4ODRFMCwKKzB4MjkwMSwKKzB4ODEyRiwKKzB4ODM3MCwK
KzB4OEI1MCwKKzB4OEI1MSwKKzB4OEI1MiwKKzB4OEI1MywKKzB4OEI1NCwKKzB4OEI1NSwKKzB4
OEI1NiwKKzB4OEI1NywKKzB4OEI1OCwKKzB4OEI1OSwKKzB4OEI1QSwKKzB4OEI1QiwKKzB4OEI1
QywKKzB4OEI1RSwKKzB4OEI2MCwKKzB4ODYyMiwKKzB4ODYyMywKKzB4ODYyNCwKKzB4ODYyNSwK
KzB4ODg2QSwKKzB4ODY0NSwKKzB4ODg5RiwKKzB4OEI5QSwKKzB4OEI5QiwKKzB4OEI4MSwKKzB4
OEI4NCwKKzB4OEI4OCwKKzB4OERGQSwKKzB4OERGOCwKKzB4OERGOSwKKzB4OERGMCwKKzB4OERG
MSwKKzB4OERGMiwKKzB4OERGMywKKzB4OERGNCwKKzB4OERGNSwKKzB4OEQ0MCwKKzB4OEQ0MSwK
KzB4ODA1NiwKKzB4ODA1NywKKzB4OEQ2MiwKKzB4ODFBNSwKKzB4MTkwMSwKKzB4OEQ0OCwKKzB4
OEQ0MiwKKzB4OEQ0MywKKzB4OEQ0NCwKKzB4OEQ1MCwKKzB4OEQ1MSwKKzB4OEQ1MiwKKzB4OEQ1
MywKKzB4OEQ1NCwKKzB4OEQ1NSwKKzB4OENEMCwKKzB4OENEMSwKKzB4OENEMiwKKzB4OENEMywK
KzB4OENFMCwKKzB4OEQwMCwKKzB4OEQyMCwKKzAsCisweDhDRDUsCisweDhDRDYsCisweDhDRDcs
CisweDhDRDksCisweDhDREQsCisweDhDQTYsCisweDhDQTcsCisweDg0RTgsCisweDA1MDYsCisw
eDgwOUQKK107CisKK2Z1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3Ms
IG1zZykgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2lu
ZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9u
LnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIG5vdGlmeUZpbmlz
aGVkVG9IYXJuZXNzKCkgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7
CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRv
dy5sb2NhdGlvbi5wYXRobmFtZSk7CisgIH0KK30KKworZnVuY3Rpb24gaW5pdFRlc3RzKCkgewor
ICBpZiAoVGVzdHMubWVzc2FnZSAhPSBudWxsKSB7CisgICAgdmFyIGggPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdC1tZXNzYWdlJyk7CisgICAgaWYgKGggPT0gbnVsbCkgeworICAgICAg
aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgICAgIGguaWQgPSAndGVzdC1tZXNz
YWdlJzsKKyAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGgsIGRvY3VtZW50LmJvZHku
Zmlyc3RDaGlsZCk7CisgICAgfQorICAgIGgudGV4dENvbnRlbnQgPSBUZXN0cy5tZXNzYWdlOwor
ICB9CisgIGlmIChUZXN0cy5hdXRvcnVuKSB7CisgICAgcnVuVGVzdHMoKTsKKyAgfSBlbHNlIHsK
KyAgICB2YXIgaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXJ1bicpOworICAgIGlm
IChoID09IG51bGwpIHsKKyAgICAgIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcp
OworICAgICAgaC50eXBlID0gJ3N1Ym1pdCc7CisgICAgICBoLnZhbHVlID0gIlJ1biB0ZXN0cyI7
CisgICAgICBoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpeworICAgICAg
ICBydW5UZXN0cygpOworICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgfSwgZmFs
c2UpOworICAgICAgaC5pZCA9ICd0ZXN0LXJ1bic7CisgICAgICBkb2N1bWVudC5ib2R5Lmluc2Vy
dEJlZm9yZShoLCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworICAgIH0KKyAgICBoLnRleHRD
b250ZW50ID0gVGVzdHMubWVzc2FnZTsKKyAgfQorCit9CisKK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgZnVuY3Rpb24oKXsKKyAgLy8gbGV0IHRoZSBicm93c2VyIGhvcGVmdWxseSBm
aW5pc2ggdXBkYXRpbmcgdGhlIGdsIGNhbnZhcyBzdXJmYWNlcyBpZiB3ZSBhcmUgZ2l2ZW4gYSBk
ZWxheQorICBpZiAoVGVzdHMuZGVsYXkpCisgICAgc2V0VGltZW91dChpbml0VGVzdHMsIFRlc3Rz
LmRlbGF5KTsKKyAgZWxzZQorICAgIGluaXRUZXN0cygpCit9LCBmYWxzZSk7CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvdXRpbC5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY2Y2FmZTViNGRh
NjhkNzJlMDFmNzE3MzNjZDVjZjUzMTViODJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91dGls
LmpzCkBAIC0wLDAgKzEsMTI1MiBAQAorLyoKK1V0aWxpdGllcyBmb3IgdGhlIE9wZW5HTCBFUyAy
LjAgSFRNTCBDYW52YXMgY29udGV4dAorKi8KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
KyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
KyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCitm
dW5jdGlvbiBsb2FkVGV4dHVyZShnbCwgZWxlbSwgbWlwbWFwcykgeworICB2YXIgdGV4ID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOworICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwor
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGVsZW0pOworICBpZiAobWlwbWFwcyAhPSBmYWxzZSkKKyAgICBnbC5nZW5l
cmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0Up
OworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRF
UiwgZ2wuTElORUFSKTsKKyAgaWYgKG1pcG1hcHMpCisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTElORUFS
KTsKKyAgZWxzZQorICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOworICByZXR1cm4gdGV4OworfQorCitmdW5jdGlvbiBn
ZXRTaGFkZXIoZ2wsIGlkKSB7CisgIHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCk7CisgIGlmICghc2hhZGVyU2NyaXB0KSB7CisgICAgdGhyb3cobmV3IEVycm9y
KCJObyBzaGFkZXIgZWxlbWVudCB3aXRoIGlkOiAiK2lkKSk7CisgIH0KKworICB2YXIgc3RyID0g
IiI7CisgIHZhciBrID0gc2hhZGVyU2NyaXB0LmZpcnN0Q2hpbGQ7CisgIHdoaWxlIChrKSB7Cisg
ICAgaWYgKGsubm9kZVR5cGUgPT0gMykKKyAgICAgIHN0ciArPSBrLnRleHRDb250ZW50OworICAg
IGsgPSBrLm5leHRTaWJsaW5nOworICB9CisKKyAgdmFyIHNoYWRlcjsKKyAgaWYgKHNoYWRlclNj
cmlwdC50eXBlID09ICJ4LXNoYWRlci94LWZyYWdtZW50IikgeworICAgIHNoYWRlciA9IGdsLmNy
ZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOworICB9IGVsc2UgaWYgKHNoYWRlclNjcmlw
dC50eXBlID09ICJ4LXNoYWRlci94LXZlcnRleCIpIHsKKyAgICBzaGFkZXIgPSBnbC5jcmVhdGVT
aGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CisgIH0gZWxzZSB7CisgICAgdGhyb3cobmV3IEVycm9y
KCJVbmtub3duIHNoYWRlciB0eXBlICIrc2hhZGVyU2NyaXB0LnR5cGUpKTsKKyAgfQorCisgIGds
LnNoYWRlclNvdXJjZShzaGFkZXIsIHN0cik7CisgIGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsK
KworICBpZiAoZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMp
ICE9IDEpIHsKKyAgICB2YXIgaWxvZyA9IGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTsKKyAg
ICBnbC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgICB0aHJvdyhuZXcgRXJyb3IoIkZhaWxlZCB0
byBjb21waWxlIHNoYWRlciAiK3NoYWRlclNjcmlwdC5pZCArICIsIFNoYWRlciBpbmZvIGxvZzog
IiArIGlsb2cpKTsKKyAgfQorICByZXR1cm4gc2hhZGVyOworfQorCitmdW5jdGlvbiBsb2FkU2hh
ZGVyQXJyYXkoZ2wsIHNoYWRlcnMpIHsKKyAgdmFyIGlkID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwor
ICB2YXIgc2hhZGVyT2JqcyA9IFtdOworICBmb3IgKHZhciBpPTA7IGk8c2hhZGVycy5sZW5ndGg7
ICsraSkgeworICAgIHRyeSB7CisgICAgICB2YXIgc2ggPSBnZXRTaGFkZXIoZ2wsIHNoYWRlcnNb
aV0pOworICAgICAgc2hhZGVyT2Jqcy5wdXNoKHNoKTsKKyAgICAgIGdsLmF0dGFjaFNoYWRlcihp
ZCwgc2gpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIHZhciBwciA9IHtwcm9ncmFtOiBpZCwg
c2hhZGVyczogc2hhZGVyT2Jqc307CisgICAgICBkZWxldGVTaGFkZXIoZ2wsIHByKTsKKyAgICAg
IHRocm93IChlKTsKKyAgICB9CisgIH0KKyAgdmFyIHByb2cgPSB7cHJvZ3JhbTogaWQsIHNoYWRl
cnM6IHNoYWRlck9ianN9OworICBnbC5saW5rUHJvZ3JhbShpZCk7CisgIGdsLnZhbGlkYXRlUHJv
Z3JhbShpZCk7CisgIGlmIChnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGlkLCBnbC5MSU5LX1NUQVRV
UykgIT0gMSkgeworICAgIGRlbGV0ZVNoYWRlcihnbCxwcm9nKTsKKyAgICB0aHJvdyhuZXcgRXJy
b3IoIkZhaWxlZCB0byBsaW5rIHNoYWRlciIpKTsKKyAgfQorICBpZiAoZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcihpZCwgZ2wuVkFMSURBVEVfU1RBVFVTKSAhPSAxKSB7CisgICAgZGVsZXRlU2hhZGVy
KGdsLHByb2cpOworICAgIHRocm93KG5ldyBFcnJvcigiRmFpbGVkIHRvIHZhbGlkYXRlIHNoYWRl
ciIpKTsKKyAgfQorICByZXR1cm4gcHJvZzsKK30KK2Z1bmN0aW9uIGxvYWRTaGFkZXIoZ2wpIHsK
KyAgdmFyIHNoID0gW107CisgIGZvciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyArK2kp
CisgICAgc2gucHVzaChhcmd1bWVudHNbaV0pOworICByZXR1cm4gbG9hZFNoYWRlckFycmF5KGds
LCBzaCk7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVNoYWRlcihnbCwgc2gpIHsKKyAgZ2wudXNlUHJv
Z3JhbShudWxsKTsKKyAgc2guc2hhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHMpeworICAgIGdsLmRl
dGFjaFNoYWRlcihzaC5wcm9ncmFtLCBzKTsKKyAgICBnbC5kZWxldGVTaGFkZXIocyk7CisgIH0p
OworICBnbC5kZWxldGVQcm9ncmFtKHNoLnByb2dyYW0pOworfQorCitmdW5jdGlvbiBnZXRHTEVy
cm9yQXNTdHJpbmcoY3R4LCBlcnIpIHsKKyAgaWYgKGVyciA9PT0gY3R4Lk5PX0VSUk9SKSB7Cisg
ICAgcmV0dXJuICJOT19FUlJPUiI7CisgIH0KKyAgZm9yICh2YXIgbmFtZSBpbiBjdHgpIHsKKyAg
ICBpZiAoY3R4W25hbWVdID09PSBlcnIpIHsKKyAgICAgIHJldHVybiBuYW1lOworICAgIH0KKyAg
fQorICByZXR1cm4gZXJyLnRvU3RyaW5nKCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrRXJyb3IoZ2ws
IG1zZykgeworICB2YXIgZSA9IGdsLmdldEVycm9yKCk7CisgIGlmIChlICE9IGdsLk5PX0VSUk9S
KSB7CisgICAgbG9nKCJFcnJvciAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlKSArICIgYXQg
IiArIG1zZyk7CisgIH0KKyAgcmV0dXJuIGU7Cit9CisKK2Z1bmN0aW9uIHRocm93RXJyb3IoZ2ws
IG1zZykgeworICB2YXIgZSA9IGdsLmdldEVycm9yKCk7CisgIGlmIChlICE9IDApIHsKKyAgICB0
aHJvdyhuZXcgRXJyb3IoIkVycm9yICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGUpICsgIiBh
dCAiICsgbXNnKSk7CisgIH0KK30KKworTWF0aC5jb3QgPSBmdW5jdGlvbih6KSB7IHJldHVybiAx
LjAgLyBNYXRoLnRhbih6KTsgfQorCisvKgorICBNYXRyaXggdXRpbGl0aWVzLCB1c2luZyB0aGUg
T3BlbkdMIGVsZW1lbnQgb3JkZXIgd2hlcmUKKyAgdGhlIGxhc3QgNCBlbGVtZW50cyBhcmUgdGhl
IHRyYW5zbGF0aW9uIGNvbHVtbi4KKworICBVc2VzIGZsYXQgYXJyYXlzIGFzIG1hdHJpY2VzIGZv
ciBwZXJmb3JtYW5jZS4KKworICBNb3N0IG9wZXJhdGlvbnMgaGF2ZSBpbi1wbGFjZSB2YXJpYW50
cyB0byBhdm9pZCBhbGxvY2F0aW5nIHRlbXBvcmFyeSBtYXRyaWNlcy4KKworICBOYW1pbmcgbG9n
aWM6CisgICAgTWF0cml4Lm1ldGhvZCBvcGVyYXRlcyBvbiBhIDR4NCBNYXRyaXggYW5kIHJldHVy
bnMgYSBuZXcgTWF0cml4LgorICAgIE1hdHJpeC5tZXRob2QzeDMgb3BlcmF0ZXMgb24gYSAzeDMg
TWF0cml4IGFuZCByZXR1cm5zIGEgbmV3IE1hdHJpeC4gTm90IGFsbCBvcGVyYXRpb25zIGhhdmUg
YSAzeDMgdmVyc2lvbiAoYXMgM3gzIGlzIHVzdWFsbHkgb25seSB1c2VkIGZvciB0aGUgbm9ybWFs
IG1hdHJpeDogTWF0cml4LnRyYW5zcG9zZTN4MyhNYXRyaXguaW52ZXJzZVRvM3gzKG1hdDR4NCkp
KQorICAgIE1hdHJpeC5tZXRob2RbM3gzXUluUGxhY2UoYXJncywgdGFyZ2V0KSBzdG9yZXMgaXRz
IHJlc3VsdCBpbiB0aGUgdGFyZ2V0IG1hdHJpeC4KKworICAgIE1hdHJpeC5zY2FsZShbc3gsIHN5
LCBzel0pIC0tIG5vbi11bmlmb3JtIHNjYWxlIGJ5IHZlY3RvcgorICAgIE1hdHJpeC5zY2FsZTEo
cykgICAgICAgICAgIC0tIHVuaWZvcm0gc2NhbGUgYnkgc2NhbGFyCisgICAgTWF0cml4LnNjYWxl
MyhzeCwgc3ksIHN6KSAgLS0gbm9uLXVuaWZvcm0gc2NhbGUgYnkgc2NhbGFycworCisgICAgRGl0
dG8gZm9yIHRyYW5zbGF0ZS4KKyovCitNYXRyaXggPSB7CisgIGlkZW50aXR5IDogWworICAgIDEu
MCwgMC4wLCAwLjAsIDAuMCwKKyAgICAwLjAsIDEuMCwgMC4wLCAwLjAsCisgICAgMC4wLCAwLjAs
IDEuMCwgMC4wLAorICAgIDAuMCwgMC4wLCAwLjAsIDEuMAorICBdLAorCisgIG5ld0lkZW50aXR5
IDogZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIDEuMCwgMC4wLCAwLjAsIDAuMCwK
KyAgICAgIDAuMCwgMS4wLCAwLjAsIDAuMCwKKyAgICAgIDAuMCwgMC4wLCAxLjAsIDAuMCwKKyAg
ICAgIDAuMCwgMC4wLCAwLjAsIDEuMAorICAgIF07CisgIH0sCisKKyAgbmV3SWRlbnRpdHkzeDMg
OiBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gWworICAgICAgMS4wLCAwLjAsIDAuMCwKKyAgICAg
IDAuMCwgMS4wLCAwLjAsCisgICAgICAwLjAsIDAuMCwgMS4wCisgICAgXTsKKyAgfSwKKworICBj
b3B5TWF0cml4IDogZnVuY3Rpb24oc3JjLCBkc3QpIHsKKyAgICBmb3IgKHZhciBpPTA7IGk8MTY7
IGkrKykgZHN0W2ldID0gc3JjW2ldOworICAgIHJldHVybiBkc3Q7CisgIH0sCisKKyAgdG8zeDMg
OiBmdW5jdGlvbihtKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIG1bMF0sIG1bMV0sIG1bMl0sCisg
ICAgICBtWzRdLCBtWzVdLCBtWzZdLAorICAgICAgbVs4XSwgbVs5XSwgbVsxMF0KKyAgICBdOwor
ICB9LAorCisgIC8vIG9ydGhvbm9ybWFsIG1hdHJpeCBpbnZlcnNlCisgIGludmVyc2VPTiA6IGZ1
bmN0aW9uKG0pIHsKKyAgICB2YXIgbiA9IHRoaXMudHJhbnNwb3NlNHg0KG0pOworICAgIHZhciB0
ID0gW21bMTJdLCBtWzEzXSwgbVsxNF1dOworICAgIG5bM10gPSBuWzddID0gblsxMV0gPSAwOwor
ICAgIG5bMTJdID0gLVZlYzMuZG90KFtuWzBdLCBuWzRdLCBuWzhdXSwgdCk7CisgICAgblsxM10g
PSAtVmVjMy5kb3QoW25bMV0sIG5bNV0sIG5bOV1dLCB0KTsKKyAgICBuWzE0XSA9IC1WZWMzLmRv
dChbblsyXSwgbls2XSwgblsxMF1dLCB0KTsKKyAgICByZXR1cm4gbjsKKyAgfSwKKworICBpbnZl
cnNlVG8zeDMgOiBmdW5jdGlvbihtKSB7CisgICAgcmV0dXJuIHRoaXMuaW52ZXJzZTR4NHRvM3gz
SW5QbGFjZShtLCB0aGlzLm5ld0lkZW50aXR5M3gzKCkpOworICB9LAorCisgIGludmVyc2VUbzN4
M0luUGxhY2UgOiBmdW5jdGlvbihtLG4pIHsKKyAgICB2YXIgYTExID0gbVsxMF0qbVs1XS1tWzZd
Km1bOV0sCisgICAgICAgIGEyMSA9IC1tWzEwXSptWzFdK21bMl0qbVs5XSwKKyAgICAgICAgYTMx
ID0gbVs2XSptWzFdLW1bMl0qbVs1XSwKKyAgICAgICAgYTEyID0gLW1bMTBdKm1bNF0rbVs2XSpt
WzhdLAorICAgICAgICBhMjIgPSBtWzEwXSptWzBdLW1bMl0qbVs4XSwKKyAgICAgICAgYTMyID0g
LW1bNl0qbVswXSttWzJdKm1bNF0sCisgICAgICAgIGExMyA9IG1bOV0qbVs0XS1tWzVdKm1bOF0s
CisgICAgICAgIGEyMyA9IC1tWzldKm1bMF0rbVsxXSptWzhdLAorICAgICAgICBhMzMgPSBtWzVd
Km1bMF0tbVsxXSptWzRdOworICAgIHZhciBkZXQgPSBtWzBdKihhMTEpICsgbVsxXSooYTEyKSAr
IG1bMl0qKGExMyk7CisgICAgaWYgKGRldCA9PSAwKSAvLyBubyBpbnZlcnNlCisgICAgICByZXR1
cm4gWzEsMCwwLDAsMSwwLDAsMCwxXTsKKyAgICB2YXIgaWRldCA9IDEgLyBkZXQ7CisgICAgblsw
XSA9IGlkZXQqYTExOworICAgIG5bMV0gPSBpZGV0KmEyMTsKKyAgICBuWzJdID0gaWRldCphMzE7
CisgICAgblszXSA9IGlkZXQqYTEyOworICAgIG5bNF0gPSBpZGV0KmEyMjsKKyAgICBuWzVdID0g
aWRldCphMzI7CisgICAgbls2XSA9IGlkZXQqYTEzOworICAgIG5bN10gPSBpZGV0KmEyMzsKKyAg
ICBuWzhdID0gaWRldCphMzM7CisgICAgcmV0dXJuIG47CisgIH0sCisKKyAgaW52ZXJzZTN4MyA6
IGZ1bmN0aW9uKG0pIHsKKyAgICByZXR1cm4gdGhpcy5pbnZlcnNlM3gzSW5QbGFjZShtLCB0aGlz
Lm5ld0lkZW50aXR5M3gzKCkpOworICB9LAorCisgIGludmVyc2UzeDNJblBsYWNlIDogZnVuY3Rp
b24obSxuKSB7CisgICAgdmFyIGExMSA9IG1bOF0qbVs0XS1tWzVdKm1bN10sCisgICAgICAgIGEy
MSA9IC1tWzhdKm1bMV0rbVsyXSptWzddLAorICAgICAgICBhMzEgPSBtWzVdKm1bMV0tbVsyXSpt
WzRdLAorICAgICAgICBhMTIgPSAtbVs4XSptWzNdK21bNV0qbVs2XSwKKyAgICAgICAgYTIyID0g
bVs4XSptWzBdLW1bMl0qbVs2XSwKKyAgICAgICAgYTMyID0gLW1bNV0qbVswXSttWzJdKm1bM10s
CisgICAgICAgIGExMyA9IG1bN10qbVs0XS1tWzRdKm1bOF0sCisgICAgICAgIGEyMyA9IC1tWzdd
Km1bMF0rbVsxXSptWzZdLAorICAgICAgICBhMzMgPSBtWzRdKm1bMF0tbVsxXSptWzNdOworICAg
IHZhciBkZXQgPSBtWzBdKihhMTEpICsgbVsxXSooYTEyKSArIG1bMl0qKGExMyk7CisgICAgaWYg
KGRldCA9PSAwKSAvLyBubyBpbnZlcnNlCisgICAgICByZXR1cm4gWzEsMCwwLDAsMSwwLDAsMCwx
XTsKKyAgICB2YXIgaWRldCA9IDEgLyBkZXQ7CisgICAgblswXSA9IGlkZXQqYTExOworICAgIG5b
MV0gPSBpZGV0KmEyMTsKKyAgICBuWzJdID0gaWRldCphMzE7CisgICAgblszXSA9IGlkZXQqYTEy
OworICAgIG5bNF0gPSBpZGV0KmEyMjsKKyAgICBuWzVdID0gaWRldCphMzI7CisgICAgbls2XSA9
IGlkZXQqYTEzOworICAgIG5bN10gPSBpZGV0KmEyMzsKKyAgICBuWzhdID0gaWRldCphMzM7Cisg
ICAgcmV0dXJuIG47CisgIH0sCisKKyAgZnJ1c3R1bSA6IGZ1bmN0aW9uIChsZWZ0LCByaWdodCwg
Ym90dG9tLCB0b3AsIHpuZWFyLCB6ZmFyKSB7CisgICAgdmFyIFggPSAyKnpuZWFyLyhyaWdodC1s
ZWZ0KTsKKyAgICB2YXIgWSA9IDIqem5lYXIvKHRvcC1ib3R0b20pOworICAgIHZhciBBID0gKHJp
Z2h0K2xlZnQpLyhyaWdodC1sZWZ0KTsKKyAgICB2YXIgQiA9ICh0b3ArYm90dG9tKS8odG9wLWJv
dHRvbSk7CisgICAgdmFyIEMgPSAtKHpmYXIrem5lYXIpLyh6ZmFyLXpuZWFyKTsKKyAgICB2YXIg
RCA9IC0yKnpmYXIqem5lYXIvKHpmYXItem5lYXIpOworCisgICAgcmV0dXJuIFsKKyAgICAgIFgs
IDAsIDAsIDAsCisgICAgICAwLCBZLCAwLCAwLAorICAgICAgQSwgQiwgQywgLTEsCisgICAgICAw
LCAwLCBELCAwCisgICAgXTsKKyB9LAorCisgIHBlcnNwZWN0aXZlIDogZnVuY3Rpb24gKGZvdnks
IGFzcGVjdCwgem5lYXIsIHpmYXIpIHsKKyAgICB2YXIgeW1heCA9IHpuZWFyICogTWF0aC50YW4o
Zm92eSAqIE1hdGguUEkgLyAzNjAuMCk7CisgICAgdmFyIHltaW4gPSAteW1heDsKKyAgICB2YXIg
eG1pbiA9IHltaW4gKiBhc3BlY3Q7CisgICAgdmFyIHhtYXggPSB5bWF4ICogYXNwZWN0OworCisg
ICAgcmV0dXJuIHRoaXMuZnJ1c3R1bSh4bWluLCB4bWF4LCB5bWluLCB5bWF4LCB6bmVhciwgemZh
cik7CisgIH0sCisKKyAgbXVsNHg0IDogZnVuY3Rpb24gKGEsYikgeworICAgIHJldHVybiB0aGlz
Lm11bDR4NEluUGxhY2UoYSxiLHRoaXMubmV3SWRlbnRpdHkoKSk7CisgIH0sCisKKyAgbXVsNHg0
SW5QbGFjZSA6IGZ1bmN0aW9uIChhLCBiLCBjKSB7CisgICAgICAgIGNbMF0gPSAgIGJbMF0gKiBh
WzBdICsKKyAgICAgICAgICAgICAgICAgYlswKzFdICogYVs0XSArCisgICAgICAgICAgICAgICAg
IGJbMCsyXSAqIGFbOF0gKworICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzEyXTsKKyAgICAg
ICAgY1swKzFdID0gYlswXSAqIGFbMV0gKworICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzVd
ICsKKyAgICAgICAgICAgICAgICAgYlswKzJdICogYVs5XSArCisgICAgICAgICAgICAgICAgIGJb
MCszXSAqIGFbMTNdOworICAgICAgICBjWzArMl0gPSBiWzBdICogYVsyXSArCisgICAgICAgICAg
ICAgICAgIGJbMCsxXSAqIGFbNl0gKworICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzEwXSAr
CisgICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTRdOworICAgICAgICBjWzArM10gPSBiWzBd
ICogYVszXSArCisgICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFbN10gKworICAgICAgICAgICAg
ICAgICBiWzArMl0gKiBhWzExXSArCisgICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTVdOwor
ICAgICAgICBjWzRdID0gICBiWzRdICogYVswXSArCisgICAgICAgICAgICAgICAgIGJbNCsxXSAq
IGFbNF0gKworICAgICAgICAgICAgICAgICBiWzQrMl0gKiBhWzhdICsKKyAgICAgICAgICAgICAg
ICAgYls0KzNdICogYVsxMl07CisgICAgICAgIGNbNCsxXSA9IGJbNF0gKiBhWzFdICsKKyAgICAg
ICAgICAgICAgICAgYls0KzFdICogYVs1XSArCisgICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFb
OV0gKworICAgICAgICAgICAgICAgICBiWzQrM10gKiBhWzEzXTsKKyAgICAgICAgY1s0KzJdID0g
Yls0XSAqIGFbMl0gKworICAgICAgICAgICAgICAgICBiWzQrMV0gKiBhWzZdICsKKyAgICAgICAg
ICAgICAgICAgYls0KzJdICogYVsxMF0gKworICAgICAgICAgICAgICAgICBiWzQrM10gKiBhWzE0
XTsKKyAgICAgICAgY1s0KzNdID0gYls0XSAqIGFbM10gKworICAgICAgICAgICAgICAgICBiWzQr
MV0gKiBhWzddICsKKyAgICAgICAgICAgICAgICAgYls0KzJdICogYVsxMV0gKworICAgICAgICAg
ICAgICAgICBiWzQrM10gKiBhWzE1XTsKKyAgICAgICAgY1s4XSA9ICAgYls4XSAqIGFbMF0gKwor
ICAgICAgICAgICAgICAgICBiWzgrMV0gKiBhWzRdICsKKyAgICAgICAgICAgICAgICAgYls4KzJd
ICogYVs4XSArCisgICAgICAgICAgICAgICAgIGJbOCszXSAqIGFbMTJdOworICAgICAgICBjWzgr
MV0gPSBiWzhdICogYVsxXSArCisgICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbNV0gKworICAg
ICAgICAgICAgICAgICBiWzgrMl0gKiBhWzldICsKKyAgICAgICAgICAgICAgICAgYls4KzNdICog
YVsxM107CisgICAgICAgIGNbOCsyXSA9IGJbOF0gKiBhWzJdICsKKyAgICAgICAgICAgICAgICAg
Yls4KzFdICogYVs2XSArCisgICAgICAgICAgICAgICAgIGJbOCsyXSAqIGFbMTBdICsKKyAgICAg
ICAgICAgICAgICAgYls4KzNdICogYVsxNF07CisgICAgICAgIGNbOCszXSA9IGJbOF0gKiBhWzNd
ICsKKyAgICAgICAgICAgICAgICAgYls4KzFdICogYVs3XSArCisgICAgICAgICAgICAgICAgIGJb
OCsyXSAqIGFbMTFdICsKKyAgICAgICAgICAgICAgICAgYls4KzNdICogYVsxNV07CisgICAgICAg
IGNbMTJdID0gICBiWzEyXSAqIGFbMF0gKworICAgICAgICAgICAgICAgICBiWzEyKzFdICogYVs0
XSArCisgICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBhWzhdICsKKyAgICAgICAgICAgICAgICAg
YlsxMiszXSAqIGFbMTJdOworICAgICAgICBjWzEyKzFdID0gYlsxMl0gKiBhWzFdICsKKyAgICAg
ICAgICAgICAgICAgYlsxMisxXSAqIGFbNV0gKworICAgICAgICAgICAgICAgICBiWzEyKzJdICog
YVs5XSArCisgICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzEzXTsKKyAgICAgICAgY1sxMisy
XSA9IGJbMTJdICogYVsyXSArCisgICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzZdICsKKyAg
ICAgICAgICAgICAgICAgYlsxMisyXSAqIGFbMTBdICsKKyAgICAgICAgICAgICAgICAgYlsxMisz
XSAqIGFbMTRdOworICAgICAgICBjWzEyKzNdID0gYlsxMl0gKiBhWzNdICsKKyAgICAgICAgICAg
ICAgICAgYlsxMisxXSAqIGFbN10gKworICAgICAgICAgICAgICAgICBiWzEyKzJdICogYVsxMV0g
KworICAgICAgICAgICAgICAgICBiWzEyKzNdICogYVsxNV07CisgICAgcmV0dXJuIGM7CisgIH0s
CisKKyAgbXVsdjQgOiBmdW5jdGlvbiAoYSwgdikgeworICAgIGMgPSBuZXcgQXJyYXkoNCk7Cisg
ICAgZm9yICh2YXIgaT0wOyBpPDQ7ICsraSkgeworICAgICAgdmFyIHggPSAwOworICAgICAgZm9y
ICh2YXIgaz0wOyBrPDQ7ICsraykKKyAgICAgICAgeCArPSB2W2tdICogYVtrKjQraV07CisgICAg
ICBjW2ldID0geDsKKyAgICB9CisgICAgcmV0dXJuIGM7CisgIH0sCisKKyAgcm90YXRlIDogZnVu
Y3Rpb24gKGFuZ2xlLCBheGlzKSB7CisgICAgYXhpcyA9IFZlYzMubm9ybWFsaXplKGF4aXMpOwor
ICAgIHZhciB4PWF4aXNbMF0sIHk9YXhpc1sxXSwgej1heGlzWzJdOworICAgIHZhciBjID0gTWF0
aC5jb3MoYW5nbGUpOworICAgIHZhciBjMSA9IDEtYzsKKyAgICB2YXIgcyA9IE1hdGguc2luKGFu
Z2xlKTsKKyAgICByZXR1cm4gWworICAgICAgeCp4KmMxK2MsIHkqeCpjMSt6KnMsIHoqeCpjMS15
KnMsIDAsCisgICAgICB4KnkqYzEteipzLCB5KnkqYzErYywgeSp6KmMxK3gqcywgMCwKKyAgICAg
IHgqeipjMSt5KnMsIHkqeipjMS14KnMsIHoqeipjMStjLCAwLAorICAgICAgMCwwLDAsMQorICAg
IF07CisgIH0sCisgIHJvdGF0ZUluUGxhY2UgOiBmdW5jdGlvbihhbmdsZSwgYXhpcywgbSkgewor
ICAgIGF4aXMgPSBWZWMzLm5vcm1hbGl6ZShheGlzKTsKKyAgICB2YXIgeD1heGlzWzBdLCB5PWF4
aXNbMV0sIHo9YXhpc1syXTsKKyAgICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKKyAgICB2YXIg
YzEgPSAxLWM7CisgICAgdmFyIHMgPSBNYXRoLnNpbihhbmdsZSk7CisgICAgdmFyIHRtcE1hdHJp
eCA9IHRoaXMudG1wTWF0cml4OworICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBNYXRyaXgy
OworICAgIHRtcE1hdHJpeFswXSA9IHgqeCpjMStjOyB0bXBNYXRyaXhbMV0gPSB5KngqYzEreipz
OyB0bXBNYXRyaXhbMl0gPSB6KngqYzEteSpzOyB0bXBNYXRyaXhbM10gPSAwOworICAgIHRtcE1h
dHJpeFs0XSA9IHgqeSpjMS16KnM7IHRtcE1hdHJpeFs1XSA9IHkqeSpjMStjOyB0bXBNYXRyaXhb
Nl0gPSB5KnoqYzEreCpzOyB0bXBNYXRyaXhbN10gPSAwOworICAgIHRtcE1hdHJpeFs4XSA9IHgq
eipjMSt5KnM7IHRtcE1hdHJpeFs5XSA9IHkqeipjMS14KnM7IHRtcE1hdHJpeFsxMF0gPSB6Knoq
YzErYzsgdG1wTWF0cml4WzExXSA9IDA7CisgICAgdG1wTWF0cml4WzEyXSA9IDA7IHRtcE1hdHJp
eFsxM10gPSAwOyB0bXBNYXRyaXhbMTRdID0gMDsgdG1wTWF0cml4WzE1XSA9IDE7CisgICAgdGhp
cy5jb3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOworICAgIHJldHVybiB0aGlzLm11bDR4NEluUGxh
Y2UodG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKKyAgfSwKKworICBzY2FsZSA6IGZ1bmN0aW9u
KHYpIHsKKyAgICByZXR1cm4gWworICAgICAgdlswXSwgMCwgMCwgMCwKKyAgICAgIDAsIHZbMV0s
IDAsIDAsCisgICAgICAwLCAwLCB2WzJdLCAwLAorICAgICAgMCwgMCwgMCwgMQorICAgIF07Cisg
IH0sCisgIHNjYWxlMyA6IGZ1bmN0aW9uKHgseSx6KSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHgs
IDAsIDAsIDAsCisgICAgICAwLCB5LCAwLCAwLAorICAgICAgMCwgMCwgeiwgMCwKKyAgICAgIDAs
IDAsIDAsIDEKKyAgICBdOworICB9LAorICBzY2FsZTEgOiBmdW5jdGlvbihzKSB7CisgICAgcmV0
dXJuIFsKKyAgICAgIHMsIDAsIDAsIDAsCisgICAgICAwLCBzLCAwLCAwLAorICAgICAgMCwgMCwg
cywgMCwKKyAgICAgIDAsIDAsIDAsIDEKKyAgICBdOworICB9LAorICBzY2FsZTNJblBsYWNlIDog
ZnVuY3Rpb24oeCwgeSwgeiwgbSkgeworICAgIHZhciB0bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJp
eDsKKyAgICB2YXIgdG1wTWF0cml4MiA9IHRoaXMudG1wTWF0cml4MjsKKyAgICB0bXBNYXRyaXhb
MF0gPSB4OyB0bXBNYXRyaXhbMV0gPSAwOyB0bXBNYXRyaXhbMl0gPSAwOyB0bXBNYXRyaXhbM10g
PSAwOworICAgIHRtcE1hdHJpeFs0XSA9IDA7IHRtcE1hdHJpeFs1XSA9IHk7IHRtcE1hdHJpeFs2
XSA9IDA7IHRtcE1hdHJpeFs3XSA9IDA7CisgICAgdG1wTWF0cml4WzhdID0gMDsgdG1wTWF0cml4
WzldID0gMDsgdG1wTWF0cml4WzEwXSA9IHo7IHRtcE1hdHJpeFsxMV0gPSAwOworICAgIHRtcE1h
dHJpeFsxMl0gPSAwOyB0bXBNYXRyaXhbMTNdID0gMDsgdG1wTWF0cml4WzE0XSA9IDA7IHRtcE1h
dHJpeFsxNV0gPSAxOworICAgIHRoaXMuY29weU1hdHJpeChtLCB0bXBNYXRyaXgyKTsKKyAgICBy
ZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKHRtcE1hdHJpeDIsIHRtcE1hdHJpeCwgbSk7CisgIH0s
CisgIHNjYWxlMUluUGxhY2UgOiBmdW5jdGlvbihzLCBtKSB7IHJldHVybiB0aGlzLnNjYWxlM0lu
UGxhY2UocywgcywgcywgbSk7IH0sCisgIHNjYWxlSW5QbGFjZSA6IGZ1bmN0aW9uKHMsIG0pIHsg
cmV0dXJuIHRoaXMuc2NhbGUzSW5QbGFjZShzWzBdLHNbMV0sc1syXSxtKTsgfSwKKworICB0cmFu
c2xhdGUzIDogZnVuY3Rpb24oeCx5LHopIHsKKyAgICByZXR1cm4gWworICAgICAgMSwgMCwgMCwg
MCwKKyAgICAgIDAsIDEsIDAsIDAsCisgICAgICAwLCAwLCAxLCAwLAorICAgICAgeCwgeSwgeiwg
MQorICAgIF07CisgIH0sCisKKyAgdHJhbnNsYXRlIDogZnVuY3Rpb24odikgeworICAgIHJldHVy
biB0aGlzLnRyYW5zbGF0ZTModlswXSwgdlsxXSwgdlsyXSk7CisgIH0sCisgIHRtcE1hdHJpeCA6
IFswLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwXSwKKyAgdG1wTWF0cml4MiA6IFsw
LDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwXSwKKyAgdHJhbnNsYXRlM0luUGxhY2Ug
OiBmdW5jdGlvbih4LHkseixtKSB7CisgICAgdmFyIHRtcE1hdHJpeCA9IHRoaXMudG1wTWF0cml4
OworICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBNYXRyaXgyOworICAgIHRtcE1hdHJpeFsw
XSA9IDE7IHRtcE1hdHJpeFsxXSA9IDA7IHRtcE1hdHJpeFsyXSA9IDA7IHRtcE1hdHJpeFszXSA9
IDA7CisgICAgdG1wTWF0cml4WzRdID0gMDsgdG1wTWF0cml4WzVdID0gMTsgdG1wTWF0cml4WzZd
ID0gMDsgdG1wTWF0cml4WzddID0gMDsKKyAgICB0bXBNYXRyaXhbOF0gPSAwOyB0bXBNYXRyaXhb
OV0gPSAwOyB0bXBNYXRyaXhbMTBdID0gMTsgdG1wTWF0cml4WzExXSA9IDA7CisgICAgdG1wTWF0
cml4WzEyXSA9IHg7IHRtcE1hdHJpeFsxM10gPSB5OyB0bXBNYXRyaXhbMTRdID0gejsgdG1wTWF0
cml4WzE1XSA9IDE7CisgICAgdGhpcy5jb3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOworICAgIHJl
dHVybiB0aGlzLm11bDR4NEluUGxhY2UodG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKKyAgfSwK
KyAgdHJhbnNsYXRlSW5QbGFjZSA6IGZ1bmN0aW9uKHYsbSl7IHJldHVybiB0aGlzLnRyYW5zbGF0
ZTNJblBsYWNlKHZbMF0sIHZbMV0sIHZbMl0sIG0pOyB9LAorCisgIGxvb2tBdCA6IGZ1bmN0aW9u
IChleWUsIGNlbnRlciwgdXApIHsKKyAgICB2YXIgeiA9IFZlYzMuZGlyZWN0aW9uKGV5ZSwgY2Vu
dGVyKTsKKyAgICB2YXIgeCA9IFZlYzMubm9ybWFsaXplSW5QbGFjZShWZWMzLmNyb3NzKHVwLCB6
KSk7CisgICAgdmFyIHkgPSBWZWMzLm5vcm1hbGl6ZUluUGxhY2UoVmVjMy5jcm9zcyh6LCB4KSk7
CisKKyAgICB2YXIgbSA9IFsKKyAgICAgIHhbMF0sIHlbMF0sIHpbMF0sIDAsCisgICAgICB4WzFd
LCB5WzFdLCB6WzFdLCAwLAorICAgICAgeFsyXSwgeVsyXSwgelsyXSwgMCwKKyAgICAgIDAsIDAs
IDAsIDEKKyAgICBdOworCisgICAgdmFyIHQgPSBbCisgICAgICAxLCAwLCAwLCAwLAorICAgICAg
MCwgMSwgMCwgMCwKKyAgICAgIDAsIDAsIDEsIDAsCisgICAgICAtZXllWzBdLCAtZXllWzFdLCAt
ZXllWzJdLCAxCisgICAgXTsKKworICAgIHJldHVybiB0aGlzLm11bDR4NChtLHQpOworICB9LAor
CisgIHRyYW5zcG9zZTR4NCA6IGZ1bmN0aW9uKG0pIHsKKyAgICByZXR1cm4gWworICAgICAgbVsw
XSwgbVs0XSwgbVs4XSwgbVsxMl0sCisgICAgICBtWzFdLCBtWzVdLCBtWzldLCBtWzEzXSwKKyAg
ICAgIG1bMl0sIG1bNl0sIG1bMTBdLCBtWzE0XSwKKyAgICAgIG1bM10sIG1bN10sIG1bMTFdLCBt
WzE1XQorICAgIF07CisgIH0sCisKKyAgdHJhbnNwb3NlNHg0SW5QbGFjZSA6IGZ1bmN0aW9uKG0p
IHsKKyAgICB2YXIgdG1wID0gMC4wOworICAgIHRtcCA9IG1bMV07IG1bMV0gPSBtWzRdOyBtWzRd
ID0gdG1wOworICAgIHRtcCA9IG1bMl07IG1bMl0gPSBtWzhdOyBtWzhdID0gdG1wOworICAgIHRt
cCA9IG1bM107IG1bM10gPSBtWzEyXTsgbVsxMl0gPSB0bXA7CisgICAgdG1wID0gbVs2XTsgbVs2
XSA9IG1bOV07IG1bOV0gPSB0bXA7CisgICAgdG1wID0gbVs3XTsgbVs3XSA9IG1bMTNdOyBtWzEz
XSA9IHRtcDsKKyAgICB0bXAgPSBtWzExXTsgbVsxMV0gPSBtWzE0XTsgbVsxNF0gPSB0bXA7Cisg
ICAgcmV0dXJuIG07CisgIH0sCisKKyAgdHJhbnNwb3NlM3gzIDogZnVuY3Rpb24obSkgeworICAg
IHJldHVybiBbCisgICAgICBtWzBdLCBtWzNdLCBtWzZdLAorICAgICAgbVsxXSwgbVs0XSwgbVs3
XSwKKyAgICAgIG1bMl0sIG1bNV0sIG1bOF0KKyAgICBdOworICB9LAorCisgIHRyYW5zcG9zZTN4
M0luUGxhY2UgOiBmdW5jdGlvbihtKSB7CisgICAgdmFyIHRtcCA9IDAuMDsKKyAgICB0bXAgPSBt
WzFdOyBtWzFdID0gbVszXTsgbVszXSA9IHRtcDsKKyAgICB0bXAgPSBtWzJdOyBtWzJdID0gbVs2
XTsgbVs2XSA9IHRtcDsKKyAgICB0bXAgPSBtWzVdOyBtWzVdID0gbVs3XTsgbVs3XSA9IHRtcDsK
KyAgICByZXR1cm4gbTsKKyAgfSwKK30KKworVmVjMyA9IHsKKyAgbWFrZSA6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gWzAsMCwwXTsgfSwKKyAgY29weSA6IGZ1bmN0aW9uKHYpIHsgcmV0dXJuIFt2WzBd
LHZbMV0sdlsyXV07IH0sCisKKyAgYWRkIDogZnVuY3Rpb24gKHUsdikgeworICAgIHJldHVybiBb
dVswXSt2WzBdLCB1WzFdK3ZbMV0sIHVbMl0rdlsyXV07CisgIH0sCisKKyAgc3ViIDogZnVuY3Rp
b24gKHUsdikgeworICAgIHJldHVybiBbdVswXS12WzBdLCB1WzFdLXZbMV0sIHVbMl0tdlsyXV07
CisgIH0sCisKKyAgbmVnYXRlIDogZnVuY3Rpb24gKHUpIHsKKyAgICByZXR1cm4gWy11WzBdLCAt
dVsxXSwgLXVbMl1dOworICB9LAorCisgIGRpcmVjdGlvbiA6IGZ1bmN0aW9uICh1LHYpIHsKKyAg
ICByZXR1cm4gdGhpcy5ub3JtYWxpemVJblBsYWNlKHRoaXMuc3ViKHUsdikpOworICB9LAorCisg
IG5vcm1hbGl6ZUluUGxhY2UgOiBmdW5jdGlvbih2KSB7CisgICAgdmFyIGltYWcgPSAxLjAgLyBN
YXRoLnNxcnQodlswXSp2WzBdICsgdlsxXSp2WzFdICsgdlsyXSp2WzJdKTsKKyAgICB2WzBdICo9
IGltYWc7IHZbMV0gKj0gaW1hZzsgdlsyXSAqPSBpbWFnOworICAgIHJldHVybiB2OworICB9LAor
CisgIG5vcm1hbGl6ZSA6IGZ1bmN0aW9uKHYpIHsKKyAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVJ
blBsYWNlKHRoaXMuY29weSh2KSk7CisgIH0sCisKKyAgc2NhbGUgOiBmdW5jdGlvbihmLCB2KSB7
CisgICAgcmV0dXJuIFtmKnZbMF0sIGYqdlsxXSwgZip2WzJdXTsKKyAgfSwKKworICBkb3QgOiBm
dW5jdGlvbih1LHYpIHsKKyAgICByZXR1cm4gdVswXSp2WzBdICsgdVsxXSp2WzFdICsgdVsyXSp2
WzJdOworICB9LAorCisgIGlubmVyIDogZnVuY3Rpb24odSx2KSB7CisgICAgcmV0dXJuIFt1WzBd
KnZbMF0sIHVbMV0qdlsxXSwgdVsyXSp2WzJdXTsKKyAgfSwKKworICBjcm9zcyA6IGZ1bmN0aW9u
KHUsdikgeworICAgIHJldHVybiBbCisgICAgICB1WzFdKnZbMl0gLSB1WzJdKnZbMV0sCisgICAg
ICB1WzJdKnZbMF0gLSB1WzBdKnZbMl0sCisgICAgICB1WzBdKnZbMV0gLSB1WzFdKnZbMF0KKyAg
ICBdOworICB9Cit9CisKK1NoYWRlciA9IGZ1bmN0aW9uKGdsKXsKKyAgdGhpcy5nbCA9IGdsOwor
ICB0aGlzLnNoYWRlcnMgPSBbXTsKKyAgdGhpcy51bmlmb3JtTG9jYXRpb25zID0ge307CisgIHRo
aXMuYXR0cmliTG9jYXRpb25zID0ge307CisgIGZvciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVu
Z3RoOyBpKyspIHsKKyAgICB0aGlzLnNoYWRlcnMucHVzaChhcmd1bWVudHNbaV0pOworICB9Cit9
CitTaGFkZXIucHJvdG90eXBlID0geworICBpZCA6IG51bGwsCisgIGdsIDogbnVsbCwKKyAgY29t
cGlsZWQgOiBmYWxzZSwKKyAgc2hhZGVyIDogbnVsbCwKKyAgc2hhZGVycyA6IFtdLAorCisgIGRl
c3Ryb3kgOiBmdW5jdGlvbigpIHsKKyAgICBpZiAodGhpcy5zaGFkZXIgIT0gbnVsbCkgZGVsZXRl
U2hhZGVyKHRoaXMuZ2wsIHRoaXMuc2hhZGVyKTsKKyAgfSwKKworICBjb21waWxlIDogZnVuY3Rp
b24oKSB7CisgICAgdGhpcy5zaGFkZXIgPSBsb2FkU2hhZGVyQXJyYXkodGhpcy5nbCwgdGhpcy5z
aGFkZXJzKTsKKyAgfSwKKworICB1c2UgOiBmdW5jdGlvbigpIHsKKyAgICBpZiAodGhpcy5zaGFk
ZXIgPT0gbnVsbCkKKyAgICAgIHRoaXMuY29tcGlsZSgpOworICAgIHRoaXMuZ2wudXNlUHJvZ3Jh
bSh0aGlzLnNoYWRlci5wcm9ncmFtKTsKKyAgfSwKKworICB1bmlmb3JtMWZ2IDogZnVuY3Rpb24o
bmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRo
aXMuZ2wudW5pZm9ybTFmdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtMmZ2IDogZnVu
Y3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwor
ICAgIHRoaXMuZ2wudW5pZm9ybTJmdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtM2Z2
IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5h
bWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTNmdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlm
b3JtNGZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlm
b3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTRmdihsb2MsIHZhbHVlKTsKKyAgfSwKKwor
ICB1bmlmb3JtMWYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlz
LnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtMWYobG9jLCB2YWx1ZSk7CisgIH0s
CisKKyAgdW5pZm9ybTJmIDogZnVuY3Rpb24obmFtZSwgdjEsdjIpIHsKKyAgICB2YXIgbG9jID0g
dGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTJmKGxvYywgdjEsdjIpOwor
ICB9LAorCisgIHVuaWZvcm0zZiA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzKSB7CisgICAgdmFy
IGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0zZihsb2MsIHYx
LHYyLHYzKTsKKyAgfSwKKworICB1bmlmb3JtNGYgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2Myx2
NCkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlm
b3JtNGYobG9jLCB2MSwgdjIsIHYzLCB2NCk7CisgIH0sCisKKyAgdW5pZm9ybTFpdiA6IGZ1bmN0
aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAg
ICB0aGlzLmdsLnVuaWZvcm0xaXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTJpdiA6
IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1l
KTsKKyAgICB0aGlzLmdsLnVuaWZvcm0yaXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9y
bTNpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9y
bShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0zaXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAg
dW5pZm9ybTRpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMu
dW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm00aXYobG9jLCB2YWx1ZSk7CisgIH0s
CisKKyAgdW5pZm9ybTFpIDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0g
dGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTFpKGxvYywgdmFsdWUpOwor
ICB9LAorCisgIHVuaWZvcm0yaSA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyKSB7CisgICAgdmFyIGxv
YyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0yaShsb2MsIHYxLHYy
KTsKKyAgfSwKKworICB1bmlmb3JtM2kgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2MykgeworICAg
IHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtM2kobG9j
LCB2MSx2Mix2Myk7CisgIH0sCisKKyAgdW5pZm9ybTRpIDogZnVuY3Rpb24obmFtZSwgdjEsdjIs
djMsdjQpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wu
dW5pZm9ybTRpKGxvYywgdjEsIHYyLCB2MywgdjQpOworICB9LAorCisgIHVuaWZvcm1NYXRyaXg0
ZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0o
bmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtTWF0cml4NGZ2KGxvYywgZmFsc2UsIHZhbHVlKTsK
KyAgfSwKKworICB1bmlmb3JtTWF0cml4M2Z2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAg
ICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJp
eDNmdihsb2MsIGZhbHNlLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybU1hdHJpeDJmdiA6IGZ1
bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsK
KyAgICB0aGlzLmdsLnVuaWZvcm1NYXRyaXgyZnYobG9jLCBmYWxzZSwgdmFsdWUpOworICB9LAor
CisgIGF0dHJpYiA6IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICBpZiAodGhpcy5hdHRyaWJMb2NhdGlv
bnNbbmFtZV0gPT0gbnVsbCkgeworICAgICAgdmFyIGxvYyA9IHRoaXMuZ2wuZ2V0QXR0cmliTG9j
YXRpb24odGhpcy5zaGFkZXIucHJvZ3JhbSwgbmFtZSk7CisgICAgICB0aGlzLmF0dHJpYkxvY2F0
aW9uc1tuYW1lXSA9IGxvYzsKKyAgICB9CisgICAgcmV0dXJuIHRoaXMuYXR0cmliTG9jYXRpb25z
W25hbWVdOworICB9LAorCisgIHVuaWZvcm0gOiBmdW5jdGlvbihuYW1lKSB7CisgICAgaWYgKHRo
aXMudW5pZm9ybUxvY2F0aW9uc1tuYW1lXSA9PSBudWxsKSB7CisgICAgICB2YXIgbG9jID0gdGhp
cy5nbC5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5zaGFkZXIucHJvZ3JhbSwgbmFtZSk7CisgICAg
ICB0aGlzLnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV0gPSBsb2M7CisgICAgfQorICAgIHJldHVybiB0
aGlzLnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV07CisgIH0KK30KK0ZpbHRlciA9IGZ1bmN0aW9uKGds
LCBzaGFkZXIpIHsKKyAgU2hhZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cit9CitGaWx0ZXIu
cHJvdG90eXBlID0gbmV3IFNoYWRlcigpOworRmlsdGVyLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0
aW9uKGluaXQpIHsKKyAgdGhpcy51c2UoKTsKKyAgdmFyIHZhID0gdGhpcy5hdHRyaWIoIlZlcnRl
eCIpOworICB2YXIgdGEgPSB0aGlzLmF0dHJpYigiVGV4Iik7CisgIHZhciB2Ym8gPSBRdWFkLmdl
dENhY2hlZFZCTyh0aGlzLmdsKTsKKyAgaWYgKGluaXQpIGluaXQodGhpcyk7CisgIHZiby5kcmF3
KHZhLCBudWxsLCB0YSk7Cit9CisKKworVkJPID0gZnVuY3Rpb24oZ2wpIHsKKyAgdGhpcy5nbCA9
IGdsOworICB0aGlzLmRhdGEgPSBbXTsKKyAgdGhpcy5lbGVtZW50c1ZCTyA9IG51bGw7CisgIGZv
ciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICBpZiAoYXJndW1lbnRz
W2ldLmVsZW1lbnRzKQorICAgICAgdGhpcy5lbGVtZW50cyA9IGFyZ3VtZW50c1tpXTsKKyAgICBl
bHNlCisgICAgICB0aGlzLmRhdGEucHVzaChhcmd1bWVudHNbaV0pOworICB9Cit9CisKK1ZCTy5w
cm90b3R5cGUgPSB7CisgIGluaXRpYWxpemVkIDogZmFsc2UsCisgIGxlbmd0aCA6IDAsCisgIHZi
b3MgOiBudWxsLAorICB0eXBlIDogJ1RSSUFOR0xFUycsCisgIGVsZW1lbnRzVkJPIDogbnVsbCwK
KyAgZWxlbWVudHMgOiBudWxsLAorCisgIHNldERhdGEgOiBmdW5jdGlvbigpIHsKKyAgICB0aGlz
LmRlc3Ryb3koKTsKKyAgICB0aGlzLmRhdGEgPSBbXTsKKyAgICBmb3IgKHZhciBpPTA7IGk8YXJn
dW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICBpZiAoYXJndW1lbnRzW2ldLmVsZW1lbnRzKQor
ICAgICAgICB0aGlzLmVsZW1lbnRzID0gYXJndW1lbnRzW2ldOworICAgICAgZWxzZQorICAgICAg
ICB0aGlzLmRhdGEucHVzaChhcmd1bWVudHNbaV0pOworICAgIH0KKyAgfSwKKworICBkZXN0cm95
IDogZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMudmJvcyAhPSBudWxsKQorICAgICAgZm9yICh2
YXIgaT0wOyBpPHRoaXMudmJvcy5sZW5ndGg7IGkrKykKKyAgICAgICAgdGhpcy5nbC5kZWxldGVC
dWZmZXIodGhpcy52Ym9zW2ldKTsKKyAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAhPSBudWxsKQor
ICAgICAgdGhpcy5nbC5kZWxldGVCdWZmZXIodGhpcy5lbGVtZW50c1ZCTyk7CisgICAgdGhpcy5s
ZW5ndGggPSB0aGlzLmVsZW1lbnRzTGVuZ3RoID0gMDsKKyAgICB0aGlzLnZib3MgPSB0aGlzLmVs
ZW1lbnRzVkJPID0gbnVsbDsKKyAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7CisgIH0sCisK
KyAgaW5pdCA6IGZ1bmN0aW9uKCkgeworICAgIHRoaXMuZGVzdHJveSgpOworICAgIHZhciBnbCA9
IHRoaXMuZ2w7CisKKyAgICBnbC5nZXRFcnJvcigpOworICAgIHZhciB2Ym9zID0gW107CisgICAg
dmFyIGxlbmd0aCA9IDA7CisgICAgZm9yICh2YXIgaT0wOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkr
KykKKyAgICAgIHZib3MucHVzaChnbC5jcmVhdGVCdWZmZXIoKSk7CisgICAgaWYgKHRoaXMuZWxl
bWVudHMgIT0gbnVsbCkKKyAgICAgIHRoaXMuZWxlbWVudHNWQk8gPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgICB0cnkgeworICAgICAgdGhyb3dFcnJvcihnbCwgImdlbkJ1ZmZlcnMiKTsKKyAgICAg
IGZvciAodmFyIGkgPSAwOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIg
ZCA9IHRoaXMuZGF0YVtpXTsKKyAgICAgICAgdmFyIGRsZW4gPSBNYXRoLmZsb29yKGQuZGF0YS5s
ZW5ndGggLyBkLnNpemUpOworICAgICAgICBpZiAoaSA9PSAwIHx8IGRsZW4gPCBsZW5ndGgpCisg
ICAgICAgICAgICBsZW5ndGggPSBkbGVuOworICAgICAgICBpZiAoIWQuZmxvYXRBcnJheSkKKyAg
ICAgICAgICBkLmZsb2F0QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KGQuZGF0YSk7CisgICAgICAg
IGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym9zW2ldKTsKKyAgICAgICAgdGhyb3dF
cnJvcihnbCwgImJpbmRCdWZmZXIiKTsKKyAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIGQuZmxvYXRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworICAgICAgICB0aHJvd0Vycm9y
KGdsLCAiYnVmZmVyRGF0YSIpOworICAgICAgfQorICAgICAgaWYgKHRoaXMuZWxlbWVudHNWQk8g
IT0gbnVsbCkgeworICAgICAgICB2YXIgZCA9IHRoaXMuZWxlbWVudHM7CisgICAgICAgIHRoaXMu
ZWxlbWVudHNMZW5ndGggPSBkLmRhdGEubGVuZ3RoOworICAgICAgICB0aGlzLmVsZW1lbnRzVHlw
ZSA9IGQudHlwZSA9PSBnbC5VTlNJR05FRF9CWVRFID8gZC50eXBlIDogZ2wuVU5TSUdORURfU0hP
UlQ7CisgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIHRoaXMu
ZWxlbWVudHNWQk8pOworICAgICAgICB0aHJvd0Vycm9yKGdsLCAiYmluZEJ1ZmZlciBFTEVNRU5U
X0FSUkFZX0JVRkZFUiIpOworICAgICAgICBpZiAodGhpcy5lbGVtZW50c1R5cGUgPT0gZ2wuVU5T
SUdORURfU0hPUlQgJiYgIWQudXNob3J0QXJyYXkpIHsKKyAgICAgICAgICBkLnVzaG9ydEFycmF5
ID0gbmV3IFVpbnQxNkFycmF5KGQuZGF0YSk7CisgICAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5F
TEVNRU5UX0FSUkFZX0JVRkZFUiwgZC51c2hvcnRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworICAg
ICAgICB9IGVsc2UgaWYgKHRoaXMuZWxlbWVudHNUeXBlID09IGdsLlVOU0lHTkVEX0JZVEUgJiYg
IWQudWJ5dGVBcnJheSkgeworICAgICAgICAgIGQudWJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5
KGQuZGF0YSk7CisgICAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZF
UiwgZC51Ynl0ZUFycmF5LCBnbC5TVEFUSUNfRFJBVyk7CisgICAgICAgIH0KKyAgICAgICAgdGhy
b3dFcnJvcihnbCwgImJ1ZmZlckRhdGEgRUxFTUVOVF9BUlJBWV9CVUZGRVIiKTsKKyAgICAgIH0K
KyAgICB9IGNhdGNoKGUpIHsKKyAgICAgIGZvciAodmFyIGk9MDsgaTx2Ym9zLmxlbmd0aDsgaSsr
KQorICAgICAgICBnbC5kZWxldGVCdWZmZXIodmJvc1tpXSk7CisgICAgICB0aHJvdyhlKTsKKyAg
ICB9CisKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgbnVsbCk7CisgICAgZ2wu
YmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbnVsbCk7CisKKyAgICB0aGlzLmxl
bmd0aCA9IGxlbmd0aDsKKyAgICB0aGlzLnZib3MgPSB2Ym9zOworCisgICAgdGhpcy5pbml0aWFs
aXplZCA9IHRydWU7CisgIH0sCisKKyAgdXNlIDogZnVuY3Rpb24oKSB7CisgICAgaWYgKCF0aGlz
LmluaXRpYWxpemVkKSB0aGlzLmluaXQoKTsKKyAgICB2YXIgZ2wgPSB0aGlzLmdsOworICAgIGZv
ciAodmFyIGk9MDsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgIGlmIChhcmd1bWVu
dHNbaV0gPT0gbnVsbCkgY29udGludWU7CisgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JV
RkZFUiwgdGhpcy52Ym9zW2ldKTsKKyAgICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoYXJndW1l
bnRzW2ldLCB0aGlzLmRhdGFbaV0uc2l6ZSwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgICAg
IGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGFyZ3VtZW50c1tpXSk7CisgICAgfQorICAgIGlm
ICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpIHsKKyAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIHRoaXMuZWxlbWVudHNWQk8pOworICAgIH0KKyAgfSwKKworICBk
cmF3IDogZnVuY3Rpb24oKSB7CisgICAgdmFyIGFyZ3MgPSBbXTsKKyAgICB0aGlzLnVzZS5hcHBs
eSh0aGlzLCBhcmd1bWVudHMpOworICAgIHZhciBnbCA9IHRoaXMuZ2w7CisgICAgaWYgKHRoaXMu
ZWxlbWVudHNWQk8gIT0gbnVsbCkgeworICAgICAgZ2wuZHJhd0VsZW1lbnRzKGdsW3RoaXMudHlw
ZV0sIHRoaXMuZWxlbWVudHNMZW5ndGgsIHRoaXMuZWxlbWVudHNUeXBlLCAwKTsKKyAgICB9IGVs
c2UgeworICAgICAgZ2wuZHJhd0FycmF5cyhnbFt0aGlzLnR5cGVdLCAwLCB0aGlzLmxlbmd0aCk7
CisgICAgfQorICB9Cit9CisKK0ZCTyA9IGZ1bmN0aW9uKGdsLCB3aWR0aCwgaGVpZ2h0LCB1c2Vf
ZGVwdGgpIHsKKyAgdGhpcy5nbCA9IGdsOworICB0aGlzLndpZHRoID0gd2lkdGg7CisgIHRoaXMu
aGVpZ2h0ID0gaGVpZ2h0OworICBpZiAodXNlX2RlcHRoICE9IG51bGwpCisgICAgdGhpcy51c2VE
ZXB0aCA9IHVzZV9kZXB0aDsKK30KK0ZCTy5wcm90b3R5cGUgPSB7CisgIGluaXRpYWxpemVkIDog
ZmFsc2UsCisgIHVzZURlcHRoIDogdHJ1ZSwKKyAgZmJvIDogbnVsbCwKKyAgcmJvIDogbnVsbCwK
KyAgdGV4dHVyZSA6IG51bGwsCisKKyAgZGVzdHJveSA6IGZ1bmN0aW9uKCkgeworICAgIGlmICh0
aGlzLmZibykgdGhpcy5nbC5kZWxldGVGcmFtZWJ1ZmZlcih0aGlzLmZibyk7CisgICAgaWYgKHRo
aXMucmJvKSB0aGlzLmdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcih0aGlzLnJibyk7CisgICAgaWYgKHRo
aXMudGV4dHVyZSkgdGhpcy5nbC5kZWxldGVUZXh0dXJlKHRoaXMudGV4dHVyZSk7CisgIH0sCisK
KyAgaW5pdCA6IGZ1bmN0aW9uKCkgeworICAgIHZhciBnbCA9IHRoaXMuZ2w7CisgICAgdmFyIHcg
PSB0aGlzLndpZHRoLCBoID0gdGhpcy5oZWlnaHQ7CisgICAgdmFyIGZibyA9IHRoaXMuZmJvICE9
IG51bGwgPyB0aGlzLmZibyA6IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgICAgdmFyIHJiOwor
CisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOworICAgIGNoZWNr
RXJyb3IoZ2wsICJGQk8uaW5pdCBiaW5kRnJhbWVidWZmZXIiKTsKKyAgICBpZiAodGhpcy51c2VE
ZXB0aCkgeworICAgICAgcmIgPSB0aGlzLnJibyAhPSBudWxsID8gdGhpcy5yYm8gOiBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKTsKKyAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVG
RkVSLCByYik7CisgICAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZFJlbmRlcmJ1ZmZl
ciIpOworICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRF
UFRIX0NPTVBPTkVOVDE2LCB3LCBoKTsKKyAgICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBy
ZW5kZXJidWZmZXJTdG9yYWdlIik7CisgICAgfQorCisgICAgdmFyIHRleCA9IHRoaXMudGV4dHVy
ZSAhPSBudWxsID8gdGhpcy50ZXh0dXJlIDogZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgdHJ5IHsKKyAgICAgIGdsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgdywgaCwgMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgbnVsbCk7CisgICAgfSBjYXRjaCAoZSkgeyAvLyBhcmdoLCBubyBudWxsIHRl
eHR1cmUgc3VwcG9ydAorICAgICAgdmFyIHRtcCA9IHRoaXMuZ2V0VGVtcENhbnZhcyh3LGgpOwor
ICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCB0bXApOworICAgIH0KKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9U
T19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICBjaGVja0Vycm9yKGds
LCAiRkJPLmluaXQgdGV4Iik7CisKKyAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFN
RUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7Cisg
ICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmQgdGV4Iik7CisKKyAgICBpZiAodGhpcy51
c2VEZXB0aCkgeworICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgcmIpOworICAgICAgY2hl
Y2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmQgZGVwdGggYnVmZmVyIik7CisgICAgfQorCisgICAg
dmFyIGZic3RhdCA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpOwor
ICAgIGlmIChmYnN0YXQgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKKyAgICAgIHZhciBn
bHY7CisgICAgICBmb3IgKHZhciB2IGluIGdsKSB7CisgICAgICAgIHRyeSB7IGdsdiA9IGdsW3Zd
OyB9IGNhdGNoIChlKSB7IGdsdiA9IG51bGw7IH0KKyAgICAgICAgaWYgKGdsdiA9PSBmYnN0YXQp
IHsgZmJzdGF0ID0gdjsgYnJlYWs7IH19CisgICAgICAgIGxvZygiRnJhbWVidWZmZXIgc3RhdHVz
OiAiICsgZmJzdGF0KTsKKyAgICB9CisgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGNoZWNr
IGZibyIpOworCisgICAgdGhpcy5mYm8gPSBmYm87CisgICAgdGhpcy5yYm8gPSByYjsKKyAgICB0
aGlzLnRleHR1cmUgPSB0ZXg7CisgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisgIH0sCisK
KyAgZ2V0VGVtcENhbnZhcyA6IGZ1bmN0aW9uKHcsIGgpIHsKKyAgICBpZiAoIUZCTy50ZW1wQ2Fu
dmFzKSB7CisgICAgICBGQk8udGVtcENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Nh
bnZhcycpOworICAgIH0KKyAgICBGQk8udGVtcENhbnZhcy53aWR0aCA9IHc7CisgICAgRkJPLnRl
bXBDYW52YXMuaGVpZ2h0ID0gaDsKKyAgICByZXR1cm4gRkJPLnRlbXBDYW52YXM7CisgIH0sCisK
KyAgdXNlIDogZnVuY3Rpb24oKSB7CisgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB0aGlzLmlu
aXQoKTsKKyAgICB0aGlzLmdsLmJpbmRGcmFtZWJ1ZmZlcih0aGlzLmdsLkZSQU1FQlVGRkVSLCB0
aGlzLmZibyk7CisgIH0KK30KKworZnVuY3Rpb24gR0xFcnJvcihlcnIsIG1zZywgZmlsZU5hbWUs
IGxpbmVOdW1iZXIpIHsKKyAgdGhpcy5tZXNzYWdlID0gbXNnOworICB0aGlzLmdsRXJyb3IgPSBl
cnI7Cit9CisKK0dMRXJyb3IucHJvdG90eXBlID0gbmV3IEVycm9yKCk7CisKK2Z1bmN0aW9uIG1h
a2VHTEVycm9yV3JhcHBlcihnbCwgZm5hbWUpIHsKKyAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAg
ICB0cnkgeworICAgICAgdmFyIHJ2ID0gZ2xbZm5hbWVdLmFwcGx5KGdsLCBhcmd1bWVudHMpOwor
ICAgICAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7CisgICAgICBpZiAoZXJyICE9IGdsLk5PX0VS
Uk9SKSB7CisgICAgICAgIHRocm93KG5ldyBHTEVycm9yKAorICAgICAgICAgICAgZXJyLCAiR0wg
ZXJyb3IgIitnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikrIiBpbiAiK2ZuYW1lKSk7CisgICAg
ICB9CisgICAgICByZXR1cm4gcnY7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgaWYgKGUuZ2xF
cnJvciAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRocm93IGU7CisgICAgICB9CisgICAgICB0
aHJvdyhuZXcgRXJyb3IoIlRocmV3ICIgKyBlLm5hbWUgKworICAgICAgICAgICAgICAgICAgICAg
ICIgaW4gIiArIGZuYW1lICsgIlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgZS5tZXNzYWdl
ICsgIlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzLmNhbGxlZS5jYWxsZXIp
KTsKKyAgICB9CisgIH0pOworfQorCitmdW5jdGlvbiB3cmFwR0xDb250ZXh0KGdsKSB7CisgIHZh
ciB3cmFwID0ge307CisgIGZvciAodmFyIGkgaW4gZ2wpIHsKKyAgICB0cnkgeworICAgICAgaWYg
KHR5cGVvZiBnbFtpXSA9PSAnZnVuY3Rpb24nKSB7CisgICAgICAgICAgd3JhcFtpXSA9IG1ha2VH
TEVycm9yV3JhcHBlcihnbCwgaSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHdyYXBbaV0g
PSBnbFtpXTsKKyAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAvLyBsb2coIndyYXBH
TENvbnRleHQ6IEVycm9yIGFjY2Vzc2luZyAiICsgaSk7CisgICAgfQorICB9CisgIHdyYXAuZ2V0
RXJyb3IgPSBmdW5jdGlvbigpeyByZXR1cm4gZ2wuZ2V0RXJyb3IoKTsgfTsKKyAgcmV0dXJuIHdy
YXA7Cit9CisKK2Z1bmN0aW9uIGdldEdMQ29udGV4dChjYW52YXMpIHsKKyAgcmV0dXJuIGNhbnZh
cy5nZXRDb250ZXh0KEdMX0NPTlRFWFRfSUQsIHthbnRpYWxpYXM6IGZhbHNlfSk7Cit9CisKKy8v
IEFzc2VydCB0aGF0IGYgZ2VuZXJhdGVzIGEgc3BlY2lmaWMgR0wgZXJyb3IuCitmdW5jdGlvbiBh
c3NlcnRHTEVycm9yKGdsLCBlcnIsIG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0g
bmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdmFyIGdsRXJyID0gMDsK
KyAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyBnbEVyciA9IGUuZ2xFcnJvcjsgfQor
ICBpZiAoZ2xFcnIgIT09IGVycikgeworICAgIGlmIChnbEVyciA9PT0gdW5kZWZpbmVkKSB7Cisg
ICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBVTkVYUEVDVEVEIEVYQ0VQVElPTiIsIG5h
bWUsIGYpOworICAgIH0gZWxzZSB7CisgICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBl
eHBlY3RlZDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSArCisgICAgICAgICAgICAg
ICAgICIgYWN0dWFsOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVyciksIG5hbWUsIGYp
OworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKKy8v
IEFzc2VydCB0aGF0IGYgZ2VuZXJhdGVzIHNvbWUgR0wgZXJyb3IuIFVzZWQgaW4gc2l0dWF0aW9u
cyB3aGVyZSBpdCdzCisvLyBhbWJpZ2lvdXMgd2hpY2ggb2YgbXVsdGlwbGUgcG9zc2libGUgZXJy
b3JzIHdpbGwgYmUgZ2VuZXJhdGVkLgorZnVuY3Rpb24gYXNzZXJ0U29tZUdMRXJyb3IoZ2wsIG5h
bWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAg
dmFyIHIgPSBmYWxzZTsKKyAgdmFyIGdsRXJyID0gMDsKKyAgdmFyIGVyciA9IDA7CisgIHRyeSB7
IGYoKTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7IH0KKyAgaWYgKGds
RXJyID09PSAwKSB7CisgICAgaWYgKGdsRXJyID09PSB1bmRlZmluZWQpIHsKKyAgICAgIHRlc3RG
YWlsZWQoImFzc2VydEdMRXJyb3I6IFVORVhQRUNURUQgRVhDRVBUSU9OIiwgbmFtZSwgZik7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IGV4cGVjdGVkOiAi
ICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsKKyAgICAgICAgICAgICAgICAgIiBhY3R1
YWw6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworLy8gQXNzZXJ0IHRo
YXQgZiB0aHJvd3MgYW4gZXhjZXB0aW9uIGJ1dCBkb2VzIG5vdCBnZW5lcmF0ZSBhIEdMIGVycm9y
LgorZnVuY3Rpb24gYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsIG5hbWUsIGYpIHsKKyAgaWYgKGYg
PT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAg
dmFyIGdsRXJyID0gdW5kZWZpbmVkOworICB2YXIgZXhwOworICB0cnkgeyBmKCk7IH0gY2F0Y2go
ZSkgeyByPXRydWU7IGdsRXJyID0gZS5nbEVycm9yOyBleHAgPSBlO30KKyAgaWYgKCFyKSB7Cisg
ICAgdGVzdEZhaWxlZCgKKyAgICAgICJhc3NlcnRUaHJvd05vR0xFcnJvcjogc2hvdWxkIGhhdmUg
dGhyb3duIGV4Y2VwdGlvbiIsIG5hbWUsIGYpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNl
IHsKKyAgICBpZiAoZ2xFcnIgIT09IHVuZGVmaW5lZCkgeworICAgICAgdGVzdEZhaWxlZCgKKyAg
ICAgICAgImFzc2VydFRocm93Tm9HTEVycm9yOiBzaG91bGQgYmUgbm8gR0wgZXJyb3IgYnV0IGdl
bmVyYXRlZDogIiArCisgICAgICAgIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1l
LCBmKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgdGVzdFBhc3NlZCgiYXNz
ZXJ0VGhyb3dOb0dMRXJyb3IiLCBuYW1lLCBmKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK1F1YWQg
PSB7CisgIHZlcnRpY2VzIDogWworICAgIC0xLC0xLDAsCisgICAgMSwtMSwwLAorICAgIC0xLDEs
MCwKKyAgICAxLC0xLDAsCisgICAgMSwxLDAsCisgICAgLTEsMSwwCisgIF0sCisgIG5vcm1hbHMg
OiBbCisgICAgMCwwLC0xLAorICAgIDAsMCwtMSwKKyAgICAwLDAsLTEsCisgICAgMCwwLC0xLAor
ICAgIDAsMCwtMSwKKyAgICAwLDAsLTEKKyAgXSwKKyAgdGV4Y29vcmRzIDogWworICAgIDAsMCwK
KyAgICAxLDAsCisgICAgMCwxLAorICAgIDEsMCwKKyAgICAxLDEsCisgICAgMCwxCisgIF0sCisg
IGluZGljZXMgOiBbMCwxLDIsMSw1LDJdLAorICBtYWtlVkJPIDogZnVuY3Rpb24oZ2wpIHsKKyAg
ICByZXR1cm4gbmV3IFZCTyhnbCwKKyAgICAgICAge3NpemU6MywgZGF0YTogUXVhZC52ZXJ0aWNl
c30sCisgICAgICAgIHtzaXplOjMsIGRhdGE6IFF1YWQubm9ybWFsc30sCisgICAgICAgIHtzaXpl
OjIsIGRhdGE6IFF1YWQudGV4Y29vcmRzfQorICAgICkKKyAgfSwKKyAgY2FjaGU6IHt9LAorICBn
ZXRDYWNoZWRWQk8gOiBmdW5jdGlvbihnbCkgeworICAgIGlmICghdGhpcy5jYWNoZVtnbF0pCisg
ICAgICB0aGlzLmNhY2hlW2dsXSA9IHRoaXMubWFrZVZCTyhnbCk7CisgICAgcmV0dXJuIHRoaXMu
Y2FjaGVbZ2xdOworICB9Cit9CitDdWJlID0geworICB2ZXJ0aWNlcyA6IFsgIDAuNSwgLTAuNSwg
IDAuNSwgLy8gK1gKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIC0wLjUsCisgICAgICAgICAg
ICAgICAgMC41LCAgMC41LCAtMC41LAorICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwK
KworICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwgLy8gK1kKKyAgICAgICAgICAgICAg
ICAwLjUsICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwKKyAg
ICAgICAgICAgICAgICAtMC41LCAgMC41LCAgMC41LAorCisgICAgICAgICAgICAgICAgMC41LCAg
MC41LCAgMC41LCAvLyArWgorICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsICAwLjUsCisgICAg
ICAgICAgICAgICAgLTAuNSwgLTAuNSwgIDAuNSwKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUs
ICAwLjUsCisKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAgMC41LCAvLyAtWAorICAgICAg
ICAgICAgICAgIC0wLjUsICAwLjUsICAwLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwg
LTAuNSwKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LAorCisgICAgICAgICAgICAg
ICAgLTAuNSwgLTAuNSwgIDAuNSwgLy8gLVkKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAt
MC41LAorICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAw
LjUsIC0wLjUsICAwLjUsCisKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LCAvLyAt
WgorICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgMC41
LCAgMC41LCAtMC41LAorICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKKyAgICAgIF0s
CisKKyAgbm9ybWFscyA6IFsgMSwgMCwgMCwKKyAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAg
ICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgMSwgMCwgMCwKKworICAgICAgICAgICAg
ICAwLCAxLCAwLAorICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAgICAgICAwLCAxLCAw
LAorICAgICAgICAgICAgICAwLCAxLCAwLAorCisgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAg
ICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAg
IDAsIDAsIDEsCisKKyAgICAgICAgICAgICAgLTEsIDAsIDAsCisgICAgICAgICAgICAgIC0xLCAw
LCAwLAorICAgICAgICAgICAgICAtMSwgMCwgMCwKKyAgICAgICAgICAgICAgLTEsIDAsIDAsCisK
KyAgICAgICAgICAgICAgMCwtMSwgMCwKKyAgICAgICAgICAgICAgMCwtMSwgMCwKKyAgICAgICAg
ICAgICAgMCwtMSwgMCwKKyAgICAgICAgICAgICAgMCwtMSwgMCwKKworICAgICAgICAgICAgICAw
LCAwLC0xLAorICAgICAgICAgICAgICAwLCAwLC0xLAorICAgICAgICAgICAgICAwLCAwLC0xLAor
ICAgICAgICAgICAgICAwLCAwLC0xCisgICAgICBdLAorCisgIGluZGljZXMgOiBbXSwKKyAgY3Jl
YXRlIDogZnVuY3Rpb24oKXsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDY7IGkrKykgeworICAg
ICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMCk7CisgICAgICBDdWJlLmluZGljZXMucHVzaChp
KjQgKyAxKTsKKyAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDMpOworICAgICAgQ3ViZS5p
bmRpY2VzLnB1c2goaSo0ICsgMSk7CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAyKTsK
KyAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDMpOworICAgIH0KKyAgfSwKKworICBtYWtl
VkJPIDogZnVuY3Rpb24oZ2wpIHsKKyAgICByZXR1cm4gbmV3IFZCTyhnbCwKKyAgICAgICAge3Np
emU6MywgZGF0YTogQ3ViZS52ZXJ0aWNlc30sCisgICAgICAgIHtzaXplOjMsIGRhdGE6IEN1YmUu
bm9ybWFsc30sCisgICAgICAgIHtlbGVtZW50czogdHJ1ZSwgZGF0YTogQ3ViZS5pbmRpY2VzfQor
ICAgICkKKyAgfSwKKyAgY2FjaGUgOiB7fSwKKyAgZ2V0Q2FjaGVkVkJPIDogZnVuY3Rpb24oZ2wp
IHsKKyAgICBpZiAoIXRoaXMuY2FjaGVbZ2xdKQorICAgICAgdGhpcy5jYWNoZVtnbF0gPSB0aGlz
Lm1ha2VWQk8oZ2wpOworICAgIHJldHVybiB0aGlzLmNhY2hlW2dsXTsKKyAgfQorfQorQ3ViZS5j
cmVhdGUoKTsKKworU3BoZXJlID0geworICB2ZXJ0aWNlcyA6IFtdLAorICBub3JtYWxzIDogW10s
CisgIGluZGljZXMgOiBbXSwKKyAgY3JlYXRlIDogZnVuY3Rpb24oKXsKKyAgICB2YXIgciA9IDAu
NzU7CisgICAgZnVuY3Rpb24gdmVydCh0aGV0YSwgcGhpKQorICAgIHsKKyAgICAgIHZhciByID0g
MC43NTsKKyAgICAgIHZhciB4LCB5LCB6LCBueCwgbnksIG56OworCisgICAgICBueCA9IE1hdGgu
c2luKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7CisgICAgICBueSA9IE1hdGguc2luKHBoaSk7Cisg
ICAgICBueiA9IE1hdGguY29zKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7CisgICAgICBTcGhlcmUu
bm9ybWFscy5wdXNoKG54KTsKKyAgICAgIFNwaGVyZS5ub3JtYWxzLnB1c2gobnkpOworICAgICAg
U3BoZXJlLm5vcm1hbHMucHVzaChueik7CisKKyAgICAgIHggPSByICogTWF0aC5zaW4odGhldGEp
ICogTWF0aC5jb3MocGhpKTsKKyAgICAgIHkgPSByICogTWF0aC5zaW4ocGhpKTsKKyAgICAgIHog
PSByICogTWF0aC5jb3ModGhldGEpICogTWF0aC5jb3MocGhpKTsKKyAgICAgIFNwaGVyZS52ZXJ0
aWNlcy5wdXNoKHgpOworICAgICAgU3BoZXJlLnZlcnRpY2VzLnB1c2goeSk7CisgICAgICBTcGhl
cmUudmVydGljZXMucHVzaCh6KTsKKyAgICB9CisgICAgZm9yICh2YXIgcGhpID0gLU1hdGguUEkv
MjsgcGhpIDwgTWF0aC5QSS8yOyBwaGkgKz0gTWF0aC5QSS8yMCkgeworICAgICAgdmFyIHBoaTIg
PSBwaGkgKyBNYXRoLlBJLzIwOworICAgICAgZm9yICh2YXIgdGhldGEgPSAtTWF0aC5QSS8yOyB0
aGV0YSA8PSBNYXRoLlBJLzI7IHRoZXRhICs9IE1hdGguUEkvMjApIHsKKyAgICAgICAgdmVydCh0
aGV0YSwgcGhpKTsKKyAgICAgICAgdmVydCh0aGV0YSwgcGhpMik7CisgICAgICB9CisgICAgfQor
ICB9Cit9CisKK1NwaGVyZS5jcmVhdGUoKTsKKworaW5pdEdMX0NPTlRFWFRfSUQgPSBmdW5jdGlv
bigpeworICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICB2YXIg
Y29udGV4dE5hbWVzID0gWyd3ZWJnbCcsICdleHBlcmltZW50YWwtd2ViZ2wnXTsKKyAgR0xfQ09O
VEVYVF9JRCA9IG51bGw7CisgIGZvciAodmFyIGk9MDsgaTxjb250ZXh0TmFtZXMubGVuZ3RoOyBp
KyspIHsKKyAgICB0cnkgeworICAgICAgaWYgKGMuZ2V0Q29udGV4dChjb250ZXh0TmFtZXNbaV0p
KSB7CisgICAgICAgIEdMX0NPTlRFWFRfSUQgPSBjb250ZXh0TmFtZXNbaV07CisgICAgICAgIGJy
ZWFrOworICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICB9CisgIH0KKyAgaWYgKCFHTF9D
T05URVhUX0lEKSB7CisgICAgbG9nKCJObyBXZWJHTCBjb250ZXh0IGZvdW5kLiBVbmFibGUgdG8g
cnVuIHRlc3RzLiIpOworICB9Cit9CisKK2luaXRHTF9DT05URVhUX0lEKCk7Cg==
</data>
<flag name="review"
          id="206597"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="206621"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>