<?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>13602</bug_id>
          
          <creation_ts>2007-05-06 08:44:46 -0700</creation_ts>
          <short_desc>Amazon product pages keep repainting over and over again</short_desc>
          <delta_ts>2007-05-29 12:49:28 -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>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>mitz</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10947</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 08:44:46 -0700</bug_when>
    <thetext>If you go to an Amazon product page and turn on Quartz Debug, you&apos;ll see the entire page painting over and over again.

This is bad for your computer&apos;s battery!

These pages have a timer that keeps calling setInnerHTML over and over again. The solution to this is to make setInnerHTML more sophisticated about not changing the DOM if the new HTML is the same as what&apos;s already there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10958</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-05-06 12:17:05 -0700</bug_when>
    <thetext>Why is the entire page being repainted? Is it setting the HTML for most of the page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10963</commentid>
    <comment_count>2</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2007-05-06 14:07:02 -0700</bug_when>
    <thetext>innerHTML should always blow away the DOM, though, even if the new value equals the old value. No?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10967</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 16:26:26 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; innerHTML should always blow away the DOM, though, even if the new value equals
&gt; the old value. No?

Why? Is that absolutely necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10968</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 16:28:07 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Why is the entire page being repainted? Is it setting the HTML for most of the
&gt; page?

It&apos;s not really the entire page. More of the page has to be repainted than you might expect because of the reflow algorithm and floats. Hyatt says that with some work we can make it repaint less. Gecko repaints less.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10969</commentid>
    <comment_count>5</comment_count>
      <attachid>14378</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 16:34:29 -0700</bug_when>
    <thetext>Created attachment 14378
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10973</commentid>
    <comment_count>6</comment_count>
      <attachid>14378</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-05-06 17:10:01 -0700</bug_when>
    <thetext>Comment on attachment 14378
patch

Awesome patch, needs layout test though.  Should be able to test with an incremental repaint test right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10974</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-05-06 17:10:46 -0700</bug_when>
    <thetext>Floats cause us to repaint too much.  Line layout is still totally unoptimized for repainting when floats are present. :(
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10975</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 17:15:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Awesome patch, needs layout test though.  Should be able to test with an
&gt; incremental repaint test right?

I don&apos;t know how to write a repaint test.

But I was thinking of instead writing a test to verify that the DOM is not molested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10977</commentid>
    <comment_count>9</comment_count>
      <attachid>14382</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 18:38:26 -0700</bug_when>
    <thetext>Created attachment 14382
patch with test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10978</commentid>
    <comment_count>10</comment_count>
      <attachid>14382</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-05-06 19:26:32 -0700</bug_when>
    <thetext>Comment on attachment 14382
patch with test

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10982</commentid>
    <comment_count>11</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2007-05-06 20:06:53 -0700</bug_when>
    <thetext>&gt; &gt; innerHTML should always blow away the DOM, though, even if the new value 
&gt; &gt; equals the old value. No?
&gt; 
&gt; Why? Is that absolutely necessary?

It would cause all kinds of weird bugs if we didn&apos;t, since it would mean that a DOM script that got a handle to one of the nodes in the tree would find that node was in the Document even when that isn&apos;t expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10984</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 20:22:53 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; &gt; innerHTML should always blow away the DOM, though, even if the new value 
&gt; &gt; &gt; equals the old value. No?
&gt; &gt; 
&gt; &gt; Why? Is that absolutely necessary?
&gt; 
&gt; It would cause all kinds of weird bugs if we didn&apos;t, since it would mean that a
&gt; DOM script that got a handle to one of the nodes in the tree would find that
&gt; node was in the Document even when that isn&apos;t expected.

In theory it might be possible to make that assumption. In practice it seems highly unlikely.

I think that if you change the value of the innerHTML property to a new value and that matches the old value, it&apos;s not reasonable to rely on the fact that setting the property&apos;s value is guaranteed to obliterate the old DOM nodes. And it&apos;s not typical to rely on it one way or another.

Pages that redundantly set innerHTML or innerText without modifying anything are pretty common, so there&apos;s a clear real-world benefit to not mutating the DOM at all, and only a theoretical benefit to guaranteeing all the nodes will be obliterated any time you set the value of the innerHTML/innerText property.

So I think I still like this change.

What will it take to convince you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10989</commentid>
    <comment_count>13</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-05-06 22:46:31 -0700</bug_when>
    <thetext>I have to come down on the side of practicality here.  Do we really want all Amazon product pages repainting every 20ms because we didn&apos;t have this optimization?  I don&apos;t think so. 

Put the optimization in the spec, and then it won&apos;t be ambiguous what happens. :)

My r=me stands.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10991</commentid>
    <comment_count>14</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2007-05-07 00:53:43 -0700</bug_when>
    <thetext>&gt; What will it take to convince you?

