<?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>15558</bug_id>
          
          <creation_ts>2007-10-18 14:05:41 -0700</creation_ts>
          <short_desc>DumpRenderTree should support automated printing tests</short_desc>
          <delta_ts>2008-07-23 16:41:49 -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>Printing</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>15565</dependson>
          <blocked>15548</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>58826</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-18 14:05:41 -0700</bug_when>
    <thetext>DumpRenderTree should support automated printing tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58827</commentid>
    <comment_count>1</comment_count>
      <attachid>16724</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-18 15:01:15 -0700</bug_when>
    <thetext>Created attachment 16724
a fix

This isn&apos;t a perfect solution, but it works pretty well, and enables a whole new class of tests for DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58828</commentid>
    <comment_count>2</comment_count>
      <attachid>16724</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-10-18 15:05:40 -0700</bug_when>
    <thetext>Comment on attachment 16724
a fix

+        * platform/win/Skipped: skip printing tests on Windows.
+        * printing: Added.
+        * printing/media-queries-print-expected.txt: Added.
+        * printing/media-queries-print.html: Added.

We should probably just make the printing tests Mac-only for now, since only Mac DRT has support for it.

Seems like we should give the expected results a .pdf extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58829</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-18 15:12:44 -0700</bug_when>
    <thetext>I&apos;ve added a comment locally explaining why I used an intermediate file:

    // Sadly we have to dump to a file and then read from that file again
    // +[NSPrintOperation PDFOperationWithView:insideRect:] requires a rect and prints to a single page
    // likewise +[NSView dataWithPDFInsideRect:] also prints to a single continuous page
    // The goal of this function is to test &quot;real&quot; printing across multiple pages.
    // FIXME: It&apos;s possible there might be printing SPI to let us print a multi-page PDF to an NSData object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58830</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-10-18 15:15:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 16724 [edit])
&gt; We should probably just make the printing tests Mac-only for now, since only
&gt; Mac DRT has support for it.

Strike that. The tests themselves aren&apos;t inherently platform-specific, so should stay at the top level. The  results should move beneath platform/mac, and we need to add the printing directory to platform/qt/Skipped as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58838</commentid>
    <comment_count>5</comment_count>
      <attachid>16728</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-18 20:16:56 -0700</bug_when>
    <thetext>Created attachment 16728
improved fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58839</commentid>
    <comment_count>6</comment_count>
      <attachid>16728</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-10-18 20:21:19 -0700</bug_when>
    <thetext>Comment on attachment 16728
improved fix

+# No support for printAsPDF() in DRT
+printing
+

Could you stick this up near the top of the file, near where we skip webarchive?

Index: LayoutTests/platform/mac/printing/media-queries-print-expected.txt

I think we should have a .pdf extension for this so that it&apos;s easily viewable in Preview. We may have to change run-webkit-tests to know to use diff on .pdf files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58840</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-18 20:28:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 16728 [edit])
&gt; +# No support for printAsPDF() in DRT
&gt; +printing
&gt; +
&gt; 
&gt; Could you stick this up near the top of the file, near where we skip
&gt; webarchive?
&gt; 
&gt; Index: LayoutTests/platform/mac/printing/media-queries-print-expected.txt
&gt; 
&gt; I think we should have a .pdf extension for this so that it&apos;s easily viewable
&gt; in Preview. We may have to change run-webkit-tests to know to use diff on .pdf
&gt; files.

Sadlly you ran away from IRC.

I put it at the bottom because it doesn&apos;t yet have a radar.  That seemed to be the organization of the file.

webarchives don&apos;t currently have a .webarchive extension when we dump them.  I agree that they should have a .pdf extension, but I feel that&apos;s outside the scope of this bug.  I&apos;ll file a separate bug about it.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58842</commentid>
    <comment_count>8</comment_count>
      <attachid>16728</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-19 02:05:45 -0700</bug_when>
    <thetext>Comment on attachment 16728
improved fix

Given my comments above, I&apos;d like to mark this change r=? again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58857</commentid>
    <comment_count>9</comment_count>
      <attachid>16728</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-10-19 10:48:57 -0700</bug_when>
    <thetext>Comment on attachment 16728
improved fix

r=me. Would be nice to file a bug saying that we&apos;d like the results to be .pdf though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58862</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-19 10:56:53 -0700</bug_when>
    <thetext>Follow-up filed as bug 15565.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58995</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-21 01:42:27 -0700</bug_when>
    <thetext>I&apos;m still thinking about implementing dumping to .pdf instead of .txt.  That would make comparing changed values much easier.  I&apos;ve looked at it briefly, but have not come to any solid conclusions.  I&apos;ll make a decision and either land this or clear the flag within the next couple days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61861</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-20 16:15:10 -0800</bug_when>
    <thetext>Ok, I still haven&apos;t landed this. I agree with Aroben, it really needs to dump them as a .pdf file for them to be useful to folks.  Bleh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64252</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-15 01:41:00 -0800</bug_when>
    <thetext>Blocking this on bug 15565, and clearing the review&apos;d flag.  Once bug 15565 is complete then we can clean up this patch and land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64253</commentid>
    <comment_count>14</comment_count>
      <attachid>16728</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-15 01:41:21 -0800</bug_when>
    <thetext>Comment on attachment 16728
improved fix

Clearing review flag until bug 15565 is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85578</commentid>
    <comment_count>15</comment_count>
      <attachid>22192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-09 16:08:14 -0700</bug_when>
    <thetext>Created attachment 22192
