<?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>41989</bug_id>
          
          <creation_ts>2010-07-09 14:30:33 -0700</creation_ts>
          <short_desc>stateStyle (@EditorCommand.cpp) should ask EditingBehavior for platform specific behavior</short_desc>
          <delta_ts>2010-09-27 14:11:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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>
          <dependson>39854</dependson>
          <blocked>46382</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>249275</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-07-09 14:30:33 -0700</bug_when>
    <thetext>Spin off of the discussion in bug 39854, specially in https://bugs.webkit.org/show_bug.cgi?id=39854#c44 and https://bugs.webkit.org/show_bug.cgi?id=39854#c52

This won&apos;t be a refactor only (tests needed), and needs to work for the following situations (detailed by Ojan):

------------------------
When shouldConsiderStylePresentOnlyIfThroughoutTheSelection is true it&apos;s taking what used to be a tri-state and making it a boolean. Specifically, I think we&apos;d return the wrong value in the following case:
&lt;div id=foo contentEditable&gt;foo&lt;b&gt;bar&lt;/b&gt;&lt;/div&gt;
&lt;script&gt;
window.getSelection().selectAllChildren(foo);
console.log(document.queryCommandIndeterm(&apos;bold&apos;));
&lt;/script&gt;

That should log &quot;true&quot; to the console. With your patch, I think it would log &quot;false&quot;. On the other hand, this patch fixes queryCommandState to return the correct value in this case. Currently it would return true for the above and should return false.

It would be unfortunate to fix one case and break the other. Can we do this as two separate patches?

1. Just change the current editingBehavior call. Call the method shouldToggleStyleBasedOnStartOfSelection, but also put a FIXME to use that method in stateStyle for the cases where it&apos;s used for queryCommandState.
2. Rename shouldToggleStyleBasedOnStartOfSelection to shouldConsiderStylePresentOnlyIfThroughoutTheSelection and use it in stateStyle, but not if it&apos;s being used to get a return value for queryCommandIndeterm. This is a bit complicated because right now both queryCommandState and queryCommandIndeterm end up calling the same method. So it would require a few more changes to EditorCommand.cpp.
-------------------------------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280413</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 15:45:12 -0700</bug_when>
    <thetext>Yes, this is a pending issue we need to work on.  I&apos;m planning on getting to it once the bug 27818 is resolved since that needs to be fixed before we can implement queryCommandState for underline &amp; strikeThrough correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280431</commentid>
    <comment_count>2</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-16 16:06:23 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Yes, this is a pending issue we need to work on.  I&apos;m planning on getting to it once the bug 27818 is resolved since that needs to be fixed before we can implement queryCommandState for underline &amp; strikeThrough correctly.

Niwa, I have a patch for that. Uploading soon, unless your work on it is already done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280448</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 16:43:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Yes, this is a pending issue we need to work on.  I&apos;m planning on getting to it once the bug 27818 is resolved since that needs to be fixed before we can implement queryCommandState for underline &amp; strikeThrough correctly.
&gt; 
&gt; Niwa, I have a patch for that. Uploading soon, unless your work on it is already done.

You have a patch for 27818?  That&apos;s a great news for me.  I was intending to work on that in the next couple of weeks but I can definitely take a look at your patch if you already have a working patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280450</commentid>
    <comment_count>4</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-16 16:48:56 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; Yes, this is a pending issue we need to work on.  I&apos;m planning on getting to it once the bug 27818 is resolved since that needs to be fixed before we can implement queryCommandState for underline &amp; strikeThrough correctly.
&gt; &gt; 
&gt; &gt; Niwa, I have a patch for that. Uploading soon, unless your work on it is already done.
&gt; 
&gt; You have a patch for 27818?  That&apos;s a great news for me.  I was intending to work on that in the next couple of weeks but I can definitely take a look at your patch if you already have a working patch.

no. to this one:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280459</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-16 17:09:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; You have a patch for 27818?  That&apos;s a great news for me.  I was intending to work on that in the next couple of weeks but I can definitely take a look at your patch if you already have a working patch.
&gt; 
&gt; no. to this one:)

Ah, ok.  It&apos;s good to know as well.  I wanted to this bug last summer but got carried away by 27818.

By the way, I forgot to mention that
(In reply to comment #2)
&gt; Niwa, I have a patch for that. Uploading soon, unless your work on it is already done.

My first name is Ryosuke although many people mistake Niwa as my first name since it&apos;s shorter and more pronounceable.  But you can call me Niwa too.  It&apos;s super confusing too that many (if not all) contributors from Tokyo put their last name first in capitals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283827</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-23 12:09:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; no. to this one:)

Hi Antonio, will you be able to post the patch you have?  If it&apos;s too much trouble for you, then I&apos;ll make a patch myself since this bug seems to be an easy fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283832</commentid>
    <comment_count>7</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-23 12:12:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; no. to this one:)
&gt; 
&gt; Hi Antonio, will you be able to post the patch you have?  If it&apos;s too much trouble for you, then I&apos;ll make a patch myself since this bug seems to be an easy fix.

Ah it&apos;s been always bypassing my attention =/.

I just have the patch at pc at home. You give me until tonight to fix that? :) if I fail, please do. thank.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284958</commentid>
    <comment_count>8</comment_count>
      <attachid>68812</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-24 23:43:57 -0700</bug_when>
    <thetext>Created attachment 68812
fixed both 41989 and 46382</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284959</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-24 23:45:52 -0700</bug_when>
    <thetext>The actual change is very small but I added lots of tests in this patch because we don&apos;t currently have any adequate test coverage for queryCommandState.  The fact this patch didn&apos;t require any rebaseline at all is a really bad sign.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284960</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-24 23:49:48 -0700</bug_when>
    <thetext>There are currently 4 tests that always fail in my patch:

FAIL queryCommandState(&quot;subscript&quot;) returns false when selecting all of &quot;&lt;sub&gt;&lt;div&gt;hello world&lt;/div&gt;&lt;/sub&gt;&quot;, expected true
FAIL queryCommandState(&quot;subscript&quot;) returns false when selecting second word of &quot;&lt;sup&gt;&lt;sub&gt;&lt;div&gt;hello world WebKit&lt;/div&gt;&lt;/sub&gt;&lt;/sup&gt;&quot;, expected true

FAIL queryCommandState(&quot;superscript&quot;) returns false when selecting all of &quot;&lt;sup&gt;&lt;div&gt;hello world&lt;/div&gt;&lt;/sup&gt;&quot;, expected true
FAIL queryCommandState(&quot;superscript&quot;) returns false when selecting second word of &quot;&lt;sup&gt;&lt;sub&gt;&lt;div&gt;hello world WebKit&lt;/div&gt;&lt;/sub&gt;&lt;/sup&gt;&quot;, expected true