Oh I&apos;m convinced that this would be a good optimisation. I&apos;m sure, however, that there are pages that rely on the way IE does this. I guess we&apos;ll find out. (The patch looks more complicated than just comparing innerHTML to itself before setting it, though?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11018</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-07 08:09:18 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization-expected.txt
Adding         LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization.html
Sending        WebCore/ChangeLog
Sending        WebCore/dom/CharacterData.cpp
Sending        WebCore/html/HTMLElement.cpp
Transmitting file data ......
Committed revision 21284.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11022</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-07 09:48:31 -0700</bug_when>
    <thetext>Other layout tests were failing -- I rolled it out until I can figure out why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11025</commentid>
    <comment_count>17</comment_count>
      <attachid>14398</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-07 10:52:50 -0700</bug_when>
    <thetext>Created attachment 14398
new patch, now with passing layout tests (oops!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11026</commentid>
    <comment_count>18</comment_count>
      <attachid>14382</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-07 10:54:02 -0700</bug_when>
    <thetext>Comment on attachment 14382
patch with test

Clearing review flag from this because it broke layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8883</commentid>
    <comment_count>19</comment_count>
      <attachid>14398</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-05-29 01:39:42 -0700</bug_when>
    <thetext>Comment on attachment 14398
new patch, now with passing layout tests (oops!)


In +static bool shallowEqual(Node* a, Node* b) you have a comment:

+            // Don&apos;t bother comparing these node types for now; they don&apos;t typically occur.
+            // Since these functions are used only for optimization, it&apos;s OK to have a false negative.

Some of these node types literally can&apos;t ever appear inside a document tree (at least document, document fragment, and xpath namespace nodes), not sure if it is worth putting a different comment for those.

replaceChildrenWithFragment() codes the algorithm to compare whether children are identical. Would it not be better to factor that out into a contentsAreEqual() function?

The optimizations for replacing a single child and for replacing a sole text child with different text are a bit hard to follow at first. (a) are these really helpful in real cases? (b) could the if statements be coded to use functions that have clear names for what they are checking? Perhaps similar for replaceChildrenWithText.

setOuterHTML also has a deep identical contents check, perhaps refactoring would allow this to be shared with setInnerHTML more.

r=me notwithstanding the style comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8849</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-29 11:19:13 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Some of these node types literally can&apos;t ever appear inside a document tree (at
&gt; least document, document fragment, and xpath namespace nodes), not sure if it
&gt; is worth putting a different comment for those.

I changed the existing comment. The function itself could be used outside a document tree, so I figure it&apos;s not all that different a case.

&gt; replaceChildrenWithFragment() codes the algorithm to compare whether children
&gt; are identical. Would it not be better to factor that out into a
&gt; contentsAreEqual() function?

Done.

&gt; The optimizations for replacing a single child and for replacing a sole text
&gt; child with different text are a bit hard to follow at first. (a) are these
&gt; really helpful in real cases?

I&apos;m not sure. I suspect the &quot;replace text with other text&quot; case is common.

&gt; (b) could the if statements be coded to use
&gt; functions that have clear names for what they are checking? Perhaps similar for
&gt; replaceChildrenWithText.

Done.

&gt; setOuterHTML also has a deep identical contents check, perhaps refactoring
&gt; would allow this to be shared with setInnerHTML more.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8856</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-29 12:49:28 -0700</bug_when>
    <thetext>Committed revision 21861.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14378</attachid>
            <date>2007-05-06 16:34:29 -0700</date>
            <delta_ts>2007-05-06 18:38:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>SetInnerPatch.txt</filename>
            <type>text/plain</type>
            <size>10540</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTI3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDctMDUtMDYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjAyCisgICAgICAgICAg
QW1hem9uIHByb2R1Y3QgcGFnZXMga2VlcCByZXBhaW50aW5nIG92ZXIgYW5kIG92ZXIgYWdhaW4K
KworICAgICAgICBPcHRtaXplIHNldElubmVySFRNTCwgc2V0T3V0ZXJIVE1MLCBhbmQgc2V0SW5u
ZXJUZXh0IHNvIHRoZXkgZG9uJ3QgY2hhbmdlIHRoZSBET00gYXQgYWxsCisgICAgICAgIGlmIHRo
ZXkgZG9uJ3QgbmVlZCB0by4KKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZXF1YWwpOiBBZGRlZC4gSGVscGVyIGZ1bmN0aW9uIHRoYXQgY29tcGFy
ZXMgdHdvIFRleHQgbm9kZXMgb3IgdHdvIE5hbWVkQXR0ck1hcAorICAgICAgICBhdHRyaWJ1dGUg
bWFwcy4KKyAgICAgICAgKFdlYkNvcmU6OnNoYWxsb3dFcXVhbCk6IEFkZGVkLiBIZWxwZXIgZnVu
Y3Rpb24gdGhhdCBjb21wYXJlcyB0d28gRWxlbWVudCBub2RlcyBvciB0d28KKyAgICAgICAgYXJi
aXRyYXJ5IG5vZGVzLgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdt
ZW50KTogQWRkZWQuIEhlbHBlciBmdW5jdGlvbiB1c2VkIGJ5IHNldElubmVySFRNTCBhbmQKKyAg
ICAgICAgc2V0SW5uZXJUZXh0LiBPcHRpbWl6ZXMgdGhlIGNhc2VzIHdoZXJlIGFsbCB0aGUgbm9k
ZXMgYXJlIHRoZSBzYW1lLCB3aGVyZSBib3RoIHRoZSBjdXJyZW50CisgICAgICAgIGFuZCB0aGUg
bmV3IGNvbnRlbnQgYXJlIHNpbmdsZSB0ZXh0IG5vZGVzLCBhbmQgd2hlcmUgdGhlIGN1cnJlbnQg
Y29udGVudCBpcyBhIHNpbmdsZSBub2RlCisgICAgICAgIHRoYXQgY2FuIGJlIHJlcGxhY2VkIHdp
dGggcmVwbGFjZUNoaWxkLgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZUNoaWxkcmVuV2l0aFRl
eHQpOiBBZGRlZC4gSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgc2V0SW5uZXJUZXh0LiBPcHRpbWl6
ZXMKKyAgICAgICAgdGhlIGNhc2Ugd2hlcmUgdGhlIGN1cnJlbnQgY29udGVudCBpcyBhIHNpbmds
ZSB0ZXh0IG5vZGUgb3IgYSBzaW5nbGUgbm9kZSB0aGF0IGNhbiBiZQorICAgICAgICByZXBsYWNl
ZCB3aXRoIHJlcGxhY2VDaGlsZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJ
bm5lckhUTUwpOiBDaGFuZ2VkIHRvIGNhbGwgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50Lgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldE91dGVySFRNTCk6IEFkZGVkIHNwZWNp
YWwgY2FzZSB0byBvcHRpbWl6ZSB3aGVuIHRoZSBuZXcgY29udGVudAorICAgICAgICBleGFjdGx5
IG1hdGNoZXMgdGhlIGN1cnJlbnQgbm9kZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
OjpzZXRJbm5lclRleHQpOiBDaGFuZ2VkIHRvIGNhbGwgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQg
aW4gYSBmZXcKKyAgICAgICAgY2FzZXMgaW5zdGVhZCBvZiBkb2luZyByZW1vdmVDaGlsZHJlbi9h
cHBlbmRDaGlsZC4gQ2hhbmdlZCBjb2RlIHRoYXQgd2FzIHVzaW5nCisgICAgICAgIERlcHJlY2F0
ZWRTdHJpbmcgdG8gaW5zdGVhZCB1c2UgU3RyaW5nLiBDaGFuZ2VkIGdlbmVyYWwgY2FzZSB0byB1
c2UgYSBkb2N1bWVudCBmcmFnbWVudAorICAgICAgICBhbmQgcmVwbGFjZUNoaWxkcmVuV2l0aEZy
YWdtZW50LgorCiAyMDA3LTA1LTA2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAko
cmV2aXNpb24gMjEyNzMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNzQsNyArMjc0LDEyNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IEhUTUxFbGVtZW50CiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBI
VE1MRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyAmaHRtbCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgZXF1YWwoTmFtZWRBdHRyTWFwKiBhLCBOYW1lZEF0
dHJNYXAqIGIpCit7CisgICAgLy8gZW1wdHkgbWFwczsgZW1wdHkgYW5kIG51bGwgbWFwcyBhcmUg
ZXF1aXZhbGVudAorICAgIGlmICghYSkgeworICAgICAgICBpZiAoIWIpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuICFiLT5sZW5ndGgoKTsKKyAgICB9CisgICAgaWYg
KCFiKQorICAgICAgICByZXR1cm4gIWEtPmxlbmd0aCgpOworCisgICAgdW5zaWduZWQgbGVuID0g
YS0+bGVuZ3RoKCk7CisgICAgaWYgKGItPmxlbmd0aCgpICE9IGxlbikKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAg
ICAgIEF0dHJpYnV0ZSogYWEgPSBhLT5hdHRyaWJ1dGVJdGVtKGkpOworICAgICAgICBBdHRyaWJ1
dGUqIGJhID0gYi0+YXR0cmlidXRlSXRlbShpKTsKKyAgICAgICAgaWYgKGFhLT5uYW1lKCkgIT0g
YmEtPm5hbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGFhLT52
YWx1ZSgpICE9IGJhLT52YWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgc2hhbGxvd0VxdWFs
KEVsZW1lbnQqIGEsIEVsZW1lbnQqIGIpCit7CisgICAgcmV0dXJuIGEtPnRhZ1FOYW1lKCkgPT0g
Yi0+dGFnUU5hbWUoKSAmJiBlcXVhbChhLT5hdHRyaWJ1dGVzKGZhbHNlKSwgYi0+YXR0cmlidXRl
cyhmYWxzZSkpOworfQorCitzdGF0aWMgYm9vbCBzaGFsbG93RXF1YWwoTm9kZSogYSwgTm9kZSog
YikKK3sKKyAgICBOb2RlOjpOb2RlVHlwZSB0YSA9IGEtPm5vZGVUeXBlKCk7CisgICAgTm9kZTo6
Tm9kZVR5cGUgdGIgPSBiLT5ub2RlVHlwZSgpOworICAgIGlmICh0YSAhPSB0YikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgc3dpdGNoICh0YSkgeworICAgICAgICBjYXNlIE5vZGU6OkFU
VFJJQlVURV9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6
CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBOb2RlOjpE
T0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6CisgICAg
ICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6
Ok5PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElP
Tl9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgorICAgICAg
ICAgICAgLy8gRG9uJ3QgYm90aGVyIGNvbXBhcmluZyB0aGVzZSBub2RlIHR5cGVzIGZvciBub3c7
IHRoZXkgZG9uJ3QgdHlwaWNhbGx5IG9jY3VyLgorICAgICAgICAgICAgLy8gU2luY2UgdGhlc2Ug
ZnVuY3Rpb25zIGFyZSB1c2VkIG9ubHkgZm9yIG9wdGltaXphdGlvbiwgaXQncyBPSyB0byBoYXZl
IGEgZmFsc2UgbmVnYXRpdmUuCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNh
c2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRf
Tk9ERToKKyAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CisgICAgICAgICAgICByZXR1cm4g
ZXF1YWwoc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YSo+KGEpLT5zdHJpbmcoKSwKKyAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oYiktPnN0cmluZygpKTsKKyAgICAg
ICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CisgICAgICAgICAgICByZXR1cm4gc2hhbGxvd0Vx
dWFsKHN0YXRpY19jYXN0PEVsZW1lbnQqPihhKSwgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGIpKTsK
KyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3N0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChIVE1MRWxlbWVudCog
ZWxlbWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgTm9kZSogZmlyc3RDaGlsZCA9IGVsZW1lbnQtPmZpcnN0Q2hpbGQo
KTsKKyAgICBOb2RlKiBmcmFnbWVudEZpcnN0Q2hpbGQgPSBmcmFnbWVudC0+Zmlyc3RDaGlsZCgp
OworCisgICAgaWYgKCFmcmFnbWVudEZpcnN0Q2hpbGQpIHsKKyAgICAgICAgZWxlbWVudC0+cmVt
b3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5vZGUqIGEgPSBm
aXJzdENoaWxkOworICAgIE5vZGUqIGIgPSBmcmFnbWVudEZpcnN0Q2hpbGQ7CisgICAgd2hpbGUg
KGEgJiYgYikgeworICAgICAgICBpZiAoIXNoYWxsb3dFcXVhbChhLCBiKSkKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBhID0gYS0+dHJhdmVyc2VOZXh0Tm9kZShlbGVtZW50KTsKKyAgICAg
ICAgYiA9IGItPnRyYXZlcnNlTmV4dE5vZGUoZnJhZ21lbnQuZ2V0KCkpOworICAgIH0KKyAgICBp
ZiAoIWEgJiYgIWIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChmaXJzdENoaWxkICYmICFm
aXJzdENoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghZnJhZ21lbnRGaXJzdENo
aWxkLT5uZXh0U2libGluZygpICYmIGZpcnN0Q2hpbGQtPmlzVGV4dE5vZGUoKSAmJiBmcmFnbWVu
dEZpcnN0Q2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VGV4
dCo+KGZpcnN0Q2hpbGQpLT5zZXREYXRhKHN0YXRpY19jYXN0PFRleHQqPihmcmFnbWVudEZpcnN0
Q2hpbGQpLT5zdHJpbmcoKSwgZWMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwgZmlyc3RDaGlsZCwgZWMpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsK
KyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOworfQorCitzdGF0aWMgdm9p
ZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChIVE1MRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBOb2RlKiBmaXJzdENoaWxkID0g
ZWxlbWVudC0+Zmlyc3RDaGlsZCgpOworICAgIGlmIChmaXJzdENoaWxkICYmIGZpcnN0Q2hpbGQt
PmlzVGV4dE5vZGUoKSkgeworICAgICAgICBpZiAoZXF1YWwoc3RhdGljX2Nhc3Q8VGV4dCo+KGZp
cnN0Q2hpbGQpLT5zdHJpbmcoKSwgdGV4dC5pbXBsKCkpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBzdGF0aWNfY2FzdDxUZXh0Kj4oZmlyc3RDaGlsZCktPnNldERhdGEodGV4dCwgZWMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0g
bmV3IFRleHQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgdGV4dCk7CisKKyAgICBpZiAoZmlyc3RDaGls
ZCAmJiAhZmlyc3RDaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBlbGVtZW50LT5yZXBs
YWNlQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxkLCBlYyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOworICAgIGVsZW1l
bnQtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMpOworfQorCit2b2lkIEhUTUxF
bGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVDb250
ZXh0dWFsRnJhZ21lbnQoaHRtbCk7CiAgICAgaWYgKCFmcmFnbWVudCkgewpAQCAtMjgyLDExICs0
MDIsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogQWRkIHNwZWNpYWwgY2FzZSBmb3Igd2hl
biB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdlIGp1c3Qgd2FudCB0byBzZXQgaXRzIHRleHQ/
Ci0gICAgLy8gRklYTUU6IEFkZCBzcGVjaWFsIGNhc2UgZm9yIGNhc2VzIHdoZXJlIHdlIGNhbiB1
c2UgcmVwbGFjZUNoaWxkPwotCi0gICAgcmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBhcHBlbmRDaGls
ZChmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21l
bnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6
OnNldE91dGVySFRNTChjb25zdCBTdHJpbmcgJmh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAt
MzA0LDggKzQyMCwyNSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3Ry
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogQWRkIHNwZWNpYWwgY2Fz
ZSBmb3Igd2hlbiB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdlIGp1c3Qgd2FudCB0byBzZXQg
aXRzIHRleHQ/CiAgICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgaGF2ZSBjb2RlIHRvIG1l
cmdlIG5laWdoYm9yaW5nIHRleHQgbm9kZXMgdGhlIHdheSBzZXRPdXRlclRleHQgZG9lcz8KKwor
ICAgIC8vIENoZWNrIHRvIHNlZSBpZiBjb250ZW50IGlzIGlkZW50aWNhbC4KKyAgICBOb2RlKiBm
cmFnbWVudEZpcnN0Q2hpbGQgPSBmcmFnbWVudC0+Zmlyc3RDaGlsZCgpOworICAgIGlmIChmcmFn
bWVudEZpcnN0Q2hpbGQgJiYgIWZyYWdtZW50Rmlyc3RDaGlsZC0+bmV4dFNpYmxpbmcoKSkgewor
ICAgICAgICBOb2RlKiBuZXh0ID0gbmV4dFNpYmxpbmcoKTsKKworICAgICAgICBOb2RlKiBhID0g
Zmlyc3RDaGlsZCgpOworICAgICAgICBOb2RlKiBiID0gZnJhZ21lbnRGaXJzdENoaWxkOworICAg
ICAgICB3aGlsZSAoYSAhPSBuZXh0ICYmIGIpIHsKKyAgICAgICAgICAgIGlmICghc2hhbGxvd0Vx
dWFsKGEsIGIpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgYSA9IGEtPnRy
YXZlcnNlTmV4dE5vZGUocGFyZW50KTsKKyAgICAgICAgICAgIGIgPSBiLT50cmF2ZXJzZU5leHRO
b2RlKGZyYWdtZW50LmdldCgpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYSA9PSBuZXh0ICYm
ICFiKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHBhcmVudC0+cmVwbGFjZUNo
aWxkKGZyYWdtZW50LnJlbGVhc2UoKSwgdGhpcywgZWMpOwogfQogCkBAIC0zMjUsMTUgKzQ1OCwx
MyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQoY29uc3QgU3RyCiAgICAgfQogCiAg
ICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCB0YWtlIHdoaXRlc3BhY2UgY29sbGFwc2luZyBpbnRv
IGFjY291bnQgYXQgYWxsLgotICAgIC8vIEZJWE1FOiBBZGQgc3BlY2lhbCBjYXNlIGZvciB3aGVu
IHdlIGhhZCBvbmUgdGV4dCBjaGlsZCBhbmQgd2UganVzdCB3YW50IHRvIHNldCBpdHMgdGV4dD8K
LSAgICAvLyBGSVhNRTogQWRkIHNwZWNpYWwgY2FzZSBmb3IgY2FzZXMgd2hlcmUgd2UgY2FuIHVz
ZSByZXBsYWNlQ2hpbGQ/Ci0KLSAgICByZW1vdmVDaGlsZHJlbigpOwogCiAgICAgaWYgKCF0ZXh0
LmNvbnRhaW5zKCdcbicpICYmICF0ZXh0LmNvbnRhaW5zKCdccicpKSB7Ci0gICAgICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKHRleHQuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICByZW1vdmVDaGlsZHJlbigpOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmRD
aGlsZChuZXcgVGV4dChkb2N1bWVudCgpLCB0ZXh0KSwgZWMpOworICAgICAgICB9CisgICAgICAg
IHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KHRoaXMsIHRleHQsIGVjKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMzQzLDE5ICs0NzQsMTkgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5u
ZXJUZXh0KGNvbnN0IFN0cgogICAgIFJlbmRlck9iamVjdCogciA9IHJlbmRlcmVyKCk7CiAgICAg
aWYgKHIgJiYgci0+c3R5bGUoKS0+cHJlc2VydmVOZXdsaW5lKCkpIHsKICAgICAgICAgaWYgKCF0
ZXh0LmNvbnRhaW5zKCdccicpKSB7Ci0gICAgICAgICAgICBhcHBlbmRDaGlsZChuZXcgVGV4dChk
b2N1bWVudCgpLCB0ZXh0KSwgZWMpOworICAgICAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aFRl
eHQodGhpcywgdGV4dCwgZWMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAg
ICAgIC8vIEZJWE1FOiBTdGljayB3aXRoIFN0cmluZyBvbmNlIGl0IGhhcyBhIHJlcGxhY2UgdGhh
dCBjYW4gZG8gdGhpcy4KLSAgICAgICAgRGVwcmVjYXRlZFN0cmluZyB0ZXh0V2l0aENvbnNpc3Rl
bnRMaW5lQnJlYWtzID0gdGV4dC5kZXByZWNhdGVkU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyB0
ZXh0V2l0aENvbnNpc3RlbnRMaW5lQnJlYWtzID0gdGV4dDsKICAgICAgICAgdGV4dFdpdGhDb25z
aXN0ZW50TGluZUJyZWFrcy5yZXBsYWNlKCJcclxuIiwgIlxuIik7CiAgICAgICAgIHRleHRXaXRo
Q29uc2lzdGVudExpbmVCcmVha3MucmVwbGFjZSgnXHInLCAnXG4nKTsKLSAgICAgICAgYXBwZW5k
Q2hpbGQobmV3IFRleHQoZG9jdW1lbnQoKSwgdGV4dFdpdGhDb25zaXN0ZW50TGluZUJyZWFrcyks
IGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQodGhpcywgdGV4dFdpdGhDb25z
aXN0ZW50TGluZUJyZWFrcywgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8g
QWRkIHRleHQgbm9kZXMgYW5kIDxicj4gZWxlbWVudHMuCiAgICAgZWMgPSAwOworICAgIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IG5ldyBEb2N1bWVudEZyYWdtZW50KGRvY3Vt
ZW50KCkpOwogICAgIGludCBsaW5lU3RhcnQgPSAwOwogICAgIFVDaGFyIHByZXYgPSAwOwogICAg
IGludCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOwpAQCAtMzYzLDEyICs0OTQsMTIgQEAgdm9pZCBI
VE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cgogICAgICAgICBVQ2hhciBjID0gdGV4
dFtpXTsKICAgICAgICAgaWYgKGMgPT0gJ1xuJyB8fCBjID09ICdccicpIHsKICAgICAgICAgICAg
IGlmIChpID4gbGluZVN0YXJ0KSB7Ci0gICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQobmV3IFRl
eHQoZG9jdW1lbnQoKSwgdGV4dC5zdWJzdHJpbmcobGluZVN0YXJ0LCBpIC0gbGluZVN0YXJ0KSks
IGVjKTsKKyAgICAgICAgICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobmV3IFRleHQoZG9j
dW1lbnQoKSwgdGV4dC5zdWJzdHJpbmcobGluZVN0YXJ0LCBpIC0gbGluZVN0YXJ0KSksIGVjKTsK
ICAgICAgICAgICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghKGMgPT0gJ1xuJyAmJiBpICE9IDAgJiYgcHJl
diA9PSAnXHInKSkgewotICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKG5ldyBIVE1MQlJFbGVt
ZW50KGRvY3VtZW50KCkpLCBlYyk7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENo
aWxkKG5ldyBIVE1MQlJFbGVtZW50KGRvY3VtZW50KCkpLCBlYyk7CiAgICAgICAgICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0z
NzcsNyArNTA4LDggQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cgog
ICAgICAgICBwcmV2ID0gYzsKICAgICB9CiAgICAgaWYgKGxlbmd0aCA+IGxpbmVTdGFydCkKLSAg
ICAgICAgYXBwZW5kQ2hpbGQobmV3IFRleHQoZG9jdW1lbnQoKSwgdGV4dC5zdWJzdHJpbmcobGlu
ZVN0YXJ0LCBsZW5ndGggLSBsaW5lU3RhcnQpKSwgZWMpOworICAgICAgICBmcmFnbWVudC0+YXBw
ZW5kQ2hpbGQobmV3IFRleHQoZG9jdW1lbnQoKSwgdGV4dC5zdWJzdHJpbmcobGluZVN0YXJ0LCBs
ZW5ndGggLSBsaW5lU3RhcnQpKSwgZWMpOworICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dCh0aGlzLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6
c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCg==
</data>
<flag name="review"
          id="5858"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14382</attachid>
            <date>2007-05-06 18:38:26 -0700</date>
            <delta_ts>2007-05-07 10:54:02 -0700</delta_ts>
            <desc>patch with test</desc>
            <filename>SetInnerPatch.txt</filename>
            <type>text/plain</type>
            <size>24914</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjczKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDUtMDYgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM2MDIKKyAgICAgICAgICBBbWF6b24gcHJvZHVjdCBwYWdlcyBrZWVwIHJlcGFpbnRpbmcgb3Zl
ciBhbmQgb3ZlciBhZ2FpbgorCisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWlu
bmVyLW91dGVyLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbm5lci1vdXRlci1vcHRpbWl6YXRpb24uaHRtbDogQWRk
ZWQuCisKIDIwMDctMDUtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkZWxlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVs
ZW1lbnQvc2V0LWlubmVyLW91dGVyLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWlubmVyLW91dGVyLW9w
dGltaXphdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5uZXItb3V0ZXItb3B0aW1pemF0aW9uLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAorVGhpcyB0ZXN0cyBjYWxscyB0byBzZXRJ
bm5lckhUTUwsIHNldElubmVyVGV4dCwgYW5kIHNldE91dGVySFRNTCB0byBzZWUgd2hhdCBraW5k
IG9mIERPTSBtb2RpZmljYXRpb25zIHRoZXkgY2F1c2UuIFRoZSBjYWxscyBhcmUgb3B0aW1pemVk
IHRvIG5vdCBkbyBhbnkgd29yayBpbiBjYXNlcyB3aGVyZSB0aGUgRE9NIHdvdWxkIG5vdCBjaGFu
Z2UgYXQgYWxsLgorCitQQVNTOiBzdGFydGluZyB3aXRoICIiLCBzZXR0aW5nIGlubmVySFRNTCB0
byAiIgorUEFTUzogc3RhcnRpbmcgd2l0aCAiIiwgc2V0dGluZyBpbm5lckhUTUwgdG8gInRleHQi
CitQQVNTOiBzdGFydGluZyB3aXRoICIiLCBzZXR0aW5nIGlubmVySFRNTCB0byAiPGE+PC9hPiIK
K1BBU1M6IHN0YXJ0aW5nIHdpdGggIiIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICI8YT48L2E+PGI+
PC9iPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggInRleHQiLCBzZXR0aW5nIGlubmVySFRNTCB0byAi
IgorUEFTUzogc3RhcnRpbmcgd2l0aCAidGV4dCIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICJkaWZm
ZXJlbnQgdGV4dCIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggInRleHQiLCBzZXR0aW5nIGlubmVySFRN
TCB0byAidGV4dCIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggInRleHQiLCBzZXR0aW5nIGlubmVySFRN
TCB0byAiPGE+PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggInRleHQiLCBzZXR0aW5nIGlubmVy
SFRNTCB0byAiPGE+PC9hPjxiPjwvYj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8YT48L2E+Iiwg
c2V0dGluZyBpbm5lckhUTUwgdG8gIiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhPjwvYT4iLCBz
ZXR0aW5nIGlubmVySFRNTCB0byAidGV4dCIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhPjwvYT4i
LCBzZXR0aW5nIGlubmVySFRNTCB0byAiPGE+PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxh
PjwvYT4iLCBzZXR0aW5nIGlubmVySFRNTCB0byAiPGEgaHJlZj0nJz48L2E+IgorUEFTUzogc3Rh
cnRpbmcgd2l0aCAiPGE+PC9hPiIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICI8YT50ZXh0PC9hPiIK
K1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhPjwvYT4iLCBzZXR0aW5nIGlubmVySFRNTCB0byAiPGE+
PC9hPjxiPjwvYj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8YT50ZXh0PC9hPiIsIHNldHRpbmcg
aW5uZXJIVE1MIHRvICI8YT50ZXh0PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhPnRleHQ8
L2E+Iiwgc2V0dGluZyBpbm5lckhUTUwgdG8gIjxhPmRpZmZlcmVudCB0ZXh0PC9hPiIKK1BBU1M6
IHN0YXJ0aW5nIHdpdGggIjxhIGhyZWY9J2InPjwvYT4iLCBzZXR0aW5nIGlubmVySFRNTCB0byAi
PGEgbmFtZT0nYycgaHJlZj0nYic+PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhIGhyZWY9
J2InIG5hbWU9J2MnPjwvYT4iLCBzZXR0aW5nIGlubmVySFRNTCB0byAiPGEgaHJlZj0nYicgbmFt
ZT0nYyc+PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhIGhyZWY9J2InIG5hbWU9J2MnPjwv
YT4iLCBzZXR0aW5nIGlubmVySFRNTCB0byAiPGEgbmFtZT0nYycgaHJlZj0nYic+PC9hPiIKK1BB
U1M6IHN0YXJ0aW5nIHdpdGggIiIsIHNldHRpbmcgaW5uZXJUZXh0IHRvICIiCitQQVNTOiBzdGFy
dGluZyB3aXRoICIiLCBzZXR0aW5nIGlubmVyVGV4dCB0byAidGV4dCIKK1BBU1M6IHN0YXJ0aW5n
IHdpdGggIiIsIHNldHRpbmcgaW5uZXJUZXh0IHRvICI8YT48L2E+IgorUEFTUzogc3RhcnRpbmcg
d2l0aCAiIiwgc2V0dGluZyBpbm5lclRleHQgdG8gIjxhPjwvYT48Yj48L2I+IgorUEFTUzogc3Rh
cnRpbmcgd2l0aCAidGV4dCIsIHNldHRpbmcgaW5uZXJUZXh0IHRvICIiCitQQVNTOiBzdGFydGlu
ZyB3aXRoICJ0ZXh0Iiwgc2V0dGluZyBpbm5lclRleHQgdG8gImRpZmZlcmVudCB0ZXh0IgorUEFT
Uzogc3RhcnRpbmcgd2l0aCAidGV4dCIsIHNldHRpbmcgaW5uZXJUZXh0IHRvICJ0ZXh0IgorUEFT
Uzogc3RhcnRpbmcgd2l0aCAiPGE+PC9hPiIsIHNldHRpbmcgaW5uZXJUZXh0IHRvICIiCitQQVNT
OiBzdGFydGluZyB3aXRoICI8YT48L2E+Iiwgc2V0dGluZyBpbm5lclRleHQgdG8gInRleHQiCitQ
QVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICIi
CitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRv
ICJ0ZXh0IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj48L2Rpdj4iLCBzZXR0aW5nIG91dGVy
SFRNTCB0byAiPGE+PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PC9kaXY+Iiwgc2V0
dGluZyBvdXRlckhUTUwgdG8gIjxhPjwvYT48Yj48L2I+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAi
PGRpdj48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj48L2Rpdj4iCitQQVNTOiBz
dGFydGluZyB3aXRoICI8ZGl2PjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8ZGl2PnRl
eHQ8L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjwvZGl2PiIsIHNldHRpbmcgb3V0
ZXJIVE1MIHRvICI8ZGl2PjxhPjwvYT48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2
PjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8ZGl2PjxhPjwvYT48Yj48L2I+PC9kaXY+
IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj50ZXh0PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhU
TUwgdG8gIiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+dGV4dDwvZGl2PiIsIHNldHRpbmcg
b3V0ZXJIVE1MIHRvICJ0ZXh0IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj50ZXh0PC9kaXY+
Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxhPjwvYT4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8
ZGl2PnRleHQ8L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGE+PC9hPjxiPjwvYj4iCitQ
QVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PnRleHQ8L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0
byAiPGRpdj48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PnRleHQ8L2Rpdj4iLCBz
ZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj50ZXh0PC9kaXY+IgorUEFTUzogc3RhcnRpbmcgd2l0
aCAiPGRpdj50ZXh0PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxkaXY+ZGlmZmVyZW50
IHRleHQ8L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PnRleHQ8L2Rpdj4iLCBzZXR0
aW5nIG91dGVySFRNTCB0byAiPGRpdj48YT48L2E+PC9kaXY+IgorUEFTUzogc3RhcnRpbmcgd2l0
aCAiPGRpdj50ZXh0PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxkaXY+PGE+PC9hPjxi
PjwvYj48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCBz
ZXR0aW5nIG91dGVySFRNTCB0byAiIgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj48YT48L2E+
PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gInRleHQiCitQQVNTOiBzdGFydGluZyB3aXRo
ICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGE+PC9hPiIKK1BB
U1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1M
IHRvICI8YSBocmVmPScnPjwvYT4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjxhPjwvYT48
L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGE+dGV4dDwvYT4iCitQQVNTOiBzdGFydGlu
ZyB3aXRoICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGE+PC9h
PjxiPjwvYj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCBzZXR0
aW5nIG91dGVySFRNTCB0byAiPGRpdj48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2
PjxhPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj50ZXh0PC9kaXY+Igor
UEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj48YT48L2E+PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhU
TUwgdG8gIjxkaXY+ZGlmZmVyZW50IHRleHQ8L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8
ZGl2PjxhPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj48YT48L2E+PC9k
aXY+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj48YT48L2E+PC9kaXY+Iiwgc2V0dGluZyBv
dXRlckhUTUwgdG8gIjxkaXY+PGE+PC9hPjxiPjwvYj48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3
aXRoICI8ZGl2PjxhPnRleHQ8L2E+PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxkaXY+
PGE+dGV4dDwvYT48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjxhPnRleHQ8L2E+
PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxkaXY+PGE+ZGlmZmVyZW50IHRleHQ8L2E+
PC9kaXY+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj48YSBocmVmPSdiJz48L2E+PC9kaXY+
Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxkaXY+PGEgbmFtZT0nYycgaHJlZj0nYic+PC9hPjwv
ZGl2PiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGEgaHJlZj0nYicgbmFtZT0nYyc+PC9h
PjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8ZGl2PjxhIGhyZWY9J2InIG5hbWU9J2Mn
PjwvYT48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjxhIGhyZWY9J2InIG5hbWU9
J2MnPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj48YSBuYW1lPSdjJyBo
cmVmPSdiJz48L2E+PC9kaXY+IgorQUxMIFRFU1RTIFBBU1NFRAorCisKClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbm5lci1vdXRlci1v
cHRpbWl6YXRpb24tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQog
ICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1p
bm5lci1vdXRlci1vcHRpbWl6YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5uZXItb3V0ZXItb3B0aW1pemF0aW9uLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5uZXIt
b3V0ZXItb3B0aW1pemF0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTY0IEBACis8
aHRtbD4KKworPGhlYWQ+CisKKzxzY3JpcHQ+CisKK3ZhciBtb2RpZmllZDsKK3ZhciBvbGRFbGVt
ZW50OwordmFyIG9sZENvbnRlbnQ7Cit2YXIgZmFpbHVyZUNvdW50ID0gMDsKKworZnVuY3Rpb24g
c2V0TW9kaWZpZWRGbGFnKCkKK3sKKyAgICBtb2RpZmllZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9u
IHByaW50KG1lc3NhZ2UpCit7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNz
YWdlKSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdHMiKS5hcHBlbmRDaGls
ZChkaXYpOworfQorCitmdW5jdGlvbiBzdW1tYXJpemVSZXN1bHQoKQoreworICAgIGlmICghbW9k
aWZpZWQpCisgICAgICAgIHJldHVybiAibm90IG1vZGlmaWVkIjsKKyAgICB2YXIgcGFyZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpOworICAgIGlmIChwYXJlbnQuZmlyc3RD
aGlsZCAhPT0gb2xkRWxlbWVudCkKKyAgICAgICAgcmV0dXJuICJyZXBsYWNlZCI7CisgICAgaWYg
KG9sZEVsZW1lbnQuZmlyc3RDaGlsZCAhPT0gb2xkQ29udGVudCkKKyAgICAgICAgcmV0dXJuICJt
b2RpZmllZCI7CisgICAgcmV0dXJuICJtb2RpZmllZCwgd2l0aCBzYW1lIGZpcnN0IGNoaWxkIjsK
K30KKworZnVuY3Rpb24gcnVuVGVzdChtYXJrdXAsIHByb3BlcnR5TmFtZSwgbmV3VmFsdWUsIGV4
cGVjdGVkUmVzdWx0KQoreworICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicGFyZW50Iik7CisgICAgcGFyZW50LmlubmVySFRNTCA9ICI8ZGl2PiIgKyBtYXJrdXAgKyAi
PC9kaXY+IjsKKyAgICBtb2RpZmllZCA9IGZhbHNlOworICAgIG9sZEVsZW1lbnQgPSBwYXJlbnQu
Zmlyc3RDaGlsZDsKKyAgICBvbGRDb250ZW50ID0gcGFyZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGls
ZDsKKyAgICBwYXJlbnQuZmlyc3RDaGlsZFtwcm9wZXJ0eU5hbWVdID0gbmV3VmFsdWU7CisgICAg
dmFyIHJlc3VsdCA9IHN1bW1hcml6ZVJlc3VsdCgpOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
Im91dGVySFRNTCIpCisgICAgICAgIG1hcmt1cCA9ICI8ZGl2PiIgKyBtYXJrdXAgKyAiPC9kaXY+
IjsKKyAgICB0ZXN0TmFtZSA9ICdzdGFydGluZyB3aXRoICInICsgbWFya3VwICsgJyIsIHNldHRp
bmcgJyArIHByb3BlcnR5TmFtZSArICcgdG8gIicgKyBuZXdWYWx1ZSArICciJzsKKyAgICBpZiAo
cmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KQorICAgICAgICBwcmludCgiUEFTUzogIiArIHRlc3RO
YW1lKTsKKyAgICBlbHNlIHsKKyAgICAgICAgcHJpbnQoIkZBSUw6ICIgKyB0ZXN0TmFtZSArICIg
LS0gIiArIHJlc3VsdCArICIsIGJ1dCBleHBlY3RlZCAiICsgZXhwZWN0ZWRSZXN1bHQpOworICAg
ICAgICArK2ZhaWx1cmVDb3VudDsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicGFyZW50Iik7CisgICAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTVN1YnRy
ZWVNb2RpZmllZCIsIHNldE1vZGlmaWVkRmxhZywgdHJ1ZSk7CisKKyAgICBydW5UZXN0KCIiLCAi
aW5uZXJIVE1MIiwgIiIsICJub3QgbW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCIiLCAiaW5uZXJI
VE1MIiwgInRleHQiLCAibW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCIiLCAiaW5uZXJIVE1MIiwg
IjxhPjwvYT4iLCAibW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCIiLCAiaW5uZXJIVE1MIiwgIjxh
PjwvYT48Yj48L2I+IiwgIm1vZGlmaWVkIik7CisKKyAgICBydW5UZXN0KCJ0ZXh0IiwgImlubmVy
SFRNTCIsICIiLCAibW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCJ0ZXh0IiwgImlubmVySFRNTCIs
ICJkaWZmZXJlbnQgdGV4dCIsICJtb2RpZmllZCwgd2l0aCBzYW1lIGZpcnN0IGNoaWxkIik7Cisg
ICAgcnVuVGVzdCgidGV4dCIsICJpbm5lckhUTUwiLCAidGV4dCIsICJub3QgbW9kaWZpZWQiKTsK
KyAgICBydW5UZXN0KCJ0ZXh0IiwgImlubmVySFRNTCIsICI8YT48L2E+IiwgIm1vZGlmaWVkIik7
CisgICAgcnVuVGVzdCgidGV4dCIsICJpbm5lckhUTUwiLCAiPGE+PC9hPjxiPjwvYj4iLCAibW9k
aWZpZWQiKTsKKworICAgIHJ1blRlc3QoIjxhPjwvYT4iLCAiaW5uZXJIVE1MIiwgIiIsICJtb2Rp
ZmllZCIpOworICAgIHJ1blRlc3QoIjxhPjwvYT4iLCAiaW5uZXJIVE1MIiwgInRleHQiLCAibW9k
aWZpZWQiKTsKKyAgICBydW5UZXN0KCI8YT48L2E+IiwgImlubmVySFRNTCIsICI8YT48L2E+Iiwg
Im5vdCBtb2RpZmllZCIpOworICAgIHJ1blRlc3QoIjxhPjwvYT4iLCAiaW5uZXJIVE1MIiwgIjxh
IGhyZWY9Jyc+PC9hPiIsICJtb2RpZmllZCIpOworICAgIHJ1blRlc3QoIjxhPjwvYT4iLCAiaW5u
ZXJIVE1MIiwgIjxhPnRleHQ8L2E+IiwgIm1vZGlmaWVkIik7CisgICAgcnVuVGVzdCgiPGE+PC9h
PiIsICJpbm5lckhUTUwiLCAiPGE+PC9hPjxiPjwvYj4iLCAibW9kaWZpZWQiKTsKKworICAgIHJ1
blRlc3QoIjxhPnRleHQ8L2E+IiwgImlubmVySFRNTCIsICI8YT50ZXh0PC9hPiIsICJub3QgbW9k
aWZpZWQiKTsKKyAgICBydW5UZXN0KCI8YT50ZXh0PC9hPiIsICJpbm5lckhUTUwiLCAiPGE+ZGlm
ZmVyZW50IHRleHQ8L2E+IiwgIm1vZGlmaWVkIik7CisKKyAgICBydW5UZXN0KCI8YSBocmVmPSdi
Jz48L2E+IiwgImlubmVySFRNTCIsICI8YSBuYW1lPSdjJyBocmVmPSdiJz48L2E+IiwgIm1vZGlm
aWVkIik7CisgICAgcnVuVGVzdCgiPGEgaHJlZj0nYicgbmFtZT0nYyc+PC9hPiIsICJpbm5lckhU
TUwiLCAiPGEgaHJlZj0nYicgbmFtZT0nYyc+PC9hPiIsICJub3QgbW9kaWZpZWQiKTsKKyAgICBy
dW5UZXN0KCI8YSBocmVmPSdiJyBuYW1lPSdjJz48L2E+IiwgImlubmVySFRNTCIsICI8YSBuYW1l
PSdjJyBocmVmPSdiJz48L2E+IiwgIm1vZGlmaWVkIik7CisKKyAgICBydW5UZXN0KCIiLCAiaW5u
ZXJUZXh0IiwgIiIsICJub3QgbW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCIiLCAiaW5uZXJUZXh0
IiwgInRleHQiLCAibW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCIiLCAiaW5uZXJUZXh0IiwgIjxh
PjwvYT4iLCAibW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCIiLCAiaW5uZXJUZXh0IiwgIjxhPjwv
YT48Yj48L2I+IiwgIm1vZGlmaWVkIik7CisKKyAgICBydW5UZXN0KCJ0ZXh0IiwgImlubmVyVGV4
dCIsICIiLCAibW9kaWZpZWQiKTsKKyAgICBydW5UZXN0KCJ0ZXh0IiwgImlubmVyVGV4dCIsICJk
aWZmZXJlbnQgdGV4dCIsICJtb2RpZmllZCwgd2l0aCBzYW1lIGZpcnN0IGNoaWxkIik7CisgICAg
cnVuVGVzdCgidGV4dCIsICJpbm5lclRleHQiLCAidGV4dCIsICJub3QgbW9kaWZpZWQiKTsKKwor
ICAgIHJ1blRlc3QoIjxhPjwvYT4iLCAiaW5uZXJUZXh0IiwgIiIsICJtb2RpZmllZCIpOworICAg
IHJ1blRlc3QoIjxhPjwvYT4iLCAiaW5uZXJUZXh0IiwgInRleHQiLCAibW9kaWZpZWQiKTsKKwor
ICAgIHJ1blRlc3QoIiIsICJvdXRlckhUTUwiLCAiIiwgInJlcGxhY2VkIik7CisgICAgcnVuVGVz
dCgiIiwgIm91dGVySFRNTCIsICJ0ZXh0IiwgInJlcGxhY2VkIik7CisgICAgcnVuVGVzdCgiIiwg
Im91dGVySFRNTCIsICI8YT48L2E+IiwgInJlcGxhY2VkIik7CisgICAgcnVuVGVzdCgiIiwgIm91
dGVySFRNTCIsICI8YT48L2E+PGI+PC9iPiIsICJyZXBsYWNlZCIpOworICAgIHJ1blRlc3QoIiIs
ICJvdXRlckhUTUwiLCAiPGRpdj48L2Rpdj4iLCAibm90IG1vZGlmaWVkIik7CisgICAgcnVuVGVz
dCgiIiwgIm91dGVySFRNTCIsICI8ZGl2PnRleHQ8L2Rpdj4iLCAicmVwbGFjZWQiKTsKKyAgICBy
dW5UZXN0KCIiLCAib3V0ZXJIVE1MIiwgIjxkaXY+PGE+PC9hPjwvZGl2PiIsICJyZXBsYWNlZCIp
OworICAgIHJ1blRlc3QoIiIsICJvdXRlckhUTUwiLCAiPGRpdj48YT48L2E+PGI+PC9iPjwvZGl2
PiIsICJyZXBsYWNlZCIpOworCisgICAgcnVuVGVzdCgidGV4dCIsICJvdXRlckhUTUwiLCAiIiwg
InJlcGxhY2VkIik7CisgICAgcnVuVGVzdCgidGV4dCIsICJvdXRlckhUTUwiLCAidGV4dCIsICJy
ZXBsYWNlZCIpOworICAgIHJ1blRlc3QoInRleHQiLCAib3V0ZXJIVE1MIiwgIjxhPjwvYT4iLCAi
cmVwbGFjZWQiKTsKKyAgICBydW5UZXN0KCJ0ZXh0IiwgIm91dGVySFRNTCIsICI8YT48L2E+PGI+
PC9iPiIsICJyZXBsYWNlZCIpOworICAgIHJ1blRlc3QoInRleHQiLCAib3V0ZXJIVE1MIiwgIjxk
aXY+PC9kaXY+IiwgInJlcGxhY2VkIik7CisgICAgcnVuVGVzdCgidGV4dCIsICJvdXRlckhUTUwi
LCAiPGRpdj50ZXh0PC9kaXY+IiwgIm5vdCBtb2RpZmllZCIpOworICAgIHJ1blRlc3QoInRleHQi
LCAib3V0ZXJIVE1MIiwgIjxkaXY+ZGlmZmVyZW50IHRleHQ8L2Rpdj4iLCAicmVwbGFjZWQiKTsK
KyAgICBydW5UZXN0KCJ0ZXh0IiwgIm91dGVySFRNTCIsICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCAi
cmVwbGFjZWQiKTsKKyAgICBydW5UZXN0KCJ0ZXh0IiwgIm91dGVySFRNTCIsICI8ZGl2PjxhPjwv
YT48Yj48L2I+PC9kaXY+IiwgInJlcGxhY2VkIik7CisKKyAgICBydW5UZXN0KCI8YT48L2E+Iiwg
Im91dGVySFRNTCIsICIiLCAicmVwbGFjZWQiKTsKKyAgICBydW5UZXN0KCI8YT48L2E+IiwgIm91
dGVySFRNTCIsICJ0ZXh0IiwgInJlcGxhY2VkIik7CisgICAgcnVuVGVzdCgiPGE+PC9hPiIsICJv
dXRlckhUTUwiLCAiPGE+PC9hPiIsICJyZXBsYWNlZCIpOworICAgIHJ1blRlc3QoIjxhPjwvYT4i
LCAib3V0ZXJIVE1MIiwgIjxhIGhyZWY9Jyc+PC9hPiIsICJyZXBsYWNlZCIpOworICAgIHJ1blRl
c3QoIjxhPjwvYT4iLCAib3V0ZXJIVE1MIiwgIjxhPnRleHQ8L2E+IiwgInJlcGxhY2VkIik7Cisg
ICAgcnVuVGVzdCgiPGE+PC9hPiIsICJvdXRlckhUTUwiLCAiPGE+PC9hPjxiPjwvYj4iLCAicmVw
bGFjZWQiKTsKKyAgICBydW5UZXN0KCI8YT48L2E+IiwgIm91dGVySFRNTCIsICI8ZGl2PjwvZGl2
PiIsICJyZXBsYWNlZCIpOworICAgIHJ1blRlc3QoIjxhPjwvYT4iLCAib3V0ZXJIVE1MIiwgIjxk
aXY+dGV4dDwvZGl2PiIsICJyZXBsYWNlZCIpOworICAgIHJ1blRlc3QoIjxhPjwvYT4iLCAib3V0
ZXJIVE1MIiwgIjxkaXY+ZGlmZmVyZW50IHRleHQ8L2Rpdj4iLCAicmVwbGFjZWQiKTsKKyAgICBy
dW5UZXN0KCI8YT48L2E+IiwgIm91dGVySFRNTCIsICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCAibm90
IG1vZGlmaWVkIik7CisgICAgcnVuVGVzdCgiPGE+PC9hPiIsICJvdXRlckhUTUwiLCAiPGRpdj48
YT48L2E+PGI+PC9iPjwvZGl2PiIsICJyZXBsYWNlZCIpOworCisgICAgcnVuVGVzdCgiPGE+dGV4
dDwvYT4iLCAib3V0ZXJIVE1MIiwgIjxkaXY+PGE+dGV4dDwvYT48L2Rpdj4iLCAibm90IG1vZGlm
aWVkIik7CisgICAgcnVuVGVzdCgiPGE+dGV4dDwvYT4iLCAib3V0ZXJIVE1MIiwgIjxkaXY+PGE+
ZGlmZmVyZW50IHRleHQ8L2E+PC9kaXY+IiwgInJlcGxhY2VkIik7CisKKyAgICBydW5UZXN0KCI8
YSBocmVmPSdiJz48L2E+IiwgIm91dGVySFRNTCIsICI8ZGl2PjxhIG5hbWU9J2MnIGhyZWY9J2In
PjwvYT48L2Rpdj4iLCAicmVwbGFjZWQiKTsKKyAgICBydW5UZXN0KCI8YSBocmVmPSdiJyBuYW1l
PSdjJz48L2E+IiwgIm91dGVySFRNTCIsICI8ZGl2PjxhIGhyZWY9J2InIG5hbWU9J2MnPjwvYT48
L2Rpdj4iLCAibm90IG1vZGlmaWVkIik7CisgICAgcnVuVGVzdCgiPGEgaHJlZj0nYicgbmFtZT0n
Yyc+PC9hPiIsICJvdXRlckhUTUwiLCAiPGRpdj48YSBuYW1lPSdjJyBocmVmPSdiJz48L2E+PC9k
aXY+IiwgInJlcGxhY2VkIik7CisKKyAgICBwYXJlbnQub3V0ZXJIVE1MID0gIiI7CisKKyAgICBp
ZiAoZmFpbHVyZUNvdW50ID09IDApCisgICAgICAgIHByaW50KCJBTEwgVEVTVFMgUEFTU0VEIik7
CisgICAgZWxzZQorICAgICAgICBwcmludChmYWlsdXJlQ291bnQgKyAiVEVTVFMgRkFJTEVEIik7
Cit9CisKKzwvc2NyaXB0PgorCis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKwor
PHA+CisgICAgVGhpcyB0ZXN0cyBjYWxscyB0byBzZXRJbm5lckhUTUwsIHNldElubmVyVGV4dCwg
YW5kIHNldE91dGVySFRNTCB0byBzZWUgd2hhdCBraW5kIG9mIERPTSBtb2RpZmljYXRpb25zIHRo
ZXkgY2F1c2UuCisgICAgVGhlIGNhbGxzIGFyZSBvcHRpbWl6ZWQgdG8gbm90IGRvIGFueSB3b3Jr
IGluIGNhc2VzIHdoZXJlIHRoZSBET00gd291bGQgbm90IGNoYW5nZSBhdCBhbGwuCis8L3A+CisK
KzxwIGlkPSJyZXN1bHRzIj48L3A+CisKKzxkaXYgaWQ9InBhcmVudCI+PC9kaXY+CisKKzwvYm9k
eT4KKworPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTEVsZW1lbnQvc2V0LWlubmVyLW91dGVyLW9wdGltaXphdGlvbi5odG1sCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbApOYW1lOiBzdm46ZW9sLXN0eWxlCiAg
ICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjc2KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzOSBAQAorMjAwNy0wNS0wNiAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgLSBmaXggaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDIK
KyAgICAgICAgICBBbWF6b24gcHJvZHVjdCBwYWdlcyBrZWVwIHJlcGFpbnRpbmcgb3ZlciBhbmQg
b3ZlciBhZ2FpbgorCisgICAgICAgIE9wdGltaXplIHNldElubmVySFRNTCwgc2V0T3V0ZXJIVE1M
LCBhbmQgc2V0SW5uZXJUZXh0IHNvIHRoZXkgZG9uJ3QgY2hhbmdlIHRoZSBET00gYXQgYWxsCisg
ICAgICAgIGlmIHRoZXkgZG9uJ3QgbmVlZCB0by4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9I
VE1MRWxlbWVudC9zZXQtaW5uZXItb3V0ZXItb3B0aW1pemF0aW9uLmh0bWwKKworICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXF1YWwpOiBBZGRlZC4g
SGVscGVyIGZ1bmN0aW9uIHRoYXQgY29tcGFyZXMgdHdvIFRleHQgbm9kZXMgb3IgdHdvIE5hbWVk
QXR0ck1hcAorICAgICAgICBhdHRyaWJ1dGUgbWFwcy4KKyAgICAgICAgKFdlYkNvcmU6OnNoYWxs
b3dFcXVhbCk6IEFkZGVkLiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBjb21wYXJlcyB0d28gRWxlbWVu
dCBub2RlcyBvciB0d28KKyAgICAgICAgYXJiaXRyYXJ5IG5vZGVzLgorICAgICAgICAoV2ViQ29y
ZTo6cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KTogQWRkZWQuIEhlbHBlciBmdW5jdGlvbiB1
c2VkIGJ5IHNldElubmVySFRNTCBhbmQKKyAgICAgICAgc2V0SW5uZXJUZXh0LiBPcHRpbWl6ZXMg
dGhlIGNhc2VzIHdoZXJlIGFsbCB0aGUgbm9kZXMgYXJlIHRoZSBzYW1lLCB3aGVyZSBib3RoIHRo
ZSBjdXJyZW50CisgICAgICAgIGFuZCB0aGUgbmV3IGNvbnRlbnQgYXJlIHNpbmdsZSB0ZXh0IG5v
ZGVzLCBhbmQgd2hlcmUgdGhlIGN1cnJlbnQgY29udGVudCBpcyBhIHNpbmdsZSBub2RlCisgICAg
ICAgIHRoYXQgY2FuIGJlIHJlcGxhY2VkIHdpdGggcmVwbGFjZUNoaWxkLgorICAgICAgICAoV2Vi
Q29yZTo6cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQpOiBBZGRlZC4gSGVscGVyIGZ1bmN0aW9uIHVz
ZWQgYnkgc2V0SW5uZXJUZXh0LiBPcHRpbWl6ZXMKKyAgICAgICAgdGhlIGNhc2Ugd2hlcmUgdGhl
IGN1cnJlbnQgY29udGVudCBpcyBhIHNpbmdsZSB0ZXh0IG5vZGUgb3IgYSBzaW5nbGUgbm9kZSB0
aGF0IGNhbiBiZQorICAgICAgICByZXBsYWNlZCB3aXRoIHJlcGxhY2VDaGlsZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwpOiBDaGFuZ2VkIHRvIGNhbGwgcmVw
bGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6
OnNldE91dGVySFRNTCk6IEFkZGVkIHNwZWNpYWwgY2FzZSB0byBvcHRpbWl6ZSB3aGVuIHRoZSBu
ZXcgY29udGVudAorICAgICAgICBleGFjdGx5IG1hdGNoZXMgdGhlIGN1cnJlbnQgbm9kZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQpOiBDaGFuZ2VkIHRvIGNh
bGwgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQgaW4gYSBmZXcKKyAgICAgICAgY2FzZXMgaW5zdGVh
ZCBvZiBkb2luZyByZW1vdmVDaGlsZHJlbi9hcHBlbmRDaGlsZC4gQ2hhbmdlZCBjb2RlIHRoYXQg
d2FzIHVzaW5nCisgICAgICAgIERlcHJlY2F0ZWRTdHJpbmcgdG8gaW5zdGVhZCB1c2UgU3RyaW5n
LiBDaGFuZ2VkIGdlbmVyYWwgY2FzZSB0byB1c2UgYSBkb2N1bWVudCBmcmFnbWVudAorICAgICAg
ICBhbmQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50LgorCisgICAgICAgICogZG9tL0NoYXJh
Y3RlckRhdGEuY3BwOiAoV2ViQ29yZTo6Q2hhcmFjdGVyRGF0YTo6ZGlzcGF0Y2hNb2RpZmllZEV2
ZW50KToKKyAgICAgICAgRml4ZWQgYnVnIHdoZXJlIHdlIHdvdWxkIG5vdCBkaXNwYXRjaCB0aGUg
RE9NU3VidHJlZU1vZGlmaWVkIGV2ZW50IHVubGVzcyBzb21lb25lCisgICAgICAgIHdhcyByZWdp
c3RlcmVkIGZvciB0aGUgRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIGV2ZW50LiBDYXVzZWQgdHJv
dWJsZSBpbiB0aGUgdGVzdC4KKwogMjAwNy0wNS0wNiAgTWl0eiBQZXR0ZWwgIDxtaXR6QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSHlhdHQuCkluZGV4OiBXZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRh
LmNwcAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjM5LDE1ICsyMzksMTQgQEAgdm9pZCBDaGFyYWN0ZXJEYXRhOjpk
aXNwYXRjaE1vZGlmaWVkRXZlbgogewogICAgIGlmIChwYXJlbnROb2RlKCkpCiAgICAgICAgIHBh
cmVudE5vZGUoKS0+Y2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgaWYgKCFkb2N1bWVudCgpLT5oYXNM
aXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkRPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9MSVNURU5FUikp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZ0ltcGwgKm5ld1ZhbHVlID0gc3RyLT5jb3B5
KCk7Ci0gICAgbmV3VmFsdWUtPnJlZigpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IGRpc3BhdGNoRXZlbnQobmV3IE11dGF0aW9uRXZlbnQoRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVk
RXZlbnQsCi0gICAgICAgICAgICAgICAgICB0cnVlLGZhbHNlLDAscHJldlZhbHVlLG5ld1ZhbHVl
LFN0cmluZygpLDApLGVjKTsKLSAgICBuZXdWYWx1ZS0+ZGVyZWYoKTsKKyAgICBpZiAoZG9jdW1l
bnQoKS0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURf
TElTVEVORVIpKSB7CisgICAgICAgIFN0cmluZ0ltcGwgKm5ld1ZhbHVlID0gc3RyLT5jb3B5KCk7
CisgICAgICAgIG5ld1ZhbHVlLT5yZWYoKTsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgICAgIGRpc3BhdGNoRXZlbnQobmV3IE11dGF0aW9uRXZlbnQoRE9NQ2hhcmFjdGVyRGF0
YU1vZGlmaWVkRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxmYWxzZSwwLHByZXZW
YWx1ZSxuZXdWYWx1ZSxTdHJpbmcoKSwwKSxlYyk7CisgICAgICAgIG5ld1ZhbHVlLT5kZXJlZigp
OworICAgIH0KICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9CiAKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMjEyNzMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQsNyArMjc0LDEyNyBAQCBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IEhUTUxFbGVtZW50CiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKIH0KIAotdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyAm
aHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgZXF1YWwoTmFtZWRB
dHRyTWFwKiBhLCBOYW1lZEF0dHJNYXAqIGIpCit7CisgICAgLy8gZW1wdHkgbWFwczsgZW1wdHkg
YW5kIG51bGwgbWFwcyBhcmUgZXF1aXZhbGVudAorICAgIGlmICghYSkgeworICAgICAgICBpZiAo
IWIpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuICFiLT5sZW5ndGgo
KTsKKyAgICB9CisgICAgaWYgKCFiKQorICAgICAgICByZXR1cm4gIWEtPmxlbmd0aCgpOworCisg
ICAgdW5zaWduZWQgbGVuID0gYS0+bGVuZ3RoKCk7CisgICAgaWYgKGItPmxlbmd0aCgpICE9IGxl
bikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbjsgKytpKSB7CisgICAgICAgIEF0dHJpYnV0ZSogYWEgPSBhLT5hdHRyaWJ1dGVJdGVtKGkp
OworICAgICAgICBBdHRyaWJ1dGUqIGJhID0gYi0+YXR0cmlidXRlSXRlbShpKTsKKyAgICAgICAg
aWYgKGFhLT5uYW1lKCkgIT0gYmEtPm5hbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgaWYgKGFhLT52YWx1ZSgpICE9IGJhLT52YWx1ZSgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW5saW5l
IGJvb2wgc2hhbGxvd0VxdWFsKEVsZW1lbnQqIGEsIEVsZW1lbnQqIGIpCit7CisgICAgcmV0dXJu
IGEtPnRhZ1FOYW1lKCkgPT0gYi0+dGFnUU5hbWUoKSAmJiBlcXVhbChhLT5hdHRyaWJ1dGVzKGZh
bHNlKSwgYi0+YXR0cmlidXRlcyhmYWxzZSkpOworfQorCitzdGF0aWMgYm9vbCBzaGFsbG93RXF1
YWwoTm9kZSogYSwgTm9kZSogYikKK3sKKyAgICBOb2RlOjpOb2RlVHlwZSB0YSA9IGEtPm5vZGVU
eXBlKCk7CisgICAgTm9kZTo6Tm9kZVR5cGUgdGIgPSBiLT5ub2RlVHlwZSgpOworICAgIGlmICh0
YSAhPSB0YikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3dpdGNoICh0YSkgeworICAg
ICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKKyAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6
RU5USVRZX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgor
ICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6UFJP
Q0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVT
UEFDRV9OT0RFOgorICAgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGNvbXBhcmluZyB0aGVzZSBu
b2RlIHR5cGVzIGZvciBub3c7IHRoZXkgZG9uJ3QgdHlwaWNhbGx5IG9jY3VyLgorICAgICAgICAg
ICAgLy8gU2luY2UgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIG9ubHkgZm9yIG9wdGltaXphdGlv
biwgaXQncyBPSyB0byBoYXZlIGEgZmFsc2UgbmVnYXRpdmUuCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICBj
YXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6Cisg
ICAgICAgICAgICByZXR1cm4gZXF1YWwoc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YSo+KGEpLT5z
dHJpbmcoKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oYikt
PnN0cmluZygpKTsKKyAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CisgICAgICAgICAg
ICByZXR1cm4gc2hhbGxvd0VxdWFsKHN0YXRpY19jYXN0PEVsZW1lbnQqPihhKSwgc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KGIpKTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFn
bWVudChIVE1MRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgTm9kZSogZmlyc3RDaGlsZCA9IGVs
ZW1lbnQtPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBmcmFnbWVudEZpcnN0Q2hpbGQgPSBmcmFn
bWVudC0+Zmlyc3RDaGlsZCgpOworCisgICAgaWYgKCFmcmFnbWVudEZpcnN0Q2hpbGQpIHsKKyAg
ICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIE5vZGUqIGEgPSBmaXJzdENoaWxkOworICAgIE5vZGUqIGIgPSBmcmFnbWVudEZpcnN0
Q2hpbGQ7CisgICAgd2hpbGUgKGEgJiYgYikgeworICAgICAgICBpZiAoIXNoYWxsb3dFcXVhbChh
LCBiKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBhID0gYS0+dHJhdmVyc2VOZXh0Tm9k
ZShlbGVtZW50KTsKKyAgICAgICAgYiA9IGItPnRyYXZlcnNlTmV4dE5vZGUoZnJhZ21lbnQuZ2V0
KCkpOworICAgIH0KKyAgICBpZiAoIWEgJiYgIWIpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChmaXJzdENoaWxkICYmICFmaXJzdENoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlm
ICghZnJhZ21lbnRGaXJzdENoaWxkLT5uZXh0U2libGluZygpICYmIGZpcnN0Q2hpbGQtPmlzVGV4
dE5vZGUoKSAmJiBmcmFnbWVudEZpcnN0Q2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8VGV4dCo+KGZpcnN0Q2hpbGQpLT5zZXREYXRhKHN0YXRpY19jYXN0PFRl
eHQqPihmcmFnbWVudEZpcnN0Q2hpbGQpLT5zdHJpbmcoKSwgZWMpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwg
Zmlyc3RDaGlsZCwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZWxlbWVudC0+
cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMp
OworfQorCitzdGF0aWMgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChIVE1MRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBO
b2RlKiBmaXJzdENoaWxkID0gZWxlbWVudC0+Zmlyc3RDaGlsZCgpOworICAgIGlmIChmaXJzdENo
aWxkICYmIGZpcnN0Q2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICBpZiAoZXF1YWwoc3Rh
dGljX2Nhc3Q8VGV4dCo+KGZpcnN0Q2hpbGQpLT5zdHJpbmcoKSwgdGV4dC5pbXBsKCkpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBzdGF0aWNfY2FzdDxUZXh0Kj4oZmlyc3RDaGlsZCkt
PnNldERhdGEodGV4dCwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRy
PFRleHQ+IHRleHROb2RlID0gbmV3IFRleHQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgdGV4dCk7CisK
KyAgICBpZiAoZmlyc3RDaGlsZCAmJiAhZmlyc3RDaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAg
ICAgICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxk
LCBlYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbGVtZW50LT5yZW1vdmVDaGls
ZHJlbigpOworICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMp
OworfQorCit2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1s
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoaHRtbCk7CiAgICAgaWYgKCFmcmFnbWVu
dCkgewpAQCAtMjgyLDExICs0MDIsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwo
Y29uc3QgU3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogQWRkIHNw
ZWNpYWwgY2FzZSBmb3Igd2hlbiB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdlIGp1c3Qgd2Fu
dCB0byBzZXQgaXRzIHRleHQ/Ci0gICAgLy8gRklYTUU6IEFkZCBzcGVjaWFsIGNhc2UgZm9yIGNh
c2VzIHdoZXJlIHdlIGNhbiB1c2UgcmVwbGFjZUNoaWxkPwotCi0gICAgcmVtb3ZlQ2hpbGRyZW4o
KTsKLSAgICBhcHBlbmRDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICByZXBsYWNl
Q2hpbGRyZW5XaXRoRnJhZ21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CiB9CiAK
IHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91dGVySFRNTChjb25zdCBTdHJpbmcgJmh0bWwsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQpAQCAtMzA0LDggKzQyMCwyNSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRP
dXRlckhUTUwoY29uc3QgU3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhN
RTogQWRkIHNwZWNpYWwgY2FzZSBmb3Igd2hlbiB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdl
IGp1c3Qgd2FudCB0byBzZXQgaXRzIHRleHQ/CiAgICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRo
aXMgaGF2ZSBjb2RlIHRvIG1lcmdlIG5laWdoYm9yaW5nIHRleHQgbm9kZXMgdGhlIHdheSBzZXRP
dXRlclRleHQgZG9lcz8KKworICAgIC8vIENoZWNrIHRvIHNlZSBpZiBjb250ZW50IGlzIGlkZW50
aWNhbC4KKyAgICBOb2RlKiBmcmFnbWVudEZpcnN0Q2hpbGQgPSBmcmFnbWVudC0+Zmlyc3RDaGls
ZCgpOworICAgIGlmIChmcmFnbWVudEZpcnN0Q2hpbGQgJiYgIWZyYWdtZW50Rmlyc3RDaGlsZC0+
bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBOb2RlKiBuZXh0ID0gbmV4dFNpYmxpbmcoKTsKKwor
ICAgICAgICBOb2RlKiBhID0gdGhpczsKKyAgICAgICAgTm9kZSogYiA9IGZyYWdtZW50Rmlyc3RD
aGlsZDsKKyAgICAgICAgd2hpbGUgKGEgIT0gbmV4dCAmJiBiKSB7CisgICAgICAgICAgICBpZiAo
IXNoYWxsb3dFcXVhbChhLCBiKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGEgPSBhLT50cmF2ZXJzZU5leHROb2RlKHBhcmVudCk7CisgICAgICAgICAgICBiID0gYi0+dHJh
dmVyc2VOZXh0Tm9kZShmcmFnbWVudC5nZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGEg
PT0gbmV4dCAmJiAhYikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBwYXJlbnQt
PnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIHRoaXMsIGVjKTsKIH0KIApAQCAtMzI1
LDE1ICs0NTgsMTMgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cgog
ICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgdGFrZSB3aGl0ZXNwYWNlIGNvbGxh
cHNpbmcgaW50byBhY2NvdW50IGF0IGFsbC4KLSAgICAvLyBGSVhNRTogQWRkIHNwZWNpYWwgY2Fz
ZSBmb3Igd2hlbiB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdlIGp1c3Qgd2FudCB0byBzZXQg
aXRzIHRleHQ/Ci0gICAgLy8gRklYTUU6IEFkZCBzcGVjaWFsIGNhc2UgZm9yIGNhc2VzIHdoZXJl
IHdlIGNhbiB1c2UgcmVwbGFjZUNoaWxkPwotCi0gICAgcmVtb3ZlQ2hpbGRyZW4oKTsKIAogICAg
IGlmICghdGV4dC5jb250YWlucygnXG4nKSAmJiAhdGV4dC5jb250YWlucygnXHInKSkgewotICAg
ICAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgYXBwZW5kQ2hpbGQobmV3IFRleHQoZG9jdW1lbnQoKSwgdGV4dCksIGVjKTsKKyAgICAgICAg
fQorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dCh0aGlzLCB0ZXh0LCBlYyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM0MywxOSArNDc0LDE5IEBAIHZvaWQgSFRNTEVsZW1l
bnQ6OnNldElubmVyVGV4dChjb25zdCBTdHIKICAgICBSZW5kZXJPYmplY3QqIHIgPSByZW5kZXJl
cigpOwogICAgIGlmIChyICYmIHItPnN0eWxlKCktPnByZXNlcnZlTmV3bGluZSgpKSB7CiAgICAg
ICAgIGlmICghdGV4dC5jb250YWlucygnXHInKSkgewotICAgICAgICAgICAgYXBwZW5kQ2hpbGQo
bmV3IFRleHQoZG9jdW1lbnQoKSwgdGV4dCksIGVjKTsKKyAgICAgICAgICAgIHJlcGxhY2VDaGls
ZHJlbldpdGhUZXh0KHRoaXMsIHRleHQsIGVjKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQotICAgICAgICAvLyBGSVhNRTogU3RpY2sgd2l0aCBTdHJpbmcgb25jZSBpdCBoYXMgYSBy
ZXBsYWNlIHRoYXQgY2FuIGRvIHRoaXMuCi0gICAgICAgIERlcHJlY2F0ZWRTdHJpbmcgdGV4dFdp
dGhDb25zaXN0ZW50TGluZUJyZWFrcyA9IHRleHQuZGVwcmVjYXRlZFN0cmluZygpOworICAgICAg
ICBTdHJpbmcgdGV4dFdpdGhDb25zaXN0ZW50TGluZUJyZWFrcyA9IHRleHQ7CiAgICAgICAgIHRl
eHRXaXRoQ29uc2lzdGVudExpbmVCcmVha3MucmVwbGFjZSgiXHJcbiIsICJcbiIpOwogICAgICAg
ICB0ZXh0V2l0aENvbnNpc3RlbnRMaW5lQnJlYWtzLnJlcGxhY2UoJ1xyJywgJ1xuJyk7Ci0gICAg
ICAgIGFwcGVuZENoaWxkKG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHRXaXRoQ29uc2lzdGVudExp
bmVCcmVha3MpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KHRoaXMsIHRl
eHRXaXRoQ29uc2lzdGVudExpbmVCcmVha3MsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIC8vIEFkZCB0ZXh0IG5vZGVzIGFuZCA8YnI+IGVsZW1lbnRzLgogICAgIGVjID0gMDsK
KyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBuZXcgRG9jdW1lbnRGcmFn
bWVudChkb2N1bWVudCgpKTsKICAgICBpbnQgbGluZVN0YXJ0ID0gMDsKICAgICBVQ2hhciBwcmV2
ID0gMDsKICAgICBpbnQgbGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKQEAgLTM2MywxMiArNDk0LDEy
IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVyVGV4dChjb25zdCBTdHIKICAgICAgICAgVUNo
YXIgYyA9IHRleHRbaV07CiAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAnXHInKSB7CiAg
ICAgICAgICAgICBpZiAoaSA+IGxpbmVTdGFydCkgewotICAgICAgICAgICAgICAgIGFwcGVuZENo
aWxkKG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHQuc3Vic3RyaW5nKGxpbmVTdGFydCwgaSAtIGxp
bmVTdGFydCkpLCBlYyk7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5l
dyBUZXh0KGRvY3VtZW50KCksIHRleHQuc3Vic3RyaW5nKGxpbmVTdGFydCwgaSAtIGxpbmVTdGFy
dCkpLCBlYyk7CiAgICAgICAgICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIShjID09ICdcbicgJiYgaSAh
PSAwICYmIHByZXYgPT0gJ1xyJykpIHsKLSAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZChuZXcg
SFRNTEJSRWxlbWVudChkb2N1bWVudCgpKSwgZWMpOworICAgICAgICAgICAgICAgIGZyYWdtZW50
LT5hcHBlbmRDaGlsZChuZXcgSFRNTEJSRWxlbWVudChkb2N1bWVudCgpKSwgZWMpOwogICAgICAg
ICAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQpAQCAtMzc3LDcgKzUwOCw4IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVyVGV4dChj
b25zdCBTdHIKICAgICAgICAgcHJldiA9IGM7CiAgICAgfQogICAgIGlmIChsZW5ndGggPiBsaW5l
U3RhcnQpCi0gICAgICAgIGFwcGVuZENoaWxkKG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHQuc3Vi
c3RyaW5nKGxpbmVTdGFydCwgbGVuZ3RoIC0gbGluZVN0YXJ0KSksIGVjKTsKKyAgICAgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHQuc3Vic3RyaW5nKGxp
bmVTdGFydCwgbGVuZ3RoIC0gbGluZVN0YXJ0KSksIGVjKTsKKyAgICByZXBsYWNlQ2hpbGRyZW5X
aXRoRnJhZ21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CiB9CiAKIHZvaWQgSFRN
TEVsZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJpbmcgJnRleHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14398</attachid>
            <date>2007-05-07 10:52:50 -0700</date>
            <delta_ts>2007-05-29 01:39:42 -0700</delta_ts>
            <desc>new patch, now with passing layout tests (oops!)</desc>
            <filename>SetInnerPatch.txt</filename>
            <type>text/plain</type>
            <size>67273</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjg4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDctMDUtMDcgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM2MDIKKyAgICAgICAgICBBbWF6b24gcHJvZHVjdCBwYWdlcyBrZWVwIHJlcGFpbnRpbmcgb3Zl
ciBhbmQgb3ZlciBhZ2FpbgorCisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWlu
bmVyLW91dGVyLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbm5lci1vdXRlci1vcHRpbWl6YXRpb24uaHRtbDogQWRk
ZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2NvcHktd2l0aG91dC1zZWxlY3Rp
b24uaHRtbDogQWRkZWQgbWlzc2luZyBwcmV2ZW50RGVmYXVsdCBjYWxscworICAgICAgICB0byBw
cmV2ZW50IHRoaXMgZnJvbSBiZWluZyBhIGRvdWJsZS1wYXN0ZSB0ZXN0LgorCisgICAgICAgICog
ZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWRldGFjaC1leHBlY3RlZC5jaGVja3N1bTogVXBkYXRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9maXJzdC1sZXR0ZXItZGV0YWNoLWV4cGVjdGVkLnBuZzogVXBk
YXRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9maXJzdC1sZXR0ZXItZGV0YWNoLWV4cGVjdGVkLnR4
dDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9maXJzdC1sZXR0ZXItZGV0YWNoLmh0bWw6
IFVwZGF0ZWQgdG8gdGVzdCB0aHJlZSBkaWZmZXJlbnQgd2F5cyBvZiBzZXR0aW5nIHRoZQorICAg
ICAgICB0ZXh0IG9mIHRoZSBmaXJzdC1sZXR0ZXIgZWxlbWVudDsgc2V0SW5uZXJIVE1MIGFuZCB0
d28gb3RoZXIgd2F5cy4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3VwZGF0ZUxheW91dEZvckhp
dFRlc3QtZXhwZWN0ZWQudHh0OiBVcGRhdGVkIHJlc3VsdCB0aGF0IGNoYW5nZWQgc2xpZ2h0bHkK
KyAgICAgICAgZHVlIHRvIHNldElubmVySFRNTCBpbXByb3ZlbWVudC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL3RleHRhcmVhLXNldGlubmVyaHRtbC1leHBlY3RlZC50eHQ6IERpdHRvLgorCiAyMDA3
LTA1LTA3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAtIHJvbGxp
bmcgb3V0IHNldElubmVySFRNTCBvcHRpbWl6YXRpb24gdW50aWwgSSBjYW4gZmlndXJlIG91dCB3
aHkgdGVzdHMgYXJlIGZhaWxpbmcKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvY29weS13aXRob3V0LXNlbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvY29weS13aXRob3V0LXNlbGVjdGlvbi5odG1sCShyZXZpc2lv
biAyMTI4NykKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY29weS13aXRob3V0
LXNlbGVjdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDEyICs1LDE0IEBACiBmdW5jdGlv
biBteWNvcHkoZXZlbnQpCiB7CiAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCd0ZXh0
L3BsYWluJywgIlNVQ0NFU1MiKTsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfQogCiBm
dW5jdGlvbiBteXBhc3RlKGV2ZW50KQogewogICAgIHZhciBjbGlwID0gZXZlbnQuY2xpcGJvYXJk
RGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc3VsdCcpLmlubmVySFRNTCA9IGNsaXA7CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
IH0KIAogZnVuY3Rpb24gdGVzdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9maXJzdC1s
ZXR0ZXItZGV0YWNoLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1kZXRhY2gtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9u
IDIxMjg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWRldGFjaC1leHBl
Y3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotOGExOGQ0NmRiMjkzMGYw
YjQ0NmY5NmY1OWYzNzQ3YzIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis1OTk3ZGYzMTFl
ZmFmOGU5MTQ2M2RhNzM1NWJiYTIwOApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1kZXRhY2gtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1kZXRhY2gtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMTI4NykKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0
LWxldHRlci1kZXRhY2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMyArMTYs
MTMgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTg5LDE4KSBzaXplIDR4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTg5LDE4
KSB3aWR0aCA0OiAiLiIKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw1Mikgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTcxeDE4Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTcxOiAiVGhlIG5leHQgbGluZSBzaG91bGQg
cmVhZCBceHsyMDFDfSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MjMxeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjMxOiAiVGhlIG5leHQg
dGhyZWUgbGluZXMgc2hvdWxkIGFsbCByZWFkIFx4ezIwMUN9IgogICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgOXgxOCBbY29sb3I9IzAwMDBGRl0KLSAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE3MSwwKSBzaXplIDl4MTgKLSAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgxNzEsMCkgd2lkdGggOTogIlAiCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMTgwLDApIHNpemUgMjA5eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDE4MCwwKSB3aWR0
aCAyMDk6ICJBU1NceHsyMDFEfSwgd2l0aCBub3RoaW5nIGJlZm9yZSB0aGUgUC4iCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMzEsMCkgc2l6ZSA5eDE4CisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjMxLDApIHdpZHRoIDk6ICJQIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDI0MCwwKSBzaXplIDIwOXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgyNDAsMCkg
d2lkdGggMjA5OiAiQVNTXHh7MjAxRH0sIHdpdGggbm90aGluZyBiZWZvcmUgdGhlIFAuIgogICAg
ICAgUmVuZGVyQmxvY2sge0hSfSBhdCAoMCw4Nikgc2l6ZSA3ODR4MiBbYm9yZGVyOiAoMXB4IGlu
c2V0ICMwMDAwMDApXQogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDEwNCkgc2l6ZSA3ODR4
MTgKICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgOXgxOCBb
Y29sb3I9IzAwMDBGRl0KQEAgLTMwLDMgKzMwLDE1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTogIlAiCiAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOSwwKSBzaXplIDMweDE4CiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDksMCkgd2lkdGggMzA6ICJBU1MiCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MTM4KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAs
MCkgc2l6ZSA5eDE4IFtjb2xvcj0jMDAwMEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDl4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDk6ICJQIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDksMCkgc2l6ZSAzMHgxOAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICg5LDApIHdpZHRoIDMwOiAiQVNTIgorICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDE3Mikgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVySW5saW5lIChn
ZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgOXgxOCBbY29sb3I9IzAwMDBGRl0KKyAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5eDE4CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA5OiAiUCIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg5
LDApIHNpemUgMzB4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoOSwwKSB3aWR0aCAzMDogIkFT
UyIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1kZXRhY2guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9maXJzdC1sZXR0ZXItZGV0YWNoLmh0
bWwJKHJldmlzaW9uIDIxMjg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVy
LWRldGFjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE0ICszLDE4IEBACiA8aGVhZD4KIDx0
aXRsZT48L3RpdGxlPgogPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSN0YXJnZXQ6Zmlyc3QtbGV0
dGVyIHsgY29sb3I6IGJsdWU7CX0KKyN0YXJnZXRhOmZpcnN0LWxldHRlciB7IGNvbG9yOiBibHVl
OyB9CisjdGFyZ2V0YjpmaXJzdC1sZXR0ZXIgeyBjb2xvcjogYmx1ZTsgfQorI3RhcmdldGM6Zmly
c3QtbGV0dGVyIHsgY29sb3I6IGJsdWU7IH0KIDwvc3R5bGU+CiAKIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0VG9wOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5pbm5lckhUTUwg
PSAiUEFTUyI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldGEiKS5pbm5lckhU
TUwgPSAiUEFTUyI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldGIiKS5maXJz
dENoaWxkLmRhdGEgPSAiUEFTUyI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dGMiKS5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MiKSwgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldGMiKS5maXJzdENoaWxkKTsKIH0KIDwvc2NyaXB0Pgog
CkBAIC0yMSw5ICsyNSwxMSBAQCBUZXN0IGZvciA8aT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEu
b3BlCiBwYWdlIHdpdGggdXNlIG9mIGZpcnN0LWxldHRlciBjcmFzaGVzIHJlcHJvZHVjaWJseSBp
biBSZW5kZXJPYmplY3Q6OnJlbmRlckFyZW5hKCk8L2k+LgogPC9wPgogPHA+Ci1UaGUgbmV4dCBs
aW5lIHNob3VsZCByZWFkICZsZHF1bzs8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5QPC9zcGFu
PkFTUyZyZHF1bzssIHdpdGggbm90aGluZyBiZWZvcmUgdGhlIFAuCitUaGUgbmV4dCB0aHJlZSBs
aW5lcyBzaG91bGQgYWxsIHJlYWQgJmxkcXVvOzxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlA8
L3NwYW4+QVNTJnJkcXVvOywgd2l0aCBub3RoaW5nIGJlZm9yZSB0aGUgUC4KIDwvcD4KIDxocj4K
LTxwIGlkPSJ0YXJnZXQiPmRpZG4mcnNxdW87dCBydW48L3A+Cis8cCBpZD0idGFyZ2V0YSI+ZGlk
biZyc3F1bzt0IHJ1bjwvcD4KKzxwIGlkPSJ0YXJnZXRiIj5kaWRuJnJzcXVvO3QgcnVuPC9wPgor
PHAgaWQ9InRhcmdldGMiPmRpZG4mcnNxdW87dCBydW48L3A+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5uZXItb3V0ZXItb3B0
aW1pemF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MRWxlbWVudC9zZXQtaW5uZXItb3V0ZXItb3B0aW1pemF0aW9uLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbm5l
ci1vdXRlci1vcHRpbWl6YXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDY3IEBACitUaGlzIHRlc3RzIGNhbGxzIHRvIHNldElubmVySFRNTCwgc2V0SW5uZXJUZXh0LCBh
bmQgc2V0T3V0ZXJIVE1MIHRvIHNlZSB3aGF0IGtpbmQgb2YgRE9NIG1vZGlmaWNhdGlvbnMgdGhl
eSBjYXVzZS4gVGhlIGNhbGxzIGFyZSBvcHRpbWl6ZWQgdG8gbm90IGRvIGFueSB3b3JrIGluIGNh
c2VzIHdoZXJlIHRoZSBET00gd291bGQgbm90IGNoYW5nZSBhdCBhbGwuCisKK1BBU1M6IHN0YXJ0
aW5nIHdpdGggIiIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICIiCitQQVNTOiBzdGFydGluZyB3aXRo
ICIiLCBzZXR0aW5nIGlubmVySFRNTCB0byAidGV4dCIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIiIs
IHNldHRpbmcgaW5uZXJIVE1MIHRvICI8YT48L2E+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiIiwg
c2V0dGluZyBpbm5lckhUTUwgdG8gIjxhPjwvYT48Yj48L2I+IgorUEFTUzogc3RhcnRpbmcgd2l0
aCAidGV4dCIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICIiCitQQVNTOiBzdGFydGluZyB3aXRoICJ0
ZXh0Iiwgc2V0dGluZyBpbm5lckhUTUwgdG8gImRpZmZlcmVudCB0ZXh0IgorUEFTUzogc3RhcnRp
bmcgd2l0aCAidGV4dCIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICJ0ZXh0IgorUEFTUzogc3RhcnRp
bmcgd2l0aCAidGV4dCIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICI8YT48L2E+IgorUEFTUzogc3Rh
cnRpbmcgd2l0aCAidGV4dCIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICI8YT48L2E+PGI+PC9iPiIK
K1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhPjwvYT4iLCBzZXR0aW5nIGlubmVySFRNTCB0byAiIgor
UEFTUzogc3RhcnRpbmcgd2l0aCAiPGE+PC9hPiIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICJ0ZXh0
IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGE+PC9hPiIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICI8
YT48L2E+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGE+PC9hPiIsIHNldHRpbmcgaW5uZXJIVE1M
IHRvICI8YSBocmVmPSIiPjwvYT4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8YT48L2E+Iiwgc2V0
dGluZyBpbm5lckhUTUwgdG8gIjxhPnRleHQ8L2E+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGE+
PC9hPiIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICI8YT48L2E+PGI+PC9iPiIKK1BBU1M6IHN0YXJ0
aW5nIHdpdGggIjxhPnRleHQ8L2E+Iiwgc2V0dGluZyBpbm5lckhUTUwgdG8gIjxhPnRleHQ8L2E+
IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGE+dGV4dDwvYT4iLCBzZXR0aW5nIGlubmVySFRNTCB0
byAiPGE+ZGlmZmVyZW50IHRleHQ8L2E+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGEgaHJlZj0i
YiI+PC9hPiIsIHNldHRpbmcgaW5uZXJIVE1MIHRvICI8YSBuYW1lPSJjIiBocmVmPSJiIj48L2E+
IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGEgaHJlZj0iYiIgbmFtZT0iYyI+PC9hPiIsIHNldHRp
bmcgaW5uZXJIVE1MIHRvICI8YSBocmVmPSJiIiBuYW1lPSJjIj48L2E+IgorUEFTUzogc3RhcnRp
bmcgd2l0aCAiPGEgaHJlZj0iYiIgbmFtZT0iYyI+PC9hPiIsIHNldHRpbmcgaW5uZXJIVE1MIHRv
ICI8YSBuYW1lPSJjIiBocmVmPSJiIj48L2E+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiIiwgc2V0
dGluZyBpbm5lclRleHQgdG8gIiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIiIsIHNldHRpbmcgaW5u
ZXJUZXh0IHRvICJ0ZXh0IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiIiwgc2V0dGluZyBpbm5lclRl
eHQgdG8gIjxhPjwvYT4iCitQQVNTOiBzdGFydGluZyB3aXRoICIiLCBzZXR0aW5nIGlubmVyVGV4
dCB0byAiPGE+PC9hPjxiPjwvYj4iCitQQVNTOiBzdGFydGluZyB3aXRoICJ0ZXh0Iiwgc2V0dGlu
ZyBpbm5lclRleHQgdG8gIiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggInRleHQiLCBzZXR0aW5nIGlu
bmVyVGV4dCB0byAiZGlmZmVyZW50IHRleHQiCitQQVNTOiBzdGFydGluZyB3aXRoICJ0ZXh0Iiwg
c2V0dGluZyBpbm5lclRleHQgdG8gInRleHQiCitQQVNTOiBzdGFydGluZyB3aXRoICI8YT48L2E+
Iiwgc2V0dGluZyBpbm5lclRleHQgdG8gIiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxhPjwvYT4i
LCBzZXR0aW5nIGlubmVyVGV4dCB0byAidGV4dCIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+
PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxk
aXY+PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gInRleHQiCitQQVNTOiBzdGFydGluZyB3
aXRoICI8ZGl2PjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8YT48L2E+IgorUEFTUzog
c3RhcnRpbmcgd2l0aCAiPGRpdj48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGE+PC9h
PjxiPjwvYj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjwvZGl2PiIsIHNldHRpbmcgb3V0
ZXJIVE1MIHRvICI8ZGl2PjwvZGl2PiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PC9kaXY+
Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxkaXY+dGV4dDwvZGl2PiIKK1BBU1M6IHN0YXJ0aW5n
IHdpdGggIjxkaXY+PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxkaXY+PGE+PC9hPjwv
ZGl2PiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhU
TUwgdG8gIjxkaXY+PGE+PC9hPjxiPjwvYj48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8
ZGl2PnRleHQ8L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiIgorUEFTUzogc3RhcnRpbmcg
d2l0aCAiPGRpdj50ZXh0PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gInRleHQiCitQQVNT
OiBzdGFydGluZyB3aXRoICI8ZGl2PnRleHQ8L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAi
PGE+PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+dGV4dDwvZGl2PiIsIHNldHRpbmcg
b3V0ZXJIVE1MIHRvICI8YT48L2E+PGI+PC9iPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+
dGV4dDwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8ZGl2PjwvZGl2PiIKK1BBU1M6IHN0
YXJ0aW5nIHdpdGggIjxkaXY+dGV4dDwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8ZGl2
PnRleHQ8L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PnRleHQ8L2Rpdj4iLCBzZXR0
aW5nIG91dGVySFRNTCB0byAiPGRpdj5kaWZmZXJlbnQgdGV4dDwvZGl2PiIKK1BBU1M6IHN0YXJ0
aW5nIHdpdGggIjxkaXY+dGV4dDwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8ZGl2Pjxh
PjwvYT48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PnRleHQ8L2Rpdj4iLCBzZXR0
aW5nIG91dGVySFRNTCB0byAiPGRpdj48YT48L2E+PGI+PC9iPjwvZGl2PiIKK1BBU1M6IHN0YXJ0
aW5nIHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICIiCitQ
QVNTOiBzdGFydGluZyB3aXRoICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRN
TCB0byAidGV4dCIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2PiIsIHNl
dHRpbmcgb3V0ZXJIVE1MIHRvICI8YT48L2E+IgorUEFTUzogc3RhcnRpbmcgd2l0aCAiPGRpdj48
YT48L2E+PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhUTUwgdG8gIjxhIGhyZWY9IiI+PC9hPiIKK1BB
U1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1M
IHRvICI8YT50ZXh0PC9hPiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2
PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8YT48L2E+PGI+PC9iPiIKK1BBU1M6IHN0YXJ0aW5n
IHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2PiIsIHNldHRpbmcgb3V0ZXJIVE1MIHRvICI8ZGl2Pjwv
ZGl2PiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2PiIsIHNldHRpbmcg
b3V0ZXJIVE1MIHRvICI8ZGl2PnRleHQ8L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRoICI8ZGl2
PjxhPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj5kaWZmZXJlbnQgdGV4
dDwvZGl2PiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+PC9hPjwvZGl2PiIsIHNldHRp
bmcgb3V0ZXJIVE1MIHRvICI8ZGl2PjxhPjwvYT48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3aXRo
ICI8ZGl2PjxhPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj48YT48L2E+
PGI+PC9iPjwvZGl2PiIKK1BBU1M6IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+dGV4dDwvYT48L2Rp
dj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAiPGRpdj48YT50ZXh0PC9hPjwvZGl2PiIKK1BBU1M6
IHN0YXJ0aW5nIHdpdGggIjxkaXY+PGE+dGV4dDwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRN
TCB0byAiPGRpdj48YT5kaWZmZXJlbnQgdGV4dDwvYT48L2Rpdj4iCitQQVNTOiBzdGFydGluZyB3
aXRoICI8ZGl2PjxhIGhyZWY9ImIiPjwvYT48L2Rpdj4iLCBzZXR0aW5nIG91dGVySFRNTCB0byAi
PGRpdj48YSBuYW1lPSJjIiBocmVmPSJiIj48L2E+PC9kaXY+IgorUEFTUzogc3RhcnRpbmcgd2l0
aCAiPGRpdj48YSBocmVmPSJiIiBuYW1lPSJjIj48L2E+PC9kaXY+Iiwgc2V0dGluZyBvdXRlckhU
TUwgdG8gIjxkaXY+PGEgaHJlZj0iYiIgbmFtZT0iYyI+PC9hPjwvZGl2PiIKK1BBU1M6IHN0YXJ0
aW5nIHdpdGggIjxkaXY+PGEgaHJlZj0iYiIgbmFtZT0iYyI+PC9hPjwvZGl2PiIsIHNldHRpbmcg
b3V0ZXJIVE1MIHRvICI8ZGl2PjxhIG5hbWU9ImMiIGhyZWY9ImIiPjwvYT48L2Rpdj4iCitBTEwg
VEVTVFMgUEFTU0VECisKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEVsZW1lbnQvc2V0LWlubmVyLW91dGVyLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWlubmVyLW91dGVyLW9wdGltaXphdGlvbi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1p
bm5lci1vdXRlci1vcHRpbWl6YXRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbm5lci1vdXRlci1vcHRpbWl6YXRpb24uaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzEgQEAKKzxodG1sPgorCis8aGVhZD4KKworPHNjcmlw
dD4KKwordmFyIG1vZGlmaWVkOwordmFyIG9sZEVsZW1lbnQ7Cit2YXIgb2xkQ29udGVudDsKK3Zh
ciBmYWlsdXJlQ291bnQgPSAwOworCitmdW5jdGlvbiBzZXRNb2RpZmllZEZsYWcoKQoreworICAg
IG1vZGlmaWVkID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gcHJpbnQobWVzc2FnZSkKK3sKKyAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVzdWx0cyIpLmFwcGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIHN1
bW1hcml6ZVJlc3VsdCgpCit7CisgICAgaWYgKCFtb2RpZmllZCkKKyAgICAgICAgcmV0dXJuICJu
b3QgbW9kaWZpZWQiOworICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cGFyZW50Iik7CisgICAgaWYgKHBhcmVudC5maXJzdENoaWxkICE9PSBvbGRFbGVtZW50KQorICAg
ICAgICByZXR1cm4gInJlcGxhY2VkIjsKKyAgICBpZiAob2xkRWxlbWVudC5maXJzdENoaWxkICE9
PSBvbGRDb250ZW50KQorICAgICAgICByZXR1cm4gIm1vZGlmaWVkIjsKKyAgICByZXR1cm4gIm1v
ZGlmaWVkLCB3aXRoIHNhbWUgZmlyc3QgY2hpbGQiOworfQorCitmdW5jdGlvbiBydW5UZXN0KG1h
cmt1cCwgcHJvcGVydHlOYW1lLCBuZXdWYWx1ZSwgZXhwZWN0ZWRSZXN1bHQpCit7CisgICAgdmFy
IHBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXJlbnQiKTsKKyAgICBwYXJlbnQu
aW5uZXJIVE1MID0gIjxkaXY+IiArIG1hcmt1cCArICI8L2Rpdj4iOworICAgIG1vZGlmaWVkID0g
ZmFsc2U7CisgICAgb2xkRWxlbWVudCA9IHBhcmVudC5maXJzdENoaWxkOworICAgIG9sZENvbnRl
bnQgPSBwYXJlbnQuZmlyc3RDaGlsZC5maXJzdENoaWxkOworICAgIHBhcmVudC5maXJzdENoaWxk
W3Byb3BlcnR5TmFtZV0gPSBuZXdWYWx1ZTsKKyAgICB2YXIgcmVzdWx0VmFsdWU7CisgICAgaWYg
KHByb3BlcnR5TmFtZSA9PSAib3V0ZXJIVE1MIikKKyAgICAgICAgcmVzdWx0VmFsdWUgPSBwYXJl
bnQuaW5uZXJIVE1MOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0VmFsdWUgPSBwYXJlbnQuZmly
c3RDaGlsZFtwcm9wZXJ0eU5hbWVdOworICAgIHZhciByZXN1bHQgPSByZXN1bHRWYWx1ZSA9PSBu
ZXdWYWx1ZSA/IHN1bW1hcml6ZVJlc3VsdCgpIDogIm1vZGlmaWVkIGluY29ycmVjdGx5IjsKKyAg
ICBpZiAocHJvcGVydHlOYW1lID09ICJvdXRlckhUTUwiKQorICAgICAgICBtYXJrdXAgPSAiPGRp
dj4iICsgbWFya3VwICsgIjwvZGl2PiI7CisgICAgdGVzdE5hbWUgPSAnc3RhcnRpbmcgd2l0aCAi
JyArIG1hcmt1cCArICciLCBzZXR0aW5nICcgKyBwcm9wZXJ0eU5hbWUgKyAnIHRvICInICsgbmV3
VmFsdWUgKyAnIic7CisgICAgaWYgKHJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCkKKyAgICAgICAg
cHJpbnQoIlBBU1M6ICIgKyB0ZXN0TmFtZSk7CisgICAgZWxzZSB7CisgICAgICAgIHByaW50KCJG
QUlMOiAiICsgdGVzdE5hbWUgKyAiIC0tICIgKyByZXN1bHQgKyAiLCBidXQgZXhwZWN0ZWQgIiAr
IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgKytmYWlsdXJlQ291bnQ7CisgICAgfQorICAgIGlm
IChyZXN1bHQgPT0gIm1vZGlmaWVkIGluY29ycmVjdGx5IikKKyAgICAgICAgcHJpbnQoInZhbHVl
IHdhcyAiICsgcmVzdWx0VmFsdWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInBhcmVudCIpOworICAgIHBhcmVudC5hZGRFdmVudExpc3RlbmVyKCJET01TdWJ0cmVlTW9k
aWZpZWQiLCBzZXRNb2RpZmllZEZsYWcsIHRydWUpOworCisgICAgcnVuVGVzdCgnJywgJ2lubmVy
SFRNTCcsICcnLCAnbm90IG1vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgnJywgJ2lubmVySFRNTCcs
ICd0ZXh0JywgJ21vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgnJywgJ2lubmVySFRNTCcsICc8YT48
L2E+JywgJ21vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgnJywgJ2lubmVySFRNTCcsICc8YT48L2E+
PGI+PC9iPicsICdtb2RpZmllZCcpOworCisgICAgcnVuVGVzdCgndGV4dCcsICdpbm5lckhUTUwn
LCAnJywgJ21vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgndGV4dCcsICdpbm5lckhUTUwnLCAnZGlm
ZmVyZW50IHRleHQnLCAnbW9kaWZpZWQsIHdpdGggc2FtZSBmaXJzdCBjaGlsZCcpOworICAgIHJ1
blRlc3QoJ3RleHQnLCAnaW5uZXJIVE1MJywgJ3RleHQnLCAnbm90IG1vZGlmaWVkJyk7CisgICAg
cnVuVGVzdCgndGV4dCcsICdpbm5lckhUTUwnLCAnPGE+PC9hPicsICdtb2RpZmllZCcpOworICAg
IHJ1blRlc3QoJ3RleHQnLCAnaW5uZXJIVE1MJywgJzxhPjwvYT48Yj48L2I+JywgJ21vZGlmaWVk
Jyk7CisKKyAgICBydW5UZXN0KCc8YT48L2E+JywgJ2lubmVySFRNTCcsICcnLCAnbW9kaWZpZWQn
KTsKKyAgICBydW5UZXN0KCc8YT48L2E+JywgJ2lubmVySFRNTCcsICd0ZXh0JywgJ21vZGlmaWVk
Jyk7CisgICAgcnVuVGVzdCgnPGE+PC9hPicsICdpbm5lckhUTUwnLCAnPGE+PC9hPicsICdub3Qg
bW9kaWZpZWQnKTsKKyAgICBydW5UZXN0KCc8YT48L2E+JywgJ2lubmVySFRNTCcsICc8YSBocmVm
PSIiPjwvYT4nLCAnbW9kaWZpZWQnKTsKKyAgICBydW5UZXN0KCc8YT48L2E+JywgJ2lubmVySFRN
TCcsICc8YT50ZXh0PC9hPicsICdtb2RpZmllZCcpOworICAgIHJ1blRlc3QoJzxhPjwvYT4nLCAn
aW5uZXJIVE1MJywgJzxhPjwvYT48Yj48L2I+JywgJ21vZGlmaWVkJyk7CisKKyAgICBydW5UZXN0
KCc8YT50ZXh0PC9hPicsICdpbm5lckhUTUwnLCAnPGE+dGV4dDwvYT4nLCAnbm90IG1vZGlmaWVk
Jyk7CisgICAgcnVuVGVzdCgnPGE+dGV4dDwvYT4nLCAnaW5uZXJIVE1MJywgJzxhPmRpZmZlcmVu
dCB0ZXh0PC9hPicsICdtb2RpZmllZCcpOworCisgICAgcnVuVGVzdCgnPGEgaHJlZj0iYiI+PC9h
PicsICdpbm5lckhUTUwnLCAnPGEgbmFtZT0iYyIgaHJlZj0iYiI+PC9hPicsICdtb2RpZmllZCcp
OworICAgIHJ1blRlc3QoJzxhIGhyZWY9ImIiIG5hbWU9ImMiPjwvYT4nLCAnaW5uZXJIVE1MJywg
JzxhIGhyZWY9ImIiIG5hbWU9ImMiPjwvYT4nLCAnbm90IG1vZGlmaWVkJyk7CisgICAgcnVuVGVz
dCgnPGEgaHJlZj0iYiIgbmFtZT0iYyI+PC9hPicsICdpbm5lckhUTUwnLCAnPGEgbmFtZT0iYyIg
aHJlZj0iYiI+PC9hPicsICdtb2RpZmllZCcpOworCisgICAgcnVuVGVzdCgnJywgJ2lubmVyVGV4
dCcsICcnLCAnbm90IG1vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgnJywgJ2lubmVyVGV4dCcsICd0
ZXh0JywgJ21vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgnJywgJ2lubmVyVGV4dCcsICc8YT48L2E+
JywgJ21vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgnJywgJ2lubmVyVGV4dCcsICc8YT48L2E+PGI+
PC9iPicsICdtb2RpZmllZCcpOworCisgICAgcnVuVGVzdCgndGV4dCcsICdpbm5lclRleHQnLCAn
JywgJ21vZGlmaWVkJyk7CisgICAgcnVuVGVzdCgndGV4dCcsICdpbm5lclRleHQnLCAnZGlmZmVy
ZW50IHRleHQnLCAnbW9kaWZpZWQsIHdpdGggc2FtZSBmaXJzdCBjaGlsZCcpOworICAgIHJ1blRl
c3QoJ3RleHQnLCAnaW5uZXJUZXh0JywgJ3RleHQnLCAnbm90IG1vZGlmaWVkJyk7CisKKyAgICBy
dW5UZXN0KCc8YT48L2E+JywgJ2lubmVyVGV4dCcsICcnLCAnbW9kaWZpZWQnKTsKKyAgICBydW5U
ZXN0KCc8YT48L2E+JywgJ2lubmVyVGV4dCcsICd0ZXh0JywgJ21vZGlmaWVkJyk7CisKKyAgICBy
dW5UZXN0KCcnLCAnb3V0ZXJIVE1MJywgJycsICdyZXBsYWNlZCcpOworICAgIHJ1blRlc3QoJycs
ICdvdXRlckhUTUwnLCAndGV4dCcsICdyZXBsYWNlZCcpOworICAgIHJ1blRlc3QoJycsICdvdXRl
ckhUTUwnLCAnPGE+PC9hPicsICdyZXBsYWNlZCcpOworICAgIHJ1blRlc3QoJycsICdvdXRlckhU
TUwnLCAnPGE+PC9hPjxiPjwvYj4nLCAncmVwbGFjZWQnKTsKKyAgICBydW5UZXN0KCcnLCAnb3V0
ZXJIVE1MJywgJzxkaXY+PC9kaXY+JywgJ25vdCBtb2RpZmllZCcpOworICAgIHJ1blRlc3QoJycs
ICdvdXRlckhUTUwnLCAnPGRpdj50ZXh0PC9kaXY+JywgJ3JlcGxhY2VkJyk7CisgICAgcnVuVGVz
dCgnJywgJ291dGVySFRNTCcsICc8ZGl2PjxhPjwvYT48L2Rpdj4nLCAncmVwbGFjZWQnKTsKKyAg
ICBydW5UZXN0KCcnLCAnb3V0ZXJIVE1MJywgJzxkaXY+PGE+PC9hPjxiPjwvYj48L2Rpdj4nLCAn
cmVwbGFjZWQnKTsKKworICAgIHJ1blRlc3QoJ3RleHQnLCAnb3V0ZXJIVE1MJywgJycsICdyZXBs
YWNlZCcpOworICAgIHJ1blRlc3QoJ3RleHQnLCAnb3V0ZXJIVE1MJywgJ3RleHQnLCAncmVwbGFj
ZWQnKTsKKyAgICBydW5UZXN0KCd0ZXh0JywgJ291dGVySFRNTCcsICc8YT48L2E+JywgJ3JlcGxh
Y2VkJyk7CisgICAgcnVuVGVzdCgndGV4dCcsICdvdXRlckhUTUwnLCAnPGE+PC9hPjxiPjwvYj4n
LCAncmVwbGFjZWQnKTsKKyAgICBydW5UZXN0KCd0ZXh0JywgJ291dGVySFRNTCcsICc8ZGl2Pjwv
ZGl2PicsICdyZXBsYWNlZCcpOworICAgIHJ1blRlc3QoJ3RleHQnLCAnb3V0ZXJIVE1MJywgJzxk
aXY+dGV4dDwvZGl2PicsICdub3QgbW9kaWZpZWQnKTsKKyAgICBydW5UZXN0KCd0ZXh0JywgJ291
dGVySFRNTCcsICc8ZGl2PmRpZmZlcmVudCB0ZXh0PC9kaXY+JywgJ3JlcGxhY2VkJyk7CisgICAg
cnVuVGVzdCgndGV4dCcsICdvdXRlckhUTUwnLCAnPGRpdj48YT48L2E+PC9kaXY+JywgJ3JlcGxh
Y2VkJyk7CisgICAgcnVuVGVzdCgndGV4dCcsICdvdXRlckhUTUwnLCAnPGRpdj48YT48L2E+PGI+
PC9iPjwvZGl2PicsICdyZXBsYWNlZCcpOworCisgICAgcnVuVGVzdCgnPGE+PC9hPicsICdvdXRl
ckhUTUwnLCAnJywgJ3JlcGxhY2VkJyk7CisgICAgcnVuVGVzdCgnPGE+PC9hPicsICdvdXRlckhU
TUwnLCAndGV4dCcsICdyZXBsYWNlZCcpOworICAgIHJ1blRlc3QoJzxhPjwvYT4nLCAnb3V0ZXJI
VE1MJywgJzxhPjwvYT4nLCAncmVwbGFjZWQnKTsKKyAgICBydW5UZXN0KCc8YT48L2E+JywgJ291
dGVySFRNTCcsICc8YSBocmVmPSIiPjwvYT4nLCAncmVwbGFjZWQnKTsKKyAgICBydW5UZXN0KCc8
YT48L2E+JywgJ291dGVySFRNTCcsICc8YT50ZXh0PC9hPicsICdyZXBsYWNlZCcpOworICAgIHJ1
blRlc3QoJzxhPjwvYT4nLCAnb3V0ZXJIVE1MJywgJzxhPjwvYT48Yj48L2I+JywgJ3JlcGxhY2Vk
Jyk7CisgICAgcnVuVGVzdCgnPGE+PC9hPicsICdvdXRlckhUTUwnLCAnPGRpdj48L2Rpdj4nLCAn
cmVwbGFjZWQnKTsKKyAgICBydW5UZXN0KCc8YT48L2E+JywgJ291dGVySFRNTCcsICc8ZGl2PnRl
eHQ8L2Rpdj4nLCAncmVwbGFjZWQnKTsKKyAgICBydW5UZXN0KCc8YT48L2E+JywgJ291dGVySFRN
TCcsICc8ZGl2PmRpZmZlcmVudCB0ZXh0PC9kaXY+JywgJ3JlcGxhY2VkJyk7CisgICAgcnVuVGVz
dCgnPGE+PC9hPicsICdvdXRlckhUTUwnLCAnPGRpdj48YT48L2E+PC9kaXY+JywgJ25vdCBtb2Rp
ZmllZCcpOworICAgIHJ1blRlc3QoJzxhPjwvYT4nLCAnb3V0ZXJIVE1MJywgJzxkaXY+PGE+PC9h
PjxiPjwvYj48L2Rpdj4nLCAncmVwbGFjZWQnKTsKKworICAgIHJ1blRlc3QoJzxhPnRleHQ8L2E+
JywgJ291dGVySFRNTCcsICc8ZGl2PjxhPnRleHQ8L2E+PC9kaXY+JywgJ25vdCBtb2RpZmllZCcp
OworICAgIHJ1blRlc3QoJzxhPnRleHQ8L2E+JywgJ291dGVySFRNTCcsICc8ZGl2PjxhPmRpZmZl
cmVudCB0ZXh0PC9hPjwvZGl2PicsICdyZXBsYWNlZCcpOworCisgICAgcnVuVGVzdCgnPGEgaHJl
Zj0iYiI+PC9hPicsICdvdXRlckhUTUwnLCAnPGRpdj48YSBuYW1lPSJjIiBocmVmPSJiIj48L2E+
PC9kaXY+JywgJ3JlcGxhY2VkJyk7CisgICAgcnVuVGVzdCgnPGEgaHJlZj0iYiIgbmFtZT0iYyI+
PC9hPicsICdvdXRlckhUTUwnLCAnPGRpdj48YSBocmVmPSJiIiBuYW1lPSJjIj48L2E+PC9kaXY+
JywgJ25vdCBtb2RpZmllZCcpOworICAgIHJ1blRlc3QoJzxhIGhyZWY9ImIiIG5hbWU9ImMiPjwv
YT4nLCAnb3V0ZXJIVE1MJywgJzxkaXY+PGEgbmFtZT0iYyIgaHJlZj0iYiI+PC9hPjwvZGl2Pics
ICdyZXBsYWNlZCcpOworCisgICAgcGFyZW50Lm91dGVySFRNTCA9ICIiOworCisgICAgaWYgKGZh
aWx1cmVDb3VudCA9PSAwKQorICAgICAgICBwcmludCgiQUxMIFRFU1RTIFBBU1NFRCIpOworICAg
IGVsc2UKKyAgICAgICAgcHJpbnQoZmFpbHVyZUNvdW50ICsgIlRFU1RTIEZBSUxFRCIpOworfQor
Cis8L3NjcmlwdD4KKworPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKzxwPgor
ICAgIFRoaXMgdGVzdHMgY2FsbHMgdG8gc2V0SW5uZXJIVE1MLCBzZXRJbm5lclRleHQsIGFuZCBz
ZXRPdXRlckhUTUwgdG8gc2VlIHdoYXQga2luZCBvZiBET00gbW9kaWZpY2F0aW9ucyB0aGV5IGNh
dXNlLgorICAgIFRoZSBjYWxscyBhcmUgb3B0aW1pemVkIHRvIG5vdCBkbyBhbnkgd29yayBpbiBj
YXNlcyB3aGVyZSB0aGUgRE9NIHdvdWxkIG5vdCBjaGFuZ2UgYXQgYWxsLgorPC9wPgorCis8cCBp
ZD0icmVzdWx0cyI+PC9wPgorCis8ZGl2IGlkPSJwYXJlbnQiPjwvZGl2PgorCis8L2JvZHk+CisK
KzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxF
bGVtZW50L3NldC1pbm5lci1vdXRlci1vcHRpbWl6YXRpb24uaHRtbApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6
IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5h
dGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3VwZGF0ZUxheW91dEZvckhpdFRl
c3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Vw
ZGF0ZUxheW91dEZvckhpdFRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTI4NykKKysrIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3VwZGF0ZUxheW91dEZvckhpdFRlc3QtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xNCwzICsxNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0LDUpIHNpemUgNDh4MTgKICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsNSkgd2lkdGggNDg6ICIgUHJvamVjdCIKICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitzZWxlY3Rpb24gc3RhcnQ6IHBv
c2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDMg
e0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3Nl
bGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMCBvZiBjaGlsZCAxIHsjdGV4dH0gb2YgY2hpbGQgMyB7
RElWfSBvZiBjaGlsZCAzIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9
IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNldGlu
bmVyaHRtbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy90ZXh0YXJlYS1zZXRpbm5lcmh0bWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTI4NykKKysr
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2V0aW5uZXJodG1sLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtOSwzICs5LDQgQEAgbGF5ZXIgYXQgKDExLDExKSBzaXplIDE2
MXgyNgogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMSwxKSBzaXplIDE2MXgyNgogICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMywwKSBzaXplIDYzeDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMyww
KSB3aWR0aCA2MzogIlRlc3QgUGFzc2VkIgorICAgIFJlbmRlckJSIHtCUn0gYXQgKDY2LDExKSBz
aXplIDB4MApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjg3KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw1MSBAQAorMjAwNy0wNS0wNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgLSBmaXggaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDIKKyAg
ICAgICAgICBBbWF6b24gcHJvZHVjdCBwYWdlcyBrZWVwIHJlcGFpbnRpbmcgb3ZlciBhbmQgb3Zl
ciBhZ2FpbgorCisgICAgICAgIC0gZml4IGZpcnN0LWxldHRlciB3aGVuIHRoZSB0ZXh0IG9mIHRo
ZSBhZmZlY3RlZCB0ZXh0IG5vZGUgaXMgY2hhbmdlZAorCisgICAgICAgIE9wdGltaXplIHNldElu
bmVySFRNTCwgc2V0T3V0ZXJIVE1MLCBhbmQgc2V0SW5uZXJUZXh0IHNvIHRoZXkgZG9uJ3QgY2hh
bmdlIHRoZSBET00gYXQgYWxsCisgICAgICAgIGlmIHRoZXkgZG9uJ3QgbmVlZCB0by4KKworICAg
ICAgICBUZXN0OiBmYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5uZXItb3V0ZXItb3B0aW1pemF0
aW9uLmh0bWwKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWRldGFjaC5odG1s
CisKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVx
dWFsKTogQWRkZWQuIEhlbHBlciBmdW5jdGlvbiB0aGF0IGNvbXBhcmVzIHR3byBUZXh0IG5vZGVz
IG9yIHR3byBOYW1lZEF0dHJNYXAKKyAgICAgICAgYXR0cmlidXRlIG1hcHMuCisgICAgICAgIChX
ZWJDb3JlOjpzaGFsbG93RXF1YWwpOiBBZGRlZC4gSGVscGVyIGZ1bmN0aW9uIHRoYXQgY29tcGFy
ZXMgdHdvIEVsZW1lbnQgbm9kZXMgb3IgdHdvCisgICAgICAgIGFyYml0cmFyeSBub2Rlcy4KKyAg
ICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCk6IEFkZGVkLiBIZWxw
ZXIgZnVuY3Rpb24gdXNlZCBieSBzZXRJbm5lckhUTUwgYW5kCisgICAgICAgIHNldElubmVyVGV4
dC4gT3B0aW1pemVzIHRoZSBjYXNlcyB3aGVyZSBhbGwgdGhlIG5vZGVzIGFyZSB0aGUgc2FtZSwg
d2hlcmUgYm90aCB0aGUgY3VycmVudAorICAgICAgICBhbmQgdGhlIG5ldyBjb250ZW50IGFyZSBz
aW5nbGUgdGV4dCBub2RlcywgYW5kIHdoZXJlIHRoZSBjdXJyZW50IGNvbnRlbnQgaXMgYSBzaW5n
bGUgbm9kZQorICAgICAgICB0aGF0IGNhbiBiZSByZXBsYWNlZCB3aXRoIHJlcGxhY2VDaGlsZC4K
KyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KTogQWRkZWQuIEhlbHBl
ciBmdW5jdGlvbiB1c2VkIGJ5IHNldElubmVyVGV4dC4gT3B0aW1pemVzCisgICAgICAgIHRoZSBj
YXNlIHdoZXJlIHRoZSBjdXJyZW50IGNvbnRlbnQgaXMgYSBzaW5nbGUgdGV4dCBub2RlIG9yIGEg
c2luZ2xlIG5vZGUgdGhhdCBjYW4gYmUKKyAgICAgICAgcmVwbGFjZWQgd2l0aCByZXBsYWNlQ2hp
bGQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SW5uZXJIVE1MKTogQ2hhbmdl
ZCB0byBjYWxsIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudC4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxFbGVtZW50OjpzZXRPdXRlckhUTUwpOiBBZGRlZCBzcGVjaWFsIGNhc2UgdG8gb3B0aW1p
emUgd2hlbiB0aGUgbmV3IGNvbnRlbnQKKyAgICAgICAgZXhhY3RseSBtYXRjaGVzIHRoZSBjdXJy
ZW50IG5vZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KTog
Q2hhbmdlZCB0byBjYWxsIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0IGluIGEgZmV3CisgICAgICAg
IGNhc2VzIGluc3RlYWQgb2YgZG9pbmcgcmVtb3ZlQ2hpbGRyZW4vYXBwZW5kQ2hpbGQuIENoYW5n
ZWQgY29kZSB0aGF0IHdhcyB1c2luZworICAgICAgICBEZXByZWNhdGVkU3RyaW5nIHRvIGluc3Rl
YWQgdXNlIFN0cmluZy4gQ2hhbmdlZCBnZW5lcmFsIGNhc2UgdG8gdXNlIGEgZG9jdW1lbnQgZnJh
Z21lbnQKKyAgICAgICAgYW5kIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudC4KKworICAgICAg
ICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDogKFdlYkNvcmU6OkNoYXJhY3RlckRhdGE6OmRpc3Bh
dGNoTW9kaWZpZWRFdmVudCk6CisgICAgICAgIEZpeGVkIGJ1ZyB3aGVyZSB3ZSB3b3VsZCBub3Qg
ZGlzcGF0Y2ggdGhlIERPTVN1YnRyZWVNb2RpZmllZCBldmVudCB1bmxlc3Mgc29tZW9uZQorICAg
ICAgICB3YXMgcmVnaXN0ZXJlZCBmb3IgdGhlIERPTUNoYXJhY3RlckRhdGFNb2RpZmllZCBldmVu
dC4gQ2F1c2VkIHRyb3VibGUgaW4gdGhlIHRlc3QuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dC5oOiBNYWRlIHNldFRleHRJbnRlcm5hbCB2aXJ0dWFsIHNvIHRoYXQgUmVuZGVyVGV4
dEZyYWdtZW50IGNhbiBkbworICAgICAgICBhcHByb3ByaWF0ZSB3b3JrIHdoZW4gdGhlIHRleHQg
Y2hhbmdlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaDogQWRk
ZWQgYW4gb3ZlcnJpZGUgb2Ygc2V0VGV4dEludGVybmFsLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0RnJhZ21lbnQuY3BwOiAoV2ViQ29yZTo6UmVuZGVyVGV4dEZyYWdtZW50OjpzZXRU
ZXh0SW50ZXJuYWwpOgorICAgICAgICBXaGVuIHRoZSB0ZXh0IGNoYW5nZXMsIGRlc3Ryb3kgdGhl
IGZpcnN0LWxldHRlciBub2RlIGFuZCByZXNldCB0aGUgZnJhZ21lbnQgdmFsdWVzIHNvCisgICAg
ICAgIHRoYXQgUmVuZGVyQmxvY2s6OnVwZGF0ZUZpcnN0TGV0dGVyLCB3aGljaCB3aWxsIHJ1biBk
dXJpbmcgbGF5b3V0LCB3aWxsIGNyZWF0ZSBhIG5ldworICAgICAgICBmaXJzdC1sZXR0ZXIgY2hp
bGQuIE90aGVyd2lzZSB3ZSBlbmQgdXAgd2l0aCB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBvbGQg
dGV4dC4KKwogMjAwNy0wNS0wNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgLSByb2xsaW5nIG91dCBzZXRJbm5lckhUTUwgb3B0aW1pemF0aW9uIHVudGlsIEkgY2Fu
IGZpZ3VyZSBvdXQgd2h5IHRlc3RzIGFyZSBmYWlsaW5nCkluZGV4OiBXZWJDb3JlL2RvbS9DaGFy
YWN0ZXJEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNw
cAkocmV2aXNpb24gMjEyODcpCisrKyBXZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjI5LDE1ICsyMjksMTQgQEAgdm9pZCBDaGFyYWN0ZXJEYXRhOjpkaXNw
YXRjaE1vZGlmaWVkRXZlbgogewogICAgIGlmIChwYXJlbnROb2RlKCkpCiAgICAgICAgIHBhcmVu
dE5vZGUoKS0+Y2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgaWYgKCFkb2N1bWVudCgpLT5oYXNMaXN0
ZW5lclR5cGUoRG9jdW1lbnQ6OkRPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9MSVNURU5FUikpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZ0ltcGwgKm5ld1ZhbHVlID0gc3RyLT5jb3B5KCk7
Ci0gICAgbmV3VmFsdWUtPnJlZigpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGRp
c3BhdGNoRXZlbnQobmV3IE11dGF0aW9uRXZlbnQoRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkRXZl
bnQsCi0gICAgICAgICAgICAgICAgICB0cnVlLGZhbHNlLDAscHJldlZhbHVlLG5ld1ZhbHVlLFN0
cmluZygpLDApLGVjKTsKLSAgICBuZXdWYWx1ZS0+ZGVyZWYoKTsKKyAgICBpZiAoZG9jdW1lbnQo
KS0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElT
VEVORVIpKSB7CisgICAgICAgIFN0cmluZ0ltcGwgKm5ld1ZhbHVlID0gc3RyLT5jb3B5KCk7Cisg
ICAgICAgIG5ld1ZhbHVlLT5yZWYoKTsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Cisg
ICAgICAgIGRpc3BhdGNoRXZlbnQobmV3IE11dGF0aW9uRXZlbnQoRE9NQ2hhcmFjdGVyRGF0YU1v
ZGlmaWVkRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxmYWxzZSwwLHByZXZWYWx1
ZSxuZXdWYWx1ZSxTdHJpbmcoKSwwKSxlYyk7CisgICAgICAgIG5ld1ZhbHVlLT5kZXJlZigpOwor
ICAgIH0KICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9CiAKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAkocmV2aXNpb24gMjEyODcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQsNyArMjc0LDEyNyBAQCBQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IEhUTUxFbGVtZW50CiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2Uo
KTsKIH0KIAotdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyAmaHRt
bCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgZXF1YWwoTmFtZWRBdHRy
TWFwKiBhLCBOYW1lZEF0dHJNYXAqIGIpCit7CisgICAgLy8gZW1wdHkgbWFwczsgZW1wdHkgYW5k
IG51bGwgbWFwcyBhcmUgZXF1aXZhbGVudAorICAgIGlmICghYSkgeworICAgICAgICBpZiAoIWIp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuICFiLT5sZW5ndGgoKTsK
KyAgICB9CisgICAgaWYgKCFiKQorICAgICAgICByZXR1cm4gIWEtPmxlbmd0aCgpOworCisgICAg
dW5zaWduZWQgbGVuID0gYS0+bGVuZ3RoKCk7CisgICAgaWYgKGItPmxlbmd0aCgpICE9IGxlbikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bjsgKytpKSB7CisgICAgICAgIEF0dHJpYnV0ZSogYWEgPSBhLT5hdHRyaWJ1dGVJdGVtKGkpOwor
ICAgICAgICBBdHRyaWJ1dGUqIGJhID0gYi0+YXR0cmlidXRlSXRlbShpKTsKKyAgICAgICAgaWYg
KGFhLT5uYW1lKCkgIT0gYmEtPm5hbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgaWYgKGFhLT52YWx1ZSgpICE9IGJhLT52YWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW5saW5lIGJv
b2wgc2hhbGxvd0VxdWFsKEVsZW1lbnQqIGEsIEVsZW1lbnQqIGIpCit7CisgICAgcmV0dXJuIGEt
PnRhZ1FOYW1lKCkgPT0gYi0+dGFnUU5hbWUoKSAmJiBlcXVhbChhLT5hdHRyaWJ1dGVzKGZhbHNl
KSwgYi0+YXR0cmlidXRlcyhmYWxzZSkpOworfQorCitzdGF0aWMgYm9vbCBzaGFsbG93RXF1YWwo
Tm9kZSogYSwgTm9kZSogYikKK3sKKyAgICBOb2RlOjpOb2RlVHlwZSB0YSA9IGEtPm5vZGVUeXBl
KCk7CisgICAgTm9kZTo6Tm9kZVR5cGUgdGIgPSBiLT5ub2RlVHlwZSgpOworICAgIGlmICh0YSAh
PSB0YikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3dpdGNoICh0YSkgeworICAgICAg
ICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X0ZSQUdNRU5UX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6RU5U
SVRZX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICAg
ICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VT
U0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFD
RV9OT0RFOgorICAgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGNvbXBhcmluZyB0aGVzZSBub2Rl
IHR5cGVzIGZvciBub3c7IHRoZXkgZG9uJ3QgdHlwaWNhbGx5IG9jY3VyLgorICAgICAgICAgICAg
Ly8gU2luY2UgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIG9ubHkgZm9yIG9wdGltaXphdGlvbiwg
aXQncyBPSyB0byBoYXZlIGEgZmFsc2UgbmVnYXRpdmUuCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICBjYXNl
IE5vZGU6OkNPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CisgICAg
ICAgICAgICByZXR1cm4gZXF1YWwoc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YSo+KGEpLT5zdHJp
bmcoKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oYiktPnN0
cmluZygpKTsKKyAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CisgICAgICAgICAgICBy
ZXR1cm4gc2hhbGxvd0VxdWFsKHN0YXRpY19jYXN0PEVsZW1lbnQqPihhKSwgc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KGIpKTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dChIVE1MRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgTm9kZSogZmlyc3RDaGlsZCA9IGVsZW1l
bnQtPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBmcmFnbWVudEZpcnN0Q2hpbGQgPSBmcmFnbWVu
dC0+Zmlyc3RDaGlsZCgpOworCisgICAgaWYgKCFmcmFnbWVudEZpcnN0Q2hpbGQpIHsKKyAgICAg
ICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIE5vZGUqIGEgPSBmaXJzdENoaWxkOworICAgIE5vZGUqIGIgPSBmcmFnbWVudEZpcnN0Q2hp
bGQ7CisgICAgd2hpbGUgKGEgJiYgYikgeworICAgICAgICBpZiAoIXNoYWxsb3dFcXVhbChhLCBi
KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBhID0gYS0+dHJhdmVyc2VOZXh0Tm9kZShl
bGVtZW50KTsKKyAgICAgICAgYiA9IGItPnRyYXZlcnNlTmV4dE5vZGUoZnJhZ21lbnQuZ2V0KCkp
OworICAgIH0KKyAgICBpZiAoIWEgJiYgIWIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChm
aXJzdENoaWxkICYmICFmaXJzdENoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICgh
ZnJhZ21lbnRGaXJzdENoaWxkLT5uZXh0U2libGluZygpICYmIGZpcnN0Q2hpbGQtPmlzVGV4dE5v
ZGUoKSAmJiBmcmFnbWVudEZpcnN0Q2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8VGV4dCo+KGZpcnN0Q2hpbGQpLT5zZXREYXRhKHN0YXRpY19jYXN0PFRleHQq
PihmcmFnbWVudEZpcnN0Q2hpbGQpLT5zdHJpbmcoKSwgZWMpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwgZmly
c3RDaGlsZCwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZWxlbWVudC0+cmVt
b3ZlQ2hpbGRyZW4oKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOwor
fQorCitzdGF0aWMgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChIVE1MRWxlbWVudCogZWxl
bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBOb2Rl
KiBmaXJzdENoaWxkID0gZWxlbWVudC0+Zmlyc3RDaGlsZCgpOworICAgIGlmIChmaXJzdENoaWxk
ICYmIGZpcnN0Q2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICBpZiAoZXF1YWwoc3RhdGlj
X2Nhc3Q8VGV4dCo+KGZpcnN0Q2hpbGQpLT5zdHJpbmcoKSwgdGV4dC5pbXBsKCkpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBzdGF0aWNfY2FzdDxUZXh0Kj4oZmlyc3RDaGlsZCktPnNl
dERhdGEodGV4dCwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPFRl
eHQ+IHRleHROb2RlID0gbmV3IFRleHQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgdGV4dCk7CisKKyAg
ICBpZiAoZmlyc3RDaGlsZCAmJiAhZmlyc3RDaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAg
ICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxkLCBl
Yyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJl
bigpOworICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMpOwor
fQorCit2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQgPSBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoaHRtbCk7CiAgICAgaWYgKCFmcmFnbWVudCkg
ewpAQCAtMjgyLDExICs0MDIsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29u
c3QgU3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogQWRkIHNwZWNp
YWwgY2FzZSBmb3Igd2hlbiB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdlIGp1c3Qgd2FudCB0
byBzZXQgaXRzIHRleHQ/Ci0gICAgLy8gRklYTUU6IEFkZCBzcGVjaWFsIGNhc2UgZm9yIGNhc2Vz
IHdoZXJlIHdlIGNhbiB1c2UgcmVwbGFjZUNoaWxkPwotCi0gICAgcmVtb3ZlQ2hpbGRyZW4oKTsK
LSAgICBhcHBlbmRDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICByZXBsYWNlQ2hp
bGRyZW5XaXRoRnJhZ21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CiB9CiAKIHZv
aWQgSFRNTEVsZW1lbnQ6OnNldE91dGVySFRNTChjb25zdCBTdHJpbmcgJmh0bWwsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtMzA0LDggKzQyMCwyNSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRl
ckhUTUwoY29uc3QgU3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTog
QWRkIHNwZWNpYWwgY2FzZSBmb3Igd2hlbiB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdlIGp1
c3Qgd2FudCB0byBzZXQgaXRzIHRleHQ/CiAgICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMg
aGF2ZSBjb2RlIHRvIG1lcmdlIG5laWdoYm9yaW5nIHRleHQgbm9kZXMgdGhlIHdheSBzZXRPdXRl
clRleHQgZG9lcz8KKworICAgIC8vIENoZWNrIHRvIHNlZSBpZiBjb250ZW50IGlzIGlkZW50aWNh
bC4KKyAgICBOb2RlKiBmcmFnbWVudEZpcnN0Q2hpbGQgPSBmcmFnbWVudC0+Zmlyc3RDaGlsZCgp
OworICAgIGlmIChmcmFnbWVudEZpcnN0Q2hpbGQgJiYgIWZyYWdtZW50Rmlyc3RDaGlsZC0+bmV4
dFNpYmxpbmcoKSkgeworICAgICAgICBOb2RlKiBuZXh0ID0gbmV4dFNpYmxpbmcoKTsKKworICAg
ICAgICBOb2RlKiBhID0gdGhpczsKKyAgICAgICAgTm9kZSogYiA9IGZyYWdtZW50Rmlyc3RDaGls
ZDsKKyAgICAgICAgd2hpbGUgKGEgIT0gbmV4dCAmJiBiKSB7CisgICAgICAgICAgICBpZiAoIXNo
YWxsb3dFcXVhbChhLCBiKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGEg
PSBhLT50cmF2ZXJzZU5leHROb2RlKHBhcmVudCk7CisgICAgICAgICAgICBiID0gYi0+dHJhdmVy
c2VOZXh0Tm9kZShmcmFnbWVudC5nZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGEgPT0g
bmV4dCAmJiAhYikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBwYXJlbnQtPnJl
cGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIHRoaXMsIGVjKTsKIH0KIApAQCAtMzI1LDE1
ICs0NTgsMTMgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cgogICAg
IH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgdGFrZSB3aGl0ZXNwYWNlIGNvbGxhcHNp
bmcgaW50byBhY2NvdW50IGF0IGFsbC4KLSAgICAvLyBGSVhNRTogQWRkIHNwZWNpYWwgY2FzZSBm
b3Igd2hlbiB3ZSBoYWQgb25lIHRleHQgY2hpbGQgYW5kIHdlIGp1c3Qgd2FudCB0byBzZXQgaXRz
IHRleHQ/Ci0gICAgLy8gRklYTUU6IEFkZCBzcGVjaWFsIGNhc2UgZm9yIGNhc2VzIHdoZXJlIHdl
IGNhbiB1c2UgcmVwbGFjZUNoaWxkPwotCi0gICAgcmVtb3ZlQ2hpbGRyZW4oKTsKIAogICAgIGlm
ICghdGV4dC5jb250YWlucygnXG4nKSAmJiAhdGV4dC5jb250YWlucygnXHInKSkgewotICAgICAg
ICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkgeworICAg
ICAgICAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
YXBwZW5kQ2hpbGQobmV3IFRleHQoZG9jdW1lbnQoKSwgdGV4dCksIGVjKTsKKyAgICAgICAgfQor
ICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dCh0aGlzLCB0ZXh0LCBlYyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTM0MywxOSArNDc0LDE5IEBAIHZvaWQgSFRNTEVsZW1lbnQ6
OnNldElubmVyVGV4dChjb25zdCBTdHIKICAgICBSZW5kZXJPYmplY3QqIHIgPSByZW5kZXJlcigp
OwogICAgIGlmIChyICYmIHItPnN0eWxlKCktPnByZXNlcnZlTmV3bGluZSgpKSB7CiAgICAgICAg
IGlmICghdGV4dC5jb250YWlucygnXHInKSkgewotICAgICAgICAgICAgYXBwZW5kQ2hpbGQobmV3
IFRleHQoZG9jdW1lbnQoKSwgdGV4dCksIGVjKTsKKyAgICAgICAgICAgIHJlcGxhY2VDaGlsZHJl
bldpdGhUZXh0KHRoaXMsIHRleHQsIGVjKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQotICAgICAgICAvLyBGSVhNRTogU3RpY2sgd2l0aCBTdHJpbmcgb25jZSBpdCBoYXMgYSByZXBs
YWNlIHRoYXQgY2FuIGRvIHRoaXMuCi0gICAgICAgIERlcHJlY2F0ZWRTdHJpbmcgdGV4dFdpdGhD
b25zaXN0ZW50TGluZUJyZWFrcyA9IHRleHQuZGVwcmVjYXRlZFN0cmluZygpOworICAgICAgICBT
dHJpbmcgdGV4dFdpdGhDb25zaXN0ZW50TGluZUJyZWFrcyA9IHRleHQ7CiAgICAgICAgIHRleHRX
aXRoQ29uc2lzdGVudExpbmVCcmVha3MucmVwbGFjZSgiXHJcbiIsICJcbiIpOwogICAgICAgICB0
ZXh0V2l0aENvbnNpc3RlbnRMaW5lQnJlYWtzLnJlcGxhY2UoJ1xyJywgJ1xuJyk7Ci0gICAgICAg
IGFwcGVuZENoaWxkKG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHRXaXRoQ29uc2lzdGVudExpbmVC
cmVha3MpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KHRoaXMsIHRleHRX
aXRoQ29uc2lzdGVudExpbmVCcmVha3MsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIC8vIEFkZCB0ZXh0IG5vZGVzIGFuZCA8YnI+IGVsZW1lbnRzLgogICAgIGVjID0gMDsKKyAg
ICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBuZXcgRG9jdW1lbnRGcmFnbWVu
dChkb2N1bWVudCgpKTsKICAgICBpbnQgbGluZVN0YXJ0ID0gMDsKICAgICBVQ2hhciBwcmV2ID0g
MDsKICAgICBpbnQgbGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKQEAgLTM2MywxMiArNDk0LDEyIEBA
IHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVyVGV4dChjb25zdCBTdHIKICAgICAgICAgVUNoYXIg
YyA9IHRleHRbaV07CiAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAnXHInKSB7CiAgICAg
ICAgICAgICBpZiAoaSA+IGxpbmVTdGFydCkgewotICAgICAgICAgICAgICAgIGFwcGVuZENoaWxk
KG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHQuc3Vic3RyaW5nKGxpbmVTdGFydCwgaSAtIGxpbmVT
dGFydCkpLCBlYyk7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5ldyBU
ZXh0KGRvY3VtZW50KCksIHRleHQuc3Vic3RyaW5nKGxpbmVTdGFydCwgaSAtIGxpbmVTdGFydCkp
LCBlYyk7CiAgICAgICAgICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIShjID09ICdcbicgJiYgaSAhPSAw
ICYmIHByZXYgPT0gJ1xyJykpIHsKLSAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZChuZXcgSFRN
TEJSRWxlbWVudChkb2N1bWVudCgpKSwgZWMpOworICAgICAgICAgICAgICAgIGZyYWdtZW50LT5h
cHBlbmRDaGlsZChuZXcgSFRNTEJSRWxlbWVudChkb2N1bWVudCgpKSwgZWMpOwogICAgICAgICAg
ICAgICAgIGlmIChlYykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQpAQCAtMzc3LDcgKzUwOCw4IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVyVGV4dChjb25z
dCBTdHIKICAgICAgICAgcHJldiA9IGM7CiAgICAgfQogICAgIGlmIChsZW5ndGggPiBsaW5lU3Rh
cnQpCi0gICAgICAgIGFwcGVuZENoaWxkKG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHQuc3Vic3Ry
aW5nKGxpbmVTdGFydCwgbGVuZ3RoIC0gbGluZVN0YXJ0KSksIGVjKTsKKyAgICAgICAgZnJhZ21l
bnQtPmFwcGVuZENoaWxkKG5ldyBUZXh0KGRvY3VtZW50KCksIHRleHQuc3Vic3RyaW5nKGxpbmVT
dGFydCwgbGVuZ3RoIC0gbGluZVN0YXJ0KSksIGVjKTsKKyAgICByZXBsYWNlQ2hpbGRyZW5XaXRo
RnJhZ21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVs
ZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJpbmcgJnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkocmV2aXNpb24gMjEyNzcpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBA
QCBwdWJsaWM6CiAgICAgaW50IGFsbG93VGFicygpIGNvbnN0IHsgcmV0dXJuICFzdHlsZSgpLT5j
b2xsYXBzZVdoaXRlU3BhY2UoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBzZXRUZXh0SW50
ZXJuYWwoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPik7CisgICAgdmlydHVhbCB2b2lkIHNldFRleHRJ
bnRlcm5hbChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KTsKICAgICB2aXJ0dWFsIHZvaWQgY2FsY1By
ZWZXaWR0aHMoaW50IGxlYWRXaWR0aCk7CiAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAJKHJldmlzaW9uIDIxMjc3KQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsx
LDcgQEAKLS8qKgotICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIERPTSBpbXBsZW1lbnRhdGlv
biBmb3IgS0RFLgotICoKKy8qCiAgKiAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU3LDkgKzU1LDIxIEBAIFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gUmVuZGVyVGV4dEZyYWdtZW4KIAogdm9pZCBSZW5kZXJUZXh0RnJhZ21lbnQ6OmRl
c3Ryb3koKQogewotICAgIGlmIChmaXJzdExldHRlcigpKQotICAgICAgICBmaXJzdExldHRlcigp
LT5kZXN0cm95KCk7CisgICAgaWYgKG1fZmlyc3RMZXR0ZXIpCisgICAgICAgIG1fZmlyc3RMZXR0
ZXItPmRlc3Ryb3koKTsKICAgICBSZW5kZXJUZXh0OjpkZXN0cm95KCk7CiB9CiAKK3ZvaWQgUmVu
ZGVyVGV4dEZyYWdtZW50OjpzZXRUZXh0SW50ZXJuYWwoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiB0
ZXh0KQoreworICAgIFJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5hbCh0ZXh0KTsKKyAgICBpZiAo
bV9maXJzdExldHRlcikgeworICAgICAgICBBU1NFUlQoIW1fZ2VuZXJhdGVkQ29udGVudFN0cik7
CisgICAgICAgIG1fZmlyc3RMZXR0ZXItPmRlc3Ryb3koKTsKKyAgICAgICAgbV9maXJzdExldHRl
ciA9IDA7CisgICAgICAgIG1fc3RhcnQgPSAwOworICAgICAgICBtX2VuZCA9IHRleHRMZW5ndGgo
KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRGcmFnbWVudC5oCShyZXZpc2lvbiAyMTI3NykKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsNyBA
QAogLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBET00gaW1wbGVtZW50YXRpb24gZm9y
IEtERS4KLSAqCiAgKiAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogKEMp
IDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTUwLDYgKzQ4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5hbFRleHQoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEludGVybmFsKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pOwor
CiAgICAgdW5zaWduZWQgbV9zdGFydDsKICAgICB1bnNpZ25lZCBtX2VuZDsKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9nZW5lcmF0ZWRDb250ZW50U3RyOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZmlyc3QtbGV0dGVyLWRldGFjaC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3Qg
ZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFw
cGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllD
QVlBQUFDYWRvSndBQUFnQUVsRVFWUjRuT3pkZVZ4VVZmOEg4TThNaUNnbwpDaUpxNWI0dllScVZZ
Um51OXRNczA4UTF6UkpmWm90RzJXTXUxYU9aZTlxanBwbVdpUS91dVlNaVl1NGJhcHFXYSs0Z3ln
NHp3eXlmCjN4OFRWMmFZRlJIMTZmdCt2WHk5dlBlZU9mZWM3ejFudU9mZWMrK29TQkpDQ0NHRUVF
SUlVUUxVRDdvQVFnZ2hoQkJDaUg4T0dZQUkKSVlRUVFnZ2hTb3dNUUlRUVFnZ2hoQkFsUmdZZ1Fn
Z2hoQkJDaUJJakF4QWhoQkJDQ0NGRWlaRUJpQkJDQ0NHRUVLTEV5QUJFQ0NHRQpFRUlJVVdKa0FD
S0VFRUlJSVlRb01USUFFVUlJSVlRUVFwU1lSMllBY3V2V0xjVEh4eU0xTmZWQkYwVUlJWVFRUWdo
UlJFNEhJRjI3CmRrWEZpaFhSdVhObnZQSEdHL0R3OEVDdFdyWFFzMmRQdEc3ZEdoNGVIbGk2ZE9s
OUxlVENoUXNSSFIyTlhidDJvVW1USnREcGRQZWMKcDlFSW5EMXJ3dHExZWx5NVlpcUdVcnFPQkRJ
ekN5L241Z0x4OFFiTW1hUEQ1Y3NsV3lZQU1KbnVsdWZTSlJNMmJkTGp4QWxqb2VWSAptY2tFbkRo
aFJGUlVIazZlTE5tNm1FcitrTHJFdWoxYWU1Qjl4ZHFEN2lORllldTRYNzFLR08wMFAzdnRwTGph
N3UrL203Qi92N2xmClcwdE5KZmJzTVNqL2poMnp2NTlidDRndFd3eElUcmJNNk5JbEU5YXMwZVAy
YlJzNytCOWhzbk9RakVZanpwNDlpN1ZyMStMS2xTc2wKWEtwNzkvdnZ2MlAxNnRWSVMwdHp1dDFl
RElvRFNWeTZkQW1iTm0zQ2lSTW43dHQrSGthUGVodTZWeWFUQ1NkT25FQlVWQlJPbmp4WgpiSGtD
UUc1dUx1TGo0ekZuemh4Y3ZueTVVTHJpYUhmM3MxLzhyM0U2QU5IcjlVaE1URVJNVEF4V3Jsd0pM
eTh2dlBUU1MxaTllalgyCjdObURhZE9tUWF2VkZya0FPcDBPTzNmdXRMczlKeWNIbzBhTndvZ1JJ
L0RGRjE5Z3pabzFLRjI2ZEpIM2wwK2pBYlp0MDZObnp4eVUKS2FPNjUvemNzWEdqSG5QbmFnc3Rx
OVhBWDMrWkVCbXBnYjkveWQ2Y1NrdzB3dDgvSFRkdkVubzljUFNvRWQyNlpTTXZENFdXSDJVbQpF
M0R0bWduOSsrZkF3NlBram52QitENXNyTnVqdFFmWlY2dzl5RDVTRk5iSC9mWnRZdWpRWE55NFlj
S1lNUnI4OEVPZXcvUUYzV3ZiCk5abUE2ZE4xaUl2VFkreFlEUm8xeWl6VW56LytXSU5YWDgxUi9p
MWVYTGpELy94ekhqcDN6c2IyN1hxMGIrK0pvQ0J6V1F3R1lPREEKWFB6OGN4NGFOL1pBMzc0NWo4
d2cwUjJKaVludzkvZkh6WnMzQzIzVGFEVFl0bTBiZXZic2lUSmx5anlBMGhYZGtpVkxzR25USnFT
awpwR0RFaUJFT3QvZnQyOWR1RElxRFhxL0gwYU5IMGExYk4rUTk2bjkwM1BRb3Q2SGlZREtaY08z
YU5mVHYzeDhlSGg3M25GL0IvcXBXCnEvSFhYMzhoTWpJUy92NytoZExlYTd0ejlOMGdDdk4wbG1E
VXFGR29WYXVXM2UwUkVSRTRmdnk0eXpza0NaWEsvQWRMcjlkandJQUIKYU5xMEtjTEN3bXltUDNu
eUpQTHk4cUJXbTA4Mm5uLytlWmYzNVlpdkwxQ2hnZ290V25nZ01ORCtIL1ByMTRuSEhsUFpYUzZL
SDMvTQp3OXk1WlFzdGUzc0RHZzBSR3VxSmN1WHVhUmR1cTFGRGpXSERTaU1nUUFVdkw2QnlaUlg4
L2RWbzJkSURhclhsOHFQTTB4UEl5d09xClYxZWpjZU9TTzRFdEdOK0hqWFY3dE9acVh5a0pEN0tQ
RklYMWNWKzJMQTlHSS9Ec3N4N3c4UEJDMTY3WkdEVElDL2wvWngyMWszdHQKdTdkdUVTTkdsSWEz
TnpCNGNHbFVySmlPclZ2MTZONjlGQURnOUdrVHFsVlQ0L1p0UDV1ZjEycUJFU055Y2ZxMEVSczMr
aFlxNDVBaAp1YWhUUjQzeDQ3MEJBTjI3bDhLa1NWb3NYR2kvYlQyS2F0U29nV0hEaGlFZ0lFQlpk
LzM2ZFR6MjJHUHc5ZlZGaFFvVjBLSkZDd1FHCkJqN0FVcm9uSlNVRlgzNzVKYzZmUDQvYzNGeDA2
OWJONGZiV3JWc2pLaXJLSWdidXlvK1pMVjVlWHFoY3VUTDgvZjNSc21YTEl1WG4KS1ArSDJhUGFo
b3FMcDZjbjh2THlVTDE2ZFRSdTNQaWU4eXZZWDcyOHZLRFJhQkFhR29weU52NkFGS1hkMmR1WGNN
N3BBS1JUcDA0Twp0L3Y0K0NBME5CUUFrSnljakNsVHB1RG8wYVBJenM3RzNMbHo4ZHh6endFQVZx
eFlnZFRVVkdSbVptTDkrdlhZdDI4ZnZ2bm1HMnpZCnNBSG56NS9IaFFzWE1HL2VQUGo0K0NoNUwx
cTBDS3RYcjRiQllNQzc3NzZMTW1YS1lQcjA2Y2pPenNhbm4zNkswcVZMNDhLRkM2aGUKdlRxbVRK
bUNNbVhLSURFeEVRc1dMRUJnWUNES2xDbURiNzc1QnBzM2I4WXp6enhUcU95eHNRWjA2bFRLYnQx
V3I5Wmp6Wm84L1BlLwpQamFYaStMR0RVS2xBcXBXVmRsYzNycFZqODZkN1pmcGZna0lVT0hycis5
ZWJkbTYxWHgxOCs5eFg2SGxSOW02ZFhwMDZWS3lNYmFPCjc4UEN1djNaNDZ5dmxLUUgxVWVLd3Zx
NFIwU1VSbTZ1K2U3R2hnMTZQUDY0R2dVdjhqbHJKL2ZTZHF0VXVYdU1kK3pRbzA0ZE5UcDAKdUp2
WDJMRWFaR2NUYTlibzBiVnJLUlM4MFp5WEI3ejRZaGE4dklEWTJIS0ZCbisvL0tMSDFxMTZYTGh3
ZC9EaTU2ZkN2bjJHSXBYMQpZUllRRUlDdnYvNWFXVjY5ZWpYV3JGbUQvLzczdndDQTJOaFlwMzgz
SHpiLytjOS8wTDU5ZTNoNGVLQmN1WEtGVHM2c3R6ZHIxc3dpCkJ1NnlqcGt0VzdkdVJmdjI3WldM
ais3azUwcitEN05Ic1EwVnAzWHIxcUZMbHk3RmtwZDFmOTI2ZFNzNmQrNXNONzA3N2M3WnZvUVQK
ZEpPM3R6Y0hEUnBVYUwzQllHQ1hMbDJZbVpsSm85SElpSWdJQmdZR01pMHRqWHE5bms4Ly9iU1Nk
dVRJa1RRYWpTVEptalZyOHF1dgp2cks3djVVclYxS3RWbHVzZS9IRkY3bDA2VktTWkY1ZUhwOTU1
aGwyN2RxVkpMbC8vMzVXckZpUnpaczM1K3JWcXhrUkVjR3paODhXCnl0ZGtJb09DMHZucnIzb2VQ
R2hnKy9aWkRBN09wRjVQNnZYa3lKRzU5UFJNWTVjdVdWeTZWR2V4dkdTSmpqTm1hRm1uVGdhWExk
TngKMmpRdFc3VElaTy9lMmRSb0NzYUVmUHJwVEU2ZHFsWFdUWnFrNFlZTmVUYVh0VnF5Yk5rMDd0
MXI0TXlaNWp6NzlNbG1Sb2E1VERObQphRm0vZmdZM2I5WXJkV2pYTG92YnQrdVYvQklURGZ6NmF5
MmpvL1BZcDA4MkowM1NjUDkrQTBseTVrd3RRME16bFg5dnZKRk52Wjc4CitXY2RuM29xaytQSDN5
MTg4K2FaWExSSVozYzVJNFA4N0RNTjU4N1Zjc1lNTGR1MnplTDY5WGZyWlMwemt4dzdWc01mZjlS
eHdnUU4KSjA4MjcwdWpvVXV4TkpuSXVYTzEvT0VISGNQRHM3bDl1NTY1dWVTY09WbysrMndtVjZ6
STQvSGo1dU1ZRXBMSnY1c1hTVEk3bXh3MwpUc001YzdTY00wZkxpaFhUK2NzdmQ4dHFyeTY1dWVT
OGVWbys4VVE2dDJ6UmMrSkVEWU9DMHZuZi8rWXhKQ1NUVTZiY1BhNS8vbW5rCjdObm1aWjNPM0xZ
U0U4MXhMeGhmVjh2c2F2enNsZkhzV2FQVDlrQVdibytmZldhTzA1dHY1bkRBZ0J3bDl2YjZpclB5
N2RsamNDdFcKenR6dlBtSkxhcXFKRXlkcXVHeVpqdi8rdDJXOEhPVmxxMS9saTQzVnMxR2pERjY1
WWxMVzJVcnZyTzI2UTZNeEg0OGhRM0k0ZmJxVwp1Ym1XMjNmdDBuUE1HQTByVjA1bjVjcnB2SGJ0
YnRrKy8xeERsU3FOQXdia3NGZXZiSGJ0bXMyRWhMc3hEZzdPNUtlZldtWTRaWXFXCk5XcGsyQ2lI
aGpObXpHQ2RPblc0Yk5reVRwczJqUzFhdEdEdjNyMnBLZERwTXpJeStObG5uM0h1M0xtY01XTUcy
N1p0eS9YcjF5dmIKRXhNVCtmWFhYek02T3BwOSt2VGhwRW1UdUgvL2ZtVzd5V1RpM0xseitjTVBQ
ekE4UEp6YnQyOHZWSlk5ZS9Zd0pDU0VVNlpNVWRiOQorZWVmbkQxN05rbFNwOU14S0NpSWlZbUpK
TW1mZi82WlR6MzFGTWVQSDArOVhzK1JJMGZTMDlPVFhicDBZVlJVRkUwbUU0T0NndmpyCnI3L3k0
TUdEYk4rK1BZT0RnNmt2MkZuK3B0ZnJPV1BHRE5hdlg1K2JOMjlXeXR5dVhUdUxzbjcyMldlY00y
Y08zM3p6VFE0WU1NQ3QKK3VYTHpNemsyTEZqK2VPUFAzTENoQW1jUEhreVNmTElrU01jTTJZTXk1
VXJ4OWRmZjUxang0NmxWbnUzcjlyYXZuanhZaVVHdWJtNQpuRGR2SHA5NDRnbHUyYktGRXlkT1pG
QlFrUEkzMTdyc3RtSm1UL1BtemJsbzBTS0g5YlhPYituU3BUYnp0L1ZaWjJXM2xwcWF5b2tUCkoz
TFpzbVg4OTcvL3pRMGJOampOdzFrYnRuVnNYV2xEam82OXZmYVN6MW1aYmVYdHJNODZ5OU5lKzh1
WG5aM05jZVBHY2M2Y09ad3oKWnc0clZxeklYMzc1eGVVK1l1dllrSmI5bFNTMVdpM0xsaTNMdlh2
M2N1Yk1tV3pSb2dYNzlPbkRqSXk3MzFQNTdXN1BuajFzMDZhTgp4Ym5yaHg5K3lLRkRoOXBzSHdY
M2xadWJ5emx6NXZEWlo1L2xpaFVyZVB6NGNiWnYzNTRoSVNIS3VhOGdpMjBBc256NWNuYnUzSm1i
Ck4yL201czJiK2Zubm54TUExNjlmejVTVUZIcDZlaW9ONlBUcDB6UVl6SCtrYTlhc1dhZ3hGbVE5
QU5tNmRTdlZhalh6OHU3K0VmN3UKdSs4SWdQdjI3U05KdG1yVmluMzY5SEZZajJQSERDeGZQbzBI
RGhnWUhaM0gwNmVOQkZKNTQ0YjVqMjVTa29rcVZSb3ZYemJhWEQ1NwoxcHgrNGtRTmRUb3lPZGxF
dFRxdDBNbkJrQ0U1WExuU3ZNNWtJbDk0SVl0L1Y3M1FjbXlzbmtGQjZadytYY3VrSkJQVDBrejA4
VW5qCmdnWG1FLy9EaHczMDhFaGpmbDlKU05CVHBVcmpyVnZtTXA4N1o2U1BUeHJqNHN4ZlZQa245
dmxsam96TTViNTlCaDQvYnVERWlSb2UKTzJiZWNXWW02ZUdSeHAwN3paKzdlZE5jMS95VEkrdmxH
emRNREFuSjVNR0Q1cy92M1d1Z1dwM0d0TFM3Snl3RlhiNXNaSk1tR1l5UAp2L3NGR2hDUXpzT0hE
UzdGVXFzbHUzWEw1cElsNWppOC9YYU9NcWhMVERUUTB6T05lL1lZdUhKbEhoTVREUVJTZWZ1MnVT
eTNicG40CjNIT1ozTDNidk8vbzZEeDZlYVV4SzRzdTFlWEtGUk05UGRPNGRtMGVEeDB5OE1zdk5j
ektJai85TkpjOWVtUXJ4ekVzTElzZmZIRDMKQkN3eU1wZS8vMjYwR1Y5blpYWTNmdmJLNkt3OVdM
ZS9zMmVOTEZNbWpUb2RhVFNhNjBBNjd5dk95dWRPckp5NTMzM0Uycmx6Um9hRQpaUExjT2ZQMkw3
N1FzRy9mYkpmeXNqN3UrYTVmTi9IMTE3TjU1NDdsOGJaTzc2enR4c1hwV2JGaXV0MS9yNzZhYlpI
L2poMTZEaHFVClF6Ky9ORFpxbEtFY2QydC8vV1ZrdFdycEhEWEtmSXlTazAzMDhrcmorKy9mUFdh
TEZ1bm82NXZHbXpkTlBIN2MzSDUzN0xDczU1QWgKT1d6WExzdm1QczZlUFVzQW5EaHhJblU2SFpP
VGs2bFdxL25MTDcrUUpHL2N1TUdRa0JBZVBIaVFKTGwzNzE2cTFXcW1wYVg5SGZ0ego5UEh4WVZ4
YzNOK3hONThjWGI1OG1hVDVSS05idDI1Y3NtUUpTZkx0dDkvbTFLbFRiWmJsMDA4L1pZOGVQVWlh
VDI3Q3dzTDR3UWNmCktOc2pJeVA1KysrL2t6U2ZTSGw0ZUhEbnpwMGt5YVNrSktwVUttVy94NDRk
WS9ueTVYbmd3QUZHUjBmejlPblRCTUFiTjI3WTNQZmgKdzRmcDRlR2huQUFsSkNSUXBWTHgxcTFi
U3B6S2xDbERuVTVIbzlISXlNaEl0K3QzK2ZKbE5tblNoUEh4OGNxNmdJQUFIajU4bUNUNQp4eDkv
RUFCdjNyeHA4L1BXMjYxamNPWEtGWHA2ZW5MdDJyVThkT2dRdi96eVMyWmxaZGt0dTNYTWJMbDU4
eVpWS2hXdlhMbml0TDdXCitWa3ZPL3FzdmJKYk8zZnVIRU5DUW5qdTNEbVM1QmRmZk1HK2ZmczZ6
TU5aRzdZWEgyZHR5RkY5N09WcHpWNlpuZVh0cU0vYXk5TloKKzd0MTZ4YWZlKzQ1N3Q2OW15UVpI
UjFOTHk4djVUZzQ2eU9Pam8xMVc0Mk5qV1ZRVUJDblQ1L09wS1FrcHFXbDBjZkhod3NXTExEWgo3
aTVkdWtSUFQwOGVQWHFVSkhuOStuVysrZWFiTm1OcXZhL0V4RVI2ZW5weXo1NDlYTGx5SlJNVEV3
bUF0Mi9mdHZuNWY2SmltMUN6CmYvOStaWTZkbDVjWFFrTkRzWDM3ZHJSczJSS1ZLbFZDang0OTBL
MWJON3o3N3J1b1diT214Y05GK2MrRXVPTFFvVU1JREF4RXFWSjMKcHc3a1Q2ODZkdXdZQUtCTW1U
Sk81MDdHeGhyUXZMa256cDB6b25mdlV0aXp4NEI2OVR5VXFTaHhjWHJVcjY5RzllcHFtOHNKQ1Fi
NAorNnN4ZEdocGVIa0JGU3Vxb0ZhajBNT2ppeGFWUmE5ZXBaVFB0Rzd0cVV5NXNGN2V1bFVQZ3dI
bzFhc1Vnb0pVcUZCQmhjcVYxY2pKCk1lZTVlN2NCSVNFZUtGL2VuSDdXTEIyQ2crL095OSsrWFE5
dmJ4VmVlc2s4czI3ZlBnUHExcjFiNWttVHlxQlZLdy9vZE1DenozcWkKZVhQemp1UGo5ZkR4QVVK
RFBmK09qUjROR3FqeHhCTXFtOHVEQitlZ2UvZFNlT1laOCtjdlhqU2lSUXNQVktoUStEaWFUTUNB
QWJsbwoyN1lVd3NMdXp2alQ2NGtqUjR3dXhYTDBhQTMwZW1MZ1FDOUVSZVhoekJramhnenhBZ0Rz
Mm1WQXk1WWV1SFRKaUY2OVN1SG9VU09hCk52VlE1cWNQR1pLTERoMUtvWFZyODc0dlh6WWhOTlFU
dnI1d3FTNzc5aGxRdTdZYVdpMFFFdUtCY2VPODRlc0xOR25pZ2ZQbnpRL1kKcmxpaFI5T21Ia2hL
dXZ2QWJVQ0FTcG1uYngxZloyVjJOMzcyeXVpc1BWaTN2OEJBRlZRcVlOSWs4d3NSeG83MS92djQy
KzhycnBUUApuVmc1YzcvN1NFRUdBOUN2WHc3NjkvZEMzYnJtN2VQSGV5TXF5c2Vsdkt5UGU3NUZp
M1NJaXZLQnY3L2w4YlpPNzZ6dHRtdm5pZFJVClA3di8xcTJ6bkNyYXRxMG5saXdwaXlWTGZIRG1q
Qkc3ZHRtZUhsV2poaHJoNFY0NGU5WjhqQTRkTWtDdkJ5Wk04RmJTdEcvdmlleHMKNHNBQkE4NmVO
Y0hUVTRYbm43ZXNaMHlNSG8wYjIzNW1MQ0VoQWY3Ky9oZzZkQ2k4dkx4UXNXSkZxTlZxNWVITndZ
TUhvM3YzN3NwMworOFdMRjlHaVJRdFVxRkRoNzlodmg3ZTNOMTU2NmFXL1k3OFBkZXZXUmZYcTFR
RUFvMGVQaGw2dng4Q0JBeEVWRllVelo4NWd5SkFoCk5zdlNwRWtUbkQ5L0hvQjVxbkRUcGsyUmxK
U2tiQThJQ0ZEbW9zZkh4MXRNTzQ2TGkwUDkrdldWL2NiR3hxSjU4K1k0ZCs0Y2V2ZnUKalQxNzlx
QmV2WHFvV3JXcXpYM3YzcjBiSVNFaEtQOTNnNTAxYXhhQ2c0T1Z2MStCZ1lGUXFWU1lOR2tTMUdv
MXhvNGQ2MWI5VENZVApCZ3dZZ0xadDIxbzhaNm5YNjNIa3lCRUE1citwdFd2WFJwVXFWV3lXMFhx
N2RRejI3ZHVIMnJWclE2dlZJaVFrQk9QR2pZT3ZyNi9kCnNsdkhUS3ZWS3Y4TUJvTVN4d1lOR3VD
Sko1NXdXbC9yL0t5WEhYM1dYdGtMTWhnTTZOZXZIL3IzNzQrNmRlc0NBTWFQSDQrb3FDaUgKZVRo
cncvYmk0NndOT2FxUHZUeXQyU3V6bzd5ZDlWbGJlWll0VzlacCt4c3laQWc2ZE9pQTFxMWJBd0F1
WDc2TTBOQlE1VGc0NmlQTwpqbzExVzkyNmRTc01CZ042OWVxRm9LQWdWS2hRQVpVclYwWk9UbzdO
ZGxlelprMjgrT0tMK09XWFh3QUE1Y3FWUTd0MjdXekcxSHBmCnUzYnRRc3VXTFhIcDBpWDA2dFVM
UjQ4ZVJkT21UZVg1a0lMY0hiSFl1d1BTcDA4Zm03Zjc4aGtNQm43NDRZZFVxVlI4N3JubmxORnMK
elpvMStmWFhYOXY5blBVZGtOR2pSOVBEdzhQaUtvVmVyNmVucDZjeVVtL2J0aTNmZi85OWgvVUlD
OHRpKy9aWk5QMTlFZktOTjdJdApydkFOSEpqREVTUHNML2Z1YlpuKzJESHpWY0RqeCsxUDVlalhM
NGZuenh2dExqZG9rTUV2djd3N0JlSDZkUk9CVk9WS2NyZHUyUnc3CjFyejk2RkVEZzRMUytja25s
bVdvVlN1RE9oMTU2Wkw1S3ViZXZaYmx1WFRKeVAvKzEvSXV6ZkRoZDY5UWsyUjRlTGJGRmVxQ3ky
dlcKNU5IWDEvSnVSNWN1V1J3OTJtbyt4OSsyYk5FVFNPWEZpM2ZybVgvSDQ5QWhjOWtjeGZLUFA4
eHAzM29yaCtQSGE3aHBVeDRMM1B4aQpwMDVaYk5FaVUxa1hIcDdOano0eTU3VjJiUjdMbGsyenVM
UFFxdFhkNlVDdTFHWHc0QnpXcTVkaHNVK1MzTGxUejBxVnpOTlVsaTdWCmNja1NIZHUwTWJmSm1C
ZzlUNXk0RzNmcitEb3FjMUhpWjYrTXp0cURkZnNqelZmeFBUM1RlT1RJM1hTTytvb3I1WE1uVnM2
VVJCL0oKRnhOanJsdEc0VmxFTHVWbGZkeEo4NTNVWDM4dFBCM0hPcjJ6dG5zdnRGcXlRb1YwTGx5
b3M1dm02NisxU3ArZk1rWExXclVzZy9ETApMM2tFVWhrZnIrZjA2VnBXcjU1dXNmM0lFUU5WcWpT
N2Q3WjY5KzV0OFIxOTdOZ3hBdUR4NDhlNVpzMGErdnI2S2xlS1NiSkxseTRjClBYcTBSZnBhdFdw
UnA5UHgwcVZMckZhdEd2ZnUzVXZ5N2hYN3Q5NTZpK1BIaitlbVRac3M3cGhiMjdsekp5dFZxc1Jy
MTY1eDZkS2wKWExKa0NkdTBhVU9TakltSjRZa1RKNVMwdzRjUFYrNldrT1RBZ1FNNVlzUUlaVGtz
TEl6dDI3ZW42ZS9POHNZYmJ6ajhXOVN0V3plTwpIVHVXSkhuMDZGRUdCUVh4azA4K3NVZ3pZOFlN
ZW5wNjhzaVJJMjdYYjh1V0xRVEFpeGN2S3V2eXIyUWZPblNJSlBudXUrODYvTnR0CnZkMDZCb01I
RDJhOWV2VnNsc0c2N0tSbHpLNWV2VXBmWDEvbDMrTEZpMG1TNGVIaHlsMG9aL1cxUGdZRmw1MTkx
bEhaODhYRXhCQ0EKeFRTZGdtemw0VW9idGhjZlIyM0lsV052SzA5WHl1d3NiMGQ5MWw2ZXp0cmYy
clZyV2Jac1dZdTdBcTFhdGJLWUV1bW9qemc3TnRadAp0VUdEQnZ6eXl5K1Y1ZXZYcnhPQWNqZW1Z
THZMTjIzYU5ENzc3TE1reWFWTGx6TFhldTZxblgxMTZ0U0pMVnEwVU9JUkhoN09qejc2CnlPWm4v
Nm1LYlFBeVpzd1lWcWxTeFdJT3I4bGs0czZkTzNuejVrM2w5bUZzYkt6RkxhK2FOV3RhTkRacjFn
T1FKVXVXRUlERjdiejgKUnJSeDQwYVN6Z2NnMmRta2wxZWFNbVhBWkRKUEdZbUp1WHRpVUxWcXVz
VXpEUVdYVFNZeU1OQXkvZENoNXJuUjlxU21tdGlsUzViZAo1WXNYamZUd1NHTlMwdDBUam1IRGN0
aS92M2tldnNGQSt2bVpwMmZrei92MzhVbXptTnRPa3FOSDUzTHlaQTFqWS9YTXRpcE9SZ1k1CmYz
N2hrNDQ2ZFRMNC9mZm05VVlqNmUrZnJzeWh0MTUrNTUwY3RtMTd0OXdIRHBpbkxCV01SVUVUSm1o
WXRhcmx5Y25vMGJsSzNaM0YKY3VGQ0hmMzgwbWhqQ2pWemMwbHY3elF1WDM3M3VGU3VuTTV0Mis2
V05mOUVselNmQ0JjY0pMcFNsMnJWMGpsdFd1R1R2dDkrTTU5ZwpqUit2b2RGSWJ0MnFaNE1HR2J4
d3djaGx5eXhqWERDK3pzcnNidndjbFRFL3JhMzJZTjMrcmw4M3R6dWprWHorK1V4MjZHRGU1cXl2
CnVGSStkMkxsU0VuMGtZSW1UelkvVCtPSW83d0tIdmQ4NmVtMnA5bFpwM2ZXZGswbXNtSERERDcr
ZUxyTmYwODhrVzUzU21SMk51bnIKbThiVHArMVBlM3YxMVd6dTIyZmUxNDRkK2tKVHFVYU15R1Zn
WURxenNzelBqclJva1dteC9mWFhzOW16cCszZ21rd21CZ1lHTWlZbQpSbGszZE9oUTl1clY2Kys2
djhPMmJkc3EydzRjT0VDMVdtMlJualJmakpvOGVUSmpZMk9aWFNENEN4Y3VwSitmbjgzbkxtejU3
YmZmCnFGS3BPSDc4ZUJxTlJtN2R1cFVOR2pUZ2hRc1h1R3paTW91MGRlclU0ZmZmZjY4c1Y2MWFW
Wm5UbjUyZFRTOHZMKzdZc1VPcFowQkEKUUtGeTV6TVlEUFR6OCtQT25UdVZPZlErUGo3SzNQYnIx
NitUSkkxR0k1OS8vbmwyNk5EQjdmcE5tRENCVmF0V3RWZzNldlJvZHVuUwpSVmtPQ1FuaGQ5OTla
emNQNiszV01haFdyUnFuVFp0bThSbDdaU2N0WTJhTDBXaWt2NysvTW1YYldYMnQ4eXU0N095enRz
cHViZkxrCnlRd0tDcks3M1ZZZXp0cXd2Zmc0YTBPTzZ1TW81cTZVMlZIZXp2cXN2VHlkdGI5MzNu
bEhHZXlUNW9zQkJRYzF6dnFJczJOVHNLMWUKdkhpUkhoNGVURXBLVXJZUEd6YU0vZnYzSjFtNDNl
VTdmUGd3UzVjdXplVGtaSzVldmRxbGZlWG01dExiMjV2TGx5OG5hWTVmNWNxVgp1VzNiTnJ1Zi95
ZHlhd0JpTkJxcFZxdjV5aXV2Rk5yMisrKy9VNlZTY2VEQWdVeE5UV1Z5Y2pJLy8veHpYcnQyamFk
T25lS3NXYk9VCnRIMzc5bFVlRG12ZXZEbmZlKzg5a3VZSGlhd3RXclNJQUppVFl6N0p5TTdPNXVP
UFA4NS8vZXRmU3ByMTY5ZXpZY09HU3NkNThjVVgKK2M0Nzc5aXR4NlpOZWF4VUtWMTU2UGZvVVFP
OXZkT1lrbUxpN3QxNi92YWJlWTcrbFNzbUhqbGlLTFI4NG9TQnBVcWw4ZThpTVNGQgp6K0RnVElz
NTNZbUpCczZaYy9la2NNNGNMYU9pZEhhWDU4N1ZzbEdqdTZQNDFhdnoyS3BWcGpMZis4Z1JjeGsx
R3ZNVnlXM2I5UFQyClR1TzFheWJsb2RlNE9EM0xsMC9qc21XNlFsZkREUVp5NGtSTm9YbmZseTZa
cjFiLzlaZVI4ZkY2SGpsaW9KZVhlUTc5eG8xNWhaYjcKOTg5aHAwN21RaVVsbVRoK3ZJWnFkUnF2
WGpVcER4SnJ0ZWFIbTY5ZU5YSHQyanpXcjMrM1hxZE9HZG1zV1lieS9JQ3pXRzdlckdlcApVbWxL
ZXAzT2ZQeEk4OVgzOHVYVG1QL001SWtUNWhqZHVtVmlmTHllNGVIWnlvbHdVcEtKZ3dibE1DZ29u
ZW5wSmg0NlpIQmFsOTkrCk13OUlidDRzZkNKMzVZcjVPWlg4SysvSGp4dFlybHlheFFzSGJNWFhX
Wm5kalorak1qcHFEOWJ0Yjh3WURWTlN6SG5NbmF0VlRuNmQKOVJWbjVYTW5WczdjN3o1Q1dzWStQ
dDc4L0VoK1hBd0dLczk3T012TCtyaVRaRTZPK1VGenJZMXFXNmQzMW5aSjgwREMzci84L2tTYQpu
MnZLZjJDY0pKY3MwWEhNbUxzWGluYnYxbHNNUnFLajh5enVNdW4xWklzV21jb2RzT1JrRTZ0V1Rl
ZlBQK3VVN2ZYcTNYMm1aUDkrCkE1czJ6VkNldTdGMjRzUUpsaXBWU3ZsT1QwaElZSEJ3TU8vY3VV
T1M3TisvUHp0MTZ2UjMzWk00ZnZ4NHF0VnFYcjE2VlhrWVBDNHUKanVYTGwrZXlaY3NLWFFIZXZI
a3pTNVVxcFZ6MDB1bDAzTFJwazgyeWtPYTU2MnExV3JrS2V2ejRjWllyVjY3UU14V1hMbDBpQVA3
MQoxMStNajQvbmI3LzlSazlQVDE2NWNvVkhqaHpocGsyYldLbFNKZVVoMDZOSGo5TGIyNXNwS1Nu
Sy9QYUNqaHc1UW05dmIybzBHazZaCk1vWGJ0bTJqdDdjM3IxMjd4djM3OTNQTW1ERk1TVWtoU2M2
ZE8xYzVVWE9uZm12WHJtWDkrdldWNVZPblRyRlpzMllXenhONGVYbngKMUtsVE5qOXZ2ZDFXRE5S
cWRhSG5SK3lWM1RwbXRodzVjb1JlWGw3TXlNamd4bzBiSGRiWE9qL3JaV2VmdFZWMmEvSHg4VlNw
VkVwOQpEQWFEOHV5UnZUeWN0V0Y3OFhIV2hoelZ4MTZlMXV5VjJWSGV6dnFzdlR5ZHRiL3c4SEJs
TUpLVWxNUkJnd1l4S0NpSTZlbnBQSFRvCmtOTSs0dWpZV0xmVnVYUG5zbEdqUmtwWlZxOWV6VmF0
V2ltemFhemJYVDZEd1VBZkh4K09IajNhN2dQazF2dmFzbVVMeTVjdnI3elEKNGNTSkUvVDI5dWF0
Vzdjc0xwNy8wN2s4QURsMTZoUWpJaUlJZ0g1K2Zwd3hZMGFoMjE3ejU4OW42ZEtscVZLcEdCZ1l5
SFhyMWltZgpyVk9uRGhjc1dNRDE2OWR6K1BEaHltQmh6Smd4VktsVWZPdXR0NWljbkd5UjM0RURC
L2pDQ3k4UUFDTWpJM25od2dXUzVvZDdHamR1CnpHblRwbkhMbGkwTUR3L25tVE5uU0pKUlVWSDA4
ZkZoMWFwVnVXTEZDcHQxZWUrOVhQYnJkL2N2OUxwMWVmVHpTK1A4K1RxYVRPU3EKVlhrc1hUcE5t
YUpndlR4amhwYmx5cVV4SVVIUEJRdDBmTys5WEdaYVhnQmtaR1F1Zlh6dW5taSs5RktXeFZ1ZHJK
ZWpvL01ZSEp6SgpIVHYwbkRWTHk4OCswMWljMU9SUGFSZ3dJSWMzYjVxNGZyMTVpa2JCUWM3YXRY
bDgvZlZzK3Z1bnMwYU5ERzdaY3ZlazQ2T1BjZ21rCnNrZVBiT2Jta2lrcEptN1lrTWZ6NTgxWGxi
LzhVa090MW56eVVMWnNHci81Um10ek9TRkJUMy8vZEw3OGNoYW5UOWZ5K0hIekFHWGUKdkx2bE9I
M2FTSlVxalQvK3FLTk9aNTRXODUvL2FMbHFWUjcvOVM4TlUxUHZucGc0aTZYQllKNENWTGR1QmlN
aWNqaGxpbGE1MHZ6KworN2tNRDc5NzVYUG5UajE5ZmMxbE1abk1EeXlYTDUvR0hqMnlPWHUybHF0
WDV6RWdJSjJMRjV1UG83TzZUSnRtZm11WUxhbXBKb3NwCmVjbkpKajcvZktiRk1TVlpLTDdPeXV4
dS9CeVYwVkY3c0c1Ly9mcmxzRzlmODFYdmdRTnp1R2VQK1d6U1dWOXhWajUzWXVYTS9lNGoKcEdY
c2pVYno5TUJXclRJNWU3YVdjK2RxTGFaak9jckwrcWFnQXZZQUFDQUFTVVJCVkxpVDVnRkx3YWxw
QlZtbmQ5WjIzVEZqaHBaQQpLcnQzeitiSWtibjg4VWZMUENaUE5yL2hxbHUzYkg3eVNhN0ZXNzd5
UlVYcCtORkh1Znp1T3gxNzk4N21taldXYVpZdTFmSEREM001CmJacVdRNGJrTURuWi9wMmVHVE5t
c0Z5NWNreElTT0NDQlF2NDNudnZNYk5BcDA5SVNLQy92ejlmZnZsbFRwOCtuY2VQSDZlWGx4Zm4K
elp1bnBGbTdkaTFmZi8xMSt2djdzMGFOR3R5eVpZdXl6V0F3TUN3c2pIWHIxbVZFUkFTblRKbGlj
WWZFV21wcXFzVVVudVRrWkQ3LwovUE1XZC9OSjh2ejU4L1R3OE9DWFgzNUpyVmJMVmF0V3NYVHAw
bHk0Y0NGSjhyMzMzbU8vZnYyVTlPdldyYU9mbngvbno1K3ZUS2NwCjZNaVJJMVNwVkJ3d1lBQnYz
cnpKOWV2WHMyelpzcHd6Wnc1SnNsKy9mdXpidHkvMzdkdkhnUU1IY3MrZVBXN1hUNmZUc1Z1M2J2
elAKZi83RFZhdFc4Vi8vK3BmRmhiNzkrL2RibkpSWnM5NXVIWU5wMDZZeE5EUzAwT2ZzbGQwNlp2
YjJXYlpzV1g3enpUZlVhclVPNjJ1ZApuL1d5bzgvYUs3czFvOUhJM3IxN3MxV3JWcHc5ZXpibnpw
MnJuUHZZeThOWkc3WVhIMmR0eUZGOTdPVnB6VjZaSGVYdHJNL2F5OU5aCis0dU5qV1g1OHVYWm8w
Y1B6cDQ5bTZ0WHIyWkFRSUF5RmM5WkgzRjBiS3piYW5SME5JT0RnN2xqeHc3T21qV0xuMzMybWNY
RkMrdDIKVjFCb2FLanlraU5iclBmMS92dnZNenc4WE5tK2MrZE8rdnI2Y3Q2OGVUYS9DLzZwM0o2
QzVZeE9wK1A1OCtjdGJ1UGxqeHJUMHRKcwpmbEhtajE3ZFlUS1plUGJzV1o0L2Y3N29oUzNBK3FU
SitvMUVCWmRmZmptTDQ4ZHJlTzZjMGViVlROSThsU1gvS3I1ZVQrV05VN2FXCkMzN20waVVqN2JY
UGdxL0ZKR254UjM3SkVwM3ltbHlOeHZ6S1hSK2ZOT1ZrUGozZHhDdFhUSHpuSGZPSlprS0NuaEVS
T2NxMmd2S3YKK05wYnpzeWt4ZDBlNjlpUkxIVDFNelhWWkROV3JzU1NORjlGTDNoVjF4NWJieGJL
UDQ4d0dBb2ZWMWZxWW92SnhFSW4wUFpPcUIxTgp1N0ZWWnRMMStObmpxRDNZYW45MzdwaVlubTdp
bjM4NmZ4dVZyUmc1S3A4N3NYTG1mdmFSZk5heHYzM2JSSjNWZWI4cmVkazY3dGJsCks4ZzZ2Yk8y
NjQ0N2QwdzIyMW0rVzdkTWhWN0xhODFrWXFGWUZXUXcwT1pkSldzdnYvd3l4NDhmejNQbnpoWDZR
NTh2TXpOVHVicEsKV3Q0ZFg3SmtpZko2Vm8xR3c1a3paOUxIeDhmaWhJZzAzOW5JY2VGTHcyUXlG
UnBzV0MvblMwKzNuSkxuN0kwMnR1N3FGM1R0MmpXTAo1WUlYNGU3Y3VjUDA5SFQrK2VlZk5qL3Jh
djN5eTJFcjFqTm16SEE0QmRyV2R1c1kyT0tvN0s2OEJjaldPWUc5K2xyblp5dC9kMkpsCnorM2J0
Nm16L2lKd3dGRWJkblpzQzdMVmhtelZ4NTA4SGJHVnR5dDkxaEY3N1k4MHh5bS92eGtNaGtMSHox
RWZ5V2Z2MkZpM1ZhUFIKeUV1WEx0a2RCTmhxZDFsWldjb2pBNDQ0NnhjRjI0SXdVNUcwZkczVFA0
QktsZmFnaXlDRUVQOElaRVhsLzNxOUh2NysvbGl6WmcwNgpkdXhZcFB6YXRHbUR0V3ZYS20rVE1a
bE1lT0tKSi9ENzc3OHJieGdTOW1tMVdseTllaFgxNnRWRDU4NmRzWGp4WWxTclZzM2w3ZUtmCnBU
ajY3S1BLWkRKaHdZSUZpSWlJS05JUEV3ckhuUDRTK3YraWduOFEzZlhmLytyUnQyODIvdmpERHcw
YVBEd05jdDA2UFE0ZU5HRFkKc05MUWFJRG82RHpVcktuRzRNRmVEN3BvZGoyc3NmeGY4Q2kyaC91
dE9HTWk4UzJhMWF0WEl6czdHelZxMUNoeUhoOSsrQ0dtVFp1RwpZY09HUWFQUklEbzZHaE1uVHBU
Qmg0c09IRGlBanovK0dKOTk5aG5Dd3NJS0RTNmNiUmYvTE1YUlp4ODFXN2R1eGRDaFEvSG1tMi9p
CjQ0OC9sc0hIZmZLUHZBTlNWT25weE42OTV2ZVVxOVVxZE9qZ0NjK0hhQWlYbDJkK1o3K0hod3BO
bXR6OUxZU0gwY01leS84RmoxSjcKS0NuRkdST0pyM3ZTMDlPeGQrOWVBSUJhclVhSERoM2dXY1JP
bjVlWGgwT0hEc0hEd3dOTm1qUlJmaU5BdU9iSWtTUHc5ZlZGdzRZTgppN1JkL0RNVVo1OTlsT2gw
T2lRbUp1TFpaNStWd2NkOUpBTVFJWVFRUWdnaFJJbVJvWjBRUWdnaGhCQ2l4TWdBUkFnaGhCQkND
RkZpCkh0b0JpTWxrd29rVEp4QVZGWVdUSjA4V1c3NTVlWGs0YytZTXRGcHRvVzI1dWJtSWo0L0hu
RGx6Y1BueTVXTGI1NlBrZnNYOTZ0V3IKeFpaWGNVbEx1L3MydEl5TURKdHRRZ2doaEJCQ0ZDK1hC
eUFiTm15QXY3OC9QRDA5TVhMa1NBd2FOQWh0MnJSQlZGVFVmU21ZeVdUQwp0V3ZYMEw5L2YzaDRl
Tnh6Zm9jUEgwYjM3dDB4Yk5nd3JGKy9IaUVoSVJnNWNpUjBPcDJTUnExVzQ2Ky8va0prWkNUOC9m
M3Q1aFVXCkZvYVpNMmZlYzVrZVJzVWRkd0Q0L2ZmZjhjWWJieFJMWHNYbCt2WHIrT0dISHl6V1JV
ZEhQNkRTQ0NHRUVFTDhjN2o4T29OWFhua0YKQVFFQmVPcXBwekJyMWl3QXdLaFJvOUMvZjM4MGJO
Z1FMVnUyTE42Q2VYb2lMeThQMWF0WFIrUEdqZThwcjNuejVtSHExS25ZdFd1WAo4aXE1MGFOSG8y
N2R1dERwZEpnM2J4NEF3TnZiR3hxTkJxR2hvU2hYcnB6ZC9GNTk5VlcwYU5IaW5zb0VtRStDSDN2
c3NYdk9wemdWClo5d0JnQ1NHRFJ1R0V5ZE93R2cwRnR1ZzVsNWN1M1lOSTBlT3RCZzgrL241NGVE
Qmczanp6VGVoVXFrZVlPbUVFRUlJSWY2M3VYd0gKNU5LbFN6aC8vanhlZSswMVpWMXdjREFBSUNr
cHFmaExCbURkdW5YbzBxWExQZVh4L2ZmZkl6SXlFbXZXckxGNGo3VktwVUszYnQydwpZTUVDWkdW
bEtldTNidDJLenAwN084enpndzgrd0FzdnZIQlA1VnE5ZWpVaUl5UHZLWS83cFRqaW51L0hIMzlF
Z3dZTm9ORm9jUDc4CitXTEo4MTZZVENhRWg0Y2pJaUlDWGw2V3Y5bGdNQmh3NE1DQkIxUXlJWVFR
UW9oL0JwY0hJSnMzYndaZ3Z2b1BBR2ZPbk1HMGFkUFEKc1dOSHRHL2ZYa2xIRXZQbXpjUGl4WXZS
cDA4ZnhNWEZRYVBSNE50dnY4Vnp6ejJIbFN0WDRzU0pFK2pRb1FPZWVlWVptRXdtNWJNNQpPVGtZ
UDM0OHZ2MzJXM3o3N2JmWXRHbVR4WW13dmJ6bno1K1A2dFdyWSt2V3JaZzBhUktxVkttQ2MrZk80
Y3laTS9qd3d3L3g1cHR2CjJyeERvOVZxWVRLWmNPZk9IUURtZHovdjNMa1RMN3p3QW1iTm1vV1dM
VnVpYjkrK3lNek1CR0NlU2pSaXhBaFVxVklGMmRuWmRzdVUKTHkwdERaTW1UVUpVVkJRbVRweUlq
UnMzd21Bd1lOU29VZWpUcHc4eU1qS3dmUGx5QUlEUmFFUklTQWltVFp1bWZMN2dPa2YxZk5qaQpu
dS9PblRzNGZQZ3dQdjMwVXdEQWI3LzlwbXk3bi9YSnpNekUyTEZqTVcvZVBNeWNPUlB0MnJYRGhn
MGJBQUF6Wjg2RXQ3ZTNSWnZOClY3VnFWWncrZmJyUWVpR0VFRUlJVVh4Y0hvQnMyclFKbFNwVndy
aHg0L0RFRTA5ZzFLaFJtRHAxS2padjNvelNwVXNETUovQWQrL2UKSFdYTGxzVmJiNzBGWDE5ZkhE
dDJER1hLbEVIcjFxMXg5T2hSUFBiWVl6aDc5aXltVHAyS3c0Y1BLdzhDcDZTa29IMzc5dWpZc1NQ
ZQplKzg5Vks1Y0dUazVPV2pYcnAzVHZMdDI3WXFiTjI5Q3E5V2lZOGVPZVBmZGQxRzFhbFZNbkRn
UnVibTVHRDU4dU0wNm5UbHpCaFVxClZGRHVqT3phdFF2bHlwWEQvdjM3MGJkdlgrellzUU1iTm14
UW5nMW8wcVFKcWxXcmhscTFhc0hYMTlkdW1RRGcvUG56Nk5TcEUzcjMKN28xKy9mckJaREloT2pv
YW5wNmVHRDE2Tkl4R0k3Nzc3anYwN2RzWEFPRGg0WUhnNEdEVXJGbFRLVi9CZFk3cStiREZQZCtr
U1pNdwpkdXhZMUtsVEI3Nit2aFlEa1B0Vm41czNiNko5Ky9aNDVaVlhNSHo0Y0R6MzNITklTRWpB
aXkrK0NBRDQ2YWVmMEt0WEw1dnRJU3NyCkMyZlBubldwUHdnaGhCQkNpS0p4NlJtUW5Kd2NKQ1Fr
WVBUbzBSZzFhaFNxVnEyS3hvMGI0K1dYWDdaSU4zcjBhT2oxZWd3Y09CQlIKVVZFNGMrWU1wa3la
QXNCOGN0K3laVXRjdW5RSi9mdjN4NkpGaTlDMGFWTUVCQVFBQUlZTUdZSU9IVHFnZGV2V0FJRExs
eThqTkRRVQp2cjYrVHZQZXQyOGZhdGV1RGExV2k1Q1FFSVNFaEFBQURoNDhpTWNmZnh6Tm1qVXJW
S2VyVjY5aTc5NjlDQXNMVStiOGI5MjZGUWFECkFiMTY5VUpRVUJBQUtDZmsrWGJ2M28yd3NEQ0ha
VElZRE9qWHJ4LzY5KytQdW5YckFnREdqeCt2NUJFWEY0ZjY5ZXVqZXZYcUZtVmEKdEdoUm9YSVdY
R2V2bmg5KytPRkRGWGNBMkx0M0x6dzlQYUhSYUhEeDRrWFVybDI3MEZ1MTdrZDlCZzhlak83ZHUr
T1paNTRCQUZ5OAplQkV0V3JSQWhRb1ZvTlZxOGNjZmY5aWRQcGVTa29JcVZhclkzQ2FFRUVJSUlZ
cUhTM2RBZHV6WUFaMU9oMDZkT3NIUHp3ODlldlRBCnNtWExvTmZybFRSLy92a25acytlaldyVnF1
R0xMNzVBaFFvVnNIUG5UdVZ0VWpFeE1kRHI5ZWpkdTdlU1o2ZE9uUUNZbnpuWXNXTUgKUHZqZ0F5
Vy9YMzc1UlhrV3cxbmVzYkd4SUltZVBYc3FuOWRxdGJodzRRTHExYXRuczA3ZmYvODlTT0tMTDc1
UTFtM2R1aFVmZlBDQgpNakM0Y2VNR0xsMjZwSnl3R28xR1pkRGlxRXc3ZHV6QW9VT0hNR2pRSUp2
NzNyWnRHenAwNk9CSzZDM1lxdWZERm5mQS9DekZuRGx6ClVLTkdEY1RFeENBbUpnWVZLMWEwdUFO
eVArcXpkdTFhN04yN0YrKysrNjZTMy9MbHk1VzdPU2RQbm9TM3R6Y2FOV3BrTTc2blRwMUMKMDZa
Tm5SOElJWVFRUWdoUmRIVEIwS0ZEV2FGQ0JSb01CcEprZkh3OEFYRGR1blZLbW9VTEY5TFB6NDk2
dmI3UTUzTnpjK250N2MzbAp5NWVUSkUwbUV5dFhyc3h0MjdhUkpOOTU1eDIyYWROR1NiOXo1MDRD
NFBIang1M21UWkxWcWxYanRHblRDcTBQREF6a1N5KzlWR2o5CnlaTW5XYVpNR1g3ODhjZkt1b3NY
TDlMRHc0TkpTVW5LdW1IRGhyRi8vLzdLOHFGRGgramw1Y1djbkJ5SFpabzhlVEtEZ29Kc2xwVWsK
cTFhdHl2WHIxOXZkYm8rdGVqNk1jWjg2ZFNvM2J0eG9zVzc2OU9sVXFWVE16TXk4ci9WcDI3YXRr
djdBZ1FOVXE5V01pWWtoU1c3Wgpzb1YxNjlhMVdaZlUxRlNxMVdvZVBuelk1blloaEJCQ0NGRThu
TjRCMGV2MTJMUnBFMTU0NFFYbEZhb3Z2ZlFTYXRXcWhRVUxGaWpwCkhudnNNZVRtNWlJbEpRV0Er
UWYvOGg5Y1QwaElnSmVYRjNyMDZBSEFmQ1U2TXpNVHpaczN4ODZkTzVHVmxZV3laY3NDQUpLVGsv
SFQKVHo4aEtDZ0lOV3ZXeE9IRGh4M21mZkxrU1NRbEphRi8vLzZGeXQ2L2YzL3MzYnRYZVlnY0FM
S3pzOUd6WjA4TUdqUUlFeWRPVk5adgozYm9WOWV2WFY2WmVyVm16QmlkT25NRDgrZk9WTkx0Mjdj
S3p6ejZMc21YTE9pelRzODgraTF1M2J1SDI3ZHNBekhkT2R1ellvWlEzCkpTVUZUejMxRkk0ZVBR
b0FPSGJzR0w3OTlsdUxzbHV2czFmUGh5M3VseTlmeHZyMTY5RzFhMWVMOWZYcTFRTkpwYzczb3o0
YWpRYWwKU3BWUzZyTmx5eFlBNW1kM2poMDdocG8xYTZKaXhZcXdKUzR1RHJWcjExYmU3S2JUNmZE
VlYxL2gyclZyTnRNTElZUVFRb2dpY2pRNgpTVXRMNC9EaHd3bUFqUm8xNHQ2OWU1VnRYMzc1SlFI
dzg4OC9wMTZ2cDhGZ1lGaFlHT3ZXcmN1SWlBaE9tVEtGMmRuWkpNbjMzMytmCjRlSGh5bWQzN3R4
SlgxOWZ6cHMzanlhVGliR3hzU3hmdmp4NzlPakIyYk5uYy9YcTFRd0lDT0RpeFl0SjBtSGUwNlpO
WTJob3FNM3kKNStibThzMDMzMlRMbGkzNTNYZmY4ZU9QUDJiYnRtMjVjdVhLUW1tam82TVpIQnpN
SFR0MmNOYXNXZnpzczgrWWw1ZG5rYVpyMTY3OAovUFBQblpiSmFEU3lkKy9lYk5XcUZXZlBuczI1
YytjeUl5T0RKTGxxMVNxV0xsMmFDeGN1VlBLTmpJeWtqNDhQdFZxdDNYWDI2dmt3CnhmMzMzMzlu
MDZaTitlU1RUL0szMzM1VDFwOCtmWm85ZS9Za0FIYnMySkhuejUrL0wvVkpTRWlndjc4L1gzNzVa
VTZmUHAzSGp4K24KbDVjWDU4MmJSNUxVYURSczFLaFJvWDJTWk92V3JTM3VTcDArZlpvcWxZby8v
ZlNUemZSQ0NDR0VFS0pvVkNSWm5BT2FxMWV2SWlBZwpRTG15Yms5cWFxckZyNDFuWldXaFZLbFM4
UGIyaHRGb1JIcDZ1dkpnc2J0NVc3dDE2eFl1WExpQUJnMGFPUHlGYzVQSmhDdFhycUJHCmpScUZm
b3pPWURBZ0lDQUF1M2Z2eHBOUFB1bFNtZTdjdVlOeTVjb1YrcjJKTzNmdVdOVE5aREloUFQzZG9t
eTIxam55TU1iOVh0eEwKZmZSNnZiSXVMUzNONHE3SGE2KzloblhyMWxua2NlREFBWHo5OWRmNDVa
ZGZMTmFucEtRZ01ERHdYcXNpaEJCQ0NDRUtLUFlCeVArYQpreWRQSWpBd0VHZk9uTUhZc1dPeGQr
L2VCMTBrY1E5V3JGaUJKNTk4VW5rUVhhZlRZY0tFQ1pnd1lRTEtsQ256Z0VzbmhCQkNDUEcvClR3
WWdUdlRvMFFPTkd6ZkdxVk9uTUhIaVJIbEwwaU5Pcjljak5qWldlVVpsL2ZyMWFOZXVuZkxhWVNH
RUVFSUljWC9KQU1TSjNOeGMKSER0MkRNMmFOVVA1OHVVZmRIR0VFRUlJSVlSNHBNa0FSQWdoaEJC
Q0NGRmlYUG9oUWlHRUVFSUlJWVFvRGpJQUVVSUlJWVFRUXBRWQpHWUFJSVlRUVFnZ2hTb3dNUUlR
UVFnZ2hoQkFsUmdZZ1FnZ2hoQkJDaUJJakF4QWhoQkJDQ0NGRWlaRUJpQkJDQ0NHRUVLTEV5QUJF
CkNDR0VFRUlJVVdKa0FDS0VFRUlJSVlRb01USUFFVUlJSVlRUVFwUVlHWUFJSVlRUVFnZ2hTb3dN
UUlRUVFnZ2hoQkFsUmdZZ1FnZ2gKaEJCQ2lCSWpBeEFoaEJCQ0NDRkVpWkVCaUJCQ0NDR0VFS0xF
eUFCRUNDR0VFRUlJVVdKa0FDS0VFRUlJSVlRb01jVTZBTW5PenNiVgpxMWVMTTh1SHdvT3NsMDZu
dzc1OSs1VGxPM2Z1NE55NWN3K2tMTmJ1ZDF5czYyN05hRFRpanovK0tKYThuZTNyZm5LbEhscXQx
dWIvCml5SXRMYzJsZEptWm1iaDgrVElBSUNzcnkrWitIYVVwMkRhMFdpMVNVbEx1cGRnT09lc1hE
L3E3eWRuKzczZS96czdPeHZYcjErOHAKajF1M2JpRStQaDZwcWFuRlZDclhQZWpqSjRRUW9uZzVI
WUIwN2RvVkZTdFdST2ZPbmZIR0cyL0F3OE1EdFdyVlFzK2VQZEc2ZFd0NAplSGhnNmRLbFdMNThP
WUtDZ3ZEenp6K1hSTGxMeklPczE4R0RCL0gwMDAralI0OGV5cnJ4NDhmajFWZGZMZkd5V0x2ZmNi
RlY5NElPCkh6Nk01czJiWStqUW9mZWN0N045M1UvTzZtRXltVEIzN2x4bDBQRFhYMzloNmRLbElJ
bU5HNEZtelFDVkNtamJGdWpaRXdnTkJWNTcKRFRod3dQNCsrL1RwNDNEQWMvMzZkUXdZTUFDUmta
R1lQWHMyUWtKQzBLcFZLeHcvZnR6bE5HdldyRUgxNnRVeGZ2eDRBTURBZ1FQeAorT09QVytSUm5C
ejFpd2Y5M2VUSy91OW52MTZ3WUFFQ0FnS3dhdFdxSXVleGNPRkNSRWRIWTlldVhXalNwQWwwT2ww
eGx0Q3g0angrCkd6ZHVSTE5temFCU3FkQzJiVnYwN05rVG9hR2hlTzIxMTNEQVVhY1JRZ2hSdk9o
RXg0NGRlZkhpUldYWjI5dWJnd1lOVXBabnpKakIKQlFzV2tDUWJOV3JFU1pNbU9jdnlnZE5xdFl5
UGozZDUrNE9zMS9UcDB4a1VGS1FzMzc1OW0yZlBubjBnWmJGMnYrTmlYWGRySTBhTQpZTnUyYllz
bGIyZjd1cDhjMVdQOSt2V01pNHRUbGlkTW1NRE16RXhsK1p0dlNJRGN2OSs4YkRDUWI3OU5lbm1S
dTNjWHp1L2N1WE5VCnFWUWNNV0tFM2ZMMDZ0V0wzYnQzVjViejh2SVlIQnpNVmF0V3Vad21OVFdW
WDMzMUZZY09IVXFTM0w5L1A0Y09IY3JWcTFjN2lFVFIKV2ZlTEI5MkgzZDMvL2U3WFFVRkJuRFZy
VnBFK201MmRUUjhmSHhxTlJwTGszcjE3aTdOb050M1A0L2ZOTjk4UUFQZi8zV2tNQmdQZgpmdnR0
ZW5sNWNiZXRUaU9FRUtMWU9iMERNbXJVS05TcVZjdnU5b2lJQ0RScDBnUUFVS3BVS2FoVXFtSWJI
TjBQZXIwZUF3WU13TzdkCnUxM2UvaURyNWVYbFpiSHZnSUFBMUt0WHIxajNRYkpJNmU1M1hLenJu
czlrTWdFQVBEMDlvVlk3bjBWb01CaWM1bTF2WC9mSzFyN3oKdVZLUEd6ZHVvSDM3OWhnOWVqUUFZ
TmV1WGZEejg4UEJnd2NCQUJVcW1OUGxGOTNEQS9qb0l5QXZENGlLS3B6Zm9rV0xNSGp3WUN4ZAp1
aFRaMmRrMjkvbkhIMy9nNnRXcjBPdjFBTXpIZWNtU0pSWlRiNXlscVZpeEl1clhyNi9jMlduYXRD
bXFWYXVHVjE1NXhXNDg3a1hCCmZ2R2crM0JSOWwvVWZ1MXEzNzJYK3A4OGVSSjVlWGxLRzMzKytl
ZUxsSStyN3ZmeHEvQjNwOG5QejhQREF4OTk5Qkh5OHZJUVphdlQKQ0NHRUtIWk96OTQ2ZGVya2NM
dVBqdzlDUTBPVlpaUEpoUEhqeDZONjllcG8yclFwTGwyNnBHeExUazdHcUZHajBLWk5HN1JzMmRM
dQpMZStkTzNjaVBEd2NrWkdSK09HSEgxQ25UaDAwYk5qUXBieU9IajJLamgwN29rbVRKa2hJU01E
Um8wY1JIQnlNbjM3NkNRRHd6VGZmCllNT0dEZmpsbDEvdzVwdHZJaWNueDJMZjlyYmJxMWRpWWlJ
aUlpSXdkdXhZVEpvMENZR0JnVGgwNkpERHVyb2FCMnMzYjk3RTFLbFQKMGFwVnEzdU9Fd0NzV0xF
QzgrZlB4OVNwVXgyZVZEaEs1K2g0WjJkblk4U0lFZmpvbzQvdzZxdXY0djMzMzRkR28xSHlmT3l4
eC9EdAp0OThDQUtLam85R2dRUU1NR3piTWJqbHljM014ZlBod1RKdzRFY09HRGNPUkkwY2N4bXZI
amgyWU1tVUtaczZjaWREUVVKdzZkY3BoCmVudUtjb3dkN2R1ZGVyejk5dHRZdm53NUlpSWlBQUFy
VjY3RWtpVkwwTHg1Yzd1ZnlYL1Vva29WeS9WYXJSYTNidDNDaEFrVGtKMmQKamFWTGw5cjhmSGg0
T0JJVEU5R2hRd2NrSnljREFKNTY2aW1MYVdMTzBtaTFXZ1FIQjZObHk1WUF6QU9wVHovOUZLVkts
YkpiN254cgoxNjVGWUdBZ1hudnROYVNucCtQSEgzOUVZR0FnT25Ub2dQUG56d01BWnM2Y2lSZGVl
QUZhcmJaUXYzQzNEMXR6cFY4NWF0dnU3cjhvCi9UbzNOeGNqUm96QXYvLzliM1RzMkJIaDRlR1lN
bVdLM1FzcitaK0pqSXhFVUZBUVdyWnNpVE5uemlqYjdMWGxSWXNXNGZQUFA0ZkIKWU1DNzc3Nkx5
TWhJcC9VdlNuOHBxQ2pIcjZqZnFmbnluMCtxWXQxcGhCQkMzQi91M2pLeG5vSlYwSk5QUHNuZzRH
REd4Y1h4NnRXcgpiTml3SWQ5KysyMlM1dHZjWGJwMFlXWm1KbzFHSXlNaUloZ1lHTWkwdExSQytT
UWxKYkYrL2ZwczJMQWhOMjdjeUwvKytvc05HalRnCk8rKzg0MUplY1hGeEJNQ3RXN2R5eTVZdG5E
bHpwa1grTld2VzVGZGZmV1czanRiYkhkVnIvLzc5ckZpeElwczNiODdWcTFjeklpS0MKWjg2Y3NW
cytkK0pBa25QbXpHR1ZLbFZJa3JkdTNlS3dZY05ZcVZLbGU0NlRYcS9uMDA4L3JleG41TWlSeWhT
TGdoeWxjeFFYa256eAp4UmU1ZE9sU2t1WXBPczg4OHd5N2R1MnFiSC9zc2Njc3BsVjA3TmlSdlhy
MXNsbDNrdnkvLy9zL1JrZEhreVNOUmlPclZhdkdEaDA2CjJJeWJUcWZqWTQ4OXBremorUHp6ei9u
NjY2L2J6ZHQ2dVNCM2o3R3pmYnRURDJkKy9ORThCZXZBQWZPeVZrdDI2RUQ2KzVQbnpsbW4KL1pH
Yk5tMVN5dEM0Y1dPYmVXWmtaUENsbDE0aUFGYXFWSWtiTm13b1VwcDcwYUpGQzc3MTFsdks4a3N2
dmNUQmd3Y3J5NXMzYithUwpKVXRJRnU0WHBIdDkySnF6ZmtVNmI5dnU3Ti9kZmsyUzMzNzdMVC82
NkNPUzVNbVRKd21BVTZaTTRWOS8vV1d6VG84Ly9qaWJOR25DCkRSczJNRDQrbmpWcjFtVHQycldw
MSt1ZGZpZXRYTG1TYXJYYUlqOUg5WGUzdjlqaVR2emMvVTc5OGNjZkNZQUgvdTQwV3EyV0hUcDAK
b0wrL1A4OVpkeG9oaEJEM1JiRy9ocmRyMTY1bzE2NGRIbi84Y1lTRmhTa1B1NjVjdVJJa3NYdjNi
c1RFeEtCcTFhcElTVW5CcjcvKwpXaWlQb0tBZzFLbFRCODJhTlVQWHJsMVJvMFlOdEczYkZuLysr
YWRMZWJWcjF3NjllL2ZHbURGajhQUFBQK1A5OTk4dnRBOW50L090CnQ5dXIxM1BQUFllR0RSdWlV
YU5HZVAzMTEvSGRkOS9oMkxGamRzdm5UaHlzQlFZR29sbXpac3EwaTN1SlUzcDZPbzRmUDQ0dFc3
WUEKQU41NTV4MmIwem1jcGJNWGw1aVlHT3pac3dmaDRlRUF6Rk1vM25yckxXemF0QW43OSs4SEFK
UXBVOFlpem1YTGxyVjdYQTRjT0lBdApXN1lvZCtUVWFqVmVmdmxsdTdFcVZhb1VldlRvZ2VEZ1lB
RG1LUzRGci9pNnc5MWo3R2pmN3RiRFZaOThBb1NGQVU4K0NWU3FCT3plCkRkU3RhNWxtMDZaTjZO
eTVNd0R6MU1uVHAwOWo1ODZkaGZJcVg3NDh0bTNiaG4vOTYxOUlTMHZEcTYrK2lubno1cm1kNWw0
TUhqd1kKc2JHeHlqUzE5dTNiWStQR2pjcVV0cmk0T1BUcTFRdEE0WDZSejlVK2JNMVp2M0tsYmJ1
emYzZjdOUUQ4L1BQUENBZ0lBR0NlM2hZWQpHQWdBcUZHamh0MllEaHc0RU4yNmRVTllXQmkrL3Zw
clhMeDRFWEZ4Y1c1L0p6bXJ2N3Y5eFI1WDQxZlU3OVJQUHZrRVlXRmhlUExKCkoxR3BVaVhzM3Iw
YmRhMDdqUkJDaVB1aTJBY2dCZjlvVkt4WVVabG52bi8vZmdRRUJNREx5d3RlWGw0SURRM0Y5dTNi
bFNrYXR2SXAKbUZlNWN1V1VWM3k2a3RmMDZkTng5dXhadEd6WkVoNGVIZzdMNmF3ZWp1b0ZtRStr
ODA4QW5KWFAzVGc0aTB0UjQxU3BVaVgwNk5FRAozYnAxdzd2dnZvdWFOV3ZhakpPemRQYmljdWpR
SVFRR0JscE11WG5tbVdjQUFNZU9IWE9wcmdVbEpDU2dZY09HeXZ4dEFQRDE5YlY3CkhGVXFGZWJN
bVlQMDlIUk1tVElGdTNidFFsWldsdHY3emVmT01YYTBiM2ZyNGFySms0SHQyNEUvL3dTV0x3Y2FO
N2JjZnV6WU1keSsKZlJzLy9QQURGaTVjaUt0WHI4TEx5d3YvK2M5L2JPWlhxbFFwZlBYVlY5aXhZ
d2NDQXdQeDdydnZGbnFMa2l0cGlxcFBuejVJU1VsUgpwaFNkT25VS09UazUyTEZqQjdSYUxVd21F
M3g4ZkpUMDF2MGdmNTI5WmVzK2JNMVJ2M0sxYmJ1emYzZjZkZjV5d2NGT2xTcFY4T3l6Cno5cXRE
d0Q0K2ZrcC8zL3V1ZWNBQU9mT25YUDdPOG1WK3J2VFgreHhOWDVGL1U2ZFBIa3l0bS9mamovLy9C
UExseTlIWSt0T0k0UVEKNHI3eExLa2QzYjU5RzU2ZW5tamZ2bjJKNUZXcVZDa0VCZ1ppNnRTcEdE
SmtpTVVKMy8zbXFIekZHWWQ3S1FkZ2ZyMWx0V3JWTUh2MgpiQ1FtSmlJMk5oYmx5NWN2Y3JxQ2Nu
TnpjZnYyYldSblo4UFgxeGNBMEt4Wk0zaDZlaFo2N3NZVjE2NWR3KzNidHd1dGQzVGl2bURCCkF1
elpzd2VMRnkvR29rV0xjT2pRSWJmM2E0K3oyTnJiZDFIcTRRb1BEOERUUVcvKzdydnZNSGp3WU9W
WUFNQ3JyNzZLTld2VzRPclYKcTNqaWlTY0FtRi96R3hBUWdITGx5Z0VBMnJScGc3VnIxeUkwTkJT
clZxMUNyMTY5WEVwenJ3SUNBdEMxYTFkRVJVV2hRb1VLZVBycApwNkZXcXhFZEhZMk1qSXdIK2ly
cTRtN2JSVEZ5NUVnTUdqUUlKMCtlUk9uU3BWRzJiRm0wYWRQRzVjL1hxRkVENWNxVlE3bHk1ZHor
ClRpcEsvZS9uOTE1UjgvYnc4SUNubzA0amhCRGl2aW14WDBLdlZhc1d0bS9mYm5FVmp5UVNFaEx1
UzE3anhvM0RsaTFib0ZLcE1HN2MKdUVKNXVIc0hwTGpLVjV4eHVKZHlKQ1VsNGRhdFc1ZzFheFpp
WW1Kdzh1UkpSRWRIRjhyRDFYVFdHalpzQ0tQUmlNT0hEeXZyYnQyNgpCWVBCZ0VhTkdpbnI4cWZZ
T0ZPdFdqV2twS1RnN05tekxxVS9mZm8waGc4Zmp1blRwN3YwNExPN0hNWFcwYjdkclVkeFNFOVB4
K1hMCmx6Rnc0RUQwNk5GRCtUZDI3RmdZalVZc1dMQkFTWnVjbkl6WnMyZGJmUDc1NTU5SHpabzFs
UitDY3lWTmNSZzBhQkJXclZxRjc3Ly8KSG0rLy9UWUdEeDZNZGV2V0lTNHV6cVdUN2Z2MTFpdFgy
L2I5Zk92V3l5Ky9qSGZlZVFjeE1URTRjdVNJemFsMGp0eTRjUU5aV1ZsNAo2cW1uM1A1T2NyWCtC
UlhsZTgvVitKWGtkNm9RUW9qaTRkWUF4R1F5SVM4dnorNHY0ZWJtNWlJM04xZFoxbWcweXB0Uit2
WHJoK1RrClpFUkVSQ0F0TFEyM2J0M0NsMTkrYWZmVmszbDVlUllucDdtNXVUQWFqUzdsRlJNVGcz
cjE2cUZSbzBhWU1tVUs1cytmYnpFMW9rS0YKQ3JoMjdSb0EyNzhLYmIzZFViMEE4NnRXQ3k0N2lG
VmJkQUFBR3ZSSlJFRlVLbDlSNHBEL3F0UDhPR2cwR21XK2VGSGpkT2ZPSGF4WQpzUUlBMExGalIz
VHYzdDNpNm5nK1Ira2N4YVZYcjE1NC9QSEhzWDM3ZG1YN2tTTkgwTEJoUStVNWhHYk5tdUhnd1lQ
SXk4dkRqUnMzCmNPSENCZHk1YzhkbTNYdjM3ZzFQVDA5ODk5MTN5dlkvL3ZnRHQyL2ZWdXBiMEpr
eloyQXltWEQ2OUdrWWpVYnMyclVMV3EwV0pFR3kKVUZ5dGw2MjVjNHdkN2Z1Tk45NXdxeDdPNUwv
eHl0R1BVeTlhdEFoZHVuUXB0TDVaczJabzFxd1pGaXhZZ016TVRBQkE3ZHExTVd2VwpMSXNCVWxK
U0VxNWR1Nlk4cStKS0dtZXlzckl3YnR3NEpDWW0yazNUcFVzWGxDNWRHaDRlSHZEejgwUGJ0bTFS
dm54NVZLMWF0ZERKCnFYVy9jTGNQVzNQVXIxeHAyKzd1MzUxK0RRQmZmUEVGNnRldmovZmZmeDk5
Ky9aRm1USmw3TllsWDhIUHg4Zkg0OVZYWDBWd2NMRFQKNzZUTXpFeVlUQ2FsL0s3VTM1MytZb3M3
OFhNMzcvdzNYam42UlhlZFRvZXZ2dnBLS1lNUVFvaGk1dXJUNnFkT25XSkVSQVFCME0vUApqek5t
ekdCR1JvYXlmZlhxMVZTcjFXemN1REdQSFR2R3hNUkVObXJVaUo2ZW5zb2JjdWJQbjgvU3BVdFRw
Vkl4TURDUTY5YXRzN212ClhidDJzVUtGQ3F4V3JScjM3OS9QNDhlUHMyN2R1aXhkdWpTM2Jkdm1N
Sy80K0hoV3FWS0Z4NDhmSjBtZVBuMmFIaDRlckZXckZnOGUKUEVpU0hETm1ERlVxRmQ5NjZ5MG1K
eWNYMm4vQjdULzg4SVBEZWtWRlJkSEh4NGRWcTFibGloVXJsRHdjMWRYVk9CdzhlSkF0VzdZawpB
TTZiTjQ5Nzl1eGhxMWF0Q0lDelpzMWlYRnhja2VOMDZ0UXAxcWxUaHdzV0xPRDY5ZXM1ZlBodzZ2
VjZtOGZkVmpwWGpuZGlZaUliCk4yN01hZE9tY2N1V0xRd1BEK2VaTTJlVXZIZnMyTUdBZ0FEV3Js
MmJIMy84TVljTkc4WjI3ZG94UGo2K1VOMTFPaDJqb3FKWXJsdzUKTm1yVWlHKzg4UWE3ZGV2RzU1
OS9ubEZSVVlYS25aT1R3K2JObTlQWDE1ZURCdy9tNXMyYldiWnNXZmJ2MzU5Nzl1d3BGRmZyZlJY
awo3akYydEc5MzYrSEloZzFrMDZibXQyQ0ZoWkV4TVlYVC9QVFRUL1R6ODJQMzd0MHRmbENVSkdO
alkxbW5UaDBDWVBmdTNYbmp4ZzJTClpNT0dEUmtXRnNhUkkwZnlxNisrWW5Cd01JY09IY3E4dkR6
bHM2NmtjZVRZc1dOVXE5VU1DUWx4bUM0eU1wTG56NTlYbHNlTkcyZXgKVEpyN1NjRitvZFBwM09y
RDFsejUvbkhXdHQzWnYzWDVYZW5YSDM3NElRRVFBRDA4UEJnVUZNVGh3NGNYYXJ2NUpreVl3R2JO
bXZIcgpyNy9tNU1tVCtjRUhIMWo4b0tXOXRuemd3QUcrOE1JTEJNREl5RWhldUhEQmFmMkw4cDFv
emQzajUycmVHelpzWU5PbVRRbUFZV0ZoCmpMSFZhV2ordTZGU3FmalRUei9aTGFNUVFvaWlVNUV1
L3BKVk1jbkx5OFBWcTFkUm8wYU5lNTUvZXk5NTNiNTlHNVVxVlNyeTluc3QKWDNIR29TamxNSmxN
VUt2VlNFOVBSNmxTcFN3ZTZDM0kxWFQya01UNTgrZWhWcXRScDA0ZG0yVXpHbzBvVTZZTTlIcTkw
K2xTUnFNUgphV2xwcUZTcEVyUmFMYnk5dlIybTEyZzB5dFZoVi9KM2w2UGo2R2pmN3RhakpLV21w
c0xmM3grNXVibTRkT2tTcWxldnJqenY0VTRhClp6SXlNdkROTjk5Z3dvUUpkdFBvZERxVUxsM2E3
cklqeGRHSEhYSFd0dS9uL2lkUG5veWVQWHRDcTlVaUt5c0w2ZW5wV0xseUpmcjMKNysvd1dZaWtw
Q1JVcWxUSjVuZU91OTlKenVwdml6djdjRGQreGYyZG1wS1NZdkVndlJCQ2lPSlQ0Z01RSVlRQWdN
V0xGK09aWjU1QgowNlpOSDNSUkhpa0xGeTdFeXBVckVSY1haN0UrTmpZV2RlclVrVmZKQ2lHRWVP
akpBRVFJOFVDa3BhV2hZc1dLRDdvWWo1eVRKMDhpCkpDUUUzYnAxUTh1V0xhSFJhSkNjbkl5dVhi
dWlhOWV1RDdwNFFnZ2hoRk15QUJGQ2lFZE1Sa1lHZnYzMVZ5UWxKU0VzTEV6dWVnZ2gKaEhpa3lB
QkVDQ0dFRUVJSVVXSks3SGRBaEJCQ0NDR0VFRUlHSUVJSUlZUVFRb2dTSXdNUUlZUVFRZ2doUklt
UkFZZ1FRZ2doaEJDaQp4TWdBUkFnaGhCQkNDRkZpWkFBaWhCQkNDQ0dFS0RFeUFCRkNDQ0dFRUVL
VUdCbUFDQ0dFRUVJSUlVcU1ERUNFRUVJSUlZUVFKVVlHCklFSUlJWVFRUW9nU0l3TVFJWVFRUWdn
aFJJbVJBWWdRUWdnaGhCQ2l4TWdBUkFnaGhCQkNDRkZpWkFBaWhCQkNDQ0dFS0RFeUFCRkMKQ0NH
RUVFS1VHRTluQ2I3Ly92dVNLSWNRUWdnaGhCRGlFZGV6WjA5VXJGalJZUnFuQTVEOGpJUVFRZ2do
aEJEaVhxbEk4a0VYUWdnaApoQkJDQ1BIUElNK0FDQ0dFRUVJSUlVcU1ERUNFRUVJSUlZUVFKVVlH
SUVJSUlZUVFRb2dTSXdNUUlZUVFRZ2doUkltUkFZZ1FRZ2doCmhCQ2l4TWdBUkFnaGhCQkNDRkZp
WkFBaWhCQkNDQ0dFS0RFeUFCRkNDQ0dFRUVLVUdCbUFDQ0dFRUVJSUlVcU1ERUNFRU9MLzI3dS8K
RUo4Uy80L2pMMWtYQ20wYUd6Y1QyZ3ZLYkZ4WTBoWjdvVFd5RVFsdGFkMndTZHF4dGRpVWk2MjlS
ZjVPVFdsSGU0RW9jVFcxU2RwYgpialpKTE5QUUdsdEdUTXdhOHJ2dy9VNU5XRFBhZlg5MytqMGVO
WjNtYzE3bjNEK2JPZWNEQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBCkdRRUNBQUNVRVNBQUFFQVpB
UUlBQUpRUklBQUFRSmwvTEVCNmVucUd0SHY0OEdFNk96dVRKSThlUFVwZlg5ODdiUUFBZ0grL1VT
OWUKdkhqeFY0T3paNVB2dmt0Ky9UWDU5Tk5rNHNUazk5K1REejVJdG05UDVzOS8vWFZMbGl6SjNy
MTdNMlBHak5lZXYzUG5UbmJzMkpHeApZOGRtM0xoeHVYanhZcDQ4ZVpLMnRyYk0vODlOaDdJQkFB
QkdqdmZlTnZqODgrUzMzNUt2djA1KytPRmxjRHgvbm56MVZiSndZZkx6Cno4a25ud3krNXZyMTYr
bm82TWpCZ3dlemYvLysxOTYzcGFVbFQ1OCt6YkZqeDVJay9mMzltVHQzYm03ZnZqMnNEUUFBTUhJ
TTZWK3cKM24vLzVYSFVxSmZIMGFPVGI3NUpuajVOZnZycDFYMWJXMXMyYk5pUTl2YjI5UGIydnZh
ZVY2OWVUVmRYVi9yNys1TWtZOGFNeWRHagpSM1AvL3YxaGJRQUFnSkhqblo4QitlT1BsOGZKa3dk
LzN0ZlhsM3YzN21YMzd0M3A3ZTFOZTN2N2E2OWZ1M1p0TGwyNmxNV0xGNmU3CnV6dEpNbWZPbkd6
Y3VIRllHd0FBWU9SNHB3RDU4OC9rKys5ZlBnL3l4UmVEengwL2ZqeXJWcTFLWTJOam1wdWJjL0Rn
d2RmZVk4dVcKTFZtMGFGRXVYTGlRV2JObTVlelpzKyswQVFBQVJvNWhCY2kzMzc1OEVQMmpqNUtH
aHVUaXhlVEREd2R2enAwN2x5VkxsaVJKTm0zYQpsQ3RYcnVUOCtmT3YzR3ZDaEFucDZPakl6cDA3
MDlQVGt4VXJWdVRRb1VQRDNnQUFBQ1BIVzkrQ2xTUS8vcGg4K1dYeXl5L0p4eDhuCjc3M2gwZlhM
bHk5bjI3WnRXYmR1WFpMazJiTm5hV2xweWJKbHkzTHExS2szM3YvQ2hRdFpzMlpOdXJ1N2MrTEVp
YXhldmZxZE5nQUEKd0wvYnNQNENNbnIwbStNalNZNGNPWklOR3pha29hRWhEUTBObVR4NWNsYXNX
SkV6Wjg2a3E2dHJZSGZyMXEwOGV2Um80UGVGQ3hmbQo5T25UU1pLVEowOE9lUU1BQUl3c2Y5c1hF
VDU0OENDZG5aMVp2MzU5VnE1Y09mQ3phOWV1UEgvK1BLMnRyUVBiN3U3dTdOdTNiOUQxCkN4WXN5
TlNwVXdkQ1pTZ2JBQUJnWkJsU2dQejNqVmQvOWZiYnRyYTJORGMzdi9KNVUxTlRtcHFhMHRyYW1v
Y1BIeVpKcGsrZm5qMTcKOXVUYXRXc0R1N3QzNytiMjdkdFp1blRwa0RjQUFNRElNdXh2UXQrK1Bm
bnNzOEdiOXZiMmJOMjZOWXNXTGNxZVBYc3liZHEwZ1hNZApIUjNadkhsemJ0eTRrZVhMbCtmdzRj
T1pNbVZLWnM2Y21TbFRwbVQyN05tWk5HbFNqaDgvbm5uejV1WEFnUU1aTTJaTWtneHBBd0FBCmpC
eERlZ2o5bjNELy92MU1uRGd4ang4L3pzMmJOOVBZMkpqeDQ4Y1Bld01BQUl3Yy83TUFBUUFBL3Yv
NTJ4NUNCd0FBZUJzQkFnQUEKbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJr
QkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUgpJQUFBUUJrQkFnQUFsQkVnQUFC
QUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxQbkhBcVNucDJkSXU0Y1BINmF6
CnN6Tko4dWpSby9UMTliM1RCZ0FBK1BjYjllTEZpeGQvTlRoN052bnV1K1RYWDVOUFAwMG1Ua3gr
L3ozNTRJTmsrL1prL3Z6WFg3ZGsKeVpMczNiczNNMmJNZU8zNU8zZnVaTWVPSFJrN2RtekdqUnVY
aXhjdjVzbVRKMmxyYTh2OC85eDBLQnNBQUdEa2VPOXRnODgvVDM3NwpMZm42NitTSEgxNEd4L1Bu
eVZkZkpRc1hKai8vbkh6eXllQnJybCsvbm82T2podzhlREQ3OSs5LzdYMWJXbHJ5OU9uVEhEdDJM
RW5TCjM5K2Z1WFBuNXZidDI4UGFBQUFBSThlUS9nWHIvZmRmSGtlTmVua2NQVHI1NXB2azZkUGtw
NTllM2JlMXRXWERoZzFwYjI5UGIyL3YKYSs5NTllclZkSFYxcGIrL1Awa3lac3lZSEQxNk5QZnYz
eC9XQmdBQUdEbmUrUm1RUC81NGVadzhlZkRuZlgxOXVYZnZYbmJ2M3AzZQozdDYwdDdlLzl2cTFh
OWZtMHFWTFdieDRjYnE3dTVNa2MrYk15Y2FORzRlMUFRQUFSbzUzQ3BBLy8weSsvLzdsOHlCZmZE
SDQzUEhqCng3TnExYW8wTmphbXViazVCdzhlZk8wOXRtelpra1dMRnVYQ2hRdVpOV3RXenA0OSsw
NGJBQUJnNUJoV2dIejc3Y3NIMFQvNktHbG8KU0M1ZVRENzhjUERtM0xseldiSmtTWkprMDZaTnVY
TGxTczZmUC8vS3ZTWk1tSkNPam83czNMa3pQVDA5V2JGaVJRNGRPalRzRFFBQQpNSEs4OVMxWVNm
TGpqOG1YWHlhLy9KSjgvSEh5M2hzZVhiOTgrWEsyYmR1V2RldldKVW1lUFh1V2xwYVdMRnUyTEtk
T25YcmovUzljCnVKQTFhOWFrdTdzN0owNmN5T3JWcTk5cEF3QUEvTHNONnk4Z28wZS9PVDZTNU1p
Ukk5bXdZVU1hR2hyUzBOQ1F5Wk1uWjhXS0ZUbHoKNWt5NnVyb0dkcmR1M2NxalI0OEdmbCs0Y0dG
T256NmRKRGw1OHVTUU53QUF3TWp5dDMwUjRZTUhEOUxaMlpuMTY5ZG41Y3FWQXorNwpkdTNLOCtm
UDA5cmFPckR0N3U3T3ZuMzdCbDIvWU1HQ1RKMDZkU0JVaHJJQkFBQkdsaUVGeUgvZmVQVlhiNzl0
YTJ0TGMzUHpLNTgzCk5UV2xxYWtwcmEydGVmandZWkprK3ZUcDJiTm5UNjVkdXphd3UzdjNibTdm
dnAybFM1Y09lUU1BQUl3c3cvNG05TzNiazg4K0c3eHAKYjIvUDFxMWJzMmpSb3V6WnN5ZlRwazBi
T05mUjBaSE5temZueG8wYldiNThlUTRmUHB3cFU2Wms1c3labVRKbFNtYlBucDFKa3libAorUEhq
bVRkdlhnNGNPSkF4WThZa3laQTJBQURBeURHa2g5RC9DZmZ2MzgvRWlSUHorUEhqM0x4NU00Mk5q
UmsvZnZ5d053QUF3TWp4ClB3c1FBQURnLzUrLzdTRjBBQUNBdHhFZ0FBQkFHUUVDQUFDVUVTQUFB
RUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUMKQUFDVUVTQUFBRUFaQVFJQUFKUVJJ
QUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQQps
QkVnQUFCQW1YOHNRSHA2ZW9hMGUvandZVG83TzVNa2p4NDlTbDlmM3p0dEFBQ0FmNzlSTDE2OGVQ
RlhnN05uaysrK1MzNzlOZm4wCjAyVGl4T1QzMzVNUFBraTJiMC9tejMvOWRVdVdMTW5ldlhzelk4
YU0xNTYvYytkT2R1ellrYkZqeDJiY3VIRzVlUEZpbmp4NWtyYTIKdHN6L3owMkhzZ0VBQUVhTzk5
NDIrUHp6NUxmZmtxKy9Ubjc0NFdWd1BIK2VmUFZWc25CaDh2UFB5U2VmREw3bSt2WHI2ZWpveU1H
RApCN04vLy83WDNyZWxwU1ZQbno3TnNXUEhraVQ5L2YyWk8zZHVidCsrUGF3TkFBQXdjZ3pwWDdE
ZWYvL2xjZFNvbDhmUm81TnZ2a21lClBrMSsrdW5WZlZ0Yld6WnMySkQyOXZiMDl2YSs5cDVYcjE1
TlYxZFgrdnY3a3lSanhvekowYU5IYy8vKy9XRnRBQUNBa2VPZG53SDUKNDQrWHg4bVRCMy9lMTll
WGUvZnVaZmZ1M2VudDdVMTdlL3RycjErN2RtMHVYYnFVeFlzWHA3dTdPMGt5Wjg2Y2JOeTRjVmdi
QUFCZwo1SGluQVBuenorVDc3MTgrRC9MRkY0UFBIVDkrUEt0V3JVcGpZMk9hbTV0ejhPREIxOTVq
eTVZdFdiUm9VUzVjdUpCWnMyYmw3Tm16Cjc3UUJBQUJHam1FRnlMZmZ2bndRL2FPUGtvYUc1T0xG
NU1NUEIyL09uVHVYSlV1V0pFazJiZHFVSzFldTVQejU4Ni9jYThLRUNlbm8KNk1qT25UdlQwOU9U
RlN0VzVOQ2hROFBlQUFBQUk4ZGIzNEtWSkQvK21IejVaZkxMTDhuSEh5ZnZ2ZUhSOWN1WEwyZmJ0
bTFadDI1ZAprdVRaczJkcGFXbkpzbVhMY3VyVXFUZmUvOEtGQzFtelprMjZ1N3R6NHNTSnJGNjkr
cDAyQUFEQXY5dXcvZ0l5ZXZTYjR5TkpqaHc1CmtnMGJOcVNob1NFTkRRMlpQSGx5VnF4WWtUTm56
cVNycTJ0Z2QrdldyVHg2OUdqZzk0VUxGK2IwNmROSmtwTW5UdzU1QXdBQWpDeC8KMnhjUlBuandJ
SjJkblZtL2ZuMVdybHc1OExOcjE2NDhmLzQ4cmEydEE5dnU3dTdzMjdkdjBQVUxGaXpJMUtsVEIw
SmxLQnNBQUdCawpHVktBL1BlTlYzLzE5dHUydHJZME56ZS84bmxUVTFPYW1wclMydHFhaHc4Zkpr
bW1UNStlUFh2MjVOcTFhd083dTNmdjV2YnQyMW02CmRPbVFOd0FBd01neTdHOUMzNzQ5K2V5enda
djI5dlpzM2JvMWl4WXR5cDQ5ZXpKdDJyU0JjeDBkSGRtOGVYTnUzTGlSNWN1WDUvRGgKdzVreVpV
cG16cHlaS1ZPbVpQYnMyWmswYVZLT0h6K2VlZlBtNWNDQkF4a3paa3lTREdrREFBQ01IRU42Q1Ay
ZmNQLysvVXljT0RHUApIei9PelpzMzA5alltUEhqeHc5N0F3QUFqQnovc3dBQkFBRCsvL25iSGtJ
SEFBQjRHd0VDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBClFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFD
VUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVoKQVFJ
QUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtC
QWdBQWxCRWdBQUJBR1FFQwpBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJB
R1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBCmxCRWdBQUJBR1FFQ0FBQ1VFU0FB
QUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVIK
SUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFs
QkVnQUFCQUdRRUNBQUNVRVNBQQpBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNB
QUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBCkdRRUNBQUNVRVNBQUFFQVpB
UUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFC
a0IKQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FB
QkFHUUVDQUFDVUVTQUFBRUFaQVFJQQpBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVT
QUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVCkVTQUFBRUFaQVFJQUFK
UVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdB
QWxCRWcKQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FF
Q0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQQpRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVB
WkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaCkFRSUFBSlFSSUFB
QVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVn
QUFCQUdRRUMKQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNV
RVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQQpsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlB
QUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSCklBQUFRQmtC
QWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFH
UUVDQUFDVUVTQUEKQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFB
RUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQQpHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJ
QUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCCkFnQUFs
QkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FB
Q1VFU0FBQUVBWkFRSUEKQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFR
SUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVQpFU0FBQUVBWkFRSUFBSlFSSUFBQVFC
a0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnCkFB
QkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNB
QUFFQVpBUUlBQUpRUklBQUEKUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpR
UklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWgpBUUlBQUpRUklBQUFRQmtCQWdB
QWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVD
CkFBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFa
QVFJQUFKUVJJQUFBUUJrQkFnQUEKbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFB
UUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUgpJQUFBUUJrQkFnQUFsQkVn
QUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VF
U0FBCkFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFB
SlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkEKR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JB
Z0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQgpBZ0FBbEJFZ0FBQkFH
UUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFF
QVpBUUlBCkFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklB
QUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1UKRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxC
RWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZwpBQUJBR1FFQ0FB
Q1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJ
QUFKUVJJQUFBClFCa0JBZ0FBbEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJr
QkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQUFFQVoKQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFC
QUdRRUNBQUNVRVNBQUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQwpBQUNVRVNB
QUFFQVpBUUlBQUpRUklBQUFRQmtCQWdBQWxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFS
SUFBQVFCa0JBZ0FBCmxCRWdBQUJBR1FFQ0FBQ1VFU0FBQUVBWkFRSUFBSlFSSUFBQVFCa0JBZ0FB
bEJFZ0FBQkFHUUVDQUFDVUVTQUFBRUFaQVFJQUFKUVIKSUFBQVFCa0JBZ0FBbEJFZ0FBQkFHUUVD
QUFDVUVTQUFBRUFaQVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVRVNBQQpBRUFa
QVFJQUFKUVJJQUFBUUJrQkFnQUFsQkVnQUFCQUdRRUNBQUNVK1Qrdjg5bDZGWHpyZEFBQUFBQkpS
VTVFcmtKZ2dnPT0KCg==
</data>
<flag name="review"
          id="5863"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>