<?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>108351</bug_id>
          
          <creation_ts>2013-01-30 10:02:46 -0800</creation_ts>
          <short_desc>[CSS Shaders] Parse custom filter function with the at-rule reference syntax</short_desc>
          <delta_ts>2013-02-07 09:31:33 -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>CSS</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>71392</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Max Vujovic">mvujovic</reporter>
          <assigned_to name="Max Vujovic">mvujovic</assigned_to>
          <cc>achicu</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>michelangelo</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>820285</commentid>
    <comment_count>0</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-30 10:02:46 -0800</bug_when>
    <thetext>The custom function syntax has changed in the spec. Instead of including all of the custom filter information inline, the custom function can now reference an @filter rule by name. The custom function can still accept a list of parameters.

The syntax is defined as the following, where IDENT is the name of the @filter rule:
filter: custom(IDENT [, &lt;param&gt;]*)

In practice, it can look like this:
filter: custom(page-curl, direction 90, amount 0.5);

Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#customident-ltparamgt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820358</commentid>
    <comment_count>1</comment_count>
      <attachid>185526</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-30 11:35:36 -0800</bug_when>
    <thetext>Created attachment 185526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820514</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-30 14:00:54 -0800</bug_when>
    <thetext>Did you mean to r? this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820537</commentid>
    <comment_count>3</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-30 14:13:35 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Did you mean to r? this?

I asked Alex to take a first look at it before bugging you, but it is ready for your review if you&apos;re so inclined :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820956</commentid>
    <comment_count>4</comment_count>
      <attachid>185526</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-30 18:50:51 -0800</bug_when>
    <thetext>Comment on attachment 185526
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=185526&amp;action=review

&gt; Source/WebCore/css/CSSParser.cpp:8309
&gt; +        argsList-&gt;next();
&gt; +
&gt; +        if (!(arg = argsList-&gt;current()))

You could write this as:
arg = argsList-&gt;next();
if (!arg)

Maybe I just dislike assignments in conditionals :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821674</commentid>
    <comment_count>5</comment_count>
      <attachid>185526</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-31 10:53:34 -0800</bug_when>
    <thetext>Comment on attachment 185526
Patch

Thank you very much for the review!

View in context: https://bugs.webkit.org/attachment.cgi?id=185526&amp;action=review

&gt;&gt; Source/WebCore/css/CSSParser.cpp:8309
&gt;&gt; +        if (!(arg = argsList-&gt;current()))
&gt; 
&gt; You could write this as:
&gt; arg = argsList-&gt;next();
&gt; if (!arg)
&gt; 
&gt; Maybe I just dislike assignments in conditionals :)

That&apos;s much easier on the eyes. I&apos;ll do it instead :)

&gt; Source/WebCore/css/CSSParser.cpp:8327
&gt; +            while ((arg = argsList-&gt;current())) {

In the spirit of avoiding assignments in conditionals, I&apos;ll also refactor this to:

arg = argsList-&gt;current();
while (arg) {
    ...
    arg = argsList-&gt;next();
}

I won&apos;t touch the code that was moved to parseCustomFilterFunctionWithInlineSyntax, since that code is on its way out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821700</commentid>
    <comment_count>6</comment_count>
      <attachid>185816</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-31 11:04:41 -0800</bug_when>
    <thetext>Created attachment 185816
Patch for Landing

Running EWS again- I&apos;d like to see this pass on EFL before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821890</commentid>
    <comment_count>7</comment_count>
      <attachid>185816</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-31 13:25:53 -0800</bug_when>
    <thetext>Comment on attachment 185816
Patch for Landing

EFL is green. Setting cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821914</commentid>
    <comment_count>8</comment_count>
      <attachid>185816</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 13:53:38 -0800</bug_when>
    <thetext>Comment on attachment 185816
Patch for Landing

Clearing flags on attachment: 185816

Committed r141480: &lt;http://trac.webkit.org/changeset/141480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821915</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 13:53:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827598</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-02-07 09:16:18 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 185526 [details])
&gt; Thank you very much for the review!
&gt; 
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185526&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/css/CSSParser.cpp:8309
&gt; &gt;&gt; +        if (!(arg = argsList-&gt;current()))
&gt; &gt; 
&gt; &gt; You could write this as:
&gt; &gt; arg = argsList-&gt;next();
&gt; &gt; if (!arg)
&gt; &gt; 
&gt; &gt; Maybe I just dislike assignments in conditionals :)
&gt; 
&gt; That&apos;s much easier on the eyes. I&apos;ll do it instead :)
&gt; 
&gt; &gt; Source/WebCore/css/CSSParser.cpp:8327
&gt; &gt; +            while ((arg = argsList-&gt;current())) {
&gt; 
&gt; In the spirit of avoiding assignments in conditionals, I&apos;ll also refactor this to:
&gt; 
&gt; arg = argsList-&gt;current();
&gt; while (arg) {
&gt;     ...
&gt;     arg = argsList-&gt;next();
&gt; }
&gt; 
That examples looks like a good candidate for a &quot;for&quot; statement instead.

for (arg = argList-&gt;current(); arg; arg = argList-&gt;next()) .. this way &quot;continue&quot; statements that might be added would not need to do their own next() call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827613</commentid>
    <comment_count>11</comment_count>
      <attachid>185526</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-02-07 09:31:33 -0800</bug_when>
    <thetext>Comment on attachment 185526
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=185526&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/css/CSSParser.cpp:8309
&gt;&gt;&gt;&gt; +        if (!(arg = argsList-&gt;current()))
&gt;&gt;&gt; 
&gt;&gt;&gt; You could write this as:
&gt;&gt;&gt; arg = argsList-&gt;next();
&gt;&gt;&gt; if (!arg)
&gt;&gt;&gt; 
&gt;&gt;&gt; Maybe I just dislike assignments in conditionals :)
&gt;&gt; 
&gt;&gt; That&apos;s much easier on the eyes. I&apos;ll do it instead :)
&gt; 
&gt; That examples looks like a good candidate for a &quot;for&quot; statement instead.
&gt; 
&gt; for (arg = argList-&gt;current(); arg; arg = argList-&gt;next()) .. this way &quot;continue&quot; statements that might be added would not need to do their own next() call.

Yeah, I think that could work. I&apos;ll look into it next time we touch this area of code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185526</attachid>
            <date>2013-01-30 11:35:36 -0800</date>
            <delta_ts>2013-02-07 09:31:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108351-1.patch</filename>
            <type>text/plain</type>
            <size>59113</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MTZlYzRmLi4xMmU3NjVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMDEt
MzAgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gUGFyc2UgY3VzdG9tIGZpbHRlciBmdW5jdGlvbiB3aXRoIHRoZSBhdC1ydWxlIHJlZmVy
ZW5jZSBzeW50YXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODM1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcGFyc2luZyB0ZXN0cyBmb3IgdGhlIG5ldyBj
dXN0b20gZnVuY3Rpb24gc3ludGF4LgorCisgICAgICAgIEFkZCBhIG5ldyBmb2xkZXIgImNzczMv
ZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheCIuIFRoaXMgd2lsbCBjb250YWluIGFs
bCB0aGUgdGVzdHMKKyAgICAgICAgdXNpbmcgdGhlIG5ldyBjdXN0b20gZmlsdGVycyBhdC1ydWxl
IHN5bnRheC4gV2Ugd2lsbCBncmFkdWFsbHkgY29weSB0ZXN0cyBpbgorICAgICAgICAiY3NzMy9m
aWx0ZXJzL2N1c3RvbSIgb3ZlciB0byAiY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUt
c3ludGF4IiBhbmQgbW9kaWZ5IHRoZW0gdG8KKyAgICAgICAgdXNlIHRoZSBuZXcgYXQtcnVsZSBz
eW50YXguIFdoZW4gYWxsIG9mIHRoZSB0ZXN0cyBoYXZlIGJlZW4gcmVwbGljYXRlZCB1c2luZyB0
aGUgbmV3IHN5bnRheCwKKyAgICAgICAgd2Ugd2lsbCByZW1vdmUgdGhlIHByZXZpb3VzIHN5bnRh
eCBhbmQgdGhlIHRlc3RzIGluICJjc3MzL2ZpbHRlcnMvY3VzdG9tIi4KKworICAgICAgICAqIGNz
czMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheC9wYXJzaW5nLWN1c3RvbS1mdW5j
dGlvbi1pbnZhbGlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJz
L2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLWludmFs
aWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1
bGUtc3ludGF4L3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3Bh
cnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMv
ZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheC9zY3JpcHQtdGVzdHMvcGFyc2luZy1j
dXN0b20tZnVuY3Rpb24taW52YWxpZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0SW52YWxpZEZp
bHRlclJ1bGUpOgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5
bnRheC9zY3JpcHQtdGVzdHMvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuanM6IEFkZGVk
LgorICAgICAgICAodGVzdEZpbHRlclByb3BlcnR5KToKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMv
c2NyaXB0LXRlc3RzL2N1c3RvbS1maWx0ZXItcGFyc2luZy1jb21tb24uanM6CisgICAgICAgICho
ZWFkaW5nKToKKyAgICAgICAgICAgIE5ldyBmdW5jdGlvbiB0byBwcmludCBhIGhlYWRpbmcgdG8g
bWFrZSBncm91cHMgb2YgcmVsYXRlZCBwYXJzaW5nIHRlc3RzIGVhc2llciB0byBzZWUuCisgICAg
ICAgIChzaG91bGRIYXZlQ29uc3RydWN0b3IpOgorICAgICAgICAgICAgTmV3IGZ1bmN0aW9uIHRv
IGNoZWNrIHRoZSBKUyB0eXBlIG9mIGFuIG9iamVjdCBvbiBKU0MgYXMgd2VsbCBhcyBWOC4gVGhp
cyBpcyBpbnRlbmRlZCB0bworICAgICAgICAgICAgZXZlbnR1YWxseSByZXBsYWNlIHNob3VsZEJl
VHlwZSwgd2hpY2ggd29ya3MgZGlmZmVyZW50bHkgb24gVjggdnMuIEpTQyBhbmQgcmVxdWlyZXMg
dXMKKyAgICAgICAgICAgIHRvIGNyZWF0ZSBDaHJvbWl1bS1zcGVjaWZpYyBleHBlY3RhdGlvbnMg
Zm9yIHRoZSBjdXN0b20gZmlsdGVycyBwYXJzaW5nIHRlc3RzLgorCiAyMDEzLTAxLTI4ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJl
dmlld2VkIGdhcmRlbmluZywgcmVtb3ZpbmcgQ3Jhc2ggZXhwZWN0YXRpb25zIGZyb20gc3RvcmFn
ZS9pbmRleGVkZGIgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMv
Y3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxp
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQt
cnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E4Njc3OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRh
eC9wYXJzaW5nLWN1c3RvbS1mdW5jdGlvbi1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMxMSBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiBjdXN0b20oKSBmdW5jdGlvbiBvZiB0aGUgLXdl
YmtpdC1maWx0ZXIgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0N1c3RvbSBmdW5jdGlv
biB0ZXN0cy4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRW1w
dHkgY3VzdG9tIGZ1bmN0aW9uLgorY3VzdG9tKCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitPbmUg
Y29tbWEgaW4gY3VzdG9tIGZ1bmN0aW9uLgorY3VzdG9tKCwpCitQQVNTIHN0eWxlUnVsZS50eXBl
IGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFT
UyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwK
KworTXVsdGlwbGUgY29tbWFzIGluIGN1c3RvbSBmdW5jdGlvbi4KK2N1c3RvbSgsLCkKK1BBU1Mg
c3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxl
bmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmls
dGVyJykgaXMgbnVsbAorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CitGaWx0ZXIgbmFtZSB0ZXN0cy4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworTm8gZmlsdGVyIG5hbWUgd2l0aCBwYXJhbWV0ZXIuCitjdXN0b20obiAxKQorUEFT
UyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24u
bGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1m
aWx0ZXInKSBpcyBudWxsCisKK1RvbyBtYW55IGZpbHRlciBuYW1lcy4KK2N1c3RvbShteS1maWx0
ZXItMSBteS1maWx0ZXItMikKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitGaWx0ZXIgbmFtZSBhcyBz
dHJpbmcuCitjdXN0b20oJ215LWZpbHRlci0xJykKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitGaWx0
ZXIgbmFtZSBhcyBudW1iZXIuCitjdXN0b20oMSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitTcGFj
ZSBiZXR3ZWVuIGZpbHRlciBuYW1lIGFuZCBwYXJhbWV0ZXIuCitjdXN0b20obXktZmlsdGVyIG4g
MSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xh
cmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CitOdW1iZXIgcGFyYW1ldGVyIHRlc3RzLgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCitUb28gbWFueSBwYXJhbWV0ZXIgdmFsdWVzLgorY3VzdG9t
KG15LWZpbHRlciwgbiAxIDIgMyA0IDUpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUu
U1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlv
bi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworSW52YWxpZCBw
YXJhbWV0ZXIgdHlwZS4KK2N1c3RvbShteS1maWx0ZXIsIG4gMS4wIDIuMCAndGV4dCcpCitQQVNT
IHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5s
ZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZp
bHRlcicpIGlzIG51bGwKKworTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYWZ0ZXIgY29tbWEuCitj
dXN0b20obXktZmlsdGVyLCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitObyBwYXJhbWV0ZXIgZGVm
aW5pdGlvbiB3aXRoIHR3byBjb21tYXMuCitjdXN0b20obXktZmlsdGVyLCwpCitQQVNTIHN0eWxl
UnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGgg
aXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicp
IGlzIG51bGwKKworTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYmVmb3JlIHZhbGlkIHBhcmFtZXRl
ciBkZWZpbnRpb24uCitjdXN0b20obXktZmlsdGVyLCAsIG4gMSkKK1BBU1Mgc3R5bGVSdWxlLnR5
cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQ
QVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVs
bAorCitObyBwYXJhbWV0ZXIgdmFsdWUuCitjdXN0b20obXktZmlsdGVyLCBuKQorUEFTUyBzdHls
ZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3Ro
IGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXIn
KSBpcyBudWxsCisKK05vIHBhcmFtZXRlciB2YWx1ZSB3aXRoIG11bHRpcGxlIHBhcmFtZXRlcnMu
CitjdXN0b20obXktZmlsdGVyLCBuMSwgbjIsIG4zKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBD
U1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVj
bGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1RyYW5zZm9ybSBwYXJhbWV0
ZXIgdGVzdHMuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK09u
ZSBpbnZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbi4KK2N1c3RvbShteS1maWx0ZXIsIHQgaW52YWxp
ZC1yb3RhdGUoMGRlZykpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVM
RQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworTXVsdGlwbGUgaW52YWxpZCB0
cmFuc2Zvcm0gZnVuY3Rpb25zLgorY3VzdG9tKG15LWZpbHRlciwgdCBpbnZhbGlkLXJvdGF0ZSgw
ZGVnKSBpbnZhbGlkLXBlcnNwZWN0aXZlKDApKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NS
dWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0ludmFs
aWQgdHJhbnNmb3JtIGZ1bmN0aW9uIGJldHdlZW4gdmFsaWQgb25lcy4KK2N1c3RvbShteS1maWx0
ZXIsIHQgcm90YXRlKDBkZWcpIGludmFsaWQtcm90YXRlKDBkZWcpIHBlcnNwZWN0aXZlKDApKQor
UEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRp
b24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1maWx0ZXInKSBpcyBudWxsCisKK1ZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbiBiZXR3ZWVuIGlu
dmFsaWQgb25lcy4KK2N1c3RvbShteS1maWx0ZXIsIHQgaW52YWxpZC1yb3RhdGUoMGRlZykgcGVy
c3BlY3RpdmUoMCkgaW52YWxpZC10cmFuc2xhdGUoMCkpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlz
IENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBk
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKwor
VmFsaWQgdHJhbnNmb3JtIGZ1bmN0aW9uIHdpdGhvdXQgbGVhZGluZyBjb21tYS4KK2N1c3RvbSht
eS1maWx0ZXIgdCBwZXJzcGVjdGl2ZSgwKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVs
ZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0
aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitWYWxpZCB0
cmFuc2Zvcm0gZnVuY3Rpb24gd2l0aCB0cmFpbGluZyBjb21tYS4KK2N1c3RvbShteS1maWx0ZXIs
IHQgcGVyc3BlY3RpdmUoMCksKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxF
X1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK1ZhbGlkIHRyYW5zZm9y
bSBmdW5jdGlvbiB3aXRoIHRyYWlsaW5nIGNvbW1hIGFuZCB3aXRob3V0IGxlYWRpbmcgY29tbWEu
CitjdXN0b20obXktZmlsdGVyIHQgcGVyc3BlY3RpdmUoMCksKQorUEFTUyBzdHlsZVJ1bGUudHlw
ZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BB
U1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxs
CisKK0ludmFsaWQgdHJhbnNmb3JtIHdpdGggdHJhaWxpbmcgY29tbWEuCitjdXN0b20obXktZmls
dGVyLCB0IGludmFsaWQtcm90YXRlKDBkZWcpLCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitJbnZh
bGlkIHRyYW5zZm9ybSB3aXRob3V0IGxlYWRpbmcgY29tbWEuCitjdXN0b20obXktZmlsdGVyIHQg
aW52YWxpZF9yb3RhdGUoMGRlZykpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZ
TEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworVmFsaWQgdHJhbnNm
b3JtIHdpdGggaW52YWxpZCBjaGFyYWN0ZXJzCitjdXN0b20obXktZmlsdGVyLHQgcm90YXRlKDBk
ZWcpICouLSwpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFT
UyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorQXJyYXkgcGFyYW1ldGVyIHRlc3RzLgorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitFbXB0eSBhcnJheS4KK2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxF
CitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitPbmUgY29tbWEgaW4gYXJyYXku
CitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KCwpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBD
U1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVj
bGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK011
bHRpcGxlIGNvbW1hcyBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLCwsKSkK
K1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0
aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykgaXMgbnVsbAorCitNdWx0aXBsZSBjb21tYXMgd2l0aCBhIHZhbHVlIGluIGFy
cmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsLDEsKSkKK1BBU1Mgc3R5bGVSdWxlLnR5
cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQ
QVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVs
bAorCitPbmUgY29tbWEgZm9sbG93ZWQgYnkgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBhcnJheS4KK2N1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLC00KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitPbmUg
Y29tbWEgZm9sbG93ZWQgYnkgYSB2YWx1ZSBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0ZXIsIGEg
YXJyYXkoLDQpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BB
U1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK09uZSBuZWdhdGl2ZSB2YWx1ZSBmb2xs
b3dlZCBieSBhIGNvbW1hIGluIGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgtNCwp
KQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFy
YXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1maWx0ZXInKSBpcyBudWxsCisKK09uZSB2YWx1ZSBmb2xsb3dlZCBieSBhIGNvbW1hIGlu
IGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSg0LCkpCitQQVNTIHN0eWxlUnVsZS50
eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAor
UEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51
bGwKKworVmFsaWQgdmFsdWVzIGZvbGxvd2VkIGJ5IGEgY29tbWEgaW4gYXJyYXkuCitjdXN0b20o
bXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMg
Q1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRl
Y2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitW
YWxpZCB2YWx1ZXMgZm9sbG93ZWQgYnkgYSBsZXR0ZXIgaW4gYXJyYXkuCitjdXN0b20obXktZmls
dGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsIHgpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NS
dWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK1R3byBj
b21tYXMgYXMgc2VwYXJhdG9yIGJldHdlZW4gdmFsdWVzIGluIGFycmF5LgorY3VzdG9tKG15LWZp
bHRlciwgYSBhcnJheSgxLCAyLCAsIDQpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxl
LlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRp
b24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0xlYWRpbmcg
Y29tbWEgaW4gYXJyYXkuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KCwxLCAyLCAzLCA0KSkK
K1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0
aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykgaXMgbnVsbAorCitTZW1pY29sb24gc2VwYXJhdGVkIHZhbHVlcyBpbiBhcnJh
eS4KK2N1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMTsgMjsgMzsgNCkpCitQQVNTIHN0eWxlUnVs
ZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMg
MAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlz
IG51bGwKKworU3BhY2Ugc2VwYXJhdGVkIHZhbHVlcyBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoMSAyIDMgNCkpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZ
TEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworU3BhY2Ugc2VwYXJh
dGVkIHZhbHVlcyB3aXRoIGNvbW1hIHRlcm1pbmF0b3IgaW4gYXJyYXkuCitjdXN0b20obXktZmls
dGVyLCBhIGFycmF5KDEgMiAzIDQsKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5T
VFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9u
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitTcGFjZSBzZXBh
cmF0ZWQgdmFsdWVzIHdpdGggbGVhZGluZyBjb21tYSBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoLCAxIDIgMyA0KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5T
VFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9u
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitOYU4gaW4gYXJy
YXkuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KE5hTikpCitQQVNTIHN0eWxlUnVsZS50eXBl
IGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFT
UyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwK
KworTmFOIGJldHdlZW4gdmFsaWQgdmFsdWVzIGluIGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwg
YSBhcnJheSgxLCAyLCBOYU4sIDMpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNU
WUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24u
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0ludmFsaWQgdmFs
dWUgJ25vbmUnIGluIGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheShub25lKSkKK1BB
U1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9u
Lmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
ZmlsdGVyJykgaXMgbnVsbAorCitJbnZhbGlkIHZhbHVlIHVuaXQgJ3B4JyBpbiBhcnJheS4KK2N1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMXB4KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitJbnZh
bGlkIHZhbHVlIHVuaXQgJ2RlZycgaW4gYXJyYXkuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5
KDFkZWcpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mg
ZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0ludmFsaWQgdmFsdWUgdW5pdCAncHgnIGlu
IGFycmF5IGFmdGVyIHZhbGlkIHZhbHVlcy4KK2N1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSwg
MiwgMywgNHB4KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQ
QVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheC9wYXJzaW5nLWN1c3RvbS1mdW5jdGlv
bi1pbnZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQt
cnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMThjY2EKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2lu
Zy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wYXJz
aW5nLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BhcnNp
bmctY3VzdG9tLWZ1bmN0aW9uLWludmFsaWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
LXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3lu
dGF4L3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDhmNTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3BhcnNpbmct
Y3VzdG9tLWZ1bmN0aW9uLXZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0NSBAQAorVGVz
dCB0aGUgcGFyc2luZyBvZiB0aGUgY3VzdG9tKCkgZnVuY3Rpb24gb2YgdGhlIC13ZWJraXQtZmls
dGVyIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDdXN0b20gZnVuY3Rpb24gdGVzdHMu
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0N1c3RvbSBmdW5j
dGlvbiBpbiBDQVBTLgorQ1VTVE9NKG15LWZpbHRlcikKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMg
Q1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BB
U1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlz
ICdjdXN0b20obXktZmlsdGVyKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9m
IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0
b3IgPT09IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19w
cm90b19fID09PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJv
cGVydHlWYWx1ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1Rl
eHQgaXMgJ2N1c3RvbShteS1maWx0ZXIpJworCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CitGaWx0ZXIgY2hhaW4gdGVzdHMuCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK0N1c3RvbSBmdW5jdGlvbiBpbiBtaWRkbGUgb2YgZmlsdGVy
IGNoYWluLgorZ3JheXNjYWxlKCkgY3VzdG9tKG15LWZpbHRlcikgc2VwaWEoKQorUEFTUyBzdHls
ZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5s
ZW5ndGggaXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykgaXMgJ2dyYXlzY2FsZSgpIGN1c3RvbShteS1maWx0ZXIpIHNlcGlhKCknCitQ
QVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQor
UEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMg
dHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0
LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDMK
K1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0dSQVlTQ0FMRQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdncmF5c2NhbGUoKScK
K1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVy
KScKK1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5D
U1NfRklMVEVSX1NFUElBCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ3NlcGlhKCknCisKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0ZpbHRlciBuYW1lIHRlc3Rz
LgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitGaWx0ZXIgbmFt
ZSBvbmx5LgorY3VzdG9tKG15LWZpbHRlcikKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVs
ZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5
bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0
b20obXktZmlsdGVyKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1Zh
bHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09
IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19f
ID09PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlW
YWx1ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENT
U0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMg
J2N1c3RvbShteS1maWx0ZXIpJworCitGaWx0ZXIgbmFtZSBhcyBDU1MgJ25vbmUnIGtleXdvcmQu
CitjdXN0b20obm9uZSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxF
CitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlv
bi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obm9uZSknCitQ
QVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQor
UEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMg
dHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0
LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEK
K1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obm9uZSknCisK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK051bWJlciBwYXJhbWV0
ZXIgdGVzdHMuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0lu
dGVnZXIgcGFyYW1ldGVycy4KK2N1c3RvbShteS1maWx0ZXIsIG4xIDEsIG4yIDIgMywgbjMgMyA0
IDUsIG40IDQgNSA2IDcpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVM
RQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIHN0eWxlRGVjbGFyYXRp
b24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyAnY3VzdG9tKG15LWZpbHRl
ciwgbjEgMSwgbjIgMiAzLCBuMyAzIDQgNSwgbjQgNCA1IDYgNyknCitQQVNTIGZpbHRlclByb3Bl
cnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9w
ZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0
ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0
cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUu
b3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQor
UEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCBuMSAxLCBuMiAyIDMs
IG4zIDMgNCA1LCBuNCA0IDUgNiA3KScKKworRmxvYXQgcGFyYW1ldGVycy4KK2N1c3RvbShteS1m
aWx0ZXIsIG4xIDEuMSwgbjIgMi4yIDMuMywgbjMgMy4xIDQuMSA1LjEsIG40IDQuMSA1LjIgNi4z
IDcuNCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0
eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBuMSAxLjEs
IG4yIDIuMiAzLjMsIG4zIDMuMSA0LjEgNS4xLCBuNCA0LjEgNS4yIDYuMyA3LjQpJworUEFTUyBm
aWx0ZXJQcm9wZXJ0eVZhbHVlIGluc3RhbmNlb2YgQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1Mg
ZmlsdGVyUHJvcGVydHlWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gQ1NTVmFsdWVMaXN0IGlzIHRydWUK
K1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5fX3Byb3RvX18gPT09IENTU1ZhbHVlTGlzdC5wcm90
b3R5cGUgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0aCBpcyAxCitQQVNT
IHN1YlZhbHVlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRF
Ul9DVVNUT00KK1BBU1Mgc3ViVmFsdWUuY3NzVGV4dCBpcyAnY3VzdG9tKG15LWZpbHRlciwgbjEg
MS4xLCBuMiAyLjIgMy4zLCBuMyAzLjEgNC4xIDUuMSwgbjQgNC4xIDUuMiA2LjMgNy40KScKKwor
UGFyYW1ldGVyIG5hbWUgc2FtZSBhcyBDU1Mga2V5d29yZC4KK2N1c3RvbShteS1maWx0ZXIsIGJh
Y2tncm91bmQgMCAxIDAgMSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmls
dGVyLCBiYWNrZ3JvdW5kIDAgMSAwIDEpJworUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlIGluc3Rh
bmNlb2YgQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5jb25z
dHJ1Y3RvciA9PT0gQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1
ZS5fX3Byb3RvX18gPT09IENTU1ZhbHVlTGlzdC5wcm90b3R5cGUgaXMgdHJ1ZQorUEFTUyBmaWx0
ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlZhbHVlLm9wZXJhdGlvblR5cGUg
aXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1Mgc3ViVmFsdWUu
Y3NzVGV4dCBpcyAnY3VzdG9tKG15LWZpbHRlciwgYmFja2dyb3VuZCAwIDEgMCAxKScKKworPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorVHJhbnNmb3JtIHBhcmFtZXRl
ciB0ZXN0cy4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVHJh
bnNmb3JtIHBhcmFtZXRlciB3aXRoIG9uZSB0cmFuc2Zvcm0gZnVuY3Rpb24uCitjdXN0b20obXkt
ZmlsdGVyLCB0IHJvdGF0ZSgwZGVnKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5T
VFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVE
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20o
bXktZmlsdGVyLCB0IHJvdGF0ZSgwZGVnKSknCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5z
dGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNv
bnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZh
bHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZp
bHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlw
ZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1
ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCB0IHJvdGF0ZSgwZGVnKSknCisKK1RyYW5z
Zm9ybSBwYXJhbWV0ZXIgd2l0aCBtdWx0aXBsZSB0cmFuc2Zvcm0gZnVuY3Rpb25zLgorY3VzdG9t
KG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykgcGVyc3BlY3RpdmUoMCkgc2NhbGUoMCwgMCkgdHJh
bnNsYXRlKDBweCwgMHB4KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmls
dGVyLCB0IHJvdGF0ZSgwZGVnKSBwZXJzcGVjdGl2ZSgwKSBzY2FsZSgwLCAwKSB0cmFuc2xhdGUo
MHB4LCAwcHgpKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1ZhbHVl
TGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09IENT
U1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19fID09
PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1
ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0Zp
bHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ2N1
c3RvbShteS1maWx0ZXIsIHQgcm90YXRlKDBkZWcpIHBlcnNwZWN0aXZlKDApIHNjYWxlKDAsIDAp
IHRyYW5zbGF0ZSgwcHgsIDBweCkpJworCitNdWxpdHBsZSB0cmFuc2Zvcm0gcGFyYW1ldGVycy4K
K2N1c3RvbShteS1maWx0ZXIsIHQxIHJvdGF0ZSgwZGVnKSwgdDIgcm90YXRlKDBkZWcpKQorUEFT
UyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mgc3R5bGVEZWNsYXJh
dGlvbi5sZW5ndGggaXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZmlsdGVyJykgaXMgJ2N1c3RvbShteS1maWx0ZXIsIHQxIHJvdGF0ZSgwZGVnKSwg
dDIgcm90YXRlKDBkZWcpKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENT
U1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3Ig
PT09IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90
b19fID09PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVy
dHlWYWx1ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktp
dENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQg
aXMgJ2N1c3RvbShteS1maWx0ZXIsIHQxIHJvdGF0ZSgwZGVnKSwgdDIgcm90YXRlKDBkZWcpKScK
KworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQXJyYXkgcGFyYW1l
dGVyIHRlc3RzLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitB
cnJheSBwYXJhbWV0ZXIgd2l0aCBuYW1lICdhcnJheScuCitjdXN0b20obXktZmlsdGVyLCBhcnJh
eSBhcnJheSgxKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQ
QVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBh
cnJheSBhcnJheSgxKSknCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NW
YWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09
PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9f
XyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5
VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRD
U1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlz
ICdjdXN0b20obXktZmlsdGVyLCBhcnJheSBhcnJheSgxKSknCisKK0FycmF5IHBhcmFtZXRlciB3
aXRoIG9uZSBwb3NpdGl2ZSBpbnRlZ2VyLgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxKSkK
K1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVj
bGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEpKScK
K1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1ZhbHVlTGlzdCBpcyB0cnVl
CitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09IENTU1ZhbHVlTGlzdCBp
cyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19fID09PSBDU1NWYWx1ZUxp
c3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5sZW5ndGggaXMg
MQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNT
U19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoMSkpJworCitBcnJheSBwYXJhbWV0ZXIgd2l0aCBvbmUgbmVnYXRpdmUgZmxv
YXQuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSkKK1BBU1Mgc3R5bGVSdWxlLnR5
cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlz
IDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRl
cicpIGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSknCitQQVNTIGZpbHRlclBy
b3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQ
cm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBm
aWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBp
cyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFs
dWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RP
TQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0x
LjAxKSknCisKK0FycmF5IHBhcmFtZXRlciB3aXRoIG11bHRpcGxlIHBvc2l0aXZlIGludGVnZXJz
LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxLCAyLCAzLCA0LCA1KSkKK1BBU1Mgc3R5bGVS
dWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVu
Z3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsIDUpKScK
K1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1ZhbHVlTGlzdCBpcyB0cnVl
CitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09IENTU1ZhbHVlTGlzdCBp
cyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19fID09PSBDU1NWYWx1ZUxp
c3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5sZW5ndGggaXMg
MQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNT
U19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoMSwgMiwgMywgNCwgNSkpJworCitBcnJheSBwYXJhbWV0ZXIgd2l0aCBtdWx0
aXBsZSBzaWduZWQgZmxvYXRzLgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxLCAtMi4yLCAz
LjE0LCAwLjQsIDUpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUK
K1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5sZW5ndGggaXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9u
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgJ2N1c3RvbShteS1maWx0ZXIs
IGEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSknCitQQVNTIGZpbHRlclByb3BlcnR5VmFs
dWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZh
bHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9w
ZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0cnVlCitQ
QVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUub3BlcmF0
aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyBz
dWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIC0yLjIsIDMu
MTQsIDAuNCwgNSkpJworCitNdWx0aXBsZSBhcnJheSBwYXJhbWV0ZXJzLgorY3VzdG9tKG15LWZp
bHRlciwgYTEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykp
CitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBzdHlsZURl
Y2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIHN0eWxlRGVjbGFyYXRpb24uZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyAnY3VzdG9tKG15LWZpbHRlciwgYTEgYXJyYXkoMSwg
LTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykpJworUEFTUyBmaWx0ZXJQcm9w
ZXJ0eVZhbHVlIGluc3RhbmNlb2YgQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJv
cGVydHlWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmls
dGVyUHJvcGVydHlWYWx1ZS5fX3Byb3RvX18gPT09IENTU1ZhbHVlTGlzdC5wcm90b3R5cGUgaXMg
dHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlZhbHVl
Lm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00K
K1BBU1Mgc3ViVmFsdWUuY3NzVGV4dCBpcyAnY3VzdG9tKG15LWZpbHRlciwgYTEgYXJyYXkoMSwg
LTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykpJworCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDb21iaW5lZCBwYXJhbWV0ZXIgdGVzdHMuCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK051bWJlciBwYXJhbWV0
ZXIsIHRyYW5zZm9ybSBwYXJhbWV0ZXIsIGFuZCBhcnJheSBwYXJhbWV0ZXIuCitjdXN0b20obXkt
ZmlsdGVyLCBuIDEsIHQgcm90YXRlKDBkZWcpLCBhIGFycmF5KDEpKQorUEFTUyBzdHlsZVJ1bGUu
dHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5sZW5ndGgg
aXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmls
dGVyJykgaXMgJ2N1c3RvbShteS1maWx0ZXIsIG4gMSwgdCByb3RhdGUoMGRlZyksIGEgYXJyYXko
MSkpJworUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlIGluc3RhbmNlb2YgQ1NTVmFsdWVMaXN0IGlz
IHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gQ1NTVmFsdWVM
aXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5fX3Byb3RvX18gPT09IENTU1Zh
bHVlTGlzdC5wcm90b3R5cGUgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0
aCBpcyAxCitQQVNTIHN1YlZhbHVlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFs
dWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1Mgc3ViVmFsdWUuY3NzVGV4dCBpcyAnY3VzdG9tKG15
LWZpbHRlciwgbiAxLCB0IHJvdGF0ZSgwZGVnKSwgYSBhcnJheSgxKSknCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3BhcnNpbmctY3Vz
dG9tLWZ1bmN0aW9uLXZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
LXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjA3NGViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4
L3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVy
LXBhcnNpbmctY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
cGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3Vz
dG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvc2NyaXB0LXRlc3RzL3BhcnNpbmctY3VzdG9tLWZ1bmN0
aW9uLWludmFsaWQuanMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQt
cnVsZS1zeW50YXgvc2NyaXB0LXRlc3RzL3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLWludmFsaWQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFkOGZlOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5
bnRheC9zY3JpcHQtdGVzdHMvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC5qcwpAQCAt
MCwwICsxLDc2IEBACitkZXNjcmlwdGlvbigiVGVzdCB0aGUgcGFyc2luZyBvZiBjdXN0b20oKSBm
dW5jdGlvbiBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuIik7CisKKy8vIFRoZXNlIGhh
dmUgdG8gYmUgZ2xvYmFsIGZvciB0aGUgdGVzdCBoZWxwZXJzIHRvIHNlZSB0aGVtLgordmFyIHN0
eWxlUnVsZSwgZGVjbGFyYXRpb247CisKK2Z1bmN0aW9uIHRlc3RJbnZhbGlkRmlsdGVyUnVsZShk
ZXNjcmlwdGlvbiwgcnVsZSkKK3sKKyAgICBkZWJ1ZygiXG4iICsgZGVzY3JpcHRpb24gKyAiXG4i
ICsgcnVsZSk7CisKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoImJvZHkgeyAtd2Via2l0LWZp
bHRlcjogIiArIHJ1bGUgKyAiOyB9IiwgMCk7CisKKyAgICBzdHlsZVJ1bGUgPSBzdHlsZXNoZWV0
LmNzc1J1bGVzLml0ZW0oMCk7CisgICAgc2hvdWxkQmUoInN0eWxlUnVsZS50eXBlIiwgIkNTU1J1
bGUuU1RZTEVfUlVMRSIpOworCisgICAgZGVjbGFyYXRpb24gPSBzdHlsZVJ1bGUuc3R5bGU7Cisg
ICAgc2hvdWxkQmUoImRlY2xhcmF0aW9uLmxlbmd0aCIsICIwIik7CisgICAgc2hvdWxkQmUoImRl
Y2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykiLCAibnVsbCIpOwor
fQorCitoZWFkaW5nKCJDdXN0b20gZnVuY3Rpb24gdGVzdHMuIik7Cit0ZXN0SW52YWxpZEZpbHRl
clJ1bGUoIkVtcHR5IGN1c3RvbSBmdW5jdGlvbi4iLCAiY3VzdG9tKCkiKTsKK3Rlc3RJbnZhbGlk
RmlsdGVyUnVsZSgiT25lIGNvbW1hIGluIGN1c3RvbSBmdW5jdGlvbi4iLCAiY3VzdG9tKCwpIik7
Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk11bHRpcGxlIGNvbW1hcyBpbiBjdXN0b20gZnVuY3Rp
b24uIiwgImN1c3RvbSgsLCkiKTsKKworaGVhZGluZygiRmlsdGVyIG5hbWUgdGVzdHMuIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5vIGZpbHRlciBuYW1lIHdpdGggcGFyYW1ldGVyLiIsICJj
dXN0b20obiAxKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJUb28gbWFueSBmaWx0ZXIgbmFt
ZXMuIiwgImN1c3RvbShteS1maWx0ZXItMSBteS1maWx0ZXItMikiKTsKK3Rlc3RJbnZhbGlkRmls
dGVyUnVsZSgiRmlsdGVyIG5hbWUgYXMgc3RyaW5nLiIsICJjdXN0b20oJ215LWZpbHRlci0xJyki
KTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiRmlsdGVyIG5hbWUgYXMgbnVtYmVyLiIsICJjdXN0
b20oMSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiU3BhY2UgYmV0d2VlbiBmaWx0ZXIgbmFt
ZSBhbmQgcGFyYW1ldGVyLiIsICJjdXN0b20obXktZmlsdGVyIG4gMSkiKTsKKworaGVhZGluZygi
TnVtYmVyIHBhcmFtZXRlciB0ZXN0cy4iKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVG9vIG1h
bnkgcGFyYW1ldGVyIHZhbHVlcy4iLCAiY3VzdG9tKG15LWZpbHRlciwgbiAxIDIgMyA0IDUpIik7
Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgcGFyYW1ldGVyIHR5cGUuIiwgImN1c3Rv
bShteS1maWx0ZXIsIG4gMS4wIDIuMCAndGV4dCcpIik7CisKK3Rlc3RJbnZhbGlkRmlsdGVyUnVs
ZSgiTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYWZ0ZXIgY29tbWEuIiwgImN1c3RvbShteS1maWx0
ZXIsKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJObyBwYXJhbWV0ZXIgZGVmaW5pdGlvbiB3
aXRoIHR3byBjb21tYXMuIiwgImN1c3RvbShteS1maWx0ZXIsLCkiKTsKK3Rlc3RJbnZhbGlkRmls
dGVyUnVsZSgiTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYmVmb3JlIHZhbGlkIHBhcmFtZXRlciBk
ZWZpbnRpb24uIiwgImN1c3RvbShteS1maWx0ZXIsICwgbiAxKSIpOwordGVzdEludmFsaWRGaWx0
ZXJSdWxlKCJObyBwYXJhbWV0ZXIgdmFsdWUuIiwgImN1c3RvbShteS1maWx0ZXIsIG4pIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5vIHBhcmFtZXRlciB2YWx1ZSB3aXRoIG11bHRpcGxlIHBh
cmFtZXRlcnMuIiwgImN1c3RvbShteS1maWx0ZXIsIG4xLCBuMiwgbjMpIik7CisKK2hlYWRpbmco
IlRyYW5zZm9ybSBwYXJhbWV0ZXIgdGVzdHMuIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk9u
ZSBpbnZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbi4iLCAiY3VzdG9tKG15LWZpbHRlciwgdCBpbnZh
bGlkLXJvdGF0ZSgwZGVnKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiTXVsdGlwbGUgaW52
YWxpZCB0cmFuc2Zvcm0gZnVuY3Rpb25zLiIsICJjdXN0b20obXktZmlsdGVyLCB0IGludmFsaWQt
cm90YXRlKDBkZWcpIGludmFsaWQtcGVyc3BlY3RpdmUoMCkpIik7Cit0ZXN0SW52YWxpZEZpbHRl
clJ1bGUoIkludmFsaWQgdHJhbnNmb3JtIGZ1bmN0aW9uIGJldHdlZW4gdmFsaWQgb25lcy4iLCAi
Y3VzdG9tKG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykgaW52YWxpZC1yb3RhdGUoMGRlZykgcGVy
c3BlY3RpdmUoMCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlZhbGlkIHRyYW5zZm9ybSBm
dW5jdGlvbiBiZXR3ZWVuIGludmFsaWQgb25lcy4iLCAiY3VzdG9tKG15LWZpbHRlciwgdCBpbnZh
bGlkLXJvdGF0ZSgwZGVnKSBwZXJzcGVjdGl2ZSgwKSBpbnZhbGlkLXRyYW5zbGF0ZSgwKSkiKTsK
K3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVmFsaWQgdHJhbnNmb3JtIGZ1bmN0aW9uIHdpdGhvdXQg
bGVhZGluZyBjb21tYS4iLCAiY3VzdG9tKG15LWZpbHRlciB0IHBlcnNwZWN0aXZlKDApKSIpOwor
dGVzdEludmFsaWRGaWx0ZXJSdWxlKCJWYWxpZCB0cmFuc2Zvcm0gZnVuY3Rpb24gd2l0aCB0cmFp
bGluZyBjb21tYS4iLCAiY3VzdG9tKG15LWZpbHRlciwgdCBwZXJzcGVjdGl2ZSgwKSwpIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbiB3aXRoIHRyYWls
aW5nIGNvbW1hIGFuZCB3aXRob3V0IGxlYWRpbmcgY29tbWEuIiwgImN1c3RvbShteS1maWx0ZXIg
dCBwZXJzcGVjdGl2ZSgwKSwpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgdHJh
bnNmb3JtIHdpdGggdHJhaWxpbmcgY29tbWEuIiwgImN1c3RvbShteS1maWx0ZXIsIHQgaW52YWxp
ZC1yb3RhdGUoMGRlZyksKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJJbnZhbGlkIHRyYW5z
Zm9ybSB3aXRob3V0IGxlYWRpbmcgY29tbWEuIiwgImN1c3RvbShteS1maWx0ZXIgdCBpbnZhbGlk
X3JvdGF0ZSgwZGVnKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVmFsaWQgdHJhbnNmb3Jt
IHdpdGggaW52YWxpZCBjaGFyYWN0ZXJzIiwgImN1c3RvbShteS1maWx0ZXIsdCByb3RhdGUoMGRl
ZykgKi4tLCkiKTsKKworaGVhZGluZygiQXJyYXkgcGFyYW1ldGVyIHRlc3RzLiIpOwordGVzdElu
dmFsaWRGaWx0ZXJSdWxlKCJFbXB0eSBhcnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJh
eSgpKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJPbmUgY29tbWEgaW4gYXJyYXkuIiwgImN1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk11
bHRpcGxlIGNvbW1hcyBpbiBhcnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsLCwp
KSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJNdWx0aXBsZSBjb21tYXMgd2l0aCBhIHZhbHVl
IGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KCwsMSwpKSIpOwordGVzdElu
dmFsaWRGaWx0ZXJSdWxlKCJPbmUgY29tbWEgZm9sbG93ZWQgYnkgYSBuZWdhdGl2ZSB2YWx1ZSBp
biBhcnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsLTQpKSIpOwordGVzdEludmFs
aWRGaWx0ZXJSdWxlKCJPbmUgY29tbWEgZm9sbG93ZWQgYnkgYSB2YWx1ZSBpbiBhcnJheS4iLCAi
Y3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsNCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUo
Ik9uZSBuZWdhdGl2ZSB2YWx1ZSBmb2xsb3dlZCBieSBhIGNvbW1hIGluIGFycmF5LiIsICJjdXN0
b20obXktZmlsdGVyLCBhIGFycmF5KC00LCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk9u
ZSB2YWx1ZSBmb2xsb3dlZCBieSBhIGNvbW1hIGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVy
LCBhIGFycmF5KDQsKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVmFsaWQgdmFsdWVzIGZv
bGxvd2VkIGJ5IGEgY29tbWEgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXko
MSwgMiwgMywgNCwpKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJWYWxpZCB2YWx1ZXMgZm9s
bG93ZWQgYnkgYSBsZXR0ZXIgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXko
MSwgMiwgMywgNCwgeCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlR3byBjb21tYXMgYXMg
c2VwYXJhdG9yIGJldHdlZW4gdmFsdWVzIGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVyLCBh
IGFycmF5KDEsIDIsICwgNCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkxlYWRpbmcgY29t
bWEgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLDEsIDIsIDMsIDQpKSIp
OwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJTZW1pY29sb24gc2VwYXJhdGVkIHZhbHVlcyBpbiBh
cnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxOyAyOyAzOyA0KSkiKTsKK3Rlc3RJ
bnZhbGlkRmlsdGVyUnVsZSgiU3BhY2Ugc2VwYXJhdGVkIHZhbHVlcyBpbiBhcnJheS4iLCAiY3Vz
dG9tKG15LWZpbHRlciwgYSBhcnJheSgxIDIgMyA0KSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVs
ZSgiU3BhY2Ugc2VwYXJhdGVkIHZhbHVlcyB3aXRoIGNvbW1hIHRlcm1pbmF0b3IgaW4gYXJyYXku
IiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSAyIDMgNCwpKSIpOwordGVzdEludmFsaWRG
aWx0ZXJSdWxlKCJTcGFjZSBzZXBhcmF0ZWQgdmFsdWVzIHdpdGggbGVhZGluZyBjb21tYSBpbiBh
cnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsIDEgMiAzIDQpKSIpOwordGVzdElu
dmFsaWRGaWx0ZXJSdWxlKCJOYU4gaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJy
YXkoTmFOKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiTmFOIGJldHdlZW4gdmFsaWQgdmFs
dWVzIGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIE5hTiwgMykp
Iik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgdmFsdWUgJ25vbmUnIGluIGFycmF5
LiIsICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KG5vbmUpKSIpOwordGVzdEludmFsaWRGaWx0
ZXJSdWxlKCJJbnZhbGlkIHZhbHVlIHVuaXQgJ3B4JyBpbiBhcnJheS4iLCAiY3VzdG9tKG15LWZp
bHRlciwgYSBhcnJheSgxcHgpKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJJbnZhbGlkIHZh
bHVlIHVuaXQgJ2RlZycgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMWRl
ZykpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgdmFsdWUgdW5pdCAncHgnIGlu
IGFycmF5IGFmdGVyIHZhbGlkIHZhbHVlcy4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgx
LCAyLCAzLCA0cHgpKSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3NjcmlwdC10ZXN0cy9wYXJzaW5nLWN1c3RvbS1mdW5j
dGlvbi12YWxpZC5qcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1y
dWxlLXN5bnRheC9zY3JpcHQtdGVzdHMvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE3ZDlmZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRh
eC9zY3JpcHQtdGVzdHMvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuanMKQEAgLTAsMCAr
MSwxMDUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIG9mIHRoZSBjdXN0b20oKSBm
dW5jdGlvbiBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuIik7CisKKy8vIFRoZXNlIGhh
dmUgdG8gYmUgZ2xvYmFsIGZvciB0aGUgdGVzdCBoZWxwZXJzIHRvIHNlZSB0aGVtLgordmFyIHN0
eWxlUnVsZSwgc3R5bGVEZWNsYXJhdGlvbiwgZmlsdGVyUHJvcGVydHlWYWx1ZSwgc3ViVmFsdWU7
CisKK2Z1bmN0aW9uIHRlc3RGaWx0ZXJQcm9wZXJ0eShkZXNjcmlwdGlvbiwgcHJvcGVydHlWYWx1
ZSwgZXhwZWN0ZWRWYWx1ZSwgZXhwZWN0ZWRUeXBlcywgZXhwZWN0ZWRUZXh0cykKK3sKKyAgICBk
ZWJ1ZygiXG4iICsgZGVzY3JpcHRpb24gKyAiXG4iICsgcHJvcGVydHlWYWx1ZSk7CisKKyAgICBz
dHlsZXNoZWV0Lmluc2VydFJ1bGUoImJvZHkgeyAtd2Via2l0LWZpbHRlcjogIiArIHByb3BlcnR5
VmFsdWUgKyAiOyB9IiwgMCk7CisgICAgc3R5bGVSdWxlID0gc3R5bGVzaGVldC5jc3NSdWxlcy5p
dGVtKDApOworICAgIHNob3VsZEJlKCJzdHlsZVJ1bGUudHlwZSIsICJDU1NSdWxlLlNUWUxFX1JV
TEUiKTsKKworICAgIHN0eWxlRGVjbGFyYXRpb24gPSBzdHlsZVJ1bGUuc3R5bGU7CisgICAgc2hv
dWxkQmUoInN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIiwgIjEiKTsKKyAgICBzaG91bGRCZSgic3R5
bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIiwgIiciICsg
ZXhwZWN0ZWRWYWx1ZSArICInIik7CisKKyAgICBmaWx0ZXJQcm9wZXJ0eVZhbHVlID0gc3R5bGVE
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCctd2Via2l0LWZpbHRlcicpOworICAgIHNo
b3VsZEhhdmVDb25zdHJ1Y3RvcigiZmlsdGVyUHJvcGVydHlWYWx1ZSIsICJDU1NWYWx1ZUxpc3Qi
KTsKKworICAgIGlmICghZXhwZWN0ZWRUeXBlcykgeworICAgICAgICBleHBlY3RlZFR5cGVzID0g
WyJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTSJdOworICAgICAgICBleHBl
Y3RlZFRleHRzID0gW2V4cGVjdGVkVmFsdWVdOworICAgIH0KKyAgICAKKyAgICBzaG91bGRCZSgi
ZmlsdGVyUHJvcGVydHlWYWx1ZS5sZW5ndGgiLCAiIiArIGV4cGVjdGVkVHlwZXMubGVuZ3RoKTsg
Ly8gc2hvdWxkQmUgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzCisgIAorICAgIGlmIChmaWx0ZXJQ
cm9wZXJ0eVZhbHVlKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRUeXBl
cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3ViVmFsdWUgPSBmaWx0ZXJQcm9wZXJ0eVZh
bHVlW2ldOworICAgICAgICAgICAgc2hvdWxkQmUoInN1YlZhbHVlLm9wZXJhdGlvblR5cGUiLCBl
eHBlY3RlZFR5cGVzW2ldKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJzdWJWYWx1ZS5jc3NUZXh0
IiwgIiciICsgZXhwZWN0ZWRUZXh0c1tpXSArICInIik7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K2hlYWRpbmcoIkN1c3RvbSBmdW5jdGlvbiB0ZXN0cy4iKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgi
Q3VzdG9tIGZ1bmN0aW9uIGluIENBUFMuIiwKKyAgICAiQ1VTVE9NKG15LWZpbHRlcikiLAorICAg
ICJjdXN0b20obXktZmlsdGVyKSIpOworCitoZWFkaW5nKCJGaWx0ZXIgY2hhaW4gdGVzdHMuIikK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiQ3VzdG9tIGZ1bmN0aW9uIGluIG1pZGRsZSBvZiBmaWx0ZXIg
Y2hhaW4uIiwKKyAgICAiZ3JheXNjYWxlKCkgY3VzdG9tKG15LWZpbHRlcikgc2VwaWEoKSIsICJn
cmF5c2NhbGUoKSBjdXN0b20obXktZmlsdGVyKSBzZXBpYSgpIiwKKyAgICBbIldlYktpdENTU0Zp
bHRlclZhbHVlLkNTU19GSUxURVJfR1JBWVNDQUxFIiwKKyAgICAiV2ViS2l0Q1NTRmlsdGVyVmFs
dWUuQ1NTX0ZJTFRFUl9DVVNUT00iLAorICAgICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklM
VEVSX1NFUElBIl0sCisgICAgWyJncmF5c2NhbGUoKSIsCisgICAgImN1c3RvbShteS1maWx0ZXIp
IiwKKyAgICAic2VwaWEoKSJdKTsKKworaGVhZGluZygiRmlsdGVyIG5hbWUgdGVzdHMuIik7Cit0
ZXN0RmlsdGVyUHJvcGVydHkoIkZpbHRlciBuYW1lIG9ubHkuIiwKKyAgICAiY3VzdG9tKG15LWZp
bHRlcikiLAorICAgICJjdXN0b20obXktZmlsdGVyKSIpOwordGVzdEZpbHRlclByb3BlcnR5KCJG
aWx0ZXIgbmFtZSBhcyBDU1MgJ25vbmUnIGtleXdvcmQuIiwKKyAgICAiY3VzdG9tKG5vbmUpIiwK
KyAgICAiY3VzdG9tKG5vbmUpIik7CisKK2hlYWRpbmcoIk51bWJlciBwYXJhbWV0ZXIgdGVzdHMu
IikKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiSW50ZWdlciBwYXJhbWV0ZXJzLiIsCisgICAgImN1c3Rv
bShteS1maWx0ZXIsIG4xIDEsIG4yIDIgMywgbjMgMyA0IDUsIG40IDQgNSA2IDcpIiwKKyAgICAi
Y3VzdG9tKG15LWZpbHRlciwgbjEgMSwgbjIgMiAzLCBuMyAzIDQgNSwgbjQgNCA1IDYgNykiKTsK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiRmxvYXQgcGFyYW1ldGVycy4iLAorICAgICJjdXN0b20obXkt
ZmlsdGVyLCBuMSAxLjEsIG4yIDIuMiAzLjMsIG4zIDMuMSA0LjEgNS4xLCBuNCA0LjEgNS4yIDYu
MyA3LjQpIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgbjEgMS4xLCBuMiAyLjIgMy4zLCBuMyAz
LjEgNC4xIDUuMSwgbjQgNC4xIDUuMiA2LjMgNy40KSIpOwordGVzdEZpbHRlclByb3BlcnR5KCJQ
YXJhbWV0ZXIgbmFtZSBzYW1lIGFzIENTUyBrZXl3b3JkLiIsCisgICAgImN1c3RvbShteS1maWx0
ZXIsIGJhY2tncm91bmQgMCAxIDAgMSkiLAorICAgICJjdXN0b20obXktZmlsdGVyLCBiYWNrZ3Jv
dW5kIDAgMSAwIDEpIik7CisKK2hlYWRpbmcoIlRyYW5zZm9ybSBwYXJhbWV0ZXIgdGVzdHMuIikK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiVHJhbnNmb3JtIHBhcmFtZXRlciB3aXRoIG9uZSB0cmFuc2Zv
cm0gZnVuY3Rpb24uIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykpIiwK
KyAgICAiY3VzdG9tKG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykpIik7Cit0ZXN0RmlsdGVyUHJv
cGVydHkoIlRyYW5zZm9ybSBwYXJhbWV0ZXIgd2l0aCBtdWx0aXBsZSB0cmFuc2Zvcm0gZnVuY3Rp
b25zLiIsCisgICAgImN1c3RvbShteS1maWx0ZXIsIHQgcm90YXRlKDBkZWcpIHBlcnNwZWN0aXZl
KDApIHNjYWxlKDAsIDApIHRyYW5zbGF0ZSgwcHgsIDBweCkpIiwKKyAgICAiY3VzdG9tKG15LWZp
bHRlciwgdCByb3RhdGUoMGRlZykgcGVyc3BlY3RpdmUoMCkgc2NhbGUoMCwgMCkgdHJhbnNsYXRl
KDBweCwgMHB4KSkiKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiTXVsaXRwbGUgdHJhbnNmb3JtIHBh
cmFtZXRlcnMuIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgdDEgcm90YXRlKDBkZWcpLCB0MiBy
b3RhdGUoMGRlZykpIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgdDEgcm90YXRlKDBkZWcpLCB0
MiByb3RhdGUoMGRlZykpIik7CisKK2hlYWRpbmcoIkFycmF5IHBhcmFtZXRlciB0ZXN0cy4iKTsK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiQXJyYXkgcGFyYW1ldGVyIHdpdGggbmFtZSAnYXJyYXknLiIs
CisgICAgImN1c3RvbShteS1maWx0ZXIsIGFycmF5IGFycmF5KDEpKSIsCisgICAgImN1c3RvbSht
eS1maWx0ZXIsIGFycmF5IGFycmF5KDEpKSIpOwordGVzdEZpbHRlclByb3BlcnR5KCJBcnJheSBw
YXJhbWV0ZXIgd2l0aCBvbmUgcG9zaXRpdmUgaW50ZWdlci4iLAorICAgICJjdXN0b20obXktZmls
dGVyLCBhIGFycmF5KDEpKSIsCisgICAgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSkpIik7
Cit0ZXN0RmlsdGVyUHJvcGVydHkoIkFycmF5IHBhcmFtZXRlciB3aXRoIG9uZSBuZWdhdGl2ZSBm
bG9hdC4iLAorICAgICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSkiLAorICAgICJj
dXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSkiKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgi
QXJyYXkgcGFyYW1ldGVyIHdpdGggbXVsdGlwbGUgcG9zaXRpdmUgaW50ZWdlcnMuIiwKKyAgICAi
Y3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxLCAyLCAzLCA0LCA1KSkiLAorICAgICJjdXN0b20o
bXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsIDUpKSIpOwordGVzdEZpbHRlclByb3BlcnR5
KCJBcnJheSBwYXJhbWV0ZXIgd2l0aCBtdWx0aXBsZSBzaWduZWQgZmxvYXRzLiIsCisgICAgImN1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSkiLAorICAgICJj
dXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIC0yLjIsIDMuMTQsIDAuNCwgNSkpIik7Cit0ZXN0
RmlsdGVyUHJvcGVydHkoIk11bHRpcGxlIGFycmF5IHBhcmFtZXRlcnMuIiwKKyAgICAiY3VzdG9t
KG15LWZpbHRlciwgYTEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwg
MiwgMykpIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgYTEgYXJyYXkoMSwgLTIuMiwgMy4xNCwg
MC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykpIik7CisKK2hlYWRpbmcoIkNvbWJpbmVkIHBhcmFt
ZXRlciB0ZXN0cy4iKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiTnVtYmVyIHBhcmFtZXRlciwgdHJh
bnNmb3JtIHBhcmFtZXRlciwgYW5kIGFycmF5IHBhcmFtZXRlci4iLAorICAgICJjdXN0b20obXkt
ZmlsdGVyLCBuIDEsIHQgcm90YXRlKDBkZWcpLCBhIGFycmF5KDEpKSIsCisgICAgImN1c3RvbSht
eS1maWx0ZXIsIG4gMSwgdCByb3RhdGUoMGRlZyksIGEgYXJyYXkoMSkpIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3RzL2N1c3RvbS1maWx0ZXItcGFy
c2luZy1jb21tb24uanMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3RzL2N1
c3RvbS1maWx0ZXItcGFyc2luZy1jb21tb24uanMKaW5kZXggZjJkNzU2ZC4uYTIyMWYwYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmls
dGVyLXBhcnNpbmctY29tbW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3Jp
cHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wYXJzaW5nLWNvbW1vbi5qcwpAQCAtMSw1ICsxLDEzIEBA
CiAvLyBIZWxwZXIgZnVuY3Rpb25zLgogCitmdW5jdGlvbiBoZWFkaW5nKHN0cmluZykKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0iKTsKKyAgICBkZWJ1ZyhzdHJpbmcpOworICAgIGRlYnVnKCI9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7Cit9CisKIGZ1bmN0aW9uIGpzV3JhcHBlckNs
YXNzKG5vZGUpCiB7CiAgICAgaWYgKCFub2RlKQpAQCAtOCw2ICsxNiw4IEBAIGZ1bmN0aW9uIGpz
V3JhcHBlckNsYXNzKG5vZGUpCiAgICAgcmV0dXJuIHN0cmluZy5zdWJzdHIoOCwgc3RyaW5nLmxl
bmd0aCAtIDkpOwogfQogCisvLyBGSVhNRTogVGhpcyB0eXBlLWNoZWNraW5nIGFwcHJvYWNoIGZh
aWxzIG9uIFY4LCB3aGljaCByZXF1aXJlcyB1cyB0byBoYXZlIENocm9taXVtLXNwZWNpZmljIGV4
cGVjdGF0aW9ucy4KKy8vIFdlIHNob3VsZCB1c2UgdGhlIHNob3VsZEhhdmVDb25zdHJ1Y3RvciBm
dW5jdGlvbiBpbnN0ZWFkLCB3aGljaCB3b3JrcyByZWdhcmRsZXNzIG9mIEpTIGVuZ2luZS4KIGZ1
bmN0aW9uIHNob3VsZEJlVHlwZShleHByZXNzaW9uLCBjbGFzc05hbWUsIHByb3RvdHlwZU5hbWUs
IGNvbnN0cnVjdG9yTmFtZSkKIHsKICAgICBpZiAoIXByb3RvdHlwZU5hbWUpCkBAIC0xOSw4ICsy
OSwxNiBAQCBmdW5jdGlvbiBzaG91bGRCZVR5cGUoZXhwcmVzc2lvbiwgY2xhc3NOYW1lLCBwcm90
b3R5cGVOYW1lLCBjb25zdHJ1Y3Rvck5hbWUpCiAgICAgc2hvdWxkQmUoImpzV3JhcHBlckNsYXNz
KCIgKyBleHByZXNzaW9uICsgIi5jb25zdHJ1Y3RvcikiLCAiJyIgKyBjb25zdHJ1Y3Rvck5hbWUg
KyAiJyIpOwogfQogCitmdW5jdGlvbiBzaG91bGRIYXZlQ29uc3RydWN0b3IoZXhwcmVzc2lvbiwg
Y29uc3RydWN0b3JOYW1lKQoreworICAgIHNob3VsZEJlVHJ1ZShleHByZXNzaW9uICsgIiBpbnN0
YW5jZW9mICIgKyBjb25zdHJ1Y3Rvck5hbWUpOworICAgIHNob3VsZEJlVHJ1ZShleHByZXNzaW9u
ICsgIi5jb25zdHJ1Y3RvciA9PT0gIiArIGNvbnN0cnVjdG9yTmFtZSk7CisgICAgc2hvdWxkQmVU
cnVlKGV4cHJlc3Npb24gKyAiLl9fcHJvdG9fXyA9PT0gIiArIGNvbnN0cnVjdG9yTmFtZSArICIu
cHJvdG90eXBlIik7Cit9CisKIC8vIE5lZWQgdG8gcmVtb3ZlIHRoZSBiYXNlIFVSTCB0byBhdm9p
ZCBoYXZpbmcgbG9jYWwgcGF0aHMgaW4gdGhlIGV4cGVjdGVkIHJlc3VsdHMuCi1mdW5jdGlvbiBy
ZW1vdmVCYXNlVVJMKHNyYykgeworZnVuY3Rpb24gcmVtb3ZlQmFzZVVSTChzcmMpIAorewogICAg
IHZhciB1cmxSZWdleHAgPSAvdXJsXCgoW15cKV0qKVwpL2c7CiAgICAgcmV0dXJuIHNyYy5yZXBs
YWNlKHVybFJlZ2V4cCwgZnVuY3Rpb24obWF0Y2gsIHVybCkgewogICAgICAgICByZXR1cm4gInVy
bCgiICsgdXJsLnN1YnN0cih1cmwubGFzdEluZGV4T2YoIi8iKSArIDEpICsgIikiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDk5ZDhkMzkuLmY2MTU3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAx
My0wMS0zMCAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
UyBTaGFkZXJzXSBQYXJzZSBjdXN0b20gZmlsdGVyIGZ1bmN0aW9uIHdpdGggdGhlIGF0LXJ1bGUg
cmVmZXJlbmNlIHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBwYXJzaW5nIGZvciB0aGUgbmV3IGN1
c3RvbSBmaWx0ZXIgZnVuY3Rpb24gImF0LXJ1bGUgcmVmZXJlbmNlIgorICAgICAgICBzeW50YXgu
IEl0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgc3R5bGUgcmVzb2x1dGlvbiB5ZXQuCisKKyAgICAg
ICAgVGhlIGN1c3RvbSBmdW5jdGlvbiBzeW50YXggaGFzIGNoYW5nZWQgaW4gdGhlIHNwZWMuIElu
c3RlYWQgb2YgaW5jbHVkaW5nIGFsbCBvZiB0aGUgY3VzdG9tCisgICAgICAgIGZpbHRlciBpbmZv
cm1hdGlvbiBpbmxpbmUsIHRoZSBjdXN0b20gZnVuY3Rpb24gY2FuIG5vdyByZWZlcmVuY2UgYW4g
QGZpbHRlciBydWxlIGJ5IG5hbWUuCisgICAgICAgIFRoZSBjdXN0b20gZnVuY3Rpb24gY2FuIHN0
aWxsIGFjY2VwdCBhIGxpc3Qgb2YgcGFyYW1ldGVycy4KKworICAgICAgICBUaGUgc3ludGF4IGlz
IGRlZmluZWQgYXMgdGhlIGZvbGxvd2luZywgd2hlcmUgSURFTlQgaXMgdGhlIG5hbWUgb2YgdGhl
IEBmaWx0ZXIgcnVsZToKKyAgICAgICAgZmlsdGVyOiBjdXN0b20oSURFTlQgWywgPHBhcmFtPl0q
KQorCisgICAgICAgIEluIHByYWN0aWNlLCBpdCBjYW4gbG9vayBsaWtlIHRoaXM6CisgICAgICAg
IGZpbHRlcjogY3VzdG9tKHBhZ2UtY3VybCwgZGlyZWN0aW9uIDkwLCBhbW91bnQgMC41KTsKKwor
ICAgICAgICBTcGVjOiBodHRwczovL2R2Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL2Zp
bHRlcnMvaW5kZXguaHRtbCNjdXN0b21pZGVudC1sdHBhcmFtZ3QKKworICAgICAgICBUZXN0czog
Y3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3BhcnNpbmctY3VzdG9tLWZ1
bmN0aW9uLWludmFsaWQuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9maWx0ZXJzL2N1c3RvbS13
aXRoLWF0LXJ1bGUtc3ludGF4L3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLmh0bWwKKwor
ICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZUN1c3RvbUZpbHRlclBhcmFtZXRlcnMpOgorICAgICAgICAgICAgRmFjdG9yIG91dCBh
IG5ldyBmdW5jdGlvbiB0aGF0IGp1c3QgcGFyc2VzIGN1c3RvbSBmaWx0ZXIgcGFyYW1ldGVycy4g
VGhpcyBpcyB1c2VkIGJ5IHRoZQorICAgICAgICAgICAgcHJldmlvdXMgaW5saW5lIHN5bnRheCBh
bmQgdGhlIG5ldyBhdC1ydWxlIHJlZmVyZW5jZSBzeW50YXguCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDdXN0b21GaWx0ZXJGdW5jdGlvbldp
dGhBdFJ1bGVSZWZlcmVuY2VTeW50YXgpOgorICAgICAgICAgICAgVGhpcyBtZXRob2QgcGFyc2Vz
IHRoZSBuZXcgYXQtcnVsZSByZWZlcmVuY2Ugc3ludGF4LiBXaGVuIHdlIHJlbW92ZSB0aGUgaW5s
aW5lIHN5bnRheCwKKyAgICAgICAgICAgIHdlIGNhbiByZW5hbWUgdGhpcyBtZXRob2QgdG8gInBh
cnNlQ3VzdG9tRmlsdGVyRnVuY3Rpb24iIGFuZCBjYWxsIGl0IGRpcmVjdGx5LgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlckZ1bmN0aW9uV2l0aElubGluZVN5
bnRheCk6CisgICAgICAgICAgICBNb3ZlIHRoZSBwcmV2aW91cyBpbmxpbmUgc3ludGF4IHBhcnNp
bmcgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZUN1c3RvbUZpbHRlckZ1bmN0aW9uKToKKyAgICAgICAgICAgIFRoaXMgbWV0aG9kIGxv
b2tzIGFoZWFkIGluIHRoZSBDU1MgcGFyc2VyIHZhbHVlcyBhbmQgZGVjaWRlcyB3aGV0aGVyIHRv
IHBhcnNlIHRoZSBjdXN0b20KKyAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGggdGhlIHByZXZpb3Vz
IGlubGluZSBzeW50YXggb3Igd2l0aCB0aGUgbmV3IGF0LXJ1bGUgcmVmZXJlbmNlIHN5bnRheC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWx0ZXIpOgorICAgICAgICAgICAg
SSByZW5hbWVkIHRoZSAicGFyc2VDdXN0b21GaWx0ZXIiIG1ldGhvZCB0byAicGFyc2VDdXN0b21G
aWx0ZXJGdW5jdGlvbiIgdG8gYmUgbW9yZQorICAgICAgICAgICAgZXhwbGljaXQuIEhlcmUsIHdl
IHVwZGF0ZSB0aGUgbmFtZSBpbiB0aGUgY2FsbCBzaXRlLgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDoKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJlc29sdmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoQXRSdWxlUmVm
ZXJlbmNlU3ludGF4KToKKyAgICAgICAgICAgIFRoaXMgaXMgYSBzdHViIG1ldGhvZC4gSW4gdGhl
IGZ1dHVyZSwgc3R5bGUgcmVzb2x1dGlvbiBmb3IgdGhlIGF0LXJ1bGUgcmVmZXJlbmNlCisgICAg
ICAgICAgICBzeW50YXggd2lsbCBoYXBwZW4gaGVyZS4gV2hlbiB3ZSByZW1vdmUgdGhlIGlubGlu
ZSBzeW50YXgsIHdlIGNhbiByZW5hbWUgdGhpcyBtZXRob2QgCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoSW5saW5lU3ludGF4
KToKKyAgICAgICAgICAgIFRoaXMgbWV0aG9kIGNvbnRhaW5zIHRoZSBwcmV2aW91cyBpbmxpbmUg
c3ludGF4IHN0eWxlIHJlc29sdXRpb24gY29kZS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKToK
KyAgICAgICAgICAgIFRoaXMgbWV0aG9kIGRlY2lkZXMgd2hpY2ggc3ludGF4IHdlIHNob3VsZCB1
c2UgdG8gcmVzb2x2ZSB0aGUgc3R5bGUuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoK
KyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorCiAyMDEzLTAxLTI4ICBNaW4gUWluICA8cWlubWlu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBhZGRpbmcgc3VwcG9ydCBmb3IgRGlzY2FyZGFibGVQ
aXhlbFJlZiBmb3IgY2FjaGluZyBsYXppbHkgZGVjb2RlZCBpbWFnZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggZTY2ODA4ZC4uNjhhMzU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKQEAgLTgyNzcsMTUgKzgyNzcsMTI2IEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWl4RnVuY3Rp
b25WYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZU1peEZ1bmN0aW9uKENTU1BhcnNlclZhbHVlCiAgICAg
cmV0dXJuIG1peEZ1bmN0aW9uOwogfQogCi1QYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVl
PiBDU1NQYXJzZXI6OnBhcnNlQ3VzdG9tRmlsdGVyKENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK1Bh
c3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NQYXJzZXI6OnBhcnNlQ3VzdG9tRmlsdGVyUGFyYW1l
dGVycyhDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3NMaXN0KQogeworICAgIC8vCisgICAgLy8gcGFy
YW1zOiAgICAgIFs8cGFyYW0tZGVmPlssPHBhcmFtLWRlZj4qXV0KKyAgICAvLyBwYXJhbS1kZWY6
ICAgPHBhcmFtLW5hbWU+d3NwPHBhcmFtLXZhbHVlPgorICAgIC8vIHBhcmFtLW5hbWU6ICA8aWRl
bnQ+CisgICAgLy8gcGFyYW0tdmFsdWU6IHRydWV8ZmFsc2Vbd3NwK3RydWV8ZmFsc2VdezAtM30g
fAorICAgIC8vICAgICAgICAgICAgICA8bnVtYmVyPlt3c3ArPG51bWJlcj5dezAtM30gfAorICAg
IC8vICAgICAgICAgICAgICA8YXJyYXk+IHwKKyAgICAvLyAgICAgICAgICAgICAgPHRyYW5zZm9y
bT4gfAorICAgIC8vICAgICAgICAgICAgICA8dGV4dHVyZSg8dXJpPik+CisgICAgLy8gYXJyYXk6
ICdhcnJheSgnPG51bWJlcj5bd3NwPG51bWJlcj5dKicpJworICAgIC8vIGNzcy0zZC10cmFuc2Zv
cm06IDx0cmFuc2Zvcm0tZnVuY3Rpb24+O1s8dHJhbnNmb3JtLWZ1bmN0aW9uPl0qCisgICAgLy8g
dHJhbnNmb3JtOiAgIDxjc3MtM2QtdHJhbnNmb3JtPiB8IDxtYXQ+CisgICAgLy8gbWF0OiAgICAg
ICAgICdtYXQyKCc8bnVtYmVyPigsPG51bWJlcj4pezN9JyknIHwgCisgICAgLy8gICAgICAgICAg
ICAgICdtYXQzKCc8bnVtYmVyPigsPG51bWJlcj4pezh9JyknIHwgCisgICAgLy8gICAgICAgICAg
ICAgICdtYXQ0KCc8bnVtYmVyPigsPG51bWJlcj4pezE1fScpJyApCisgICAgLy8KKworICAgIFJl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcmFtTGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFT
ZXBhcmF0ZWQoKTsKKworICAgIHdoaWxlIChDU1NQYXJzZXJWYWx1ZSogYXJnID0gYXJnc0xpc3Qt
PmN1cnJlbnQoKSkgeworICAgICAgICBpZiAoYXJnLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfSURFTlQpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiBwYXJhbWV0ZXIgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVk
KCk7CisgICAgICAgIHBhcmFtZXRlci0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZVN0cmluZ1ZhbHVl
KGFyZykpOworICAgICAgICBhcmdzTGlzdC0+bmV4dCgpOworCisgICAgICAgIGlmICghKGFyZyA9
IGFyZ3NMaXN0LT5jdXJyZW50KCkpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAg
UmVmUHRyPENTU1ZhbHVlPiBwYXJhbWV0ZXJWYWx1ZTsKKworICAgICAgICBpZiAoYXJnLT51bml0
ID09IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbiAmJiBhcmctPmZ1bmN0aW9uKSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHBhcnNpbmcgZm9yIHRoZSBvdGhlciBwYXJhbWV0ZXIg
dHlwZXMuCisgICAgICAgICAgICAvLyB0ZXh0dXJlczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcxNDQyCisgICAgICAgICAgICAvLyBtYXQyLCBtYXQzLCBtYXQ0OiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0NDQKKyAgICAgICAgICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShhcmctPmZ1bmN0aW9uLT5uYW1lLCAiYXJyYXkoIikpIHsK
KyAgICAgICAgICAgICAgICBwYXJhbWV0ZXJWYWx1ZSA9IHBhcnNlQ3VzdG9tRmlsdGVyQXJyYXlG
dW5jdGlvbihhcmcpOworICAgICAgICAgICAgICAgIC8vIFRoaXMgcGFyc2luZyBzdGVwIG9ubHkg
Y29uc3VtZXMgZnVuY3Rpb24gYXJndW1lbnRzLAorICAgICAgICAgICAgICAgIC8vIGFyZ3NMaXN0
IGlzIHRoZXJlZm9yZSBtb3ZlZCBmb3J3YXJkIGV4cGxpY2l0ZWx5LgorICAgICAgICAgICAgICAg
IGFyZ3NMaXN0LT5uZXh0KCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBw
YXJhbWV0ZXJWYWx1ZSA9IHBhcnNlQ3VzdG9tRmlsdGVyVHJhbnNmb3JtKGFyZ3NMaXN0KTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcmFtVmFs
dWVMaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgICAgICAg
ICAgd2hpbGUgKChhcmcgPSBhcmdzTGlzdC0+Y3VycmVudCgpKSkgeworICAgICAgICAgICAgICAg
IC8vIElmIHdlIGhpdCBhIGNvbW1hLCBpdCBtZWFucyB0aGF0IHdlIGZpbmlzaGVkIHRoaXMgcGFy
YW1ldGVyJ3MgdmFsdWVzLgorICAgICAgICAgICAgICAgIGlmIChpc0NvbW1hKGFyZykpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGlmICghdmFsaWRVbml0KGFy
ZywgRk51bWJlciwgQ1NTU3RyaWN0TW9kZSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgICAgIHBhcmFtVmFsdWVMaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCku
Y3JlYXRlVmFsdWUoYXJnLT5mVmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7
CisgICAgICAgICAgICAgICAgYXJnc0xpc3QtPm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmICghcGFyYW1WYWx1ZUxpc3QtPmxlbmd0aCgpIHx8IHBhcmFtVmFsdWVMaXN0LT5s
ZW5ndGgoKSA+IDQpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBwYXJh
bWV0ZXJWYWx1ZSA9IHBhcmFtVmFsdWVMaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICghcGFyYW1ldGVyVmFsdWUgfHwgIWFjY2VwdENvbW1hT3BlcmF0b3IoYXJnc0xpc3Qp
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgcGFyYW1ldGVyLT5hcHBlbmQocGFy
YW1ldGVyVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgcGFyYW1MaXN0LT5hcHBlbmQocGFyYW1l
dGVyLnJlbGVhc2UoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHBhcmFtTGlzdDsgICAKK30KKwor
UGFzc1JlZlB0cjxXZWJLaXRDU1NGaWx0ZXJWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZp
bHRlckZ1bmN0aW9uV2l0aEF0UnVsZVJlZmVyZW5jZVN5bnRheChDU1NQYXJzZXJWYWx1ZSogdmFs
dWUpCit7CisgICAgLy8KKyAgICAvLyBDdXN0b20gZmlsdGVyIGZ1bmN0aW9uICJhdC1ydWxlIHJl
ZmVyZW5jZSIgc3ludGF4OgorICAgIC8vCisgICAgLy8gY3VzdG9tKDxmaWx0ZXItbmFtZT53c3Bb
LHdzcDxwYXJhbXM+XSkKKyAgICAvLworICAgIC8vIGZpbHRlci1uYW1lOiA8ZmlsdGVyLW5hbWU+
CisgICAgLy8gcGFyYW1zOiBTZWUgdGhlIGNvbW1lbnQgaW4gQ1NTUGFyc2VyOjpwYXJzZUN1c3Rv
bUZpbHRlclBhcmFtZXRlcnMuCisgICAgLy8KKworICAgIEFTU0VSVCh2YWx1ZS0+ZnVuY3Rpb24p
OworCiAgICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzTGlzdCA9IHZhbHVlLT5mdW5jdGlvbi0+
YXJncy5nZXQoKTsKLSAgICBpZiAoIWFyZ3NMaXN0KQorICAgIGlmICghYXJnc0xpc3QgfHwgIWFy
Z3NMaXN0LT5zaXplKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gMS4gUGFyc2UgdGhl
IGZpbHRlciBuYW1lLgorICAgIENTU1BhcnNlclZhbHVlKiBhcmcgPSBhcmdzTGlzdC0+Y3VycmVu
dCgpOworICAgIGlmIChhcmctPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCkK
ICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+IGZp
bHRlclZhbHVlID0gV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OmNyZWF0ZShXZWJLaXRDU1NGaWx0ZXJW
YWx1ZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKTsKIAotICAgIC8vIEN1c3RvbSBmaWx0ZXIgc3lu
dGF4OgorICAgIFJlZlB0cjxDU1NWYWx1ZT4gZmlsdGVyTmFtZSA9IGNyZWF0ZVByaW1pdGl2ZVN0
cmluZ1ZhbHVlKGFyZyk7CisgICAgZmlsdGVyVmFsdWUtPmFwcGVuZChmaWx0ZXJOYW1lKTsKKyAg
ICBhcmdzTGlzdC0+bmV4dCgpOworCisgICAgaWYgKCFhY2NlcHRDb21tYU9wZXJhdG9yKGFyZ3NM
aXN0KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyAyLiBQYXJzZSB0aGUgcGFyYW1ldGVy
cy4KKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJhbUxpc3QgPSBwYXJzZUN1c3RvbUZpbHRl
clBhcmFtZXRlcnMoYXJnc0xpc3QpOworICAgIGlmICghcGFyYW1MaXN0KQorICAgICAgICByZXR1
cm4gMDsKKworICAgIGlmIChwYXJhbUxpc3QtPmxlbmd0aCgpKQorICAgICAgICBmaWx0ZXJWYWx1
ZS0+YXBwZW5kKHBhcmFtTGlzdC5yZWxlYXNlKCkpOworCisgICAgcmV0dXJuIGZpbHRlclZhbHVl
OworfQorCisvLyBGSVhNRTogVGhlIGN1c3RvbSBmaWx0ZXJzICJpbmxpbmUiIHN5bnRheCBpcyBk
ZXByZWNhdGVkLiBXZSB3aWxsIHJlbW92ZSBpdCBldmVudHVhbGx5LgorUGFzc1JlZlB0cjxXZWJL
aXRDU1NGaWx0ZXJWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlckZ1bmN0aW9uV2l0
aElubGluZVN5bnRheChDU1NQYXJzZXJWYWx1ZSogdmFsdWUpCit7CisgICAgLy8KKyAgICAvLyBD
dXN0b20gZmlsdGVyIGZ1bmN0aW9uICJpbmxpbmUiIHN5bnRheDoKKyAgICAvLworICAgIC8vIGN1
c3RvbSg8dmVydGV4LXNoYWRlcj5bd3NwPGZyYWdtZW50LXNoYWRlcj5dWyw8dmVydGV4LW1lc2g+
XVssPHBhcmFtcz5dKQogICAgIC8vCiAgICAgLy8gdmVydGV4U2hhZGVyOiAgICA8dXJpPiB8IG5v
bmUKICAgICAvLyBmcmFnbWVudFNoYWRlcjogIDx1cmk+IHwgbm9uZSB8IG1peCg8dXJpPiBbIDxi
bGVuZC1tb2RlPiB8fCA8YWxwaGEtY29tcG9zaXRpbmc+IF0/KQpAQCAtODI5NiwyNiArODQwNywy
MCBAQCBQYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQ3Vz
dG9tRmlsdGVyKENTU1BhcnNlclZhbHVlKiB2YQogICAgIC8vIGFscGhhLWNvbXBvc2l0aW5nOiBj
bGVhciB8IHNyYyB8IGRzdCB8IHNyYy1vdmVyIHwgZHN0LW92ZXIgfCBzcmMtaW4gfCBkc3QtaW4g
fAogICAgIC8vICAgICAgICAgICAgICAgICAgICBzcmMtb3V0IHwgZHN0LW91dCB8IHNyYy1hdG9w
IHwgZHN0LWF0b3AgfCB4b3IgfCBwbHVzCiAgICAgLy8KLSAgICAvLyBib3g6IGZpbHRlci1ib3gg
fCBib3JkZXItYm94IHwgcGFkZGluZy1ib3ggfCBjb250ZW50LWJveAogICAgIC8vIHZlcnRleE1l
c2g6ICArPGludGVnZXI+ezEsMn1bd3NwPGJveD5dW3dzcCdkZXRhY2hlZCddCisgICAgLy8gYm94
OiBmaWx0ZXItYm94IHwgYm9yZGVyLWJveCB8IHBhZGRpbmctYm94IHwgY29udGVudC1ib3gKICAg
ICAvLwotICAgIC8vIHBhcmFtLXZhbHVlOiB0cnVlfGZhbHNlW3dzcCt0cnVlfGZhbHNlXXswLTN9
IHwKLSAgICAvLyAgICAgICAgICAgICAgPG51bWJlcj5bd3NwKzxudW1iZXI+XXswLTN9IHwKLSAg
ICAvLyAgICAgICAgICAgICAgPGFycmF5PiB8Ci0gICAgLy8gICAgICAgICAgICAgIDx0cmFuc2Zv
cm0+IHwKLSAgICAvLyAgICAgICAgICAgICAgPHRleHR1cmUoPHVyaT4pPgotICAgIC8vIGFycmF5
OiAnYXJyYXkoJzxudW1iZXI+W3dzcDxudW1iZXI+XSonKScKLSAgICAvLyBjc3MtM2QtdHJhbnNm
b3JtOiA8dHJhbnNmb3JtLWZ1bmN0aW9uPjtbPHRyYW5zZm9ybS1mdW5jdGlvbj5dKgotICAgIC8v
IHRyYW5zZm9ybTogICA8Y3NzLTNkLXRyYW5zZm9ybT4gfCA8bWF0PgotICAgIC8vIG1hdDogICAg
ICAgICAnbWF0MignPG51bWJlcj4oLDxudW1iZXI+KXszfScpJyB8IAotICAgIC8vICAgICAgICAg
ICAgICAnbWF0MygnPG51bWJlcj4oLDxudW1iZXI+KXs4fScpJyB8IAotICAgIC8vICAgICAgICAg
ICAgICAnbWF0NCgnPG51bWJlcj4oLDxudW1iZXI+KXsxNX0nKScgKQotICAgIC8vIHBhcmFtLWRl
ZjogICA8cGFyYW0tbmFtZT53c3A8cGFyYW0tdmFsdWU+Ci0gICAgLy8gcGFyYW0tbmFtZTogIDxp
ZGVudD4KLSAgICAvLyBwYXJhbXM6ICAgICAgWzxwYXJhbS1kZWY+Wyw8cGFyYW0tZGVmPipdXQor
ICAgIC8vIHBhcmFtczogU2VlIHRoZSBjb21tZW50IGluIENTU1BhcnNlcjo6cGFyc2VDdXN0b21G
aWx0ZXJQYXJhbWV0ZXJzLgogICAgIC8vCi0gICAgLy8gY3VzdG9tKDx2ZXJ0ZXgtc2hhZGVyPlt3
c3A8ZnJhZ21lbnQtc2hhZGVyPl1bLDx2ZXJ0ZXgtbWVzaD5dWyw8cGFyYW1zPl0pCi0gICAgCisK
KyAgICBBU1NFUlQodmFsdWUtPmZ1bmN0aW9uKTsKKworICAgIENTU1BhcnNlclZhbHVlTGlzdCog
YXJnc0xpc3QgPSB2YWx1ZS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CisgICAgaWYgKCFhcmdzTGlz
dCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+
IGZpbHRlclZhbHVlID0gV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OmNyZWF0ZShXZWJLaXRDU1NGaWx0
ZXJWYWx1ZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKTsKKwogICAgIC8vIDEuIFBhcnNlIHRoZSBz
aGFkZXIgVVJMczogPHZlcnRleC1zaGFkZXI+W3dzcDxmcmFnbWVudC1zaGFkZXI+XQogICAgIFJl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IHNoYWRlcnNMaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFj
ZVNlcGFyYXRlZCgpOwogICAgIGJvb2wgaGFkQXRMZWFzdE9uZUN1c3RvbVNoYWRlciA9IGZhbHNl
OwpAQCAtODM4MCw2NCArODQ4NSwzNiBAQCBQYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVl
PiBDU1NQYXJzZXI6OnBhcnNlQ3VzdG9tRmlsdGVyKENTU1BhcnNlclZhbHVlKiB2YQogICAgICAg
ICBmaWx0ZXJWYWx1ZS0+YXBwZW5kKG1lc2hTaXplTGlzdC5yZWxlYXNlKCkpOwogICAgIH0KICAg
ICAKLSAgICAvLyAzLiBQYXJzZXIgdGhlIHBhcmFtZXRlcnMuCi0gICAgUmVmUHRyPENTU1ZhbHVl
TGlzdD4gcGFyYW1MaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwot
ICAgIAotICAgIHdoaWxlICgoYXJnID0gYXJnc0xpc3QtPmN1cnJlbnQoKSkpIHsKLSAgICAgICAg
aWYgKGFyZy0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKQotICAgICAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyYW1ldGVyID0g
Q1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwotICAgICAgICBwYXJhbWV0ZXIt
PmFwcGVuZChjcmVhdGVQcmltaXRpdmVTdHJpbmdWYWx1ZShhcmcpKTsKLSAgICAgICAgYXJnc0xp
c3QtPm5leHQoKTsKLQotICAgICAgICBpZiAoIShhcmcgPSBhcmdzTGlzdC0+Y3VycmVudCgpKSkK
LSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyYW1l
dGVyVmFsdWU7Ci0KLSAgICAgICAgaWYgKGFyZy0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVu
Y3Rpb24gJiYgYXJnLT5mdW5jdGlvbikgewotICAgICAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50
IG90aGVyIHBhcmFtZXRlcnMgdHlwZXMgcGFyc2luZy4KLSAgICAgICAgICAgIC8vIHRleHR1cmVz
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0NDIKLSAgICAgICAg
ICAgIC8vIG1hdDIsIG1hdDMsIG1hdDQ6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MTQ0NAotICAgICAgICAgICAgLy8gM2QtdHJhbnNmb3JtIHNoYWxsIGJlIHRoZSBs
YXN0IHRvIGJlIGNoZWNrZWQKLSAgICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhcmct
PmZ1bmN0aW9uLT5uYW1lLCAiYXJyYXkoIikpIHsKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJW
YWx1ZSA9IHBhcnNlQ3VzdG9tRmlsdGVyQXJyYXlGdW5jdGlvbihhcmcpOwotICAgICAgICAgICAg
ICAgIC8vIFRoaXMgcGFyc2luZyBzdGVwIG9ubHkgY29uc3VtZXMgZnVuY3Rpb24gYXJndW1lbnRz
LAotICAgICAgICAgICAgICAgIC8vIGFyZ3NMaXN0IGlzIHRoZXJlZm9yZSBtb3ZlZCBmb3J3YXJk
IGV4cGxpY2l0ZWx5LgotICAgICAgICAgICAgICAgIGFyZ3NMaXN0LT5uZXh0KCk7Ci0gICAgICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJWYWx1ZSA9IHBhcnNlQ3VzdG9t
RmlsdGVyVHJhbnNmb3JtKGFyZ3NMaXN0KTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcmFtVmFsdWVMaXN0ID0gQ1NTVmFsdWVM
aXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwotICAgICAgICAgICAgd2hpbGUgKChhcmcgPSBh
cmdzTGlzdC0+Y3VycmVudCgpKSkgewotICAgICAgICAgICAgICAgIC8vIElmIHdlIGhpdCBhIGNv
bW1hIGl0IG1lYW5zIHdlIGZpbmlzaGVkIHRoaXMgcGFyYW1ldGVyJ3MgdmFsdWVzLgotICAgICAg
ICAgICAgICAgIGlmIChpc0NvbW1hKGFyZykpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGlmICghdmFsaWRVbml0KGFyZywgRk51bWJlciwgQ1NTU3RyaWN0TW9k
ZSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIHBhcmFt
VmFsdWVMaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoYXJnLT5mVmFsdWUs
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7Ci0gICAgICAgICAgICAgICAgYXJnc0xp
c3QtPm5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghcGFyYW1WYWx1ZUxp
c3QtPmxlbmd0aCgpIHx8IHBhcmFtVmFsdWVMaXN0LT5sZW5ndGgoKSA+IDQpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICBwYXJhbWV0ZXJWYWx1ZSA9IHBhcmFtVmFsdWVM
aXN0LnJlbGVhc2UoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghcGFyYW1ldGVyVmFsdWUg
fHwgIWFjY2VwdENvbW1hT3BlcmF0b3IoYXJnc0xpc3QpKQotICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgLy8gMy4gUGFyc2UgdGhlIHBhcmFtZXRlcnMuCisgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gcGFyYW1MaXN0ID0gcGFyc2VDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKGFyZ3NMaXN0KTsKKyAg
ICBpZiAoIXBhcmFtTGlzdCkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgcGFyYW1ldGVy
LT5hcHBlbmQocGFyYW1ldGVyVmFsdWUucmVsZWFzZSgpKTsKLSAgICAgICAgcGFyYW1MaXN0LT5h
cHBlbmQocGFyYW1ldGVyLnJlbGVhc2UoKSk7Ci0gICAgfQotICAgIAogICAgIGlmIChwYXJhbUxp
c3QtPmxlbmd0aCgpKQogICAgICAgICBmaWx0ZXJWYWx1ZS0+YXBwZW5kKHBhcmFtTGlzdC5yZWxl
YXNlKCkpOwogICAgIAogICAgIHJldHVybiBmaWx0ZXJWYWx1ZTsKIH0KIAorUGFzc1JlZlB0cjxX
ZWJLaXRDU1NGaWx0ZXJWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlckZ1bmN0aW9u
KENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQodmFsdWUtPmZ1bmN0aW9uKTsK
KworICAgIC8vIExvb2sgYWhlYWQgdG8gZGV0ZXJtaW5lIHdoaWNoIHN5bnRheCB0aGUgY3VzdG9t
IGZ1bmN0aW9uIGlzIHVzaW5nLgorICAgIC8vIEJvdGggdGhlIGF0LXJ1bGUgcmVmZXJlbmNlIHN5
bnRheCBhbmQgdGhlIGlubGluZSBzeW50YXggcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQu
CisgICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzTGlzdCA9IHZhbHVlLT5mdW5jdGlvbi0+YXJn
cy5nZXQoKTsKKyAgICBpZiAoIWFyZ3NMaXN0IHx8ICFhcmdzTGlzdC0+c2l6ZSgpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIC8vIFRoZSBhdC1ydWxlIHJlZmVyZW5jZSBzeW50YXggZXhwZWN0
cyBhIHNpbmdsZSBpZGVudCBvciBhbiBpZGVudCBmb2xsb3dlZCBieSBhIGNvbW1hLiAKKyAgICAv
LyBlLmcuIGN1c3RvbShteS1maWx0ZXIpIG9yIGN1c3RvbShteS1maWx0ZXIsIC4uLikKKyAgICAv
LyBJbiBjb250cmFzdCwgd2hlbiB0aGUgaW5saW5lIHN5bnRheCBzdGFydHMgd2l0aCBhbiBpZGVu
dCBsaWtlICJub25lIiwgaXQgZXhwZWN0cyBhIHVyaSBvciBhIG1peCBmdW5jdGlvbiBuZXh0Lgor
ICAgIC8vIGUuZy4gY3VzdG9tKG5vbmUgdXJsKC4uLikpIG9yIGN1c3RvbShub25lIG1peCguLi4p
CisgICAgYm9vbCBpc0F0UnVsZVJlZmVyZW5jZVN5bnRheCA9IGFyZ3NMaXN0LT52YWx1ZUF0KDAp
LT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQgCisgICAgICAgICYmIChhcmdz
TGlzdC0+c2l6ZSgpID09IDEgfHwgaXNDb21tYShhcmdzTGlzdC0+dmFsdWVBdCgxKSkpOworICAg
IHJldHVybiBpc0F0UnVsZVJlZmVyZW5jZVN5bnRheCA/IHBhcnNlQ3VzdG9tRmlsdGVyRnVuY3Rp
b25XaXRoQXRSdWxlUmVmZXJlbmNlU3ludGF4KHZhbHVlKSA6IHBhcnNlQ3VzdG9tRmlsdGVyRnVu
Y3Rpb25XaXRoSW5saW5lU3ludGF4KHZhbHVlKTsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZUxp
c3Q+IENTU1BhcnNlcjo6cGFyc2VDdXN0b21GaWx0ZXJUcmFuc2Zvcm0oQ1NTUGFyc2VyVmFsdWVM
aXN0KiB2YWx1ZUxpc3QpCiB7CiAgICAgaWYgKCF2YWx1ZUxpc3QpCkBAIC04NTk4LDcgKzg2NzUs
NyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTUGFyc2VyOjpwYXJzZUZpbHRlcigpCiAg
ICAgICAgICAgICAgICAgaWYgKCFtX2NvbnRleHQuaXNDU1NDdXN0b21GaWx0ZXJFbmFibGVkKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+IGZpbHRlclZhbHVlID0gcGFyc2VD
dXN0b21GaWx0ZXIodmFsdWUpOworICAgICAgICAgICAgICAgIFJlZlB0cjxXZWJLaXRDU1NGaWx0
ZXJWYWx1ZT4gZmlsdGVyVmFsdWUgPSBwYXJzZUN1c3RvbUZpbHRlckZ1bmN0aW9uKHZhbHVlKTsK
ICAgICAgICAgICAgICAgICBpZiAoIWZpbHRlclZhbHVlKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoZmlsdGVyVmFsdWUucmVsZWFz
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAwMGRkYTFjLi5kYjllYTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCkBAIC0yMzIsMTAgKzIzMiwxMyBAQCBwdWJsaWM6CiAgICAgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcnNlRmlsdGVyKCk7CiAgICAgUGFzc1JlZlB0cjxXZWJLaXRD
U1NGaWx0ZXJWYWx1ZT4gcGFyc2VCdWlsdGluRmlsdGVyQXJndW1lbnRzKENTU1BhcnNlclZhbHVl
TGlzdCosIFdlYktpdENTU0ZpbHRlclZhbHVlOjpGaWx0ZXJPcGVyYXRpb25UeXBlKTsKICNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCi0gICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NBcnJheUZ1bmN0aW9u
VmFsdWU+IHBhcnNlQ3VzdG9tRmlsdGVyQXJyYXlGdW5jdGlvbihDU1NQYXJzZXJWYWx1ZSopOwog
ICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZT4gcGFyc2VNaXhGdW5jdGlv
bihDU1NQYXJzZXJWYWx1ZSopOwotICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+
IHBhcnNlQ3VzdG9tRmlsdGVyKENTU1BhcnNlclZhbHVlKik7CisgICAgUGFzc1JlZlB0cjxXZWJL
aXRDU1NBcnJheUZ1bmN0aW9uVmFsdWU+IHBhcnNlQ3VzdG9tRmlsdGVyQXJyYXlGdW5jdGlvbihD
U1NQYXJzZXJWYWx1ZSopOwogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJzZUN1c3Rv
bUZpbHRlclRyYW5zZm9ybShDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKKyAgICBQYXNzUmVmUHRyPENT
U1ZhbHVlTGlzdD4gcGFyc2VDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKENTU1BhcnNlclZhbHVlTGlz
dCopOworICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+IHBhcnNlQ3VzdG9tRmls
dGVyRnVuY3Rpb25XaXRoQXRSdWxlUmVmZXJlbmNlU3ludGF4KENTU1BhcnNlclZhbHVlKik7Cisg
ICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NGaWx0ZXJWYWx1ZT4gcGFyc2VDdXN0b21GaWx0ZXJGdW5j
dGlvbldpdGhJbmxpbmVTeW50YXgoQ1NTUGFyc2VyVmFsdWUqKTsKKyAgICBQYXNzUmVmUHRyPFdl
YktpdENTU0ZpbHRlclZhbHVlPiBwYXJzZUN1c3RvbUZpbHRlckZ1bmN0aW9uKENTU1BhcnNlclZh
bHVlKik7CiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
aW5kZXggNjg3YjM2OS4uYjYxMjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cApAQCAtNTAwMCwxMCArNTAwMCwxNSBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OnBhcnNlQ3VzdG9t
RmlsdGVyUGFyYW1ldGVyTGlzdChDU1NWYWx1ZSogcGFyYW1ldGVyc1ZhbHVlLCBDdQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1QYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gU3R5bGVS
ZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKFdlYktpdENTU0ZpbHRlclZhbHVl
KiBmaWx0ZXJWYWx1ZSkKK1Bhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBTdHlsZVJl
c29sdmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoQXRSdWxlUmVmZXJlbmNlU3lu
dGF4KFdlYktpdENTU0ZpbHRlclZhbHVlKiBmaWx0ZXJWYWx1ZSkKIHsKLSAgICBBU1NFUlQoZmls
dGVyVmFsdWUtPmxlbmd0aCgpKTsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0eWxlIHJlc29s
dXRpb24gZm9yIHRoZSBjdXN0b20gZmlsdGVyIGF0LXJ1bGUgcmVmZXJlbmNlIHN5bnRheC4KKyAg
ICBVTlVTRURfUEFSQU0oZmlsdGVyVmFsdWUpOworICAgIHJldHVybiAwOworfQogCitQYXNzUmVm
UHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gU3R5bGVSZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmls
dGVyT3BlcmF0aW9uV2l0aElubGluZVN5bnRheChXZWJLaXRDU1NGaWx0ZXJWYWx1ZSogZmlsdGVy
VmFsdWUpCit7CiAgICAgQ1NTVmFsdWUqIHNoYWRlcnNWYWx1ZSA9IGZpbHRlclZhbHVlLT5pdGVt
V2l0aG91dEJvdW5kc0NoZWNrKDApOwogICAgIEFTU0VSVChzaGFkZXJzVmFsdWUtPmlzVmFsdWVM
aXN0KCkpOwogICAgIENTU1ZhbHVlTGlzdCogc2hhZGVyc0xpc3QgPSBzdGF0aWNfY2FzdDxDU1NW
YWx1ZUxpc3QqPihzaGFkZXJzVmFsdWUpOwpAQCAtNTEwMiw2ICs1MTA3LDE0IEBAIFBhc3NSZWZQ
dHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBTdHlsZVJlc29sdmVyOjpjcmVhdGVDdXN0b21GaWx0
ZXJPcGVyYXRpb24oV2ViCiAgICAgUmVmUHRyPFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJv
Z3JhbSA9IFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6Y3JlYXRlKHZlcnRleFNoYWRlci5yZWxl
YXNlKCksIGZyYWdtZW50U2hhZGVyLnJlbGVhc2UoKSwgcHJvZ3JhbVR5cGUsIG1peFNldHRpbmdz
LCBtZXNoVHlwZSk7CiAgICAgcmV0dXJuIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKHBy
b2dyYW0ucmVsZWFzZSgpLCBwYXJhbWV0ZXJMaXN0LCBtZXNoUm93cywgbWVzaENvbHVtbnMsIG1l
c2hUeXBlKTsKIH0KKworUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IFN0eWxlUmVz
b2x2ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbihXZWJLaXRDU1NGaWx0ZXJWYWx1ZSog
ZmlsdGVyVmFsdWUpCit7CisgICAgQVNTRVJUKGZpbHRlclZhbHVlLT5sZW5ndGgoKSk7CisgICAg
Ym9vbCBpc0F0UnVsZVJlZmVyZW5jZVN5bnRheCA9IGZpbHRlclZhbHVlLT5pdGVtV2l0aG91dEJv
dW5kc0NoZWNrKDApLT5pc1ByaW1pdGl2ZVZhbHVlKCk7CisgICAgcmV0dXJuIGlzQXRSdWxlUmVm
ZXJlbmNlU3ludGF4ID8gY3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uV2l0aEF0UnVsZVJlZmVy
ZW5jZVN5bnRheChmaWx0ZXJWYWx1ZSkgOiBjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRo
SW5saW5lU3ludGF4KGZpbHRlclZhbHVlKTsKK30KKwogI2VuZGlmCiAKIGJvb2wgU3R5bGVSZXNv
bHZlcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1ZSogaW5WYWx1ZSwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBGaWx0ZXJPcGVyYXRpb25zJiBvdXRP
cGVyYXRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggMzMzNjZjNy4uMTA2
Nzk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yOTAsNiArMjkwLDggQEAg
cHVibGljOgogICAgIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUGFyYW1ldGVyPiBwYXJzZUN1c3Rv
bUZpbHRlckFycmF5UGFyYW1ldGVyKGNvbnN0IFN0cmluZyYgbmFtZSwgQ1NTVmFsdWVMaXN0Kik7
CiAgICAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+IHBhcnNlQ3VzdG9tRmlsdGVy
TnVtYmVyUGFyYW1ldGVyKGNvbnN0IFN0cmluZyYgbmFtZSwgQ1NTVmFsdWVMaXN0Kik7CiAgICAg
UGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+IHBhcnNlQ3VzdG9tRmlsdGVyVHJhbnNm
b3JtUGFyYW1ldGVyKGNvbnN0IFN0cmluZyYgbmFtZSwgQ1NTVmFsdWVMaXN0Kik7CisgICAgUGFz
c1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlv
bldpdGhBdFJ1bGVSZWZlcmVuY2VTeW50YXgoV2ViS2l0Q1NTRmlsdGVyVmFsdWUqKTsKKyAgICBQ
YXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gY3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uV2l0aElubGluZVN5bnRheChXZWJLaXRDU1NGaWx0ZXJWYWx1ZSopOwogICAgIFBhc3NSZWZQ
dHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24oV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUqKTsKICAgICB2b2lkIGxvYWRQZW5kaW5nU2hhZGVycygpOwogI2Vu
ZGlmCg==
</data>
<flag name="review"
          id="204669"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185816</attachid>
            <date>2013-01-31 11:04:41 -0800</date>
            <delta_ts>2013-01-31 13:53:38 -0800</delta_ts>
            <desc>Patch for Landing</desc>
            <filename>108351-2.patch</filename>
            <type>text/plain</type>
            <size>59076</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZDgzYTE2Li5lMGYyMDgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMDEt
MzEgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gUGFyc2UgY3VzdG9tIGZpbHRlciBmdW5jdGlvbiB3aXRoIHRoZSBhdC1ydWxlIHJlZmVy
ZW5jZSBzeW50YXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODM1MQorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAg
ICBBZGQgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHBhcnNpbmcgdGVzdHMgZm9yIHRoZSBuZXcgY3Vz
dG9tIGZ1bmN0aW9uIHN5bnRheC4KKworICAgICAgICBBZGQgYSBuZXcgZm9sZGVyICJjc3MzL2Zp
bHRlcnMvY3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50YXgiLiBUaGlzIHdpbGwgY29udGFpbiBhbGwg
dGhlIHRlc3RzCisgICAgICAgIHVzaW5nIHRoZSBuZXcgY3VzdG9tIGZpbHRlcnMgYXQtcnVsZSBz
eW50YXguIFdlIHdpbGwgZ3JhZHVhbGx5IGNvcHkgdGVzdHMgaW4KKyAgICAgICAgImNzczMvZmls
dGVycy9jdXN0b20iIG92ZXIgdG8gImNzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5
bnRheCIgYW5kIG1vZGlmeSB0aGVtIHRvCisgICAgICAgIHVzZSB0aGUgbmV3IGF0LXJ1bGUgc3lu
dGF4LiBXaGVuIGFsbCBvZiB0aGUgdGVzdHMgaGF2ZSBiZWVuIHJlcGxpY2F0ZWQgdXNpbmcgdGhl
IG5ldyBzeW50YXgsCisgICAgICAgIHdlIHdpbGwgcmVtb3ZlIHRoZSBwcmV2aW91cyBzeW50YXgg
YW5kIHRoZSB0ZXN0cyBpbiAiY3NzMy9maWx0ZXJzL2N1c3RvbSIuCisKKyAgICAgICAgKiBjc3Mz
L2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rp
b24taW52YWxpZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9j
dXN0b20td2l0aC1hdC1ydWxlLXN5bnRheC9wYXJzaW5nLWN1c3RvbS1mdW5jdGlvbi1pbnZhbGlk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxl
LXN5bnRheC9wYXJzaW5nLWN1c3RvbS1mdW5jdGlvbi12YWxpZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheC9wYXJz
aW5nLWN1c3RvbS1mdW5jdGlvbi12YWxpZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Zp
bHRlcnMvY3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvc2NyaXB0LXRlc3RzL3BhcnNpbmctY3Vz
dG9tLWZ1bmN0aW9uLWludmFsaWQuanM6IEFkZGVkLgorICAgICAgICAodGVzdEludmFsaWRGaWx0
ZXJSdWxlKToKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50
YXgvc2NyaXB0LXRlc3RzL3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3RGaWx0ZXJQcm9wZXJ0eSk6CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Nj
cmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXBhcnNpbmctY29tbW9uLmpzOgorICAgICAgICAoaGVh
ZGluZyk6CisgICAgICAgICAgICBOZXcgZnVuY3Rpb24gdG8gcHJpbnQgYSBoZWFkaW5nIHRvIG1h
a2UgZ3JvdXBzIG9mIHJlbGF0ZWQgcGFyc2luZyB0ZXN0cyBlYXNpZXIgdG8gc2VlLgorICAgICAg
ICAoc2hvdWxkSGF2ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgICAgIE5ldyBmdW5jdGlvbiB0byBj
aGVjayB0aGUgSlMgdHlwZSBvZiBhbiBvYmplY3Qgb24gSlNDIGFzIHdlbGwgYXMgVjguIFRoaXMg
aXMgaW50ZW5kZWQgdG8KKyAgICAgICAgICAgIGV2ZW50dWFsbHkgcmVwbGFjZSBzaG91bGRCZVR5
cGUsIHdoaWNoIHdvcmtzIGRpZmZlcmVudGx5IG9uIFY4IHZzLiBKU0MgYW5kIHJlcXVpcmVzIHVz
CisgICAgICAgICAgICB0byBjcmVhdGUgQ2hyb21pdW0tc3BlY2lmaWMgZXhwZWN0YXRpb25zIGZv
ciB0aGUgY3VzdG9tIGZpbHRlcnMgcGFyc2luZyB0ZXN0cy4KKwogMjAxMy0wMS0zMSAgRmxvcmlu
IE1hbGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5y
ZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMv
Y3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxp
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQt
cnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E4Njc3OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRh
eC9wYXJzaW5nLWN1c3RvbS1mdW5jdGlvbi1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMxMSBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiBjdXN0b20oKSBmdW5jdGlvbiBvZiB0aGUgLXdl
YmtpdC1maWx0ZXIgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0N1c3RvbSBmdW5jdGlv
biB0ZXN0cy4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRW1w
dHkgY3VzdG9tIGZ1bmN0aW9uLgorY3VzdG9tKCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitPbmUg
Y29tbWEgaW4gY3VzdG9tIGZ1bmN0aW9uLgorY3VzdG9tKCwpCitQQVNTIHN0eWxlUnVsZS50eXBl
IGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFT
UyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwK
KworTXVsdGlwbGUgY29tbWFzIGluIGN1c3RvbSBmdW5jdGlvbi4KK2N1c3RvbSgsLCkKK1BBU1Mg
c3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxl
bmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmls
dGVyJykgaXMgbnVsbAorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CitGaWx0ZXIgbmFtZSB0ZXN0cy4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworTm8gZmlsdGVyIG5hbWUgd2l0aCBwYXJhbWV0ZXIuCitjdXN0b20obiAxKQorUEFT
UyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24u
bGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1m
aWx0ZXInKSBpcyBudWxsCisKK1RvbyBtYW55IGZpbHRlciBuYW1lcy4KK2N1c3RvbShteS1maWx0
ZXItMSBteS1maWx0ZXItMikKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitGaWx0ZXIgbmFtZSBhcyBz
dHJpbmcuCitjdXN0b20oJ215LWZpbHRlci0xJykKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitGaWx0
ZXIgbmFtZSBhcyBudW1iZXIuCitjdXN0b20oMSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitTcGFj
ZSBiZXR3ZWVuIGZpbHRlciBuYW1lIGFuZCBwYXJhbWV0ZXIuCitjdXN0b20obXktZmlsdGVyIG4g
MSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xh
cmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CitOdW1iZXIgcGFyYW1ldGVyIHRlc3RzLgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCitUb28gbWFueSBwYXJhbWV0ZXIgdmFsdWVzLgorY3VzdG9t
KG15LWZpbHRlciwgbiAxIDIgMyA0IDUpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUu
U1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlv
bi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworSW52YWxpZCBw
YXJhbWV0ZXIgdHlwZS4KK2N1c3RvbShteS1maWx0ZXIsIG4gMS4wIDIuMCAndGV4dCcpCitQQVNT
IHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5s
ZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZp
bHRlcicpIGlzIG51bGwKKworTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYWZ0ZXIgY29tbWEuCitj
dXN0b20obXktZmlsdGVyLCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitObyBwYXJhbWV0ZXIgZGVm
aW5pdGlvbiB3aXRoIHR3byBjb21tYXMuCitjdXN0b20obXktZmlsdGVyLCwpCitQQVNTIHN0eWxl
UnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGgg
aXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicp
IGlzIG51bGwKKworTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYmVmb3JlIHZhbGlkIHBhcmFtZXRl
ciBkZWZpbnRpb24uCitjdXN0b20obXktZmlsdGVyLCAsIG4gMSkKK1BBU1Mgc3R5bGVSdWxlLnR5
cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQ
QVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVs
bAorCitObyBwYXJhbWV0ZXIgdmFsdWUuCitjdXN0b20obXktZmlsdGVyLCBuKQorUEFTUyBzdHls
ZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3Ro
IGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXIn
KSBpcyBudWxsCisKK05vIHBhcmFtZXRlciB2YWx1ZSB3aXRoIG11bHRpcGxlIHBhcmFtZXRlcnMu
CitjdXN0b20obXktZmlsdGVyLCBuMSwgbjIsIG4zKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBD
U1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVj
bGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1RyYW5zZm9ybSBwYXJhbWV0
ZXIgdGVzdHMuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK09u
ZSBpbnZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbi4KK2N1c3RvbShteS1maWx0ZXIsIHQgaW52YWxp
ZC1yb3RhdGUoMGRlZykpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVM
RQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworTXVsdGlwbGUgaW52YWxpZCB0
cmFuc2Zvcm0gZnVuY3Rpb25zLgorY3VzdG9tKG15LWZpbHRlciwgdCBpbnZhbGlkLXJvdGF0ZSgw
ZGVnKSBpbnZhbGlkLXBlcnNwZWN0aXZlKDApKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NS
dWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0ludmFs
aWQgdHJhbnNmb3JtIGZ1bmN0aW9uIGJldHdlZW4gdmFsaWQgb25lcy4KK2N1c3RvbShteS1maWx0
ZXIsIHQgcm90YXRlKDBkZWcpIGludmFsaWQtcm90YXRlKDBkZWcpIHBlcnNwZWN0aXZlKDApKQor
UEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRp
b24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1maWx0ZXInKSBpcyBudWxsCisKK1ZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbiBiZXR3ZWVuIGlu
dmFsaWQgb25lcy4KK2N1c3RvbShteS1maWx0ZXIsIHQgaW52YWxpZC1yb3RhdGUoMGRlZykgcGVy
c3BlY3RpdmUoMCkgaW52YWxpZC10cmFuc2xhdGUoMCkpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlz
IENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBk
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKwor
VmFsaWQgdHJhbnNmb3JtIGZ1bmN0aW9uIHdpdGhvdXQgbGVhZGluZyBjb21tYS4KK2N1c3RvbSht
eS1maWx0ZXIgdCBwZXJzcGVjdGl2ZSgwKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVs
ZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0
aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitWYWxpZCB0
cmFuc2Zvcm0gZnVuY3Rpb24gd2l0aCB0cmFpbGluZyBjb21tYS4KK2N1c3RvbShteS1maWx0ZXIs
IHQgcGVyc3BlY3RpdmUoMCksKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxF
X1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK1ZhbGlkIHRyYW5zZm9y
bSBmdW5jdGlvbiB3aXRoIHRyYWlsaW5nIGNvbW1hIGFuZCB3aXRob3V0IGxlYWRpbmcgY29tbWEu
CitjdXN0b20obXktZmlsdGVyIHQgcGVyc3BlY3RpdmUoMCksKQorUEFTUyBzdHlsZVJ1bGUudHlw
ZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BB
U1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxs
CisKK0ludmFsaWQgdHJhbnNmb3JtIHdpdGggdHJhaWxpbmcgY29tbWEuCitjdXN0b20obXktZmls
dGVyLCB0IGludmFsaWQtcm90YXRlKDBkZWcpLCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitJbnZh
bGlkIHRyYW5zZm9ybSB3aXRob3V0IGxlYWRpbmcgY29tbWEuCitjdXN0b20obXktZmlsdGVyIHQg
aW52YWxpZF9yb3RhdGUoMGRlZykpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZ
TEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworVmFsaWQgdHJhbnNm
b3JtIHdpdGggaW52YWxpZCBjaGFyYWN0ZXJzCitjdXN0b20obXktZmlsdGVyLHQgcm90YXRlKDBk
ZWcpICouLSwpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFT
UyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorQXJyYXkgcGFyYW1ldGVyIHRlc3RzLgorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitFbXB0eSBhcnJheS4KK2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxF
CitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitPbmUgY29tbWEgaW4gYXJyYXku
CitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KCwpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBD
U1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVj
bGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK011
bHRpcGxlIGNvbW1hcyBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLCwsKSkK
K1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0
aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykgaXMgbnVsbAorCitNdWx0aXBsZSBjb21tYXMgd2l0aCBhIHZhbHVlIGluIGFy
cmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsLDEsKSkKK1BBU1Mgc3R5bGVSdWxlLnR5
cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQ
QVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVs
bAorCitPbmUgY29tbWEgZm9sbG93ZWQgYnkgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBhcnJheS4KK2N1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLC00KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitPbmUg
Y29tbWEgZm9sbG93ZWQgYnkgYSB2YWx1ZSBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0ZXIsIGEg
YXJyYXkoLDQpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BB
U1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK09uZSBuZWdhdGl2ZSB2YWx1ZSBmb2xs
b3dlZCBieSBhIGNvbW1hIGluIGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgtNCwp
KQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFy
YXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1maWx0ZXInKSBpcyBudWxsCisKK09uZSB2YWx1ZSBmb2xsb3dlZCBieSBhIGNvbW1hIGlu
IGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSg0LCkpCitQQVNTIHN0eWxlUnVsZS50
eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAor
UEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51
bGwKKworVmFsaWQgdmFsdWVzIGZvbGxvd2VkIGJ5IGEgY29tbWEgaW4gYXJyYXkuCitjdXN0b20o
bXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMg
Q1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRl
Y2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitW
YWxpZCB2YWx1ZXMgZm9sbG93ZWQgYnkgYSBsZXR0ZXIgaW4gYXJyYXkuCitjdXN0b20obXktZmls
dGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsIHgpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NS
dWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK1R3byBj
b21tYXMgYXMgc2VwYXJhdG9yIGJldHdlZW4gdmFsdWVzIGluIGFycmF5LgorY3VzdG9tKG15LWZp
bHRlciwgYSBhcnJheSgxLCAyLCAsIDQpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxl
LlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRp
b24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0xlYWRpbmcg
Y29tbWEgaW4gYXJyYXkuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KCwxLCAyLCAzLCA0KSkK
K1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0
aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykgaXMgbnVsbAorCitTZW1pY29sb24gc2VwYXJhdGVkIHZhbHVlcyBpbiBhcnJh
eS4KK2N1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMTsgMjsgMzsgNCkpCitQQVNTIHN0eWxlUnVs
ZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMg
MAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlz
IG51bGwKKworU3BhY2Ugc2VwYXJhdGVkIHZhbHVlcyBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoMSAyIDMgNCkpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZ
TEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwKKworU3BhY2Ugc2VwYXJh
dGVkIHZhbHVlcyB3aXRoIGNvbW1hIHRlcm1pbmF0b3IgaW4gYXJyYXkuCitjdXN0b20obXktZmls
dGVyLCBhIGFycmF5KDEgMiAzIDQsKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5T
VFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9u
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitTcGFjZSBzZXBh
cmF0ZWQgdmFsdWVzIHdpdGggbGVhZGluZyBjb21tYSBpbiBhcnJheS4KK2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoLCAxIDIgMyA0KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5T
VFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9u
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitOYU4gaW4gYXJy
YXkuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KE5hTikpCitQQVNTIHN0eWxlUnVsZS50eXBl
IGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFT
UyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzIG51bGwK
KworTmFOIGJldHdlZW4gdmFsaWQgdmFsdWVzIGluIGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwg
YSBhcnJheSgxLCAyLCBOYU4sIDMpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNU
WUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24u
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0ludmFsaWQgdmFs
dWUgJ25vbmUnIGluIGFycmF5LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheShub25lKSkKK1BB
U1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9u
Lmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
ZmlsdGVyJykgaXMgbnVsbAorCitJbnZhbGlkIHZhbHVlIHVuaXQgJ3B4JyBpbiBhcnJheS4KK2N1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMXB4KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NT
UnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xh
cmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorCitJbnZh
bGlkIHZhbHVlIHVuaXQgJ2RlZycgaW4gYXJyYXkuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5
KDFkZWcpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mg
ZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyBudWxsCisKK0ludmFsaWQgdmFsdWUgdW5pdCAncHgnIGlu
IGFycmF5IGFmdGVyIHZhbGlkIHZhbHVlcy4KK2N1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSwg
MiwgMywgNHB4KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQ
QVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheC9wYXJzaW5nLWN1c3RvbS1mdW5jdGlv
bi1pbnZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQt
cnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMThjY2EKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2lu
Zy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wYXJz
aW5nLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BhcnNp
bmctY3VzdG9tLWZ1bmN0aW9uLWludmFsaWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
LXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3lu
dGF4L3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDhmNTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3BhcnNpbmct
Y3VzdG9tLWZ1bmN0aW9uLXZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0NSBAQAorVGVz
dCB0aGUgcGFyc2luZyBvZiB0aGUgY3VzdG9tKCkgZnVuY3Rpb24gb2YgdGhlIC13ZWJraXQtZmls
dGVyIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDdXN0b20gZnVuY3Rpb24gdGVzdHMu
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0N1c3RvbSBmdW5j
dGlvbiBpbiBDQVBTLgorQ1VTVE9NKG15LWZpbHRlcikKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMg
Q1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BB
U1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlz
ICdjdXN0b20obXktZmlsdGVyKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9m
IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0
b3IgPT09IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19w
cm90b19fID09PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJv
cGVydHlWYWx1ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdl
YktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1Rl
eHQgaXMgJ2N1c3RvbShteS1maWx0ZXIpJworCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CitGaWx0ZXIgY2hhaW4gdGVzdHMuCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK0N1c3RvbSBmdW5jdGlvbiBpbiBtaWRkbGUgb2YgZmlsdGVy
IGNoYWluLgorZ3JheXNjYWxlKCkgY3VzdG9tKG15LWZpbHRlcikgc2VwaWEoKQorUEFTUyBzdHls
ZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5s
ZW5ndGggaXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykgaXMgJ2dyYXlzY2FsZSgpIGN1c3RvbShteS1maWx0ZXIpIHNlcGlhKCknCitQ
QVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQor
UEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMg
dHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0
LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDMK
K1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0dSQVlTQ0FMRQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdncmF5c2NhbGUoKScK
K1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVy
KScKK1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5D
U1NfRklMVEVSX1NFUElBCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ3NlcGlhKCknCisKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0ZpbHRlciBuYW1lIHRlc3Rz
LgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitGaWx0ZXIgbmFt
ZSBvbmx5LgorY3VzdG9tKG15LWZpbHRlcikKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVs
ZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5
bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0
b20obXktZmlsdGVyKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1Zh
bHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09
IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19f
ID09PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlW
YWx1ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENT
U0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMg
J2N1c3RvbShteS1maWx0ZXIpJworCitGaWx0ZXIgbmFtZSBhcyBDU1MgJ25vbmUnIGtleXdvcmQu
CitjdXN0b20obm9uZSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxF
CitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlv
bi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obm9uZSknCitQ
QVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQor
UEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMg
dHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0
LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEK
K1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obm9uZSknCisK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK051bWJlciBwYXJhbWV0
ZXIgdGVzdHMuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0lu
dGVnZXIgcGFyYW1ldGVycy4KK2N1c3RvbShteS1maWx0ZXIsIG4xIDEsIG4yIDIgMywgbjMgMyA0
IDUsIG40IDQgNSA2IDcpCitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVM
RQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIHN0eWxlRGVjbGFyYXRp
b24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyAnY3VzdG9tKG15LWZpbHRl
ciwgbjEgMSwgbjIgMiAzLCBuMyAzIDQgNSwgbjQgNCA1IDYgNyknCitQQVNTIGZpbHRlclByb3Bl
cnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9w
ZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0
ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0
cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUu
b3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQor
UEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCBuMSAxLCBuMiAyIDMs
IG4zIDMgNCA1LCBuNCA0IDUgNiA3KScKKworRmxvYXQgcGFyYW1ldGVycy4KK2N1c3RvbShteS1m
aWx0ZXIsIG4xIDEuMSwgbjIgMi4yIDMuMywgbjMgMy4xIDQuMSA1LjEsIG40IDQuMSA1LjIgNi4z
IDcuNCkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0
eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBuMSAxLjEs
IG4yIDIuMiAzLjMsIG4zIDMuMSA0LjEgNS4xLCBuNCA0LjEgNS4yIDYuMyA3LjQpJworUEFTUyBm
aWx0ZXJQcm9wZXJ0eVZhbHVlIGluc3RhbmNlb2YgQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1Mg
ZmlsdGVyUHJvcGVydHlWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gQ1NTVmFsdWVMaXN0IGlzIHRydWUK
K1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5fX3Byb3RvX18gPT09IENTU1ZhbHVlTGlzdC5wcm90
b3R5cGUgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0aCBpcyAxCitQQVNT
IHN1YlZhbHVlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRF
Ul9DVVNUT00KK1BBU1Mgc3ViVmFsdWUuY3NzVGV4dCBpcyAnY3VzdG9tKG15LWZpbHRlciwgbjEg
MS4xLCBuMiAyLjIgMy4zLCBuMyAzLjEgNC4xIDUuMSwgbjQgNC4xIDUuMiA2LjMgNy40KScKKwor
UGFyYW1ldGVyIG5hbWUgc2FtZSBhcyBDU1Mga2V5d29yZC4KK2N1c3RvbShteS1maWx0ZXIsIGJh
Y2tncm91bmQgMCAxIDAgMSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmls
dGVyLCBiYWNrZ3JvdW5kIDAgMSAwIDEpJworUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlIGluc3Rh
bmNlb2YgQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5jb25z
dHJ1Y3RvciA9PT0gQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1
ZS5fX3Byb3RvX18gPT09IENTU1ZhbHVlTGlzdC5wcm90b3R5cGUgaXMgdHJ1ZQorUEFTUyBmaWx0
ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlZhbHVlLm9wZXJhdGlvblR5cGUg
aXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1Mgc3ViVmFsdWUu
Y3NzVGV4dCBpcyAnY3VzdG9tKG15LWZpbHRlciwgYmFja2dyb3VuZCAwIDEgMCAxKScKKworPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorVHJhbnNmb3JtIHBhcmFtZXRl
ciB0ZXN0cy4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVHJh
bnNmb3JtIHBhcmFtZXRlciB3aXRoIG9uZSB0cmFuc2Zvcm0gZnVuY3Rpb24uCitjdXN0b20obXkt
ZmlsdGVyLCB0IHJvdGF0ZSgwZGVnKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5T
VFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVE
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20o
bXktZmlsdGVyLCB0IHJvdGF0ZSgwZGVnKSknCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5z
dGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNv
bnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZh
bHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZp
bHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlw
ZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1
ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCB0IHJvdGF0ZSgwZGVnKSknCisKK1RyYW5z
Zm9ybSBwYXJhbWV0ZXIgd2l0aCBtdWx0aXBsZSB0cmFuc2Zvcm0gZnVuY3Rpb25zLgorY3VzdG9t
KG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykgcGVyc3BlY3RpdmUoMCkgc2NhbGUoMCwgMCkgdHJh
bnNsYXRlKDBweCwgMHB4KSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9S
VUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJh
dGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmls
dGVyLCB0IHJvdGF0ZSgwZGVnKSBwZXJzcGVjdGl2ZSgwKSBzY2FsZSgwLCAwKSB0cmFuc2xhdGUo
MHB4LCAwcHgpKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1ZhbHVl
TGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09IENT
U1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19fID09
PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1
ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0Zp
bHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ2N1
c3RvbShteS1maWx0ZXIsIHQgcm90YXRlKDBkZWcpIHBlcnNwZWN0aXZlKDApIHNjYWxlKDAsIDAp
IHRyYW5zbGF0ZSgwcHgsIDBweCkpJworCitNdWxpdHBsZSB0cmFuc2Zvcm0gcGFyYW1ldGVycy4K
K2N1c3RvbShteS1maWx0ZXIsIHQxIHJvdGF0ZSgwZGVnKSwgdDIgcm90YXRlKDBkZWcpKQorUEFT
UyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mgc3R5bGVEZWNsYXJh
dGlvbi5sZW5ndGggaXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZmlsdGVyJykgaXMgJ2N1c3RvbShteS1maWx0ZXIsIHQxIHJvdGF0ZSgwZGVnKSwg
dDIgcm90YXRlKDBkZWcpKScKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENT
U1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3Ig
PT09IENTU1ZhbHVlTGlzdCBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90
b19fID09PSBDU1NWYWx1ZUxpc3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVy
dHlWYWx1ZS5sZW5ndGggaXMgMQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktp
dENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQg
aXMgJ2N1c3RvbShteS1maWx0ZXIsIHQxIHJvdGF0ZSgwZGVnKSwgdDIgcm90YXRlKDBkZWcpKScK
KworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQXJyYXkgcGFyYW1l
dGVyIHRlc3RzLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitB
cnJheSBwYXJhbWV0ZXIgd2l0aCBuYW1lICdhcnJheScuCitjdXN0b20obXktZmlsdGVyLCBhcnJh
eSBhcnJheSgxKSkKK1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQ
QVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBh
cnJheSBhcnJheSgxKSknCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NW
YWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09
PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9f
XyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5
VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRD
U1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlz
ICdjdXN0b20obXktZmlsdGVyLCBhcnJheSBhcnJheSgxKSknCisKK0FycmF5IHBhcmFtZXRlciB3
aXRoIG9uZSBwb3NpdGl2ZSBpbnRlZ2VyLgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxKSkK
K1BBU1Mgc3R5bGVSdWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVj
bGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEpKScK
K1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1ZhbHVlTGlzdCBpcyB0cnVl
CitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09IENTU1ZhbHVlTGlzdCBp
cyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19fID09PSBDU1NWYWx1ZUxp
c3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5sZW5ndGggaXMg
MQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNT
U19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoMSkpJworCitBcnJheSBwYXJhbWV0ZXIgd2l0aCBvbmUgbmVnYXRpdmUgZmxv
YXQuCitjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSkKK1BBU1Mgc3R5bGVSdWxlLnR5
cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIGlz
IDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRl
cicpIGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSknCitQQVNTIGZpbHRlclBy
b3BlcnR5VmFsdWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQ
cm9wZXJ0eVZhbHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBm
aWx0ZXJQcm9wZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBp
cyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFs
dWUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RP
TQorUEFTUyBzdWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0x
LjAxKSknCisKK0FycmF5IHBhcmFtZXRlciB3aXRoIG11bHRpcGxlIHBvc2l0aXZlIGludGVnZXJz
LgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxLCAyLCAzLCA0LCA1KSkKK1BBU1Mgc3R5bGVS
dWxlLnR5cGUgaXMgQ1NTUnVsZS5TVFlMRV9SVUxFCitQQVNTIHN0eWxlRGVjbGFyYXRpb24ubGVu
Z3RoIGlzIDEKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWZpbHRlcicpIGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsIDUpKScK
K1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIENTU1ZhbHVlTGlzdCBpcyB0cnVl
CitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuY29uc3RydWN0b3IgPT09IENTU1ZhbHVlTGlzdCBp
cyB0cnVlCitQQVNTIGZpbHRlclByb3BlcnR5VmFsdWUuX19wcm90b19fID09PSBDU1NWYWx1ZUxp
c3QucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5sZW5ndGggaXMg
MQorUEFTUyBzdWJWYWx1ZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNT
U19GSUxURVJfQ1VTVE9NCitQQVNTIHN1YlZhbHVlLmNzc1RleHQgaXMgJ2N1c3RvbShteS1maWx0
ZXIsIGEgYXJyYXkoMSwgMiwgMywgNCwgNSkpJworCitBcnJheSBwYXJhbWV0ZXIgd2l0aCBtdWx0
aXBsZSBzaWduZWQgZmxvYXRzLgorY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxLCAtMi4yLCAz
LjE0LCAwLjQsIDUpKQorUEFTUyBzdHlsZVJ1bGUudHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUK
K1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5sZW5ndGggaXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9u
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgJ2N1c3RvbShteS1maWx0ZXIs
IGEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSknCitQQVNTIGZpbHRlclByb3BlcnR5VmFs
dWUgaW5zdGFuY2VvZiBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZh
bHVlLmNvbnN0cnVjdG9yID09PSBDU1NWYWx1ZUxpc3QgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9w
ZXJ0eVZhbHVlLl9fcHJvdG9fXyA9PT0gQ1NTVmFsdWVMaXN0LnByb3RvdHlwZSBpcyB0cnVlCitQ
QVNTIGZpbHRlclByb3BlcnR5VmFsdWUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViVmFsdWUub3BlcmF0
aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyBz
dWJWYWx1ZS5jc3NUZXh0IGlzICdjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIC0yLjIsIDMu
MTQsIDAuNCwgNSkpJworCitNdWx0aXBsZSBhcnJheSBwYXJhbWV0ZXJzLgorY3VzdG9tKG15LWZp
bHRlciwgYTEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykp
CitQQVNTIHN0eWxlUnVsZS50eXBlIGlzIENTU1J1bGUuU1RZTEVfUlVMRQorUEFTUyBzdHlsZURl
Y2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIHN0eWxlRGVjbGFyYXRpb24uZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyAnY3VzdG9tKG15LWZpbHRlciwgYTEgYXJyYXkoMSwg
LTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykpJworUEFTUyBmaWx0ZXJQcm9w
ZXJ0eVZhbHVlIGluc3RhbmNlb2YgQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJv
cGVydHlWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gQ1NTVmFsdWVMaXN0IGlzIHRydWUKK1BBU1MgZmls
dGVyUHJvcGVydHlWYWx1ZS5fX3Byb3RvX18gPT09IENTU1ZhbHVlTGlzdC5wcm90b3R5cGUgaXMg
dHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlZhbHVl
Lm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00K
K1BBU1Mgc3ViVmFsdWUuY3NzVGV4dCBpcyAnY3VzdG9tKG15LWZpbHRlciwgYTEgYXJyYXkoMSwg
LTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykpJworCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDb21iaW5lZCBwYXJhbWV0ZXIgdGVzdHMuCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK051bWJlciBwYXJhbWV0
ZXIsIHRyYW5zZm9ybSBwYXJhbWV0ZXIsIGFuZCBhcnJheSBwYXJhbWV0ZXIuCitjdXN0b20obXkt
ZmlsdGVyLCBuIDEsIHQgcm90YXRlKDBkZWcpLCBhIGFycmF5KDEpKQorUEFTUyBzdHlsZVJ1bGUu
dHlwZSBpcyBDU1NSdWxlLlNUWUxFX1JVTEUKK1BBU1Mgc3R5bGVEZWNsYXJhdGlvbi5sZW5ndGgg
aXMgMQorUEFTUyBzdHlsZURlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmls
dGVyJykgaXMgJ2N1c3RvbShteS1maWx0ZXIsIG4gMSwgdCByb3RhdGUoMGRlZyksIGEgYXJyYXko
MSkpJworUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlIGluc3RhbmNlb2YgQ1NTVmFsdWVMaXN0IGlz
IHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gQ1NTVmFsdWVM
aXN0IGlzIHRydWUKK1BBU1MgZmlsdGVyUHJvcGVydHlWYWx1ZS5fX3Byb3RvX18gPT09IENTU1Zh
bHVlTGlzdC5wcm90b3R5cGUgaXMgdHJ1ZQorUEFTUyBmaWx0ZXJQcm9wZXJ0eVZhbHVlLmxlbmd0
aCBpcyAxCitQQVNTIHN1YlZhbHVlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFs
dWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1Mgc3ViVmFsdWUuY3NzVGV4dCBpcyAnY3VzdG9tKG15
LWZpbHRlciwgbiAxLCB0IHJvdGF0ZSgwZGVnKSwgYSBhcnJheSgxKSknCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3BhcnNpbmctY3Vz
dG9tLWZ1bmN0aW9uLXZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
LXdpdGgtYXQtcnVsZS1zeW50YXgvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjA3NGViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4
L3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLXZhbGlkLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVy
LXBhcnNpbmctY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
cGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3Vz
dG9tLXdpdGgtYXQtcnVsZS1zeW50YXgvc2NyaXB0LXRlc3RzL3BhcnNpbmctY3VzdG9tLWZ1bmN0
aW9uLWludmFsaWQuanMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLXdpdGgtYXQt
cnVsZS1zeW50YXgvc2NyaXB0LXRlc3RzL3BhcnNpbmctY3VzdG9tLWZ1bmN0aW9uLWludmFsaWQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFkOGZlOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5
bnRheC9zY3JpcHQtdGVzdHMvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24taW52YWxpZC5qcwpAQCAt
MCwwICsxLDc2IEBACitkZXNjcmlwdGlvbigiVGVzdCB0aGUgcGFyc2luZyBvZiBjdXN0b20oKSBm
dW5jdGlvbiBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuIik7CisKKy8vIFRoZXNlIGhh
dmUgdG8gYmUgZ2xvYmFsIGZvciB0aGUgdGVzdCBoZWxwZXJzIHRvIHNlZSB0aGVtLgordmFyIHN0
eWxlUnVsZSwgZGVjbGFyYXRpb247CisKK2Z1bmN0aW9uIHRlc3RJbnZhbGlkRmlsdGVyUnVsZShk
ZXNjcmlwdGlvbiwgcnVsZSkKK3sKKyAgICBkZWJ1ZygiXG4iICsgZGVzY3JpcHRpb24gKyAiXG4i
ICsgcnVsZSk7CisKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoImJvZHkgeyAtd2Via2l0LWZp
bHRlcjogIiArIHJ1bGUgKyAiOyB9IiwgMCk7CisKKyAgICBzdHlsZVJ1bGUgPSBzdHlsZXNoZWV0
LmNzc1J1bGVzLml0ZW0oMCk7CisgICAgc2hvdWxkQmUoInN0eWxlUnVsZS50eXBlIiwgIkNTU1J1
bGUuU1RZTEVfUlVMRSIpOworCisgICAgZGVjbGFyYXRpb24gPSBzdHlsZVJ1bGUuc3R5bGU7Cisg
ICAgc2hvdWxkQmUoImRlY2xhcmF0aW9uLmxlbmd0aCIsICIwIik7CisgICAgc2hvdWxkQmUoImRl
Y2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykiLCAibnVsbCIpOwor
fQorCitoZWFkaW5nKCJDdXN0b20gZnVuY3Rpb24gdGVzdHMuIik7Cit0ZXN0SW52YWxpZEZpbHRl
clJ1bGUoIkVtcHR5IGN1c3RvbSBmdW5jdGlvbi4iLCAiY3VzdG9tKCkiKTsKK3Rlc3RJbnZhbGlk
RmlsdGVyUnVsZSgiT25lIGNvbW1hIGluIGN1c3RvbSBmdW5jdGlvbi4iLCAiY3VzdG9tKCwpIik7
Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk11bHRpcGxlIGNvbW1hcyBpbiBjdXN0b20gZnVuY3Rp
b24uIiwgImN1c3RvbSgsLCkiKTsKKworaGVhZGluZygiRmlsdGVyIG5hbWUgdGVzdHMuIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5vIGZpbHRlciBuYW1lIHdpdGggcGFyYW1ldGVyLiIsICJj
dXN0b20obiAxKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJUb28gbWFueSBmaWx0ZXIgbmFt
ZXMuIiwgImN1c3RvbShteS1maWx0ZXItMSBteS1maWx0ZXItMikiKTsKK3Rlc3RJbnZhbGlkRmls
dGVyUnVsZSgiRmlsdGVyIG5hbWUgYXMgc3RyaW5nLiIsICJjdXN0b20oJ215LWZpbHRlci0xJyki
KTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiRmlsdGVyIG5hbWUgYXMgbnVtYmVyLiIsICJjdXN0
b20oMSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiU3BhY2UgYmV0d2VlbiBmaWx0ZXIgbmFt
ZSBhbmQgcGFyYW1ldGVyLiIsICJjdXN0b20obXktZmlsdGVyIG4gMSkiKTsKKworaGVhZGluZygi
TnVtYmVyIHBhcmFtZXRlciB0ZXN0cy4iKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVG9vIG1h
bnkgcGFyYW1ldGVyIHZhbHVlcy4iLCAiY3VzdG9tKG15LWZpbHRlciwgbiAxIDIgMyA0IDUpIik7
Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgcGFyYW1ldGVyIHR5cGUuIiwgImN1c3Rv
bShteS1maWx0ZXIsIG4gMS4wIDIuMCAndGV4dCcpIik7CisKK3Rlc3RJbnZhbGlkRmlsdGVyUnVs
ZSgiTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYWZ0ZXIgY29tbWEuIiwgImN1c3RvbShteS1maWx0
ZXIsKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJObyBwYXJhbWV0ZXIgZGVmaW5pdGlvbiB3
aXRoIHR3byBjb21tYXMuIiwgImN1c3RvbShteS1maWx0ZXIsLCkiKTsKK3Rlc3RJbnZhbGlkRmls
dGVyUnVsZSgiTm8gcGFyYW1ldGVyIGRlZmluaXRpb24gYmVmb3JlIHZhbGlkIHBhcmFtZXRlciBk
ZWZpbnRpb24uIiwgImN1c3RvbShteS1maWx0ZXIsICwgbiAxKSIpOwordGVzdEludmFsaWRGaWx0
ZXJSdWxlKCJObyBwYXJhbWV0ZXIgdmFsdWUuIiwgImN1c3RvbShteS1maWx0ZXIsIG4pIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk5vIHBhcmFtZXRlciB2YWx1ZSB3aXRoIG11bHRpcGxlIHBh
cmFtZXRlcnMuIiwgImN1c3RvbShteS1maWx0ZXIsIG4xLCBuMiwgbjMpIik7CisKK2hlYWRpbmco
IlRyYW5zZm9ybSBwYXJhbWV0ZXIgdGVzdHMuIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk9u
ZSBpbnZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbi4iLCAiY3VzdG9tKG15LWZpbHRlciwgdCBpbnZh
bGlkLXJvdGF0ZSgwZGVnKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiTXVsdGlwbGUgaW52
YWxpZCB0cmFuc2Zvcm0gZnVuY3Rpb25zLiIsICJjdXN0b20obXktZmlsdGVyLCB0IGludmFsaWQt
cm90YXRlKDBkZWcpIGludmFsaWQtcGVyc3BlY3RpdmUoMCkpIik7Cit0ZXN0SW52YWxpZEZpbHRl
clJ1bGUoIkludmFsaWQgdHJhbnNmb3JtIGZ1bmN0aW9uIGJldHdlZW4gdmFsaWQgb25lcy4iLCAi
Y3VzdG9tKG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykgaW52YWxpZC1yb3RhdGUoMGRlZykgcGVy
c3BlY3RpdmUoMCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlZhbGlkIHRyYW5zZm9ybSBm
dW5jdGlvbiBiZXR3ZWVuIGludmFsaWQgb25lcy4iLCAiY3VzdG9tKG15LWZpbHRlciwgdCBpbnZh
bGlkLXJvdGF0ZSgwZGVnKSBwZXJzcGVjdGl2ZSgwKSBpbnZhbGlkLXRyYW5zbGF0ZSgwKSkiKTsK
K3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVmFsaWQgdHJhbnNmb3JtIGZ1bmN0aW9uIHdpdGhvdXQg
bGVhZGluZyBjb21tYS4iLCAiY3VzdG9tKG15LWZpbHRlciB0IHBlcnNwZWN0aXZlKDApKSIpOwor
dGVzdEludmFsaWRGaWx0ZXJSdWxlKCJWYWxpZCB0cmFuc2Zvcm0gZnVuY3Rpb24gd2l0aCB0cmFp
bGluZyBjb21tYS4iLCAiY3VzdG9tKG15LWZpbHRlciwgdCBwZXJzcGVjdGl2ZSgwKSwpIik7Cit0
ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlZhbGlkIHRyYW5zZm9ybSBmdW5jdGlvbiB3aXRoIHRyYWls
aW5nIGNvbW1hIGFuZCB3aXRob3V0IGxlYWRpbmcgY29tbWEuIiwgImN1c3RvbShteS1maWx0ZXIg
dCBwZXJzcGVjdGl2ZSgwKSwpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgdHJh
bnNmb3JtIHdpdGggdHJhaWxpbmcgY29tbWEuIiwgImN1c3RvbShteS1maWx0ZXIsIHQgaW52YWxp
ZC1yb3RhdGUoMGRlZyksKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJJbnZhbGlkIHRyYW5z
Zm9ybSB3aXRob3V0IGxlYWRpbmcgY29tbWEuIiwgImN1c3RvbShteS1maWx0ZXIgdCBpbnZhbGlk
X3JvdGF0ZSgwZGVnKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVmFsaWQgdHJhbnNmb3Jt
IHdpdGggaW52YWxpZCBjaGFyYWN0ZXJzIiwgImN1c3RvbShteS1maWx0ZXIsdCByb3RhdGUoMGRl
ZykgKi4tLCkiKTsKKworaGVhZGluZygiQXJyYXkgcGFyYW1ldGVyIHRlc3RzLiIpOwordGVzdElu
dmFsaWRGaWx0ZXJSdWxlKCJFbXB0eSBhcnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJh
eSgpKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJPbmUgY29tbWEgaW4gYXJyYXkuIiwgImN1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk11
bHRpcGxlIGNvbW1hcyBpbiBhcnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsLCwp
KSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJNdWx0aXBsZSBjb21tYXMgd2l0aCBhIHZhbHVl
IGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KCwsMSwpKSIpOwordGVzdElu
dmFsaWRGaWx0ZXJSdWxlKCJPbmUgY29tbWEgZm9sbG93ZWQgYnkgYSBuZWdhdGl2ZSB2YWx1ZSBp
biBhcnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsLTQpKSIpOwordGVzdEludmFs
aWRGaWx0ZXJSdWxlKCJPbmUgY29tbWEgZm9sbG93ZWQgYnkgYSB2YWx1ZSBpbiBhcnJheS4iLCAi
Y3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsNCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUo
Ik9uZSBuZWdhdGl2ZSB2YWx1ZSBmb2xsb3dlZCBieSBhIGNvbW1hIGluIGFycmF5LiIsICJjdXN0
b20obXktZmlsdGVyLCBhIGFycmF5KC00LCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIk9u
ZSB2YWx1ZSBmb2xsb3dlZCBieSBhIGNvbW1hIGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVy
LCBhIGFycmF5KDQsKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiVmFsaWQgdmFsdWVzIGZv
bGxvd2VkIGJ5IGEgY29tbWEgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXko
MSwgMiwgMywgNCwpKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJWYWxpZCB2YWx1ZXMgZm9s
bG93ZWQgYnkgYSBsZXR0ZXIgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXko
MSwgMiwgMywgNCwgeCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIlR3byBjb21tYXMgYXMg
c2VwYXJhdG9yIGJldHdlZW4gdmFsdWVzIGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVyLCBh
IGFycmF5KDEsIDIsICwgNCkpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkxlYWRpbmcgY29t
bWEgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoLDEsIDIsIDMsIDQpKSIp
OwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJTZW1pY29sb24gc2VwYXJhdGVkIHZhbHVlcyBpbiBh
cnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxOyAyOyAzOyA0KSkiKTsKK3Rlc3RJ
bnZhbGlkRmlsdGVyUnVsZSgiU3BhY2Ugc2VwYXJhdGVkIHZhbHVlcyBpbiBhcnJheS4iLCAiY3Vz
dG9tKG15LWZpbHRlciwgYSBhcnJheSgxIDIgMyA0KSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVs
ZSgiU3BhY2Ugc2VwYXJhdGVkIHZhbHVlcyB3aXRoIGNvbW1hIHRlcm1pbmF0b3IgaW4gYXJyYXku
IiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSAyIDMgNCwpKSIpOwordGVzdEludmFsaWRG
aWx0ZXJSdWxlKCJTcGFjZSBzZXBhcmF0ZWQgdmFsdWVzIHdpdGggbGVhZGluZyBjb21tYSBpbiBh
cnJheS4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgsIDEgMiAzIDQpKSIpOwordGVzdElu
dmFsaWRGaWx0ZXJSdWxlKCJOYU4gaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJy
YXkoTmFOKSkiKTsKK3Rlc3RJbnZhbGlkRmlsdGVyUnVsZSgiTmFOIGJldHdlZW4gdmFsaWQgdmFs
dWVzIGluIGFycmF5LiIsICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIE5hTiwgMykp
Iik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgdmFsdWUgJ25vbmUnIGluIGFycmF5
LiIsICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KG5vbmUpKSIpOwordGVzdEludmFsaWRGaWx0
ZXJSdWxlKCJJbnZhbGlkIHZhbHVlIHVuaXQgJ3B4JyBpbiBhcnJheS4iLCAiY3VzdG9tKG15LWZp
bHRlciwgYSBhcnJheSgxcHgpKSIpOwordGVzdEludmFsaWRGaWx0ZXJSdWxlKCJJbnZhbGlkIHZh
bHVlIHVuaXQgJ2RlZycgaW4gYXJyYXkuIiwgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMWRl
ZykpIik7Cit0ZXN0SW52YWxpZEZpbHRlclJ1bGUoIkludmFsaWQgdmFsdWUgdW5pdCAncHgnIGlu
IGFycmF5IGFmdGVyIHZhbGlkIHZhbHVlcy4iLCAiY3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgx
LCAyLCAzLCA0cHgpKSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS13aXRoLWF0LXJ1bGUtc3ludGF4L3NjcmlwdC10ZXN0cy9wYXJzaW5nLWN1c3RvbS1mdW5j
dGlvbi12YWxpZC5qcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1y
dWxlLXN5bnRheC9zY3JpcHQtdGVzdHMvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE3ZDlmZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRh
eC9zY3JpcHQtdGVzdHMvcGFyc2luZy1jdXN0b20tZnVuY3Rpb24tdmFsaWQuanMKQEAgLTAsMCAr
MSwxMDUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIG9mIHRoZSBjdXN0b20oKSBm
dW5jdGlvbiBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuIik7CisKKy8vIFRoZXNlIGhh
dmUgdG8gYmUgZ2xvYmFsIGZvciB0aGUgdGVzdCBoZWxwZXJzIHRvIHNlZSB0aGVtLgordmFyIHN0
eWxlUnVsZSwgc3R5bGVEZWNsYXJhdGlvbiwgZmlsdGVyUHJvcGVydHlWYWx1ZSwgc3ViVmFsdWU7
CisKK2Z1bmN0aW9uIHRlc3RGaWx0ZXJQcm9wZXJ0eShkZXNjcmlwdGlvbiwgcHJvcGVydHlWYWx1
ZSwgZXhwZWN0ZWRWYWx1ZSwgZXhwZWN0ZWRUeXBlcywgZXhwZWN0ZWRUZXh0cykKK3sKKyAgICBk
ZWJ1ZygiXG4iICsgZGVzY3JpcHRpb24gKyAiXG4iICsgcHJvcGVydHlWYWx1ZSk7CisKKyAgICBz
dHlsZXNoZWV0Lmluc2VydFJ1bGUoImJvZHkgeyAtd2Via2l0LWZpbHRlcjogIiArIHByb3BlcnR5
VmFsdWUgKyAiOyB9IiwgMCk7CisgICAgc3R5bGVSdWxlID0gc3R5bGVzaGVldC5jc3NSdWxlcy5p
dGVtKDApOworICAgIHNob3VsZEJlKCJzdHlsZVJ1bGUudHlwZSIsICJDU1NSdWxlLlNUWUxFX1JV
TEUiKTsKKworICAgIHN0eWxlRGVjbGFyYXRpb24gPSBzdHlsZVJ1bGUuc3R5bGU7CisgICAgc2hv
dWxkQmUoInN0eWxlRGVjbGFyYXRpb24ubGVuZ3RoIiwgIjEiKTsKKyAgICBzaG91bGRCZSgic3R5
bGVEZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIiwgIiciICsg
ZXhwZWN0ZWRWYWx1ZSArICInIik7CisKKyAgICBmaWx0ZXJQcm9wZXJ0eVZhbHVlID0gc3R5bGVE
ZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCctd2Via2l0LWZpbHRlcicpOworICAgIHNo
b3VsZEhhdmVDb25zdHJ1Y3RvcigiZmlsdGVyUHJvcGVydHlWYWx1ZSIsICJDU1NWYWx1ZUxpc3Qi
KTsKKworICAgIGlmICghZXhwZWN0ZWRUeXBlcykgeworICAgICAgICBleHBlY3RlZFR5cGVzID0g
WyJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTSJdOworICAgICAgICBleHBl
Y3RlZFRleHRzID0gW2V4cGVjdGVkVmFsdWVdOworICAgIH0KKyAgICAKKyAgICBzaG91bGRCZSgi
ZmlsdGVyUHJvcGVydHlWYWx1ZS5sZW5ndGgiLCAiIiArIGV4cGVjdGVkVHlwZXMubGVuZ3RoKTsg
Ly8gc2hvdWxkQmUgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzCisgIAorICAgIGlmIChmaWx0ZXJQ
cm9wZXJ0eVZhbHVlKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRUeXBl
cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3ViVmFsdWUgPSBmaWx0ZXJQcm9wZXJ0eVZh
bHVlW2ldOworICAgICAgICAgICAgc2hvdWxkQmUoInN1YlZhbHVlLm9wZXJhdGlvblR5cGUiLCBl
eHBlY3RlZFR5cGVzW2ldKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJzdWJWYWx1ZS5jc3NUZXh0
IiwgIiciICsgZXhwZWN0ZWRUZXh0c1tpXSArICInIik7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K2hlYWRpbmcoIkN1c3RvbSBmdW5jdGlvbiB0ZXN0cy4iKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgi
Q3VzdG9tIGZ1bmN0aW9uIGluIENBUFMuIiwKKyAgICAiQ1VTVE9NKG15LWZpbHRlcikiLAorICAg
ICJjdXN0b20obXktZmlsdGVyKSIpOworCitoZWFkaW5nKCJGaWx0ZXIgY2hhaW4gdGVzdHMuIikK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiQ3VzdG9tIGZ1bmN0aW9uIGluIG1pZGRsZSBvZiBmaWx0ZXIg
Y2hhaW4uIiwKKyAgICAiZ3JheXNjYWxlKCkgY3VzdG9tKG15LWZpbHRlcikgc2VwaWEoKSIsICJn
cmF5c2NhbGUoKSBjdXN0b20obXktZmlsdGVyKSBzZXBpYSgpIiwKKyAgICBbIldlYktpdENTU0Zp
bHRlclZhbHVlLkNTU19GSUxURVJfR1JBWVNDQUxFIiwKKyAgICAiV2ViS2l0Q1NTRmlsdGVyVmFs
dWUuQ1NTX0ZJTFRFUl9DVVNUT00iLAorICAgICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklM
VEVSX1NFUElBIl0sCisgICAgWyJncmF5c2NhbGUoKSIsCisgICAgImN1c3RvbShteS1maWx0ZXIp
IiwKKyAgICAic2VwaWEoKSJdKTsKKworaGVhZGluZygiRmlsdGVyIG5hbWUgdGVzdHMuIik7Cit0
ZXN0RmlsdGVyUHJvcGVydHkoIkZpbHRlciBuYW1lIG9ubHkuIiwKKyAgICAiY3VzdG9tKG15LWZp
bHRlcikiLAorICAgICJjdXN0b20obXktZmlsdGVyKSIpOwordGVzdEZpbHRlclByb3BlcnR5KCJG
aWx0ZXIgbmFtZSBhcyBDU1MgJ25vbmUnIGtleXdvcmQuIiwKKyAgICAiY3VzdG9tKG5vbmUpIiwK
KyAgICAiY3VzdG9tKG5vbmUpIik7CisKK2hlYWRpbmcoIk51bWJlciBwYXJhbWV0ZXIgdGVzdHMu
IikKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiSW50ZWdlciBwYXJhbWV0ZXJzLiIsCisgICAgImN1c3Rv
bShteS1maWx0ZXIsIG4xIDEsIG4yIDIgMywgbjMgMyA0IDUsIG40IDQgNSA2IDcpIiwKKyAgICAi
Y3VzdG9tKG15LWZpbHRlciwgbjEgMSwgbjIgMiAzLCBuMyAzIDQgNSwgbjQgNCA1IDYgNykiKTsK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiRmxvYXQgcGFyYW1ldGVycy4iLAorICAgICJjdXN0b20obXkt
ZmlsdGVyLCBuMSAxLjEsIG4yIDIuMiAzLjMsIG4zIDMuMSA0LjEgNS4xLCBuNCA0LjEgNS4yIDYu
MyA3LjQpIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgbjEgMS4xLCBuMiAyLjIgMy4zLCBuMyAz
LjEgNC4xIDUuMSwgbjQgNC4xIDUuMiA2LjMgNy40KSIpOwordGVzdEZpbHRlclByb3BlcnR5KCJQ
YXJhbWV0ZXIgbmFtZSBzYW1lIGFzIENTUyBrZXl3b3JkLiIsCisgICAgImN1c3RvbShteS1maWx0
ZXIsIGJhY2tncm91bmQgMCAxIDAgMSkiLAorICAgICJjdXN0b20obXktZmlsdGVyLCBiYWNrZ3Jv
dW5kIDAgMSAwIDEpIik7CisKK2hlYWRpbmcoIlRyYW5zZm9ybSBwYXJhbWV0ZXIgdGVzdHMuIikK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiVHJhbnNmb3JtIHBhcmFtZXRlciB3aXRoIG9uZSB0cmFuc2Zv
cm0gZnVuY3Rpb24uIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykpIiwK
KyAgICAiY3VzdG9tKG15LWZpbHRlciwgdCByb3RhdGUoMGRlZykpIik7Cit0ZXN0RmlsdGVyUHJv
cGVydHkoIlRyYW5zZm9ybSBwYXJhbWV0ZXIgd2l0aCBtdWx0aXBsZSB0cmFuc2Zvcm0gZnVuY3Rp
b25zLiIsCisgICAgImN1c3RvbShteS1maWx0ZXIsIHQgcm90YXRlKDBkZWcpIHBlcnNwZWN0aXZl
KDApIHNjYWxlKDAsIDApIHRyYW5zbGF0ZSgwcHgsIDBweCkpIiwKKyAgICAiY3VzdG9tKG15LWZp
bHRlciwgdCByb3RhdGUoMGRlZykgcGVyc3BlY3RpdmUoMCkgc2NhbGUoMCwgMCkgdHJhbnNsYXRl
KDBweCwgMHB4KSkiKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiTXVsaXRwbGUgdHJhbnNmb3JtIHBh
cmFtZXRlcnMuIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgdDEgcm90YXRlKDBkZWcpLCB0MiBy
b3RhdGUoMGRlZykpIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgdDEgcm90YXRlKDBkZWcpLCB0
MiByb3RhdGUoMGRlZykpIik7CisKK2hlYWRpbmcoIkFycmF5IHBhcmFtZXRlciB0ZXN0cy4iKTsK
K3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiQXJyYXkgcGFyYW1ldGVyIHdpdGggbmFtZSAnYXJyYXknLiIs
CisgICAgImN1c3RvbShteS1maWx0ZXIsIGFycmF5IGFycmF5KDEpKSIsCisgICAgImN1c3RvbSht
eS1maWx0ZXIsIGFycmF5IGFycmF5KDEpKSIpOwordGVzdEZpbHRlclByb3BlcnR5KCJBcnJheSBw
YXJhbWV0ZXIgd2l0aCBvbmUgcG9zaXRpdmUgaW50ZWdlci4iLAorICAgICJjdXN0b20obXktZmls
dGVyLCBhIGFycmF5KDEpKSIsCisgICAgImN1c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSkpIik7
Cit0ZXN0RmlsdGVyUHJvcGVydHkoIkFycmF5IHBhcmFtZXRlciB3aXRoIG9uZSBuZWdhdGl2ZSBm
bG9hdC4iLAorICAgICJjdXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSkiLAorICAgICJj
dXN0b20obXktZmlsdGVyLCBhIGFycmF5KC0xLjAxKSkiKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgi
QXJyYXkgcGFyYW1ldGVyIHdpdGggbXVsdGlwbGUgcG9zaXRpdmUgaW50ZWdlcnMuIiwKKyAgICAi
Y3VzdG9tKG15LWZpbHRlciwgYSBhcnJheSgxLCAyLCAzLCA0LCA1KSkiLAorICAgICJjdXN0b20o
bXktZmlsdGVyLCBhIGFycmF5KDEsIDIsIDMsIDQsIDUpKSIpOwordGVzdEZpbHRlclByb3BlcnR5
KCJBcnJheSBwYXJhbWV0ZXIgd2l0aCBtdWx0aXBsZSBzaWduZWQgZmxvYXRzLiIsCisgICAgImN1
c3RvbShteS1maWx0ZXIsIGEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSkiLAorICAgICJj
dXN0b20obXktZmlsdGVyLCBhIGFycmF5KDEsIC0yLjIsIDMuMTQsIDAuNCwgNSkpIik7Cit0ZXN0
RmlsdGVyUHJvcGVydHkoIk11bHRpcGxlIGFycmF5IHBhcmFtZXRlcnMuIiwKKyAgICAiY3VzdG9t
KG15LWZpbHRlciwgYTEgYXJyYXkoMSwgLTIuMiwgMy4xNCwgMC40LCA1KSwgYTIgYXJyYXkoMSwg
MiwgMykpIiwKKyAgICAiY3VzdG9tKG15LWZpbHRlciwgYTEgYXJyYXkoMSwgLTIuMiwgMy4xNCwg
MC40LCA1KSwgYTIgYXJyYXkoMSwgMiwgMykpIik7CisKK2hlYWRpbmcoIkNvbWJpbmVkIHBhcmFt
ZXRlciB0ZXN0cy4iKTsKK3Rlc3RGaWx0ZXJQcm9wZXJ0eSgiTnVtYmVyIHBhcmFtZXRlciwgdHJh
bnNmb3JtIHBhcmFtZXRlciwgYW5kIGFycmF5IHBhcmFtZXRlci4iLAorICAgICJjdXN0b20obXkt
ZmlsdGVyLCBuIDEsIHQgcm90YXRlKDBkZWcpLCBhIGFycmF5KDEpKSIsCisgICAgImN1c3RvbSht
eS1maWx0ZXIsIG4gMSwgdCByb3RhdGUoMGRlZyksIGEgYXJyYXkoMSkpIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3RzL2N1c3RvbS1maWx0ZXItcGFy
c2luZy1jb21tb24uanMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2NyaXB0LXRlc3RzL2N1
c3RvbS1maWx0ZXItcGFyc2luZy1jb21tb24uanMKaW5kZXggZjJkNzU2ZC4uYTIyMWYwYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmls
dGVyLXBhcnNpbmctY29tbW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3Jp
cHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wYXJzaW5nLWNvbW1vbi5qcwpAQCAtMSw1ICsxLDEzIEBA
CiAvLyBIZWxwZXIgZnVuY3Rpb25zLgogCitmdW5jdGlvbiBoZWFkaW5nKHN0cmluZykKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0iKTsKKyAgICBkZWJ1ZyhzdHJpbmcpOworICAgIGRlYnVnKCI9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7Cit9CisKIGZ1bmN0aW9uIGpzV3JhcHBlckNs
YXNzKG5vZGUpCiB7CiAgICAgaWYgKCFub2RlKQpAQCAtOCw2ICsxNiw4IEBAIGZ1bmN0aW9uIGpz
V3JhcHBlckNsYXNzKG5vZGUpCiAgICAgcmV0dXJuIHN0cmluZy5zdWJzdHIoOCwgc3RyaW5nLmxl
bmd0aCAtIDkpOwogfQogCisvLyBGSVhNRTogVGhpcyB0eXBlLWNoZWNraW5nIGFwcHJvYWNoIGZh
aWxzIG9uIFY4LCB3aGljaCByZXF1aXJlcyB1cyB0byBoYXZlIENocm9taXVtLXNwZWNpZmljIGV4
cGVjdGF0aW9ucy4KKy8vIFdlIHNob3VsZCB1c2UgdGhlIHNob3VsZEhhdmVDb25zdHJ1Y3RvciBm
dW5jdGlvbiBpbnN0ZWFkLCB3aGljaCB3b3JrcyByZWdhcmRsZXNzIG9mIEpTIGVuZ2luZS4KIGZ1
bmN0aW9uIHNob3VsZEJlVHlwZShleHByZXNzaW9uLCBjbGFzc05hbWUsIHByb3RvdHlwZU5hbWUs
IGNvbnN0cnVjdG9yTmFtZSkKIHsKICAgICBpZiAoIXByb3RvdHlwZU5hbWUpCkBAIC0xOSw4ICsy
OSwxNiBAQCBmdW5jdGlvbiBzaG91bGRCZVR5cGUoZXhwcmVzc2lvbiwgY2xhc3NOYW1lLCBwcm90
b3R5cGVOYW1lLCBjb25zdHJ1Y3Rvck5hbWUpCiAgICAgc2hvdWxkQmUoImpzV3JhcHBlckNsYXNz
KCIgKyBleHByZXNzaW9uICsgIi5jb25zdHJ1Y3RvcikiLCAiJyIgKyBjb25zdHJ1Y3Rvck5hbWUg
KyAiJyIpOwogfQogCitmdW5jdGlvbiBzaG91bGRIYXZlQ29uc3RydWN0b3IoZXhwcmVzc2lvbiwg
Y29uc3RydWN0b3JOYW1lKQoreworICAgIHNob3VsZEJlVHJ1ZShleHByZXNzaW9uICsgIiBpbnN0
YW5jZW9mICIgKyBjb25zdHJ1Y3Rvck5hbWUpOworICAgIHNob3VsZEJlVHJ1ZShleHByZXNzaW9u
ICsgIi5jb25zdHJ1Y3RvciA9PT0gIiArIGNvbnN0cnVjdG9yTmFtZSk7CisgICAgc2hvdWxkQmVU
cnVlKGV4cHJlc3Npb24gKyAiLl9fcHJvdG9fXyA9PT0gIiArIGNvbnN0cnVjdG9yTmFtZSArICIu
cHJvdG90eXBlIik7Cit9CisKIC8vIE5lZWQgdG8gcmVtb3ZlIHRoZSBiYXNlIFVSTCB0byBhdm9p
ZCBoYXZpbmcgbG9jYWwgcGF0aHMgaW4gdGhlIGV4cGVjdGVkIHJlc3VsdHMuCi1mdW5jdGlvbiBy
ZW1vdmVCYXNlVVJMKHNyYykgeworZnVuY3Rpb24gcmVtb3ZlQmFzZVVSTChzcmMpIAorewogICAg
IHZhciB1cmxSZWdleHAgPSAvdXJsXCgoW15cKV0qKVwpL2c7CiAgICAgcmV0dXJuIHNyYy5yZXBs
YWNlKHVybFJlZ2V4cCwgZnVuY3Rpb24obWF0Y2gsIHVybCkgewogICAgICAgICByZXR1cm4gInVy
bCgiICsgdXJsLnN1YnN0cih1cmwubGFzdEluZGV4T2YoIi8iKSArIDEpICsgIikiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDZiOWRmMzMuLjkyMGNiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAx
My0wMS0zMSAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
UyBTaGFkZXJzXSBQYXJzZSBjdXN0b20gZmlsdGVyIGZ1bmN0aW9uIHdpdGggdGhlIGF0LXJ1bGUg
cmVmZXJlbmNlIHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgcGFyc2luZyBmb3IgdGhlIG5ldyBjdXN0
b20gZmlsdGVyIGZ1bmN0aW9uICJhdC1ydWxlIHJlZmVyZW5jZSIKKyAgICAgICAgc3ludGF4LiBJ
dCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIHN0eWxlIHJlc29sdXRpb24geWV0LgorCisgICAgICAg
IFRoZSBjdXN0b20gZnVuY3Rpb24gc3ludGF4IGhhcyBjaGFuZ2VkIGluIHRoZSBzcGVjLiBJbnN0
ZWFkIG9mIGluY2x1ZGluZyBhbGwgb2YgdGhlIGN1c3RvbQorICAgICAgICBmaWx0ZXIgaW5mb3Jt
YXRpb24gaW5saW5lLCB0aGUgY3VzdG9tIGZ1bmN0aW9uIGNhbiBub3cgcmVmZXJlbmNlIGFuIEBm
aWx0ZXIgcnVsZSBieSBuYW1lLgorICAgICAgICBUaGUgY3VzdG9tIGZ1bmN0aW9uIGNhbiBzdGls
bCBhY2NlcHQgYSBsaXN0IG9mIHBhcmFtZXRlcnMuCisKKyAgICAgICAgVGhlIHN5bnRheCBpcyBk
ZWZpbmVkIGFzIHRoZSBmb2xsb3dpbmcsIHdoZXJlIElERU5UIGlzIHRoZSBuYW1lIG9mIHRoZSBA
ZmlsdGVyIHJ1bGU6CisgICAgICAgIGZpbHRlcjogY3VzdG9tKElERU5UIFssIDxwYXJhbT5dKikK
KworICAgICAgICBJbiBwcmFjdGljZSwgaXQgY2FuIGxvb2sgbGlrZSB0aGlzOgorICAgICAgICBm
aWx0ZXI6IGN1c3RvbShwYWdlLWN1cmwsIGRpcmVjdGlvbiA5MCwgYW1vdW50IDAuNSk7CisKKyAg
ICAgICAgU3BlYzogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9GWFRGL3Jhdy1maWxlL3RpcC9maWx0
ZXJzL2luZGV4Lmh0bWwjY3VzdG9taWRlbnQtbHRwYXJhbWd0CisKKyAgICAgICAgVGVzdHM6IGNz
czMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheC9wYXJzaW5nLWN1c3RvbS1mdW5j
dGlvbi1pbnZhbGlkLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9jdXN0b20td2l0
aC1hdC1ydWxlLXN5bnRheC9wYXJzaW5nLWN1c3RvbS1mdW5jdGlvbi12YWxpZC5odG1sCisKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2VDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKToKKyAgICAgICAgICAgIEZhY3RvciBvdXQgYSBu
ZXcgZnVuY3Rpb24gdGhhdCBqdXN0IHBhcnNlcyBjdXN0b20gZmlsdGVyIHBhcmFtZXRlcnMuIFRo
aXMgaXMgdXNlZCBieSB0aGUKKyAgICAgICAgICAgIHByZXZpb3VzIGlubGluZSBzeW50YXggYW5k
IHRoZSBuZXcgYXQtcnVsZSByZWZlcmVuY2Ugc3ludGF4LgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ3VzdG9tRmlsdGVyRnVuY3Rpb25XaXRo
QXRSdWxlUmVmZXJlbmNlU3ludGF4KToKKyAgICAgICAgICAgIFRoaXMgbWV0aG9kIHBhcnNlcyB0
aGUgbmV3IGF0LXJ1bGUgcmVmZXJlbmNlIHN5bnRheC4gV2hlbiB3ZSByZW1vdmUgdGhlIGlubGlu
ZSBzeW50YXgsCisgICAgICAgICAgICB3ZSBjYW4gcmVuYW1lIHRoaXMgbWV0aG9kIHRvICJwYXJz
ZUN1c3RvbUZpbHRlckZ1bmN0aW9uIiBhbmQgY2FsbCBpdCBkaXJlY3RseS4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDdXN0b21GaWx0ZXJGdW5jdGlvbldpdGhJbmxpbmVTeW50
YXgpOgorICAgICAgICAgICAgTW92ZSB0aGUgcHJldmlvdXMgaW5saW5lIHN5bnRheCBwYXJzaW5n
IGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2VDdXN0b21GaWx0ZXJGdW5jdGlvbik6CisgICAgICAgICAgICBUaGlzIG1ldGhvZCBsb29r
cyBhaGVhZCBpbiB0aGUgQ1NTIHBhcnNlciB2YWx1ZXMgYW5kIGRlY2lkZXMgd2hldGhlciB0byBw
YXJzZSB0aGUgY3VzdG9tCisgICAgICAgICAgICBmdW5jdGlvbiB3aXRoIHRoZSBwcmV2aW91cyBp
bmxpbmUgc3ludGF4IG9yIHdpdGggdGhlIG5ldyBhdC1ydWxlIHJlZmVyZW5jZSBzeW50YXguCisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsdGVyKToKKyAgICAgICAgICAgIEkg
cmVuYW1lZCB0aGUgInBhcnNlQ3VzdG9tRmlsdGVyIiBtZXRob2QgdG8gInBhcnNlQ3VzdG9tRmls
dGVyRnVuY3Rpb24iIHRvIGJlIG1vcmUKKyAgICAgICAgICAgIGV4cGxpY2l0LiBIZXJlLCB3ZSB1
cGRhdGUgdGhlIG5hbWUgaW4gdGhlIGNhbGwgc2l0ZS4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2Vy
Lmg6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uV2l0aEF0UnVsZVJlZmVy
ZW5jZVN5bnRheCk6CisgICAgICAgICAgICBUaGlzIGlzIGEgc3R1YiBtZXRob2QuIEluIHRoZSBm
dXR1cmUsIHN0eWxlIHJlc29sdXRpb24gZm9yIHRoZSBhdC1ydWxlIHJlZmVyZW5jZQorICAgICAg
ICAgICAgc3ludGF4IHdpbGwgaGFwcGVuIGhlcmUuIFdoZW4gd2UgcmVtb3ZlIHRoZSBpbmxpbmUg
c3ludGF4LCB3ZSBjYW4gcmVuYW1lIHRoaXMgbWV0aG9kIAorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVSZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uV2l0aElubGluZVN5bnRheCk6
CisgICAgICAgICAgICBUaGlzIG1ldGhvZCBjb250YWlucyB0aGUgcHJldmlvdXMgaW5saW5lIHN5
bnRheCBzdHlsZSByZXNvbHV0aW9uIGNvZGUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbik6Cisg
ICAgICAgICAgICBUaGlzIG1ldGhvZCBkZWNpZGVzIHdoaWNoIHN5bnRheCB3ZSBzaG91bGQgdXNl
IHRvIHJlc29sdmUgdGhlIHN0eWxlLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChTdHlsZVJlc29sdmVyKToKKwogMjAxMy0wMS0zMSAgRG1pdHJ5IFp2b3J5Z2luICA8
enZvcnlnaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNlYXJjaGlu
ZyBmb3IgPHU+IGluIGVsZW1lbnRzIHBhbmVsIGZpbmRzIGFsbCB0YWdzIGNvbnRhaW5pbmcgInUi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGU2NjgwOGQuLjE3Y2VhOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC04Mjc3LDE1ICs4Mjc3LDEyNyBAQCBQYXNzUmVmUHRyPFdl
YktpdENTU01peEZ1bmN0aW9uVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VNaXhGdW5jdGlvbihDU1NQ
YXJzZXJWYWx1ZQogICAgIHJldHVybiBtaXhGdW5jdGlvbjsKIH0KIAotUGFzc1JlZlB0cjxXZWJL
aXRDU1NGaWx0ZXJWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlcihDU1NQYXJzZXJW
YWx1ZSogdmFsdWUpCitQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTUGFyc2VyOjpwYXJzZUN1
c3RvbUZpbHRlclBhcmFtZXRlcnMoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzTGlzdCkKIHsKKyAg
ICAvLworICAgIC8vIHBhcmFtczogICAgICBbPHBhcmFtLWRlZj5bLDxwYXJhbS1kZWY+Kl1dCisg
ICAgLy8gcGFyYW0tZGVmOiAgIDxwYXJhbS1uYW1lPndzcDxwYXJhbS12YWx1ZT4KKyAgICAvLyBw
YXJhbS1uYW1lOiAgPGlkZW50PgorICAgIC8vIHBhcmFtLXZhbHVlOiB0cnVlfGZhbHNlW3dzcCt0
cnVlfGZhbHNlXXswLTN9IHwKKyAgICAvLyAgICAgICAgICAgICAgPG51bWJlcj5bd3NwKzxudW1i
ZXI+XXswLTN9IHwKKyAgICAvLyAgICAgICAgICAgICAgPGFycmF5PiB8CisgICAgLy8gICAgICAg
ICAgICAgIDx0cmFuc2Zvcm0+IHwKKyAgICAvLyAgICAgICAgICAgICAgPHRleHR1cmUoPHVyaT4p
PgorICAgIC8vIGFycmF5OiAnYXJyYXkoJzxudW1iZXI+W3dzcDxudW1iZXI+XSonKScKKyAgICAv
LyBjc3MtM2QtdHJhbnNmb3JtOiA8dHJhbnNmb3JtLWZ1bmN0aW9uPjtbPHRyYW5zZm9ybS1mdW5j
dGlvbj5dKgorICAgIC8vIHRyYW5zZm9ybTogICA8Y3NzLTNkLXRyYW5zZm9ybT4gfCA8bWF0Pgor
ICAgIC8vIG1hdDogICAgICAgICAnbWF0MignPG51bWJlcj4oLDxudW1iZXI+KXszfScpJyB8IAor
ICAgIC8vICAgICAgICAgICAgICAnbWF0MygnPG51bWJlcj4oLDxudW1iZXI+KXs4fScpJyB8IAor
ICAgIC8vICAgICAgICAgICAgICAnbWF0NCgnPG51bWJlcj4oLDxudW1iZXI+KXsxNX0nKScgKQor
ICAgIC8vCisKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJhbUxpc3QgPSBDU1NWYWx1ZUxp
c3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisKKyAgICB3aGlsZSAoQ1NTUGFyc2VyVmFsdWUq
IGFyZyA9IGFyZ3NMaXN0LT5jdXJyZW50KCkpIHsKKyAgICAgICAgaWYgKGFyZy0+dW5pdCAhPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyYW1ldGVyID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVTcGFjZVNlcGFyYXRlZCgpOworICAgICAgICBwYXJhbWV0ZXItPmFwcGVuZChjcmVhdGVQcmlt
aXRpdmVTdHJpbmdWYWx1ZShhcmcpKTsKKworICAgICAgICBhcmcgPSBhcmdzTGlzdC0+bmV4dCgp
OworICAgICAgICBpZiAoIWFyZykKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIFJl
ZlB0cjxDU1NWYWx1ZT4gcGFyYW1ldGVyVmFsdWU7CisKKyAgICAgICAgaWYgKGFyZy0+dW5pdCA9
PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24gJiYgYXJnLT5mdW5jdGlvbikgeworICAgICAgICAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCBwYXJzaW5nIGZvciB0aGUgb3RoZXIgcGFyYW1ldGVyIHR5
cGVzLgorICAgICAgICAgICAgLy8gdGV4dHVyZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTQ0MgorICAgICAgICAgICAgLy8gbWF0MiwgbWF0MywgbWF0NDogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDQ0CisgICAgICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYXJnLT5mdW5jdGlvbi0+bmFtZSwgImFycmF5KCIpKSB7Cisg
ICAgICAgICAgICAgICAgcGFyYW1ldGVyVmFsdWUgPSBwYXJzZUN1c3RvbUZpbHRlckFycmF5RnVu
Y3Rpb24oYXJnKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHBhcnNpbmcgc3RlcCBvbmx5IGNv
bnN1bWVzIGZ1bmN0aW9uIGFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICAvLyBhcmdzTGlzdCBp
cyB0aGVyZWZvcmUgbW92ZWQgZm9yd2FyZCBleHBsaWNpdGVseS4KKyAgICAgICAgICAgICAgICBh
cmdzTGlzdC0+bmV4dCgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcGFy
YW1ldGVyVmFsdWUgPSBwYXJzZUN1c3RvbUZpbHRlclRyYW5zZm9ybShhcmdzTGlzdCk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJhbVZhbHVl
TGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKyAgICAgICAgICAg
IGFyZyA9IGFyZ3NMaXN0LT5jdXJyZW50KCk7CisgICAgICAgICAgICB3aGlsZSAoYXJnKSB7Cisg
ICAgICAgICAgICAgICAgLy8gSWYgd2UgaGl0IGEgY29tbWEsIGl0IG1lYW5zIHRoYXQgd2UgZmlu
aXNoZWQgdGhpcyBwYXJhbWV0ZXIncyB2YWx1ZXMuCisgICAgICAgICAgICAgICAgaWYgKGlzQ29t
bWEoYXJnKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYg
KCF2YWxpZFVuaXQoYXJnLCBGTnVtYmVyLCBDU1NTdHJpY3RNb2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgcGFyYW1WYWx1ZUxpc3QtPmFwcGVuZChj
c3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShhcmctPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpKTsKKyAgICAgICAgICAgICAgICBhcmcgPSBhcmdzTGlzdC0+bmV4dCgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFwYXJhbVZhbHVlTGlzdC0+bGVuZ3RoKCkg
fHwgcGFyYW1WYWx1ZUxpc3QtPmxlbmd0aCgpID4gNCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlID0gcGFyYW1WYWx1ZUxpc3QucmVsZWFzZSgp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFwYXJhbWV0ZXJWYWx1ZSB8fCAhYWNjZXB0Q29t
bWFPcGVyYXRvcihhcmdzTGlzdCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBw
YXJhbWV0ZXItPmFwcGVuZChwYXJhbWV0ZXJWYWx1ZS5yZWxlYXNlKCkpOworICAgICAgICBwYXJh
bUxpc3QtPmFwcGVuZChwYXJhbWV0ZXIucmVsZWFzZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4g
cGFyYW1MaXN0OyAgIAorfQorCitQYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBDU1NQ
YXJzZXI6OnBhcnNlQ3VzdG9tRmlsdGVyRnVuY3Rpb25XaXRoQXRSdWxlUmVmZXJlbmNlU3ludGF4
KENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICAvLworICAgIC8vIEN1c3RvbSBmaWx0ZXIg
ZnVuY3Rpb24gImF0LXJ1bGUgcmVmZXJlbmNlIiBzeW50YXg6CisgICAgLy8KKyAgICAvLyBjdXN0
b20oPGZpbHRlci1uYW1lPndzcFssd3NwPHBhcmFtcz5dKQorICAgIC8vCisgICAgLy8gZmlsdGVy
LW5hbWU6IDxmaWx0ZXItbmFtZT4KKyAgICAvLyBwYXJhbXM6IFNlZSB0aGUgY29tbWVudCBpbiBD
U1NQYXJzZXI6OnBhcnNlQ3VzdG9tRmlsdGVyUGFyYW1ldGVycy4KKyAgICAvLworCisgICAgQVNT
RVJUKHZhbHVlLT5mdW5jdGlvbik7CisKICAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3NMaXN0
ID0gdmFsdWUtPmZ1bmN0aW9uLT5hcmdzLmdldCgpOwotICAgIGlmICghYXJnc0xpc3QpCisgICAg
aWYgKCFhcmdzTGlzdCB8fCAhYXJnc0xpc3QtPnNpemUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICAvLyAxLiBQYXJzZSB0aGUgZmlsdGVyIG5hbWUuCisgICAgQ1NTUGFyc2VyVmFsdWUqIGFy
ZyA9IGFyZ3NMaXN0LT5jdXJyZW50KCk7CisgICAgaWYgKGFyZy0+dW5pdCAhPSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0lERU5UKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxXZWJL
aXRDU1NGaWx0ZXJWYWx1ZT4gZmlsdGVyVmFsdWUgPSBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTo6Y3Jl
YXRlKFdlYktpdENTU0ZpbHRlclZhbHVlOjpDdXN0b21GaWx0ZXJPcGVyYXRpb24pOwogCi0gICAg
Ly8gQ3VzdG9tIGZpbHRlciBzeW50YXg6CisgICAgUmVmUHRyPENTU1ZhbHVlPiBmaWx0ZXJOYW1l
ID0gY3JlYXRlUHJpbWl0aXZlU3RyaW5nVmFsdWUoYXJnKTsKKyAgICBmaWx0ZXJWYWx1ZS0+YXBw
ZW5kKGZpbHRlck5hbWUpOworICAgIGFyZ3NMaXN0LT5uZXh0KCk7CisKKyAgICBpZiAoIWFjY2Vw
dENvbW1hT3BlcmF0b3IoYXJnc0xpc3QpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIDIu
IFBhcnNlIHRoZSBwYXJhbWV0ZXJzLgorICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcmFtTGlz
dCA9IHBhcnNlQ3VzdG9tRmlsdGVyUGFyYW1ldGVycyhhcmdzTGlzdCk7CisgICAgaWYgKCFwYXJh
bUxpc3QpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKHBhcmFtTGlzdC0+bGVuZ3RoKCkp
CisgICAgICAgIGZpbHRlclZhbHVlLT5hcHBlbmQocGFyYW1MaXN0LnJlbGVhc2UoKSk7CisKKyAg
ICByZXR1cm4gZmlsdGVyVmFsdWU7Cit9CisKKy8vIEZJWE1FOiBUaGUgY3VzdG9tIGZpbHRlcnMg
ImlubGluZSIgc3ludGF4IGlzIGRlcHJlY2F0ZWQuIFdlIHdpbGwgcmVtb3ZlIGl0IGV2ZW50dWFs
bHkuCitQYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQ3Vz
dG9tRmlsdGVyRnVuY3Rpb25XaXRoSW5saW5lU3ludGF4KENTU1BhcnNlclZhbHVlKiB2YWx1ZSkK
K3sKKyAgICAvLworICAgIC8vIEN1c3RvbSBmaWx0ZXIgZnVuY3Rpb24gImlubGluZSIgc3ludGF4
OgorICAgIC8vCisgICAgLy8gY3VzdG9tKDx2ZXJ0ZXgtc2hhZGVyPlt3c3A8ZnJhZ21lbnQtc2hh
ZGVyPl1bLDx2ZXJ0ZXgtbWVzaD5dWyw8cGFyYW1zPl0pCiAgICAgLy8KICAgICAvLyB2ZXJ0ZXhT
aGFkZXI6ICAgIDx1cmk+IHwgbm9uZQogICAgIC8vIGZyYWdtZW50U2hhZGVyOiAgPHVyaT4gfCBu
b25lIHwgbWl4KDx1cmk+IFsgPGJsZW5kLW1vZGU+IHx8IDxhbHBoYS1jb21wb3NpdGluZz4gXT8p
CkBAIC04Mjk2LDI2ICs4NDA4LDIwIEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+
IENTU1BhcnNlcjo6cGFyc2VDdXN0b21GaWx0ZXIoQ1NTUGFyc2VyVmFsdWUqIHZhCiAgICAgLy8g
YWxwaGEtY29tcG9zaXRpbmc6IGNsZWFyIHwgc3JjIHwgZHN0IHwgc3JjLW92ZXIgfCBkc3Qtb3Zl
ciB8IHNyYy1pbiB8IGRzdC1pbiB8CiAgICAgLy8gICAgICAgICAgICAgICAgICAgIHNyYy1vdXQg
fCBkc3Qtb3V0IHwgc3JjLWF0b3AgfCBkc3QtYXRvcCB8IHhvciB8IHBsdXMKICAgICAvLwotICAg
IC8vIGJveDogZmlsdGVyLWJveCB8IGJvcmRlci1ib3ggfCBwYWRkaW5nLWJveCB8IGNvbnRlbnQt
Ym94CiAgICAgLy8gdmVydGV4TWVzaDogICs8aW50ZWdlcj57MSwyfVt3c3A8Ym94Pl1bd3NwJ2Rl
dGFjaGVkJ10KKyAgICAvLyBib3g6IGZpbHRlci1ib3ggfCBib3JkZXItYm94IHwgcGFkZGluZy1i
b3ggfCBjb250ZW50LWJveAogICAgIC8vCi0gICAgLy8gcGFyYW0tdmFsdWU6IHRydWV8ZmFsc2Vb
d3NwK3RydWV8ZmFsc2VdezAtM30gfAotICAgIC8vICAgICAgICAgICAgICA8bnVtYmVyPlt3c3Ar
PG51bWJlcj5dezAtM30gfAotICAgIC8vICAgICAgICAgICAgICA8YXJyYXk+IHwKLSAgICAvLyAg
ICAgICAgICAgICAgPHRyYW5zZm9ybT4gfAotICAgIC8vICAgICAgICAgICAgICA8dGV4dHVyZSg8
dXJpPik+Ci0gICAgLy8gYXJyYXk6ICdhcnJheSgnPG51bWJlcj5bd3NwPG51bWJlcj5dKicpJwot
ICAgIC8vIGNzcy0zZC10cmFuc2Zvcm06IDx0cmFuc2Zvcm0tZnVuY3Rpb24+O1s8dHJhbnNmb3Jt
LWZ1bmN0aW9uPl0qCi0gICAgLy8gdHJhbnNmb3JtOiAgIDxjc3MtM2QtdHJhbnNmb3JtPiB8IDxt
YXQ+Ci0gICAgLy8gbWF0OiAgICAgICAgICdtYXQyKCc8bnVtYmVyPigsPG51bWJlcj4pezN9Jykn
IHwgCi0gICAgLy8gICAgICAgICAgICAgICdtYXQzKCc8bnVtYmVyPigsPG51bWJlcj4pezh9Jykn
IHwgCi0gICAgLy8gICAgICAgICAgICAgICdtYXQ0KCc8bnVtYmVyPigsPG51bWJlcj4pezE1fScp
JyApCi0gICAgLy8gcGFyYW0tZGVmOiAgIDxwYXJhbS1uYW1lPndzcDxwYXJhbS12YWx1ZT4KLSAg
ICAvLyBwYXJhbS1uYW1lOiAgPGlkZW50PgotICAgIC8vIHBhcmFtczogICAgICBbPHBhcmFtLWRl
Zj5bLDxwYXJhbS1kZWY+Kl1dCisgICAgLy8gcGFyYW1zOiBTZWUgdGhlIGNvbW1lbnQgaW4gQ1NT
UGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlclBhcmFtZXRlcnMuCiAgICAgLy8KLSAgICAvLyBjdXN0
b20oPHZlcnRleC1zaGFkZXI+W3dzcDxmcmFnbWVudC1zaGFkZXI+XVssPHZlcnRleC1tZXNoPl1b
LDxwYXJhbXM+XSkKLSAgICAKKworICAgIEFTU0VSVCh2YWx1ZS0+ZnVuY3Rpb24pOworCisgICAg
Q1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzTGlzdCA9IHZhbHVlLT5mdW5jdGlvbi0+YXJncy5nZXQo
KTsKKyAgICBpZiAoIWFyZ3NMaXN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxX
ZWJLaXRDU1NGaWx0ZXJWYWx1ZT4gZmlsdGVyVmFsdWUgPSBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTo6
Y3JlYXRlKFdlYktpdENTU0ZpbHRlclZhbHVlOjpDdXN0b21GaWx0ZXJPcGVyYXRpb24pOworCiAg
ICAgLy8gMS4gUGFyc2UgdGhlIHNoYWRlciBVUkxzOiA8dmVydGV4LXNoYWRlcj5bd3NwPGZyYWdt
ZW50LXNoYWRlcj5dCiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gc2hhZGVyc0xpc3QgPSBDU1NW
YWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgYm9vbCBoYWRBdExlYXN0T25l
Q3VzdG9tU2hhZGVyID0gZmFsc2U7CkBAIC04MzgwLDY0ICs4NDg2LDM2IEBAIFBhc3NSZWZQdHI8
V2ViS2l0Q1NTRmlsdGVyVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VDdXN0b21GaWx0ZXIoQ1NTUGFy
c2VyVmFsdWUqIHZhCiAgICAgICAgIGZpbHRlclZhbHVlLT5hcHBlbmQobWVzaFNpemVMaXN0LnJl
bGVhc2UoKSk7CiAgICAgfQogICAgIAotICAgIC8vIDMuIFBhcnNlciB0aGUgcGFyYW1ldGVycy4K
LSAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJhbUxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0
ZUNvbW1hU2VwYXJhdGVkKCk7Ci0gICAgCi0gICAgd2hpbGUgKChhcmcgPSBhcmdzTGlzdC0+Y3Vy
cmVudCgpKSkgewotICAgICAgICBpZiAoYXJnLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfSURFTlQpCi0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICBSZWZQdHI8Q1NTVmFs
dWVMaXN0PiBwYXJhbWV0ZXIgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7
Ci0gICAgICAgIHBhcmFtZXRlci0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZVN0cmluZ1ZhbHVlKGFy
ZykpOwotICAgICAgICBhcmdzTGlzdC0+bmV4dCgpOwotCi0gICAgICAgIGlmICghKGFyZyA9IGFy
Z3NMaXN0LT5jdXJyZW50KCkpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAgICAgUmVm
UHRyPENTU1ZhbHVlPiBwYXJhbWV0ZXJWYWx1ZTsKLQotICAgICAgICBpZiAoYXJnLT51bml0ID09
IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbiAmJiBhcmctPmZ1bmN0aW9uKSB7Ci0gICAgICAgICAg
ICAvLyBUT0RPOiBJbXBsZW1lbnQgb3RoZXIgcGFyYW1ldGVycyB0eXBlcyBwYXJzaW5nLgotICAg
ICAgICAgICAgLy8gdGV4dHVyZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTQ0MgotICAgICAgICAgICAgLy8gbWF0MiwgbWF0MywgbWF0NDogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDQ0Ci0gICAgICAgICAgICAvLyAzZC10cmFu
c2Zvcm0gc2hhbGwgYmUgdGhlIGxhc3QgdG8gYmUgY2hlY2tlZAotICAgICAgICAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKGFyZy0+ZnVuY3Rpb24tPm5hbWUsICJhcnJheSgiKSkgewotICAgICAg
ICAgICAgICAgIHBhcmFtZXRlclZhbHVlID0gcGFyc2VDdXN0b21GaWx0ZXJBcnJheUZ1bmN0aW9u
KGFyZyk7Ci0gICAgICAgICAgICAgICAgLy8gVGhpcyBwYXJzaW5nIHN0ZXAgb25seSBjb25zdW1l
cyBmdW5jdGlvbiBhcmd1bWVudHMsCi0gICAgICAgICAgICAgICAgLy8gYXJnc0xpc3QgaXMgdGhl
cmVmb3JlIG1vdmVkIGZvcndhcmQgZXhwbGljaXRlbHkuCi0gICAgICAgICAgICAgICAgYXJnc0xp
c3QtPm5leHQoKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHBhcmFtZXRl
clZhbHVlID0gcGFyc2VDdXN0b21GaWx0ZXJUcmFuc2Zvcm0oYXJnc0xpc3QpOwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyYW1W
YWx1ZUxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAgICAg
ICAgICB3aGlsZSAoKGFyZyA9IGFyZ3NMaXN0LT5jdXJyZW50KCkpKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gSWYgd2UgaGl0IGEgY29tbWEgaXQgbWVhbnMgd2UgZmluaXNoZWQgdGhpcyBwYXJhbWV0
ZXIncyB2YWx1ZXMuCi0gICAgICAgICAgICAgICAgaWYgKGlzQ29tbWEoYXJnKSkKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgaWYgKCF2YWxpZFVuaXQoYXJnLCBG
TnVtYmVyLCBDU1NTdHJpY3RNb2RlKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgICAgICAgICAgICAgcGFyYW1WYWx1ZUxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZShhcmctPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpKTsKLSAg
ICAgICAgICAgICAgICBhcmdzTGlzdC0+bmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKCFwYXJhbVZhbHVlTGlzdC0+bGVuZ3RoKCkgfHwgcGFyYW1WYWx1ZUxpc3QtPmxlbmd0
aCgpID4gNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIHBhcmFtZXRl
clZhbHVlID0gcGFyYW1WYWx1ZUxpc3QucmVsZWFzZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKCFwYXJhbWV0ZXJWYWx1ZSB8fCAhYWNjZXB0Q29tbWFPcGVyYXRvcihhcmdzTGlzdCkpCi0g
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAvLyAzLiBQYXJzZSB0aGUgcGFyYW1ldGVycy4KKyAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJhbUxpc3QgPSBwYXJzZUN1c3RvbUZpbHRlclBhcmFt
ZXRlcnMoYXJnc0xpc3QpOworICAgIGlmICghcGFyYW1MaXN0KQorICAgICAgICByZXR1cm4gMDsK
IAotICAgICAgICBwYXJhbWV0ZXItPmFwcGVuZChwYXJhbWV0ZXJWYWx1ZS5yZWxlYXNlKCkpOwot
ICAgICAgICBwYXJhbUxpc3QtPmFwcGVuZChwYXJhbWV0ZXIucmVsZWFzZSgpKTsKLSAgICB9Ci0g
ICAgCiAgICAgaWYgKHBhcmFtTGlzdC0+bGVuZ3RoKCkpCiAgICAgICAgIGZpbHRlclZhbHVlLT5h
cHBlbmQocGFyYW1MaXN0LnJlbGVhc2UoKSk7CiAgICAgCiAgICAgcmV0dXJuIGZpbHRlclZhbHVl
OwogfQogCitQYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBDU1NQYXJzZXI6OnBhcnNl
Q3VzdG9tRmlsdGVyRnVuY3Rpb24oQ1NTUGFyc2VyVmFsdWUqIHZhbHVlKQoreworICAgIEFTU0VS
VCh2YWx1ZS0+ZnVuY3Rpb24pOworCisgICAgLy8gTG9vayBhaGVhZCB0byBkZXRlcm1pbmUgd2hp
Y2ggc3ludGF4IHRoZSBjdXN0b20gZnVuY3Rpb24gaXMgdXNpbmcuCisgICAgLy8gQm90aCB0aGUg
YXQtcnVsZSByZWZlcmVuY2Ugc3ludGF4IGFuZCB0aGUgaW5saW5lIHN5bnRheCByZXF1aXJlIGF0
IGxlYXN0IG9uZSBhcmd1bWVudC4KKyAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3NMaXN0ID0g
dmFsdWUtPmZ1bmN0aW9uLT5hcmdzLmdldCgpOworICAgIGlmICghYXJnc0xpc3QgfHwgIWFyZ3NM
aXN0LT5zaXplKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gVGhlIGF0LXJ1bGUgcmVm
ZXJlbmNlIHN5bnRheCBleHBlY3RzIGEgc2luZ2xlIGlkZW50IG9yIGFuIGlkZW50IGZvbGxvd2Vk
IGJ5IGEgY29tbWEuIAorICAgIC8vIGUuZy4gY3VzdG9tKG15LWZpbHRlcikgb3IgY3VzdG9tKG15
LWZpbHRlciwgLi4uKQorICAgIC8vIEluIGNvbnRyYXN0LCB3aGVuIHRoZSBpbmxpbmUgc3ludGF4
IHN0YXJ0cyB3aXRoIGFuIGlkZW50IGxpa2UgIm5vbmUiLCBpdCBleHBlY3RzIGEgdXJpIG9yIGEg
bWl4IGZ1bmN0aW9uIG5leHQuCisgICAgLy8gZS5nLiBjdXN0b20obm9uZSB1cmwoLi4uKSkgb3Ig
Y3VzdG9tKG5vbmUgbWl4KC4uLikKKyAgICBib29sIGlzQXRSdWxlUmVmZXJlbmNlU3ludGF4ID0g
YXJnc0xpc3QtPnZhbHVlQXQoMCktPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVO
VCAKKyAgICAgICAgJiYgKGFyZ3NMaXN0LT5zaXplKCkgPT0gMSB8fCBpc0NvbW1hKGFyZ3NMaXN0
LT52YWx1ZUF0KDEpKSk7CisgICAgcmV0dXJuIGlzQXRSdWxlUmVmZXJlbmNlU3ludGF4ID8gcGFy
c2VDdXN0b21GaWx0ZXJGdW5jdGlvbldpdGhBdFJ1bGVSZWZlcmVuY2VTeW50YXgodmFsdWUpIDog
cGFyc2VDdXN0b21GaWx0ZXJGdW5jdGlvbldpdGhJbmxpbmVTeW50YXgodmFsdWUpOworfQorCiBQ
YXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTUGFyc2VyOjpwYXJzZUN1c3RvbUZpbHRlclRyYW5z
Zm9ybShDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCkKIHsKICAgICBpZiAoIXZhbHVlTGlz
dCkKQEAgLTg1OTgsNyArODY3Niw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NQYXJz
ZXI6OnBhcnNlRmlsdGVyKCkKICAgICAgICAgICAgICAgICBpZiAoIW1fY29udGV4dC5pc0NTU0N1
c3RvbUZpbHRlckVuYWJsZWQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIFJlZlB0cjxXZWJLaXRDU1NGaWx0ZXJWYWx1ZT4g
ZmlsdGVyVmFsdWUgPSBwYXJzZUN1c3RvbUZpbHRlcih2YWx1ZSk7CisgICAgICAgICAgICAgICAg
UmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBmaWx0ZXJWYWx1ZSA9IHBhcnNlQ3VzdG9tRmls
dGVyRnVuY3Rpb24odmFsdWUpOwogICAgICAgICAgICAgICAgIGlmICghZmlsdGVyVmFsdWUpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZChmaWx0ZXJWYWx1ZS5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDAwZGRh
MWMuLmRiOWVhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTIzMiwxMCArMjMyLDEzIEBA
IHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VGaWx0ZXIoKTsKICAg
ICBQYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBwYXJzZUJ1aWx0aW5GaWx0ZXJBcmd1
bWVudHMoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OkZpbHRlck9w
ZXJhdGlvblR5cGUpOwogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKLSAgICBQYXNzUmVmUHRyPFdl
YktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZT4gcGFyc2VDdXN0b21GaWx0ZXJBcnJheUZ1bmN0aW9u
KENTU1BhcnNlclZhbHVlKik7CiAgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNaXhGdW5jdGlvblZh
bHVlPiBwYXJzZU1peEZ1bmN0aW9uKENTU1BhcnNlclZhbHVlKik7Ci0gICAgUGFzc1JlZlB0cjxX
ZWJLaXRDU1NGaWx0ZXJWYWx1ZT4gcGFyc2VDdXN0b21GaWx0ZXIoQ1NTUGFyc2VyVmFsdWUqKTsK
KyAgICBQYXNzUmVmUHRyPFdlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZT4gcGFyc2VDdXN0b21G
aWx0ZXJBcnJheUZ1bmN0aW9uKENTU1BhcnNlclZhbHVlKik7CiAgICAgUGFzc1JlZlB0cjxDU1NW
YWx1ZUxpc3Q+IHBhcnNlQ3VzdG9tRmlsdGVyVHJhbnNmb3JtKENTU1BhcnNlclZhbHVlTGlzdCop
OworICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJzZUN1c3RvbUZpbHRlclBhcmFtZXRl
cnMoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CisgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NGaWx0ZXJW
YWx1ZT4gcGFyc2VDdXN0b21GaWx0ZXJGdW5jdGlvbldpdGhBdFJ1bGVSZWZlcmVuY2VTeW50YXgo
Q1NTUGFyc2VyVmFsdWUqKTsKKyAgICBQYXNzUmVmUHRyPFdlYktpdENTU0ZpbHRlclZhbHVlPiBw
YXJzZUN1c3RvbUZpbHRlckZ1bmN0aW9uV2l0aElubGluZVN5bnRheChDU1NQYXJzZXJWYWx1ZSop
OworICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+IHBhcnNlQ3VzdG9tRmlsdGVy
RnVuY3Rpb24oQ1NTUGFyc2VyVmFsdWUqKTsKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA4ZDBjMmJlLi5jMDk2OGRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC01MDA5LDEwICs1MDA5LDE1IEBAIGJvb2wgU3R5bGVS
ZXNvbHZlcjo6cGFyc2VDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0KENTU1ZhbHVlKiBwYXJhbWV0
ZXJzVmFsdWUsIEN1CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVBhc3NSZWZQdHI8Q3VzdG9tRmls
dGVyT3BlcmF0aW9uPiBTdHlsZVJlc29sdmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24o
V2ViS2l0Q1NTRmlsdGVyVmFsdWUqIGZpbHRlclZhbHVlKQorUGFzc1JlZlB0cjxDdXN0b21GaWx0
ZXJPcGVyYXRpb24+IFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbldp
dGhBdFJ1bGVSZWZlcmVuY2VTeW50YXgoV2ViS2l0Q1NTRmlsdGVyVmFsdWUqIGZpbHRlclZhbHVl
KQogewotICAgIEFTU0VSVChmaWx0ZXJWYWx1ZS0+bGVuZ3RoKCkpOworICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgc3R5bGUgcmVzb2x1dGlvbiBmb3IgdGhlIGN1c3RvbSBmaWx0ZXIgYXQtcnVsZSBy
ZWZlcmVuY2Ugc3ludGF4LgorICAgIFVOVVNFRF9QQVJBTShmaWx0ZXJWYWx1ZSk7CisgICAgcmV0
dXJuIDA7Cit9CiAKK1Bhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBTdHlsZVJlc29s
dmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoSW5saW5lU3ludGF4KFdlYktpdENT
U0ZpbHRlclZhbHVlKiBmaWx0ZXJWYWx1ZSkKK3sKICAgICBDU1NWYWx1ZSogc2hhZGVyc1ZhbHVl
ID0gZmlsdGVyVmFsdWUtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCk7CiAgICAgQVNTRVJUKHNo
YWRlcnNWYWx1ZS0+aXNWYWx1ZUxpc3QoKSk7CiAgICAgQ1NTVmFsdWVMaXN0KiBzaGFkZXJzTGlz
dCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHNoYWRlcnNWYWx1ZSk7CkBAIC01MTExLDYg
KzUxMTYsMTQgQEAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IFN0eWxlUmVzb2x2
ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbihXZWIKICAgICBSZWZQdHI8U3R5bGVDdXN0
b21GaWx0ZXJQcm9ncmFtPiBwcm9ncmFtID0gU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpjcmVh
dGUodmVydGV4U2hhZGVyLnJlbGVhc2UoKSwgZnJhZ21lbnRTaGFkZXIucmVsZWFzZSgpLCBwcm9n
cmFtVHlwZSwgbWl4U2V0dGluZ3MsIG1lc2hUeXBlKTsKICAgICByZXR1cm4gQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uOjpjcmVhdGUocHJvZ3JhbS5yZWxlYXNlKCksIHBhcmFtZXRlckxpc3QsIG1lc2hS
b3dzLCBtZXNoQ29sdW1ucywgbWVzaFR5cGUpOwogfQorCitQYXNzUmVmUHRyPEN1c3RvbUZpbHRl
ck9wZXJhdGlvbj4gU3R5bGVSZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKFdl
YktpdENTU0ZpbHRlclZhbHVlKiBmaWx0ZXJWYWx1ZSkKK3sKKyAgICBBU1NFUlQoZmlsdGVyVmFs
dWUtPmxlbmd0aCgpKTsKKyAgICBib29sIGlzQXRSdWxlUmVmZXJlbmNlU3ludGF4ID0gZmlsdGVy
VmFsdWUtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCktPmlzUHJpbWl0aXZlVmFsdWUoKTsKKyAg
ICByZXR1cm4gaXNBdFJ1bGVSZWZlcmVuY2VTeW50YXggPyBjcmVhdGVDdXN0b21GaWx0ZXJPcGVy
YXRpb25XaXRoQXRSdWxlUmVmZXJlbmNlU3ludGF4KGZpbHRlclZhbHVlKSA6IGNyZWF0ZUN1c3Rv
bUZpbHRlck9wZXJhdGlvbldpdGhJbmxpbmVTeW50YXgoZmlsdGVyVmFsdWUpOworfQorCiAjZW5k
aWYKIAogYm9vbCBTdHlsZVJlc29sdmVyOjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVl
KiBpblZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUsIEZp
bHRlck9wZXJhdGlvbnMmIG91dE9wZXJhdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
aAppbmRleCAwM2Y1NTZhLi5hM2FmNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
QEAgLTMwNyw2ICszMDcsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQ
YXJhbWV0ZXI+IHBhcnNlQ3VzdG9tRmlsdGVyQXJyYXlQYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBu
YW1lLCBDU1NWYWx1ZUxpc3QqKTsKICAgICBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclBhcmFtZXRl
cj4gcGFyc2VDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBD
U1NWYWx1ZUxpc3QqKTsKICAgICBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclBhcmFtZXRlcj4gcGFy
c2VDdXN0b21GaWx0ZXJUcmFuc2Zvcm1QYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBDU1NW
YWx1ZUxpc3QqKTsKKyAgICBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gY3JlYXRl
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uV2l0aEF0UnVsZVJlZmVyZW5jZVN5bnRheChXZWJLaXRDU1NG
aWx0ZXJWYWx1ZSopOworICAgIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBjcmVh
dGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoSW5saW5lU3ludGF4KFdlYktpdENTU0ZpbHRlclZh
bHVlKik7CiAgICAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZUN1c3Rv
bUZpbHRlck9wZXJhdGlvbihXZWJLaXRDU1NGaWx0ZXJWYWx1ZSopOwogICAgIHZvaWQgbG9hZFBl
bmRpbmdTaGFkZXJzKCk7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>