WebKit renders as if hello world is sub/sup in these four cases but computed style says the vertical-align is baseline.  Does anyone know if this is the desired behavior for CSS2.1 or the latest draft of CSS3?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285073</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-25 20:06:54 -0700</bug_when>
    <thetext>Hi Antonio, Should I delete the failing tests for now?  Or should I keep them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285074</commentid>
    <comment_count>12</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-25 20:13:40 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Hi Antonio, Should I delete the failing tests for now?  Or should I keep them?

This bug ideally should introduce no behavior change. Are they now failing because of this:

 bool Document::queryCommandState(const String&amp; commandName)
 {
-    return command(this, commandName).state() != FalseTriState;
+    return command(this, commandName).state() == TrueTriState;
 }


If so we could change it in a follow up?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285075</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-25 20:20:48 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; This bug ideally should introduce no behavior change. Are they now failing because of this:

No, they are failing because of our vertical-align implementation.  See the comment #10.  So when we have &lt;sub&gt;&lt;div&gt;hello&lt;/div&gt;&lt;/sub&gt;, computed style on &quot;hello&quot; indicates that the vertical alignment is baseline, which isn&apos;t really want I expect because the text appears to be having sub vertical alignment.  And I&apos;m not sure if this behavior is desired or it&apos;s a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285076</commentid>
    <comment_count>14</comment_count>
      <attachid>68812</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-25 20:40:09 -0700</bug_when>
    <thetext>Comment on attachment 68812
fixed both 41989 and 46382

Hum ... thinking. Resetting r? so we decide before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285572</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-27 10:53:02 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; This bug ideally should introduce no behavior change. Are they now failing because of this:
&gt; 
&gt; No, they are failing because of our vertical-align implementation.  See the comment #10.  So when we have &lt;sub&gt;&lt;div&gt;hello&lt;/div&gt;&lt;/sub&gt;, computed style on &quot;hello&quot; indicates that the vertical alignment is baseline, which isn&apos;t really want I expect because the text appears to be having sub vertical alignment.  And I&apos;m not sure if this behavior is desired or it&apos;s a bug.

I did some investigation on this issue and turned out that in &lt;sub&gt;&lt;div&gt;hello&lt;/div&gt;&lt;/sub&gt;, hello inherits the small font size but not the sub vertical alignment.  This is clear from the rendering of:
&lt;span style=&quot;vertical-align:sub;&quot;&gt;&lt;div&gt;WebKit&lt;span style=&quot;vertical-align:sub;&quot;&gt;hello&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;world

So I should just delete my test cases.  Do you want me to submit the patch again for a review or should I just delete them and commit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285586</commentid>
    <comment_count>16</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-27 11:07:01 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; This bug ideally should introduce no behavior change. Are they now failing because of this:
&gt; &gt; 
&gt; &gt; No, they are failing because of our vertical-align implementation.  See the comment #10.  So when we have &lt;sub&gt;&lt;div&gt;hello&lt;/div&gt;&lt;/sub&gt;, computed style on &quot;hello&quot; indicates that the vertical alignment is baseline, which isn&apos;t really want I expect because the text appears to be having sub vertical alignment.  And I&apos;m not sure if this behavior is desired or it&apos;s a bug.
&gt; 
&gt; I did some investigation on this issue and turned out that in &lt;sub&gt;&lt;div&gt;hello&lt;/div&gt;&lt;/sub&gt;, hello inherits the small font size but not the sub vertical alignment.  This is clear from the rendering of:
&gt; &lt;span style=&quot;vertical-align:sub;&quot;&gt;&lt;div&gt;WebKit&lt;span style=&quot;vertical-align:sub;&quot;&gt;hello&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;world
&gt; 
&gt; So I should just delete my test cases.  Do you want me to submit the patch again for a review or should I just delete them and commit?

consider my r+, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285599</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-27 11:16:22 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; consider my r+, then.

You menat r=you, correct?  (just making sure).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285601</commentid>
    <comment_count>18</comment_count>
      <attachid>68812</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-27 11:17:09 -0700</bug_when>
    <thetext>Comment on attachment 68812
fixed both 41989 and 46382

r=me, yeap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285730</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-27 14:11:09 -0700</bug_when>
    <thetext>Committed r68423: &lt;http://trac.webkit.org/changeset/68423&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68812</attachid>
            <date>2010-09-24 23:43:57 -0700</date>
            <delta_ts>2010-09-27 11:17:09 -0700</delta_ts>
            <desc>fixed both 41989 and 46382</desc>
            <filename>bug-41989-20100924234355.patch</filename>
            <type>text/plain</type>
            <size>27354</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODMyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3Rh