Updated printing test patch

 LayoutTests/ChangeLog                              |   11 ++++++
 LayoutTests/platform/gtk/Skipped                   |    1 +
 LayoutTests/platform/qt/Skipped                    |   15 +--------
 LayoutTests/platform/win/Skipped                   |    4 ++
 .../printing/media-queries-print-expected.pdf      |  Bin 0 -&gt; 13628 bytes
 LayoutTests/printing/media-queries-print.html      |   25 ++++++++++++++
 WebKitTools/ChangeLog                              |   15 ++++++++
 .../DumpRenderTree/LayoutTestController.cpp        |    9 +++++
 WebKitTools/DumpRenderTree/LayoutTestController.h  |    4 ++
 WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm   |   36 ++++++++++++++++++++
 10 files changed, 106 insertions(+), 14 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85579</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-09 16:19:11 -0700</bug_when>
    <thetext>Landed as r35078 based on aroben&apos;s original review.  There were no changes to the patch, just re-applied to TOT (And thanks to 15565, it magically spits out a .pdf file instead of a .txt file now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86796</commentid>
    <comment_count>17</comment_count>
      <attachid>22192</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-07-23 16:41:49 -0700</bug_when>
    <thetext>Comment on attachment 22192
Updated printing test patch

Clearing review flag as the bug is closed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16724</attachid>
            <date>2007-10-18 15:01:15 -0700</date>
            <delta_ts>2007-10-18 20:16:56 -0700</delta_ts>
            <desc>a fix</desc>
            <filename>print.patch</filename>
            <type>text/plain</type>
            <size>31587</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2NzU0KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDctMTAtMTggIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIp
OgorICAgICAgICAoZHVtcEFzUERGQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQXNQ
REYpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldER1bXBBc1BERik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZHVt
cEZyYW1lQXNQREYpOgorICAgICAgICAoZHVtcCk6CisKIDIwMDctMTAtMTcgIEFkYW0gUm9iZW4g
IDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gaGF2ZSBX
aW5kb3dzLXNwZWNpZmljIHRlc3RzIGFuZCByZXN1bHRzCkluZGV4OiBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAy
Njc1MCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogCiBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoYm9vbCB0ZXN0UmVwYWludERlZmF1bHQsIGJvb2wg
dGVzdFJlcGFpbnRTd2VlcEhvcml6b250YWxseURlZmF1bHQpCiAgICAgOiBtX2R1bXBBc1RleHQo
ZmFsc2UpCisgICAgLCBtX2R1bXBBc1BERihmYWxzZSkKICAgICAsIG1fZHVtcEJhY2tGb3J3YXJk
TGlzdChmYWxzZSkKICAgICAsIG1fZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMoZmFsc2Up
CiAgICAgLCBtX2R1bXBDaGlsZEZyYW1lc0FzVGV4dChmYWxzZSkKQEAgLTY5LDYgKzcwLDEzIEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBBc1RleHRDYWxsYmFjayhKU0MKICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGR1bXBB
c1BERkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBMYXlvdXRU
ZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TGF5b3V0VGVzdENv
bnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xs
ZXItPnNldER1bXBBc1BERih0cnVlKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBCYWNrRm9yd2FyZExpc3RDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSByZWludGVycHJldF9jYXN0PExheW91dFRlc3RDb250cm9sbGVy
Kj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTUwMCw2ICs1MDgsNyBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6CiAgICAgICAgIHsgImRlY29k
ZUhvc3ROYW1lIiwgZGVjb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJk
aXNwbGF5IiwgZGlzcGxheUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBBc1RleHQi
LCBkdW1wQXNUZXh0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicHJpbnRUb1BERiIsIGR1
bXBBc1BERkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2FyZExpc3Qi
LCBkdW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcENo
aWxkRnJhbWVzQXNUZXh0IiwgZHVtcENoaWxkRnJhbWVzQXNUZXh0Q2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMiLCBkdW1wQ2hpbGRGcmFt
ZVNjcm9sbFBvc2l0aW9uc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDI2NzUw
KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBkdW1wQXNU
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQXNUZXh0OyB9CiAgICAgdm9pZCBzZXREdW1wQXNU
ZXh0KGJvb2wgZHVtcEFzVGV4dCkgeyBtX2R1bXBBc1RleHQgPSBkdW1wQXNUZXh0OyB9CiAKKyAg
ICBib29sIGR1bXBBc1BERigpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEFzUERGOyB9CisgICAgdm9p
ZCBzZXREdW1wQXNQREYoYm9vbCBkdW1wQXNQREYpIHsgbV9kdW1wQXNQREYgPSBkdW1wQXNQREY7
IH0KKyAgICAKICAgICBib29sIGR1bXBCYWNrRm9yd2FyZExpc3QoKSBjb25zdCB7IHJldHVybiBt
X2R1bXBCYWNrRm9yd2FyZExpc3Q7IH0KICAgICB2b2lkIHNldER1bXBCYWNrRm9yd2FyZExpc3Qo
Ym9vbCBkdW1wQmFja0ZvcndhcmRMaXN0KSB7IG1fZHVtcEJhY2tGb3J3YXJkTGlzdCA9IGR1bXBC
YWNrRm9yd2FyZExpc3Q7IH0KIApAQCAtMTE5LDYgKzEyMiw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBib29sIG1fZHVtcEFzVGV4dDsKKyAgICBib29sIG1fZHVtcEFzUERGOwogICAgIGJv
b2wgbV9kdW1wQmFja0ZvcndhcmRMaXN0OwogICAgIGJvb2wgbV9kdW1wQ2hpbGRGcmFtZVNjcm9s
bFBvc2l0aW9uczsKICAgICBib29sIG1fZHVtcENoaWxkRnJhbWVzQXNUZXh0OwpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjc1MCkKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsNyBAQAogCQlBODE3MDkwMTA4
QjE2NDM4MDBDQ0I5RkIgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IFdl
YkNvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlB
ODE3MDkwMzA4QjE2NEQzMDBDQ0I5RkIgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFt
ZXdvcms7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCUE4NEY2MDg5MDhCMTM2REEwMEU5NzQ1RiAvKiBDb2NvYS5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENvY29hLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJz
b2x1dGU+IjsgfTsKLQkJQUE3RjEwQzIwQ0IzQzEwMzAwMDNCREM5IC8qIEFIRU1fX19fLlRURiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5h
bWUgPSAiQUhFTV9fX18uVFRGIjsgcGF0aCA9ICJxdC9mb250cy9BSEVNX19fXy5UVEYiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTdGMTBDMjBDQjNDMTAzMDAwM0JEQzkgLyogQUhF
TV9fX18uVFRGICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZmlsZTsgbmFtZSA9IEFIRU1fX19fLlRURjsgcGF0aCA9IHF0L2ZvbnRzL0FIRU1fX19fLlRU
Rjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUU4MjU3RUYwOEQyMjM4OTAwMDUwN0FC
IC8qIENhcmJvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENhcmJvbi5mcmFtZXdvcms7
IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrOyBzb3Vy
Y2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlCNUE3NTI2NzA4QUY0QTRBMDAxMzhFNDUgLyog
SW1hZ2VEaWZmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBJbWFnZURpZmY7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUI1QTc1
MkExMDhBRjVEMUYwMDEzOEU0NSAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBu
YW1lID0gUXVhcnR6Q29yZS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9RdWFydHpDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsK
QEAgLTQyNiw3ICs0MjYsNiBAQAogCQkwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVj
dCBvYmplY3QgKi8gPSB7CiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9uTGlzdCA9IDE0OUMyOUMzMDg5MDJDNkQwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9u
IGxpc3QgZm9yIFBCWFByb2plY3QgIkR1bXBSZW5kZXJUcmVlIiAqLzsKLQkJCWNvbXBhdGliaWxp
dHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsK
IAkJCW1haW5Hcm91cCA9IDA4RkI3Nzk0RkU4NDE1NURDMDJBQUMwNyAvKiBEdW1wUmVuZGVyVHJl
ZSAqLzsKIAkJCXByb2R1Y3RSZWZHcm91cCA9IDkzNDA5OTU1MDg1NDBDQUYwMDdGM0JDOCAvKiBQ
cm9kdWN0cyAqLzsKQEAgLTU5MCw3ICs1ODksNyBAQAogCQkJCQkiLXNlY3RjcmVhdGUiLAogCQkJ
CQlfX0RBVEEsCiAJCQkJCUFoZW0sCi0JCQkJCSJxdC9mb250cy9BSEVNX19fXy5UVEYiLAorCQkJ
CQlxdC9mb250cy9BSEVNX19fXy5UVEYsCiAJCQkJKTsKIAkJCQlQUk9EVUNUX05BTUUgPSBEdW1w
UmVuZGVyVHJlZTsKIAkJCQlWQUxJRF9BUkNIUyA9ICJwcGM3NDAwIHBwYzk3MCBpMzg2IHBwYyI7
CkBAIC02MDYsNyArNjA1LDcgQEAKIAkJCQkJIi1zZWN0Y3JlYXRlIiwKIAkJCQkJX19EQVRBLAog
CQkJCQlBaGVtLAotCQkJCQkicXQvZm9udHMvQUhFTV9fX18uVFRGIiwKKwkJCQkJcXQvZm9udHMv
QUhFTV9fX18uVFRGLAogCQkJCSk7CiAJCQkJUFJPRFVDVF9OQU1FID0gRHVtcFJlbmRlclRyZWU7
CiAJCQkJVkFMSURfQVJDSFMgPSAicHBjNzQwMCBwcGM5NzAgaTM4NiBwcGMiOwpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2
aXNpb24gMjY3NTApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTY3NCw2ICs2NzQsMzQgQEAgc3RhdGljIE5TU3Ry
aW5nICpkdW1wRnJhbWVzQXNUZXh0KFdlYkZyYQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0
YXRpYyBOU0RhdGEgKmR1bXBGcmFtZUFzUERGKFdlYkZyYW1lICpmcmFtZSkKK3sKKyAgICBpZiAo
IWZyYW1lKQorICAgICAgICByZXR1cm4gQCIiOworICAgICAgICAKKyAgICBOU1N0cmluZyAqcGF0
aCA9IEAiL3RtcC90ZXN0LnBkZiI7CisgICAgCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcHJp
bnRJbmZvRGljdCA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoRGljdGlvbmFy
eTpbW05TUHJpbnRJbmZvIHNoYXJlZFByaW50SW5mb10gZGljdGlvbmFyeV1dOworICAgIFtwcmlu
dEluZm9EaWN0IHNldE9iamVjdDpOU1ByaW50U2F2ZUpvYiBmb3JLZXk6TlNQcmludEpvYkRpc3Bv
c2l0aW9uXTsKKyAgICBbcHJpbnRJbmZvRGljdCBzZXRPYmplY3Q6cGF0aCBmb3JLZXk6TlNQcmlu
dFNhdmVQYXRoXTsKKyAgICAKKyAgICBOU1ByaW50SW5mbyAqcHJpbnRJbmZvID0gW1tOU1ByaW50
SW5mbyBhbGxvY10gaW5pdFdpdGhEaWN0aW9uYXJ5OnByaW50SW5mb0RpY3RdOworICAgIFtwcmlu
dEluZm8gc2V0SG9yaXpvbnRhbFBhZ2luYXRpb246TlNBdXRvUGFnaW5hdGlvbl07CisgICAgW3By
aW50SW5mbyBzZXRWZXJ0aWNhbFBhZ2luYXRpb246TlNBdXRvUGFnaW5hdGlvbl07CisgICAgW3By
aW50SW5mbyBzZXRWZXJ0aWNhbGx5Q2VudGVyZWQ6Tk9dOworICAgIAorICAgIE5TUHJpbnRPcGVy
YXRpb24gKnByaW50T3BlcmF0aW9uID0gW05TUHJpbnRPcGVyYXRpb24gcHJpbnRPcGVyYXRpb25X
aXRoVmlldzpbZnJhbWUgZnJhbWVWaWV3XSBwcmludEluZm86cHJpbnRJbmZvXTsKKyAgICBbcHJp
bnRPcGVyYXRpb24gc2V0U2hvd1BhbmVsczpOT107CisgICAgW3ByaW50T3BlcmF0aW9uIHJ1bk9w
ZXJhdGlvbl07CisgICAgCisgICAgW3ByaW50SW5mbyByZWxlYXNlXTsKKyAgICAKKyAgICBOU0Rh
dGEgKnBkZkRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6cGF0aF07CisgICAg
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVGaWxlQXRQYXRoOnBhdGggaGFu
ZGxlcjpuaWxdOworICAgIAorICAgIHJldHVybiBwZGZEYXRhOworfQorCiBzdGF0aWMgdm9pZCBj
b252ZXJ0TUlNRVR5cGUoTlNNdXRhYmxlU3RyaW5nICptaW1lVHlwZSkKIHsKICAgICBpZiAoW21p
bWVUeXBlIGlzRXF1YWxUb1N0cmluZzpAImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCJdKQpAQCAt
ODM3LDI5ICs4NjUsMzUgQEAgdm9pZCBkdW1wKCkKICAgICB9CiAKICAgICBpZiAoZHVtcFRyZWUp
IHsKLSAgICAgICAgTlNTdHJpbmcgKnJlc3VsdCA9IG5pbDsKKyAgICAgICAgTlNTdHJpbmcgKnJl
c3VsdFN0cmluZyA9IG5pbDsKKyAgICAgICAgTlNEYXRhICpyZXN1bHREYXRhID0gbmlsOwogICAg
ICAgICAKICAgICAgICAgYm9vbCBkdW1wQXNUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXItPmR1
bXBBc1RleHQoKTsKICAgICAgICAgZHVtcEFzVGV4dCB8PSBbW1tbbWFpbkZyYW1lIGRhdGFTb3Vy
Y2VdIHJlc3BvbnNlXSBNSU1FVHlwZV0gaXNFcXVhbFRvU3RyaW5nOkAidGV4dC9wbGFpbiJdOwog
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci0+c2V0RHVtcEFzVGV4dChkdW1wQXNUZXh0KTsK
LSAgICAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQXNUZXh0KCkpIHsKLSAgICAg
ICAgICAgIHJlc3VsdCA9IGR1bXBGcmFtZXNBc1RleHQobWFpbkZyYW1lKTsKLSAgICAgICAgfSBl
bHNlIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcERPTUFzV2ViQXJjaGl2ZSgpKSB7Cisg
ICAgICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpKQorICAgICAgICAg
ICAgcmVzdWx0U3RyaW5nID0gZHVtcEZyYW1lc0FzVGV4dChtYWluRnJhbWUpOworICAgICAgICBl
bHNlIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzUERGKCkpCisgICAgICAgICAgICBy
ZXN1bHREYXRhID0gZHVtcEZyYW1lQXNQREYobWFpbkZyYW1lKTsKKyAgICAgICAgZWxzZSBpZiAo
bGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSkgewogICAgICAgICAg
ICAgV2ViQXJjaGl2ZSAqd2ViQXJjaGl2ZSA9IFtbbWFpbkZyYW1lIERPTURvY3VtZW50XSB3ZWJB
cmNoaXZlXTsKLSAgICAgICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZVdlYkFyY2hpdmVUb1hNTCh3
ZWJBcmNoaXZlKTsKKyAgICAgICAgICAgIHJlc3VsdFN0cmluZyA9IHNlcmlhbGl6ZVdlYkFyY2hp
dmVUb1hNTCh3ZWJBcmNoaXZlKTsKICAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRUZXN0Q29udHJv
bGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKSB7CiAgICAgICAgICAgICBXZWJBcmNoaXZl
ICp3ZWJBcmNoaXZlID0gW1ttYWluRnJhbWUgZGF0YVNvdXJjZV0gd2ViQXJjaGl2ZV07Ci0gICAg
ICAgICAgICByZXN1bHQgPSBzZXJpYWxpemVXZWJBcmNoaXZlVG9YTUwod2ViQXJjaGl2ZSk7Cisg
ICAgICAgICAgICByZXN1bHRTdHJpbmcgPSBzZXJpYWxpemVXZWJBcmNoaXZlVG9YTUwod2ViQXJj
aGl2ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBib29sIGlzU1ZHVzNDVGVzdCA9
IChbY3VycmVudFRlc3QgcmFuZ2VPZlN0cmluZzpAInN2Zy9XM0MtU1ZHLTEuMSJdLmxlbmd0aCk7
CiAgICAgICAgICAgICBpZiAoaXNTVkdXM0NUZXN0KQogICAgICAgICAgICAgICAgIFtbbWFpbkZy
YW1lIHdlYlZpZXddIHNldEZyYW1lU2l6ZTpOU01ha2VTaXplKDQ4MCwgMzYwKV07CiAgICAgICAg
ICAgICBlbHNlIAogICAgICAgICAgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1l
U2l6ZTpOU01ha2VTaXplKG1heFZpZXdXaWR0aCwgbWF4Vmlld0hlaWdodCldOwotICAgICAgICAg
ICAgcmVzdWx0ID0gW21haW5GcmFtZSByZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJlc2VudGF0aW9u
XTsKKyAgICAgICAgICAgIHJlc3VsdFN0cmluZyA9IFttYWluRnJhbWUgcmVuZGVyVHJlZUFzRXh0
ZXJuYWxSZXByZXNlbnRhdGlvbl07CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChy
ZXN1bHRTdHJpbmcgJiYgIXJlc3VsdERhdGEpCisgICAgICAgICAgICByZXN1bHREYXRhID0gW3Jl
c3VsdFN0cmluZyBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CiAKLSAg
ICAgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgaWYgKCFyZXN1bHREYXRhKSB7CiAgICAgICAg
ICAgICBjb25zdCBjaGFyICplcnJvck1lc3NhZ2U7CiAgICAgICAgICAgICBpZiAobGF5b3V0VGVz
dENvbnRyb2xsZXItPmR1bXBBc1RleHQoKSkKICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSAiW2RvY3VtZW50RWxlbWVudCBpbm5lclRleHRdIjsKQEAgLTg3MSw4ICs5MDUsNyBAQCB2b2lk
IGR1bXAoKQogICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJbbWFpbkZyYW1lIHJlbmRl
clRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRpb25dIjsKICAgICAgICAgICAgIHByaW50ZigiRVJS
T1I6IG5pbCByZXN1bHQgZnJvbSAlcyIsIGVycm9yTWVzc2FnZSk7CiAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBOU0RhdGEgKmRhdGEgPSBbcmVzdWx0IGRhdGFVc2luZ0VuY29kaW5nOk5T
VVRGOFN0cmluZ0VuY29kaW5nXTsKLSAgICAgICAgICAgIGZ3cml0ZShbZGF0YSBieXRlc10sIDEs
IFtkYXRhIGxlbmd0aF0sIHN0ZG91dCk7CisgICAgICAgICAgICBmd3JpdGUoW3Jlc3VsdERhdGEg
Ynl0ZXNdLCAxLCBbcmVzdWx0RGF0YSBsZW5ndGhdLCBzdGRvdXQpOwogICAgICAgICAgICAgaWYg
KCFsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpICYmICFsYXlvdXRUZXN0Q29udHJv
bGxlci0+ZHVtcERPTUFzV2ViQXJjaGl2ZSgpICYmICFsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVt
cFNvdXJjZUFzV2ViQXJjaGl2ZSgpKQogICAgICAgICAgICAgICAgIGR1bXBGcmFtZVNjcm9sbFBv
c2l0aW9uKG1haW5GcmFtZSk7CiAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzU1KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMDctMTAtMTggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBw
ZWQ6IHNraXAgcHJpbnRpbmcgdGVzdHMgb24gV2luZG93cy4KKyAgICAgICAgKiBwcmludGluZzog
QWRkZWQuCisgICAgICAgICogcHJpbnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHByaW50aW5nL21lZGlhLXF1ZXJpZXMtcHJpbnQuaHRtbDog
QWRkZWQuCisKIDIwMDctMTAtMTggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCShy
ZXZpc2lvbiAyNjc1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MDUsNiArNTA1LDkgQEAgZmFzdC9mb3Jtcy90ZXh0YXJlYS1wYXN0ZS1u
ZXdsaW5lLmh0bWwKICMgVW5pbXBsZW1lbnRlZCBwYXJ0IG9mIERSVC4gKFRoaXMgdGVzdCBpcyBj
dXJyZW50bHkgZGlzYWJsZWQpLgogIyBodHRwL3Rlc3RzL3BsdWdpbnMvbnBhcGktcmVzcG9uc2Ut
aGVhZGVycy5odG1sCiAKKyMgTm8gc3VwcG9ydCBmb3IgcHJpbnRBc1BERigpIGluIERSVAorcHJp
bnRpbmcKKwogIyB1c2VkIHRvIGJlIGNyYXNoZXJzIGJ1dCBhcmUgbm93IGZhaWx1cmVzLgogc2Vj
dXJpdHkvYmxvY2stdGVzdC5odG1sCiAKSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL21lZGlh
LXF1ZXJpZXMtcHJpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9t
ZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wcmlu
dGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUg
QEAKKzxodG1sPgorPHN0eWxlPgorZGl2IHsKKyAgYmFja2dyb3VuZDogcmVkOworICB3aWR0aDog
MTAwcHg7CisgIGhlaWdodDogMTAwcHg7Cit9CitAbWVkaWEgcHJpbnQgeworICBkaXYgeworICAg
IGJhY2tncm91bmQ6IGdyZWVuOworICB9CisgIHNwYW4geworICAgIGZvbnQtc3R5bGU6IGl0YWxp
YzsKKyAgfQorfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJpbnRUb1BERigpOworPC9zY3Jp
cHQ+Cis8Ym9keT4KKyAgPGRpdj48L2Rpdj4KKyAgPHNwYW4+V2hlbiBwcmludGluZywgeW91IHNo
b3VsZCBzZWUgYSBncmVlbiBzcXVhcmUgYWJvdmUgYW5kIHRoaXMgdGV4dCBzaG91bGQgYmUgaXRh
bGljLjwvc3Bhbj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5n
L21lZGlhLXF1ZXJpZXMtcHJpbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3Bs
YXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3ByaW50
aW5nL21lZGlhLXF1ZXJpZXMtcHJpbnQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
Om1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCkpWQkVSaTB4TGpNS0pj
VGw4dVhycC9PZzBNVEdDaklnTUNCdlltb0tQRHdnTDB4bGJtZDBhQ0EwSURBZ1VpQXZSbWxzZEdW
eUlDOUcKYkdGMFpVUmxZMjlrWlNBK1BncHpkSEpsWVcwS2VOcUZra0dQZ2pBUWhlLzlGZStJeWFM
VEFoV3ZhOXk3Q1lsbnhDbzFDZ3VVemU2LwozOG9LTnZTd21Vczc3M3ZUbVVrYjdORmdMY0JKSUpZ
cEpCRmFoUU1xckxZZFI5R0JEOUVWRDJ4dHNkUWk0Wk03Mnh2a0pyWitZaUVmCmt6U0V0VFRXK1Rp
R2ZIUVhkN3huNFBLWmxrakJoVUIyeCtxREw4bnkyWmtGaDFKVkMyUlhGNHlUa1F6dzJlcks2T3J5
Tm9jNE9kUlAKM1MvWVRJK2lsOTZWZFg4N2VTWHNTQzlFcVVsbmY3cHduOGh4YVpYZnEwaFNwMGJU
NTYyYUlTd2k2WlE1MWw5ekFsRzhjWWpxQkZQcQp6dHNLSld5Q2pQbzJIdkQveFBFME1RdHc5UHBJ
eUZtSU52bE5GOHVCMldYMisreC9BUTAwZ1c0S1pXNWtjM1J5WldGdENtVnVaRzlpCmFnbzBJREFn
YjJKcUNqSTBPQXBsYm1Sdlltb0tNU0F3SUc5aWFnbzhQQ0F2Vkhsd1pTQXZVR0ZuWlNBdlVHRnla
VzUwSURjZ01DQlMKSUM5U1pYTnZkWEpqWlhNZ015QXdJRklnTDBOdmJuUmxiblJ6SURJZ01DQlNJ
QzlOWldScFlVSnZlQXBiTUNBd0lEWXhNaUEzT1RKZApJRDQrQ21WdVpHOWlhZ296SURBZ2IySnFD
anc4SUM5UWNtOWpVMlYwSUZzZ0wxQkVSaUF2VkdWNGRDQmRJQzlEYjJ4dmNsTndZV05sCklEdzhJ
QzlEY3pFZ05TQXdJRklnUGo0Z0wwWnZiblFnUER3Z0wwWXhMakFLTmlBd0lGSWdQajRnUGo0S1pX
NWtiMkpxQ2pnZ01DQnYKWW1vS1BEd2dMMHhsYm1kMGFDQTVJREFnVWlBdlRpQXpJQzlCYkhSbGNt
NWhkR1VnTDBSbGRtbGpaVkpIUWlBdlJtbHNkR1Z5SUM5RwpiR0YwWlVSbFkyOWtaU0ErUGdwemRI
SmxZVzBLZU5wOWtrOUlGRkVjeDcrekpVS3NCV1VtVXZCT3RnZFhCdTFnSFl6ZDlXL0t0cXhyCnBn
aXl6cjdaSFoyZG5kN01iaVVlUW9ndVFkWXh1bGpSU1RxR0J3OGRBZzhSZ21KZEl1Z29HUVNDbDVE
dE56Tzc3b2phZ3pmdk03Ly8Kdjk5N1FGMG9iWnA2Z0FGNXd4YkovaWk3T3o3QjZqZFFod1lFUVN1
dFdHWWtrUmgybVd4eFpPMTloZVNjbStIajlmOWREWUlTQWhKVgpnTWFzeDljY252WjR3T0g3dG1r
VFR6cXM1TklaWXBPNFRhU1NNZUpYeEdlelBwNzJjWVpiQ3ZFeThVM0ZGQlFua0NJZUtDbFpKK1lP
CnNXeGtOSVBrbDRtN01wYVNKeWJmd0ZObkZsNlo5aERRZlFVNDlia21tN0NBNVhmQXBkYWFMTlFN
WEJ3RFZqcHJzdDJrT3grcGFkMVMKT3p0Y2tSU01BblUveXVYZFZxRCtCYkQvdkZ6Kys3cGMzbjlE
T2I0REgzV2xLRXFWR1VuU0Y4RHJ3MTJOL2R6Z1FsT1ljMThKVVZBMQpuZnRHZXJ6YTY5ZUxSL1Vs
cTNRU2V6TnhWeGV3UlBjd2RnWVllZ3k4L0FsY2ZROWMrQUFrR29EVWRRUWVvYnB0L3NETkV5dVlE
NFdXCnpkbXNRNVk3V05nNU9sbUVYZ2huc1VMZUxOcGNzRUZEYVc5amFWMW5ycW5GQkxlNEtQRk1P
L0o2c2Rydk9kcEJib3lPMEVuekNxamMKNnEyd05KTko5OURkb0oxNEk4TjdlcDEzUWJ5b2FuMkR6
b1hRL3FTS3ZsR1BwZk9hUFpqeU9OQnQ2UEhoQ3NNb3hHOTdNYkZqMnRGawpOYjVWR3VtdHltZlN0
eEowdHBEOHhteGh5TEZwSXQvUVhDNDE1ckdVbXN2RjRoVmV4VGgwY0dndzZHdUFJWWwrUkJHR0NZ
RUNWTkpvClpLR1JsTHMyZ3RqQzdMR1dPaEkrWnFUZkpwOXQxK2NlaXVUdGVOMUJOSTZGdG9NSVRQ
NG0vNWEzNUNYNXJmeHJzYVVZcW1rV3hKU20KckQvN1EzR2R6Tlc0RlcybEppKytRbmtqcE5XUkpX
bitvQ2ZMVjZtdk90VlliS2xGY25Md0ovRTlYNWZjbHltTWFUZlNySnVwNU9vcwora1o4MlU2YUh0
bXV6YTgyMTNKdG5WNlozQXl1elIrYVZlRklWL3lncThQL05UdS9QLzhIemJBQmFBcGxibVJ6ZEhK
bFlXMEtaVzVrCmIySnFDamtnTUNCdlltb0tOekEyQ21WdVpHOWlhZ28xSURBZ2IySnFDbHNnTDBs
RFEwSmhjMlZrSURnZ01DQlNJRjBLWlc1a2IySnEKQ2pFeElEQWdiMkpxQ2p3OElDOU1aVzVuZEdn
Z01UTWdNQ0JTSUM5R2FXeDBaWElnTDBac1lYUmxSR1ZqYjJSbElENCtDbk4wY21WaApiUXA0Mm9Y
U1QyK0NNQmdHOEhzL3hYUFVaR2ovQU9KMXkzWTNhZUlac1VxTmxrSExzbjM3VmNUUmxNUHluc2p6
NDZGdlE0c2RXbXc0CkdPVVFnaU9uRkozQ0hnYnJOOHRRV2JCaGJJVkViSE5zUEN3OFNrWjVBcjBQ
OFhucjJmMGhZUk90Ym5pVllQa1k1Q2pBT0llOFlmM0IKVnRTL0lVOVk3R3RsbHBDWEFaSUhUTE9u
WE9DejA4WnBjMzc1UTJNYm80SDZhZm9vSjB5SUtiZDEwMStQczRxQ0JrU3BPT2VQVDVBaApMM0h1
VkhEV3A4bUtvS1B0eTI1V0kyZytFdUpyRHMzWFhLVGJxYVEwUjdoYTJ4aWw0Y0pPZmJzbGljRC9H
NmZoeGdjVlgzeEdnMWk3CjhxcXIxV0RlcGY5YmRyOElIMzNaQ21WdVpITjBjbVZoYlFwbGJtUnZZ
bW9LTVRNZ01DQnZZbW9LTWpReENtVnVaRzlpYWdveE1DQXcKSUc5aWFnbzhQQ0F2Vkhsd1pTQXZV
R0ZuWlNBdlVHRnlaVzUwSURjZ01DQlNJQzlTWlhOdmRYSmpaWE1nTVRJZ01DQlNJQzlEYjI1MApa
VzUwY3lBeE1TQXdJRklnTDAxbFpHbGhRbTk0Q2xzd0lEQWdOakV5SURjNU1sMGdQajRLWlc1a2Iy
SnFDakV5SURBZ2IySnFDanc4CklDOVFjbTlqVTJWMElGc2dMMUJFUmlBdlZHVjRkQ0JkSUM5RGIy
eHZjbE53WVdObElEdzhJQzlEY3pFZ05TQXdJRklnUGo0Z0wwWnYKYm5RZ1BEd2dMMFl4TGpBS05p
QXdJRklnUGo0Z1BqNEtaVzVrYjJKcUNqY2dNQ0J2WW1vS1BEd2dMMVI1Y0dVZ0wxQmhaMlZ6SUM5
TgpaV1JwWVVKdmVDQmJNQ0F3SURZeE1pQTNPVEpkSUM5RGIzVnVkQ0F5SUM5TGFXUnpJRnNnTVNB
d0lGSWdNVEFnTUNCU0NsMGdQajRLClpXNWtiMkpxQ2pFMElEQWdiMkpxQ2p3OElDOVVlWEJsSUM5
RFlYUmhiRzluSUM5UVlXZGxjeUEzSURBZ1VpQStQZ3BsYm1Sdlltb0sKTVRVZ01DQnZZbW9LUER3
Z0wweGxibWQwYUNBeE5pQXdJRklnTDB4bGJtZDBhREVnTVRNME16SWdMMFpwYkhSbGNpQXZSbXho
ZEdWRQpaV052WkdVZ1BqNEtjM1J5WldGdENuamF2WG9KZUJ2VnRmKzlkMlkwMmpWYXJOWFNTQjV0
dGlUTHEyVEoyOWlXN1NTT0U1UEZzUk1jCnNpK0VrQlVURWhMU0ppSEJDZFFzQ1JES2c1YlhsS1VC
SlZDcWxDMmxhUW1RQUlXUTkwb0Q3ZnVUOUFHdHV6MUlYd3UyL21kR2RqQnQKLys5NzcvdmU5OWY0
M25PWE0zZjVuWFBQUGZkNkVFWUlhZEZPUkNGeDZkckY2OUVmOEQ0b09RUGh0YVdEbTczbkZEZjlD
Q0Y4SDBKTQo2NHIxSzllK3RxRjBLMEtLQ3hBMnI3enVwaFYvUEgzNWx3anBlaER5MUt4YXZualpT
RnVIaUZCa043eWZXQVVGdW92Y055SC9QT1Q5CnE5WnUzdEtYcE82Ry9LOGd2K3k2ZFVzWHorMFpP
STFRTkFQNW1yV0x0NnhYcmxRQ2IzUUw1TDNYTDE2Ny9QZ2RqNTZEUFBTUEF1dlgKYmRwTUhxYmVo
ZnhKeU05WnYzSDUrc3lmTGcwZ0ZMTWd4QzZCTW95aytVZ3pVcUFYcFRiUS9QR1N2LzhSQ0JUNjMv
N1IvNkNNZ2RHdwpTSWxVa0ZZakRZeE8rdWtnNkpFQmNjaUlUTWlNTEtnSVdhSE1odXp3eW1ZSWRj
akp6RVZtYWkxeUlwUi9EOEpIRVA0NE5qOC94dFNnCjJOamorWCtqaXVHTmg4ZEQ0ZWREajZONzBN
dG9DOW9PNmErakhBcWpNdFFCYzMwVWRhTitkQkdMcUFKbS93RGFDM3lYb2JkT3RBYi8KQ3ZwNEFx
MUNid0JmQUxXamUyRXNuV2daR29UM2c2Z05lTCtQTHFBa1dvQnVRc2ZRcStnOHRCMUZzOUJjZElv
Y3piK05LdEY5NkMzOApBNXJLRDBOTDVTaUIxcUxkNkk3ODkxQU1OVUpMTzlHdFdNQ2I4aU5vQUo2
MU1LNDcwYmZSdWZ6Yk1DOFdVSkhHMkFDY1YwRlB4N0FLCmU3Q0k5d0J1ZXNBbkFPUHRnWjU2NFkx
bnNKSjA1amZDVzJaVWcwVFVncWFnUGhqM05uUUFIWWFSL1JpOWh4ZVN6ZFRSZkNiL1F2NU4KU2Uv
Zy9TQ01Jb1dtb1psb0k5b01QZHlMbmtVbjBGOXdMOUhuL2ZsdjVVL2tYOG4vWHRZSkJya1JEKzgw
b2k1b2R3Q3RSSGRBdXptWQo4YitpOStDNWlINk50YmdldCtBZXZBZmZoMS9CNzVCMktrYnRwWTdU
SE1Qbi94TVZBeklobUUwWmpEcUo2bUhjVjZOcjBHTG8rWGIwCnorZ29qUEVUZEJuYnNSL1g0QXor
Rm5HVFVyS0NyQ09ueU85cGl0NVBYOHgvSW8rRWdDUllRTElXUnQ2RXBzTXpGM0M3RVEzQmlJYlIK
M1NDN1F6Q3lSOUZKOURwSTVwZG9CUDBGZllFWnpHSWxEdU00dEQ0Vnh2ZXYrQU9pSjFZaWtGYnlT
eXBDTlZIcjZKL1JGNW4yc1R2RwovcFR2eS9mbk4rU2ZnOWwvQUgxSk01ZHdXb0FXd29pWHdkd0hR
ZG83UUhiU3N3dWVmZWdoZEFROUJocjJGS3l2aytnMDlQMEdlaHU5CkQvMy9CdjBXeGpDQ1BrWC9p
YjVBb3pBS0xlYmdLY0xGOEFSd0RGQnJBcW4yNEt2d0lONkJkK0pkZURlK0E4YjRJSDRHUDRkZkF5
UTcKU1I4WklOdkpQdkk4K1JsNWgxd2dINUhma2o5VEtzcE4rUURqVitsT2VqNzlQVWJQWE1Oc1kz
WXlUeWtTbzUrT0pjZm1qUzBjR3h3NwptMmZ6K254WmZqQy9QZjlQK1J4STlROHlra3BZWlRZa2dF
UWlJTlhwYUFZOFBhQnBBMmdKV29wV29EVWdteTJBNXIyQTV3TXd3OGZRCjkwQk9Qd0JkZWcxbTl6
T1ErdnZvMXpDelA2UFAwU2dhQXlOREE4NE8wT2N5WEFVejZvUVp6Y0Z6Y1IrK0dpL0UxK0FWZUJY
ZWdMZmkKYlRESC9mRGNnZStFV1g0TFA0V1A0Ui9qVC9DbitES0lseUZhWWlSZUVnWEpkSks1OEN3
R1BWaEx0cEc5NUM1eWtCd21ENUVqNUxzawpTNTRocndNYXZ5TmpsSWJTVXdFcUNVODdOWjJhUVMy
bU5sQjNVSTlRUjZnbnFEUFVXOVFJOVFVMVNvM1NOWFNLbmtsdm8rK2hYNmJmCmcrY1BqSkdKTTNY
TVhHWVpzNGE1bmhsaURqSkhtZVBNKzh6bmlvUWl5d3JzTFBicjdENzJYdllvK2lmMFUzUS9yTFRK
dnhmQU52MTMKZncrZ0o4bFowbzUraFg0RENPd2lkYkIyS3ZHVHFJZWVqMDZCOVNrbWZ5V0g4R3Vn
V1Yxb0tYNEtXY0hXRWFZTHVTSFlxWHRoWGFQOApoeEJHSUh3eTFncDJFT3JHWHNpZnB6elErclg1
ODh4T2tPRVFySGdUcklpejZDTmFoV2VBL2JpR3FnSDlYUWFXcFVKZWZVaXNxcXlJCmw4ZWlrYkxT
Y0NnWThBc2xQaS92Y1JlN25BNjd6VnBrTVp1TW5FR3YwMnJVS2lXcllHaUtZQlJ0RnpvV2ViUEJS
Vms2S0V5WkVwUHkKd21Jb1dEeXBZRkhXQzBVZFgrWEplaGZKYk42dmNvckF1ZUp2T01VQ3AzaUZF
M1BlQnRRUWkzcmJCVy8yYkVidzV2RDhxL29nZlh0Rwo2UGRtUitSMHQ1eW1nM0pHQnhtZkQ5N3d0
dHRYWmJ4WnZNamJudTBZWERYVXZpZ0Q3WjFvUFBxNzM2aGpVWFRDYUcwOHFwRmF6cUsyCnhkdFgy
WUZJSE8xWnA1QnB6enFFakZ4SEJkb1hMOHYyWE5YWG5uSDVmUDJ4YUJhM0xSV1daSkhRbWpWRXhs
K1hXODZ5YlZsRkd6VHQKWFMxTkFPMzNIb3VlSERxUTQ5Q1NSUkh0TW1IWjRxdjdzdFRpZnFrTFl5
UnJFekpaMjlhTDlpK3pFNm4yQStPVmw2QXlTd0lkaTVjUApkUUEwKzZjVXNvdWszT0lEa091YTdZ
VTJ5Wjcrdml6ZUF3MTdwZUZLUXk5TVlyblFMcFVzdXRhYlZRbXR3cXFoYXhjQjVzNmhMSnAxCmsr
KzQweW1leU1QbTF1NGRtdE1uK0xMTkxxRi9jYWI0bUFVTnpicnBhWWZvZFh5MUpoWTlZZDlSN3dQ
SVRzUmFZaTBTcmZmWmR4VG8Kdis4cWxMOTlVaVB6bmZvVjBLNVpWMUREMGtDRXFUQ0xySGVwRndi
UUo4QlU2cVJvZVIwYVdsb0hiUERyeHdEQzZxeXFiZEVRbDVZdwpaUUtjNEIzNkRJRVloWkhmZnJW
azhYaUpJc0I5aHFTa0pPd3JDZ1AxRStsc0pKSXRLd09aZzN5V2c1aGdhRTF5UVcwc09waDFDZXM1
CmI5WUZVS0Vld0hGeGZ6b091UHQ4a3NqMjUwUzBCRExablZmMUZmSmV0TVIxSElueFNIK1dMSkpx
VGs3VUZNMlZhblpPMUZ4NWZaRUEKMnZpTTdHd1ZaWlhCSzM4R3ptcHVYNVhPWXV0L1ViMWNycyto
cW1oWERxbDYrbzVoZkVkL0R1ZjM1RkRHZlFMOEp1cWFoVkJkTGFuNwo2Z3pNSHpJMVVTZ284MEdx
TnVydEFOdzdBTzErNzVCM2FPcXlJVytIZHhVb05CMlFLVlFzSCtxUHc5Um45NjJHZUU2Zkx5djJ1
NjRrCmwvZjNwNkdkaE5RT0xiY3oxQTh0WER2ZXdyVnlDOURBS0RBbG8xMGc1R0JQMzFWOTJaMFpW
MWJNOUlOUVlYMmNCRmhQZ2g3MDl3TlgKM1pXUkF0MisyajQrNWhTTXVhNE1FdWxDSzdPaERXaWlm
Mmlva0FNdFBEazA1QnFTRm5vaG44UG9id3ZFOFlJY2todUF0WkRETzN2awpxcDJDenlVVkNEN0JC
OFBxejBCWDliQitKaFEwaHhyK2E0UWJKeVBjQktOdGxCRnUvbDlDV1B6dklOenkzMEs0OVI4ajNB
WmpicFVRCnp2ei9RN2g5RXNLSVNQdVdRZ0RmWGZMZVdrVVZ6YllqUnRGT2NJNlVpV2FLUW1vRjI0
NlJRMG1vZG9idVY0MmR3TmNoZTRUN3RHRzAKWVFiRTNhTU5xTG1CRzRVc1JKVVZndEZuREVFd0t4
SzV6OU5NM1Y5UDU2alRYOVFoK2JTemJld3l2aGQ4bENKVTg3VGE3VlA5RVBzUgp3WE8vYnhWVmJw
LzZPYklXL0djRzI0OFgyYXp4TStkSFU2UE94aEVuNGthQmp0b3JLNXB3ZFJWc2hBb0REaVdTaWRx
YVlCeVg0OXBjClRVMXQ2d016ZVhPVHIxNnRNZ2RNZDlmUGFsNStKR0wwUmZsMHVjNE9SYUZnb2Y4
TCtZK3c1SDlxa09NRVlzaDF4elVhWlE0STBXbWwKL2xEemFHVUZIYXl0U1JUNkViQ250UzBlYjJ1
dHNBTnBiWVZrb1ozaC9IdXNDSmpWNFB2RU5UYkhiTWNTeDZCamw0TXg2QTBHVGR6SwpXWTNPZUpB
TEd1UFIwbmpLa1k1UGpmZmF0MFFIeTRmaWg5aUR5dnYwOXhrTzJRK1czMXRodDl2c0RxV1NWYW5W
cW1pMFBCTFJJQmE3CkVXY3p1amwvYWNEdE4yajBib1BnTEhFTE5SWFY3cHBjZnRiVDlraVpONWVm
S1NhVjhYSXZxMVI2VFhHbE9sNWhzOXU5cG9qZEdkRTQKbk00NXB0TFNzbGg1ZWJOSnBWTGJWVXJL
VVZIcXRHblVMSXRpT2J4RjlOYlUrQVhPZ0lqajdVaThQRkttcW9qWHN1VWFaU3lxdHRuTApuS1dK
SFA2anFITU0ycDhVSTk4dGU5SWIzYTNPNFY4OHF4cFVQbG4rbmZqeitEZW9GaHV3Q2ZUQXdWMjJq
NHhlZG54cS85VHBHTFZmCmRrTDZZaXBsTkVsL0VFbkVEZ3JTME1DTlNESFFVYU10Qlg5N21mSUl2
WjA3dFZkZmJpOGtsSkRRVDA1RUluYkVqV0R1NUg4ZDcrV1UKRGNydHB6aWlQQ21GeWdvTVp6WmNw
TWRGRnF2TlhJMUQ1VGhVNnl0U3NBb29nTHlzTzZIZ2VCbUxCVXFBSURHUnpkZlVZRHhYaWE4Mgph
MUs5K0tNT1o1VHFZZkZOQm8yeDFOR0diNjYxQ2RIUnU4TXJ0R01OcGR2dFpVdVlPaDlUMWFJMmFy
OTRuNXc4MEIwaVBoK3J0emV4CndoZnZrSS9jcm5JK1lkSkFtZDdzbWZONUwvWElGd08wY0dZcTQ1
TzlmRDcvTWZVR3RSL08xZTNvRGZGV05kMmVXZEM4cXZrbWVyQjAKTUg1ajVqWjZiK3pXektOdFdt
MjF2a1piNjZ4MjFqaHJYWm5TMXJyV09kNFYzaU9lSTk0VDFibWFYTzNwNnRNMXAydk5HbDh5NlRW
cAphUldodEVtVEtabmtUVjZ2MDJhdklLRjJWb3o1eWpzQ3ljb0tWVnVUUnNwTUxlOTBLdEl0SGQ2
T3NKTnI5VzcwRXErM1U5M1pFVDhUCjRScHdmQ0RTRU9GT1l1NzhDSWh2TU43b1BHTjNvdWFSVDBj
R0wwRGFhWWVrSkxjSXlBZ0RodzBaVGJZVTVweW5DOWlqb0ZBaWcxMWQKQlZBSGJWWWVKNXR3TTY2
eXNuck1Vb3J4dWtRemxrcHRlaXlVU0lzdUNaVlFKMmVTaVdyeVNXdjhrUVBiMnF2dlBiQ3pQR0xU
TVZaYQpvZG1nb2doTjAxZDdpZ0lHamFySVlGUmE5RTMyVlR0U2dWS1h6alMzYVdwYlRjVlZ1NTkv
K1MzS21mbnJoWWQ2cHY3SCs4ZFBsRnI5Cit1azZGZGF4S3AxQlAzYjRocm1IcmVCSWEvV3NXUzhX
N2JtbUp1VGZXKzdabEdoeG1mWnNmZnZpaUN5ZmNQNGo2bFZtRzV5dHE5QTMKUlg5bnZEZStNcjRs
dURsK20zOG9zQy80bU9mUjRBbVBoZzNXQmp1RFZMeklyMTZQY3RnczFvWlZncnJMVU9TUFZGbVF3
UkdPQVMwcQo0azErUDV6cUltME90aXJrMVlUVHhmN3FNQTJXaFBQN3E5VTExZU80UnhvR0pOelBq
d0RZOEl4RERPaW1JaENrdFFTTGlmdHNKUElGCi9nd3lsUldnNXdNQUlwaENXY21iSkp3bDI4VlNv
T1N5RVpQd0RBV1R0R3d2aFJKS2hoN1BWekE2Tyt0TGVydEVkbzJOVVpGWDVqZGYKZjhQMWUzNyt6
djlaMmR2TDRsY083NS9WOU5DZE82b1M5Rk5XUWF0enNJUlFBcU5VWTd0U3FSdlY3a3d2djNQTlgz
NytUbm5NMWZucgpONzgzWTJEczRwOGZDY1VsMjFnUHVLMmc5Z0p1YTBYUkpyd3JFSkd4WTd2UDBZ
bGMyT1ZXNnhsR0gvS3psbGEzeHBoK3lmc21xRjVuClFMVDdlQWQyS0RYVmlJaGtFZGxKaHVIQUdR
ekVMNXdmR0RsemJvT3pFVFNRR3p3L1lKZWhHVDBEcytmT0RBeWVnNG9CdTFNQ0Fza1cKVzFZa2Vh
WmtRc2RzazNYcXI5ZlZCUU5WdnRMWXQwWVdMZXErczVGMWQ3UnNPbkRya1JNL2VKZmFlMzFOdkth
OHhObWdNam5HN25wMQp3ODcrZHFXMXYyTDJFL2Q4K05LTHNrNTQ4aC9SQ1dZUTFtd2J4dUt4TGsx
N3RLTjhTSE1tK2w3c1k0cFZhNnl0UkZPanExVW4xRWxWCm5TWVZLSWxFeThvanRaRkVKSmtvU1pm
WDE5WW42cE9kSloxQ3A3OHJNV2pZNjd0WGM3ajJjT0tJNWtqTGU3RlA2RXZNSituZjFuK2UKSHEw
WG9ySGlkYWFmaEYxQ2NaZkhXS0lpSnQ3VEZrNkJhMHVEc0ZLMHdraWI2bng4S0ZZQ1JWUzdxYTZP
TjVXVThCNmtDcld4NFdRVgphV3VvcU5MbzBzMGxtVERQclMvQkpTWHQ2dmJNVjVlM3BHYWZqbkNU
TkExTHBsbTIyN0NlNVVYOTkzckh2VHEreUFjU2hmVmRVMWp0CnlBYkdWbFpGb1VUQjFpYVNObGFE
WlJzc2NVRk9VVkRGd2tLZkVNaGJkVzNmMkgxenVQRytPMjdCSC92TW1vME01WFlaM2ZZTnAxWGsK
NUM2YWNhbmR0WHpDcGcra1Y4NXlXVXUxMnVuZlh6UHY2NmRmZWVHSkJiLysxeDgxOWx5KzhHM3lT
TkJhaXc4YlhlcVFoUkNmSWFEVwpqRmFPK1RtWHhzVlY4eTNXb21ScXVkYmVWSFIxWXZNOU4zL3R2
VjlmS3R5bWl2bC9wN3BBVDR0Uktkb3BYclVHYlVVRWhtaXhXVlpZCkJpMTdMYmNGN3JXY29zL1Rs
K2ovb0xVTWpjVlNuMXBkd3BXRUtGYTArSW82dVRhSHBsU1hMdTRzazdKOE5WSjRGYUppa2VKTnhl
OFYKQ2tXa1RGWmRTVCtkZGxCYysraEpVTnpCQzg3RzAzWm5zMlJXNDNJU05IY0RyR0hUK0dxbERa
TWhHMWRjZjJJY1ZPa1JULy8wblJsWApqejMxdzVST3ZXbG0xNXlLQmM3WW5JT0hybjBZMy9NSHY5
Q3l2YXFXTjVyeHY3LzExcFRPNGJNMnRyUXkwTGVreXQxbFN6V3NPWFRnCmhYZFhCMlByT21aMWhh
dmwyMlJ1ckk5Nmhib05hWkViZGFFZmlkdFh4RzZNN1hidWplM0szQk8rUDNvb285UkVOUldranU2
WVRtZlUKMThSbXA2Nk5ibzF1cXJ1ZlBxVFdaZHl0YlY3S0dtcWkwa1hlRmlIVVpOQlcxaVRiclZa
M21ncUo2YlJiVlhQUVcvV2lLbFRPdWtOVApESTdrdE9uYTlQckljSVJFcGh2U3Q3US8xRTdhMnhY
cDZpZldKNGVUSk5rOVBYN2gzTURGMFZSOFlJUTdCNkZnQlVjdk94MGpkaGt2CkdUVThvWkJTa0N4
akNyVFVtQnJYU1p1MDVBdG9GWmtLdTN3NWxqSVdxRUdKSkxpTG9IWEpZR2pjeWJOVkZ3a2VYREFj
SVhuUHNrMlkKRWJ6VTdKMDkvL1owZXYxdGh4OHN0VmFXL3RqZ1BMU3BvVzlzYU5OMmh6ZmxuU0tX
MS8zMnlRVTdOSHRYS0JTZjMybHdtZzFPMTRWZgpYUGpnOERQNDVVRGpwYUhXcnQ5ZC84WHVqVE1i
U3EwT1M5Zit2ajFWVGt6MnRuR0N1N1RXVTJtUDFpKzg5M1RLM0dQMSs3NzlRNHAyCnUyMGxzMlkv
dk9YN3U2OHArSmlCL0NmVTI4d0cxSXpPaVZ0WWo4MlQ4SFI0NW5sV2V2WjRXTFoycjJwdmdoSTlQ
cjZ6R2ExUHJRbzMKQzZpTExpdTFtT2xLcHpMRjZNSzhpcGlkb21laGo1L0tXMXJLU2t0NWs4VnNV
U2tseDZDdUxrWGp5cVNPclFzbjFjNDJRV05wQ1pzNQpsY1ZoeVZnMld4NndNQlpMaXpyRjFiV0k4
VE54eVZaY3NSbVNSQ0lOVWl5NWI1S1BWdkRmeGgwQnlWWDRHRnlGU1piRGxocTNHeWZSCnVDTlJF
Slc1c0ZkWmk2N3NWQXFXK252ZEIyTWhHNVdRdkFEQVFSQUsyeDM3b1RqVFBXaGl0TC9aMFhQZ2hv
cCtOYnRYb2VRTWZKbXoKMDlsUk9hOHZuS0RvdzRReWNJNjJNeDBWbFIwUFlKRWlkVE9aUnBXR3Nk
RUsxUmU3ZnRoN1QrTk1jNE50ekdjSkdJekdpR3VCZlZYRgozS3E0enFZbjA1UkdsVU92LzVmMU13
OThRYitnTXlralJscXlHWXZ6bjVCaVJvVHpReVU2SkFZTzJ4K3o1K3lVcXZoRWxFU2o2d093Cnlk
ME91NWhqcWo2Z2QxQ1dpRC9BOUdoeXVGZU1WVWFFYUZjbGEybnphSWdYZGxDOVh2SUlBdjV3VllB
amZwT2YzT1gvdHY5UGZzcnYKVjFkWGdaV1dBTjhRYWVBaVoxaEdzc3puN1Boa1hGNFBuNDF3bDBl
SXN1QndEWjZPRDlqQmtKemg4R2Z4Q2QvcnkrT0xsYVVLbWovSgpBSDhKYVZBbytBdjRHK2wwYVds
OWZha0h2NlpYTUphU09sK0ZVOTFWMlQwMWtsSnFEbEIwN1l6WlV3TVZ2ZlJ5TVZZdWluQ3ErSUFa
ClRhUTBCbzIyWG1peDZsZVhUNWxTNlk2VUVhSzFxUDFHbjFxalVGb0tPandYOEtwbk5xTUEyaWRP
VWRoeFFCQVF1eDZ0Q2lzRXRrc3IKR1BTSUR0c2QyaUxZL2gxVEhZWVFFZ1RlWkREb3RhaW96YTB4
Qk1ONmpqUGdWc01pdzNyRFRnTnRNQVRWb2VERUpyYmhpa1pPY2tVbgpuRlZKK1NLMkwzZXR2Wngr
K3luWlh5cW9qelQxUkxMS05tRnVKelF1Skc5TFNieVpKc2xac1J0TWRUMHNPL1lURGEwMyt6ZUhY
YjBWCnMrZjRpeU5LUmdsYTRWU1dHTEJQd1ZGcWkvcnpHUkdUeXV6YTJXQytwWEsyeWRYaUtIUDR4
dGZ3dTJCZlJXd1VIMlZDbnVad0tKQk8KV1JLbDF6YmVIM29zZENMMGF1aW45VDhQdlpNNlgyK2dH
K21tVUhHaW9iYXhzN2xmMDl0NG8yZXY2ZTRpalNhaFN0cXh0WkVXUTk1dwpaOWdkMWVCR24wbXpU
aTFvdWd6VlZSNDNOaWxTZm1QS0VCWkR2dkRVY0t1bnVxcUtOM25jbm1halNSUjVFOGdobGJRYVdE
R00xUDYyCnFDYmpYdWJlN2FiY2ZrL0dzOFN6MjBON09sdmRIczdqYVZWakRyVk9hWWtQbnJGTHF4
NEJ5dHZqY05RL3hUR0Rwd2RPRDlnblZuL0QKeUpYVi96ZkxYL2JUSXNhQ0F5R0REdzZEOHpSM0Ju
MHBtNHBLdkFFVXRYcVNzeUFkQTZ5MmdpV3dmY1VVL0wwbGtMME55UklFamxwWgpYNFhXcG05SmVw
OVdrRDFiWncxdmpIb2IxY3BkdEZyUE9UUGQ3bGtWczdwS21obDZoNXExdWJzMnRyWFhOcmFTYTJm
NHpHNGZSVXJVCmFqWkVNMk96bmx2d0xhT3YxMTdqR2ZNWklpcUR2WEdaYzExc1pxemVHTlRqWDRl
ck5YWmgzMVhyNTMzbjU3RCtFeURQRitETXBnZXYKWVpFNHBZT2VvcDJxNjdmMHVnYnBiYm9EdXZ1
MXI1dCs0bmpQOUs3amt1Rmo2OGVPeTRhL1drMHFqVXBMV0cyUnhlRzZqYWJWb1dLVwpoSW8wK3ZR
M3dDbDJLOUxHYVI1My9BSTRDTERoRFJUOGZua2hiN2ppWG9YRy9hdHhaNzdnTjMwNHUrZVJIV3RN
d3NEOXQrNGdQVVBQCi9lZ1hRMGQrK09MN3U5ZGVmdWRZVi9tOFMrZmZKTTg4dmZYY21YTVAzL21M
MDJmQmR1V1hqczJuVGxKREtJb2FVVjVjbi9aMDFMYzMKbktxazJlS0FzZHFZY05kNnBxS2I2bitx
ZjFmL29mNlMrWEpVYTdaWXJDVkNkY0x2TjBZcEpFVEZ5Q0ovbVJEUnI2ZGZDZXNFZlJkSAorZmtv
blRMYUs4SWx2S1dxSWxWQyt5MVZ4Z1JOVVpKeE0xYTBjUlYyTmhYaU5kR0lQcEhEWHhPRnhyVFhK
Ym9XdWRhN2Ryb2VkaWxjCm5jMytwckNSVytSZjc5OHBHNy9tcG5Iak4zNEFsVDMraTZCeGdNdkZr
VW5yWE5yK0M3dS92TkdZdnVxanl2Y0N6dFBPaWZzQldQdncKVTU3U054U01KRlgxcFRJcDJGQWdZ
Vk1ZOE9RVFV6REVGazZwdGlJZkt1dzlDakp4b0gyd29WRS9wbVlxNDJxVG11QW1CVVdSUkNhMQpj
dDJHcjczeWszTmw2VEs5WGUyczZRYTR2OFB4YzZkK3J5cmMwUnpOM3JwbGJGc3NRYjNwOTZwOFhr
eEs0bGlwWjM4OFA5Njc1N2JmCnZQc09aNjVmR2Qxa0tMWFNIbnBGY09yUUF6dkdSdXlod0M5Zk9T
WDdxckd4dWRRRjBEdnAvNTNueEJsbVQ5aWY4bE1LdnlPYTFxVzQKQmJvRmhnWGN0YnJOd3FCL2o3
REh2eS95WU5GM0xZOFZQV0U3NHY0ZC9WZmFvcWF4SlVaUlpscGh0bk5oZzVrRHk2c0FFVktXa2xJ
cQpsc09Ob29HbXpXYmVwRkF3SlNHUlora2Mxb3ZGWGtaUm1yUnJESHA5TU8wcVY4VERETWNwc0VJ
UlY4ZkwvKzZpb0NBakp3Wm5EVFU3ClpWRXhrcXdjM0tjRlFka24zZGpJdmdHV2JBVElZMFBCY2JN
bHEyVmpETnRWa1U4eXorWko1emJyVjI0VXlNOUNOZ2QvY093NEppSG4KM0RIemlrN3pVNnN6Tis3
b3ZQMjExMS9lMDExMjE5MjNkVVgySC93R3RUOW9iVnp3K1VKR3c0UzFiTkNuS1JISmpIdkZEVGNN
L2Z6UwpwWFhpaCs4K01iL2o0dytPRnZhcUduQ0lCZW9PUVBnQmNjWlBTbkdQQWRNTXd5cGNiamNw
WGNmL1Bod1dTcnVpdk1GRFZOWXc0N0ZZCkRReHZLWW9UdHh1c3JZZVBzZ1pydFlyMWhOMXFiVWRj
d1dPZUcvVHM4eEJQcHdUV0lPelRjTGlYRkJyZ2tUMm9NMWRjS0d3RWRaWkIKS2lpemZHVTJlZDg2
cFd6UUZ6WXY2WlFMeGpFNWNSTUsrRWgzb0JPSEEyR1NUWlY0OE9Nc3hzdXNVMzQwTDE1ZEhlTzlL
aTJ0VVlidQpUZ3NSVit6d0ViM1JFOUQ2SGVFWkp4anFEZzJyWnNhMlIyNy91Q2tjcTdkelZnWDcz
aTNkdC9UY1RlYlh6SEo2dkRUbFUzSitDU2RmCi9rTXlBbnRhRFhwUGRDOFBmRU45dStiV3dBVUZV
MnkwUkdKR2Y2VEJXQjFaYlR3WFVhSWNYdkYwVFQ3bUFpcUduWGx6T0tCVDAxNUcKSjNEcWdLQU1s
eWxGYTlBYk1yTk1TS3dJeGpUM0tQOVpTWlE1TXZDRHNzNEhoQ2NFSWtCYUxMRndtQ3ZqWEVoMENE
N25FYkZZOExrUwpZclhncXpraVlzR0hua2pVeHM5c3Z5eGRGTnMvbFdQdS9LU01wR2p4RGFNRGcz
SDc2QUFvSmh5NXdNSktCQmVRSGpjazRLWitPb0lnCmpIdW4xZGFKbzBRY1h6a3RTTnRSTlNVRVpZ
TUF5c2pqaWJPRGhMZ3cxV2YxSk5jMnppN2labmVaM2RzM1ZlNndPZXhxZDZsUDU2eFkKRlczbms1
M0o4dHd0cGZkcExXYWxENWZkVkxleXR6TmFaOXUyUHBoS3pkc1RzQmpITGk2dVhKQ3NMVzJhdVdM
bXN2UjE5NVNZVEFYZAo3QVkvYWlHOUVJWFFkOFVGakp2eE1Id3Z2NElmNVBmd0IzbWx3cDVoUGk3
NlN4RXQ4ajZ2ZDZyZFRpZ1hvV2hLYlJZWkgwWFpDR1cyCjJXMDIza1RaZVJNaGxPMmczcUtRZUR0
Y2JYNE5DWWNwam5TUXNMbzBYRmpWZ05XRWF5VWRXS1g3dmpPaldGclJYSVJqMkFhaTVCb1EKbUZm
czVNNXdwNVZFWHN5U0wrcHNmTlZwTHdBb3JWOEJ0bXhwWjVmY2ZKc0hHM0ExSzFDS0NXKzBjQWZR
VGFqbjcxTnl5OWN0NGlnVgpvNllwakZPUGFCOS9odUhNenJoTGRPcDdkOVZYbDA4cjBwRG5YSG8y
MHJQUlRET0VzQnJGZTIyajE1aDhOY1d6RFVWZlc1NG9tZkEzClA2WmVwdzZnRFBxTGVGZVBGWk42
WjZXekt1QU9WQWFxYXQxekZQUHN2WFY5NldYdVpjbUQ3a01KZzFqbWpVeUpkTGlUZFhYcFZDcGQK
Vyt0aTE0MDdwMm94VSt2VzA2NXdpVDl1U2RXVitPaGF0K3kxWnpMSVZWdkxtOXp1WWpWYkhIWXBM
TWw0UmFNbTArN3VDQ091STlPYgp1U2R6S25NeHcyUXk3ZXBpcnRVOXgvMDZlRnZ1RG5WSCsyU2pL
ZmxXQXdXY3VaTmdFeTRXWEtzSnV6bkpyYklWN0djRUVzNUpka0c1ClhkclFnSUdUL0M3SDVJT1Y3
TnMzNDRUVmdMLzBvNlNuK3F2WlNhNVZvaGtMa3k1b1BpRlVkY2ZkRHpGS1RCMWpGYzZpK21QdFRU
WGUKaG50ZllKUmFnOEZyMTdoTmdlTHlxcVZ6bzNWcWphbll5ZzdOdkcycnoxVUR3bmxiYlZSRnpN
VnVEMVl6K3RFK1I3SEM1bng3dy9LYgp1eDhkcmJlVWFIU2dpeHEvTldhZW5seFhVZTFzQ25Xc25u
dnBta2YweFZPS25EWkpobVhnWTYyaTdrS2xhSjNZc29XNmdkNm52MDkvCjBQK29YdUdqYVIvdDg5
RThjUmRMVmxlcjFXbDF0STh2ZHJNS3MwSlR5cG9GUzVlZGhVSXRzUVNua0lnbFVoWS84MVB1L09E
N3NoMG8KTDBmTm40MDJOMHVRc2d3bmJWeFNjWXBWY2dYc3dLSmlVb0NBRk80TkNxNXBBb3lCdEVF
bFRJQ3NaQXFvYU1QWVo2TlZCb1p5YWgwVgpiUnEzMlhOUzRkTnoycUJacS9XdGZHTit6RWZ0N2Fu
ZU8vYmsyRXVsdG1RYkZyc2ZXMEtJVTFGRzFIU285c25IVnI4aHJNWFJKbjZlCjMxZUdjUDRWbVBQ
ZHNQZk1RZmVMQ3lrZWVXbWZzdXNHL1I3OXE5MnNScXZSTVJhMjFkWWFhazIyOXJhdWJGWFZsWlR3
SnYxMHZYNTYKWFFuZGFhK05oMWpSTHZnY1hXNVdiUFcxZFRhM2RXcVVwRWNqMTdjNXBMSklieEdj
VE9mMHpvMmZPWDlxZ0R0M1RyNTlrcFdyK1VMcQp5NXNwc0pxanNONHZGRTd1REJ2aEdzZDNucUJr
QVNXTFY5Q2Vtc0xOQ213NklYazNraTc1RStPcHIyeE1raE5WTUtaWGpsaHhTUzFsCm5GTVZEcTFk
TDdBNnBjTlZGOWhWYmpaN1N2V2xUbzlxWFdTcXM2eklheTJhWHhYcjhaY1VCWU1lalVYajFGaVky
TU1CcTBWdmM3dnEKNm9vajVmTm1Wcm1OWE5QWmhwWUswYVpiNDJPVlpwcHlkRlcreUw3YTBSbFRL
NVI4MEdCeWhBYzNEdFZWVjZsTlZTVkJCcndCOW1PVAo0VHRYei9NbEdtWVlaeVJYVlJTTGZ4Nzdq
NDZLY0pGYnRpUDUxOGZtZ1E3ZWdWSm9veGhSNlpYRlJIVDdYTVZWRlZWdWlGeThxUmlPCnFYbzRx
QlpYVkRGRkpNSVdDVmJRUENLNVVsWlZNZ0Uxcm1KM1JSVmJiazFaMDc1d2VYMDZmdUg4MlJRY21B
cVFqMTVzL25SVVZrU08KMVVjaVNqQUNyTko1VmxaRDhpWFFwa21LR0VnbUNoaGYrY2RuellTL09u
R3lydzBISGNFaXZjS2dxdng1bDFCNTFVeUZXOERHSWtlbgp5SVZYVnk3U1dvMWNKQnl1YXJwaC9y
cjl5eDVhWGRvOGRxN2NiRkl6REticTYvQ1VuYy9zcEdoZkRhRXVuaDM0WFhiaGlXbEduMWFsCmpB
YjRzdnJPTlNQZmYvemNwdTlYUldRN0svOWFYakxlZVkyaDRUTnNWTXI1SHpmdU9ERkI0YlF4bHhX
WmJlQzdxcTU4MFFwVWdjYWsKejEzL2JmVGJvOTlXT3BXSUJMN3lMWmFEL2pBL1Fnb2Z1d1loN0ZV
OGpvWnBoSGdJWWVwMlZBL1VBMVFFeWtFSWtCUmFER0d1bElhUQpvRkYrS2RBWTVVWTFFSHhRMXcz
NXVmQk9HWFY3L2hVSXIwdmYrc0l6aUE3ajU4a0JLa3dkb20rbXg1Z3ppa05zT2Z1azhwRHlVOVhi
CjZ0MGF1K1p0N1FyZEZOM0wraUdEVTU2REErMUZGRHFKWU5pSWc2Y0RJZllqZGdtaTVWcU1UT016
VlVqZmhQVjFUZXZ1bmh1WnMzcnQKOGsyeHFac1hYN2Q2NmZoWHZQay9RbGlPbHYvRHI5RWM4cjJz
QVJsUkduYXhkdWlqRTAxQjArVHZBR2VpcTlBc05CdXNoUFJ0NlR6VQpoL3JSQW5SMURqVkVjcWdx
OGp6NUp0YWlCc1NUZzhkN1VueU8zQ05HZ0E0cmhsbnk0TlNqVThuUmpVZjNrd2MzUHJpZkhPV1Bw
c21ECi9JTnBjdFI3dEljODZIMndoK1RJOE5QcEdyNG9SL1lmNytRdE9USUV4SndqdHdFeDVjZytJ
TVljMlF1RXk1RmJnUmh5WkE4UWZZN3MKQnFMTGtWMUF0RG55ZFNDYUhQa2FFSFdPN0FTaXlwRmJn
SUJ2dHdNSW15UGJnU2h5NUdZZ1RJNXNBMExueUZZZ1ZJN2NCQVFHc3dVSQp6cEViZ2FBY0dSUU5R
REhHU0lXbER5U1ZZb3VGTk9McjBYcWt3OWZLOFFJNW5pM0hGam5tNUpoK1pyMXUzWHBkaXhxL2lW
WkIvaFU1ClhpckhabEcvU3ZmN1ZicUxxM1N2ck5MOVpKWHVSYndLZFVPRlc0NFowZEt0Tzl1dHkz
YnJocnAxRGQyNnFtNWRXYmZVMUo5QUpEcDgKVVk1OWN1d1JiZE4wbDZmcDNwMm0rOWswM2RGcHVx
WFRkRFhUZElGcHVoeitGOUc0Ui9mK0h0MWplM1RCUFRwaGo4NjlCMHFmZk1iUQpaVUNxNS9DVElG
MGRmdXQ0VDVSL0h2OFllV0dXUFA3UmNlOXpmSXNEbjBScFdzcS9PRTVQd0dLUTZMT29EUWVBUG9Y
bXlQUUpGRkpLCjVZdU85OVR5T2J6d2VFOGprS3VQOTh3SE12OTR6MElnL2NkN2xrQVg4MUNQL01x
YzQ5NkxmSXNSejRMOVJucDF4bmdYM1dnL2tlaDAKb0U4QW5YS2NYd2x2WjQ2M0xlRmJWTGdGdGNs
c1RkQnpMOUJpYWVBdE9sdzAzb3h4ZklSNkNGSzk3aG4rTEQrU3p1SGU0L3duMEU3ZwpPSDlwVG83
R3gvbGZobkxrQ1ZIRGZ4QzZ5Si9wdVp0L3ZTZEhvUGpsT1ZCOG5IOHBCSzg4eXovSi94UC9hRWd1
K1U1SWJ1VEJBdHMzCnZUa2xrRU1GN29OaHVjbDd3amw4K0ZuK3J0Qlpmb2ZVSmJTK0hScllHajdM
WDk4bTk3MjJRRmFHNFcyb1hSRyt5Qy9odjhiUENzbnYKei9US3RkUG55SDFQVFovbE84TnkreDB3
QlB3czMrNDl5N2VHNVk1RlhxNW9MdVNTaFdZVGhWdzFMN2RXdVY4dWpCZG1Fb01wUnVmSQpZNC9B
TUFPaWdmZnpHM2xmMjBwK0xxL2lWY1BQNFYySVJjTjRoNWhpaHg5aWgzZXl3NXZZNFRYczhMWHNj
Qzg3UElVZHJtT0h5OW5oCkVuYll3MXFVSmlXbjFDdTFTclZTcVZRb2FUZzhJYVVsbC8rVldDWlpJ
NHVDazRpQ2xtSmFUbk5FaWtuQkZCT3NKR2hhaTUwTUlTWFoKQitGV0NMc2hmQjNDVGdnN0lOd01Z
U3VFTFJBR0lRemxmL1cwOVBZSk1rUnVmb1lySkc4bVc4Y0x0NUpieDFPM2tpM2pxUzFrVUU3QgpJ
bjVhNmhQbzhXa0lTUjl6WmZIdFdjVyt2aXpPNGp0Y1dRUnh2OTFxSFd5Mk41dWFqS21PekQrSUZv
M0hrUzkvOXYveEM1SEpQOXpWCmM5TkxvS2EvQStoNS9KSWNIM3VXNWQ5ZytlK3hNa2ZYYkdBWWxo
bUdaWVpoaVdINERYWjRuTUh1emg3cW10MlhmZHpkbjYyU0VubDMKZjFlMlhQb085QVJwSm8zdG1S
T2tTU0w5ZlNmUUI2UzVmWlpVamo3STlBUGJmSmtOckhZenNLRzBSSUFOUDQ1NGlRMEc4N2pNdHJU
QQo1aVZORWx1UFJJQ04zSWk4TXB1WDNDaXpYWlRZam0xTXQyZU9wZE15Qy8wQzJpaXpiS1JmbU1T
eS82c3MrMldXL2VNc0xwa2xGQUtXCnRwREVjcXdrQkF6SFFpVnl0Zi9MNmptRjZ2SkNkYmxjbmZ5
eU9seW83aXhVZDBKMTVIL3h0N3oxZjhMZHZucDJxeFUxTjl2bFF4aXIKelNxRTFpd3IvTC9hMkRU
K2d5UkMveGV1eUd2cUNtVnVaSE4wY21WaGJRcGxibVJ2WW1vS01UWWdNQ0J2WW1vS09UWTVOUXBs
Ym1SdgpZbW9LTVRjZ01DQnZZbW9LUER3Z0wxUjVjR1VnTDBadmJuUkVaWE5qY21sd2RHOXlJQzlC
YzJObGJuUWdOelV3SUM5RFlYQklaV2xuCmFIUWdOalU1SUM5RVpYTmpaVzUwSUMweU5UQWdMMFpz
WVdkekNqazJJQzlHYjI1MFFrSnZlQ0JiSUMweU9UWWdMVFF4TkNBeE5qWXgKSURFeU16UWdYU0F2
Um05dWRFNWhiV1VnTDFoTFNrMU5WU3RVYVcxbGN5MUpkR0ZzYVdNS0wwbDBZV3hwWTBGdVoyeGxJ
QzB4TlNBdgpVM1JsYlZZZ01DQXZUV0Y0VjJsa2RHZ2dNVFl4TUNBdldFaGxhV2RvZENBME5EUWdM
MFp2Ym5SR2FXeGxNaUF4TlNBd0lGSUtQajRLClpXNWtiMkpxQ2pFNElEQWdiMkpxQ2xzZ01qVXdJ
RFl4TVNBMk1URWdOakV4SURZeE1TQTJNVEVnTmpFeElEWXhNU0EyTVRFZ05qRXgKSURZeE1TQTJN
VEVnTWpVd0lEWXhNU0F5TlRBZ05qRXhJRFl4TVFvMk1URWdOakV4SURZeE1TQTJNVEVnTmpFeElE
WXhNU0EyTVRFZwpOakV4SURZeE1TQTJNVEVnTmpFeElEWXhNU0EyTVRFZ05qRXhJRFl4TVNBMk1U
RWdOakV4Q2pZeE1TQTJNVEVnTmpFeElEWXhNU0EyCk1URWdOakV4SURZeE1TQTJNVEVnTmpFeElE
WXhNU0EyTVRFZ05qRXhJRFl4TVNBMk1URWdOakV4SURZeE1TQTJNVEVLTmpFeElEWXgKTVNBMk1U
RWdOakV4SURnek15QTJNVEVnTmpFeElEWXhNU0EyTVRFZ05qRXhJRFl4TVNBMk1URWdOakV4SURZ
eE1TQTFNREFnTlRBdwpJRFEwTkFvMU1EQWdORFEwSURZeE1TQTFNREFnTlRBd0lESTNPQ0EyTVRF
Z05qRXhJREkzT0NBMk1URWdOVEF3SURVd01DQTFNREFnCk5UQXdJRE00T1NBek9Ea2dNamM0Q2pV
d01DQTBORFFnTmpFeElEUTBOQ0EwTkRRZ1hRcGxibVJ2WW1vS05pQXdJRzlpYWdvOFBDQXYKVkhs
d1pTQXZSbTl1ZENBdlUzVmlkSGx3WlNBdlZISjFaVlI1Y0dVZ0wwSmhjMlZHYjI1MElDOVlTMHBO
VFZVclZHbHRaWE10U1hSaApiR2xqSUM5R2IyNTBSR1Z6WTNKcGNIUnZjZ294TnlBd0lGSWdMMWRw
WkhSb2N5QXhPQ0F3SUZJZ0wwWnBjbk4wUTJoaGNpQXpNaUF2ClRHRnpkRU5vWVhJZ01USXhJQzlG
Ym1OdlpHbHVaeUF2VFdGalVtOXRZVzVGYm1OdlpHbHVad28rUGdwbGJtUnZZbW9LTVRrZ01DQnYK
WW1vS1BEd2dMMEYxZEdodmNpQW9SWEpwWXlCVFpXbGtaV3dwSUM5RGNtVmhkRzl5SUNoRWRXMXdV
bVZ1WkdWeVZISmxaU2tnTDBOeQpaV0YwYVc5dVJHRjBaU0FvUkRveU1EQTNNVEF4T0RFMk1qQTFO
eTB3TlNjd01DY3BDaTlOYjJSRVlYUmxJQ2hFT2pJd01EY3hNREU0Ck1UWXlNRFUzTFRBMUp6QXdK
eWtnTDFCeWIyUjFZMlZ5SUNoTllXTWdUMU1nV0NBeE1DNDBMakV3SUZGMVlYSjBlaUJRUkVaRGIy
NTAKWlhoMEtRb3ZWR2wwYkdVZ0tGVnVkR2wwYkdWa0tTQStQZ3BsYm1Sdlltb0tlSEpsWmdvd0lE
SXdDakF3TURBd01EQXdNREFnTURBdwpNREFnYmlBS01EQXdNREF3TURNMk15QXdNREF3TUNCdUlB
b3dNREF3TURBd01ESXlJREF3TURBd0lHNGdDakF3TURBd01EQTBOamNnCk1EQXdNREFnYmlBS01E
QXdNREF3TURNME5DQXdNREF3TUNCdUlBb3dNREF3TURBeE16a3hJREF3TURBd0lHNGdDakF3TURB
d01USTEKTWpnZ01EQXdNREFnYmlBS01EQXdNREF3TVRrMk9TQXdNREF3TUNCdUlBb3dNREF3TURB
d05UWTFJREF3TURBd0lHNGdDakF3TURBdwpNREV6TnpJZ01EQXdNREFnYmlBS01EQXdNREF3TVRj
Mk15QXdNREF3TUNCdUlBb3dNREF3TURBeE5ESTJJREF3TURBd0lHNGdDakF3Ck1EQXdNREU0TnpB
Z01EQXdNREFnYmlBS01EQXdNREF3TVRjME15QXdNREF3TUNCdUlBb3dNREF3TURBeU1EVTVJREF3
TURBd0lHNGcKQ2pBd01EQXdNREl4TURrZ01EQXdNREFnYmlBS01EQXdNREF4TVRnNU5TQXdNREF3
TUNCdUlBb3dNREF3TURFeE9URTJJREF3TURBdwpJRzRnQ2pBd01EQXdNVEl4TkRnZ01EQXdNREFn
YmlBS01EQXdNREF4TWpjd05TQXdNREF3TUNCdUlBcDBjbUZwYkdWeUNqdzhJQzlUCmFYcGxJREl3
SUM5U2IyOTBJREUwSURBZ1VpQXZTVzVtYnlBeE9TQXdJRklnTDBsRUlGc2dQR1JpTUdabVpqUm1P
R1EwTWpJM016ZzUKTVdSbFpERTBZMkV4WW1Ka05qUXlQZ284WkdJd1ptWm1OR1k0WkRReU1qY3pP
RGt4WkdWa01UUmpZVEZpWW1RMk5ESStJRjBnUGo0SwpjM1JoY25SNGNtVm1DakV5T1RFMUNpVWxS
VTlHQ2c9PQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16728</attachid>
            <date>2007-10-18 20:16:56 -0700</date>
            <delta_ts>2007-12-15 01:41:21 -0800</delta_ts>
            <desc>improved fix</desc>
            <filename>print.patch</filename>
            <type>text/plain</type>
            <size>30428</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2NzU0KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDctMTAtMTggIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IGFyb2Jlbi4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChkdW1wQXNQ
REZDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rp
b25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBBc1BERik6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0RHVtcEFzUERGKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChkdW1wRnJhbWVBc1BERik6CisgICAg
ICAgIChkdW1wKToKKwogMjAwNy0xMC0xNyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIFdpbmRvd3Mtc3BlY2lmaWMgdGVz
dHMgYW5kIHJlc3VsdHMKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI2NzUwKQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw2ICszNSw3IEBACiAKIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcihib29sIHRlc3RSZXBhaW50RGVmYXVsdCwgYm9vbCB0ZXN0UmVwYWludFN3ZWVwSG9y
aXpvbnRhbGx5RGVmYXVsdCkKICAgICA6IG1fZHVtcEFzVGV4dChmYWxzZSkKKyAgICAsIG1fZHVt
cEFzUERGKGZhbHNlKQogICAgICwgbV9kdW1wQmFja0ZvcndhcmRMaXN0KGZhbHNlKQogICAgICwg
bV9kdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucyhmYWxzZSkKICAgICAsIG1fZHVtcENoaWxk
RnJhbWVzQXNUZXh0KGZhbHNlKQpAQCAtNjksNiArNzAsMTMgQEAgc3RhdGljIEpTVmFsdWVSZWYg
ZHVtcEFzVGV4dENhbGxiYWNrKEpTQwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZHVtcEFzUERGQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250
cm9sbGVyID0gcmVpbnRlcnByZXRfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0
R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+c2V0RHVtcEFzUERGKHRy
dWUpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3Rh
dGljIEpTVmFsdWVSZWYgZHVtcEJhY2tGb3J3YXJkTGlzdENhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9
IHJlaW50ZXJwcmV0X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOwpAQCAtNTAwLDYgKzUwOCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiZGVjb2RlSG9zdE5hbWUiLCBkZWNvZGVI
b3N0TmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc3BsYXkiLCBkaXNwbGF5Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFzVGV4dCIsIGR1bXBBc1RleHRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJwcmludFRvUERGIiwgZHVtcEFzUERGQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiZHVtcEJhY2tGb3J3YXJkTGlzdCIsIGR1bXBCYWNrRm9yd2FyZExp
c3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQ2hpbGRGcmFtZXNBc1RleHQiLCBk
dW1wQ2hpbGRGcmFtZXNBc1RleHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQ2hp
bGRGcmFtZVNjcm9sbFBvc2l0aW9ucyIsIGR1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjY3NTApCisrKyBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02
Myw2ICs2Myw5IEBAIHB1YmxpYzoKICAgICBib29sIGR1bXBBc1RleHQoKSBjb25zdCB7IHJldHVy
biBtX2R1bXBBc1RleHQ7IH0KICAgICB2b2lkIHNldER1bXBBc1RleHQoYm9vbCBkdW1wQXNUZXh0
KSB7IG1fZHVtcEFzVGV4dCA9IGR1bXBBc1RleHQ7IH0KIAorICAgIGJvb2wgZHVtcEFzUERGKCkg
Y29uc3QgeyByZXR1cm4gbV9kdW1wQXNQREY7IH0KKyAgICB2b2lkIHNldER1bXBBc1BERihib29s
IGR1bXBBc1BERikgeyBtX2R1bXBBc1BERiA9IGR1bXBBc1BERjsgfQorICAgIAogICAgIGJvb2wg
ZHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEJhY2tGb3J3YXJkTGlz
dDsgfQogICAgIHZvaWQgc2V0RHVtcEJhY2tGb3J3YXJkTGlzdChib29sIGR1bXBCYWNrRm9yd2Fy
ZExpc3QpIHsgbV9kdW1wQmFja0ZvcndhcmRMaXN0ID0gZHVtcEJhY2tGb3J3YXJkTGlzdDsgfQog
CkBAIC0xMTksNiArMTIyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1w
QXNUZXh0OworICAgIGJvb2wgbV9kdW1wQXNQREY7CiAgICAgYm9vbCBtX2R1bXBCYWNrRm9yd2Fy
ZExpc3Q7CiAgICAgYm9vbCBtX2R1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zOwogICAgIGJv
b2wgbV9kdW1wQ2hpbGRGcmFtZXNBc1RleHQ7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAyNjc1MCkKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNjc0LDYgKzY3NCwzOSBAQCBzdGF0aWMgTlNTdHJpbmcgKmR1bXBGcmFtZXNBc1Rl
eHQoV2ViRnJhCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIE5TRGF0YSAqZHVtcEZy
YW1lQXNQREYoV2ViRnJhbWUgKmZyYW1lKQoreworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJl
dHVybiBAIiI7CisgICAgCisgICAgLy8gU2FkbHkgd2UgaGF2ZSB0byBkdW1wIHRvIGEgZmlsZSBh
bmQgdGhlbiByZWFkIGZyb20gdGhhdCBmaWxlIGFnYWluCisgICAgLy8gK1tOU1ByaW50T3BlcmF0
aW9uIFBERk9wZXJhdGlvbldpdGhWaWV3Omluc2lkZVJlY3Q6XSByZXF1aXJlcyBhIHJlY3QgYW5k
IHByaW50cyB0byBhIHNpbmdsZSBwYWdlCisgICAgLy8gbGlrZXdpc2UgK1tOU1ZpZXcgZGF0YVdp
dGhQREZJbnNpZGVSZWN0Ol0gYWxzbyBwcmludHMgdG8gYSBzaW5nbGUgY29udGludW91cyBwYWdl
CisgICAgLy8gVGhlIGdvYWwgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byB0ZXN0ICJyZWFsIiBwcmlu
dGluZyBhY3Jvc3MgbXVsdGlwbGUgcGFnZXMuCisgICAgLy8gRklYTUU6IEl0J3MgcG9zc2libGUg
dGhlcmUgbWlnaHQgYmUgcHJpbnRpbmcgU1BJIHRvIGxldCB1cyBwcmludCBhIG11bHRpLXBhZ2Ug
UERGIHRvIGFuIE5TRGF0YSBvYmplY3QKKyAgICBOU1N0cmluZyAqcGF0aCA9IEAiL3RtcC90ZXN0
LnBkZiI7CisgICAgCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcHJpbnRJbmZvRGljdCA9IFtO
U011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoRGljdGlvbmFyeTpbW05TUHJpbnRJbmZv
IHNoYXJlZFByaW50SW5mb10gZGljdGlvbmFyeV1dOworICAgIFtwcmludEluZm9EaWN0IHNldE9i
amVjdDpOU1ByaW50U2F2ZUpvYiBmb3JLZXk6TlNQcmludEpvYkRpc3Bvc2l0aW9uXTsKKyAgICBb
cHJpbnRJbmZvRGljdCBzZXRPYmplY3Q6cGF0aCBmb3JLZXk6TlNQcmludFNhdmVQYXRoXTsKKyAg
ICAKKyAgICBOU1ByaW50SW5mbyAqcHJpbnRJbmZvID0gW1tOU1ByaW50SW5mbyBhbGxvY10gaW5p
dFdpdGhEaWN0aW9uYXJ5OnByaW50SW5mb0RpY3RdOworICAgIFtwcmludEluZm8gc2V0SG9yaXpv
bnRhbFBhZ2luYXRpb246TlNBdXRvUGFnaW5hdGlvbl07CisgICAgW3ByaW50SW5mbyBzZXRWZXJ0
aWNhbFBhZ2luYXRpb246TlNBdXRvUGFnaW5hdGlvbl07CisgICAgW3ByaW50SW5mbyBzZXRWZXJ0
aWNhbGx5Q2VudGVyZWQ6Tk9dOworICAgIAorICAgIE5TUHJpbnRPcGVyYXRpb24gKnByaW50T3Bl
cmF0aW9uID0gW05TUHJpbnRPcGVyYXRpb24gcHJpbnRPcGVyYXRpb25XaXRoVmlldzpbZnJhbWUg
ZnJhbWVWaWV3XSBwcmludEluZm86cHJpbnRJbmZvXTsKKyAgICBbcHJpbnRPcGVyYXRpb24gc2V0
U2hvd1BhbmVsczpOT107CisgICAgW3ByaW50T3BlcmF0aW9uIHJ1bk9wZXJhdGlvbl07CisgICAg
CisgICAgW3ByaW50SW5mbyByZWxlYXNlXTsKKyAgICAKKyAgICBOU0RhdGEgKnBkZkRhdGEgPSBb
TlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6cGF0aF07CisgICAgW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVGaWxlQXRQYXRoOnBhdGggaGFuZGxlcjpuaWxdOworICAg
IAorICAgIHJldHVybiBwZGZEYXRhOworfQorCiBzdGF0aWMgdm9pZCBjb252ZXJ0TUlNRVR5cGUo
TlNNdXRhYmxlU3RyaW5nICptaW1lVHlwZSkKIHsKICAgICBpZiAoW21pbWVUeXBlIGlzRXF1YWxU
b1N0cmluZzpAImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCJdKQpAQCAtODM3LDI5ICs4NzAsMzUg
QEAgdm9pZCBkdW1wKCkKICAgICB9CiAKICAgICBpZiAoZHVtcFRyZWUpIHsKLSAgICAgICAgTlNT
dHJpbmcgKnJlc3VsdCA9IG5pbDsKKyAgICAgICAgTlNTdHJpbmcgKnJlc3VsdFN0cmluZyA9IG5p
bDsKKyAgICAgICAgTlNEYXRhICpyZXN1bHREYXRhID0gbmlsOwogICAgICAgICAKICAgICAgICAg
Ym9vbCBkdW1wQXNUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1RleHQoKTsKICAg
ICAgICAgZHVtcEFzVGV4dCB8PSBbW1tbbWFpbkZyYW1lIGRhdGFTb3VyY2VdIHJlc3BvbnNlXSBN
SU1FVHlwZV0gaXNFcXVhbFRvU3RyaW5nOkAidGV4dC9wbGFpbiJdOwogICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci0+c2V0RHVtcEFzVGV4dChkdW1wQXNUZXh0KTsKLSAgICAgICAgaWYgKGxh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wQXNUZXh0KCkpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IGR1bXBGcmFtZXNBc1RleHQobWFpbkZyYW1lKTsKLSAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRU
ZXN0Q29udHJvbGxlci0+ZHVtcERPTUFzV2ViQXJjaGl2ZSgpKSB7CisgICAgICAgIGlmIChsYXlv
dXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpKQorICAgICAgICAgICAgcmVzdWx0U3RyaW5n
ID0gZHVtcEZyYW1lc0FzVGV4dChtYWluRnJhbWUpOworICAgICAgICBlbHNlIGlmIChsYXlvdXRU
ZXN0Q29udHJvbGxlci0+ZHVtcEFzUERGKCkpCisgICAgICAgICAgICByZXN1bHREYXRhID0gZHVt
cEZyYW1lQXNQREYobWFpbkZyYW1lKTsKKyAgICAgICAgZWxzZSBpZiAobGF5b3V0VGVzdENvbnRy
b2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSkgewogICAgICAgICAgICAgV2ViQXJjaGl2ZSAq
d2ViQXJjaGl2ZSA9IFtbbWFpbkZyYW1lIERPTURvY3VtZW50XSB3ZWJBcmNoaXZlXTsKLSAgICAg
ICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZVdlYkFyY2hpdmVUb1hNTCh3ZWJBcmNoaXZlKTsKKyAg
ICAgICAgICAgIHJlc3VsdFN0cmluZyA9IHNlcmlhbGl6ZVdlYkFyY2hpdmVUb1hNTCh3ZWJBcmNo
aXZlKTsKICAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJj
ZUFzV2ViQXJjaGl2ZSgpKSB7CiAgICAgICAgICAgICBXZWJBcmNoaXZlICp3ZWJBcmNoaXZlID0g
W1ttYWluRnJhbWUgZGF0YVNvdXJjZV0gd2ViQXJjaGl2ZV07Ci0gICAgICAgICAgICByZXN1bHQg
PSBzZXJpYWxpemVXZWJBcmNoaXZlVG9YTUwod2ViQXJjaGl2ZSk7CisgICAgICAgICAgICByZXN1
bHRTdHJpbmcgPSBzZXJpYWxpemVXZWJBcmNoaXZlVG9YTUwod2ViQXJjaGl2ZSk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBib29sIGlzU1ZHVzNDVGVzdCA9IChbY3VycmVudFRlc3Qg
cmFuZ2VPZlN0cmluZzpAInN2Zy9XM0MtU1ZHLTEuMSJdLmxlbmd0aCk7CiAgICAgICAgICAgICBp
ZiAoaXNTVkdXM0NUZXN0KQogICAgICAgICAgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNl
dEZyYW1lU2l6ZTpOU01ha2VTaXplKDQ4MCwgMzYwKV07CiAgICAgICAgICAgICBlbHNlIAogICAg
ICAgICAgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1lU2l6ZTpOU01ha2VTaXpl
KG1heFZpZXdXaWR0aCwgbWF4Vmlld0hlaWdodCldOwotICAgICAgICAgICAgcmVzdWx0ID0gW21h
aW5GcmFtZSByZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJlc2VudGF0aW9uXTsKKyAgICAgICAgICAg
IHJlc3VsdFN0cmluZyA9IFttYWluRnJhbWUgcmVuZGVyVHJlZUFzRXh0ZXJuYWxSZXByZXNlbnRh
dGlvbl07CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHRTdHJpbmcgJiYg
IXJlc3VsdERhdGEpCisgICAgICAgICAgICByZXN1bHREYXRhID0gW3Jlc3VsdFN0cmluZyBkYXRh
VXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CiAKLSAgICAgICAgaWYgKCFyZXN1
bHQpIHsKKyAgICAgICAgaWYgKCFyZXN1bHREYXRhKSB7CiAgICAgICAgICAgICBjb25zdCBjaGFy
ICplcnJvck1lc3NhZ2U7CiAgICAgICAgICAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXItPmR1
bXBBc1RleHQoKSkKICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiW2RvY3VtZW50RWxl
bWVudCBpbm5lclRleHRdIjsKQEAgLTg3MSw4ICs5MTAsNyBAQCB2b2lkIGR1bXAoKQogICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJbbWFpbkZyYW1lIHJlbmRlclRyZWVBc0V4dGVybmFs
UmVwcmVzZW50YXRpb25dIjsKICAgICAgICAgICAgIHByaW50ZigiRVJST1I6IG5pbCByZXN1bHQg
ZnJvbSAlcyIsIGVycm9yTWVzc2FnZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBO
U0RhdGEgKmRhdGEgPSBbcmVzdWx0IGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXTsKLSAgICAgICAgICAgIGZ3cml0ZShbZGF0YSBieXRlc10sIDEsIFtkYXRhIGxlbmd0aF0s
IHN0ZG91dCk7CisgICAgICAgICAgICBmd3JpdGUoW3Jlc3VsdERhdGEgYnl0ZXNdLCAxLCBbcmVz
dWx0RGF0YSBsZW5ndGhdLCBzdGRvdXQpOwogICAgICAgICAgICAgaWYgKCFsYXlvdXRUZXN0Q29u
dHJvbGxlci0+ZHVtcEFzVGV4dCgpICYmICFsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcERPTUFz
V2ViQXJjaGl2ZSgpICYmICFsYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJj
aGl2ZSgpKQogICAgICAgICAgICAgICAgIGR1bXBGcmFtZVNjcm9sbFBvc2l0aW9uKG1haW5GcmFt
ZSk7CiAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzU2KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDctMTAtMTggIEVy
aWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IGFyb2Jl
bi4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9wcmludGluZzogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL3ByaW50aW5nL21lZGlhLXF1ZXJpZXMtcHJpbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOiBza2lwIHByaW50aW5nIGFuZCB3
ZWJhcmNoaXZlcworICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOiBza2lwIHByaW50aW5n
IHRlc3RzCisgICAgICAgICogcHJpbnRpbmc6IEFkZGVkLgorICAgICAgICAqIHByaW50aW5nL21l
ZGlhLXF1ZXJpZXMtcHJpbnQuaHRtbDogQWRkZWQuCisKIDIwMDctMTAtMTggIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbS4KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gMjY3NTApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNyBAQAogIyAtLS0tLS0t
IG1hbnkgbWlzc2luZyBmZWF0dXJlcyBpbiBEUlQKIGVkaXRpbmcKK3dlYmFyY2hpdmUKK3ByaW50
aW5nCiAKICMgLS0tLS0tLSB0ZXN0cyB0aGF0IGZhaWwgYWdhaW5zdCBRdCA0LjMgZHVlIHRvIGJ1
Z3MgYW5kIG1pc3NpbmcgZmVhdHVyZXMgaW4gUVhtbFN0cmVhbQogZmFzdC9kb20vc2V0LWlubmVy
SFRNTC54aHRtbApAQCAtOTMwLDE3ICs5MzIsMyBAQCB0YWJsZXMvbW96aWxsYS9jb2xsYXBzaW5n
X2JvcmRlcnMvYnVnNDEyCiB0YWJsZXMvbW96aWxsYS9kb20vdGFibGVEb20uaHRtbAogdGFibGVz
L21vemlsbGEvb3RoZXIvbW92ZV9yb3cuaHRtbAogdGFibGVzL21vemlsbGFfZXhwZWN0ZWRfZmFp
bHVyZXMvYnVncy9idWc1ODQwMi0yLmh0bWwKLXdlYmFyY2hpdmUvYXJjaGl2ZS1lbXB0eS1mcmFt
ZS1kb20uaHRtbAotd2ViYXJjaGl2ZS9hcmNoaXZlLWVtcHR5LWZyYW1lLXNvdXJjZS5odG1sCi13
ZWJhcmNoaXZlL2FyY2hpdmUtd2l0aC11bmVuY29kZWQtdXJsLmh0bWwKLXdlYmFyY2hpdmUvdGVz
dC1ib2R5LWJhY2tncm91bmQuaHRtbAotd2ViYXJjaGl2ZS90ZXN0LWR1cGxpY2F0ZS1yZXNvdXJj
ZXMuaHRtbAotd2ViYXJjaGl2ZS90ZXN0LWZyYW1lc2V0Lmh0bWwKLXdlYmFyY2hpdmUvdGVzdC1p
bWctc3JjLmh0bWwKLXdlYmFyY2hpdmUvdGVzdC1pbnB1dC1zcmMuaHRtbAotd2ViYXJjaGl2ZS90
ZXN0LWxpbmstaHJlZi5odG1sCi13ZWJhcmNoaXZlL3Rlc3Qtb2JqZWN0LWRhdGEuaHRtbAotd2Vi
YXJjaGl2ZS90ZXN0LXNjcmlwdC1zcmMuaHRtbAotd2ViYXJjaGl2ZS90ZXN0LXRhYmxlLWJhY2tn
cm91bmQuaHRtbAotd2ViYXJjaGl2ZS90ZXN0LXRkLWJhY2tncm91bmQuaHRtbAotd2ViYXJjaGl2
ZS9sb2FkaW5nL3Rlc3QtbG9hZGluZy1hcmNoaXZlLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCShyZXZpc2lvbiAyNjc1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MDUsNiArNTA1LDkgQEAgZmFzdC9mb3Jtcy90ZXh0
YXJlYS1wYXN0ZS1uZXdsaW5lLmh0bWwKICMgVW5pbXBsZW1lbnRlZCBwYXJ0IG9mIERSVC4gKFRo
aXMgdGVzdCBpcyBjdXJyZW50bHkgZGlzYWJsZWQpLgogIyBodHRwL3Rlc3RzL3BsdWdpbnMvbnBh
cGktcmVzcG9uc2UtaGVhZGVycy5odG1sCiAKKyMgTm8gc3VwcG9ydCBmb3IgcHJpbnRBc1BERigp
IGluIERSVAorcHJpbnRpbmcKKwogIyB1c2VkIHRvIGJlIGNyYXNoZXJzIGJ1dCBhcmUgbm93IGZh
aWx1cmVzLgogc2VjdXJpdHkvYmxvY2stdGVzdC5odG1sCiAKSW5kZXg6IExheW91dFRlc3RzL3By
aW50aW5nL21lZGlhLXF1ZXJpZXMtcHJpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wcmludGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wcmludGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjUgQEAKKzxodG1sPgorPHN0eWxlPgorZGl2IHsKKyAgYmFja2dyb3VuZDogcmVk
OworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDogMTAwcHg7Cit9CitAbWVkaWEgcHJpbnQgewor
ICBkaXYgeworICAgIGJhY2tncm91bmQ6IGdyZWVuOworICB9CisgIHNwYW4geworICAgIGZvbnQt
c3R5bGU6IGl0YWxpYzsKKyAgfQorfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucHJpbnRUb1BE
RigpOworPC9zY3JpcHQ+Cis8Ym9keT4KKyAgPGRpdj48L2Rpdj4KKyAgPHNwYW4+V2hlbiBwcmlu
dGluZywgeW91IHNob3VsZCBzZWUgYSBncmVlbiBzcXVhcmUgYWJvdmUgYW5kIHRoaXMgdGV4dCBz
aG91bGQgYmUgaXRhbGljLjwvc3Bhbj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9wcmludGluZy9tZWRpYS1xdWVyaWVzLXByaW50LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBl
Lgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcHJpbnRpbmcvbWVkaWEtcXVlcmllcy1w
cmludC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKSlZCRVJpMHhMak1LSmNUbDh1WHJwL09nME1UR0NqSWdN
Q0J2WW1vS1BEd2dMMHhsYm1kMGFDQTBJREFnVWlBdlJtbHNkR1Z5SUM5RwpiR0YwWlVSbFkyOWta
U0ErUGdwemRISmxZVzBLZU5xRmtrR1BnakFRaGUvOUZlK0l5YUxUQWhXdmE5eTdDWWxueENvMUNn
dVV6ZTYvCjM4b0tOdlN3bVVzNzczdlRtVWtiN05GZ0xjQkpJSllwSkJGYWhRTXFyTFlkUjlHQkQ5
RVZEMnh0c2RRaTRaTTcyeHZrSnJaK1lpRWYKa3pTRXRUVFcrVGlHZkhRWGQ3eG40UEtabGtqQmhV
QjJ4K3FETDhueTJaa0ZoMUpWQzJSWEY0eVRrUXp3MmVySzZPcnlOb2M0T2RSUAozUy9ZVEkraWw5
NlZkWDg3ZVNYc1NDOUVxVWxuZjdwd244aHhhWlhmcTBoU3AwYlQ1NjJhSVN3aTZaUTUxbDl6QWxH
OGNZanFCRlBxCnp0c0tKV3lDalBvMkh2RC94UEUwTVF0dzlQcEl5Rm1JTnZsTkY4dUIyV1gyKyt4
L0FRMDBnVzRLWlc1a2MzUnlaV0Z0Q21WdVpHOWkKYWdvMElEQWdiMkpxQ2pJME9BcGxibVJ2WW1v
S01TQXdJRzlpYWdvOFBDQXZWSGx3WlNBdlVHRm5aU0F2VUdGeVpXNTBJRGNnTUNCUwpJQzlTWlhO
dmRYSmpaWE1nTXlBd0lGSWdMME52Ym5SbGJuUnpJRElnTUNCU0lDOU5aV1JwWVVKdmVBcGJNQ0F3
SURZeE1pQTNPVEpkCklENCtDbVZ1Wkc5aWFnb3pJREFnYjJKcUNqdzhJQzlRY205alUyVjBJRnNn
TDFCRVJpQXZWR1Y0ZENCZElDOURiMnh2Y2xOd1lXTmwKSUR3OElDOURjekVnTlNBd0lGSWdQajRn
TDBadmJuUWdQRHdnTDBZeExqQUtOaUF3SUZJZ1BqNGdQajRLWlc1a2IySnFDamdnTUNCdgpZbW9L
UER3Z0wweGxibWQwYUNBNUlEQWdVaUF2VGlBeklDOUJiSFJsY201aGRHVWdMMFJsZG1salpWSkhR
aUF2Um1sc2RHVnlJQzlHCmJHRjBaVVJsWTI5a1pTQStQZ3B6ZEhKbFlXMEtlTnA5a2s5SUZGRWN4
Nyt6SlVLc0JXVW1VdkJPdGdkWEJ1MWdIWXpkOVcvS3RxeHIKcGdpeXpyN1pIWjJkbmQ3TWJpVWVR
b2d1UWRZeHVsalJTVHFHQnc4ZEFnOFJnbUpkSXVnb0dRU0NsNUR0TnpPNzdvamFnemZ2TTcvLwp2
OTk3UUYwb2JacDZnQUY1d3hiSi9paTdPejdCNmpkUWh3WUVRU3V0V0dZa2tSaDJtV3h4Wk8xOWhl
U2NtK0hqOWY5ZERZSVNBaEpWCmdNYXN4OWNjbnZaNHdPSDd0bWtUVHpxczVOSVpZcE80VGFTU01l
Slh4R2V6UHA3MmNZWmJDdkV5OFUzRkZCUW5rQ0llS0NsWkorWU8Kc1d4a05JUGtsNG03TXBhU0p5
YmZ3Rk5uRmw2WjloRFFmUVU0OWJrbW03Q0E1WGZBcGRhYUxOUU1YQndEVmpwcnN0MmtPeCtwYWQx
UwpPenRja1JTTUFuVS95dVhkVnFEK0JiRC92RnorKzdwYzNuOURPYjRESDNXbEtFcVZHVW5TRjhE
cncxMk4vZHpnUWxPWWMxOEpVVkExCm5mdEdlcnphNjllTFIvVWxxM1FTZXpOeFZ4ZXdSUGN3ZGdZ
WWVneTgvQWxjZlE5YytBQWtHb0RVZFFRZW9icHQvc0RORXl1WUQ0V1cKemRtc1E1WTdXTmc1T2xt
RVhnaG5zVUxlTE5wY3NFRkRhVzlqYVYxbnJxbkZCTGU0S1BGTU8vSjZzZHJ2T2RwQmJveU8wRW56
Q3FqYwo2cTJ3TkpOSjk5RGRvSjE0SThON2VwMTNRYnlvYW4yRHpvWFEvcVNLdmxHUHBmT2FQWmp5
T05CdDZQSGhDc01veEc5N01iRmoydEZrCk5iNVZHdW10eW1mU3R4SjB0cEQ4eG14aHlMRnBJdC9R
WEM0MTVyR1Vtc3ZGNGhWZXhUaDBjR2d3Nkd1QUlZbCtSQkdHQ1lFQ1ZOSm8KWktHUmxMczJndGpD
N0xHV09oSStacVRmSnA5dDErY2VpdVR0ZU4xQk5JNkZ0b01JVFA0bS81YTM1Q1g1cmZ4cnNhVVlx
bWtXeEpTbQpyRC83UTNHZHpOVzRGVzJsSmkrK1Fua2pwTldSSlduK29DZkxWNm12T3RWWWJLbEZj
bkx3Si9FOVg1ZmNseW1NYVRmU3JKdXA1T29zCitrWjgyVTZhSHRtdXphODIxM0p0blY2WjNBeXV6
UithVmVGSVYveWdxOFAvTlR1L1AvOEh6YkFCYUFwbGJtUnpkSEpsWVcwS1pXNWsKYjJKcUNqa2dN
Q0J2WW1vS056QTJDbVZ1Wkc5aWFnbzFJREFnYjJKcUNsc2dMMGxEUTBKaGMyVmtJRGdnTUNCU0lG
MEtaVzVrYjJKcQpDakV4SURBZ2IySnFDanc4SUM5TVpXNW5kR2dnTVRNZ01DQlNJQzlHYVd4MFpY
SWdMMFpzWVhSbFJHVmpiMlJsSUQ0K0NuTjBjbVZoCmJRcDQyb1hTVDIrQ01CZ0c4SHMveFhQVVpH
ai9BT0oxeTNZM2FlSVpzVXFObGtITHNuMzdWY1RSbE1QeW5zano0NkZ2UTRzZFdtdzQKR09VUWdp
T25GSjNDSGdick44dFFXYkJoYklWRWJITnNQQ3c4U2taNUFyMFA4WG5yMmYwaFlST3RibmlWWVBr
WTVDakFPSWU4WWYzQgpWdFMvSVU5WTdHdGxscENYQVpJSFRMT25YT0N6MDhacGMzNzVRMk1ibzRI
NmFmb29KMHlJS2JkMTAxK1BzNHFDQmtTcE9PZVBUNUFoCkwzSHVWSERXcDhtS29LUHR5MjVXSTJn
K0V1SnJEczNYWEtUYnFhUTBSN2hhMnhpbDRjSk9mYnNsaWNEL0c2Zmh4Z2NWWDN4R2cxaTcKOHFx
cjFXRGVwZjliZHI4SUgzM1pDbVZ1WkhOMGNtVmhiUXBsYm1Sdlltb0tNVE1nTUNCdlltb0tNalF4
Q21WdVpHOWlhZ294TUNBdwpJRzlpYWdvOFBDQXZWSGx3WlNBdlVHRm5aU0F2VUdGeVpXNTBJRGNn
TUNCU0lDOVNaWE52ZFhKalpYTWdNVElnTUNCU0lDOURiMjUwClpXNTBjeUF4TVNBd0lGSWdMMDFs
WkdsaFFtOTRDbHN3SURBZ05qRXlJRGM1TWwwZ1BqNEtaVzVrYjJKcUNqRXlJREFnYjJKcUNqdzgK
SUM5UWNtOWpVMlYwSUZzZ0wxQkVSaUF2VkdWNGRDQmRJQzlEYjJ4dmNsTndZV05sSUR3OElDOURj
ekVnTlNBd0lGSWdQajRnTDBadgpiblFnUER3Z0wwWXhMakFLTmlBd0lGSWdQajRnUGo0S1pXNWti
MkpxQ2pjZ01DQnZZbW9LUER3Z0wxUjVjR1VnTDFCaFoyVnpJQzlOClpXUnBZVUp2ZUNCYk1DQXdJ
RFl4TWlBM09USmRJQzlEYjNWdWRDQXlJQzlMYVdSeklGc2dNU0F3SUZJZ01UQWdNQ0JTQ2wwZ1Bq
NEsKWlc1a2IySnFDakUwSURBZ2IySnFDanc4SUM5VWVYQmxJQzlEWVhSaGJHOW5JQzlRWVdkbGN5
QTNJREFnVWlBK1BncGxibVJ2WW1vSwpNVFVnTUNCdlltb0tQRHdnTDB4bGJtZDBhQ0F4TmlBd0lG
SWdMMHhsYm1kMGFERWdNVE0wTXpJZ0wwWnBiSFJsY2lBdlJteGhkR1ZFClpXTnZaR1VnUGo0S2Mz
UnlaV0Z0Q25qYXZYb0plQnZWdGYrOWQyWTAyalZhck5YU1NCNXR0aVRMcTJUSjI5aVc3U1NPRTVQ
RnNSTWMKc2krRWtCVVRFaExTSmlIQkNkUXNDUkRLZzViWGxLVUJKVkNxbEMybGFRbVFBSVdROTBv
RDdmdVQ5QUd0dXoxSVh3dTIvbWRHZGpCdAovKzk3Ny92ZTk5ZjQzbk9YTTNmNW5YUFBQZmQ2RUVZ
SWFkRk9SQ0Z4NmRyRjY5RWY4RDRvT1FQaHRhV0RtNzNuRkRmOUNDRjhIMEpNCjY0cjFLOWUrdHFG
MEswS0tDeEEycjd6dXBoVi9QSDM1bHdqcGVoRHkxS3hhdm5qWlNGdUhpRkJrTjd5ZldBVUZ1b3Zj
TnlIL1BPVDkKcTladTN0S1hwTzZHL0s4Z3YreTZkVXNYeiswWk9JMVFOQVA1bXJXTHQ2eFhybFFD
YjNRTDVMM1hMMTY3L1BnZGo1NkRQUFNQQXV2WApiZHBNSHFiZWhmeEp5TTladjNINStzeWZMZzBn
RkxNZ3hDNkJNb3lrK1VnelVxQVhwVGJRL1BHU3YvOFJDQlQ2My83Ui82Q01nZEd3ClNJbFVrRllq
RFl4Tyt1a2c2SkVCY2NpSVRNaU1MS2dJV2FITWh1end5bVlJZGNqSnpFVm1haTF5SXBSL0Q4SkhF
UDQ0Tmo4L3h0U2cKMk5qaitYK2ppdUdOaDhkRDRlZERqNk43ME10b0M5b082YStqSEFxak10UUJj
MzBVZGFOK2RCR0xxQUptL3dEYUMzeVhvYmRPdEFiLwpDdnA0QXExQ2J3QmZBTFdqZTJFc25XZ1pH
b1QzZzZnTmVMK1BMcUFrV29CdVFzZlFxK2c4dEIxRnM5QmNkSW9jemIrTkt0Rjk2QzM4CkE1cktE
ME5MNVNpQjFxTGQ2STc4OTFBTU5VSkxPOUd0V01DYjhpTm9BSjYxTUs0NzBiZlJ1ZnpiTUM4V1VK
SEcyQUNjVjBGUHg3QUsKZTdDSTl3QnVlc0FuQU9QdGdaNTY0WTFuc0pKMDVqZkNXMlpVZzBUVWdx
YWdQaGozTm5RQUhZYVIvUmk5aHhlU3pkVFJmQ2IvUXY1TgpTZS9nL1NDTUlvV21vWmxvSTlvTVBk
eUxua1VuMEY5d0w5SG4vZmx2NVUva1g4bi9YdFlKQnJrUkQrODBvaTVvZHdDdFJIZEF1em1ZCjhi
K2k5K0M1aUg2TnRiZ2V0K0FldkFmZmgxL0I3NUIyS2tidHBZN1RITVBuL3hNVkF6SWhtRTBaakRx
SjZtSGNWNk5yMEdMbytYYjAKeitnb2pQRVRkQm5ic1IvWDRBeitGbkdUVXJLQ3JDT255TzlwaXQ1
UFg4eC9JbytFZ0NSWVFMSVdSdDZFcHNNekYzQzdFUTNCaUliUgozU0M3UXpDeVI5Rko5RHBJNXBk
b0JQMEZmWUVaekdJbER1TTR0RDRWeHZlditBT2lKMVlpa0ZieVN5cENOVkhyNkovUkY1bjJzVHZH
Ci9wVHZ5L2ZuTitTZmc5bC9BSDFKTTVkd1dvQVd3b2lYd2R3SFFkbzdRSGJTc3d1ZWZlZ2hkQVE5
QmhyMkZLeXZrK2cwOVAwR2VodTkKRC8zL0J2MFd4akNDUGtYL2liNUFvekFLTGViZ0tjTEY4QVJ3
REZCckFxbjI0S3Z3SU42QmQrSmRlRGUrQThiNElINEdQNGRmQXlRNwpTUjhaSU52SlB2STgrUmw1
aDF3Z0g1SGZrajlUS3NwTitRRGpWK2xPZWo3OVBVYlBYTU5zWTNZeVR5a1NvNStPSmNmbWpTMGNH
eHc3Cm0yZnorbnhaZmpDL1BmOVArUnhJOVE4eWtrcFlaVFlrZ0VRaUlOWHBhQVk4UGFCcEEyZ0pX
b3BXb0RVZ215MkE1cjJBNXdNd3c4ZlEKOTBCT1B3QmRlZzFtOXpPUSt2dm8xekN6UDZQUDBTZ2FB
eU5EQTg0TzBPY3lYQVV6Nm9RWnpjRnpjUisrR2kvRTErQVZlQlhlZ0xmaQpiVERIL2ZEY2dlK0VX
WDRMUDRXUDRSL2pUL0NuK0RLSWx5RmFZaVJlRWdYSmRKSzU4Q3dHUFZoTHRwRzk1QzV5a0J3bUQ1
RWo1THNrClM1NGhyd01hdnlOamxJYlNVd0VxQ1U4N05aMmFRUzJtTmxCM1VJOVFSNmducURQVVc5
UUk5UVUxU28zU05YU0tua2x2bysraFg2YmYKZytjUGpKR0pNM1hNWEdZWnM0YTVuaGxpRGpKSG1l
UE0rOHpuaW9RaXl3cnNMUGJyN0Q3Mlh2WW8raWYwVTNRL3JMVEp2eGZBTnYxMwpmdytnSjhsWjBv
NStoWDREQ093aWRiQjJLdkdUcUllZWowNkI5U2ttZnlXSDhHdWdXVjFvS1g0S1djSFdFYVlMdVNI
WXFYdGhYYVA4Cmh4QkdJSHd5MWdwMkVPckdYc2lmcHp6UStyWDU4OHhPa09FUXJIZ1RySWl6NkNO
YWhXZUEvYmlHcWdIOVhRYVdwVUplZlVpc3FxeUkKbDhlaWtiTFNjQ2dZOEFzbFBpL3ZjUmU3bkE2
N3pWcGtNWnVNbkVHdjAyclVLaVdyWUdpS1lCUnRGem9XZWJQQlJWazZLRXlaRXBQeQp3bUlvV0R5
cFlGSFdDMFVkWCtYSmVoZkpiTjZ2Y29yQXVlSnZPTVVDcDNpRkUzUGVCdFFRaTNyYkJXLzJiRWJ3
NXZEOHEvb2dmWHRHCjZQZG1SK1IwdDV5bWczSkdCeG1mRDk3d3R0dFhaYnhadk1qYm51MFlYRFhV
dmlnRDdaMW9QUHE3MzZoalVYVENhRzA4cXBGYXpxSzIKeGR0WDJZRklITzFacDVCcHp6cUVqRnhI
QmRvWEw4djJYTlhYbm5INWZQMnhhQmEzTFJXV1pKSFFtalZFeGwrWFc4NnliVmxGR3pUdApYUzFO
QU8zM0hvdWVIRHFRNDlDU1JSSHRNbUhaNHF2N3N0VGlmcWtMWXlSckV6SloyOWFMOWkrekU2bjJB
K09WbDZBeVN3SWRpNWNQCmRRQTArNmNVc291azNPSURrT3VhN1lVMnlaNyt2aXplQXcxN3BlRktR
eTlNWXJuUUxwVXN1dGFiVlFtdHdxcWhheGNCNXM2aExKcDEKaysrNDB5bWV5TVBtMXU0ZG10TW4r
TExOTHFGL2NhYjRtQVVOemJycGFZZm9kWHkxSmhZOVlkOVI3d1BJVHNSYVlpMFNyZmZaZHhUbwp2
KzhxbEw5OVVpUHpuZm9WMEs1WlYxREQwa0NFcVRDTHJIZXBGd2JRSjhCVTZxUm9lUjBhV2xvSGJQ
RHJ4d0RDNnF5cWJkRVFsNVl3ClpRS2M0QjM2RElFWWhaSGZmclZrOFhpSklzQjlocVNrSk93ckNn
UDFFK2xzSkpJdEt3T1pnM3lXZzVoZ2FFMXlRVzBzT3BoMUNlczUKYjlZRlVLRWV3SEZ4ZnpvT3VQ
dDhrc2oyNTBTMEJETFpuVmYxRmZKZXRNUjFISW54U0grV0xKSnFUazdVRk0yVmFuWk8xRng1ZlpF
QQoydmlNN0d3VlpaWEJLMzhHem1wdVg1WE9ZdXQvVWIxY3JzK2hxbWhYRHFsNitvNWhmRWQvRHVm
MzVGREdmUUw4SnVxYWhWQmRMYW43CjZnek1IekkxVVNnbzgwR3FOdXJ0QU53N0FPMSs3NUIzYU9x
eUlXK0hkeFVvTkIyUUtWUXNIK3FQdzlSbjk2MkdlRTZmTHl2MnU2NGsKbC9mM3A2R2RoTlFPTGJj
ejFBOHRYRHZld3JWeUM5REFLREFsbzEwZzVHQlAzMVY5MlowWlYxYk05SU5RWVgyY0JGaFBnaDcw
OXdOWAozWldSQXQyKzJqNCs1aFNNdWE0TUV1bENLN09oRFdpaWYyaW9rQU10UERrMDVCcVNGbm9o
bjhQb2J3dkU4WUlja2h1QXRaRERPM3ZrCnFwMkN6eVVWQ0Q3QkI4UHF6MEJYOWJCK0poUTBoeHIr
YTRRYkp5UGNCS050bEJGdS9sOUNXUHp2SU56eTMwSzQ5UjhqM0FaamJwVVEKenZ6L1E3aDlFc0tJ
U1B1V1FnRGZYZkxlV2tVVnpiWWpSdEZPY0k2VWlXYUtRbW9GMjQ2UlEwbW9kb2J1VjQyZHdOY2hl
NFQ3dEdHMApZUWJFM2FNTnFMbUJHNFVzUkpVVmd0Rm5ERUV3S3hLNXo5Tk0zVjlQNTZqVFg5UWgr
YlN6YmV3eXZoZDhsQ0pVODdUYTdWUDlFUHNSCndYTy9ieFZWYnAvNk9iSVcvR2NHMjQ4WDJhenhN
K2RIVTZQT3hoRW40a2FCanRvcks1cHdkUlZzaEFvRERpV1NpZHFhWUJ5WDQ5cGMKVFUxdDZ3TXpl
WE9UcjE2dE1nZE1kOWZQYWw1K0pHTDBSZmwwdWM0T1JhRmdvZjhMK1krdzVIOXFrT01FWXNoMXh6
VWFaUTRJMFdtbAovbER6YUdVRkhheXRTUlQ2RWJDbnRTMGViMnV0c0FOcGJZVmtvWjNoL0h1c0NK
alY0UHZFTlRiSGJNY1N4NkJqbDRNeDZBMEdUZHpLCldZM09lSkFMR3VQUjBuaktrWTVQamZmYXQw
UUh5NGZpaDlpRHl2djA5eGtPMlErVzMxdGh0OXZzRHFXU1ZhblZxbWkwUEJMUklCYTcKRVdjenVq
bC9hY0R0TjJqMGJvUGdMSEVMTlJYVjdwcGNmdGJUOWtpWk41ZWZLU2FWOFhJdnExUjZUWEdsT2w1
aHM5dTlwb2pkR2RFNApuTTQ1cHRMU3NsaDVlYk5KcFZMYlZVcktVVkhxdEduVUxJdGlPYnhGOU5i
VStBWE9nSWpqN1VpOFBGS21xb2pYc3VVYVpTeXF0dG5MCm5LV0pIUDZqcUhNTTJwOFVJOTh0ZTlJ
YjNhM080Vjg4cXhwVVBsbituZmp6K0Rlb0ZodXdDZlRBd1YyMmo0eGVkbnhxLzlUcEdMVmYKZGtM
NllpcGxORWwvRUVuRURnclMwTUNOU0RIUVVhTXRCWDk3bWZJSXZaMDd0VmRmYmk4a2xKRFFUMDVF
SW5iRWpXRHU1SDhkNytXVQpEY3J0cHppaVBDbUZ5Z29NWnpaY3BNZEZGcXZOWEkxRDVUaFU2eXRT
c0Fvb2dMeXNPNkhnZUJtTEJVcUFJREdSemRmVVlEeFhpYTgyCmExSzkrS01PWjVUcVlmRk5CbzJ4
MU5HR2I2NjFDZEhSdThNcnRHTU5wZHZ0WlV1WU9oOVQxYUkyYXI5NG41dzgwQjBpUGgrcnR6ZXgK
d2hmdmtJL2NybkkrWWRKQW1kN3NtZk41TC9YSUZ3TzBjR1lxNDVPOWZENy9NZlVHdFIvTzFlM29E
ZkZXTmQyZVdkQzhxdmttZXJCMApNSDVqNWpaNmIreld6S050V20yMXZrWmI2NngyMWpoclhablMx
cnJXT2Q0VjNpT2VJOTRUMWJtYVhPM3A2dE0xcDJ2TkdsOHk2VFZwCmFSV2h0RW1US1pua1RWNnYw
MmF2SUtGMlZvejV5anNDeWNvS1ZWdVRSc3BNTGU5MEt0SXRIZDZPc0pOcjlXNzBFcSszVTkzWkVU
OFQKNFJwd2ZDRFNFT0ZPWXU3OENJaHZNTjdvUEdOM291YVJUMGNHTDBEYWFZZWtKTGNJeUFnRGh3
MFpUYllVNXB5bkM5aWpvRkFpZzExZApCVkFIYlZZZUo1dHdNNjZ5c25yTVVvcnh1a1F6bGtwdGVp
eVVTSXN1Q1pWUUoyZVNpV3J5U1d2OGtRUGIycXZ2UGJDelBHTFRNVlphCm9kbWdvZ2hOMDFkN2ln
SUdqYXJJWUZSYTlFMzJWVHRTZ1ZLWHpqUzNhV3BiVGNWVnU1OS8rUzNLbWZucmhZZDZwdjdIKzhk
UGxGcjkKK3VrNkZkYXhLcDFCUDNiNGhybUhyZUJJYS9Xc1dTOFc3Ym1tSnVUZlcrN1psR2h4bWZa
c2ZmdmlpQ3lmY1A0ajZsVm1HNXl0cTlBMwpSWDludkRlK01yNGx1RGwrbTM4b3NDLzRtT2ZSNEFt
UGhnM1dCanVEVkx6SXIxNlBjdGdzMW9aVmdyckxVT1NQVkZtUXdSR09BUzBxCjRrMStQNXpxSW0w
T3RpcmsxWVRUeGY3cU1BMldoUFA3cTlVMTFlTzRSeG9HSk56UGp3RFk4SXhERE9pbUloQ2t0UVNM
aWZ0c0pQSUYKL2d3eWxSV2c1d01BSXBoQ1djbWJKSndsMjhWU29PU3lFWlB3REFXVHRHd3ZoUkpL
aGg3UFZ6QTZPK3RMZXJ0RWRvMk5VWkZYNWpkZgpmOFAxZTM3K3p2OVoyZHZMNGxjTzc1L1Y5TkNk
TzZvUzlGTldRYXR6c0lSUUFxTlVZN3RTcVJ2Vjdrd3Z2M1BOWDM3K1Rubk0xZm5yCk43ODNZMkRz
NHA4ZkNjVWwyMWdQdUsyZzlnSnVhMFhSSnJ3ckVKR3hZN3ZQMFlsYzJPVlc2eGxHSC9LemxsYTN4
cGgreWZzbXFGNW4KUUxUN2VBZDJLRFhWaUloa0VkbEpodUhBR1F6RUw1d2ZHRGx6Ym9PekVUU1FH
encvWUplaEdUMERzK2ZPREF5ZWc0b0J1MU1DQXNrVwpXMVlrZWFaa1FzZHNrM1hxcjlmVkJRTlZ2
dExZdDBZV0xlcStzNUYxZDdSc09uRHJrUk0vZUpmYWUzMU52S2E4eE5tZ01qbkc3bnAxCnc4Nytk
cVcxdjJMMkUvZDgrTktMc2s1NDhoL1JDV1lRMW13Ynh1S3hMazE3dEtOOFNITW0rbDdzWTRwVmE2
eXRSRk9qcTFVbjFFbFYKblNZVktJbEV5OG9qdFpGRUpKa29TWmZYMTlZbjZwT2RKWjFDcDc4ck1X
alk2N3RYYzdqMmNPS0k1a2pMZTdGUDZFdk1KK25mMW4rZQpIcTBYb3JIaWRhYWZoRjFDY1pmSFdL
SWlKdDdURms2QmEwdURzRkswd2tpYjZueDhLRllDUlZTN3FhNk9ONVdVOEI2a0NyV3g0V1FWCmFX
dW9xTkxvMHMwbG1URFByUy9CSlNYdDZ2Yk1WNWUzcEdhZmpuQ1ROQTFMcGxtMjI3Q2U1VVg5OTNy
SHZUcSt5QWNTaGZWZFUxanQKeUFiR1ZsWkZvVVRCMWlhU05sYURaUnNzY1VGT1VWREZ3a0tmRU1o
YmRXM2YySDF6dVBHK08yN0JIL3ZNbW8wTTVYWVozZllOcDFYawo1QzZhY2FuZHRYekNwZytrVjg1
eVdVdTEydW5mWHpQdjY2ZGZlZUdKQmIvKzF4ODE5bHkrOEczeVNOQmFpdzhiWGVxUWhSQ2ZJYURX
CmpGYU8rVG1YeHNWVjh5M1dvbVJxdWRiZVZIUjFZdk05TjMvdHZWOWZLdHltaXZsL3A3cEFUNHRS
S2RvcFhyVUdiVVVFaG1peFdWWlkKQmkxN0xiY0Y3cldjb3MvVGwrai9vTFVNamNWU24xcGR3cFdF
S0ZhMCtJbzZ1VGFIcGxTWEx1NHNrN0o4TlZKNEZhSmlrZUpOeGU4VgpDa1drVEZaZFNUK2RkbEJj
KytoSlVOekJDODdHMDNabnMyUlc0M0lTTkhjRHJHSFQrR3FsRFpNaEcxZGNmMkljVk9rUlQvLzBu
UmxYCmp6MzF3NVJPdldsbTE1eUtCYzdZbklPSHJuMFkzL01IdjlDeXZhcVdONXJ4djcvMTFwVE80
Yk0ydHJReTBMZWt5dDFsU3pXc09YVGcKaFhkWEIyUHJPbVoxaGF2bDIyUnVySTk2aGJvTmFaRWJk
YUVmaWR0WHhHNk03WGJ1amUzSzNCTytQM29vbzlSRU5SV2tqdTZZVG1mVQoxOFJtcDY2TmJvMXVx
cnVmUHFUV1pkeXRiVjdLR21xaTBrWGVGaUhVWk5CVzFpVGJyVlozbWdxSjZiUmJWWFBRVy9XaUts
VE91a05UCkRJN2t0T25hOVBySWNJUkVwaHZTdDdRLzFFN2EyeFhwNmlmV0o0ZVRKTms5UFg3aDNN
REYwVlI4WUlRN0I2RmdCVWN2T3gwamRoa3YKR1RVOG9aQlNrQ3hqQ3JUVW1CclhTWnUwNUF0b0Za
a0t1M3c1bGpJV3FFR0pKTGlMb0hYSllHamN5Yk5WRndrZVhEQWNJWG5Qc2syWQpFYnpVN0owOS8v
WjBldjF0aHg4c3RWYVcvdGpnUExTcG9XOXNhTk4yaHpmbG5TS1cxLzMyeVFVN05IdFhLQlNmMzJs
d21nMU8xNFZmClhQamc4RFA0NVVEanBhSFdydDlkLzhYdWpUTWJTcTBPUzlmK3ZqMVZUa3oydG5H
Q3U3VFdVMm1QMWkrODkzVEszR1AxKzc3OVE0cDIKdTIwbHMyWS92T1g3dTY4cCtKaUIvQ2ZVMjh3
RzFJek9pVnRZajgyVDhIUjQ1bmxXZXZaNFdMWjJyMnB2Z2hJOVByNnpHYTFQclFvMwpDNmlMTGl1
MW1PbEtwekxGNk1LOGlwaWRvbWVoajUvS1cxcktTa3Q1azhWc1VTa2x4NkN1TGtYanlxU09yUXNu
MWM0MlFXTnBDWnM1CmxjVmh5VmcyV3g2d01CWkxpenJGMWJXSThUTnh5Vlpjc1JtU1JDSU5VaXk1
YjVLUFZ2RGZ4aDBCeVZYNEdGeUZTWmJEbGhxM0d5ZlIKdUNOUkVKVzVzRmRaaTY3c1ZBcVcrbnZk
QjJNaEc1V1F2QURBUVJBSzJ4MzdvVGpUUFdoaXRML1owWFBnaG9wK05idFhvZVFNZkptegowOWxS
T2E4dm5LRG93NFF5Y0k2Mk14MFZsUjBQWUpFaWRUT1pScFdHc2RFSzFSZTdmdGg3VCtOTWM0TnR6
R2NKR0l6R2lHdUJmVlhGCjNLcTR6cVluMDVSR2xVT3YvNWYxTXc5OFFiK2dNeWtqUmxxeUdZdnpu
NUJpUm9UelF5VTZKQVlPMngrejUreVVxdmhFbEVTajZ3T3cKeWQwT3U1aGpxajZnZDFDV2lEL0E5
R2h5dUZlTVZVYUVhRmNsYTJuemFJZ1hkbEM5WHZJSUF2NXdWWUFqZnBPZjNPWC90djlQZnNydgpW
MWRYZ1pXV0FOOFFhZUFpWjFoR3Nzem43UGhrWEY0UG40MXdsMGVJc3VCd0RaNk9EOWpCa0p6aDhH
ZnhDZC9yeStPTGxhVUttai9KCkFIOEphVkFvK0F2NEcrbDBhV2w5ZmFrSHY2WlhNSmFTT2wrRlU5
MVYyVDAxa2xKcURsQjA3WXpaVXdNVnZmUnlNVll1aW5DcStJQVoKVGFRMEJvMjJYbWl4NmxlWFQ1
bFM2WTZVRWFLMXFQMUduMXFqVUZvS09qd1g4S3BuTnFNQTJpZE9VZGh4UUJBUXV4NnRDaXNFdGtz
cgpHUFNJRHRzZDJpTFkvaDFUSFlZUUVnVGVaRERvdGFpb3phMHhCTU42ampQZ1ZzTWl3M3JEVGdO
dE1BVFZvZURFSnJiaGlrWk9ja1VuCm5GVkorU0syTDNldHZaeCsreW5aWHlxb2p6VDFSTExLTm1G
dUp6UXVKRzlMU2J5WkpzbFpzUnRNZFQwc08vWVREYTAzK3plSFhiMFYKcytmNGl5TktSZ2xhNFZT
V0dMQlB3VkZxaS9yekdSR1R5dXphMldDK3BYSzJ5ZFhpS0hQNHh0Znd1MkJmUld3VUgyVkNudVp3
S0pCTwpXUktsMXpiZUgzb3NkQ0wwYXVpbjlUOFB2Wk02WDIrZ0crbW1VSEdpb2JheHM3bGYwOXQ0
bzJldjZlNGlqU2FoU3RxeHRaRVdROTV3Clo5Z2QxZUJHbjBtelRpMW91Z3pWVlI0M05pbFNmbVBL
RUJaRHZ2RFVjS3VudXFxS04zbmNubWFqU1JSNUU4Z2hsYlFhV0RHTTFQNjIKcUNialh1YmU3YWJj
ZmsvR3M4U3oyME43T2x2ZEhzN2phVlZqRHJWT2FZa1BuckZMcXg0Qnl0dmpjTlEveFRHRHB3ZE9E
OWduVm4vRAp5SlhWL3pmTFgvYlRJc2FDQXlHRER3NkQ4elIzQm4wcG00cEt2QUVVdFhxU3N5QWRB
NnkyZ2lXd2ZjVVUvTDBsa0wwTnlSSUVqbHBaClg0WFdwbTlKZXA5V2tEMWJadzF2akhvYjFjcGR0
RnJQT1RQZDdsa1ZzN3BLbWhsNmg1cTF1YnMydHJYWE5yYVNhMmY0ekc0ZlJVclUKYWpaRU0yT3pu
bHZ3TGFPdjExN2pHZk1aSWlxRHZYR1pjMTFzWnF6ZUdOVGpYNGVyTlhaaDMxWHI1MzNuNTdEK0V5
RFBGK0RNcGdldgpZWkU0cFlPZW9wMnE2N2YwdWdicGJib0R1dnUxcjV0KzRualA5Szdqa3VGajY4
ZU95NGEvV2swcWpVcExXRzJSeGVHNmphYlZvV0tXCmhJbzArdlEzd0NsMks5TEdhUjUzL0FJNENM
RGhEUlQ4Zm5raGI3amlYb1hHL2F0eFo3N2dOMzA0dStlUkhXdE13c0Q5dCs0Z1BVUFAKL2VnWFEw
ZCsrT0w3dTlkZWZ1ZFlWL204UytmZkpNODh2ZlhjbVhNUDMvbUwwMmZCZHVXWGpzMm5UbEpES0lv
YVVWNWNuL1owMUxjMwpuS3FrMmVLQXNkcVljTmQ2cHFLYjZuK3FmMWYvb2Y2UytYSlVhN1pZckNW
Q2RjTHZOMFlwSkVURnlDSi9tUkRScjZkZkNlc0VmUmRICitma29uVExhSzhJbHZLV3FJbFZDK3kx
VnhnUk5VWkp4TTFhMGNSVjJOaFhpTmRHSVBwSERYeE9GeHJUWEpib1d1ZGE3ZHJvZWRpbGMKbmMz
K3ByQ1JXK1JmNzk4cEc3L21wbkhqTjM0QWxUMytpNkJ4Z012RmtVbnJYTnIrQzd1L3ZOR1l2dXFq
eXZjQ3p0UE9pZnNCV1B2dwpVNTdTTnhTTUpGWDFwVElwMkZBZ1lWTVk4T1FUVXpERUZrNnB0aUlm
S3V3OUNqSnhvSDJ3b1ZFL3BtWXE0MnFUbXVBbUJVV1JSQ2ExCmN0MkdyNzN5azNObDZUSzlYZTJz
NlFhNHY4UHhjNmQrcnlyYzBSek4zcnBsYkZzc1FiM3A5NnA4WGt4SzRsaXBaMzg4UDk2NzU3YmYK
dlBzT1o2NWZHZDFrS0xYU0hucEZjT3JRQXp2R1J1eWh3QzlmT1NYN3FyR3h1ZFFGMER2cC81M254
QmxtVDlpZjhsTUt2eU9hMXFXNApCYm9GaGdYY3Rick53cUIvajdESHZ5L3lZTkYzTFk4VlBXRTc0
djRkL1ZmYW9xYXhKVVpSWmxwaHRuTmhnNWtEeTZzQUVWS1drbElxCmxzT05vb0dteldiZXBGQXdK
U0dSWitrYzFvdkZYa1pSbXJSckRIcDlNTzBxVjhURERNY3BzRUlSVjhmTC8rNmlvQ0FqSndabkRU
VTcKWlZFeGtxd2MzS2NGUWRrbjNkakl2Z0dXYkFUSVkwUEJjYk1scTJWakROdFZrVTh5eitaSjV6
YnJWMjRVeU05Q05nZC9jT3c0SmlIbgozREh6aWs3elU2c3pOKzdvdlAyMTExL2UwMTEyMTkyM2RV
WDJIL3dHdFQ5b2JWencrVUpHdzRTMWJOQ25LUkhKakh2RkRUY00vZnpTCnBYWGloKzgrTWIvajR3
K09GdmFxR25DSUJlb09RUGdCY2NaUFNuR1BBZE1Nd3lwY2JqY3BYY2YvUGh3V1NydWl2TUZEVk5Z
dzQ3RlkKRFF4dktZb1R0eHVzclllUHNnWnJ0WXIxaE4xcWJVZGN3V09lRy9Uczh4QlBwd1RXSU96
VGNMaVhGQnJna1Qyb00xZGNLR3dFZFpaQgpLaWl6ZkdVMmVkODZwV3pRRnpZdjZaUUx4akU1Y1JN
SytFaDNvQk9IQTJHU1RaVjQ4T01zeHN1c1UzNDBMMTVkSGVPOUtpMnRVWWJ1ClRnc1JWK3p3RWIz
UkU5RDZIZUVaSnhqcURnMnJac2EyUjI3L3VDa2NxN2R6VmdYNzNpM2R0L1RjVGViWHpISjZ2RFRs
VTNKK0NTZGYKL2tNeUFudGFEWHBQZEM4UGZFTjl1K2JXd0FVRlUyeTBSR0pHZjZUQldCMVpiVHdY
VWFJY1h2RjBUVDdtQWlxR25YbHpPS0JUMDE1RwpKM0RxZ0tBTWx5bEZhOUFiTXJOTVNLd0l4alQz
S1A5WlNaUTVNdkNEc3M0SGhDY0VJa0JhTExGd21DdmpYRWgwQ0Q3bkViRlk4TGtTCllyWGdxemtp
WXNHSG5ralV4czlzdnl4ZEZOcy9sV1B1L0tTTXBHanhEYU1EZzNINzZBQW9KaHk1d01KS0JCZVFI
amNrNEtaK09vSWcKakh1bjFkYUpvMFFjWHprdFNOdFJOU1VFWllNQXlzamppYk9EaExndzFXZjFK
TmMyemk3aVpuZVozZHMzVmU2d09leHFkNmxQNTZ4WQpGVzNuazUzSjh0d3RwZmRwTFdhbEQ1ZmRW
TGV5dHpOYVo5dTJQcGhLemRzVHNCakhMaTZ1WEpDc0xXMmF1V0xtc3ZSMTk1U1lUQVhkCjdBWS9h
aUc5RUlYUWQ4VUZqSnZ4TUh3dnY0SWY1UGZ3QjNtbHdwNWhQaTc2U3hFdDhqNnZkNnJkVGlnWG9X
aEtiUllaSDBYWkNHVzIKMlcwMjNrVFplUk1obE8yZzNxS1FlRHRjYlg0TkNZY3BqblNRc0xvMFhG
alZnTldFYXlVZFdLWDd2ak9qV0ZyUlhJUmoyQWFpNUJvUQptRmZzNU01d3A1VkVYc3lTTCtwc2ZO
VnBMd0FvclY4QnRteHBaNWZjZkpzSEczQTFLMUNLQ1crMGNBZlFUYWpuNzFOeXk5Y3Q0aWdWCm82
WXBqRk9QYUI5L2h1SE16cmhMZE9wN2Q5VlhsMDhyMHBEblhIbzIwclBSVERPRXNCckZlMjJqMTVo
OE5jV3pEVVZmVzU0b21mQTMKUDZaZXB3NmdEUHFMZUZlUEZaTjZaNld6S3VBT1ZBYXFhdDF6RlBQ
c3ZYVjk2V1h1WmNtRDdrTUpnMWptalV5SmRMaVRkWFhwVkNwZApXK3RpMTQwN3Ayb3hVK3ZXMDY1
d2lUOXVTZFdWK09oYXQreTFaekxJVlZ2TG05enVZalZiSEhZcExNbDRSYU1tMCs3dUNDT3VJOU9i
CnVTZHpLbk14dzJReTdlcGlydFU5eC8wNmVGdnVEblZIKzJTaktmbFdBd1djdVpOZ0V5NFdYS3NK
dXpuSnJiSVY3R2NFRXM1SmRrRzUKWGRyUWdJR1QvQzdINUlPVjdOczM0NFRWZ0wvMG82U24rcXZa
U2E1Vm9oa0xreTVvUGlGVWRjZmREekZLVEIxakZjNmkrbVB0VFRYZQpobnRmWUpSYWc4RnIxN2hO
Z2VMeXFxVnpvM1ZxamFuWXlnN052RzJyejFVRHdubGJiVlJGek1WdUQxWXordEUrUjdIQzVueDd3
L0tiCnV4OGRyYmVVYUhTZ2l4cS9OV2Flbmx4WFVlMXNDbldzbm52cG1rZjB4Vk9LbkRaSmhtWGdZ
NjJpN2tLbGFKM1lzb1c2Z2Q2bnYwOS8KMFArb1h1R2phUi90ODlFOGNSZExWbGVyMVdsMXRJOHZk
ck1LczBKVHlwb0ZTNWVkaFVJdHNRU25rSWdsVWhZLzgxUHUvT0Q3c2gwbwpMMGZObjQwMk4wdVFz
Z3duYlZ4U2NZcFZjZ1hzd0tKaVVvQ0FGTzROQ3E1cEFveUJ0RUVsVElDc1pBcW9hTVBZWjZOVkJv
WnlhaDBWCmJScTMyWE5TNGROejJxQlpxL1d0ZkdOK3pFZnQ3YW5lTy9iazJFdWx0bVFiRnJzZlcw
S0lVMUZHMUhTbzlzbkhWcjhock1YUkpuNmUKMzFlR2NQNFZtUFBkc1BmTVFmZUxDeWtlZVdtZnN1
c0cvUjc5cTkyc1JxdlJNUmEyMWRZYWFrMjI5cmF1YkZYVmxaVHdKdjEwdlg1NgpYUW5kYWErTmgx
alJMdmdjWFc1V2JQVzFkVGEzZFdxVXBFY2oxN2M1cExKSWJ4R2NUT2Ywem8yZk9YOXFnRHQzVHI1
OWtwV3IrVUxxCnk1c3BzSnFqc040dkZFN3VEQnZoR3NkM25xQmtBU1dMVjlDZW1zTE5DbXc2SVhr
M2tpNzVFK09wcjJ4TWtoTlZNS1pYamxoeFNTMWwKbkZNVkRxMWRMN0E2cGNOVkY5aFZialo3U3ZX
bFRvOXFYV1NxczZ6SWF5MmFYeFhyOFpjVUJZTWVqVVhqMUZpWTJNTUJxMFZ2Yzd2cQo2b29qNWZO
bVZybU5YTlBaaHBZSzBhWmI0Mk9WWnBweWRGVyt5TDdhMFJsVEs1UjgwR0J5aEFjM0R0VlZWNmxO
VlNWQkJyd0I5bU9UCjRUdFh6L01sR21ZWVp5UlhWUlNMZng3N2o0NktjSkZidGlQNTE4Zm1nUTdl
Z1ZKb294aFI2WlhGUkhUN1hNVlZGVlZ1aUZ5OHFSaU8KcVhvNHFCWlhWREZGSk1JV0NWYlFQQ0s1
VWxaVk1nRTFybUozUlJWYmJrMVowNzV3ZVgwNmZ1SDgyUlFjbUFxUWoxNXMvblJVVmtTTwoxVWNp
U2pBQ3JOSjVWbFpEOGlYUXBrbUtHRWdtQ2hoZitjZG56WVMvT25HeXJ3MEhIY0VpdmNLZ3F2eDVs
MUI1MVV5Rlc4REdJa2VuCnlJVlhWeTdTV28xY0pCeXVhcnBoL3JyOXl4NWFYZG84ZHE3Y2JGSXpE
S2JxNi9DVW5jL3NwR2hmRGFFdW5oMzRYWGJoaVdsR24xYWwKakFiNHN2ck9OU1BmZi96Y3B1OVhS
V1E3Sy85YVhqTGVlWTJoNFROc1ZNcjVIemZ1T0RGQjRiUXhseFdaYmVDN3FxNTgwUXBVZ2Nhawp6
MTMvYmZUYm85OVdPcFdJQkw3eUxaYUQvakEvUWdvZnV3WWg3RlU4am9acGhIZ0lZZXAyVkEvVUEx
UUV5a0VJa0JSYURHR3VsSWFRCm9GRitLZEFZNVVZMUVIeFExdzM1dWZCT0dYVjcvaFVJcjB2Zitz
SXppQTdqNThrQktrd2RvbStteDVnemlrTnNPZnVrOHBEeVU5WGIKNnQwYXUrWnQ3UXJkRk4zTCtp
R0RVNTZEQSsxRkZEcUpZTmlJZzZjRElmWWpkZ21pNVZxTVRPTXpWVWpmaFBWMVRldnVuaHVaczNy
dAo4azJ4cVpzWFg3ZDY2ZmhYdlBrL1FsaU9sdi9EcjlFYzhyMnNBUmxSR25heGR1aWpFMDFCMCtU
dkFHZWlxOUFzTkJ1c2hQUnQ2VHpVCmgvclJBblIxRGpWRWNxZ3E4ano1SnRhaUJzU1RnOGQ3VW55
TzNDTkdnQTRyaGxueTROU2pVOG5SalVmM2t3YzNQcmlmSE9XUHBzbUQKL0lOcGN0Ujd0SWM4Nkgy
d2grVEk4TlBwR3I0b1IvWWY3K1F0T1RJRXhKd2p0d0V4NWNnK0lNWWMyUXVFeTVGYmdSaHlaQThR
Zlk3cwpCcUxMa1YxQXREbnlkU0NhSFBrYUVIV083QVNpeXBGYmdJQnZ0d01JbXlQYmdTaHk1R1ln
VEk1c0EwTG55RllnVkk3Y0JBUUdzd1VJCnpwRWJnYUFjR1JRTlFESEdTSVdsRHlTVllvdUZOT0xy
MFhxa3c5Zks4UUk1bmkzSEZqbm01SmgrWnIxdTNYcGRpeHEvaVZaQi9oVTUKWGlySFpsRy9TdmY3
VmJxTHEzU3ZyTkw5WkpYdVJid0tkVU9GVzQ0WjBkS3RPOXV0eTNicmhycDFEZDI2cW01ZFdiZlUx
SjlBSkRwOApVWTU5Y3V3UmJkTjBsNmZwM3AybSs5azAzZEZwdXFYVGREWFRkSUZwdWh6K0Y5RzRS
L2YrSHQxamUzVEJQVHBoajg2OUIwcWZmTWJRClpVQ3E1L0NUSUYwZGZ1dDRUNVIvSHY4WWVXR1dQ
UDdSY2U5emZJc0RuMFJwV3NxL09FNVB3R0tRNkxPb0RRZUFQb1hteVBRSkZGSksKNVl1Tzk5VHlP
Ynp3ZUU4amtLdVA5OHdITXY5NHowSWcvY2Q3bGtBWDgxQ1AvTXFjNDk2TGZJc1J6NEw5Um5wMXhu
Z1gzV2cva2VoMApvRThBblhLY1h3bHZaNDYzTGVGYlZMZ0Z0Y2xzVGRCekw5QmlhZUF0T2x3MDNv
eHhmSVI2Q0ZLOTdobitMRCtTenVIZTQvd24wRTdnCk9IOXBUbzdHeC9sZmhuTGtDVkhEZnhDNnlK
L3B1WnQvdlNkSG9QamxPVkI4bkg4cEJLODh5ei9KL3hQL2FFZ3UrVTVJYnVUQkF0czMKdlRrbGtF
TUY3b05odWNsN3dqbDgrRm4rcnRCWmZvZlVKYlMrSFJyWUdqN0xYOThtOTcyMlFGYUc0VzJvWFJH
K3lDL2h2OGJQQ3Nudgp6L1RLdGRQbnlIMVBUWi9sTzhOeSt4MHdCUHdzMys0OXk3ZUc1WTVGWHE1
b0x1U1NoV1lUaFZ3MUw3ZFd1Vjh1akJkbUVvTXBSdWZJClk0L0FNQU9pZ2ZmekczbGYyMHArTHEv
aVZjUFA0VjJJUmNONGg1aGloeDlpaDNleXc1dlk0VFhzOExYc2NDODdQSVVkcm1PSHk5bmgKRW5i
WXcxcVVKaVduMUN1MVNyVlNxVlFvYVRnOElhVWxsLytWV0NaWkk0dUNrNGlDbG1KYVRuTkVpa25C
RkJPc0pHaGFpNTBNSVNYWgpCK0ZXQ0xzaGZCM0NUZ2c3SU53TVlTdUVMUkFHSVF6bGYvVzA5UFlK
TWtSdWZvWXJKRzhtVzhjTHQ1SmJ4MU8za2kzanFTMWtVRTdCCkluNWE2aFBvOFdrSVNSOXpaZkh0
V2NXK3Zpek80anRjV1FSeHY5MXFIV3kyTjV1YWpLbU96RCtJRm8zSGtTOS85di94QzVISlA5elYK
YzlOTG9LYS9BK2g1L0pJY0gzdVc1ZDlnK2UreE1rZlhiR0FZbGhtR1pZWmhpV0g0RFhaNG5NSHV6
aDdxbXQyWGZkemRuNjJTRW5sMwpmMWUyWFBvTzlBUnBKbzN0bVJPa1NTTDlmU2ZRQjZTNWZaWlVq
ajdJOUFQYmZKa05ySFl6c0tHMFJJQU5QNDU0aVEwRzg3ak10clRBCjVpVk5FbHVQUklDTjNJaThN
cHVYM0NpelhaVFlqbTFNdDJlT3BkTXlDLzBDMmlpemJLUmZtTVN5LzZzcysyV1cvZU1zTHBrbEZB
S1cKdHBERWNxd2tCQXpIUWlWeXRmL0w2am1GNnZKQ2RibGNuZnl5T2x5bzdpeFVkMEoxNUgveHQ3
ejFmOExkdm5wMnF4VTFOOXZsUXhpcgp6U3FFMWl3ci9ML2EyRFQrZ3lSQy94ZXV5R3ZxQ21WdVpI
TjBjbVZoYlFwbGJtUnZZbW9LTVRZZ01DQnZZbW9LT1RZNU5RcGxibVJ2Clltb0tNVGNnTUNCdllt
b0tQRHdnTDFSNWNHVWdMMFp2Ym5SRVpYTmpjbWx3ZEc5eUlDOUJjMk5sYm5RZ056VXdJQzlEWVhC
SVpXbG4KYUhRZ05qVTVJQzlFWlhOalpXNTBJQzB5TlRBZ0wwWnNZV2R6Q2prMklDOUdiMjUwUWtK
dmVDQmJJQzB5T1RZZ0xUUXhOQ0F4TmpZeApJREV5TXpRZ1hTQXZSbTl1ZEU1aGJXVWdMMWhMU2sx
TlZTdFVhVzFsY3kxSmRHRnNhV01LTDBsMFlXeHBZMEZ1WjJ4bElDMHhOU0F2ClUzUmxiVllnTUNB
dlRXRjRWMmxrZEdnZ01UWXhNQ0F2V0VobGFXZG9kQ0EwTkRRZ0wwWnZiblJHYVd4bE1pQXhOU0F3
SUZJS1BqNEsKWlc1a2IySnFDakU0SURBZ2IySnFDbHNnTWpVd0lEWXhNU0EyTVRFZ05qRXhJRFl4
TVNBMk1URWdOakV4SURZeE1TQTJNVEVnTmpFeApJRFl4TVNBMk1URWdNalV3SURZeE1TQXlOVEFn
TmpFeElEWXhNUW8yTVRFZ05qRXhJRFl4TVNBMk1URWdOakV4SURZeE1TQTJNVEVnCk5qRXhJRFl4
TVNBMk1URWdOakV4SURZeE1TQTJNVEVnTmpFeElEWXhNU0EyTVRFZ05qRXhDall4TVNBMk1URWdO
akV4SURZeE1TQTIKTVRFZ05qRXhJRFl4TVNBMk1URWdOakV4SURZeE1TQTJNVEVnTmpFeElEWXhN
U0EyTVRFZ05qRXhJRFl4TVNBMk1URUtOakV4SURZeApNU0EyTVRFZ05qRXhJRGd6TXlBMk1URWdO
akV4SURZeE1TQTJNVEVnTmpFeElEWXhNU0EyTVRFZ05qRXhJRFl4TVNBMU1EQWdOVEF3CklEUTBO
QW8xTURBZ05EUTBJRFl4TVNBMU1EQWdOVEF3SURJM09DQTJNVEVnTmpFeElESTNPQ0EyTVRFZ05U
QXdJRFV3TUNBMU1EQWcKTlRBd0lETTRPU0F6T0RrZ01qYzRDalV3TUNBME5EUWdOakV4SURRME5D
QTBORFFnWFFwbGJtUnZZbW9LTmlBd0lHOWlhZ284UENBdgpWSGx3WlNBdlJtOXVkQ0F2VTNWaWRI
bHdaU0F2VkhKMVpWUjVjR1VnTDBKaGMyVkdiMjUwSUM5WVMwcE5UVlVyVkdsdFpYTXRTWFJoCmJH
bGpJQzlHYjI1MFJHVnpZM0pwY0hSdmNnb3hOeUF3SUZJZ0wxZHBaSFJvY3lBeE9DQXdJRklnTDBa
cGNuTjBRMmhoY2lBek1pQXYKVEdGemRFTm9ZWElnTVRJeElDOUZibU52WkdsdVp5QXZUV0ZqVW05
dFlXNUZibU52WkdsdVp3bytQZ3BsYm1Sdlltb0tNVGtnTUNCdgpZbW9LUER3Z0wwRjFkR2h2Y2lB
b1JYSnBZeUJUWldsa1pXd3BJQzlEY21WaGRHOXlJQ2hFZFcxd1VtVnVaR1Z5VkhKbFpTa2dMME55
ClpXRjBhVzl1UkdGMFpTQW9SRG95TURBM01UQXhPREUyTWpBMU55MHdOU2N3TUNjcENpOU5iMlJF
WVhSbElDaEVPakl3TURjeE1ERTQKTVRZeU1EVTNMVEExSnpBd0p5a2dMMUJ5YjJSMVkyVnlJQ2hO
WVdNZ1QxTWdXQ0F4TUM0MExqRXdJRkYxWVhKMGVpQlFSRVpEYjI1MApaWGgwS1FvdlZHbDBiR1Vn
S0ZWdWRHbDBiR1ZrS1NBK1BncGxibVJ2WW1vS2VISmxaZ293SURJd0NqQXdNREF3TURBd01EQWdN
REF3Ck1EQWdiaUFLTURBd01EQXdNRE0yTXlBd01EQXdNQ0J1SUFvd01EQXdNREF3TURJeUlEQXdN
REF3SUc0Z0NqQXdNREF3TURBME5qY2cKTURBd01EQWdiaUFLTURBd01EQXdNRE0wTkNBd01EQXdN
Q0J1SUFvd01EQXdNREF4TXpreElEQXdNREF3SUc0Z0NqQXdNREF3TVRJMQpNamdnTURBd01EQWdi
aUFLTURBd01EQXdNVGsyT1NBd01EQXdNQ0J1SUFvd01EQXdNREF3TlRZMUlEQXdNREF3SUc0Z0Nq
QXdNREF3Ck1ERXpOeklnTURBd01EQWdiaUFLTURBd01EQXdNVGMyTXlBd01EQXdNQ0J1SUFvd01E
QXdNREF4TkRJMklEQXdNREF3SUc0Z0NqQXcKTURBd01ERTROekFnTURBd01EQWdiaUFLTURBd01E
QXdNVGMwTXlBd01EQXdNQ0J1SUFvd01EQXdNREF5TURVNUlEQXdNREF3SUc0ZwpDakF3TURBd01E
SXhNRGtnTURBd01EQWdiaUFLTURBd01EQXhNVGc1TlNBd01EQXdNQ0J1SUFvd01EQXdNREV4T1RF
MklEQXdNREF3CklHNGdDakF3TURBd01USXhORGdnTURBd01EQWdiaUFLTURBd01EQXhNamN3TlNB
d01EQXdNQ0J1SUFwMGNtRnBiR1Z5Q2p3OElDOVQKYVhwbElESXdJQzlTYjI5MElERTBJREFnVWlB
dlNXNW1ieUF4T1NBd0lGSWdMMGxFSUZzZ1BHUmlNR1ptWmpSbU9HUTBNakkzTXpnNQpNV1JsWkRF
MFkyRXhZbUprTmpReVBnbzhaR0l3Wm1abU5HWTRaRFF5TWpjek9Ea3haR1ZrTVRSallURmlZbVEy
TkRJK0lGMGdQajRLCmMzUmhjblI0Y21WbUNqRXlPVEUxQ2lVbFJVOUdDZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22192</attachid>
            <date>2008-07-09 16:08:14 -0700</date>
            <delta_ts>2008-07-23 16:41:49 -0700</delta_ts>
            <desc>Updated printing test patch</desc>
            <filename>Updated-printing-test-patch.patch</filename>
            <type>text/plain</type>
            <size>10146</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZjJhYjAxN2Y4ZThjYTJmZDI3Y2VjYzc4OTQyZWZlNmI0MmJkNDZkMwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUwZGRjNTAu
LjRmYmVjYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAogMjAwOC0wNy0wOSAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgYXJvYmVuLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL3ByaW50aW5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvcHJpbnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IHNraXAgcHJpbnRpbmcgYW5kIHdlYmFyY2hpdmVz
CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IHNraXAgcHJpbnRpbmcgdGVzdHMKKyAg
ICAgICAgKiBwcmludGluZzogQWRkZWQuCisgICAgICAgICogcHJpbnRpbmcvbWVkaWEtcXVlcmll
cy1wcmludC5odG1sOiBBZGRlZC4KKworMjAwOC0wNy0wOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdl
YmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgd2VpbmlnLgogCiAgICAgICAgIEFkZCBD
b250ZW50LVR5cGUgc3VwcG9ydCB0byBEdW1wUmVuZGVyVHJlZSBhbmQgcnVuLXdlYmtpdC10ZXN0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBmYmVjYTEwLi5lMmQ3MGEyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNywzICs3LDQgQEAgc3RvcmFnZS9zdWNjZXNzLWNhbGxi
YWNrLmh0bWwKIGh0dHAvdGVzdHMvYXBwY2FjaGUKICMgTWlzc2luZyBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlciBpbXBsZW1lbnRhdGlvbgogYWNjZXNzaWJpbGl0eQorcHJpbnRpbmcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCmluZGV4IGFjNTI2YzguLmIzYzZlOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZApAQCAtMSw1ICsxLDYgQEAKICMgLS0tLS0tLSBtaXNzaW5nIGZlYXR1cmVzIGluIERSVAog
YWNjZXNzaWJpbGl0eQorcHJpbnRpbmcKIGVkaXRpbmcvc2VsZWN0aW9uLzQ5NzUxMjAuaHRtbAog
ZWRpdGluZy9zZWxlY3Rpb24vNTEwOTgxNy5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1
LTEuaHRtbApAQCAtODY0LDIwICs4NjUsNiBAQCBzdmcvaGl4aWUvdmlld2JveC8wMDMueG1sCiBz
dmcvaGl4aWUvdmlld2JveC8wMDQueG1sCiBzdmcvaGl4aWUvdmlld2JveC9wcmVzZXJ2ZUFzcGVj
dFJhdGlvLzAwMS54bWwKIHN2Zy9oaXhpZS92aWV3Ym94L3ByZXNlcnZlQXNwZWN0UmF0aW8vMDAy
LnhtbAotd2ViYXJjaGl2ZS9hcmNoaXZlLWVtcHR5LWZyYW1lLWRvbS5odG1sCi13ZWJhcmNoaXZl
L2FyY2hpdmUtZW1wdHktZnJhbWUtc291cmNlLmh0bWwKLXdlYmFyY2hpdmUvYXJjaGl2ZS13aXRo
LXVuZW5jb2RlZC11cmwuaHRtbAotd2ViYXJjaGl2ZS90ZXN0LWJvZHktYmFja2dyb3VuZC5odG1s
Ci13ZWJhcmNoaXZlL3Rlc3QtZHVwbGljYXRlLXJlc291cmNlcy5odG1sCi13ZWJhcmNoaXZlL3Rl
c3QtZnJhbWVzZXQuaHRtbAotd2ViYXJjaGl2ZS90ZXN0LWltZy1zcmMuaHRtbAotd2ViYXJjaGl2
ZS90ZXN0LWlucHV0LXNyYy5odG1sCi13ZWJhcmNoaXZlL3Rlc3QtbGluay1ocmVmLmh0bWwKLXdl
YmFyY2hpdmUvdGVzdC1vYmplY3QtZGF0YS5odG1sCi13ZWJhcmNoaXZlL3Rlc3Qtc2NyaXB0LXNy
Yy5odG1sCi13ZWJhcmNoaXZlL3Rlc3QtdGFibGUtYmFja2dyb3VuZC5odG1sCi13ZWJhcmNoaXZl
L3Rlc3QtdGQtYmFja2dyb3VuZC5odG1sCi13ZWJhcmNoaXZlL2xvYWRpbmcvdGVzdC1sb2FkaW5n
LWFyY2hpdmUuaHRtbAogCiAjIC0tLS0tLS0gPHZpZGVvPiBzdXBwb3J0CiBtZWRpYQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAppbmRleCA1MzA2YzE2Li45OWM1ZTk0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZApAQCAtNDA3LDMgKzQwNyw3IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
YWNjZXNzLWNvbnRyb2wtYmFzaWMtbm90LWdldC1hbGxvdy5odG1sCiAKICMgU3RpbGwgbmVlZCB0
byBpbXBsZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgZm9yIER1bXBSZW5kZXJUcmVlIG9u
IFdpbmRvd3MKIGFjY2Vzc2liaWxpdHkKKworIyBObyBzdXBwb3J0IGZvciBwcmludC10by1wZGYg
aW4gV2luZG93cyBEUlQKK3ByaW50aW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50
aW5nL21lZGlhLXF1ZXJpZXMtcHJpbnQtZXhwZWN0ZWQucGRmIGIvTGF5b3V0VGVzdHMvcHJpbnRp
bmcvbWVkaWEtcXVlcmllcy1wcmludC1leHBlY3RlZC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNzI4YzgxZgpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91
dFRlc3RzL3ByaW50aW5nL21lZGlhLXF1ZXJpZXMtcHJpbnQtZXhwZWN0ZWQucGRmIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC5odG1s
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiOGExNjMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wcmludGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwKQEAgLTAsMCArMSwy
NSBAQAorPGh0bWw+Cis8c3R5bGU+CitkaXYgeworICBiYWNrZ3JvdW5kOiByZWQ7CisgIHdpZHRo
OiAxMDBweDsKKyAgaGVpZ2h0OiAxMDBweDsKK30KK0BtZWRpYSBwcmludCB7CisgIGRpdiB7Cisg
ICAgYmFja2dyb3VuZDogZ3JlZW47CisgIH0KKyAgc3BhbiB7CisgICAgZm9udC1zdHlsZTogaXRh
bGljOworICB9Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5wcmludFRvUERGKCk7Cis8L3Nj
cmlwdD4KKzxib2R5PgorICA8ZGl2PjwvZGl2PgorICA8c3Bhbj5XaGVuIHByaW50aW5nLCB5b3Ug
c2hvdWxkIHNlZSBhIGdyZWVuIHNxdWFyZSBhYm92ZSBhbmQgdGhpcyB0ZXh0IHNob3VsZCBiZSBp
dGFsaWMuPC9zcGFuPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEyYWMwMzguLjg3NGE1Mzgg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAwOC0wNy0wOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdl
YmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgYXJvYmVuLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKGR1bXBBc1BERkNh
bGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzUERGKToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzZXREdW1wQXNQREYpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGR1bXBGcmFtZUFzUERGKToKKyAgICAgICAg
KGR1bXApOgorCisyMDA4LTA3LTA5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBSZXZpZXdlZCBieSB3ZWluaWcuCiAKICAgICAgICAgQWRkIENvbnRlbnQtVHlwZSBz
dXBwb3J0IHRvIER1bXBSZW5kZXJUcmVlIGFuZCBydW4td2Via2l0LXRlc3RzCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
ZDU5NTVjMi4uMTIwZDQ4ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogCiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoYm9vbCB0ZXN0UmVwYWludERlZmF1bHQs
IGJvb2wgdGVzdFJlcGFpbnRTd2VlcEhvcml6b250YWxseURlZmF1bHQpCiAgICAgOiBtX2R1bXBB
c1RleHQoZmFsc2UpCisgICAgLCBtX2R1bXBBc1BERihmYWxzZSkKICAgICAsIG1fZHVtcEJhY2tG
b3J3YXJkTGlzdChmYWxzZSkKICAgICAsIG1fZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMo
ZmFsc2UpCiAgICAgLCBtX2R1bXBDaGlsZEZyYW1lc0FzVGV4dChmYWxzZSkKQEAgLTcwLDYgKzcx
LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBBc1RleHRDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wQXNQREZDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSByZWludGVycHJldF9jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5zZXREdW1w
QXNQREYodHJ1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
fQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250
cm9sbGVyID0gcmVpbnRlcnByZXRfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0
R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC02NjksNiArNjc3LDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsg
ImRlY29kZUhvc3ROYW1lIiwgZGVjb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJkaXNwbGF5IiwgZGlzcGxheUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBB
c1RleHQiLCBkdW1wQXNUZXh0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicHJpbnRUb1BE
RiIsIGR1bXBBc1BERkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2Fy
ZExpc3QiLCBkdW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
ZHVtcENoaWxkRnJhbWVzQXNUZXh0IiwgZHVtcENoaWxkRnJhbWVzQXNUZXh0Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMiLCBkdW1wQ2hp
bGRGcmFtZVNjcm9sbFBvc2l0aW9uc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBmZDRkMjk3Li5l
Y2Q1NDI2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKQEAgLTcyLDYgKzcyLDkgQEAgcHVibGljOgogICAgIGJvb2wgZHVtcEFzVGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEFzVGV4dDsgfQogICAgIHZvaWQgc2V0RHVtcEFzVGV4
dChib29sIGR1bXBBc1RleHQpIHsgbV9kdW1wQXNUZXh0ID0gZHVtcEFzVGV4dDsgfQogCisgICAg
Ym9vbCBkdW1wQXNQREYoKSBjb25zdCB7IHJldHVybiBtX2R1bXBBc1BERjsgfQorICAgIHZvaWQg
c2V0RHVtcEFzUERGKGJvb2wgZHVtcEFzUERGKSB7IG1fZHVtcEFzUERGID0gZHVtcEFzUERGOyB9
CisgICAgCiAgICAgYm9vbCBkdW1wQmFja0ZvcndhcmRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9k
dW1wQmFja0ZvcndhcmRMaXN0OyB9CiAgICAgdm9pZCBzZXREdW1wQmFja0ZvcndhcmRMaXN0KGJv
b2wgZHVtcEJhY2tGb3J3YXJkTGlzdCkgeyBtX2R1bXBCYWNrRm9yd2FyZExpc3QgPSBkdW1wQmFj
a0ZvcndhcmRMaXN0OyB9CiAKQEAgLTE0MCw2ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgCiBwcml2
YXRlOgogICAgIGJvb2wgbV9kdW1wQXNUZXh0OworICAgIGJvb2wgbV9kdW1wQXNQREY7CiAgICAg
Ym9vbCBtX2R1bXBCYWNrRm9yd2FyZExpc3Q7CiAgICAgYm9vbCBtX2R1bXBDaGlsZEZyYW1lU2Ny
b2xsUG9zaXRpb25zOwogICAgIGJvb2wgbV9kdW1wQ2hpbGRGcmFtZXNBc1RleHQ7CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggNjZi
NGNjZC4uNjYzYWVkZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQpAQCAtNjA2LDYgKzYwNiwzOSBAQCBzdGF0aWMgTlNTdHJpbmcgKmR1
bXBGcmFtZXNBc1RleHQoV2ViRnJhbWUgKmZyYW1lKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
K3N0YXRpYyBOU0RhdGEgKmR1bXBGcmFtZUFzUERGKFdlYkZyYW1lICpmcmFtZSkKK3sKKyAgICBp
ZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gQCIiOworICAgIAorICAgIC8vIFNhZGx5IHdlIGhh
dmUgdG8gZHVtcCB0byBhIGZpbGUgYW5kIHRoZW4gcmVhZCBmcm9tIHRoYXQgZmlsZSBhZ2Fpbgor
ICAgIC8vICtbTlNQcmludE9wZXJhdGlvbiBQREZPcGVyYXRpb25XaXRoVmlldzppbnNpZGVSZWN0
Ol0gcmVxdWlyZXMgYSByZWN0IGFuZCBwcmludHMgdG8gYSBzaW5nbGUgcGFnZQorICAgIC8vIGxp
a2V3aXNlICtbTlNWaWV3IGRhdGFXaXRoUERGSW5zaWRlUmVjdDpdIGFsc28gcHJpbnRzIHRvIGEg
c2luZ2xlIGNvbnRpbnVvdXMgcGFnZQorICAgIC8vIFRoZSBnb2FsIG9mIHRoaXMgZnVuY3Rpb24g
aXMgdG8gdGVzdCAicmVhbCIgcHJpbnRpbmcgYWNyb3NzIG11bHRpcGxlIHBhZ2VzLgorICAgIC8v
IEZJWE1FOiBJdCdzIHBvc3NpYmxlIHRoZXJlIG1pZ2h0IGJlIHByaW50aW5nIFNQSSB0byBsZXQg
dXMgcHJpbnQgYSBtdWx0aS1wYWdlIFBERiB0byBhbiBOU0RhdGEgb2JqZWN0CisgICAgTlNTdHJp
bmcgKnBhdGggPSBAIi90bXAvdGVzdC5wZGYiOworICAgIAorICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKnByaW50SW5mb0RpY3QgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aERp
Y3Rpb25hcnk6W1tOU1ByaW50SW5mbyBzaGFyZWRQcmludEluZm9dIGRpY3Rpb25hcnldXTsKKyAg
ICBbcHJpbnRJbmZvRGljdCBzZXRPYmplY3Q6TlNQcmludFNhdmVKb2IgZm9yS2V5Ok5TUHJpbnRK
b2JEaXNwb3NpdGlvbl07CisgICAgW3ByaW50SW5mb0RpY3Qgc2V0T2JqZWN0OnBhdGggZm9yS2V5
Ok5TUHJpbnRTYXZlUGF0aF07CisgICAgCisgICAgTlNQcmludEluZm8gKnByaW50SW5mbyA9IFtb
TlNQcmludEluZm8gYWxsb2NdIGluaXRXaXRoRGljdGlvbmFyeTpwcmludEluZm9EaWN0XTsKKyAg
ICBbcHJpbnRJbmZvIHNldEhvcml6b250YWxQYWdpbmF0aW9uOk5TQXV0b1BhZ2luYXRpb25dOwor
ICAgIFtwcmludEluZm8gc2V0VmVydGljYWxQYWdpbmF0aW9uOk5TQXV0b1BhZ2luYXRpb25dOwor
ICAgIFtwcmludEluZm8gc2V0VmVydGljYWxseUNlbnRlcmVkOk5PXTsKKyAgICAKKyAgICBOU1By
aW50T3BlcmF0aW9uICpwcmludE9wZXJhdGlvbiA9IFtOU1ByaW50T3BlcmF0aW9uIHByaW50T3Bl
cmF0aW9uV2l0aFZpZXc6W2ZyYW1lIGZyYW1lVmlld10gcHJpbnRJbmZvOnByaW50SW5mb107Cisg
ICAgW3ByaW50T3BlcmF0aW9uIHNldFNob3dQYW5lbHM6Tk9dOworICAgIFtwcmludE9wZXJhdGlv
biBydW5PcGVyYXRpb25dOworICAgIAorICAgIFtwcmludEluZm8gcmVsZWFzZV07CisgICAgCisg
ICAgTlNEYXRhICpwZGZEYXRhID0gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZGaWxlOnBhdGhd
OworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlRmlsZUF0UGF0aDpw
YXRoIGhhbmRsZXI6bmlsXTsKKyAgICAKKyAgICByZXR1cm4gcGRmRGF0YTsKK30KKwogc3RhdGlj
IHZvaWQgY29udmVydE1JTUVUeXBlKE5TTXV0YWJsZVN0cmluZyAqbWltZVR5cGUpCiB7CiAgICAg
aWYgKFttaW1lVHlwZSBpc0VxdWFsVG9TdHJpbmc6QCJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQi
XSkKQEAgLTgzMCw2ICs4NjMsOSBAQCB2b2lkIGR1bXAoKQogICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci0+c2V0RHVtcEFzVGV4dChkdW1wQXNUZXh0KTsKICAgICAgICAgaWYgKGxheW91dFRl
c3RDb250cm9sbGVyLT5kdW1wQXNUZXh0KCkpIHsKICAgICAgICAgICAgIHJlc3VsdFN0cmluZyA9
IGR1bXBGcmFtZXNBc1RleHQobWFpbkZyYW1lKTsKKyAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRU
ZXN0Q29udHJvbGxlci0+ZHVtcEFzUERGKCkpIHsKKyAgICAgICAgICAgIHJlc3VsdERhdGEgPSBk
dW1wRnJhbWVBc1BERihtYWluRnJhbWUpOworICAgICAgICAgICAgcmVzdWx0TWltZVR5cGUgPSBA
ImFwcGxpY2F0aW9uL3BkZiI7CiAgICAgICAgIH0gZWxzZSBpZiAobGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSkgewogICAgICAgICAgICAgV2ViQXJjaGl2ZSAqd2Vi
QXJjaGl2ZSA9IFtbbWFpbkZyYW1lIERPTURvY3VtZW50XSB3ZWJBcmNoaXZlXTsKICAgICAgICAg
ICAgIHJlc3VsdFN0cmluZyA9IHNlcmlhbGl6ZVdlYkFyY2hpdmVUb1hNTCh3ZWJBcmNoaXZlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>