dGVTdHlsZSAoQEVkaXRvckNvbW1hbmQuY3BwKSBzaG91bGQgYXNrIEVkaXRpbmdCZWhhdmlvciBm
b3IgcGxhdGZvcm0gc3BlY2lmaWMgYmVoYXZpb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxOTg5CisKKyAgICAgICAgcXVlcnlDb21tYW5kU3RhdGUg
cmV0dXJucyB0cnVlIGV2ZW4gd2hlbiBpbiB0aGUgbWl4ZWQgc3RhdGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MzgyCisKKyAgICAgICAgRml4ZWQg
c3RhdGVTdHlsZSBzbyB0aGF0IGl0IGNhbGxzIHNlbGVjdGlvblN0YXJ0SGFzU3R5bGUgd2hlbiBz
aG91bGRUb2dnbGVTdHlsZUJhc2VkT25TdGFydE9mU2VsZWN0aW9uCisgICAgICAgIGlzIHRydWUg
KE1hYyBwbGF0Zm9ybXMpIGFuZCBjYWxscyBzZWxlY3Rpb25IYXNTdHlsZSBvdGhlcndpc2UgKG5v
bi1NYWMgcGxhdGZvcm1zKS4KKworICAgICAgICBBbHNvIGZpeGVkIHF1ZXJ5Q29tbWFuZFN0YXRl
IHNvIHRoYXQgaXQgb25seSByZXR1cm5zIHRydWUgd2hlbiB0aGUgc3RhdGUgaXMgVHJ1ZVRyaVN0
YXRlCisgICAgICAgIGFzIHN1cHBvc2VkIHRvIHJldHVybmluZyB0cnVlIHdoZW5ldmVyIHRoZSBz
dGF0ZSBpcyBub3QgRmFsc2VUcmlTdGF0ZS4gTmV3IGJlaGF2aW9yIG1hdGNoZXMgdGhhdCBvZgor
ICAgICAgICBvdGhlciBicm93c2VycyBzdWNoIGFzIEZpcmVmb3ggYW5kIEludGVybmV0IEV4cGxv
cmVyLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpxdWVyeUNvbW1hbmRTdGF0ZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUb2dnbGVTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpzdGF0ZVN0eWxlKToKKwogMjAxMC0wOS0yNCAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhbiBCZXJuc3RlaW4uCklu
ZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiA2ODIwMSkKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzkxMiw3ICszOTEyLDcgQEAgYm9vbCBEb2N1bWVudDo6cXVl
cnlDb21tYW5kSW5kZXRlcm0oY29ucwogCiBib29sIERvY3VtZW50OjpxdWVyeUNvbW1hbmRTdGF0
ZShjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKQogewotICAgIHJldHVybiBjb21tYW5kKHRoaXMs
IGNvbW1hbmROYW1lKS5zdGF0ZSgpICE9IEZhbHNlVHJpU3RhdGU7CisgICAgcmV0dXJuIGNvbW1h
bmQodGhpcywgY29tbWFuZE5hbWUpLnN0YXRlKCkgPT0gVHJ1ZVRyaVN0YXRlOwogfQogCiBib29s
IERvY3VtZW50OjpxdWVyeUNvbW1hbmRTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSkKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDY4MjAxKQorKysg
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAs
MTAgKzE2MCw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVUb2dnbGVTdHlsZShGcmFtZSogZnIKICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgb25WYWx1ZSk7IC8vIFdlIG5lZWQgdG8g
YWRkIHRoaXMgc3R5bGUgdG8gcGFzcyBpdCB0byBzZWxlY3Rpb25TdGFydEhhc1N0eWxlIC8gc2Vs
ZWN0aW9uSGFzU3R5bGUKIAogICAgIC8vIFN0eWxlIGlzIGNvbnNpZGVyZWQgcHJlc2VudCB3aGVu
Ci0gICAgLy8gbWFjOiBwcmVzZW50IGF0IHRoZSBiZWdpbm5pbmcgb2Ygc2VsZWN0aW9uCisgICAg
Ly8gTWFjOiBwcmVzZW50IGF0IHRoZSBiZWdpbm5pbmcgb2Ygc2VsZWN0aW9uCiAgICAgLy8gb3Ro
ZXI6IHByZXNlbnQgdGhyb3VnaG91dCB0aGUgc2VsZWN0aW9uCiAKLSAgICAvLyBGSVhNRTogTWFr
ZSBzdGF0ZVN0eWxlKCkgdG8gdXNlIHRoaXMgZWRpdGluZyBtZXRob2QgdG9vIGZvciB0aGUgY2Fz
ZXMgd2hlcmUgaXQncyB1c2VkIGZvciBxdWVyeUNvbW1hbmRTdGF0ZS4KICAgICBib29sIHN0eWxl
SXNQcmVzZW50OwogICAgIGlmIChmcmFtZS0+ZWRpdG9yKCktPmJlaGF2aW9yKCkuc2hvdWxkVG9n
Z2xlU3R5bGVCYXNlZE9uU3RhcnRPZlNlbGVjdGlvbigpKQogICAgICAgICBzdHlsZUlzUHJlc2Vu
dCA9IGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0aW9uU3RhcnRIYXNTdHlsZShzdHlsZS5nZXQoKSk7
CkBAIC0yMzEsNiArMjMwLDkgQEAgc3RhdGljIFRyaVN0YXRlIHN0YXRlU3R5bGUoRnJhbWUqIGZy
YW1lLAogewogICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUgPSBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KHByb3BlcnR5SUQsIGRlc2lyZWRWYWx1ZSk7CisKKyAgICBpZiAoZnJhbWUtPmVkaXRvcigp
LT5iZWhhdmlvcigpLnNob3VsZFRvZ2dsZVN0eWxlQmFzZWRPblN0YXJ0T2ZTZWxlY3Rpb24oKSkK
KyAgICAgICAgcmV0dXJuIGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0aW9uU3RhcnRIYXNTdHlsZShz
dHlsZS5nZXQoKSkgPyBUcnVlVHJpU3RhdGUgOiBGYWxzZVRyaVN0YXRlOwogICAgIHJldHVybiBm
cmFtZS0+ZWRpdG9yKCktPnNlbGVjdGlvbkhhc1N0eWxlKHN0eWxlLmdldCgpKTsKIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNjgzMjcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBzdGF0ZVN0eWxlIChARWRpdG9yQ29tbWFuZC5jcHApIHNob3VsZCBhc2sgRWRpdGluZ0Jl
aGF2aW9yIGZvciBwbGF0Zm9ybSBzcGVjaWZpYyBiZWhhdmlvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE5ODkKKworICAgICAgICBBZGRlZCBhIHRl
c3QgdG8gZW5zdXJlIHF1ZXJ5Q29tbWFuZFN0YXRlIHJldHVybnMgY29ycmVjdCB2YWx1ZXMgb24g
TWFjIGFuZCBXaW5kb3dzLgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9xdWVyeS1j
b21tYW5kLXN0YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVj
Q29tbWFuZC9zY3JpcHQtdGVzdHMvcXVlcnktY29tbWFuZC1zdGF0ZS5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0UXVlcnlDb21tYW5kU3RhdGUpOgorICAgICAgICAoc2VsZWN0QWxsKToKKyAgICAg
ICAgKHNlbGVjdFNlY29uZFdvcmQpOgorICAgICAgICAoc2VsZWN0Rmlyc3RUd29Xb3Jkcyk6Cisg
ICAgICAgIChydW5UZXN0cyk6CisKIDIwMTAtMDktMjQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9x
dWVyeS1jb21tYW5kLXN0YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvcXVlcnktY29tbWFuZC1zdGF0ZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMyIEBACitUZXN0IHRvIG1ha2Ugc3VyZSBxdWVyeUNv
bW1hbmRTdGF0ZSByZXR1cm5zIGNvcnJlY3QgdmFsdWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworVGVzdHMgZm9yIHdpbgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIp
IHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICJoZWxsbyIKK1BBU1MgcXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAi
PGk+aGVsbG88L2k+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIpIHJldHVybnMgdHJ1
ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxiPmhlbGxvPC9iPiIKK1BBU1MgcXVlcnlDb21tYW5k
U3RhdGUoImJvbGQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8g
PGI+d29ybGQ8L2I+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIpIHJldHVybnMgZmFs
c2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8Yj5oZWxsbzwvYj4gd29ybGQiCitQQVNTIHF1ZXJ5
Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIHNlY29uZCB3
b3JkIG9mICJoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0
ZSgiYm9sZCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2YgIjxi
PmhlbGxvPC9iPiB3b3JsZCA8Yj5XZWJLaXQ8L2I+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgi
Ym9sZCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBvZiAiPGk+aGVs
bG8gPGI+aGVsbG88L2I+IFdlYktpdDwvaT4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xk
IikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIHNlY29uZCB3b3JkIG9mICI8Yj5oZWxsbyA8
aT5oZWxsbzwvaT4gV2ViS2l0PC9iPiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSBy
ZXR1cm5zIHRydWUgd2hlbiBzZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2YgIjxiPjxkaXY+aGVsbG8g
PGk+aGVsbG88L2k+IFdlYktpdDwvZGl2PjwvYj4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJi
b2xkIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxiIHN0eWxlPSJmb250
LXdlaWdodDogbm9ybWFsOyI+aGVsbG88L2I+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiYm9s
ZCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxpIHN0eWxlPSJmb250LXdl
aWdodDogYm9sZDsiPmhlbGxvPC9pPiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSBy
ZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGI+aGVsbG88L2I+IHdvcmxkIDxi
PldlYktpdDwvYj4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyB0cnVl
IHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGI+aGVsbG88L2I+PGI+IHdvcmxkPC9iPiIKK1BBU1Mg
cXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSByZXR1cm5zIHRydWUgd2hlbiBzZWxlY3RpbmcgYWxs
IG9mICI8ZGl2PjxiPmhlbGxvPC9iPjwvZGl2PjxwPjxiPiBXZWJLaXQ8L2I+PC9wPiIKK1BBU1Mg
cXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3Rpbmcg
YWxsIG9mICJoZWxsbyIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIpIHJldHVybnMg
ZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8Yj5oZWxsbzwvYj4iCitQQVNTIHF1ZXJ5Q29t
bWFuZFN0YXRlKCJpdGFsaWMiKSByZXR1cm5zIHRydWUgd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8
aT5oZWxsbzwvaT4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiKSByZXR1cm5zIGZh
bHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGk+aGVsbG88L2k+IHdvcmxkIgorUEFTUyBxdWVy
eUNvbW1hbmRTdGF0ZSgiaXRhbGljIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwg
b2YgImhlbGxvIDxpPndvcmxkPC9pPiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIp
IHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxpPjxkaXY+aGVsbG8gd29ybGQ8
L2Rpdj48L2k+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIikgcmV0dXJucyBmYWxz
ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxkaXYgc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYyI+
aGVsbG8gPHNwYW4gc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsiPmhlbGxvPC9zcGFuPjwvZGl2
PiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIpIHJldHVybnMgZmFsc2Ugd2hl
biBzZWxlY3RpbmcgYWxsIG9mICJoZWxsbyIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN1YnNj
cmlwdCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8c3VwPmhlbGxvPC9z
dXA+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IikgcmV0dXJucyB0cnVlIHdo
ZW4gc2VsZWN0aW5nIGFsbCBvZiAiPHN1Yj5oZWxsbzwvc3ViPiIKK1BBU1MgcXVlcnlDb21tYW5k
U3RhdGUoInN1YnNjcmlwdCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8
c3ViPmhlbGxvPC9zdWI+IHdvcmxkIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0
IikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgImhlbGxvIDxzdWI+d29ybGQ8
L3N1Yj4iCitGQUlMIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiKSByZXR1cm5zIGZhbHNl
IHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPHN1Yj48ZGl2PmhlbGxvIHdvcmxkPC9kaXY+PC9zdWI+
IiwgZXhwZWN0ZWQgdHJ1ZQorRkFJTCBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IikgcmV0
dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBvZiAiPHN1cD48c3ViPjxkaXY+
aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9zdWI+PC9zdXA+IiwgZXhwZWN0ZWQgdHJ1ZQorUEFT
UyBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0
aW5nIGFsbCBvZiAiPGRpdiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsiPmhlbGxvIHdvcmxk
PC9kaXY+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IikgcmV0dXJucyB0cnVl
IHdoZW4gc2VsZWN0aW5nIHNlY29uZCB3b3JkIG9mICJoZWxsbyA8c3BhbiBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHN1YjsiPndvcmxkPC9zcGFuPiBXZWJLaXQiCitQQVNTIHF1ZXJ5Q29tbWFuZFN0
YXRlKCJzdXBlcnNjcmlwdCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICJo
ZWxsbyIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IikgcmV0dXJucyBmYWxz
ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxzdWI+aGVsbG88L3N1Yj4iCitQQVNTIHF1ZXJ5Q29t
bWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwg
b2YgIjxzdXA+aGVsbG88L3N1cD4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlw
dCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8c3VwPmhlbGxvPC9zdXA+
IHdvcmxkIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiKSByZXR1cm5zIGZh
bHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8gPHN1cD53b3JsZDwvc3VwPiIKK0ZBSUwg
cXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVj
dGluZyBhbGwgb2YgIjxzdXA+PGRpdj5oZWxsbyB3b3JsZDwvZGl2Pjwvc3VwPiIsIGV4cGVjdGVk
IHRydWUKK0ZBSUwgcXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IikgcmV0dXJucyBmYWxz
ZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBvZiAiPHN1cD48c3ViPjxkaXY+aGVsbG8gd29y
bGQgV2ViS2l0PC9kaXY+PC9zdWI+PC9zdXA+IiwgZXhwZWN0ZWQgdHJ1ZQorUEFTUyBxdWVyeUNv
bW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFs
bCBvZiAiPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdXBlcjsiPmhlbGxvPC9zcGFuPjxz
cGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+d29ybGQ8L3NwYW4+IgorUEFTUyBxdWVy
eUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5n
IGFsbCBvZiAiaGVsbG88c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+d29ybGQ8
L3NwYW4+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIikgcmV0dXJucyBmYWxz
ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgImhlbGxvIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgi
dW5kZXJsaW5lIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxzPmhlbGxv
PC9zPiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIpIHJldHVybnMgdHJ1ZSB3
aGVuIHNlbGVjdGluZyBhbGwgb2YgIjx1PmhlbGxvPC91PiIKK1BBU1MgcXVlcnlDb21tYW5kU3Rh
dGUoInVuZGVybGluZSIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8dT5o
ZWxsbzwvdT4gd29ybGQiCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiKSByZXR1
cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8gPHU+d29ybGQ8L3U+IgorUEFT
UyBxdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0
aW5nIGFsbCBvZiAiPHU+PGRpdj5oZWxsbyB3b3JsZDwvZGl2PjwvdT4iCitQQVNTIHF1ZXJ5Q29t
bWFuZFN0YXRlKCJ1bmRlcmxpbmUiKSByZXR1cm5zIHRydWUgd2hlbiBzZWxlY3Rpbmcgc2Vjb25k
IHdvcmQgb2YgIjx1PjxzPjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9zPjwvdT4iCitQ
QVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2Vs
ZWN0aW5nIHNlY29uZCB3b3JkIG9mICI8cz48dT5oZWxsbzwvdT4gd29ybGQ8L3M+IFdlYktpdCIK
K1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIpIHJldHVybnMgdHJ1ZSB3aGVuIHNl
bGVjdGluZyBzZWNvbmQgd29yZCBvZiAiPHU+PHM+aGVsbG88L3M+IHdvcmxkPC91PiBXZWJLaXQi
CitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiKSByZXR1cm5zIHRydWUgd2hlbiBz
ZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2YgIjxzPmhlbGxvIDx1PndvcmxkPC9zPiBXZWJLaXQ8L3U+
IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIpIHJldHVybnMgZmFsc2Ug
d2hlbiBzZWxlY3RpbmcgYWxsIG9mICJoZWxsbyIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN0
cmlrZVRocm91Z2giKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPHU+aGVs
bG88L3U+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIpIHJldHVybnMg
dHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxzPmhlbGxvPC9zPiIKK1BBU1MgcXVlcnlDb21t
YW5kU3RhdGUoInN0cmlrZVRocm91Z2giKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFs
bCBvZiAiPHM+aGVsbG88L3M+IHdvcmxkIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtl
VGhyb3VnaCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICJoZWxsbyA8cz53
b3JsZDwvcz4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIikgcmV0dXJu
cyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPHM+PGRpdj5oZWxsbyB3b3JsZDwvZGl2Pjwv
cz4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIikgcmV0dXJucyB0cnVl
IHdoZW4gc2VsZWN0aW5nIHNlY29uZCB3b3JkIG9mICI8cz48dT48ZGl2PmhlbGxvIHdvcmxkIFdl
YktpdDwvZGl2PjwvdT48L3M+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3Vn
aCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2YgIjx1PjxzPmhl
bGxvPC9zPiB3b3JsZDwvdT4gV2ViS2l0IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtl
VGhyb3VnaCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBvZiAiaGVs
bG8gPHM+d29ybGQgV2ViS2l0PC9zPiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRo
cm91Z2giKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHR3byB3b3JkcyBvZiAi
aGVsbG8gPHM+d29ybGQgV2ViS2l0PC9zPiIKKworVGVzdHMgZm9yIG1hYworUEFTUyBxdWVyeUNv
bW1hbmRTdGF0ZSgiYm9sZCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICJo
ZWxsbyIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSByZXR1cm5zIGZhbHNlIHdoZW4g
c2VsZWN0aW5nIGFsbCBvZiAiPGk+aGVsbG88L2k+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgi
Ym9sZCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxiPmhlbGxvPC9iPiIK
K1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0
aW5nIGFsbCBvZiAiaGVsbG8gPGI+d29ybGQ8L2I+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgi
Ym9sZCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxiPmhlbGxvPC9iPiB3
b3JsZCIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoImJvbGQiKSByZXR1cm5zIHRydWUgd2hlbiBz
ZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2YgImhlbGxvIDxiPndvcmxkPC9iPiBXZWJLaXQiCitQQVNT
IHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBz
ZWNvbmQgd29yZCBvZiAiPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4iCitQQVNTIHF1
ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIHNlY29u
ZCB3b3JkIG9mICI8aT5oZWxsbyA8Yj5oZWxsbzwvYj4gV2ViS2l0PC9pPiIKK1BBU1MgcXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiKSByZXR1cm5zIHRydWUgd2hlbiBzZWxlY3Rpbmcgc2Vjb25kIHdv
cmQgb2YgIjxiPmhlbGxvIDxpPmhlbGxvPC9pPiBXZWJLaXQ8L2I+IgorUEFTUyBxdWVyeUNvbW1h
bmRTdGF0ZSgiYm9sZCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBv
ZiAiPGI+PGRpdj5oZWxsbyA8aT5oZWxsbzwvaT4gV2ViS2l0PC9kaXY+PC9iPiIKK1BBU1MgcXVl
cnlDb21tYW5kU3RhdGUoImJvbGQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBv
ZiAiPGIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7Ij5oZWxsbzwvYj4iCitQQVNTIHF1ZXJ5
Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAi
PGkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+aGVsbG88L2k+IgorUEFTUyBxdWVyeUNvbW1h
bmRTdGF0ZSgiYm9sZCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxiPmhl
bGxvPC9iPiB3b3JsZCA8Yj5XZWJLaXQ8L2I+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiYm9s
ZCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxiPmhlbGxvPC9iPjxiPiB3
b3JsZDwvYj4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIikgcmV0dXJucyB0cnVlIHdo
ZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGRpdj48Yj5oZWxsbzwvYj48L2Rpdj48cD48Yj4gV2ViS2l0
PC9iPjwvcD4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFsaWMiKSByZXR1cm5zIGZhbHNl
IHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJp
dGFsaWMiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGI+aGVsbG88L2I+
IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIikgcmV0dXJucyB0cnVlIHdoZW4gc2Vs
ZWN0aW5nIGFsbCBvZiAiPGk+aGVsbG88L2k+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiaXRh
bGljIikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGk+aGVsbG88L2k+IHdv
cmxkIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIikgcmV0dXJucyBmYWxzZSB3aGVu
IHNlbGVjdGluZyBhbGwgb2YgImhlbGxvIDxpPndvcmxkPC9pPiIKK1BBU1MgcXVlcnlDb21tYW5k
U3RhdGUoIml0YWxpYyIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxpPjxk
aXY+aGVsbG8gd29ybGQ8L2Rpdj48L2k+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGlj
IikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPGRpdiBzdHlsZT0iZm9udC1z
dHlsZTogaXRhbGljIj5oZWxsbyA8c3BhbiBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyI+aGVs
bG88L3NwYW4+PC9kaXY+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IikgcmV0
dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgImhlbGxvIgorUEFTUyBxdWVyeUNvbW1h
bmRTdGF0ZSgic3Vic2NyaXB0IikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2Yg
IjxzdXA+aGVsbG88L3N1cD4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQiKSBy
ZXR1cm5zIHRydWUgd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8c3ViPmhlbGxvPC9zdWI+IgorUEFT
UyBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0
aW5nIGFsbCBvZiAiPHN1Yj5oZWxsbzwvc3ViPiB3b3JsZCIKK1BBU1MgcXVlcnlDb21tYW5kU3Rh
dGUoInN1YnNjcmlwdCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICJoZWxs
byA8c3ViPndvcmxkPC9zdWI+IgorRkFJTCBxdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0Iikg
cmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxzdWI+PGRpdj5oZWxsbyB3b3Js
ZDwvZGl2Pjwvc3ViPiIsIGV4cGVjdGVkIHRydWUKK0ZBSUwgcXVlcnlDb21tYW5kU3RhdGUoInN1
YnNjcmlwdCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2YgIjxz
dXA+PHN1Yj48ZGl2PmhlbGxvIHdvcmxkIFdlYktpdDwvZGl2Pjwvc3ViPjwvc3VwPiIsIGV4cGVj
dGVkIHRydWUKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIpIHJldHVybnMgdHJ1
ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxkaXYgc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7
Ij5oZWxsbyB3b3JsZDwvZGl2PiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIp
IHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBvZiAiaGVsbG8gPHNwYW4g
c3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7Ij53b3JsZDwvc3Bhbj4gV2ViS2l0IgorUEFTUyBx
dWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0
aW5nIGFsbCBvZiAiaGVsbG8iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIp
IHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8c3ViPmhlbGxvPC9zdWI+Igor
UEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiKSByZXR1cm5zIHRydWUgd2hlbiBz
ZWxlY3RpbmcgYWxsIG9mICI8c3VwPmhlbGxvPC9zdXA+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0
ZSgic3VwZXJzY3JpcHQiKSByZXR1cm5zIHRydWUgd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8c3Vw
PmhlbGxvPC9zdXA+IHdvcmxkIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQi
KSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8gPHN1cD53b3JsZDwv
c3VwPiIKK0ZBSUwgcXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IikgcmV0dXJucyBmYWxz
ZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgIjxzdXA+PGRpdj5oZWxsbyB3b3JsZDwvZGl2Pjwvc3Vw
PiIsIGV4cGVjdGVkIHRydWUKK0ZBSUwgcXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0Iikg
cmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBvZiAiPHN1cD48c3ViPjxk
aXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9zdWI+PC9zdXA+IiwgZXhwZWN0ZWQgdHJ1ZQor
UEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiKSByZXR1cm5zIHRydWUgd2hlbiBz
ZWxlY3RpbmcgYWxsIG9mICI8c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+aGVs
bG88L3NwYW4+PHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7Ij53b3JsZDwvc3Bhbj4i
CitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIpIHJldHVybnMgZmFsc2Ugd2hl
biBzZWxlY3RpbmcgYWxsIG9mICJoZWxsbzxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3Vw
ZXI7Ij53b3JsZDwvc3Bhbj4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiKSBy
ZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8iCitQQVNTIHF1ZXJ5Q29t
bWFuZFN0YXRlKCJ1bmRlcmxpbmUiKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBv
ZiAiPHM+aGVsbG88L3M+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIikgcmV0
dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPHU+aGVsbG88L3U+IgorUEFTUyBxdWVy
eUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFs
bCBvZiAiPHU+aGVsbG88L3U+IHdvcmxkIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJs
aW5lIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwgb2YgImhlbGxvIDx1Pndvcmxk
PC91PiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIpIHJldHVybnMgdHJ1ZSB3
aGVuIHNlbGVjdGluZyBhbGwgb2YgIjx1PjxkaXY+aGVsbG8gd29ybGQ8L2Rpdj48L3U+IgorUEFT
UyBxdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0
aW5nIHNlY29uZCB3b3JkIG9mICI8dT48cz48ZGl2PmhlbGxvIHdvcmxkIFdlYktpdDwvZGl2Pjwv
cz48L3U+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIikgcmV0dXJucyBmYWxz
ZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29yZCBvZiAiPHM+PHU+aGVsbG88L3U+IHdvcmxkPC9z
PiBXZWJLaXQiCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiKSByZXR1cm5zIHRy
dWUgd2hlbiBzZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2YgIjx1PjxzPmhlbGxvPC9zPiB3b3JsZDwv
dT4gV2ViS2l0IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgidW5kZXJsaW5lIikgcmV0dXJucyB0
cnVlIHdoZW4gc2VsZWN0aW5nIHNlY29uZCB3b3JkIG9mICI8cz5oZWxsbyA8dT53b3JsZDwvcz4g
V2ViS2l0PC91PiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giKSByZXR1
cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiaGVsbG8iCitQQVNTIHF1ZXJ5Q29tbWFu
ZFN0YXRlKCJzdHJpa2VUaHJvdWdoIikgcmV0dXJucyBmYWxzZSB3aGVuIHNlbGVjdGluZyBhbGwg
b2YgIjx1PmhlbGxvPC91PiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2gi
KSByZXR1cm5zIHRydWUgd2hlbiBzZWxlY3RpbmcgYWxsIG9mICI8cz5oZWxsbzwvcz4iCitQQVNT
IHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIikgcmV0dXJucyB0cnVlIHdoZW4gc2Vs
ZWN0aW5nIGFsbCBvZiAiPHM+aGVsbG88L3M+IHdvcmxkIgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0
ZSgic3RyaWtlVGhyb3VnaCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3RpbmcgYWxsIG9mICJo
ZWxsbyA8cz53b3JsZDwvcz4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdo
IikgcmV0dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIGFsbCBvZiAiPHM+PGRpdj5oZWxsbyB3b3Js
ZDwvZGl2Pjwvcz4iCitQQVNTIHF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIikgcmV0
dXJucyB0cnVlIHdoZW4gc2VsZWN0aW5nIHNlY29uZCB3b3JkIG9mICI8cz48dT48ZGl2PmhlbGxv
IHdvcmxkIFdlYktpdDwvZGl2PjwvdT48L3M+IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0ZSgic3Ry
aWtlVGhyb3VnaCIpIHJldHVybnMgZmFsc2Ugd2hlbiBzZWxlY3Rpbmcgc2Vjb25kIHdvcmQgb2Yg
Ijx1PjxzPmhlbGxvPC9zPiB3b3JsZDwvdT4gV2ViS2l0IgorUEFTUyBxdWVyeUNvbW1hbmRTdGF0
ZSgic3RyaWtlVGhyb3VnaCIpIHJldHVybnMgdHJ1ZSB3aGVuIHNlbGVjdGluZyBzZWNvbmQgd29y
ZCBvZiAiaGVsbG8gPHM+d29ybGQgV2ViS2l0PC9zPiIKK1BBU1MgcXVlcnlDb21tYW5kU3RhdGUo
InN0cmlrZVRocm91Z2giKSByZXR1cm5zIGZhbHNlIHdoZW4gc2VsZWN0aW5nIGZpcnN0IHR3byB3
b3JkcyBvZiAiaGVsbG8gPHM+d29ybGQgV2ViS2l0PC9zPiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQoraGVsbG8gd29ybGQgV2ViS2l0CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy9xdWVyeS1jb21tYW5k
LXN0YXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
c2NyaXB0LXRlc3RzL3F1ZXJ5LWNvbW1hbmQtc3RhdGUuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy9xdWVyeS1jb21tYW5kLXN0
YXRlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExOCBAQAorZGVzY3JpcHRpb24oIlRlc3Qg
dG8gbWFrZSBzdXJlIHF1ZXJ5Q29tbWFuZFN0YXRlIHJldHVybnMgY29ycmVjdCB2YWx1ZXMuIikK
KwordmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rl
c3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKK2RvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQodGVzdENvbnRhaW5lcik7CisKK2Z1bmN0aW9uIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZShj
b21tYW5kLCBjb250ZW50cywgc2VsZWN0b3IsIGV4cGVjdGVkU3RhdGUpCit7CisgICAgdGVzdENv
bnRhaW5lci5pbm5lckhUTUwgPSBjb250ZW50czsKKyAgICB2YXIgc2VsZWN0ZWQgPSBzZWxlY3Rv
cih0ZXN0Q29udGFpbmVyKTsKKyAgICB2YXIgYWN0dWFsU3RhdGUgPSBkb2N1bWVudC5xdWVyeUNv
bW1hbmRTdGF0ZShjb21tYW5kKTsKKyAgICB2YXIgYWN0aW9uID0gJ3F1ZXJ5Q29tbWFuZFN0YXRl
KCInICsgY29tbWFuZCArICciKSByZXR1cm5zICcgKyBhY3R1YWxTdGF0ZSArICcgd2hlbiBzZWxl
Y3RpbmcgJyArIHNlbGVjdGVkICsgJyBvZiAiJyArIGNvbnRlbnRzICsgJyInOworICAgIGlmIChh
Y3R1YWxTdGF0ZSA9PT0gZXhwZWN0ZWRTdGF0ZSkKKyAgICAgICAgdGVzdFBhc3NlZChhY3Rpb24p
OworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZChhY3Rpb24gKyAnLCBleHBlY3RlZCAnICsg
ZXhwZWN0ZWRTdGF0ZSArICcnKTsKK30KKworZnVuY3Rpb24gc2VsZWN0QWxsKGNvbnRhaW5lcikg
eworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb250YWluZXIp
OworICAgIHJldHVybiAnYWxsJzsKK30KKworZnVuY3Rpb24gc2VsZWN0U2Vjb25kV29yZChjb250
YWluZXIpIHsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oY29udGFpbmVy
LCAwKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdtb3ZlJywgJ2ZvcndhcmQn
LCAnd29yZCcpOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ21vdmUnLCAnZm9y
d2FyZCcsICd3b3JkJyk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnbW92ZScs
ICdiYWNrd2FyZCcsICd3b3JkJyk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgn
ZXh0ZW5kJywgJ2ZvcndhcmQnLCAnd29yZCcpOworICAgIHJldHVybiAnc2Vjb25kIHdvcmQnOwor
fQorCitmdW5jdGlvbiBzZWxlY3RGaXJzdFR3b1dvcmRzKGNvbnRhaW5lcikgeworICAgIHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihjb250YWluZXIsIDApOworICAgIHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ21vdmUnLCAnZm9yd2FyZCcsICd3b3JkJyk7CisgICAgd2lu
ZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywgJ2ZvcndhcmQnLCAnd29yZCcpOwor
ICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdmb3J3YXJkJywgJ3dv
cmQnKTsKKyAgICByZXR1cm4gJ2ZpcnN0IHR3byB3b3Jkcyc7Cit9CisKK2Z1bmN0aW9uIHJ1blRl
c3RzKGVkaXRpbmdCZWhhdmlvcikgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEVkaXRpbmdCZWhhdmlvcihlZGl0
aW5nQmVoYXZpb3IpOworICAgIGRlYnVnKCdUZXN0cyBmb3IgJyArIGVkaXRpbmdCZWhhdmlvcikK
KworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiYm9sZCIsICdoZWxsbycsIHNlbGVjdEFsbCwg
eydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0
UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGk+aGVsbG88L2k+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgiYm9sZCIsICc8Yj5oZWxsbzwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
dHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1h
bmRTdGF0ZSgiYm9sZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFjJzog
ZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29t
bWFuZFN0YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMn
OiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNv
bW1hbmRTdGF0ZSgiYm9sZCIsICdoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0Jywgc2VsZWN0U2Vj
b25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7Cisg
ICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxiPmhlbGxvPC9iPiB3b3JsZCA8Yj5X
ZWJLaXQ8L2I+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNl
fVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAn
PGk+aGVsbG8gPGI+aGVsbG88L2I+IFdlYktpdDwvaT4nLCBzZWxlY3RTZWNvbmRXb3JkLCB7J21h
Yyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG8gPGk+aGVsbG88L2k+IFdlYktpdDwvYj4nLCBz
ZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGI+PGRpdj5oZWxsbyA8
aT5oZWxsbzwvaT4gV2ViS2l0PC9kaXY+PC9iPicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzog
dHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1h
bmRTdGF0ZSgiYm9sZCIsICc8YiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsiPmhlbGxvPC9i
PicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJvbGQiLCAnPGkgc3R5bGU9ImZvbnQt
d2VpZ2h0OiBib2xkOyI+aGVsbG88L2k+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4n
OiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoImJv
bGQiLCAnPGI+aGVsbG88L2I+IHdvcmxkIDxiPldlYktpdDwvYj4nLCBzZWxlY3RBbGwsIHsnbWFj
JzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlD
b21tYW5kU3RhdGUoImJvbGQiLCAnPGI+aGVsbG88L2I+PGI+IHdvcmxkPC9iPicsIHNlbGVjdEFs
bCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVz
dFF1ZXJ5Q29tbWFuZFN0YXRlKCJib2xkIiwgJzxkaXY+PGI+aGVsbG88L2I+PC9kaXY+PHA+PGI+
IFdlYktpdDwvYj48L3A+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtl
ZGl0aW5nQmVoYXZpb3JdKTsKKworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwg
J2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdC
ZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxiPmhlbGxv
PC9iPicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT5oZWxsbzwv
aT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlv
cl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJzxpPmhlbGxvPC9pPiB3
b3JsZCcsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhh
dmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgiaXRhbGljIiwgJ2hlbGxvIDxpPndv
cmxkPC9pPicsIHNlbGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5n
QmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoIml0YWxpYyIsICc8aT48ZGl2
PmhlbGxvIHdvcmxkPC9kaXY+PC9pPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzog
dHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJpdGFs
aWMiLCAnPGRpdiBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljIj5oZWxsbyA8c3BhbiBzdHlsZT0i
Zm9udC1zdHlsZTogbm9ybWFsOyI+aGVsbG88L3NwYW4+PC9kaXY+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisKKyAgICB0ZXN0UXVl
cnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICdoZWxsbycsIHNlbGVjdEFsbCwgeydtYWMnOiBm
YWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21t
YW5kU3RhdGUoInN1YnNjcmlwdCIsICc8c3VwPmhlbGxvPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21h
Yyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4nLCBzZWxlY3RBbGws
IHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RR
dWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJzxzdWI+aGVsbG88L3N1Yj4gd29ybGQnLCBz
ZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICdoZWxsbyA8c3ViPndvcmxk
PC9zdWI+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdC
ZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3Vic2NyaXB0IiwgJzxzdWI+
PGRpdj5oZWxsbyB3b3JsZDwvZGl2Pjwvc3ViPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAn
d2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRl
KCJzdWJzY3JpcHQiLCAnPHN1cD48c3ViPjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9z
dWI+PC9zdXA+Jywgc2VsZWN0U2Vjb25kV29yZCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdWJzY3JpcHQi
LCAnPGRpdiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsiPmhlbGxvIHdvcmxkPC9kaXY+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1YnNjcmlwdCIsICdoZWxsbyA8c3BhbiBzdHls
ZT0idmVydGljYWwtYWxpZ246IHN1YjsiPndvcmxkPC9zcGFuPiBXZWJLaXQnLCBzZWxlY3RTZWNv
bmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKwor
ICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnaGVsbG8nLCBzZWxlY3RB
bGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAg
dGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3ViPmhlbGxvPC9zdWI+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0p
OworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD5oZWxsbzwv
c3VwPicsIHNlbGVjdEFsbCwgeydtYWMnOiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2
aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIsICc8c3VwPmhl
bGxvPC9zdXA+IHdvcmxkJywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1b
ZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlw
dCIsICdoZWxsbyA8c3VwPndvcmxkPC9zdXA+Jywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgic3VwZXJzY3JpcHQiLCAnPHN1cD48ZGl2PmhlbGxvIHdvcmxkPC9kaXY+PC9zdXA+Jywgc2Vs
ZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAg
ICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN1cGVyc2NyaXB0IiwgJzxzdXA+PHN1Yj48ZGl2Pmhl
bGxvIHdvcmxkIFdlYktpdDwvZGl2Pjwvc3ViPjwvc3VwPicsIHNlbGVjdFNlY29uZFdvcmQsIHsn
bWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVy
eUNvbW1hbmRTdGF0ZSgic3VwZXJzY3JpcHQiLCAnPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiBzdXBlcjsiPmhlbGxvPC9zcGFuPjxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyI+
d29ybGQ8L3NwYW4+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiBmYWxzZX1bZWRp
dGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdXBlcnNjcmlwdCIs
ICdoZWxsbzxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7Ij53b3JsZDwvc3Bhbj4n
LCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbycsIHNl
bGVjdEFsbCwgeydtYWMnOiBmYWxzZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbzwvcz4nLCBz
ZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7
CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+aGVsbG88L3U+Jywg
c2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsK
KyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8dT5oZWxsbzwvdT4gd29y
bGQnLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IGZhbHNlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICdoZWxsbyA8dT53
b3JsZDwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGlu
Z0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+
PGRpdj5oZWxsbyB3b3JsZDwvZGl2PjwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogdHJ1ZSwgJ3dp
bic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgi
dW5kZXJsaW5lIiwgJzx1PjxzPjxkaXY+aGVsbG8gd29ybGQgV2ViS2l0PC9kaXY+PC9zPjwvdT4n
LCBzZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVo
YXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz48dT5o
ZWxsbzwvdT4gd29ybGQ8L3M+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogZmFs
c2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFu
ZFN0YXRlKCJ1bmRlcmxpbmUiLCAnPHU+PHM+aGVsbG88L3M+IHdvcmxkPC91PiBXZWJLaXQnLCBz
ZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInVuZGVybGluZSIsICc8cz5oZWxsbyA8
dT53b3JsZDwvcz4gV2ViS2l0PC91PicsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwg
J3dpbic6IHRydWV9W2VkaXRpbmdCZWhhdmlvcl0pOworCisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0
YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvJywgc2VsZWN0QWxsLCB7J21hYyc6IGZhbHNlLCAn
d2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0
ZSgic3RyaWtlVGhyb3VnaCIsICc8dT5oZWxsbzwvdT4nLCBzZWxlY3RBbGwsIHsnbWFjJzogZmFs
c2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFu
ZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPmhlbGxvPC9zPicsIHNlbGVjdEFsbCwgeydtYWMn
OiB0cnVlLCAnd2luJzogdHJ1ZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29t
bWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPmhlbGxvPC9zPiB3b3JsZCcsIHNlbGVjdEFs
bCwgeydtYWMnOiB0cnVlLCAnd2luJzogZmFsc2V9W2VkaXRpbmdCZWhhdmlvcl0pOworICAgIHRl
c3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICdoZWxsbyA8cz53b3JsZDwvcz4n
LCBzZWxlY3RBbGwsIHsnbWFjJzogZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9y
XSk7CisgICAgdGVzdFF1ZXJ5Q29tbWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJzxzPjxkaXY+
aGVsbG8gd29ybGQ8L2Rpdj48L3M+Jywgc2VsZWN0QWxsLCB7J21hYyc6IHRydWUsICd3aW4nOiB0
cnVlfVtlZGl0aW5nQmVoYXZpb3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlr
ZVRocm91Z2giLCAnPHM+PHU+PGRpdj5oZWxsbyB3b3JsZCBXZWJLaXQ8L2Rpdj48L3U+PC9zPics
IHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzogdHJ1ZSwgJ3dpbic6IHRydWV9W2VkaXRpbmdCZWhh
dmlvcl0pOworICAgIHRlc3RRdWVyeUNvbW1hbmRTdGF0ZSgic3RyaWtlVGhyb3VnaCIsICc8dT48
cz5oZWxsbzwvcz4gd29ybGQ8L3U+IFdlYktpdCcsIHNlbGVjdFNlY29uZFdvcmQsIHsnbWFjJzog
ZmFsc2UsICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7CisgICAgdGVzdFF1ZXJ5Q29t
bWFuZFN0YXRlKCJzdHJpa2VUaHJvdWdoIiwgJ2hlbGxvIDxzPndvcmxkIFdlYktpdDwvcz4nLCBz
ZWxlY3RTZWNvbmRXb3JkLCB7J21hYyc6IHRydWUsICd3aW4nOiB0cnVlfVtlZGl0aW5nQmVoYXZp
b3JdKTsKKyAgICB0ZXN0UXVlcnlDb21tYW5kU3RhdGUoInN0cmlrZVRocm91Z2giLCAnaGVsbG8g
PHM+d29ybGQgV2ViS2l0PC9zPicsIHNlbGVjdEZpcnN0VHdvV29yZHMsIHsnbWFjJzogZmFsc2Us
ICd3aW4nOiBmYWxzZX1bZWRpdGluZ0JlaGF2aW9yXSk7Cit9CisKK3J1blRlc3RzKCd3aW4nKTsK
K2RlYnVnKCcnKQorcnVuVGVzdHMoJ21hYycpOworCisvL2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQodGVzdENvbnRhaW5lcik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="58388"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
          </attachment>
      

    </bug>

</bugzilla>