<?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>46695</bug_id>
          
          <creation_ts>2010-09-27 21:16:53 -0700</creation_ts>
          <short_desc>Optimize TextBreakIteratorQt to avoid deep-copying the strings used by cached iterators</short_desc>
          <delta_ts>2014-02-03 03:50:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matthew Figg">matthew.figg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>christopher.reiss</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>luiz</cc>
    
    <cc>manuel.lazzari</cc>
    
    <cc>mitz</cc>
    
    <cc>ned</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286044</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Figg">matthew.figg</who>
    <bug_when>2010-09-27 21:16:53 -0700</bug_when>
    <thetext>The setUpIterator function in WebCore/platform/text/qt/TextBreakIteratorQt.cpp:53 has two problems:

    TextBreakIterator* setUpIterator(TextBreakIterator&amp; iterator, QTextBoundaryFinder::BoundaryType type, const UChar* string, int length)
    {
        if (!string || !length)
            return 0;

        if (iterator.isValid() &amp;&amp; type == iterator.type() &amp;&amp; length == iterator.length
            &amp;&amp; memcmp(string, iterator.string, length) == 0) {
            iterator.toStart();
            return &amp;iterator;
        }

        iterator = TextBreakIterator(type, string, length);

        return &amp;iterator;
    }

1) The memcmp doesn&apos;t compare the entire string.  It should instead be memcmp(string, iterator.string, length * sizeof(UChar))

This is easily proven by loading the following webpage.  The iterator is reused for all inputs:

&lt;html&gt;
  &lt;body&gt;
    &lt;input value=&quot;search0&quot;/&gt;
    &lt;input value=&quot;search1&quot;/&gt;
    &lt;input value=&quot;search2&quot;/&gt;
    &lt;input value=&quot;search3&quot;/&gt;
    &lt;input value=&quot;search4&quot;/&gt;
    &lt;input value=&quot;search5&quot;/&gt;
    &lt;input value=&quot;search6&quot;/&gt;
    &lt;input value=&quot;search7&quot;/&gt;
    &lt;input value=&quot;search8&quot;/&gt;
    &lt;input value=&quot;search9&quot;/&gt;
  &lt;/body&gt;
&lt;/html&gt;

2) The iterator.string is sometimes freed between calls.  If the iterator is valid, the type is the same and the length is the same, it ends up comparing the string to random memory and potentially (if the random memory matches) returning an iterator with the invalid string pointer.  I&apos;m not sure if this could cause larger issues further downstream?

This bug was introduced when fixing https://bugs.webkit.org/show_bug.cgi?id=39958 - See http://trac.webkit.org/changeset/60847/trunk/WebCore/platform/text/qt/TextBreakIteratorQt.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327203</commentid>
    <comment_count>1</comment_count>
    <who name="Manuel Lazzari">manuel.lazzari</who>
    <bug_when>2010-12-28 01:00:55 -0800</bug_when>
    <thetext>I managed to verify problem (2) using debugging tool for windows and enabling global flags:

- page heap
- heap tail check
- heap free checking
- heap parameters checking
- heap validation on call

To reproduce the problem and have the program to crash you can simply start to type in an input field, delete all the input via backspace and type something else: when you start retyping the program crashes. 

Calls stack following:

5caf8f50 MSVCR90D!free+0x00000010
    10c9fe6d QtWebKitd4!WTF::fastFree+0x0000000d
    1008af7d QtWebKitd4!WTF::FastAllocBase::operator delete+0x0000001d
    1008af40 QtWebKitd4!WebCore::StringImpl::`scalar deleting destructor&apos;+0x00000020
    1008aeef QtWebKitd4!WebCore::StringImpl::deref+0x0000003f
    1008aea1 QtWebKitd4!WTF::derefIfNotNull&lt;WebCore::StringImpl&gt;+0x00000011
    1008ae52 QtWebKitd4!WTF::RefPtr&lt;WebCore::StringImpl&gt;::~RefPtr&lt;WebCore::StringImpl&gt;+0x00000012
    1008ad5f QtWebKitd4!WebCore::String::~String+0x0000000f
    108e3d08 QtWebKitd4!WebCore::RenderText::~RenderText+0x00000038
    108e3848 QtWebKitd4!WebCore::RenderBR::~RenderBR+0x00000018
    108e3c9f QtWebKitd4!WebCore::RenderBR::`scalar deleting destructor&apos;+0x0000000f
    1092df7b QtWebKitd4!WebCore::RenderObject::arenaDelete+0x0000013b
    1092de3b QtWebKitd4!WebCore::RenderObject::destroy+0x0000013b
    1095021a QtWebKitd4!WebCore::RenderText::destroy+0x000000ca
    1053b93f QtWebKitd4!WebCore::Node::detach+0x0000003f
    104e41d9 QtWebKitd4!WebCore::ContainerNode::detach+0x00000049
    1052241a QtWebKitd4!WebCore::Element::detach+0x0000003a
    104e3457 QtWebKitd4!WebCore::ContainerNode::removeChild+0x00000157
    1053a4da QtWebKitd4!WebCore::Node::remove+0x0000003a
    105e2a9f QtWebKitd4!WebCore::RemoveNodeCommand::doApply+0x0000008f
    105aafa8 QtWebKitd4!WebCore::EditCommand::apply+0x000000c8
    105959ff QtWebKitd4!WebCore::CompositeEditCommand::applyCommandToComposite+0x0000004f
    105964e4 QtWebKitd4!WebCore::CompositeEditCommand::removeNode+0x00000074
    10598988 QtWebKitd4!WebCore::CompositeEditCommand::removePlaceholderAt+0x00000048
    105d4f53 QtWebKitd4!WebCore::InsertTextCommand::input+0x00000463
    10601769 QtWebKitd4!WebCore::TypingCommand::insertTextRunWithoutNewlines+0x00000119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327204</commentid>
    <comment_count>2</comment_count>
    <who name="Manuel Lazzari">manuel.lazzari</who>
    <bug_when>2010-12-28 01:04:50 -0800</bug_when>
    <thetext>EDIT - call stack obviously reports who frees the string</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342288</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-30 07:46:22 -0800</bug_when>
    <thetext>Please follow http://trac.webkit.org/wiki/QtWebKitBugs when reporing bugs here (missing Qt keyword). Your bug was not tracked because of the missing Qt keyword :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342660</commentid>
    <comment_count>4</comment_count>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-01-31 10:29:06 -0800</bug_when>
    <thetext>starting on this ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342685</commentid>
    <comment_count>5</comment_count>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-01-31 11:06:37 -0800</bug_when>
    <thetext>Just seeing this code for the first time, but my initial take is that
this 
        if (iterator.isValid() &amp;&amp; type == iterator.type() &amp;&amp; length == iterator.length
            &amp;&amp; memcmp(string, iterator.string, length) == 0) {
            iterator.toStart();
            return &amp;iterator;
        }


should really be this ...

        if (iterator.isValid() &amp;&amp; type == iterator.type() &amp;&amp; length == iterator.length &amp;&amp; string == iterator.string) {
            iterator.toStart();
            return &amp;iterator;
        }

That is, we just want to make sure iterator.string is at the same place in memory as &apos;string&apos;.  Then it&apos;s safe to recycle it.   Let me do some more digging and testing ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342699</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-31 11:23:25 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; should really be this ...
&gt; 
&gt;         if (iterator.isValid() &amp;&amp; type == iterator.type() &amp;&amp; length == iterator.length &amp;&amp; string == iterator.string) {
&gt;             iterator.toStart();
&gt;             return &amp;iterator;
&gt;         }
&gt; 
&gt; That is, we just want to make sure iterator.string is at the same place in memory as &apos;string&apos;.  Then it&apos;s safe to recycle it.   Let me do some more digging and testing ...

Uh... &quot;string&quot; is a UChar*. I don&apos;t think you&apos;ll skip the memcmp so easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342717</commentid>
    <comment_count>7</comment_count>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-01-31 11:44:40 -0800</bug_when>
    <thetext>It seems to me that : 

   We can recycle the iterator if - 
   a) the strings are at the same location in memory, hence identical.   A comparison of (string== iterator.string) tests for this.
   b) the strings happen to be at different locations, but have the same content.
But in this case, we run the risk that &apos;string&apos; points to freed memory (as Manuel pointed out).

   We could work around this by doing a string copy, but this may incur a worse performance hit than recreating the iterator.

Of course, a) is useless if there is some copying being done somewhere up the stack.   I&apos;m testing for this now, that is, does the test ever pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342720</commentid>
    <comment_count>8</comment_count>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-01-31 11:47:45 -0800</bug_when>
    <thetext>EDIT : we run the risk that iterator.string points to free memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342742</commentid>
    <comment_count>9</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-01-31 12:26:40 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; It seems to me that : 
&gt; 
&gt;    We can recycle the iterator if - 
&gt;    a) the strings are at the same location in memory, hence identical.   A comparison of (string== iterator.string) tests for this.

This is not sufficient. &apos;string&apos; can be == &apos;iterator.string&apos; for different strings in the case where the allocator re-uses the same address in a subsequent allocation.

There are two solutions, as I see it. Either we hold a strong reference to the string for the lifetime of the cached iterator or we take a deep copy.

The ref fix is superior since it eliminates the bug and avoids the deep copy. Unfortunately the API of these functions is character/length based, which means that we have no string to bump the refcount on.

Is it possible to alter the setUpIterator() (and friends) API to take String objects instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342804</commentid>
    <comment_count>10</comment_count>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-01-31 14:04:10 -0800</bug_when>
    <thetext>&gt; This is not sufficient. &apos;string&apos; can be == &apos;iterator.string&apos; for different strings in the case where the allocator re-uses the same address in a subsequent allocation.

I see - in the case that &apos;string&apos; has been freed, reallocated and overwritten by &apos;iterator.string&apos;.  In which  case there is no first string anymore :)

Is this a problem, so long as the first thing we do to the TextBreakIterator is call toStart() ?   It doesn&apos;t seem to me that TextBreakIterator maintains any sort of state which clings to the string once its been rewound.  (its parent, QTextBoundaryFinder, doesn&apos;t do a copy either - or we cd compare against *that*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349948</commentid>
    <comment_count>11</comment_count>
      <attachid>82164</attachid>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-11 13:01:05 -0800</bug_when>
    <thetext>Created attachment 82164
Incomplete - seek feedback on this approach.

Curious to hear feedback on this approach to avoiding the deep string copy while safely reusing the TextIterator.    

I found that the big performance occurs hit occurs  down the stack from    
   RenderBlockLineLayout::findNextLineBreak, 
   WebCore::isBreakable, 
   WebCore::nextBreakablePosition and 
   WebCore::lineBreakIterator and finally to TextBreakIteratorQt.cpp.

Here i protect the memory using an optional argument and PassRefPtr .

Is this too disruptive?   Also - this patch isn&apos;t complete, some function signatures would need to change in other ports of TextIterator.   I just wanted to see if there were any fundamental objections to this approach before I roll up a complete patch.

i also have timing results comparing no caching, the current (unsafe) code, and this code if ppl are interested.   Also - Am i using PassRefPtr correctly?  It doesn&apos;t crash, anyway :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350646</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-14 07:13:36 -0800</bug_when>
    <thetext>Attachment 82164 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/platform/text/TextBreakIter...&quot; exit_code: 1

Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp:25:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp:50:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp:50:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp:66:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp:66:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp:72:  Missing spaces around ==  [whitespace/operators] [3]
Source/WebCore/rendering/break_lines.h:25:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/rendering/break_lines.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/rendering/break_lines.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebCore/rendering/break_lines.h:32:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/rendering/break_lines.h:32:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/rendering/break_lines.h:34:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/rendering/break_lines.h:34:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/text/TextBreakIterator.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/text/TextBreakIterator.h:49:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/platform/text/TextBreakIterator.h:49:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/text/gtk/TextBreakIteratorGtk.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/text/gtk/TextBreakIteratorGtk.cpp:244:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/platform/text/gtk/TextBreakIteratorGtk.cpp:244:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 19 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350648</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-14 07:16:43 -0800</bug_when>
    <thetext>Attachment 82164 did not build on chromium:
Build output: http://queues.webkit.org/results/7907608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350650</commentid>
    <comment_count>14</comment_count>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-02-14 07:22:18 -0800</bug_when>
    <thetext>Attachment 82164 did not build on gtk:
Build output: http://queues.webkit.org/results/7905638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350654</commentid>
    <comment_count>15</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 07:38:01 -0800</bug_when>
    <thetext>Attachment 82164 did not build on win:
Build output: http://queues.webkit.org/results/7908612</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350690</commentid>
    <comment_count>16</comment_count>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-14 08:57:45 -0800</bug_when>
    <thetext>Here are some timing results which motivate this caching.

To recap, the code as it is has two errors, the length if the compare is incorrect and there is a risk of a dangling pointer if iterator.string gets destroyed.

The simple fix is to
   *take a deep copy of the string in Iterator.

The more extensive fix is the above patch (or something like it): https://bugs.webkit.org/attachment.cgi?id=82164, 
which (tries to) protect the string in memory using RefPtr&apos;s, and only
recycles Iterators in the path where the performance hit seems to occur.

Here is time spent in  TextBreakIterator* setUpIterator(...), using QtTestBrowser on Ubuntu (debug build, 2.8Gz) for the different alternatives :

----
URL : http://en.wikipedia.org/wiki/List_of_science_fiction_television_programs

  No caching :  36 milliseconds    (here we always create a new iterator.)
  
  deep copy :   23 milliseconds

  RefPtr appraoch : 16 milliseconds

here is another set of results, using one enormous &lt;div&gt; (attached) :
----
  No caching : 700 milliseconds (ouch)
  deep copy :  9 milliseconds
  RefPtr&apos;s  :  5 milliseconds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350691</commentid>
    <comment_count>17</comment_count>
      <attachid>82322</attachid>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-14 08:59:07 -0800</bug_when>
    <thetext>Created attachment 82322
one big &lt;div&gt; block</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350760</commentid>
    <comment_count>18</comment_count>
      <attachid>82164</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-14 10:46:51 -0800</bug_when>
    <thetext>Comment on attachment 82164
Incomplete - seek feedback on this approach.

It breaks the build in many platforms you should take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352881</commentid>
    <comment_count>19</comment_count>
      <attachid>82802</attachid>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-17 07:43:38 -0800</bug_when>
    <thetext>Created attachment 82802
proposed approach to safe recycling without doing a deep copy of the string

Posting this as sort of a straw man, a possible way to safely recycle the TextIterator without doing a deep copy of the string.   Is this too disruptive to other ports?  Am I using RefPtr&apos;s correctly.

Please also see timing results above ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352885</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-17 07:47:35 -0800</bug_when>
    <thetext>Attachment 82802 did not build on chromium:
Build output: http://queues.webkit.org/results/7927642</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352897</commentid>
    <comment_count>21</comment_count>
      <attachid>82806</attachid>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-17 07:56:18 -0800</bug_when>
    <thetext>Created attachment 82806
(fix to chromium build break)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353506</commentid>
    <comment_count>22</comment_count>
      <attachid>82806</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-18 02:47:23 -0800</bug_when>
    <thetext>Comment on attachment 82806
(fix to chromium build break)

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

This line should be replaced, either mention what tests are added, or explain why none are needed.

&gt; Source/WebCore/ChangeLog:9
&gt; +

I&apos;m missing a comment block here explaining that you&apos;re adding a way for TextBreakIterators to hold a reference to the last string they operate on for reuse purposes.

&gt; Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp:48
&gt; +        TextBreakIterator(QTextBoundaryFinder::BoundaryType type, const UChar* string, int length, PassRefPtr&lt;StringImpl&gt; origText = 0)

&quot;origText&quot; is a bad variable name, we stay away from abbreviations in WebKit style. Repeated below.

&gt; Source/WebCore/platform/text/gtk/TextBreakIteratorGtk.cpp:244
&gt; +TextBreakIterator* lineBreakIterator(const UChar* string, int length, PassRefPtr&lt;StringImpl&gt; origText = 0 /* used for memory-safe recycling of Iterator */)

No need for the &quot; = 0 /* used for memory-safe recycling of Iterator */&quot; here.

&gt; Source/WebCore/rendering/break_lines.h:28
&gt; +typedef PassRefPtr&lt;StringImpl&gt; Blerk; 

Blerk?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353592</commentid>
    <comment_count>23</comment_count>
      <attachid>82961</attachid>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-18 08:16:30 -0800</bug_when>
    <thetext>Created attachment 82961
style fixes 

(and, um, de-blerked :) )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354627</commentid>
    <comment_count>24</comment_count>
      <attachid>82961</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-21 09:17:46 -0800</bug_when>
    <thetext>Comment on attachment 82961
style fixes 

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        to the string they operate on.   In this patch, the reference is only used to

Extra space here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354663</commentid>
    <comment_count>25</comment_count>
      <attachid>83180</attachid>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-21 10:25:17 -0800</bug_when>
    <thetext>Created attachment 83180
Using RefPtr&apos;s to safely reuse textiterators

Fix spacing in changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354665</commentid>
    <comment_count>26</comment_count>
      <attachid>83180</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-21 10:32:58 -0800</bug_when>
    <thetext>Comment on attachment 83180
Using RefPtr&apos;s to safely reuse textiterators

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        to the string they operate on.  In this patch, the reference is only used to

Sorry it&apos;s one space after the dot :(.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354675</commentid>
    <comment_count>27</comment_count>
      <attachid>83185</attachid>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-21 10:40:38 -0800</bug_when>
    <thetext>Created attachment 83185
Using RefPtr&apos;s to safely reuse textiterators

Another correction to spaces in Changelog.

Happy to fix it, thanks Alexis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356810</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-24 02:51:32 -0800</bug_when>
    <thetext>I&apos;m not sure I understand this patch.  It&apos;s not Qt only however since you affect all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357031</commentid>
    <comment_count>29</comment_count>
    <who name="chris reiss">christopher.reiss</who>
    <bug_when>2011-02-24 08:39:34 -0800</bug_when>
    <thetext>This is an optimization.

When we&apos;re rendering lots of text in RenderBlock::findNextLineBreak( ), we make many calls to isBreakable( ), which in turns creates a lot of TextBreakIterators.    This got very expensive in 
the Qt port, for a &lt;div&gt; with lots of text, 0.7 seconds were spent in setUpIterator.  See comment 16 .

Within the RenderBlock::findNextLine( ) loop, we&apos;re passing the same string repeatedly to isBreakable( ).  So we&apos;d like to reuse the TextBreakIterator from last time.   We&apos;d like setupTextIterator to recognize that the string
hasn&apos;t changed.

The wrinkle is that a raw UChar* is passed to setUpIterator.    The pointer may not have changed since last time, but there&apos;s an outside chance that the memory has been deleted and reallocated (isBreakable() has lots of call sites.)  
So setupTextIterator( ) is never sure that it can reuse the last iterator.

This patch gives the call site the option to pass a RefPtr string to isBreakable( ).   If the parameter is present, setupTextIterator will use it to avoid recreating iterators on the same string.

So I needed to add that parameter to code outside the Qt port.    The hope is - it&apos;s essentially a NOOP for other ports so they wouldn&apos;t mind too much,
and perhaps even find it useful at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357039</commentid>
    <comment_count>30</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-02-24 08:50:01 -0800</bug_when>
    <thetext>I think the &quot;optimization&quot; has just been removed in http://trac.webkit.org/changeset/79567 and Ned Holbrook has a patch that provides a safe, cross-platform optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357040</commentid>
    <comment_count>31</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-02-24 08:51:29 -0800</bug_when>
    <thetext>See bug 54912.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369661</commentid>
    <comment_count>32</comment_count>
      <attachid>83185</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-18 09:13:55 -0700</bug_when>
    <thetext>Comment on attachment 83185
Using RefPtr&apos;s to safely reuse textiterators

This patch needs to be updated to match the current code in TextBreakIteratorQt.
I&apos;m not sure the patch makes sense anymore though, is there still a performance issue with the cross-platform optimization in place?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369663</commentid>
    <comment_count>33</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-18 09:16:14 -0700</bug_when>
    <thetext>Unblocking 2.2 release as this is no longer about the crash that was fixed in bug 55139.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975821</commentid>
    <comment_count>34</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2014-02-03 03:50:48 -0800</bug_when>
    <thetext>=== Bulk closing of Qt bugs ===

If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it.

If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82164</attachid>
            <date>2011-02-11 13:01:05 -0800</date>
            <delta_ts>2011-02-17 07:43:38 -0800</delta_ts>
            <desc>Incomplete - seek feedback on this approach.</desc>
            <filename>iter_cache.diff</filename>
            <type>text/plain</type>
            <size>8130</size>
            <attacher name="chris reiss">christopher.reiss</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0
QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gNzgxMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw2ICsyMSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHRCcmVh
a0l0ZXJhdG9yLmgiCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CisjaW5jbHVk
ZSA8UGFzc1JlZlB0ci5oPgorCisKICNpbmNsdWRlIDxRdENvcmUvcXRleHRib3VuZGFyeWZpbmRl
ci5oPgogI2luY2x1ZGUgPHFkZWJ1Zy5oPgogCkBAIC00MywxMCArNDcsMTIgQEAKIAogICAgIGNs
YXNzIFRleHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFUZXh0Qm91bmRhcnlGaW5kZXIgewogICAg
IHB1YmxpYzoKLSAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRCb3VuZGFyeUZpbmRlcjo6
Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCisgICAg
ICAgIFRleHRCcmVha0l0ZXJhdG9yKFFUZXh0Qm91bmRhcnlGaW5kZXI6OkJvdW5kYXJ5VHlwZSB0
eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFN0cmluZ0lt
cGw+IG9yaWdUZXh0PU5VTEwpCiAgICAgICAgICAgICA6IFFUZXh0Qm91bmRhcnlGaW5kZXIodHlw
ZSwgKGNvbnN0IFFDaGFyKilzdHJpbmcsIGxlbmd0aCwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSkK
ICAgICAgICAgICAgICwgbGVuZ3RoKGxlbmd0aCkKLSAgICAgICAgICAgICwgc3RyaW5nKHN0cmlu
Zykge30KKyAgICAgICAgICAgICwgc3RyaW5nKHN0cmluZykKKyAgICAgICAgICAgICwgbV9vcmln
aW5hbFN0cmluZyhvcmlnVGV4dCkKKyAgICAgICAgICAgIHt9CiAgICAgICAgIFRleHRCcmVha0l0
ZXJhdG9yKCkKICAgICAgICAgICAgIDogUVRleHRCb3VuZGFyeUZpbmRlcigpCiAgICAgICAgICAg
ICAsIGxlbmd0aCgwKQpAQCAtNTQsMjEgKzYwLDIxIEBACiAKICAgICAgICAgaW50IGxlbmd0aDsK
ICAgICAgICAgY29uc3QgVUNoYXIqIHN0cmluZzsKKyAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+
IG1fb3JpZ2luYWxTdHJpbmc7CiAgICAgfTsKIAotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZXRV
cEl0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yJiBpdGVyYXRvciwgUVRleHRCb3VuZGFyeUZpbmRl
cjo6Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCisg
ICAgVGV4dEJyZWFrSXRlcmF0b3IqIHNldFVwSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3ImIGl0
ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpCb3VuZGFyeVR5cGUgdHlwZSwgY29uc3QgVUNo
YXIqIHN0cmluZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnVGV4dD1O
VUxMKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcgfHwgIWxlbmd0aCkKICAgICAgICAgICAg
IHJldHVybiAwOwogCiAgICAgICAgIGlmIChpdGVyYXRvci5pc1ZhbGlkKCkgJiYgdHlwZSA9PSBp
dGVyYXRvci50eXBlKCkgJiYgbGVuZ3RoID09IGl0ZXJhdG9yLmxlbmd0aAotICAgICAgICAgICAg
JiYgbWVtY21wKHN0cmluZywgaXRlcmF0b3Iuc3RyaW5nLCBsZW5ndGgpID09IDApIHsKKyAgICAg
ICAgICAgICYmIChzdHJpbmcgPT0gaXRlcmF0b3Iuc3RyaW5nKSAmJiBvcmlnVGV4dCAmJiAoaXRl
cmF0b3IubV9vcmlnaW5hbFN0cmluZz09b3JpZ1RleHQpKSB7CiAgICAgICAgICAgICBpdGVyYXRv
ci50b1N0YXJ0KCk7CiAgICAgICAgICAgICByZXR1cm4gJml0ZXJhdG9yOwogICAgICAgICB9CiAK
LSAgICAgICAgaXRlcmF0b3IgPSBUZXh0QnJlYWtJdGVyYXRvcih0eXBlLCBzdHJpbmcsIGxlbmd0
aCk7Ci0KKyAgICAgICAgaXRlcmF0b3IgPSBUZXh0QnJlYWtJdGVyYXRvcih0eXBlLCBzdHJpbmcs
IGxlbmd0aCwgb3JpZ1RleHQpOwogICAgICAgICByZXR1cm4gJml0ZXJhdG9yOwogICAgIH0KIApA
QCAtODksMTAgKzk1LDEwIEBACiAgICAgICAgIHJldHVybiBjaGFyYWN0ZXJCcmVha0l0ZXJhdG9y
KHN0cmluZywgbGVuZ3RoKTsKICAgICB9CiAKLSAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJy
ZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKKyAgICBUZXh0QnJl
YWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxl
bmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnVGV4dCkKICAgICB7CiAgICAgICAgIHN0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICAgICAg
cmV0dXJuIHNldFVwSXRlcmF0b3Ioc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRh
cnlGaW5kZXI6OkxpbmUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHNldFVwSXRl
cmF0b3Ioc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUs
IHN0cmluZywgbGVuZ3RoLCBvcmlnVGV4dCk7CiAgICAgfQogCiAgICAgVGV4dEJyZWFrSXRlcmF0
b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3Ro
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRlcmF0
b3JHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3Rr
L1RleHRCcmVha0l0ZXJhdG9yR3RrLmNwcAkocmV2aXNpb24gNzgxMjcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0QnJlYWtJdGVyYXRvckd0ay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDYgKzI1LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
IlRleHRCcmVha0l0ZXJhdG9yLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgor
I2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KIAogI2luY2x1ZGUgIkdPd25QdHIuaCIKICNpbmNsdWRl
IDxwYW5nby9wYW5nby5oPgpAQCAtMjM5LDcgKzI0MSw3IEBACiAgICAgcmV0dXJuIHNldFVwSXRl
cmF0b3IoY3JlYXRlZFdvcmRCcmVha0l0ZXJhdG9yLCBzdGF0aWNXb3JkQnJlYWtJdGVyYXRvciwg
VUJSS19XT1JELCBzdHJpbmcsIGxlbmd0aCk7CiB9CiAKLVRleHRCcmVha0l0ZXJhdG9yKiBsaW5l
QnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorVGV4dEJyZWFr
SXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5n
dGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1RleHQ9TlVMTCkKIHsKICAgICBzdGF0aWMg
Ym9vbCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKICAgICBzdGF0aWMgVGV4dEJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkocmV2aXNpb24gNzgx
MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDkgQEAKICNpZm5kZWYgVGV4dEJyZWFrSXRlcmF0
b3JfaAogI2RlZmluZSBUZXh0QnJlYWtJdGVyYXRvcl9oCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdJbXBsLmg+CisjaW5jbHVkZSA8UGFzc1JlZlB0ci5oPgorCiAjaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvVW5pY29kZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0Niw3IEBA
CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoY29uc3QgVUNo
YXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJlYWtJdGVy
YXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBs
aW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIFRleHRCcmVh
a0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIFBh
c3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1RleHQ9TlVMTCk7CiAgICAgVGV4dEJyZWFrSXRlcmF0
b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwogCiAg
ICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJldmlzaW9uIDc4MTI3KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTU0LDcgKzE1NCw3IEBACiB9CiAjZW5kaWYKIAotaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihj
b25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIHRyZWF0Tm9CcmVha1NwYWNl
QXNCcmVhaykKK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHN0ciwgaW50
IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWssICBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+ICBvcmlnVHh0KQogewogI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKQogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9y
ID0gMDsKQEAgLTE3Miw3ICsxNzIsNyBAQAogICAgICAgICAgICAgaWYgKG5leHRCcmVhayA8IGkg
JiYgaSkgewogI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VS
KQogICAgICAgICAgICAgICAgIGlmICghYnJlYWtJdGVyYXRvcikKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yKHN0ciwgbGVuKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yKHN0ciwgbGVuLCBv
cmlnVHh0KTsKICAgICAgICAgICAgICAgICBpZiAoYnJlYWtJdGVyYXRvcikKICAgICAgICAgICAg
ICAgICAgICAgbmV4dEJyZWFrID0gdGV4dEJyZWFrRm9sbG93aW5nKGJyZWFrSXRlcmF0b3IsIGkg
LSAxKTsKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuaAko
cmV2aXNpb24gNzgxMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTUgKzIyLDE5IEBACiAjZGVmaW5lIGJyZWFrX2xpbmVz
X2gKIAogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdJbXBsLmg+CiAKKyNpbmNsdWRlIDxQYXNzUmVmUHRyLmg+CisKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0gICAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhcios
IGludCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOworICAgIGludCBuZXh0
QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIGJy
ZWFrTkJTUCA9IGZhbHNlLCAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiAgb3JpZ1R4dD1OVUxMKTsK
IAotICAgIGlubGluZSBib29sIGlzQnJlYWthYmxlKGNvbnN0IFVDaGFyKiBzdHIsIGludCBwb3Ms
IGludCBsZW4sIGludCYgbmV4dEJyZWFrYWJsZSwgYm9vbCBicmVha05CU1AgPSBmYWxzZSkKKyAg
ICBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQg
bGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UsIFBhc3NSZWZQ
dHI8U3RyaW5nSW1wbD4gb3JpZ1R4dD1OVUxMKQogICAgIHsKICAgICAgICAgaWYgKHBvcyA+IG5l
eHRCcmVha2FibGUpCi0gICAgICAgICAgICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFrYWJsZVBv
c2l0aW9uKHN0ciwgcG9zLCBsZW4sIGJyZWFrTkJTUCk7CisgICAgICAgICAgICBuZXh0QnJlYWth
YmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uKHN0ciwgcG9zLCBsZW4sIGJyZWFrTkJTUCwgb3Jp
Z1R4dCk7CiAgICAgICAgIHJldHVybiBwb3MgPT0gbmV4dEJyZWFrYWJsZTsKICAgICB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCShyZXZpc2lvbiA3ODEyNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQ5LDEwICsxNjQ5LDEx
IEBACiAgICAgICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSB0LT5zdHlsZShmaXJzdExpbmUp
OwogICAgICAgICAgICAgaWYgKHN0eWxlLT5oYXNUZXh0Q29tYmluZSgpKQogICAgICAgICAgICAg
ICAgIHRvUmVuZGVyQ29tYmluZVRleHQobyktPmNvbWJpbmVUZXh0KCk7Ci0KKyAgICAgICAgICAg
IAogICAgICAgICAgICAgaW50IHN0cmxlbiA9IHQtPnRleHRMZW5ndGgoKTsKICAgICAgICAgICAg
IGludCBsZW4gPSBzdHJsZW4gLSBwb3M7CiAgICAgICAgICAgICBjb25zdCBVQ2hhciogc3RyID0g
dC0+Y2hhcmFjdGVycygpOworICAgICAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdUeHQg
PSB0LT5vcmlnaW5hbFRleHQoKTsKIAogICAgICAgICAgICAgY29uc3QgRm9udCYgZiA9IHN0eWxl
LT5mb250KCk7CiAgICAgICAgICAgICBib29sIGlzRml4ZWRQaXRjaCA9IGYuaXNGaXhlZFBpdGNo
KCk7CkBAIC0xNzIyLDcgKzE3MjMsNyBAQAogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJl
YWsgPSB3ICsgd3JhcFcgKyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldT
ICE9IFBSRSAmJiAhYXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0
QnJlYWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25l
IHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAgICAg
ICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJXUyAhPSBQUkUgJiYgIWF0
U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBwb3MsIHN0cmxlbiwgbmV4dEJyZWFrYWJsZSwgYnJl
YWtOQlNQLCBvcmlnVHh0KSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAo
cG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOwogCiAgICAgICAgICAgICAgICAg
aWYgKGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBmYWxzZTsK
</data>
<flag name="review"
          id="73974"
          type_id="1"
          status="-"
          setter="menard"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>82322</attachid>
            <date>2011-02-14 08:59:07 -0800</date>
            <delta_ts>2011-02-14 08:59:07 -0800</delta_ts>
            <desc>one big &lt;div&gt; block</desc>
            <filename>wordy.html</filename>
            <type>text/html</type>
            <size>125389</size>
            <attacher name="chris reiss">christopher.reiss</attacher>
            
              <data encoding="base64">PGh0bWw+CjxkaXY+CldvcmxkIFdhciBJSSwgb3IgdGhlIFNlY29uZCBXb3JsZCBXYXJbMV0gKG9m
dGVuIGFiYnJldmlhdGVkIGFzIFdXSUkgb3IgV1cyKSwgd2FzIGEgZ2xvYmFsIG1pbGl0YXJ5IGNv
bmZsaWN0IGxhc3RpbmcgZnJvbSAxOTM5IHRvIDE5NDUsIHdoaWNoIGludm9sdmVkIG1vc3Qgb2Yg
dGhlIHdvcmxkJ3MgbmF0aW9ucywgaW5jbHVkaW5nIGFsbCBvZiB0aGUgZ3JlYXQgcG93ZXJzOiBl
dmVudHVhbGx5IGZvcm1pbmcgdHdvIG9wcG9zaW5nIG1pbGl0YXJ5IGFsbGlhbmNlcywgdGhlIEFs
bGllcyBhbmQgdGhlIEF4aXMuIEl0IHdhcyB0aGUgbW9zdCB3aWRlc3ByZWFkIHdhciBpbiBoaXN0
b3J5LCB3aXRoIG1vcmUgdGhhbiAxMDAgbWlsbGlvbiBtaWxpdGFyeSBwZXJzb25uZWwgbW9iaWxp
c2VkLiBJbiBhIHN0YXRlIG9mICJ0b3RhbCB3YXIsIiB0aGUgbWFqb3IgcGFydGljaXBhbnRzIHBs
YWNlZCB0aGVpciBlbnRpcmUgZWNvbm9taWMsIGluZHVzdHJpYWwsIGFuZCBzY2llbnRpZmljIGNh
cGFiaWxpdGllcyBhdCB0aGUgc2VydmljZSBvZiB0aGUgd2FyIGVmZm9ydCwgZXJhc2luZyB0aGUg
ZGlzdGluY3Rpb24gYmV0d2VlbiBjaXZpbGlhbiBhbmQgbWlsaXRhcnkgcmVzb3VyY2VzLiBNYXJr
ZWQgYnkgc2lnbmlmaWNhbnQgZXZlbnRzIGludm9sdmluZyB0aGUgbWFzcyBkZWF0aCBvZiBjaXZp
bGlhbnMsIGluY2x1ZGluZyB0aGUgSG9sb2NhdXN0IGFuZCB0aGUgb25seSB1c2Ugb2YgbnVjbGVh
ciB3ZWFwb25zIGluIHdhcmZhcmUsIGl0IHdhcyB0aGUgZGVhZGxpZXN0IGNvbmZsaWN0IGluIGh1
bWFuIGhpc3RvcnksWzJdIHJlc3VsdGluZyBpbiA1MCBtaWxsaW9uIHRvIG92ZXIgNzAgbWlsbGlv
biBmYXRhbGl0aWVzLgpUaGUgd2FyIGlzIGdlbmVyYWxseSBhY2NlcHRlZCB0byBoYXZlIGJlZ3Vu
IG9uIDEgU2VwdGVtYmVyIDE5MzksIHdpdGggdGhlIGludmFzaW9uIG9mIFBvbGFuZCBieSBHZXJt
YW55IGFuZCBTbG92YWtpYSwgYW5kIHN1YnNlcXVlbnQgZGVjbGFyYXRpb25zIG9mIHdhciBvbiBH
ZXJtYW55IGJ5IEZyYW5jZSBhbmQgbW9zdCBvZiB0aGUgY291bnRyaWVzIG9mIHRoZSBCcml0aXNo
IEVtcGlyZSBhbmQgQ29tbW9ud2VhbHRoLiBHZXJtYW55IHNldCBvdXQgdG8gZXN0YWJsaXNoIGEg
bGFyZ2UgZW1waXJlIGluIEV1cm9wZS4gRnJvbSBsYXRlIDE5MzkgdG8gZWFybHkgMTk0MSwgaW4g
YSBzZXJpZXMgb2YgY2FtcGFpZ25zIGFuZCB0cmVhdGllcywgR2VybWFueSBjb25xdWVyZWQgb3Ig
c3ViZHVlZCBtdWNoIG9mIGNvbnRpbmVudGFsIEV1cm9wZTsgYW1pZCBOYXppLVNvdmlldCBhZ3Jl
ZW1lbnRzLCB0aGUgbm9taW5hbGx5IG5ldXRyYWwgU292aWV0IFVuaW9uIGZ1bGx5IG9yIHBhcnRp
YWxseSBvY2N1cGllZCBhbmQgYW5uZXhlZCB0ZXJyaXRvcmllcyBvZiBpdHMgc2l4IEV1cm9wZWFu
IG5laWdoYm91cnMuIEJyaXRhaW4gYW5kIHRoZSBDb21tb253ZWFsdGggcmVtYWluZWQgdGhlIG9u
bHkgbWFqb3IgZm9yY2UgY29udGludWluZyB0aGUgZmlnaHQgYWdhaW5zdCB0aGUgQXhpcyBpbiBO
b3J0aCBBZnJpY2EgYW5kIGluIGV4dGVuc2l2ZSBuYXZhbCB3YXJmYXJlLiBJbiBKdW5lIDE5NDEs
IHRoZSBFdXJvcGVhbiBBeGlzIGxhdW5jaGVkIGFuIGludmFzaW9uIG9mIHRoZSBTb3ZpZXQgVW5p
b24sIGdpdmluZyBhIHN0YXJ0IHRvIHRoZSBsYXJnZXN0IGxhbmQgdGhlYXRyZSBvZiB3YXIgaW4g
aGlzdG9yeSwgd2hpY2gsIGZyb20gdGhpcyBtb21lbnQgb24sIHdhcyB0eWluZyBkb3duIHRoZSBt
YWpvciBwYXJ0IG9mIHRoZSBBeGlzIG1pbGl0YXJ5IHBvd2VyLiBJbiBEZWNlbWJlciAxOTQxLCBK
YXBhbiwgd2hpY2ggaGFkIGJlZW4gYXQgd2FyIHdpdGggQ2hpbmEgc2luY2UgMTkzNyxbM10gYW5k
IGFpbWVkIHRvIGRvbWluYXRlIEFzaWEsIGF0dGFja2VkIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBF
dXJvcGVhbiBwb3NzZXNzaW9ucyBpbiB0aGUgUGFjaWZpYyBPY2VhbiwgcXVpY2tseSBjb25xdWVy
aW5nIG11Y2ggb2YgdGhlIHJlZ2lvbi4KVGhlIEF4aXMgYWR2YW5jZSB3YXMgc3RvcHBlZCBpbiAx
OTQyIGFmdGVyIHRoZSBkZWZlYXQgb2YgSmFwYW4gaW4gYSBzZXJpZXMgb2YgbmF2YWwgYmF0dGxl
cyBhbmQgYWZ0ZXIgZGVmZWF0cyBvZiBFdXJvcGVhbiBBeGlzIHRyb29wcyBpbiBOb3J0aCBBZnJp
Y2EgYW5kLCBkZWNpc2l2ZWx5LCBhdCBTdGFsaW5ncmFkLiBJbiAxOTQzLCB3aXRoIGEgc2VyaWVz
IG9mIEdlcm1hbiBkZWZlYXRzIGluIEVhc3Rlcm4gRXVyb3BlLCB0aGUgQWxsaWVkIGludmFzaW9u
IG9mIEZhc2Npc3QgSXRhbHksIGFuZCBBbWVyaWNhbiB2aWN0b3JpZXMgaW4gdGhlIFBhY2lmaWMs
IHRoZSBBeGlzIGxvc3QgdGhlIGluaXRpYXRpdmUgYW5kIHVuZGVydG9vayBzdHJhdGVnaWMgcmV0
cmVhdCBvbiBhbGwgZnJvbnRzLiBJbiAxOTQ0LCB0aGUgV2VzdGVybiBBbGxpZXMgaW52YWRlZCBG
cmFuY2UsIHdoaWxlIHRoZSBTb3ZpZXQgVW5pb24gcmVnYWluZWQgYWxsIHRlcnJpdG9yaWFsIGxv
c3NlcyBhbmQgaW52YWRlZCBHZXJtYW55IGFuZCBpdHMgYWxsaWVzLgpUaGUgd2FyIGluIEV1cm9w
ZSBlbmRlZCB3aXRoIHRoZSBjYXB0dXJlIG9mIEJlcmxpbiBieSBTb3ZpZXQgdHJvb3BzIGFuZCBz
dWJzZXF1ZW50IEdlcm1hbiB1bmNvbmRpdGlvbmFsIHN1cnJlbmRlciBvbiA4IE1heSAxOTQ1LiBU
aGUgSmFwYW5lc2UgTmF2eSB3YXMgZGVmZWF0ZWQgYnkgdGhlIFVuaXRlZCBTdGF0ZXMsIGFuZCBp
bnZhc2lvbiBvZiB0aGUgSmFwYW5lc2UgQXJjaGlwZWxhZ28gKCJIb21lIElzbGFuZHMiKSBiZWNh
bWUgaW1taW5lbnQuClRoZSB3YXIgZW5kZWQgd2l0aCB0aGUgdG90YWwgdmljdG9yeSBvZiB0aGUg
QWxsaWVzIG92ZXIgR2VybWFueSBhbmQgSmFwYW4gaW4gMTk0NS4gV29ybGQgV2FyIElJIGFsdGVy
ZWQgdGhlIHBvbGl0aWNhbCBhbGlnbm1lbnQgYW5kIHNvY2lhbCBzdHJ1Y3R1cmUgb2YgdGhlIHdv
cmxkLiBUaGUgVW5pdGVkIE5hdGlvbnMgKFVOKSB3YXMgZXN0YWJsaXNoZWQgdG8gZm9zdGVyIGlu
dGVybmF0aW9uYWwgY29vcGVyYXRpb24gYW5kIHByZXZlbnQgZnV0dXJlIGNvbmZsaWN0cyAoc3Vj
aCBhcyBXb3JsZCBXYXIgSUlJKS4gVGhlIFNvdmlldCBVbmlvbiBhbmQgdGhlIFVuaXRlZCBTdGF0
ZXMgZW1lcmdlZCBhcyByaXZhbCBzdXBlcnBvd2Vycywgc2V0dGluZyB0aGUgc3RhZ2UgZm9yIHRo
ZSBDb2xkIFdhciwgd2hpY2ggd291bGQgbGFzdCBmb3IgdGhlIG5leHQgNDYgeWVhcnMuIE1lYW53
aGlsZSwgdGhlIGluZmx1ZW5jZSBvZiBFdXJvcGVhbiBncmVhdCBwb3dlcnMgc3RhcnRlZCB0byBk
ZWNsaW5lLCB3aGlsZSB0aGUgZGVjb2xvbml6YXRpb24gb2YgQXNpYSBhbmQgQWZyaWNhIGJlZ2Fu
LiBNb3N0IGNvdW50cmllcyB3aG9zZSBpbmR1c3RyaWVzIGhhZCBiZWVuIGRhbWFnZWQgbW92ZWQg
dG93YXJkcyBlY29ub21pYyByZWNvdmVyeS4gUG9saXRpY2FsIGludGVncmF0aW9uIGVtZXJnZWQg
YXMgYW4gZWZmb3J0IHRvIHN0YWJpbGlzZSBwb3N0d2FyIHJlbGF0aW9ucy4KQ29udGVudHMgW2hp
ZGVdCjEgQ2hyb25vbG9neQoyIEJhY2tncm91bmQKMyBQcmUtd2FyIGV2ZW50cwozLjEgSW52YXNp
b24gb2YgRXRoaW9waWEKMy4yIFNwYW5pc2ggQ2l2aWwgV2FyCjMuMyBKYXBhbmVzZSBpbnZhc2lv
biBvZiBDaGluYQozLjQgSmFwYW5lc2UgaW52YXNpb24gb2YgdGhlIFNvdmlldCBVbmlvbiBhbmQg
TW9uZ29saWEKMy41IEV1cm9wZWFuIG9jY3VwYXRpb25zIGFuZCBhZ3JlZW1lbnRzCjQgQ291cnNl
IG9mIHRoZSB3YXIKNC4xIFdhciBicmVha3Mgb3V0IGluIEV1cm9wZQo0LjIgQXhpcyBhZHZhbmNl
cwo0LjMgVGhlIHdhciBiZWNvbWVzIGdsb2JhbAo0LjQgQXhpcyBhZHZhbmNlIHN0YWxscwo0LjUg
QWxsaWVzIGdhaW4gbW9tZW50dW0KNC42IEFsbGllcyBjbG9zZSBpbgo0LjcgQXhpcyBjb2xsYXBz
ZSwgQWxsaWVkIHZpY3RvcnkKNSBBZnRlcm1hdGgKNiBJbXBhY3QKNi4xIENhc3VhbHRpZXMgYW5k
IHdhciBjcmltZXMKNi4yIENvbmNlbnRyYXRpb24gY2FtcHMgYW5kIHNsYXZlIHdvcmsKNi4zIEhv
bWUgZnJvbnRzIGFuZCBwcm9kdWN0aW9uCjYuNCBPY2N1cGF0aW9uCjYuNSBBZHZhbmNlcyBpbiB0
ZWNobm9sb2d5IGFuZCB3YXJmYXJlCjcgU2VlIGFsc28KOCBOb3Rlcwo5IFJlZmVyZW5jZXMKMTAg
RXh0ZXJuYWwgbGlua3MKQ2hyb25vbG9neQoKU2VlIGFsc286IFRpbWVsaW5lIG9mIFdvcmxkIFdh
ciBJSQpUaGUgc3RhcnQgb2YgdGhlIHdhciBpcyBnZW5lcmFsbHkgaGVsZCB0byBiZSAxIFNlcHRl
bWJlciAxOTM5LCBiZWdpbm5pbmcgd2l0aCB0aGUgR2VybWFuIGludmFzaW9uIG9mIFBvbGFuZDsg
QnJpdGFpbiBhbmQgRnJhbmNlIGRlY2xhcmVkIHdhciBvbiBHZXJtYW55IHR3byBkYXlzIGxhdGVy
LiBPdGhlciBkYXRlcyBmb3IgdGhlIGJlZ2lubmluZyBvZiB3YXIgaW5jbHVkZSB0aGUgSmFwYW5l
c2UgaW52YXNpb24gb2YgTWFuY2h1cmlhIG9uIDEzIFNlcHRlbWJlciAxOTMxO1s0XSB0aGUgc3Rh
cnQgb2YgdGhlIFNlY29uZCBTaW5vLUphcGFuZXNlIFdhciBvbiA3IEp1bHkgMTkzNzsuWzVdWzZd
Ck90aGVycyBmb2xsb3cgQS4gSi4gUC4gVGF5bG9yLCB3aG8gaGVsZCB0aGF0IHRoZXJlIHdhcyBh
IHNpbXVsdGFuZW91cyBTaW5vLUphcGFuZXNlIFdhciBpbiBFYXN0IEFzaWEsIGFuZCBhIFNlY29u
ZCBFdXJvcGVhbiBXYXIgaW4gRXVyb3BlIGFuZCBoZXIgY29sb25pZXMuIFRoZSB0d28gd2FycyBt
ZXJnZWQgaW4gMTk0MSwgYmVjb21pbmcgYSBzaW5nbGUgZ2xvYmFsIGNvbmZsaWN0LCBhdCB3aGlj
aCBwb2ludCB0aGUgd2FyIGNvbnRpbnVlZCB1bnRpbCAxOTQ1LiBUaGlzIGFydGljbGUgdXNlcyB0
aGUgY29udmVudGlvbmFsIGRhdGluZy5bN10KVGhlIGV4YWN0IGRhdGUgb2YgdGhlIHdhcidzIGVu
ZCBpcyBub3QgdW5pdmVyc2FsbHkgYWdyZWVkIHVwb24uIEl0IGhhcyBiZWVuIHN1Z2dlc3RlZCB0
aGF0IHRoZSB3YXIgZW5kZWQgYXQgdGhlIGFybWlzdGljZSBvZiAxNCBBdWd1c3QgMTk0NSAoVi1K
IERheSksIHJhdGhlciB0aGFuIHRoZSBmb3JtYWwgc3VycmVuZGVyIG9mIEphcGFuICgyIFNlcHRl
bWJlciAxOTQ1KTsgaW4gc29tZSBFdXJvcGVhbiBoaXN0b3JpZXMsIGl0IGVuZGVkIG9uIFYtRSBE
YXkgKDggTWF5IDE5NDUpLiBUaGUgVHJlYXR5IG9mIFBlYWNlIHdpdGggSmFwYW4gd2FzIG5vdCBz
aWduZWQgdW50aWwgMTk1MS5bOF0KQmFja2dyb3VuZAoKTWFpbiBhcnRpY2xlOiBDYXVzZXMgb2Yg
V29ybGQgV2FyIElJCldvcmxkIFdhciBJIHJhZGljYWxseSBhbHRlcmVkIHRoZSBkaXBsb21hdGlj
IGFuZCBwb2xpdGljYWwgc2l0dWF0aW9ucyBpbiBFdXJhc2lhIGFuZCBBZnJpY2EsIHdpdGggdGhl
IGRlZmVhdCBvZiB0aGUgQ2VudHJhbCBQb3dlcnMsIGluY2x1ZGluZyBBdXN0cmlhLUh1bmdhcnks
IEdlcm1hbnksIGFuZCB0aGUgT3R0b21hbiBFbXBpcmU7IGFuZCB0aGUgMTkxNyBCb2xzaGV2aWsg
c2VpenVyZSBvZiBwb3dlciBpbiBSdXNzaWEuIE1lYW53aGlsZSwgdGhlIHN1Y2Nlc3Mgb2YgdGhl
IEFsbGllZCBFbnRlbnRlIHBvd2VycyBpbmNsdWRpbmcgdGhlIFVuaXRlZCBLaW5nZG9tLCBGcmFu
Y2UsIHRoZSBVbml0ZWQgU3RhdGVzLCBJdGFseSwgU2VyYmlhLCBhbmQgUm9tYW5pYSwgYW5kIHRo
ZSBjcmVhdGlvbiBvZiBuZXcgc3RhdGVzIGZyb20gdGhlIGNvbGxhcHNlIG9mIEF1c3RyaWEtSHVu
Z2FyeSBhbmQgdGhlIFJ1c3NpYW4gRW1waXJlLCByZXN1bHRlZCBpbiBmdW5kYW1lbnRhbCBjaGFu
Z2VzIHRvIHRoZSBtYXAgb2YgRWFzdGVybiBFdXJvcGUuIEluIHRoZSBhZnRlcm1hdGggb2YgdGhl
IHdhciwgbWFqb3IgdW5yZXN0IGluIEV1cm9wZSByb3NlLCBlc3BlY2lhbGx5IGlycmVkZW50aXN0
IGFuZCByZXZhbmNoaXN0IG5hdGlvbmFsaXNtIGFuZCBjbGFzcyBjb25mbGljdC4gSXJyZWRlbnRp
c20gYW5kIHJldmFuY2hpc20gd2VyZSBzdHJvbmcgaW4gR2VybWFueSBiZWNhdXNlIHNoZSB3YXMg
Zm9yY2VkIHRvIGFjY2VwdCBzaWduaWZpY2FudCB0ZXJyaXRvcmlhbCwgY29sb25pYWwsIGFuZCBm
aW5hbmNpYWwgbG9zc2VzIGFzIHBhcnQgb2YgdGhlIFRyZWF0eSBvZiBWZXJzYWlsbGVzLiBVbmRl
ciB0aGUgdHJlYXR5LCBHZXJtYW55IGxvc3QgYXJvdW5kIDEzIHBlcmNlbnQgb2YgaXRzIGhvbWUg
dGVycml0b3J5IGFuZCBhbGwgb2YgaXRzIG92ZXJzZWFzIGNvbG9uaWVzLCB3aGlsZSBHZXJtYW4g
YW5uZXhhdGlvbiBvZiBvdGhlciBzdGF0ZXMgd2FzIHByb2hpYml0ZWQsIG1hc3NpdmUgcmVwYXJh
dGlvbnMgd2VyZSBpbXBvc2VkLCBhbmQgbGltaXRzIHdlcmUgcGxhY2VkIG9uIHRoZSBzaXplIGFu
ZCBjYXBhYmlsaXR5IG9mIEdlcm1hbnkncyBhcm1lZCBmb3JjZXMuWzldIE1lYW53aGlsZSwgdGhl
IFJ1c3NpYW4gQ2l2aWwgV2FyIGhhZCBsZWQgdG8gdGhlIGNyZWF0aW9uIG9mIHRoZSBTb3ZpZXQg
VW5pb24uIEFmdGVyIExlbmluJ3MgZGVhdGggaW4gMTkyNCwgSm9zZXBoIFN0YWxpbiBzZWl6ZWQg
cG93ZXIgaW4gdGhlIFVTU1IgYW5kIHJlcHVkaWF0ZWQgdGhlIE5ldyBFY29ub21pYyBQb2xpY3kg
ZmF2b3VyaW5nIHRoZSBGaXZlIFllYXIgUGxhbnMgaW5zdGVhZC5bMTBdCkluIHRoZSBpbnRlcndh
ciBwZXJpb2QsIGRvbWVzdGljIGNpdmlsIGNvbmZsaWN0IG9jY3VycmVkIGluIEdlcm1hbnkgaW52
b2x2aW5nIG5hdGlvbmFsaXN0cyBhbmQgcmVhY3Rpb25hcmllcyB2ZXJzdXMgY29tbXVuaXN0cyBh
bmQgbW9kZXJhdGUgZGVtb2NyYXRpYyBwb2xpdGljYWwgcGFydGllcy4gQSBzaW1pbGFyIHNjZW5h
cmlvIG9jY3VycmVkIGluIEl0YWx5LiBBbHRob3VnaCBJdGFseSBhcyBhbiBFbnRlbnRlIGFsbHkg
bWFkZSBzb21lIHRlcnJpdG9yaWFsIGdhaW5zLCBJdGFsaWFuIG5hdGlvbmFsaXN0cyB3ZXJlIGFu
Z2VyZWQgdGhhdCB0aGUgdGVybXMgb2YgdGhlIFRyZWF0eSBvZiBMb25kb24gdXBvbiB3aGljaCBJ
dGFseSBoYWQgYWdyZWVkIHRvIHdhZ2Ugd2FyIG9uIHRoZSBDZW50cmFsIFBvd2Vycywgd2VyZSBu
b3QgZnVsZmlsbGVkIHdpdGggdGhlIHBlYWNlIHNldHRsZW1lbnQuIEZyb20gMTkyMiB0byAxOTI1
LCB0aGUgSXRhbGlhbiBGYXNjaXN0IG1vdmVtZW50IGxlZCBieSBCZW5pdG8gTXVzc29saW5pIHNl
aXplZCBwb3dlciBpbiBJdGFseSB3aXRoIGEgbmF0aW9uYWxpc3QsIHRvdGFsaXRhcmlhbiwgYW5k
IGNsYXNzIGNvbGxhYm9yYXRpb25pc3QgYWdlbmRhIHRoYXQgYWJvbGlzaGVkIHJlcHJlc2VudGF0
aXZlIGRlbW9jcmFjeSwgcmVwcmVzc2VkIHBvbGl0aWNhbCBmb3JjZXMgc3VwcG9ydGluZyBjbGFz
cyBjb25mbGljdCBvciBsaWJlcmFsaXNtLCBhbmQgcHVyc3VlZCBhbiBhZ2dyZXNzaXZlIGZvcmVp
Z24gcG9saWN5IGFpbWVkIGF0IGZvcmNlZnVsbHkgZm9yZ2luZyBJdGFseSBhcyBhIHdvcmxkIHBv
d2VyLCBhbmQgcHJvbWlzaW5nIHRvIGNyZWF0ZSBhICJOZXcgUm9tYW4gRW1waXJlLiJbMTFdIElu
IEdlcm1hbnksIHRoZSBOYXppIFBhcnR5IGxlZCBieSBBZG9sZiBIaXRsZXIgcHVyc3VlZCBlc3Rh
Ymxpc2hpbmcgc3VjaCBhIGZhc2Npc3QgZ292ZXJubWVudCBpbiBHZXJtYW55LiBXaXRoIHRoZSBv
bnNldCBvZiB0aGUgR3JlYXQgRGVwcmVzc2lvbiwgTmF6aSBzdXBwb3J0IHJvc2UgYW5kLCBpbiAx
OTMzLCBIaXRsZXIgd2FzIGFwcG9pbnRlZCBDaGFuY2VsbG9yIG9mIEdlcm1hbnksIGFuZCBpbiB0
aGUgYWZ0ZXJtYXRoIG9mIHRoZSBSZWljaHN0YWcgZmlyZSwgSGl0bGVyIGNyZWF0ZWQgYSB0b3Rh
bGl0YXJpYW4gc2luZ2xlLXBhcnR5IHN0YXRlIGxlZCBieSB0aGUgTmF6aXMuWzEyXQpUaGUgS3Vv
bWludGFuZyAoS01UKSBwYXJ0eSBpbiBDaGluYSBsYXVuY2hlZCBhIHVuaWZpY2F0aW9uIGNhbXBh
aWduIGFnYWluc3QgcmVnaW9uYWwgd2FybG9yZHMgYW5kIG5vbWluYWxseSB1bmlmaWVkIENoaW5h
IGluIHRoZSBtaWQtMTkyMHMsIGJ1dCB3YXMgc29vbiBlbWJyb2lsZWQgaW4gYSBjaXZpbCB3YXIg
YWdhaW5zdCBpdHMgZm9ybWVyIENoaW5lc2UgY29tbXVuaXN0IGFsbGllcy5bMTNdIEluIDE5MzEs
IGFuIGluY3JlYXNpbmdseSBtaWxpdGFyaXN0aWMgSmFwYW5lc2UgRW1waXJlLCB3aGljaCBoYWQg
bG9uZyBzb3VnaHQgaW5mbHVlbmNlIGluIENoaW5hWzE0XSBhcyB0aGUgZmlyc3Qgc3RlcCBvZiBp
dHMgcmlnaHQgdG8gcnVsZSBBc2lhLCB1c2VkIHRoZSBNdWtkZW4gSW5jaWRlbnQgYXMganVzdGlm
aWNhdGlvbiB0byBpbnZhZGUgTWFuY2h1cmlhIGFuZCBlc3RhYmxpc2hlZCB0aGUgcHVwcGV0IHN0
YXRlIG9mIE1hbmNodWt1by5bMTVdIFRvbyB3ZWFrIHRvIHJlc2lzdCBKYXBhbiwgQ2hpbmEgYXBw
ZWFsZWQgdG8gdGhlIExlYWd1ZSBvZiBOYXRpb25zIGZvciBoZWxwLiBKYXBhbiB3aXRoZHJldyBm
cm9tIHRoZSBMZWFndWUgb2YgTmF0aW9ucyBhZnRlciBiZWluZyBjb25kZW1uZWQgZm9yIGl0cyBp
bmN1cnNpb24gaW50byBNYW5jaHVyaWEuIFRoZSB0d28gbmF0aW9ucyB0aGVuIGZvdWdodCBzZXZl
cmFsIG1pbm9yIGNvbmZsaWN0cywgaW4gU2hhbmdoYWksIFJlaGUgYW5kIEhlYmVpLCB1bnRpbCBz
aWduaW5nIHRoZSBUYW5nZ3UgVHJ1Y2UgaW4gMTkzMy4gVGhlcmVhZnRlciwgQ2hpbmVzZSB2b2x1
bnRlZXIgZm9yY2VzIGNvbnRpbnVlZCB0aGUgcmVzaXN0YW5jZSB0byBKYXBhbmVzZSBhZ2dyZXNz
aW9uIGluIE1hbmNodXJpYSwgYW5kIENoYWhhciBhbmQgU3VpeXVhbi5bMTZdCgoKQmVuaXRvIE11
c3NvbGluaSAobGVmdCkgYW5kIEFkb2xmIEhpdGxlciAocmlnaHQpCkFkb2xmIEhpdGxlciwgYWZ0
ZXIgYW4gdW5zdWNjZXNzZnVsIGF0dGVtcHQgdG8gb3ZlcnRocm93IHRoZSBHZXJtYW4gZ292ZXJu
bWVudCBpbiAxOTIzLCBiZWNhbWUgdGhlIENoYW5jZWxsb3Igb2YgR2VybWFueSBpbiAxOTMzLiBI
ZSBhYm9saXNoZWQgZGVtb2NyYWN5LCBlc3BvdXNpbmcgYSByYWRpY2FsLCByYWNpYWxseSBtb3Rp
dmF0ZWQgcmV2aXNpb24gb2YgdGhlIHdvcmxkIG9yZGVyLCBhbmQgc29vbiBiZWdhbiBhIG1hc3Np
dmUgcmVhcm1hbWVudCBjYW1wYWlnbi5bMTddIE1lYW53aGlsZSwgRnJhbmNlLCB0byBzZWN1cmUg
aXRzIGFsbGlhbmNlLCBhbGxvd2VkIEl0YWx5IGEgZnJlZSBoYW5kIGluIEV0aGlvcGlhLCB3aGlj
aCBJdGFseSBkZXNpcmVkIGFzIGEgY29sb25pYWwgcG9zc2Vzc2lvbi4gVGhlIHNpdHVhdGlvbiB3
YXMgYWdncmF2YXRlZCBpbiBlYXJseSAxOTM1IHdoZW4gdGhlIFRlcnJpdG9yeSBvZiB0aGUgU2Fh
ciBCYXNpbiB3YXMgbGVnYWxseSByZXVuaXRlZCB3aXRoIEdlcm1hbnkgYW5kIEhpdGxlciByZXB1
ZGlhdGVkIHRoZSBUcmVhdHkgb2YgVmVyc2FpbGxlcywgc3BlZWRpbmcgdXAgaGlzIHJlYXJtYW1l
bnQgcHJvZ3JhbW1lIGFuZCBpbnRyb2R1Y2luZyBjb25zY3JpcHRpb24uWzE4XQpIb3BpbmcgdG8g
Y29udGFpbiBHZXJtYW55LCB0aGUgVW5pdGVkIEtpbmdkb20sIEZyYW5jZSBhbmQgSXRhbHkgZm9y
bWVkIHRoZSBTdHJlc2EgRnJvbnQuIFRoZSBTb3ZpZXQgVW5pb24sIGNvbmNlcm5lZCBkdWUgdG8g
R2VybWFueSdzIGdvYWxzIG9mIGNhcHR1cmluZyB2YXN0IGFyZWFzIG9mIGVhc3Rlcm4gRXVyb3Bl
LCB3cm90ZSBhIHRyZWF0eSBvZiBtdXR1YWwgYXNzaXN0YW5jZSB3aXRoIEZyYW5jZS4gQmVmb3Jl
IHRha2luZyBlZmZlY3QgdGhvdWdoLCB0aGUgRnJhbmNvLVNvdmlldCBwYWN0IHdhcyByZXF1aXJl
ZCB0byBnbyB0aHJvdWdoIHRoZSBidXJlYXVjcmFjeSBvZiB0aGUgTGVhZ3VlIG9mIE5hdGlvbnMs
IHdoaWNoIHJlbmRlcmVkIGl0IGVzc2VudGlhbGx5IHRvb3RobGVzcy5bMTldWzIwXSBIb3dldmVy
LCBpbiBKdW5lIDE5MzUsIHRoZSBVbml0ZWQgS2luZ2RvbSBtYWRlIGFuIGluZGVwZW5kZW50IG5h
dmFsIGFncmVlbWVudCB3aXRoIEdlcm1hbnksIGVhc2luZyBwcmlvciByZXN0cmljdGlvbnMuIFRo
ZSBVbml0ZWQgU3RhdGVzLCBjb25jZXJuZWQgd2l0aCBldmVudHMgaW4gRXVyb3BlIGFuZCBBc2lh
LCBwYXNzZWQgdGhlIE5ldXRyYWxpdHkgQWN0IGluIEF1Z3VzdC5bMjFdIEluIE9jdG9iZXIsIEl0
YWx5IGludmFkZWQgRXRoaW9waWEsIHdpdGggR2VybWFueSB0aGUgb25seSBtYWpvciBFdXJvcGVh
biBuYXRpb24gc3VwcG9ydGluZyB0aGUgaW52YXNpb24uIEl0YWx5IHRoZW4gcmV2b2tlZCBvYmpl
Y3Rpb25zIHRvIEdlcm1hbnkncyBnb2FsIG9mIGFic29yYmluZyBBdXN0cmlhLlsyMl0KSGl0bGVy
IGRlZmllZCB0aGUgVmVyc2FpbGxlcyBhbmQgTG9jYXJubyB0cmVhdGllcyBieSByZW1pbGl0YXJp
emluZyB0aGUgUmhpbmVsYW5kIGluIE1hcmNoIDE5MzYuIEhlIHJlY2VpdmVkIGxpdHRsZSByZXNw
b25zZSBmcm9tIG90aGVyIEV1cm9wZWFuIHBvd2Vycy5bMjNdIFdoZW4gdGhlIFNwYW5pc2ggQ2l2
aWwgV2FyIGJyb2tlIG91dCBpbiBKdWx5LCBIaXRsZXIgYW5kIE11c3NvbGluaSBzdXBwb3J0ZWQg
ZmFzY2lzdCBHZW5lcmFsaXNzaW1vIEZyYW5jaXNjbyBGcmFuY28ncyBuYXRpb25hbGlzdCBmb3Jj
ZXMgaW4gaGlzIGNpdmlsIHdhciBhZ2FpbnN0IHRoZSBTb3ZpZXQtc3VwcG9ydGVkIFNwYW5pc2gg
UmVwdWJsaWMuIEJvdGggc2lkZXMgdXNlZCB0aGUgY29uZmxpY3QgdG8gdGVzdCBuZXcgd2VhcG9u
cyBhbmQgbWV0aG9kcyBvZiB3YXJmYXJlLFsyNF0gYW5kIHRoZSBuYXRpb25hbGlzdHMgd29uIHRo
ZSB3YXIgaW4gZWFybHkgMTkzOS4gTW91bnRpbmcgdGVuc2lvbnMgbGVkIHRvIHNldmVyYWwgZWZm
b3J0cyB0byBzdHJlbmd0aGVuIG9yIGNvbnNvbGlkYXRlIHBvd2VyLiBJbiBPY3RvYmVyIDE5MzYs
IEdlcm1hbnkgYW5kIEl0YWx5IGZvcm1lZCB0aGUgUm9tZS1CZXJsaW4gQXhpcy4gQSBtb250aCBs
YXRlciwgR2VybWFueSBhbmQgSmFwYW4gc2lnbmVkIHRoZSBBbnRpLUNvbWludGVybiBQYWN0LCB3
aGljaCBJdGFseSB3b3VsZCBqb2luIGluIHRoZSBmb2xsb3dpbmcgeWVhci4gSW4gQ2hpbmEsIGFm
dGVyIHRoZSBYaSdhbiBJbmNpZGVudCB0aGUgS3VvbWludGFuZyBhbmQgY29tbXVuaXN0IGZvcmNl
cyBhZ3JlZWQgb24gYSBjZWFzZWZpcmUgaW4gb3JkZXIgdG8gcHJlc2VudCBhIHVuaXRlZCBmcm9u
dCB0byBvcHBvc2UgSmFwYW4uWzI1XQpQcmUtd2FyIGV2ZW50cwoKSW52YXNpb24gb2YgRXRoaW9w
aWEKTWFpbiBhcnRpY2xlOiBTZWNvbmQgSXRhbG/igJNBYnlzc2luaWFuIFdhcgpUaGUgU2Vjb25k
IEl0YWxv4oCTQWJ5c3NpbmlhbiBXYXIgd2FzIGEgYnJpZWYgY29sb25pYWwgd2FyIHRoYXQgYmVn
YW4gaW4gT2N0b2JlciAxOTM1IGFuZCBlbmRlZCBpbiBNYXkgMTkzNi4gVGhlIHdhciB3YXMgZm91
Z2h0IGJldHdlZW4gdGhlIGFybWVkIGZvcmNlcyBvZiB0aGUgS2luZ2RvbSBvZiBJdGFseSAoUmVn
bm8gZCdJdGFsaWEpIGFuZCB0aGUgYXJtZWQgZm9yY2VzIG9mIHRoZSBFdGhpb3BpYW4gRW1waXJl
IChhbHNvIGtub3duIGFzIEFieXNzaW5pYSkuIFRoZSB3YXIgcmVzdWx0ZWQgaW4gdGhlIG1pbGl0
YXJ5IG9jY3VwYXRpb24gb2YgRXRoaW9waWEgYW5kIGl0cyBhbm5leGF0aW9uIGludG8gdGhlIG5l
d2x5IGNyZWF0ZWQgY29sb255IG9mIEl0YWxpYW4gRWFzdCBBZnJpY2EgKEFmcmljYSBPcmllbnRh
bGUgSXRhbGlhbmEsIG9yIEFPSSk7IGluIGFkZGl0aW9uLCBpdCBleHBvc2VkIHRoZSB3ZWFrbmVz
cyBvZiB0aGUgTGVhZ3VlIG9mIE5hdGlvbnMgYXMgYSBmb3JjZSB0byBwcmVzZXJ2ZSBwZWFjZS4g
Qm90aCBJdGFseSBhbmQgRXRoaW9waWEgd2VyZSBtZW1iZXIgbmF0aW9ucywgYnV0IHRoZSBMZWFn
dWUgZGlkIG5vdGhpbmcgd2hlbiB0aGUgZm9ybWVyIGNsZWFybHkgdmlvbGF0ZWQgdGhlIExlYWd1
ZSdzIG93biBBcnRpY2xlIFguWzI2XQpTcGFuaXNoIENpdmlsIFdhcgpNYWluIGFydGljbGU6IFNw
YW5pc2ggQ2l2aWwgV2FyCgoKVGhlIHJ1aW5zIG9mIEd1ZXJuaWNhIGFmdGVyIHRoZSBib21iaW5n
LgpHZXJtYW55IGFuZCBJdGFseSBsZW50IHN1cHBvcnQgdG8gdGhlIE5hdGlvbmFsaXN0IGluc3Vy
cmVjdGlvbiBsZWQgYnkgZ2VuZXJhbCBGcmFuY2lzY28gRnJhbmNvIGluIFNwYWluLiBUaGUgU292
aWV0IFVuaW9uIHN1cHBvcnRlZCB0aGUgZXhpc3RpbmcgZ292ZXJubWVudCwgdGhlIFNwYW5pc2gg
UmVwdWJsaWMgd2hpY2ggc2hvd2VkIGxlZnRpc3QgdGVuZGVuY2llcy4gQm90aCBzaWRlcyB1c2Vk
IHRoaXMgd2FyIGFzIGFuIG9wcG9ydHVuaXR5IHRvIHRlc3QgaW1wcm92ZWQgd2VhcG9ucyBhbmQg
dGFjdGljcy4gVGhlIEJvbWJpbmcgb2YgR3Vlcm5pY2EsIGEgY2l0eSBvZiA1MDAwIC0gNzAwMCBp
bmhhYml0YW50cywgd2FzIGNvbnNpZGVyZWQgYSBob3JyaWZ5aW5nIGF0dGFjayBhdCB0aGUgdGlt
ZSwgd2l0aCBhIHByb3BhZ2FuZGEgZmlndXJlIG9mIDEsNjU0IHBlb3BsZSBraWxsZWQgd2lkZWx5
IGNpcmN1bGF0ZWQgaW4gdGhlIHdlc3QsIGxlYWRpbmcgdG8gY2hhcmdlcyBvZiAidGVycm9yIGJv
bWJpbmciLlsyN10gSW4gcmVhbGl0eSB0aGUgYXR0YWNrIHdhcyB0YWN0aWNhbCBvcGVyYXRpb24g
YWdhaW5zdCBhIGNpdHkgd2l0aCBtaWxpdGFyaWx5IGltcG9ydGFudCBjb21tdW5pY2F0aW9ucyBj
bG9zZSB0byB0aGUgZnJvbnQtbGluZSwgYW5kIG1vZGVybiBlc3RpbWF0ZXMgeWllbGQgbm8gbW9y
ZSB0aGFuIDMwMCAtIDQwMCBkZWFkIGF0IHRoZSBoaWdoLWVuZC5bMjddWzI4XQpKYXBhbmVzZSBp
bnZhc2lvbiBvZiBDaGluYQpNYWluIGFydGljbGU6IFNlY29uZCBTaW5vLUphcGFuZXNlIFdhcgoK
CkEgQ2hpbmVzZSBtYWNoaW5lIGd1biBuZXN0IGluIHRoZSBCYXR0bGUgb2YgU2hhbmdoYWksIDE5
MzcuCkluIEp1bHkgMTkzNywgSmFwYW4gY2FwdHVyZWQgdGhlIGZvcm1lciBDaGluZXNlIGltcGVy
aWFsIGNhcGl0YWwgb2YgQmVpcGluZyBhZnRlciBpbnN0aWdhdGluZyB0aGUgTWFyY28gUG9sbyBC
cmlkZ2UgSW5jaWRlbnQsIHdoaWNoIGN1bG1pbmF0ZWQgaW4gdGhlIEphcGFuZXNlIGNhbXBhaWdu
IHRvIGludmFkZSBhbGwgb2YgQ2hpbmEuWzI5XSBUaGUgU292aWV0cyBxdWlja2x5IHNpZ25lZCBh
IG5vbi1hZ2dyZXNzaW9uIHBhY3Qgd2l0aCBDaGluYSB0byBsZW5kIG1hdGVyaWVsIHN1cHBvcnQs
IGVmZmVjdGl2ZWx5IGVuZGluZyBDaGluYSdzIHByaW9yIGNvb3BlcmF0aW9uIHdpdGggR2VybWFu
eS4gR2VuZXJhbGlzc2ltbyBDaGlhbmcgS2FpLXNoZWsgZGVwbG95ZWQgaGlzIGJlc3QgYXJteSB0
byBkZWZlbmQgU2hhbmdoYWksIGJ1dCBhZnRlciB0aHJlZSBtb250aHMgb2YgZmlnaHRpbmcsIFNo
YW5naGFpIGZlbGwuIFRoZSBKYXBhbmVzZSBjb250aW51ZWQgdG8gcHVzaCB0aGUgQ2hpbmVzZSBm
b3JjZXMgYmFjaywgY2FwdHVyaW5nIHRoZSBjYXBpdGFsIE5hbmppbmcgaW4gRGVjZW1iZXIgMTkz
NyBhbmQgY29tbWl0dGVkIHRoZSBOYW5raW5nIE1hc3NhY3JlLgpJbiBKdW5lIDE5MzgsIENoaW5l
c2UgZm9yY2VzIHN0YWxsZWQgdGhlIEphcGFuZXNlIGFkdmFuY2UgYnkgZmxvb2RpbmcgdGhlIFll
bGxvdyBSaXZlcjsgYWx0aG91Z2ggdGhpcyBtYW5vZXV2cmUgYm91Z2h0IHRpbWUgZm9yIHRoZSBD
aGluZXNlIHRvIHByZXBhcmUgdGhlaXIgZGVmZW5jZXMgYXQgV3VoYW4sIHRoZSBjaXR5IHdhcyB0
YWtlbiBieSBPY3RvYmVyLlszMF0gSmFwYW5lc2UgbWlsaXRhcnkgdmljdG9yaWVzLCBob3dldmVy
LCBkaWQgbm90IGJyaW5nIGFib3V0IHRoZSBjb2xsYXBzZSBvZiBDaGluZXNlIHJlc2lzdGFuY2Ug
dGhhdCBKYXBhbiBoYWQgaG9wZWQgdG8gYWNoaWV2ZSwgaW5zdGVhZCB0aGUgQ2hpbmVzZSBnb3Zl
cm5tZW50IHJlbG9jYXRlZCBpbmxhbmQgdG8gQ2hvbmdxaW5nIHRvIGNvbnRpbnVlIHRoZWlyIHJl
c2lzdGFuY2UuWzMxXQpKYXBhbmVzZSBpbnZhc2lvbiBvZiB0aGUgU292aWV0IFVuaW9uIGFuZCBN
b25nb2xpYQpTZWUgYWxzbzogTmFuc2hpbi1yb24gYW5kIFNvdmlldC1KYXBhbmVzZSBCb3JkZXIg
V2FycwoKClNvdmlldCB0cm9vcHMgZm91Z2h0IHRoZSBKYXBhbmVzZSBkdXJpbmcgdGhlIEJhdHRs
ZSBvZiBLaGFsa2luIEdvbCBpbiBNb25nb2xpYSwgMTkzOS4KT24gMjkgSnVseSAxOTM4LCB0aGUg
SmFwYW5lc2UgaW52YWRlZCB0aGUgVVNTUiBhbmQgd2VyZSBjaGVja2VkIGF0IHRoZSBCYXR0bGUg
b2YgTGFrZSBLaGFzYW4uIEFsdGhvdWdoIHRoZSBiYXR0bGUgd2FzIGEgU292aWV0IHZpY3Rvcnks
IHRoZSBKYXBhbmVzZSBkaXNtaXNzZWQgaXQgYXMgYW4gaW5jb25jbHVzaXZlIGRyYXcsIGFuZCBv
biAxMSBNYXkgMTkzOSBkZWNpZGVkIHRvIG1vdmUgdGhlIEphcGFuZXNlLU1vbmdvbGlhbiBib3Jk
ZXIgdXAgdG8gdGhlIEtoYWxraW4gR29sIFJpdmVyIGJ5IGZvcmNlLiBBZnRlciBpbml0aWFsIHN1
Y2Nlc3NlcyB0aGUgSmFwYW5lc2UgYXNzYXVsdCBvbiBNb25nb2xpYSB3YXMgY2hlY2tlZCBieSB0
aGUgUmVkIEFybXkgdGhhdCBpbmZsaWN0ZWQgdGhlIGZpcnN0IG1ham9yIGRlZmVhdCBvbiB0aGUg
SmFwYW5lc2UgS3dhbnR1bmcgQXJteS5bMzJdWzMzXQpUaGVzZSBjbGFzaGVzIGNvbnZpbmNlZCB0
aGUgSmFwYW5lc2UgZ292ZXJubWVudCB0aGF0IHRoZXkgc2hvdWxkIGZvY3VzIG9uIGNvbmNpbGlh
dGluZyB0aGUgU292aWV0IGdvdmVybm1lbnQgdG8gYXZvaWQgaW50ZXJmZXJlbmNlIGluIHRoZSB3
YXIgYWdhaW5zdCBDaGluYSBhbmQgaW5zdGVhZCB0dXJuIHRoZWlyIG1pbGl0YXJ5IGF0dGVudGlv
biBzb3V0aHdhcmQsIHRvd2FyZHMgdGhlIFVTIGFuZCBFdXJvcGVhbiBob2xkaW5ncyBpbiB0aGUg
UGFjaWZpYy4gVGhleSBhbHNvIHByZXZlbnRlZCB0aGUgc2Fja2luZyBvZiBleHBlcmllbmNlZCBT
b3ZpZXQgbWlsaXRhcnkgbGVhZGVycyBzdWNoIGFzIFpodWtvdiwgd2hvIHdvdWxkIGxhdGVyIHBs
YXkgYSB2aXRhbCByb2xlIGluIHRoZSBkZWZlbmNlIG9mIE1vc2Nvdy5bMzRdCkV1cm9wZWFuIG9j
Y3VwYXRpb25zIGFuZCBhZ3JlZW1lbnRzCkZ1cnRoZXIgaW5mb3JtYXRpb246IEFuc2NobHVzcywg
QXBwZWFzZW1lbnQsIE11bmljaCBBZ3JlZW1lbnQsIEdlcm1hbiBvY2N1cGF0aW9uIG9mIEN6ZWNo
b3Nsb3Zha2lhLCBhbmQgTW9sb3Rvdi1SaWJiZW50cm9wIFBhY3QKCgpGcm9tIGxlZnQgdG8gcmln
aHQgKGZyb250KTogQ2hhbWJlcmxhaW4sIERhbGFkaWVyLCBIaXRsZXIsIE11c3NvbGluaSwgYW5k
IENpYW5vIHBpY3R1cmVkIGJlZm9yZSBzaWduaW5nIHRoZSBNdW5pY2ggQWdyZWVtZW50LgpJbiBF
dXJvcGUsIEdlcm1hbnkgYW5kIEl0YWx5IHdlcmUgYmVjb21pbmcgYm9sZGVyLiBJbiBNYXJjaCAx
OTM4LCBHZXJtYW55IGFubmV4ZWQgQXVzdHJpYSwgYWdhaW4gcHJvdm9raW5nIGxpdHRsZSByZXNw
b25zZSBmcm9tIG90aGVyIEV1cm9wZWFuIHBvd2Vycy5bMzVdIEVuY291cmFnZWQsIEhpdGxlciBi
ZWdhbiBwcmVzc2luZyBHZXJtYW4gY2xhaW1zIG9uIHRoZSBTdWRldGVubGFuZCwgYW4gYXJlYSBv
ZiBDemVjaG9zbG92YWtpYSB3aXRoIGEgcHJlZG9taW5hbnRseSBldGhuaWMgR2VybWFuIHBvcHVs
YXRpb247IGFuZCBzb29uIEZyYW5jZSBhbmQgQnJpdGFpbiBjb25jZWRlZCB0aGlzIHRlcnJpdG9y
eSB0byBoaW0sIGFnYWluc3QgdGhlIHdpc2hlcyBvZiB0aGUgQ3plY2hvc2xvdmFrIGdvdmVybm1l
bnQsIGluIGV4Y2hhbmdlIGZvciBhIHByb21pc2Ugb2Ygbm8gZnVydGhlciB0ZXJyaXRvcmlhbCBk
ZW1hbmRzLlszNl0gU29vbiBhZnRlciB0aGF0LCBob3dldmVyLCBHZXJtYW55IGFuZCBJdGFseSBm
b3JjZWQgQ3plY2hvc2xvdmFraWEgdG8gY2VkZSBhZGRpdGlvbmFsIHRlcnJpdG9yeSB0byBIdW5n
YXJ5IGFuZCBQb2xhbmQuWzM3XSBJbiBNYXJjaCAxOTM5LCBHZXJtYW55IGludmFkZWQgdGhlIHJl
bWFpbmRlciBvZiBDemVjaG9zbG92YWtpYSBhbmQgc3Vic2VxdWVudGx5IHNwbGl0IGl0IGludG8g
dGhlIEdlcm1hbiBQcm90ZWN0b3JhdGUgb2YgQm9oZW1pYSBhbmQgTW9yYXZpYSBhbmQgdGhlIHBy
by1HZXJtYW4gY2xpZW50IHN0YXRlLCB0aGUgU2xvdmFrIFJlcHVibGljLlszOF0KQWxhcm1lZCwg
YW5kIHdpdGggSGl0bGVyIG1ha2luZyBmdXJ0aGVyIGRlbWFuZHMgb24gRGFuemlnLCBGcmFuY2Ug
YW5kIEJyaXRhaW4gZ3VhcmFudGVlZCB0aGVpciBzdXBwb3J0IGZvciBQb2xpc2ggaW5kZXBlbmRl
bmNlOyB3aGVuIEl0YWx5IGNvbnF1ZXJlZCBBbGJhbmlhIGluIEFwcmlsIDE5MzksIHRoZSBzYW1l
IGd1YXJhbnRlZSB3YXMgZXh0ZW5kZWQgdG8gUm9tYW5pYSBhbmQgR3JlZWNlLlszOV0gU2hvcnRs
eSBhZnRlciB0aGUgRnJhbmNvLUJyaXRpc2ggcGxlZGdlIHRvIFBvbGFuZCwgR2VybWFueSBhbmQg
SXRhbHkgZm9ybWFsaXNlZCB0aGVpciBvd24gYWxsaWFuY2Ugd2l0aCB0aGUgUGFjdCBvZiBTdGVl
bC5bNDBdCkluIEF1Z3VzdCAxOTM5LCBHZXJtYW55IGFuZCB0aGUgU292aWV0IFVuaW9uIHNpZ25l
ZCB0aGUgTW9sb3RvduKAk1JpYmJlbnRyb3AgUGFjdCxbNDFdIGEgbm9uLWFnZ3Jlc3Npb24gdHJl
YXR5IHdpdGggYSBzZWNyZXQgcHJvdG9jb2wuIFRoZSBwYXJ0aWVzIGdhdmUgZWFjaCBvdGhlciBy
aWdodHMsIOKAnGluIHRoZSBldmVudCBvZiBhIHRlcnJpdG9yaWFsIGFuZCBwb2xpdGljYWwgcmVh
cnJhbmdlbWVudCzigJ0gdG8g4oCcc3BoZXJlcyBvZiBpbmZsdWVuY2XigJ0gKHdlc3Rlcm4gUG9s
YW5kIGFuZCBMaXRodWFuaWEgZm9yIEdlcm1hbnksIGFuZCBlYXN0ZXJuIFBvbGFuZCwgRmlubGFu
ZCwgRXN0b25pYSwgTGF0dmlhIGFuZCBCZXNzYXJhYmlhIGZvciB0aGUgVVNTUikuIEl0IGFsc28g
cmFpc2VkIHRoZSBxdWVzdGlvbiBvZiBjb250aW51aW5nIFBvbGlzaCBpbmRlcGVuZGVuY2UuWzQy
XQpDb3Vyc2Ugb2YgdGhlIHdhcgoKV2FyIGJyZWFrcyBvdXQgaW4gRXVyb3BlCgoKQ29tbW9uIHBh
cmFkZSBvZiBHZXJtYW4gV2Vocm1hY2h0IGFuZCBTb3ZpZXQgUmVkIEFybXkgb24gMjMgU2VwdGVt
YmVyIDE5MzkgaW4gQnJlc3QsIEVhc3Rlcm4gUG9sYW5kIGF0IHRoZSBlbmQgb2YgdGhlIEludmFz
aW9uIG9mIFBvbGFuZC4gQXQgY2VudHJlIGlzIE1ham9yIEdlbmVyYWwgSGVpbnogR3VkZXJpYW4g
YW5kIGF0IHJpZ2h0IGlzIEJyaWdhZGllciBTZW15b24gS3Jpdm9zaGVpbi4KT24gMSBTZXB0ZW1i
ZXIgMTkzOSwgR2VybWFueSBhbmQgU2xvdmFraWEg4oCUIGEgY2xpZW50IHN0YXRlIGluIDE5Mzkg
4oCUIGF0dGFja2VkIFBvbGFuZC4gT24gMyBTZXB0ZW1iZXIgMTkzOSBhZnRlciBHZXJtYW55IGZh
aWxlZCB0byB3aXRoZHJhdyBpbiBhY2NvcmRhbmNlIHdpdGggRnJlbmNoIGFuZCBCcml0aXNoIGRl
bWFuZHMsIEZyYW5jZSBhbmQgQnJpdGFpbiwgZm9sbG93ZWQgYnkgdGhlIGNvdW50cmllcyBvZiB0
aGUgQ29tbW9ud2VhbHRoLCBkZWNsYXJlZCB3YXIgb24gR2VybWFueSBidXQgcHJvdmlkZWQgbGl0
dGxlIG1pbGl0YXJ5IHN1cHBvcnQgdG8gUG9sYW5kIG90aGVyIHRoYW4gYSBzbWFsbCBGcmVuY2gg
YXR0YWNrIGludG8gdGhlIFNhYXJsYW5kLls0M10gT24gMTcgU2VwdGVtYmVyIDE5MzksIGFmdGVy
IHNpZ25pbmcgYSBub25hZ2dyZXNzaW9uIHBhY3Qgd2l0aCBKYXBhbiwgdGhlIFNvdmlldHMgbGF1
bmNoZWQgdGhlaXIgb3duIGludmFzaW9uIG9mIFBvbGFuZC5bNDRdIEJ5IGVhcmx5IE9jdG9iZXIs
IFBvbGFuZCB3YXMgZGl2aWRlZCBhbW9uZyBHZXJtYW55LCB0aGUgU292aWV0IFVuaW9uLCBMaXRo
dWFuaWEgYW5kIFNsb3Zha2lhLCBhbHRob3VnaCBQb2xhbmQgbmV2ZXIgb2ZmaWNpYWxseSBzdXJy
ZW5kZXJlZCBhbmQgY29udGludWVkIHRoZSBmaWdodCBvdXRzaWRlIGl0cyBib3JkZXJzLls0NV0g
QXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgYmF0dGxlIGluIFBvbGFuZCwgSmFwYW4gbGF1bmNoZWQg
aXRzIGZpcnN0IGF0dGFjayBhZ2FpbnN0IENoYW5nc2hhLCBhIHN0cmF0ZWdpY2FsbHkgaW1wb3J0
YW50IENoaW5lc2UgY2l0eSwgYnV0IHdhcyByZXB1bHNlZCBieSBsYXRlIFNlcHRlbWJlci5bNDZd
CkZvbGxvd2luZyB0aGUgaW52YXNpb24gb2YgUG9sYW5kIGFuZCBhIEdlcm1hbi1Tb3ZpZXQgdHJl
YXR5IGdvdmVybmluZyBMaXRodWFuaWEsIHRoZSBTb3ZpZXQgVW5pb24gZm9yY2VkIHRoZSBCYWx0
aWMgY291bnRyaWVzIHRvIGFsbG93IGl0IHRvIHN0YXRpb24gU292aWV0IHRyb29wcyBpbiB0aGVp
ciBjb3VudHJpZXMgdW5kZXIgcGFjdHMgb2YgIm11dHVhbCBhc3Npc3RhbmNlLiJbNDddWzQ4XVs0
OV0gRmlubGFuZCByZWplY3RlZCB0ZXJyaXRvcmlhbCBkZW1hbmRzIGFuZCB3YXMgaW52YWRlZCBi
eSB0aGUgU292aWV0IFVuaW9uIGluIE5vdmVtYmVyIDE5MzkuWzUwXSBUaGUgcmVzdWx0aW5nIGNv
bmZsaWN0IGVuZGVkIGluIE1hcmNoIDE5NDAgd2l0aCBGaW5uaXNoIGNvbmNlc3Npb25zLls1MV0g
RnJhbmNlIGFuZCB0aGUgVW5pdGVkIEtpbmdkb20sIHRyZWF0aW5nIHRoZSBTb3ZpZXQgYXR0YWNr
IG9uIEZpbmxhbmQgYXMgdGFudGFtb3VudCB0byBlbnRlcmluZyB0aGUgd2FyIG9uIHRoZSBzaWRl
IG9mIHRoZSBHZXJtYW5zLCByZXNwb25kZWQgdG8gdGhlIFNvdmlldCBpbnZhc2lvbiBieSBzdXBw
b3J0aW5nIHRoZSBVU1NSJ3MgZXhwdWxzaW9uIGZyb20gdGhlIExlYWd1ZSBvZiBOYXRpb25zLls0
OV0KCgpHZXJtYW4gdHJvb3BzIGJ5IHRoZSBBcmMgZGUgVHJpb21waGUsIFBhcmlzLCBhZnRlciB0
aGUgMTk0MCBmYWxsIG9mIEZyYW5jZS4KSW4gV2VzdGVybiBFdXJvcGUsIEJyaXRpc2ggdHJvb3Bz
IGRlcGxveWVkIHRvIHRoZSBDb250aW5lbnQsIGJ1dCBpbiBhIHBoYXNlIG5pY2tuYW1lZCB0aGUg
UGhvbmV5IFdhciBieSB0aGUgQnJpdGlzaCBhbmQgIlNpdHprcmllZyIgKHNpdHRpbmcgd2FyKSBi
eSB0aGUgR2VybWFucywgbmVpdGhlciBzaWRlIGxhdW5jaGVkIG1ham9yIG9wZXJhdGlvbnMgYWdh
aW5zdCB0aGUgb3RoZXIgdW50aWwgQXByaWwgMTk0MC5bNTJdIFRoZSBTb3ZpZXQgVW5pb24gYW5k
IEdlcm1hbnkgZW50ZXJlZCBhIHRyYWRlIHBhY3QgaW4gRmVicnVhcnkgMTk0MCwgcHVyc3VhbnQg
dG8gd2hpY2ggdGhlIFNvdmlldHMgcmVjZWl2ZWQgR2VybWFuIG1pbGl0YXJ5IGFuZCBpbmR1c3Ry
aWFsIGVxdWlwbWVudCBpbiBleGNoYW5nZSBmb3Igc3VwcGx5aW5nIHJhdyBtYXRlcmlhbHMgdG8g
R2VybWFueSB0byBoZWxwIGNpcmN1bXZlbnQgYSBCcml0aXNoIGJsb2NrYWRlLls1M10KSW4gQXBy
aWwgMTk0MCwgR2VybWFueSBpbnZhZGVkIERlbm1hcmsgYW5kIE5vcndheSB0byBzZWN1cmUgc2hp
cG1lbnRzIG9mIGlyb24gb3JlIGZyb20gU3dlZGVuLCB3aGljaCB0aGUgQWxsaWVzIHdlcmUgYWJv
dXQgdG8gZGlzcnVwdC5bNTRdIERlbm1hcmsgaW1tZWRpYXRlbHkgY2FwaXR1bGF0ZWQsIGFuZCBk
ZXNwaXRlIEFsbGllZCBzdXBwb3J0LCBOb3J3YXkgd2FzIGNvbnF1ZXJlZCB3aXRoaW4gdHdvIG1v
bnRocy5bNTVdIEluIE1heSAxOTQwIEJyaXRhaW4gaW52YWRlZCBJY2VsYW5kLls1Nl0gQnJpdGlz
aCBkaXNjb250ZW50IG92ZXIgdGhlIE5vcndlZ2lhbiBjYW1wYWlnbiBsZWQgdG8gdGhlIHJlcGxh
Y2VtZW50IG9mIFByaW1lIE1pbmlzdGVyIE5ldmlsbGUgQ2hhbWJlcmxhaW4gYnkgV2luc3RvbiBD
aHVyY2hpbGwgb24gMTAgTWF5IDE5NDAuWzU3XQpBeGlzIGFkdmFuY2VzCkdlcm1hbnkgaW52YWRl
ZCBGcmFuY2UsIEJlbGdpdW0sIHRoZSBOZXRoZXJsYW5kcywgYW5kIEx1eGVtYm91cmcgb24gMTAg
TWF5IDE5NDAsIHRoZSBzYW1lIGRheSBOZXZpbGxlIENoYW1iZXJsYWluIHJlc2lnbmVkIGFzIEJy
aXRpc2ggUHJpbWUgTWluaXN0ZXIuWzU4XSBUaGUgTmV0aGVybGFuZHMgYW5kIEJlbGdpdW0gd2Vy
ZSBvdmVycnVuIHVzaW5nIGJsaXR6a3JpZWcgdGFjdGljcyBpbiBhIGZldyBkYXlzIGFuZCB3ZWVr
cywgcmVzcGVjdGl2ZWx5Lls1OV0gVGhlIEZyZW5jaCBmb3J0aWZpZWQgTWFnaW5vdCBMaW5lIHdh
cyBjaXJjdW12ZW50ZWQgYnkgYSBmbGFua2luZyBtb3ZlbWVudCB0aHJvdWdoIHRoZSB0aGlja2x5
IHdvb2RlZCBBcmRlbm5lcyByZWdpb24sWzU4XSBtaXN0YWtlbmx5IHBlcmNlaXZlZCBieSBGcmVu
Y2ggcGxhbm5lcnMgYXMgYW4gaW1wZW5ldHJhYmxlIG5hdHVyYWwgYmFycmllciBhZ2FpbnN0IGFy
bW91cmVkIHZlaGljbGVzLls2MF0gQnJpdGlzaCB0cm9vcHMgd2VyZSBmb3JjZWQgdG8gZXZhY3Vh
dGUgdGhlIGNvbnRpbmVudCBhdCBEdW5raXJrLCBhYmFuZG9uaW5nIHRoZWlyIGhlYXZ5IGVxdWlw
bWVudCBieSB0aGUgZW5kIG9mIHRoZSBtb250aC4gT24gMTAgSnVuZSwgSXRhbHkgaW52YWRlZCBG
cmFuY2UsIGRlY2xhcmluZyB3YXIgb24gYm90aCBGcmFuY2UgYW5kIHRoZSBVbml0ZWQgS2luZ2Rv
bTtbNjFdIHR3ZWx2ZSBkYXlzIGxhdGVyIEZyYW5jZSBzdXJyZW5kZXJlZCBhbmQgd2FzIHNvb24g
ZGl2aWRlZCBpbnRvIEdlcm1hbiBhbmQgSXRhbGlhbiBvY2N1cGF0aW9uIHpvbmVzLFs2Ml0gYW5k
IGFuIHVub2NjdXBpZWQgcnVtcCBzdGF0ZSB1bmRlciB0aGUgVmljaHkgUmVnaW1lLiBPbiAzIEp1
bHksIHRoZSBCcml0aXNoIGF0dGFja2VkIHRoZSBGcmVuY2ggZmxlZXQgaW4gQWxnZXJpYSB0byBw
cmV2ZW50IGl0cyBwb3NzaWJsZSBzZWl6dXJlIGJ5IEdlcm1hbnkuWzYzXQpJbiBKdW5lLCBkdXJp
bmcgdGhlIGxhc3QgZGF5cyBvZiB0aGUgQmF0dGxlIG9mIEZyYW5jZSwgdGhlIFNvdmlldCBVbmlv
biBpbml0aWF0ZWQgc3RhZ2VkIGVsZWN0aW9ucyBpbiB0aGUgQmFsdGljIHN0YXRlcyBhbmQgZm9y
Y2VmdWxseSBhbmQgaWxsZWdhbGx5IGFubmV4ZWQgdGhlbSxbNDhdIGZvbGxvd2VkIGJ5IHRoZSBh
bm5leGF0aW9uIG9mIHRoZSByZWdpb24gb2YgQmVzc2FyYWJpYSBpbiBSb21hbmlhLiBXaGVyZWFz
IHRoZSBpbmNyZWFzZWQgY29vcGVyYXRpb24gYmV0d2VlbiB0aGUgVVNTUiBhbmQgTmF6aSBHZXJt
YW55LCB3aGljaCBpbmNsdWRlZCBicm9hZCBlY29ub21pYyBjb29wZXJhdGlvbiwgbGltaXRlZCBt
aWxpdGFyeSBhc3Npc3RhbmNlLCBwb3B1bGF0aW9uIGV4Y2hhbmdlIGFuZCBib3JkZXIgYWdyZWVt
ZW50cyBtYWRlIHRoZSBmb3JtZXIgYSBkZSBmYWN0byBHZXJtYW4gYWxseSxbNjRdWzY1XSBTb3Zp
ZXQgdGFrZW92ZXIgb2YgdGhlIEJhbHRpYyBzdGF0ZXMgaGFkIGJlZW4gY29uc2lkZXJlZCBhcyBh
IGhvc3RpbGUgc3RlcCBieSBHZXJtYW55Lls2Nl0gVGhpcywgYXMgd2VsbCBhcyBncm93aW5nIHRl
bnNpb25zIG92ZXIgc3BoZXJlcyBvZiBpbmZsdWVuY2UgZGVtb25zdHJhdGVkIGltcG9zc2liaWxp
dHkgb2YgZnVydGhlciBleHBhbnNpb24gb2YgTmF6aS1Tb3ZpZXQgY29vcGVyYXRpb24sIGFuZCBi
b3RoIHN0YXRlcyBoYWQgYmVndW4gdGhlIGNvdW50ZG93biB0byB3YXIuWzY3XQpXaXRoIEZyYW5j
ZSBuZXV0cmFsaXplZCwgR2VybWFueSBiZWdhbiBhbiBhaXIgc3VwZXJpb3JpdHkgY2FtcGFpZ24g
b3ZlciBCcml0YWluICh0aGUgQmF0dGxlIG9mIEJyaXRhaW4pIHRvIHByZXBhcmUgZm9yIGFuIGlu
dmFzaW9uLls2OF0gVGhlIGNhbXBhaWduIGZhaWxlZCwgYW5kIHRoZSBpbnZhc2lvbiBwbGFucyB3
ZXJlIGNhbmNlbGVkIGJ5IFNlcHRlbWJlci4gVXNpbmcgbmV3bHkgY2FwdHVyZWQgRnJlbmNoIHBv
cnRzLCB0aGUgR2VybWFuIE5hdnkgZW5qb3llZCBzdWNjZXNzIGFnYWluc3QgYW4gb3Zlci1leHRl
bmRlZCBSb3lhbCBOYXZ5LCB1c2luZyBVLWJvYXRzIGFnYWluc3QgQnJpdGlzaCBzaGlwcGluZyBp
biB0aGUgQXRsYW50aWMuWzY5XSBJdGFseSBiZWdhbiBvcGVyYXRpb25zIGluIHRoZSBNZWRpdGVy
cmFuZWFuLCBpbml0aWF0aW5nIGEgc2llZ2Ugb2YgTWFsdGEgaW4gSnVuZSwgY29ucXVlcmluZyBC
cml0aXNoIFNvbWFsaWxhbmQgaW4gQXVndXN0LCBhbmQgbWFraW5nIGFuIGluY3Vyc2lvbiBpbnRv
IEJyaXRpc2gtaGVsZCBFZ3lwdCBpbiBTZXB0ZW1iZXIgMTk0MC4gSmFwYW4gaW5jcmVhc2VkIGl0
cyBibG9ja2FkZSBvZiBDaGluYSBpbiBTZXB0ZW1iZXIgYnkgc2VpemluZyBzZXZlcmFsIGJhc2Vz
IGluIHRoZSBub3J0aGVybiBwYXJ0IG9mIHRoZSBub3ctaXNvbGF0ZWQgRnJlbmNoIEluZG9jaGlu
YS5bNzBdCgoKVGhlIEJhdHRsZSBvZiBCcml0YWluIGVuZGVkIHRoZSBHZXJtYW4gYWR2YW5jZSBp
biBXZXN0ZXJuIEV1cm9wZS4KVGhyb3VnaG91dCB0aGlzIHBlcmlvZCwgdGhlIG5ldXRyYWwgVW5p
dGVkIFN0YXRlcyB0b29rIG1lYXN1cmVzIHRvIGFzc2lzdCBDaGluYSBhbmQgdGhlIFdlc3Rlcm4g
QWxsaWVzLiBJbiBOb3ZlbWJlciAxOTM5LCB0aGUgQW1lcmljYW4gTmV1dHJhbGl0eSBBY3Qgd2Fz
IGFtZW5kZWQgdG8gYWxsb3cgJ2Nhc2ggYW5kIGNhcnJ5JyBwdXJjaGFzZXMgYnkgdGhlIEFsbGll
cy5bNzFdIEluIDE5NDAsIGZvbGxvd2luZyB0aGUgR2VybWFuIGNhcHR1cmUgb2YgUGFyaXMsIHRo
ZSBzaXplIG9mIHRoZSBVbml0ZWQgU3RhdGVzIE5hdnkgd2FzIHNpZ25pZmljYW50bHkgaW5jcmVh
c2VkIGFuZCwgYWZ0ZXIgdGhlIEphcGFuZXNlIGluY3Vyc2lvbiBpbnRvIEluZG9jaGluYSwgdGhl
IFVuaXRlZCBTdGF0ZXMgZW1iYXJnb2VkIGlyb24sIHN0ZWVsIGFuZCBtZWNoYW5pY2FsIHBhcnRz
IGFnYWluc3QgSmFwYW4uWzcyXSBJbiBTZXB0ZW1iZXIsIHRoZSBVbml0ZWQgU3RhdGVzIGZ1cnRo
ZXIgYWdyZWVkIHRvIGEgdHJhZGUgb2YgQW1lcmljYW4gZGVzdHJveWVycyBmb3IgQnJpdGlzaCBi
YXNlcy5bNzNdIFN0aWxsLCBhIGxhcmdlIG1ham9yaXR5IG9mIHRoZSBBbWVyaWNhbiBwdWJsaWMg
Y29udGludWVkIHRvIG9wcG9zZSBhbnkgZGlyZWN0IG1pbGl0YXJ5IGludGVydmVudGlvbiBpbnRv
IHRoZSBjb25mbGljdCB3ZWxsIGludG8gMTk0MS5bNzRdCkF0IHRoZSBlbmQgb2YgU2VwdGVtYmVy
IDE5NDAsIHRoZSBUcmlwYXJ0aXRlIFBhY3QgdW5pdGVkIEphcGFuLCBJdGFseSBhbmQgR2VybWFu
eSB0byBmb3JtYWxpemUgdGhlIEF4aXMgUG93ZXJzLls3NV0gVGhlIFRyaXBhcnRpdGUgUGFjdCBz
dGlwdWxhdGVkIHRoYXQgYW55IGNvdW50cnksIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgU292
aWV0IFVuaW9uLCBub3QgaW4gdGhlIHdhciB3aGljaCBhdHRhY2tlZCBhbnkgQXhpcyBQb3dlciB3
b3VsZCBiZSBmb3JjZWQgdG8gZ28gdG8gd2FyIGFnYWluc3QgYWxsIHRocmVlLls3Nl0gRHVyaW5n
IHRoaXMgdGltZSwgdGhlIFVuaXRlZCBTdGF0ZXMgY29udGludWVkIHRvIHN1cHBvcnQgdGhlIFVu
aXRlZCBLaW5nZG9tIGFuZCBDaGluYSBieSBpbnRyb2R1Y2luZyB0aGUgTGVuZC1MZWFzZSBwb2xp
Y3kgYXV0aG9yaXppbmcgdGhlIHByb3Zpc2lvbiBvZiBtYXRlcmllbCBhbmQgb3RoZXIgaXRlbXNb
NzddIGFuZCBjcmVhdGluZyBhIHNlY3VyaXR5IHpvbmUgc3Bhbm5pbmcgcm91Z2hseSBoYWxmIG9m
IHRoZSBBdGxhbnRpYyBPY2VhbiB3aGVyZSB0aGUgVW5pdGVkIFN0YXRlcyBOYXZ5IHByb3RlY3Rl
ZCBCcml0aXNoIGNvbnZveXMuWzc4XSBBcyBhIHJlc3VsdCwgR2VybWFueSBhbmQgdGhlIFVuaXRl
ZCBTdGF0ZXMgZm91bmQgdGhlbXNlbHZlcyBlbmdhZ2VkIGluIHN1c3RhaW5lZCBuYXZhbCB3YXJm
YXJlIGluIHRoZSBOb3J0aCBhbmQgQ2VudHJhbCBBdGxhbnRpYyBieSBPY3RvYmVyIDE5NDEsIGV2
ZW4gdGhvdWdoIHRoZSBVbml0ZWQgU3RhdGVzIHJlbWFpbmVkIG9mZmljaWFsbHkgbmV1dHJhbC5b
NzldWzgwXQpUaGUgQXhpcyBleHBhbmRlZCBpbiBOb3ZlbWJlciAxOTQwIHdoZW4gSHVuZ2FyeSwg
U2xvdmFraWEgYW5kIFJvbWFuaWEgam9pbmVkIHRoZSBUcmlwYXJ0aXRlIFBhY3QuWzgxXSBUaGVz
ZSBjb3VudHJpZXMgcGFydGljaXBhdGVkIGluIHRoZSBzdWJzZXF1ZW50IGludmFzaW9uIG9mIHRo
ZSBVU1NSLCB3aXRoIFJvbWFuaWEgbWFraW5nIHRoZSBsYXJnZXN0IGNvbnRyaWJ1dGlvbiB0byBy
ZWNhcHR1cmUgdGVycml0b3J5IGNlZGVkIHRvIHRoZSBVU1NSIGFuZCBwdXJzdWUgaXRzIGxlYWRl
ciBJb24gQW50b25lc2N1J3MgZGVzaXJlIHRvIGNvbWJhdCBjb21tdW5pc20uWzgyXSBJbiBPY3Rv
YmVyIDE5NDAsIEl0YWx5IGludmFkZWQgR3JlZWNlIGJ1dCB3aXRoaW4gZGF5cyB3YXMgcmVwdWxz
ZWQgYW5kIHB1c2hlZCBiYWNrIGludG8gQWxiYW5pYSwgd2hlcmUgYSBzdGFsZW1hdGUgc29vbiBv
Y2N1cnJlZC5bODNdIEluIERlY2VtYmVyIDE5NDAsIEJyaXRpc2ggQ29tbW9ud2VhbHRoIGZvcmNl
cyBiZWdhbiBjb3VudGVyLW9mZmVuc2l2ZXMgYWdhaW5zdCBJdGFsaWFuIGZvcmNlcyBpbiBFZ3lw
dCBhbmQgSXRhbGlhbiBFYXN0IEFmcmljYS5bODRdIEJ5IGVhcmx5IDE5NDEsIHdpdGggSXRhbGlh
biBmb3JjZXMgaGF2aW5nIGJlZW4gcHVzaGVkIGJhY2sgaW50byBMaWJ5YSBieSB0aGUgQ29tbW9u
d2VhbHRoLCBDaHVyY2hpbGwgb3JkZXJlZCBhIGRpc3BhdGNoIG9mIHRyb29wcyBmcm9tIEFmcmlj
YSB0byBib2xzdGVyIHRoZSBHcmVla3MuWzg1XSBUaGUgSXRhbGlhbiBOYXZ5IGFsc28gc3VmZmVy
ZWQgc2lnbmlmaWNhbnQgZGVmZWF0cywgd2l0aCB0aGUgUm95YWwgTmF2eSBwdXR0aW5nIHRocmVl
IEl0YWxpYW4gYmF0dGxlc2hpcHMgb3V0IG9mIGNvbW1pc3Npb24gYnkgY2FycmllciBhdHRhY2sg
YXQgVGFyYW50bywgYW5kIG5ldXRyYWxpc2luZyBzZXZlcmFsIG1vcmUgd2Fyc2hpcHMgYXQgQ2Fw
ZSBNYXRhcGFuLls4Nl0KCgpHZXJtYW4gcGFyYXRyb29wZXJzIGludmFkaW5nIHRoZSBHcmVlayBp
c2xhbmQgb2YgQ3JldGUsIE1heSAxOTQxLgpUaGUgR2VybWFucyBzb29uIGludGVydmVuZWQgdG8g
YXNzaXN0IEl0YWx5LiBIaXRsZXIgc2VudCBHZXJtYW4gZm9yY2VzIHRvIExpYnlhIGluIEZlYnJ1
YXJ5LCBhbmQgYnkgdGhlIGVuZCBvZiBNYXJjaCB0aGV5IGhhZCBsYXVuY2hlZCBhbiBvZmZlbnNp
dmUgYWdhaW5zdCB0aGUgZGltaW5pc2hlZCBDb21tb253ZWFsdGggZm9yY2VzLls4N10gSW4gdW5k
ZXIgYSBtb250aCwgQ29tbW9ud2VhbHRoIGZvcmNlcyB3ZXJlIHB1c2hlZCBiYWNrIGludG8gRWd5
cHQgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBiZXNpZWdlZCBwb3J0IG9mIFRvYnJ1ay5bODhd
IFRoZSBDb21tb253ZWFsdGggYXR0ZW1wdGVkIHRvIGRpc2xvZGdlIEF4aXMgZm9yY2VzIGluIE1h
eSBhbmQgYWdhaW4gaW4gSnVuZSwgYnV0IGZhaWxlZCBvbiBib3RoIG9jY2FzaW9ucy5bODldIElu
IGVhcmx5IEFwcmlsLCBmb2xsb3dpbmcgQnVsZ2FyaWEncyBzaWduaW5nIG9mIHRoZSBUcmlwYXJ0
aXRlIFBhY3QsIHRoZSBHZXJtYW5zIGludGVydmVuZWQgaW4gdGhlIEJhbGthbnMgYnkgaW52YWRp
bmcgR3JlZWNlIGFuZCBZdWdvc2xhdmlhIGZvbGxvd2luZyBhIGNvdXA7IGhlcmUgdG9vIHRoZXkg
bWFkZSByYXBpZCBwcm9ncmVzcywgZXZlbnR1YWxseSBmb3JjaW5nIHRoZSBBbGxpZXMgdG8gZXZh
Y3VhdGUgYWZ0ZXIgR2VybWFueSBjb25xdWVyZWQgdGhlIEdyZWVrIGlzbGFuZCBvZiBDcmV0ZSBi
eSB0aGUgZW5kIG9mIE1heS5bOTBdClRoZSBBbGxpZXMgZGlkIGhhdmUgc29tZSBzdWNjZXNzZXMg
ZHVyaW5nIHRoaXMgdGltZS4gSW4gdGhlIE1pZGRsZSBFYXN0LCBDb21tb253ZWFsdGggZm9yY2Vz
IGZpcnN0IHF1YXNoZWQgYSBjb3VwIGluIElyYXEgd2hpY2ggaGFkIGJlZW4gc3VwcG9ydGVkIGJ5
IEdlcm1hbiBhaXJjcmFmdCBmcm9tIGJhc2VzIHdpdGhpbiBWaWNoeS1jb250cm9sbGVkIFN5cmlh
LFs5MV0gdGhlbiwgd2l0aCB0aGUgYXNzaXN0YW5jZSBvZiB0aGUgRnJlZSBGcmVuY2gsIGludmFk
ZWQgU3lyaWEgYW5kIExlYmFub24gdG8gcHJldmVudCBmdXJ0aGVyIHN1Y2ggb2NjdXJyZW5jZXMu
WzkyXSBJbiB0aGUgQXRsYW50aWMsIHRoZSBCcml0aXNoIHNjb3JlZCBhIG11Y2gtbmVlZGVkIHB1
YmxpYyBtb3JhbGUgYm9vc3QgYnkgc2lua2luZyB0aGUgR2VybWFuIGZsYWdzaGlwIEJpc21hcmNr
Lls5M10gUGVyaGFwcyBtb3N0IGltcG9ydGFudGx5LCBkdXJpbmcgdGhlIEJhdHRsZSBvZiBCcml0
YWluIHRoZSBSb3lhbCBBaXIgRm9yY2UgaGFkIHN1Y2Nlc3NmdWxseSByZXNpc3RlZCB0aGUgTHVm
dHdhZmZlJ3MgYXNzYXVsdCwgYW5kIHRoZSBHZXJtYW4gYm9tYmluZyBjYW1wYWlnbiBsYXJnZWx5
IGVuZGVkIGluIE1heSAxOTQxLls5NF0KSW4gQXNpYSwgZGVzcGl0ZSBzZXZlcmFsIG9mZmVuc2l2
ZXMgYnkgYm90aCBzaWRlcywgdGhlIHdhciBiZXR3ZWVuIENoaW5hIGFuZCBKYXBhbiB3YXMgc3Rh
bGVtYXRlZCBieSAxOTQwLiBJbiBvcmRlciB0byBpbmNyZWFzZSBwcmVzc3VyZSBvbiBDaGluYSBi
eSBibG9ja2luZyBzdXBwbHkgcm91dGVzLCBhbmQgdG8gYmV0dGVyIHBvc2l0aW9uIEphcGFuZXNl
IGZvcmNlcyBpbiB0aGUgZXZlbnQgb2YgYSB3YXIgd2l0aCB0aGUgV2VzdGVybiBwb3dlcnMsIEph
cGFuIGhhZCBzZWl6ZWQgbWlsaXRhcnkgY29udHJvbCBvZiBzb3V0aGVybiBJbmRvY2hpbmFbOTVd
IEluIEF1Z3VzdCBvZiB0aGF0IHllYXIsIENoaW5lc2UgY29tbXVuaXN0cyBsYXVuY2hlZCBhbiBv
ZmZlbnNpdmUgaW4gQ2VudHJhbCBDaGluYTsgaW4gcmV0YWxpYXRpb24sIEphcGFuIGluc3RpdHV0
ZWQgaGFyc2ggbWVhc3VyZXMgKHRoZSBUaHJlZSBBbGxzIFBvbGljeSkgaW4gb2NjdXBpZWQgYXJl
YXMgdG8gcmVkdWNlIGh1bWFuIGFuZCBtYXRlcmlhbCByZXNvdXJjZXMgZm9yIHRoZSBjb21tdW5p
c3RzLls5Nl0gQ29udGludWVkIGFudGlwYXRoeSBiZXR3ZWVuIENoaW5lc2UgY29tbXVuaXN0IGFu
ZCBuYXRpb25hbGlzdCBmb3JjZXMgY3VsbWluYXRlZCBpbiBhcm1lZCBjbGFzaGVzIGluIEphbnVh
cnkgMTk0MSwgZWZmZWN0aXZlbHkgZW5kaW5nIHRoZWlyIGNvLW9wZXJhdGlvbi5bOTddIFdpdGgg
dGhlIHNpdHVhdGlvbiBpbiBFdXJvcGUgYW5kIEFzaWEgcmVsYXRpdmVseSBzdGFibGUsIEdlcm1h
bnksIEphcGFuLCBhbmQgdGhlIFNvdmlldCBVbmlvbiBtYWRlIHByZXBhcmF0aW9ucy4gV2l0aCB0
aGUgU292aWV0cyB3YXJ5IG9mIG1vdW50aW5nIHRlbnNpb25zIHdpdGggR2VybWFueSBhbmQgdGhl
IEphcGFuZXNlIHBsYW5uaW5nIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBFdXJvcGVhbiBXYXIg
Ynkgc2VpemluZyByZXNvdXJjZS1yaWNoIEV1cm9wZWFuIHBvc3Nlc3Npb25zIGluIFNvdXRoZWFz
dCBBc2lhLCB0aGUgdHdvIHBvd2VycyBzaWduZWQgdGhlIFNvdmlldOKAk0phcGFuZXNlIE5ldXRy
YWxpdHkgUGFjdCBpbiBBcHJpbCAxOTQxLls5OF0gQnkgY29udHJhc3QsIHRoZSBHZXJtYW5zIHdl
cmUgc3RlYWRpbHkgbWFraW5nIHByZXBhcmF0aW9ucyBmb3IgYW4gYXR0YWNrIG9uIHRoZSBTb3Zp
ZXQgVW5pb24sIGFtYXNzaW5nIGZvcmNlcyBvbiB0aGUgU292aWV0IGJvcmRlci5bOTldClRoZSB3
YXIgYmVjb21lcyBnbG9iYWwKCgpBIEdlcm1hbiBzb2xkaWVyIGluc3BlY3RpbmcgdGhlIHJlbWFp
bnMgb2YgZGVzdHJveWVkIFNvdmlldCBmb3JjZXMgaW4gSnVuZSAxOTQxCk9uIDIyIEp1bmUgMTk0
MSwgR2VybWFueSwgYWxvbmcgd2l0aCBvdGhlciBFdXJvcGVhbiBBeGlzIG1lbWJlcnMgYW5kIEZp
bmxhbmQsIGludmFkZWQgdGhlIFNvdmlldCBVbmlvbiBpbiBPcGVyYXRpb24gQmFyYmFyb3NzYS4g
VGhlIHByaW1hcnkgdGFyZ2V0cyBvZiB0aGlzIHN1cnByaXNlIG9mZmVuc2l2ZVsxMDBdIHdlcmUg
dGhlIEJhbHRpYyByZWdpb24sIE1vc2NvdyBhbmQgVWtyYWluZSwgd2l0aCBhbiB1bHRpbWF0ZSBn
b2FsIG9mIGVuZGluZyB0aGUgMTk0MSBjYW1wYWlnbiBuZWFyIHRoZSBBcmtoYW5nZWxzay1Bc3Ry
YWtoYW4gbGluZSwgY29ubmVjdGluZyB0aGUgQ2FzcGlhbiBhbmQgV2hpdGUgU2Vhcy4gSGl0bGVy
J3Mgb2JqZWN0aXZlcyB3ZXJlIHRvIGVsaW1pbmF0ZSB0aGUgU292aWV0IFVuaW9uIGFzIGEgbWls
aXRhcnkgcG93ZXIsIGV4dGVybWluYXRlIENvbW11bmlzbSwgZ2VuZXJhdGUgTGViZW5zcmF1bSAo
ImxpdmluZyBzcGFjZSIpWzEwMV0gYnkgZGlzcG9zc2Vzc2luZyB0aGUgbmF0aXZlIHBvcHVsYXRp
b25bMTAyXSBhbmQgZ3VhcmFudGVlIGFjY2VzcyB0byB0aGUgc3RyYXRlZ2ljIHJlc291cmNlcyBu
ZWVkZWQgdG8gZGVmZWF0IEdlcm1hbnkncyByZW1haW5pbmcgcml2YWxzLlsxMDNdCkFsdGhvdWdo
IHRoZSBSZWQgQXJteSB3YXMgcHJlcGFyaW5nIGZvciBzdHJhdGVnaWMgY291bnRlci1vZmZlbnNp
dmVzIGJlZm9yZSB0aGUgd2FyLFsxMDRdIEJhcmJhcm9zc2EgZm9yY2VkIHRoZSBTb3ZpZXQgc3Vw
cmVtZSBjb21tYW5kIHRvIGFkb3B0IGEgc3RyYXRlZ2ljIGRlZmVuY2UuIER1cmluZyB0aGUgc3Vt
bWVyLCB0aGUgQXhpcyBtYWRlIHNpZ25pZmljYW50IGdhaW5zIGludG8gU292aWV0IHRlcnJpdG9y
eSwgaW5mbGljdGluZyBpbW1lbnNlIGxvc3NlcyBpbiBib3RoIHBlcnNvbm5lbCBhbmQgbWF0ZXJp
ZWwuIEJ5IHRoZSBtaWRkbGUgb2YgQXVndXN0LCBob3dldmVyLCB0aGUgR2VybWFuIEFybXkgSGln
aCBDb21tYW5kIGRlY2lkZWQgdG8gc3VzcGVuZCB0aGUgb2ZmZW5zaXZlIG9mIGEgY29uc2lkZXJh
Ymx5IGRlcGxldGVkIEFybXkgR3JvdXAgQ2VudHJlLCBhbmQgdG8gZGl2ZXJ0IHRoZSBTZWNvbmQg
UGFuemVyIEdyb3VwIHRvIHJlaW5mb3JjZSB0cm9vcHMgYWR2YW5jaW5nIHRvd2FyZHMgY2VudHJh
bCBVa3JhaW5lIGFuZCBMZW5pbmdyYWQuWzEwNV0gVGhlIEtpZXYgb2ZmZW5zaXZlIHdhcyBvdmVy
d2hlbG1pbmdseSBzdWNjZXNzZnVsLCByZXN1bHRpbmcgaW4gZW5jaXJjbGVtZW50IGFuZCBlbGlt
aW5hdGlvbiBvZiBmb3VyIFNvdmlldCBhcm1pZXMsIGFuZCBtYWRlIGZ1cnRoZXIgYWR2YW5jZSBp
bnRvIENyaW1lYSBhbmQgaW5kdXN0cmlhbGx5IGRldmVsb3BlZCBFYXN0ZXJuIFVrcmFpbmUgKHRo
ZSBGaXJzdCBCYXR0bGUgb2YgS2hhcmtvdikgcG9zc2libGUuWzEwNl0KCgpHZXJtYW4gaW5mYW50
cnkgYW5kIGFybW91cmVkIHZlaGljbGVzIGJhdHRsZSB0aGUgU292aWV0IGRlZmVuZGVycyBvbiB0
aGUgc3RyZWV0cyBvZiBLaGFya292LCBPY3RvYmVyIDE5NDEuClRoZSBkaXZlcnNpb24gb2YgdGhy
ZWUgcXVhcnRlcnMgb2YgdGhlIEF4aXMgdHJvb3BzIGFuZCB0aGUgbWFqb3JpdHkgb2YgdGhlaXIg
YWlyIGZvcmNlcyBmcm9tIEZyYW5jZSBhbmQgdGhlIGNlbnRyYWwgTWVkaXRlcnJhbmVhbiB0byB0
aGUgRWFzdGVybiBGcm9udFsxMDddWzEwOF0gcHJvbXB0ZWQgQnJpdGFpbiB0byByZWNvbnNpZGVy
IGl0cyBncmFuZCBzdHJhdGVneS5bMTA5XSBJbiBKdWx5LCB0aGUgVUsgYW5kIHRoZSBTb3ZpZXQg
VW5pb24gZm9ybWVkIGEgbWlsaXRhcnkgYWxsaWFuY2UgYWdhaW5zdCBHZXJtYW55WzExMF0gVGhl
IEJyaXRpc2ggYW5kIFNvdmlldHMgaW52YWRlZCBJcmFuIHRvIHNlY3VyZSB0aGUgUGVyc2lhbiBD
b3JyaWRvciBhbmQgSXJhbidzIG9pbCBmaWVsZHMuWzExMV0gSW4gQXVndXN0LCB0aGUgVW5pdGVk
IEtpbmdkb20gYW5kIHRoZSBVbml0ZWQgU3RhdGVzIGpvaW50bHkgaXNzdWVkIHRoZSBBdGxhbnRp
YyBDaGFydGVyLlsxMTJdCkJ5IE9jdG9iZXIsIHdoZW4gQXhpcyBvcGVyYXRpb25hbCBvYmplY3Rp
dmVzIGluIFVrcmFpbmUgYW5kIHRoZSBCYWx0aWMgcmVnaW9uIHdlcmUgYWNoaWV2ZWQsIHdpdGgg
b25seSB0aGUgc2llZ2VzIG9mIExlbmluZ3JhZFsxMTNdIGFuZCBTZXZhc3RvcG9sIGNvbnRpbnVp
bmcsWzExNF0gYSBtYWpvciBvZmZlbnNpdmUgYWdhaW5zdCBNb3Njb3cgaGFkIGJlZW4gcmVuZXdl
ZC4gQWZ0ZXIgdHdvIG1vbnRocyBvZiBmaWVyY2UgYmF0dGxlcywgdGhlIEdlcm1hbiBhcm15IGFs
bW9zdCByZWFjaGVkIHRoZSBvdXRlciBzdWJ1cmJzIG9mIE1vc2Nvdywgd2hlcmUgdGhlIGV4aGF1
c3RlZCB0cm9vcHNbMTE1XSB3ZXJlIGZvcmNlZCB0byBzdXNwZW5kIHRoZWlyIG9mZmVuc2l2ZS5b
MTE2XSBMYXJnZSB0ZXJyaXRvcmlhbCBnYWlucyB3ZXJlIG1hZGUgYnkgQXhpcyBmb3JjZXMsIGJ1
dCB0aGVpciBjYW1wYWlnbiBoYWQgZmFpbGVkIHRvIGFjaGlldmUgaXRzIG1haW4gb2JqZWN0aXZl
czogdHdvIGtleSBjaXRpZXMgcmVtYWluZWQgaW4gU292aWV0IGhhbmRzLCB0aGUgU292aWV0IGNh
cGFiaWxpdHkgdG8gcmVzaXN0IHdhcyBub3QgYnJva2VuLCBhbmQgdGhlIFNvdmlldCBVbmlvbiBy
ZXRhaW5lZCBhIGNvbnNpZGVyYWJsZSBwYXJ0IG9mIGl0cyBtaWxpdGFyeSBwb3RlbnRpYWwuIFRo
ZSBibGl0emtyaWVnIHBoYXNlIG9mIHRoZSB3YXIgaW4gRXVyb3BlIGhhZCBlbmRlZC5bMTE3XQoK
ClRoZSBBeGlzIGNvbnRyb2xsZWQgdGVycml0b3J5IGluIEV1cm9wZSBhdCB0aGUgdGltZSBvZiBp
dHMgbWF4aW1hbCBleHBhbnNpb24gKDE5NDHigJM0MikuCkJ5IGVhcmx5IERlY2VtYmVyLCBmcmVz
aGx5IG1vYmlsaXNlZCByZXNlcnZlc1sxMThdIGFsbG93ZWQgdGhlIFNvdmlldHMgdG8gYWNoaWV2
ZSBudW1lcmljYWwgcGFyaXR5IHdpdGggQXhpcyB0cm9vcHMuWzExOV0gVGhpcywgYXMgd2VsbCBh
cyBpbnRlbGxpZ2VuY2UgZGF0YSB0aGF0IGVzdGFibGlzaGVkIGEgbWluaW1hbCBudW1iZXIgb2Yg
U292aWV0IHRyb29wcyBpbiB0aGUgRWFzdCBzdWZmaWNpZW50IHRvIHByZXZlbnQgYW55IGF0dGFj
ayBieSB0aGUgSmFwYW5lc2UgS3dhbnR1bmcgQXJteSxbMTIwXSBhbGxvd2VkIHRoZSBTb3ZpZXRz
IHRvIGJlZ2luIGEgbWFzc2l2ZSBjb3VudGVyLW9mZmVuc2l2ZSB0aGF0IHN0YXJ0ZWQgb24gNSBE
ZWNlbWJlciBhbG9uZyBhIDEsMDAwIGtpbG9tZXRyZXMgKDYyMCBtaSkgZnJvbnQgYW5kIHB1c2hl
ZCBHZXJtYW4gdHJvb3BzIDEwMOKAkzI1MCBraWxvbWV0cmVzICg2MuKAkzE2MCBtaSkgd2VzdC5b
MTIxXQpHZXJtYW4gc3VjY2Vzc2VzIGluIEV1cm9wZSBlbmNvdXJhZ2VkIEphcGFuIHRvIGluY3Jl
YXNlIHByZXNzdXJlIG9uIEV1cm9wZWFuIGdvdmVybm1lbnRzIGluIHNvdXRoLWVhc3QgQXNpYS4g
VGhlIER1dGNoIGdvdmVybm1lbnQgYWdyZWVkIHRvIHByb3ZpZGUgSmFwYW4gb2lsIHN1cHBsaWVz
IGZyb20gdGhlIER1dGNoIEVhc3QgSW5kaWVzLCB3aGlsZSByZWZ1c2luZyB0byBoYW5kIG92ZXIg
cG9saXRpY2FsIGNvbnRyb2wgb2YgdGhlIGNvbG9uaWVzLiBWaWNoeSBGcmFuY2UsIGJ5IGNvbnRy
YXN0LCBhZ3JlZWQgdG8gYSBKYXBhbmVzZSBvY2N1cGF0aW9uIG9mIEZyZW5jaCBJbmRvY2hpbmEu
WzEyMl0gVGhlIFVuaXRlZCBTdGF0ZXMsIFVuaXRlZCBLaW5nZG9tIGFuZCBvdGhlciBXZXN0ZXJu
IGdvdmVybm1lbnRzIHJlYWN0ZWQgdG8gdGhlIHNlaXp1cmUgb2YgSW5kb2NoaW5hIHdpdGggYSBm
cmVlemUgb24gSmFwYW5lc2UgYXNzZXRzLCB3aGlsZSB0aGUgVW5pdGVkIFN0YXRlcyAod2hpY2gg
c3VwcGxpZWQgODAgcGVyY2VudCBvZiBKYXBhbidzIG9pbFsxMjNdKSByZXNwb25kZWQgYnkgcGxh
Y2luZyBhIGNvbXBsZXRlIG9pbCBlbWJhcmdvLlsxMjRdIFRoYXQgbWVhbnQgSmFwYW4gd2FzIGVz
c2VudGlhbGx5IGZvcmNlZCB0byBjaG9vc2UgYmV0d2VlbiBhYmFuZG9uaW5nIGl0cyBhbWJpdGlv
bnMgaW4gQXNpYSBhbmQgdGhlIHByb3NlY3V0aW9uIG9mIHRoZSB3YXIgYWdhaW5zdCBDaGluYSwg
b3Igc2VpemluZyB0aGUgbmF0dXJhbCByZXNvdXJjZXMgaXQgbmVlZGVkIGJ5IGZvcmNlOyB0aGUg
SmFwYW5lc2UgbWlsaXRhcnkgZGlkIG5vdCBjb25zaWRlciB0aGUgZm9ybWVyIGFuIG9wdGlvbiwg
YW5kIG1hbnkgb2ZmaWNlcnMgY29uc2lkZXJlZCB0aGUgb2lsIGVtYmFyZ28gYW4gdW5zcG9rZW4g
ZGVjbGFyYXRpb24gb2Ygd2FyLlsxMjVdCkphcGFuIHBsYW5uZWQgdG8gcmFwaWRseSBzZWl6ZSBF
dXJvcGVhbiBjb2xvbmllcyBpbiBBc2lhIHRvIGNyZWF0ZSBhIGxhcmdlIGRlZmVuc2l2ZSBwZXJp
bWV0ZXIgc3RyZXRjaGluZyBpbnRvIHRoZSBDZW50cmFsIFBhY2lmaWM7IHRoZSBKYXBhbmVzZSB3
b3VsZCB0aGVuIGJlIGZyZWUgdG8gZXhwbG9pdCB0aGUgcmVzb3VyY2VzIG9mIFNvdXRoZWFzdCBB
c2lhIHdoaWxlIGV4aGF1c3RpbmcgdGhlIG92ZXItc3RyZXRjaGVkIEFsbGllcyBieSBmaWdodGlu
ZyBhIGRlZmVuc2l2ZSB3YXIuWzEyNl0gVG8gcHJldmVudCBBbWVyaWNhbiBpbnRlcnZlbnRpb24g
d2hpbGUgc2VjdXJpbmcgdGhlIHBlcmltZXRlciBpdCB3YXMgZnVydGhlciBwbGFubmVkIHRvIG5l
dXRyYWxpc2UgdGhlIFVuaXRlZCBTdGF0ZXMgUGFjaWZpYyBGbGVldCBmcm9tIHRoZSBvdXRzZXQu
WzEyN10gT24gNyBEZWNlbWJlciAoOCBEZWNlbWJlciBpbiBBc2lhbiB0aW1lIHpvbmVzKSwgMTk0
MSwgSmFwYW4gYXR0YWNrZWQgQnJpdGlzaCBhbmQgQW1lcmljYW4gaG9sZGluZ3Mgd2l0aCBuZWFy
LXNpbXVsdGFuZW91cyBvZmZlbnNpdmVzIGFnYWluc3QgU291dGhlYXN0IEFzaWEgYW5kIHRoZSBD
ZW50cmFsIFBhY2lmaWMuWzEyOF0gVGhlc2UgaW5jbHVkZWQgYW4gYXR0YWNrIG9uIHRoZSBBbWVy
aWNhbiBmbGVldCBhdCBQZWFybCBIYXJib3IsIGxhbmRpbmdzIGluIFRoYWlsYW5kIGFuZCBNYWxh
eWFbMTI4XSBhbmQgdGhlIGJhdHRsZSBvZiBIb25nIEtvbmcuCgoKVGhlIEZlYnJ1YXJ5IDE5NDIg
RmFsbCBvZiBTaW5nYXBvcmUgc2F3IDgwLDAwMCBBbGxpZWQgc29sZGllcnMgY2FwdHVyZWQgYW5k
IGVuc2xhdmVkIGJ5IHRoZSBKYXBhbmVzZS4KVGhlc2UgYXR0YWNrcyBsZWQgdGhlIFUuUy4sIEJy
aXRhaW4sIEF1c3RyYWxpYSBhbmQgb3RoZXIgQWxsaWVzIHRvIGZvcm1hbGx5IGRlY2xhcmUgd2Fy
IG9uIEphcGFuLiBHZXJtYW55IGFuZCB0aGUgb3RoZXIgbWVtYmVycyBvZiB0aGUgVHJpcGFydGl0
ZSBQYWN0IHJlc3BvbmRlZCBieSBkZWNsYXJpbmcgd2FyIG9uIHRoZSBVbml0ZWQgU3RhdGVzLiBJ
biBKYW51YXJ5LCB0aGUgVW5pdGVkIFN0YXRlcywgQnJpdGFpbiwgU292aWV0IFVuaW9uLCBDaGlu
YSwgYW5kIDIyIHNtYWxsZXIgb3IgZXhpbGVkIGdvdmVybm1lbnRzIGlzc3VlZCB0aGUgRGVjbGFy
YXRpb24gYnkgVW5pdGVkIE5hdGlvbnMsIHdoaWNoIGFmZmlybWVkIHRoZSBBdGxhbnRpYyBDaGFy
dGVyLlsxMjldIFRoZSBTb3ZpZXQgVW5pb24gZGlkIG5vdCBhZGhlcmUgdG8gdGhlIGRlY2xhcmF0
aW9uOyBpdCBtYWludGFpbmVkIGEgbmV1dHJhbGl0eSBhZ3JlZW1lbnQgd2l0aCBKYXBhbixbMTMw
XVsxMzFdIGFuZCBleGVtcHRlZCBpdHNlbGYgZnJvbSB0aGUgcHJpbmNpcGxlIG9mIHNlbGYtZGV0
ZXJtaW5hdGlvbi5bMTEyXSBGcm9tIDE5NDEsIFN0YWxpbiBwZXJzaXN0ZW50bHkgYXNrZWQgQ2h1
cmNoaWxsLCBhbmQgdGhlbiBSb29zZXZlbHQsIHRvIG9wZW4gYSAnc2Vjb25kIGZyb250JyBpbiBG
cmFuY2UuWzEzMl0gVGhlIEVhc3Rlcm4gZnJvbnQgYmVjYW1lIHRoZSBtYWpvciB0aGVhdHJlIG9m
IHdhciBpbiBFdXJvcGUgYW5kIHRoZSBtYW55IG1pbGxpb25zIG9mIFNvdmlldCBjYXN1YWx0aWVz
IGR3YXJmZWQgdGhlIGZldyBodW5kcmVkIHRob3VzYW5kIG9mIHRoZSBXZXN0ZXJuIEFsbGllczsg
Q2h1cmNoaWxsIGFuZCBSb29zZXZlbHQgc2FpZCB0aGV5IG5lZWRlZCBtb3JlIHByZXBhcmF0aW9u
IHRpbWUsIGxlYWRpbmcgdG8gY2xhaW1zIHRoZXkgc3RhbGxlZCB0byBzYXZlIFdlc3Rlcm4gbGl2
ZXMgYXQgdGhlIGV4cGVuc2Ugb2YgU292aWV0IGxpdmVzLlsxMzNdCk1lYW53aGlsZSwgYnkgdGhl
IGVuZCBvZiBBcHJpbCAxOTQyLCBKYXBhbiBhbmQgaGVyIGFsbHkgVGhhaWxhbmQgaGFkIGFsbW9z
dCBmdWxseSBjb25xdWVyZWQgQnVybWEsIE1hbGF5YSwgdGhlIER1dGNoIEVhc3QgSW5kaWVzLCBT
aW5nYXBvcmUsWzEzNF0gYW5kIFJhYmF1bCwgaW5mbGljdGluZyBzZXZlcmUgbG9zc2VzIG9uIEFs
bGllZCB0cm9vcHMgYW5kIHRha2luZyBhIGxhcmdlIG51bWJlciBvZiBwcmlzb25lcnMuIERlc3Bp
dGUgYSBzdHViYm9ybiByZXNpc3RhbmNlIGluIENvcnJlZ2lkb3IsIHRoZSBQaGlsaXBwaW5lcyB3
YXMgZXZlbnR1YWxseSBjYXB0dXJlZCBpbiBNYXkgMTk0MiwgZm9yY2luZyB0aGUgZ292ZXJubWVu
dCBvZiB0aGUgUGhpbGlwcGluZSBDb21tb253ZWFsdGggaW50byBleGlsZS5bMTM1XSBKYXBhbmVz
ZSBmb3JjZXMgYWxzbyBhY2hpZXZlZCBuYXZhbCB2aWN0b3JpZXMgaW4gdGhlIFNvdXRoIENoaW5h
IFNlYSwgSmF2YSBTZWEgYW5kIEluZGlhbiBPY2VhbixbMTM2XSBhbmQgYm9tYmVkIHRoZSBBbGxp
ZWQgbmF2YWwgYmFzZSBhdCBEYXJ3aW4sIEF1c3RyYWxpYS4gVGhlIG9ubHkgcmVhbCBBbGxpZWQg
c3VjY2VzcyBhZ2FpbnN0IEphcGFuIHdhcyBhIENoaW5lc2UgdmljdG9yeSBhdCBDaGFuZ3NoYSBp
biBlYXJseSBKYW51YXJ5IDE5NDIuWzEzN10gVGhlc2UgZWFzeSB2aWN0b3JpZXMgb3ZlciB1bnBy
ZXBhcmVkIG9wcG9uZW50cyBsZWZ0IEphcGFuIG92ZXJjb25maWRlbnQsIGFzIHdlbGwgYXMgb3Zl
cmV4dGVuZGVkLlsxMzhdCkdlcm1hbnkgcmV0YWluZWQgdGhlIGluaXRpYXRpdmUgYXMgd2VsbC4g
RXhwbG9pdGluZyBkdWJpb3VzIEFtZXJpY2FuIG5hdmFsIGNvbW1hbmQgZGVjaXNpb25zLCB0aGUg
R2VybWFuIG5hdnkgcmF2YWdlZCBBbGxpZWQgc2hpcHBpbmcgb2ZmIHRoZSBBbWVyaWNhbiBBdGxh
bnRpYyBjb2FzdC5bMTM5XSBEZXNwaXRlIGNvbnNpZGVyYWJsZSBsb3NzZXMsIEV1cm9wZWFuIEF4
aXMgbWVtYmVycyBzdG9wcGVkIGEgbWFqb3IgU292aWV0IG9mZmVuc2l2ZSBpbiBDZW50cmFsIGFu
ZCBTb3V0aGVybiBSdXNzaWEsIGtlZXBpbmcgbW9zdCB0ZXJyaXRvcmlhbCBnYWlucyB0aGV5IGFj
aGlldmVkIGR1cmluZyB0aGUgcHJldmlvdXMgeWVhci5bMTQwXSBJbiBOb3J0aCBBZnJpY2EsIHRo
ZSBHZXJtYW5zIGxhdW5jaGVkIGFuIG9mZmVuc2l2ZSBpbiBKYW51YXJ5LCBwdXNoaW5nIHRoZSBC
cml0aXNoIGJhY2sgdG8gcG9zaXRpb25zIGF0IHRoZSBHYXphbGEgTGluZSBieSBlYXJseSBGZWJy
dWFyeSxbMTQxXSBmb2xsb3dlZCBieSBhIHRlbXBvcmFyeSBsdWxsIGluIGNvbWJhdCB3aGljaCBH
ZXJtYW55IHVzZWQgdG8gcHJlcGFyZSBmb3IgdGhlaXIgdXBjb21pbmcgb2ZmZW5zaXZlcy5bMTQy
XQpBeGlzIGFkdmFuY2Ugc3RhbGxzCgoKQW1lcmljYW4gZGl2ZSBib21iZXJzIGVuZ2FnZSB0aGUg
TWlrdW1hIGF0IHRoZSBCYXR0bGUgb2YgTWlkd2F5LCBKdW5lIDE5NDIuCkluIGVhcmx5IE1heSAx
OTQyLCBKYXBhbiBpbml0aWF0ZWQgb3BlcmF0aW9ucyB0byBjYXB0dXJlIFBvcnQgTW9yZXNieSBi
eSBhbXBoaWJpb3VzIGFzc2F1bHQgYW5kIHRodXMgc2V2ZXIgY29tbXVuaWNhdGlvbnMgYW5kIHN1
cHBseSBsaW5lcyBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBBdXN0cmFsaWEuIFRoZSBB
bGxpZXMsIGhvd2V2ZXIsIGludGVyY2VwdGVkIGFuZCB0dXJuZWQgYmFjayBKYXBhbmVzZSBuYXZh
bCBmb3JjZXMsIHN1Y2Nlc3NmdWxseSBwcmV2ZW50aW5nIHRoZSBpbnZhc2lvbi5bMTQzXSBKYXBh
bidzIG5leHQgcGxhbiwgbW90aXZhdGVkIGJ5IHRoZSBlYXJsaWVyIGJvbWJpbmcgb24gVG9reW8s
IHdhcyB0byBzZWl6ZSBNaWR3YXkgQXRvbGwgYW5kIGx1cmUgQW1lcmljYW4gY2FycmllcnMgaW50
byBiYXR0bGUgdG8gYmUgZWxpbWluYXRlZDsgYXMgYSBkaXZlcnNpb24sIEphcGFuIHdvdWxkIGFs
c28gc2VuZCBmb3JjZXMgdG8gb2NjdXB5IHRoZSBBbGV1dGlhbiBJc2xhbmRzIGluIEFsYXNrYS5b
MTQ0XSBJbiBlYXJseSBKdW5lLCBKYXBhbiBwdXQgaXRzIG9wZXJhdGlvbnMgaW50byBhY3Rpb24g
YnV0IHRoZSBBbWVyaWNhbnMsIGhhdmluZyBicm9rZW4gSmFwYW5lc2UgbmF2YWwgY29kZXMgaW4g
bGF0ZSBNYXksIHdlcmUgZnVsbHkgYXdhcmUgb2YgdGhlIHBsYW5zIGFuZCBmb3JjZSBkaXNwb3Np
dGlvbnMgYW5kIHVzZWQgdGhpcyBrbm93bGVkZ2UgdG8gYWNoaWV2ZSBhIGRlY2lzaXZlIHZpY3Rv
cnkgYXQgTWlkd2F5IG92ZXIgdGhlIEltcGVyaWFsIEphcGFuZXNlIE5hdnkuWzE0NV0KV2l0aCBp
dHMgY2FwYWNpdHkgZm9yIGFnZ3Jlc3NpdmUgYWN0aW9uIGdyZWF0bHkgZGltaW5pc2hlZCBhcyBh
IHJlc3VsdCBvZiB0aGUgTWlkd2F5IGJhdHRsZSwgSmFwYW4gY2hvc2UgdG8gZm9jdXMgb24gYSBi
ZWxhdGVkIGF0dGVtcHQgdG8gY2FwdHVyZSBQb3J0IE1vcmVzYnkgYnkgYW4gb3ZlcmxhbmQgY2Ft
cGFpZ24gaW4gdGhlIFRlcnJpdG9yeSBvZiBQYXB1YS5bMTQ2XSBUaGUgQW1lcmljYW5zIHBsYW5u
ZWQgYSBjb3VudGVyLWF0dGFjayBhZ2FpbnN0IEphcGFuZXNlIHBvc2l0aW9ucyBpbiB0aGUgc291
dGhlcm4gU29sb21vbiBJc2xhbmRzLCBwcmltYXJpbHkgR3VhZGFsY2FuYWwsIGFzIGEgZmlyc3Qg
c3RlcCB0b3dhcmRzIGNhcHR1cmluZyBSYWJhdWwsIHRoZSBtYWluIEphcGFuZXNlIGJhc2UgaW4g
U291dGhlYXN0IEFzaWEuWzE0N10KQm90aCBwbGFucyBzdGFydGVkIGluIEp1bHksIGJ1dCBieSBt
aWQtU2VwdGVtYmVyLCB0aGUgYmF0dGxlIGZvciBHdWFkYWxjYW5hbCB0b29rIHByaW9yaXR5IGZv
ciB0aGUgSmFwYW5lc2UsIGFuZCB0cm9vcHMgaW4gTmV3IEd1aW5lYSB3ZXJlIG9yZGVyZWQgdG8g
d2l0aGRyYXcgZnJvbSB0aGUgUG9ydCBNb3Jlc2J5IGFyZWEgdG8gdGhlIG5vcnRoZXJuIHBhcnQg
b2YgdGhlIGlzbGFuZCwgd2hlcmUgdGhleSBmYWNlZCBBdXN0cmFsaWFuIGFuZCBVbml0ZWQgU3Rh
dGVzIHRyb29wcyBpbiB0aGUgQmF0dGxlIG9mIEJ1bmEtR29uYS5bMTQ4XSBHdWFkYWxjYW5hbCBz
b29uIGJlY2FtZSBhIGZvY2FsIHBvaW50IGZvciBib3RoIHNpZGVzIHdpdGggaGVhdnkgY29tbWl0
bWVudHMgb2YgdHJvb3BzIGFuZCBzaGlwcyBpbiB0aGUgYmF0dGxlIGZvciBHdWFkYWxjYW5hbC4g
QnkgdGhlIHN0YXJ0IG9mIDE5NDMsIHRoZSBKYXBhbmVzZSB3ZXJlIGRlZmVhdGVkIG9uIHRoZSBp
c2xhbmQgYW5kIHdpdGhkcmV3IHRoZWlyIHRyb29wcy5bMTQ5XSBJbiBCdXJtYSwgQ29tbW9ud2Vh
bHRoIGZvcmNlcyBtb3VudGVkIHR3byBvcGVyYXRpb25zLiBUaGUgZmlyc3QsIGFuIG9mZmVuc2l2
ZSBpbnRvIHRoZSBBcmFrYW4gcmVnaW9uIGluIGxhdGUgMTk0Miwgd2VudCBkaXNhc3Ryb3VzbHks
IGZvcmNpbmcgYSByZXRyZWF0IGJhY2sgdG8gSW5kaWEgYnkgTWF5IDE5NDMuWzE1MF0gVGhlIHNl
Y29uZCB3YXMgdGhlIGluc2VydGlvbiBvZiBpcnJlZ3VsYXIgZm9yY2VzIGJlaGluZCBKYXBhbmVz
ZSBmcm9udC1saW5lcyBpbiBGZWJydWFyeSB3aGljaCwgYnkgdGhlIGVuZCBvZiBBcHJpbCwgaGFk
IGFjaGlldmVkIGR1YmlvdXMgcmVzdWx0cy5bMTUxXQoKCkEgU292aWV0IHNvbGRpZXIgd2F2aW5n
IHRoZSBSZWQgQmFubmVyIG92ZXIgdGhlIGNlbnRyYWwgcGxhemEgaW4gU3RhbGluZ3JhZCwgMTk0
My4KT24gR2VybWFueSdzIGVhc3Rlcm4gZnJvbnQsIHRoZSBBeGlzIGRlZmVhdGVkIFNvdmlldCBv
ZmZlbnNpdmVzIGluIHRoZSBLZXJjaCBQZW5pbnN1bGEgYW5kIGF0IEtoYXJrb3YsWzE1Ml0gYW5k
IHRoZW4gbGF1bmNoZWQgdGhlaXIgbWFpbiBzdW1tZXIgb2ZmZW5zaXZlIGFnYWluc3Qgc291dGhl
cm4gUnVzc2lhIGluIEp1bmUgMTk0MiwgdG8gc2VpemUgdGhlIG9pbCBmaWVsZHMgb2YgdGhlIENh
dWNhc3VzIGFuZCBvY2N1cHkgS3ViYW4gc3RlcHBlLCB3aGlsZSBtYWludGFpbmluZyBwb3NpdGlv
bnMgb24gdGhlIG5vcnRoZXJuIGFuZCBjZW50cmFsIGFyZWFzIG9mIHRoZSBmcm9udC4gVGhlIEdl
cm1hbnMgc3BsaXQgdGhlIEFybXkgR3JvdXAgU291dGggaW50byB0d28gZ3JvdXBzOiBBcm15IEdy
b3VwIEEgc3RydWNrIGxvd2VyIERvbiBSaXZlciB3aGlsZSBBcm15IEdyb3VwIEIgc3RydWNrIHNv
dXRoLWVhc3QgdG8gdGhlIENhdWNhc3VzLCB0b3dhcmRzIFZvbGdhIFJpdmVyLlsxNTNdIFRoZSBT
b3ZpZXRzIGRlY2lkZWQgdG8gbWFrZSB0aGVpciBzdGFuZCBhdCBTdGFsaW5ncmFkLCB3aGljaCB3
YXMgaW4gdGhlIHBhdGggb2YgdGhlIGFkdmFuY2luZyBHZXJtYW4gYXJtaWVzLgpCeSBtaWQtTm92
ZW1iZXIgdGhlIEdlcm1hbnMgaGFkIG5lYXJseSB0YWtlbiBTdGFsaW5ncmFkIGluIGJpdHRlciBz
dHJlZXQgZmlnaHRpbmcgd2hlbiB0aGUgU292aWV0cyBiZWdhbiB0aGVpciBzZWNvbmQgd2ludGVy
IGNvdW50ZXItb2ZmZW5zaXZlLCBzdGFydGluZyB3aXRoIGFuIGVuY2lyY2xlbWVudCBvZiBHZXJt
YW4gZm9yY2VzIGF0IFN0YWxpbmdyYWRbMTU0XSBhbmQgYW4gYXNzYXVsdCBvbiB0aGUgUnpoZXYg
c2FsaWVudCBuZWFyIE1vc2NvdywgdGhvdWdoIHRoZSBsYXR0ZXIgZmFpbGVkIGRpc2FzdHJvdXNs
eS5bMTU1XSBCeSBlYXJseSBGZWJydWFyeSAxOTQzLCB0aGUgR2VybWFuIEFybXkgaGFkIHRha2Vu
IHRyZW1lbmRvdXMgbG9zc2VzOyBHZXJtYW4gdHJvb3BzIGF0IFN0YWxpbmdyYWQgaGFkIGJlZW4g
Zm9yY2VkIHRvIHN1cnJlbmRlclsxNTZdIGFuZCB0aGUgZnJvbnQtbGluZSBoYWQgYmVlbiBwdXNo
ZWQgYmFjayBiZXlvbmQgaXRzIHBvc2l0aW9uIGJlZm9yZSB0aGUgc3VtbWVyIG9mZmVuc2l2ZS4g
SW4gbWlkLUZlYnJ1YXJ5LCBhZnRlciB0aGUgU292aWV0IHB1c2ggaGFkIHRhcGVyZWQgb2ZmLCB0
aGUgR2VybWFucyBsYXVuY2hlZCBhbm90aGVyIGF0dGFjayBvbiBLaGFya292LCBjcmVhdGluZyBh
IHNhbGllbnQgaW4gdGhlaXIgZnJvbnQgbGluZSBhcm91bmQgdGhlIFJ1c3NpYW4gY2l0eSBvZiBL
dXJzay5bMTU3XQoKCkJyaXRpc2ggQ3J1c2FkZXIgdGFua3MgbW92aW5nIHRvIGZvcndhcmQgcG9z
aXRpb25zIGR1cmluZyB0aGUgTm9ydGggQWZyaWNhbiBDYW1wYWlnbi4KQnkgTm92ZW1iZXIgMTk0
MSwgQ29tbW9ud2VhbHRoIGZvcmNlcyBoYWQgbGF1bmNoZWQgYSBjb3VudGVyLW9mZmVuc2l2ZSwg
T3BlcmF0aW9uIENydXNhZGVyLCBpbiBOb3J0aCBBZnJpY2EsIGFuZCByZWNsYWltZWQgYWxsIHRo
ZSBnYWlucyB0aGUgR2VybWFucyBhbmQgSXRhbGlhbnMgaGFkIG1hZGUuWzE1OF0gSW4gdGhlIFdl
c3QsIGNvbmNlcm5zIHRoZSBKYXBhbmVzZSBtaWdodCB1dGlsaXplIGJhc2VzIGluIFZpY2h5LWhl
bGQgTWFkYWdhc2NhciBjYXVzZWQgdGhlIEJyaXRpc2ggdG8gaW52YWRlIHRoZSBpc2xhbmQgaW4g
ZWFybHkgTWF5IDE5NDIuWzE1OV0gVGhpcyBzdWNjZXNzIHdhcyBvZmZzZXQgc29vbiBhZnRlciBi
eSBhbiBBeGlzIG9mZmVuc2l2ZSBpbiBMaWJ5YSB3aGljaCBwdXNoZWQgdGhlIEFsbGllcyBiYWNr
IGludG8gRWd5cHQgdW50aWwgQXhpcyBmb3JjZXMgd2VyZSBzdG9wcGVkIGF0IEVsIEFsYW1laW4u
WzE2MF0gT24gdGhlIENvbnRpbmVudCwgcmFpZHMgb2YgQWxsaWVkIGNvbW1hbmRvcyBvbiBzdHJh
dGVnaWMgdGFyZ2V0cywgY3VsbWluYXRpbmcgaW4gdGhlIGRpc2FzdHJvdXMgRGllcHBlIFJhaWQs
WzE2MV0gZGVtb25zdHJhdGVkIHRoZSBXZXN0ZXJuIEFsbGllcycgaW5hYmlsaXR5IHRvIGxhdW5j
aCBhbiBpbnZhc2lvbiBvZiBjb250aW5lbnRhbCBFdXJvcGUgd2l0aG91dCBtdWNoIGJldHRlciBw
cmVwYXJhdGlvbiwgZXF1aXBtZW50LCBhbmQgb3BlcmF0aW9uYWwgc2VjdXJpdHkuWzE2Ml0KSW4g
QXVndXN0IDE5NDIsIHRoZSBBbGxpZXMgc3VjY2VlZGVkIGluIHJlcGVsbGluZyBhIHNlY29uZCBh
dHRhY2sgYWdhaW5zdCBFbCBBbGFtZWluIGFuZCwgYXQgYSBoaWdoIGNvc3QsIG1hbmFnZWQgdG8g
ZGVsaXZlciBkZXNwZXJhdGVseSBuZWVkZWQgc3VwcGxpZXMgdG8gdGhlIGJlc2llZ2VkIE1hbHRh
LlsxNjNdIEEgZmV3IG1vbnRocyBsYXRlciwgdGhlIEFsbGllcyBjb21tZW5jZWQgYW4gYXR0YWNr
IG9mIHRoZWlyIG93biBpbiBFZ3lwdCwgZGlzbG9kZ2luZyB0aGUgQXhpcyBmb3JjZXMgYW5kIGJl
Z2lubmluZyBhIGRyaXZlIHdlc3QgYWNyb3NzIExpYnlhLlsxNjRdIFRoaXMgYXR0YWNrIHdhcyBm
b2xsb3dlZCB1cCBzaG9ydGx5IGFmdGVyIGJ5IGFuIEFuZ2xvLUFtZXJpY2FuIGludmFzaW9uIG9m
IEZyZW5jaCBOb3J0aCBBZnJpY2EsIHdoaWNoIHJlc3VsdGVkIGluIHRoZSByZWdpb24gam9pbmlu
ZyB0aGUgQWxsaWVzLlsxNjVdIEhpdGxlciByZXNwb25kZWQgdG8gdGhlIEZyZW5jaCBjb2xvbnkn
cyBkZWZlY3Rpb24gYnkgb3JkZXJpbmcgdGhlIG9jY3VwYXRpb24gb2YgVmljaHkgRnJhbmNlO1sx
NjVdIGFsdGhvdWdoIFZpY2h5IGZvcmNlcyBkaWQgbm90IHJlc2lzdCB0aGlzIHZpb2xhdGlvbiBv
ZiB0aGUgYXJtaXN0aWNlLCB0aGV5IG1hbmFnZWQgdG8gc2N1dHRsZSB0aGVpciBmbGVldCB0byBw
cmV2ZW50IGl0cyBjYXB0dXJlIGJ5IEdlcm1hbiBmb3JjZXMuWzE2Nl0gVGhlIG5vdyBwaW5jZXJl
ZCBBeGlzIGZvcmNlcyBpbiBBZnJpY2Egd2l0aGRyZXcgaW50byBUdW5pc2lhLCB3aGljaCB3YXMg
Y29ucXVlcmVkIGJ5IHRoZSBBbGxpZXMgaW4gTWF5IDE5NDMuWzE2N10KQWxsaWVzIGdhaW4gbW9t
ZW50dW0KCgoKQSBjb250ZW1wb3JhcnkgdmlkZW8gc2hvd2luZyBib21iaW5nIG9mIEhhbWJ1cmcg
YnkgdGhlIEFsbGllcy4KRm9sbG93aW5nIHRoZSBHdWFkYWxjYW5hbCBDYW1wYWlnbiwgdGhlIEFs
bGllcyBpbml0aWF0ZWQgc2V2ZXJhbCBvcGVyYXRpb25zIGFnYWluc3QgSmFwYW4gaW4gdGhlIFBh
Y2lmaWMuIEluIE1heSAxOTQzLCBBbGxpZWQgZm9yY2VzIHdlcmUgc2VudCB0byBlbGltaW5hdGUg
SmFwYW5lc2UgZm9yY2VzIGZyb20gdGhlIEFsZXV0aWFucyxbMTY4XSBhbmQgc29vbiBhZnRlciBi
ZWdhbiBtYWpvciBvcGVyYXRpb25zIHRvIGlzb2xhdGUgUmFiYXVsIGJ5IGNhcHR1cmluZyBzdXJy
b3VuZGluZyBpc2xhbmRzLCBhbmQgdG8gYnJlYWNoIHRoZSBKYXBhbmVzZSBDZW50cmFsIFBhY2lm
aWMgcGVyaW1ldGVyIGF0IHRoZSBHaWxiZXJ0IGFuZCBNYXJzaGFsbCBJc2xhbmRzLlsxNjldIEJ5
IHRoZSBlbmQgb2YgTWFyY2ggMTk0NCwgdGhlIEFsbGllcyBoYWQgY29tcGxldGVkIGJvdGggb2Yg
dGhlc2Ugb2JqZWN0aXZlcywgYW5kIGFkZGl0aW9uYWxseSBuZXV0cmFsaXNlZCB0aGUgbWFqb3Ig
SmFwYW5lc2UgYmFzZSBhdCBUcnVrIGluIHRoZSBDYXJvbGluZSBJc2xhbmRzLiBJbiBBcHJpbCwg
dGhlIEFsbGllcyB0aGVuIGxhdW5jaGVkIGFuIG9wZXJhdGlvbiB0byByZXRha2UgV2VzdGVybiBO
ZXcgR3VpbmVhLlsxNzBdCkluIHRoZSBTb3ZpZXQgVW5pb24sIGJvdGggdGhlIEdlcm1hbnMgYW5k
IHRoZSBTb3ZpZXRzIHNwZW50IHRoZSBzcHJpbmcgYW5kIGVhcmx5IHN1bW1lciBvZiAxOTQzIG1h
a2luZyBwcmVwYXJhdGlvbnMgZm9yIGxhcmdlIG9mZmVuc2l2ZXMgaW4gQ2VudHJhbCBSdXNzaWEu
IE9uIDQgSnVseSAxOTQzLCBHZXJtYW55IGF0dGFja2VkIFNvdmlldCBmb3JjZXMgYXJvdW5kIHRo
ZSBLdXJzayBCdWxnZS4gV2l0aGluIGEgd2VlaywgR2VybWFuIGZvcmNlcyBoYWQgZXhoYXVzdGVk
IHRoZW1zZWx2ZXMgYWdhaW5zdCB0aGUgU292aWV0cycgZGVlcGx5IGVjaGVsb25lZCBhbmQgd2Vs
bC1jb25zdHJ1Y3RlZCBkZWZlbmNlc1sxNzFdWzE3Ml0gYW5kLCBmb3IgdGhlIGZpcnN0IHRpbWUg
aW4gdGhlIHdhciwgSGl0bGVyIGNhbmNlbGxlZCB0aGUgb3BlcmF0aW9uIGJlZm9yZSBpdCBoYWQg
YWNoaWV2ZWQgdGFjdGljYWwgb3Igb3BlcmF0aW9uYWwgc3VjY2Vzcy5bMTczXSBUaGlzIGRlY2lz
aW9uIHdhcyBwYXJ0aWFsbHkgYWZmZWN0ZWQgYnkgdGhlIFdlc3Rlcm4gQWxsaWVzJyBpbnZhc2lv
biBvZiBTaWNpbHkgbGF1bmNoZWQgb24gOSBKdWx5IHdoaWNoLCBjb21iaW5lZCB3aXRoIHByZXZp
b3VzIEl0YWxpYW4gZmFpbHVyZXMsIHJlc3VsdGVkIGluIHRoZSBvdXN0aW5nIGFuZCBhcnJlc3Qg
b2YgTXVzc29saW5pIGxhdGVyIHRoYXQgbW9udGguWzE3NF0KT24gMTIgSnVseSAxOTQzLCB0aGUg
U292aWV0cyBsYXVuY2hlZCB0aGVpciBvd24gY291bnRlci1vZmZlbnNpdmVzLCB0aGVyZWJ5IGRp
c3BlbGxpbmcgYW55IGhvcGVzIG9mIHRoZSBHZXJtYW4gQXJteSBmb3IgdmljdG9yeSBvciBldmVu
IHN0YWxlbWF0ZSBpbiB0aGUgZWFzdC4gVGhlIFNvdmlldCB2aWN0b3J5IGF0IEt1cnNrIGhlcmFs
ZGVkIHRoZSBkb3duZmFsbCBvZiBHZXJtYW4gc3VwZXJpb3JpdHksWzE3NV0gZ2l2aW5nIHRoZSBT
b3ZpZXQgVW5pb24gdGhlIGluaXRpYXRpdmUgb24gdGhlIEVhc3Rlcm4gRnJvbnQuWzE3Nl1bMTc3
XSBUaGUgR2VybWFucyBhdHRlbXB0ZWQgdG8gc3RhYmlsaXNlIHRoZWlyIGVhc3Rlcm4gZnJvbnQg
YWxvbmcgdGhlIGhhc3RpbHkgZm9ydGlmaWVkIFBhbnRoZXItV290YW4gbGluZSwgaG93ZXZlciwg
dGhlIFNvdmlldHMgYnJva2UgdGhyb3VnaCBpdCBhdCBTbW9sZW5zayBhbmQgYnkgdGhlIExvd2Vy
IERuaWVwZXIgT2ZmZW5zaXZlcy5bMTc4XQoKClNvdmlldCBzb2xkaWVycyBwcmVwYXJpbmcgdGhl
IHJhZnRzIHRvIGNyb3NzIHRoZSBEbmllcGVyICh0aGUgc2lnbiByZWFkcyAiWW91IHdpbGwgZ2l2
ZSBtZSBLaWV2ISIpLi4uCkluIGVhcmx5IFNlcHRlbWJlciAxOTQzLCB0aGUgV2VzdGVybiBBbGxp
ZXMgaW52YWRlZCB0aGUgSXRhbGlhbiBtYWlubGFuZCwgZm9sbG93aW5nIGFuIEl0YWxpYW4gYXJt
aXN0aWNlIHdpdGggdGhlIEFsbGllcy5bMTc5XSBHZXJtYW55IHJlc3BvbmRlZCBieSBkaXNhcm1p
bmcgSXRhbGlhbiBmb3JjZXMsIHNlaXppbmcgbWlsaXRhcnkgY29udHJvbCBvZiBJdGFsaWFuIGFy
ZWFzLFsxODBdIGFuZCBjcmVhdGluZyBhIHNlcmllcyBvZiBkZWZlbnNpdmUgbGluZXMuWzE4MV0g
R2VybWFuIHNwZWNpYWwgZm9yY2VzIHRoZW4gcmVzY3VlZCBNdXNzb2xpbmksIHdobyB0aGVuIHNv
b24gZXN0YWJsaXNoZWQgYSBuZXcgY2xpZW50IHN0YXRlIGluIEdlcm1hbiBvY2N1cGllZCBJdGFs
eSBuYW1lZCB0aGUgSXRhbGlhbiBTb2NpYWwgUmVwdWJsaWMuWzE4Ml0gVGhlIFdlc3Rlcm4gQWxs
aWVzIGZvdWdodCB0aHJvdWdoIHNldmVyYWwgbGluZXMgdW50aWwgcmVhY2hpbmcgdGhlIG1haW4g
R2VybWFuIGRlZmVuc2l2ZSBsaW5lIGluIG1pZC1Ob3ZlbWJlci5bMTgzXQpHZXJtYW4gb3BlcmF0
aW9ucyBpbiB0aGUgQXRsYW50aWMgYWxzbyBzdWZmZXJlZC4gQnkgTWF5IDE5NDMsIGFzIEFsbGll
ZCBjb3VudGVyLW1lYXN1cmVzIGJlY2FtZSBpbmNyZWFzaW5nbHkgZWZmZWN0aXZlLCB0aGUgcmVz
dWx0aW5nIHNpemFibGUgR2VybWFuIHN1Ym1hcmluZSBsb3NzZXMgZm9yY2VkIGEgdGVtcG9yYXJ5
IGhhbHQgb2YgdGhlIEdlcm1hbiBBdGxhbnRpYyBuYXZhbCBjYW1wYWlnbi5bMTg0XSBJbiBOb3Zl
bWJlciAxOTQzLCBGcmFua2xpbiBELiBSb29zZXZlbHQgYW5kIFdpbnN0b24gQ2h1cmNoaWxsIG1l
dCB3aXRoIENoaWFuZyBLYWktc2hlayBpbiBDYWlyb1sxODVdIGFuZCB0aGVuIHdpdGggSm9zZXBo
IFN0YWxpbiBpbiBUZWhyYW4uWzE4Nl0gVGhlIGZvcm1lciBjb25mZXJlbmNlIGRldGVybWluZWQg
dGhlIHBvc3Qtd2FyIHJldHVybiBvZiBKYXBhbmVzZSB0ZXJyaXRvcnksWzE4NV0gd2hpbGUgdGhl
IGxhdHRlciBpbmNsdWRlZCBhZ3JlZW1lbnQgdGhhdCB0aGUgV2VzdGVybiBBbGxpZXMgd291bGQg
aW52YWRlIEV1cm9wZSBpbiAxOTQ0IGFuZCB0aGF0IHRoZSBTb3ZpZXQgVW5pb24gd291bGQgZGVj
bGFyZSB3YXIgb24gSmFwYW4gd2l0aGluIHRocmVlIG1vbnRocyBvZiBHZXJtYW55J3MgZGVmZWF0
LlsxODZdCgoKQnJpdGlzaCB0cm9vcHMgZmlyaW5nIGEgbW9ydGFyIGR1cmluZyB0aGUgQmF0dGxl
IG9mIEltcGhhbCwgTm9ydGggRWFzdCBJbmRpYSwgMTk0NC4KSW4gSmFudWFyeSAxOTQ0LCB0aGUg
QWxsaWVzIGxhdW5jaGVkIGEgc2VyaWVzIG9mIGF0dGFja3MgaW4gSXRhbHkgYWdhaW5zdCB0aGUg
bGluZSBhdCBNb250ZSBDYXNzaW5vIGFuZCBhdHRlbXB0ZWQgdG8gb3V0ZmxhbmsgaXQgd2l0aCBs
YW5kaW5ncyBhdCBBbnppby5bMTg3XSBCeSB0aGUgZW5kIG9mIEphbnVhcnksIGEgbWFqb3IgU292
aWV0IG9mZmVuc2l2ZSBleHBlbGxlZCBHZXJtYW4gZm9yY2VzIGZyb20gdGhlIExlbmluZ3JhZCBy
ZWdpb24sWzE4OF0gZW5kaW5nIHRoZSBsb25nZXN0IGFuZCBtb3N0IGxldGhhbCBzaWVnZSBpbiBo
aXN0b3J5LiBUaGUgZm9sbG93aW5nIFNvdmlldCBvZmZlbnNpdmUgd2FzIGhhbHRlZCBvbiB0aGUg
cHJlLXdhciBFc3RvbmlhbiBib3JkZXIgYnkgdGhlIEdlcm1hbiBBcm15IEdyb3VwIE5vcnRoIGFp
ZGVkIGJ5IEVzdG9uaWFucyBob3BpbmcgdG8gcmUtZXN0YWJsaXNoIG5hdGlvbmFsIGluZGVwZW5k
ZW5jZS4gVGhpcyBkZWxheSBzbG93ZWQgc3Vic2VxdWVudCBTb3ZpZXQgb3BlcmF0aW9ucyBpbiB0
aGUgQmFsdGljIFNlYSByZWdpb24uWzE4OV0gQnkgbGF0ZSBNYXkgMTk0NCwgdGhlIFNvdmlldHMg
aGFkIGxpYmVyYXRlZCBDcmltZWEsIGxhcmdlbHkgZXhwZWxsZWQgQXhpcyBmb3JjZXMgZnJvbSBV
a3JhaW5lLCBhbmQgbWFkZSBpbmN1cnNpb25zIGludG8gUm9tYW5pYSwgd2hpY2ggd2VyZSByZXB1
bHNlZCBieSB0aGUgQXhpcyB0cm9vcHMuWzE5MF0gVGhlIEFsbGllZCBvZmZlbnNpdmVzIGluIEl0
YWx5IGhhZCBzdWNjZWVkZWQgYW5kLCBhdCB0aGUgZXhwZW5zZSBvZiBhbGxvd2luZyBzZXZlcmFs
IEdlcm1hbiBkaXZpc2lvbnMgdG8gcmV0cmVhdCwgb24gNCBKdW5lIFJvbWUgd2FzIGNhcHR1cmVk
LlsxOTFdClRoZSBBbGxpZXMgZXhwZXJpZW5jZWQgbWl4ZWQgZm9ydHVuZXMgaW4gbWFpbmxhbmQg
QXNpYS4gSW4gTWFyY2ggMTk0NCwgdGhlIEphcGFuZXNlIGxhdW5jaGVkIHRoZSBmaXJzdCBvZiB0
d28gaW52YXNpb25zLCBhbiBvcGVyYXRpb24gYWdhaW5zdCBCcml0aXNoIHBvc2l0aW9ucyBpbiBB
c3NhbSwgSW5kaWEsWzE5Ml0gYW5kIHNvb24gYmVzaWVnZWQgQ29tbW9ud2VhbHRoIHBvc2l0aW9u
cyBhdCBJbXBoYWwgYW5kIEtvaGltYS5bMTkzXSBJbiBNYXkgMTk0NCwgQnJpdGlzaCBmb3JjZXMg
bW91bnRlZCBhIGNvdW50ZXItb2ZmZW5zaXZlIHRoYXQgZHJvdmUgSmFwYW5lc2UgdHJvb3BzIGJh
Y2sgdG8gQnVybWEsWzE5M10gYW5kIENoaW5lc2UgZm9yY2VzIHRoYXQgaGFkIGludmFkZWQgbm9y
dGhlcm4gQnVybWEgaW4gbGF0ZSAxOTQzIGJlc2llZ2VkIEphcGFuZXNlIHRyb29wcyBpbiBNeWl0
a3lpbmEuWzE5NF0gVGhlIHNlY29uZCBKYXBhbmVzZSBpbnZhc2lvbiBhdHRlbXB0ZWQgdG8gZGVz
dHJveSBDaGluYSdzIG1haW4gZmlnaHRpbmcgZm9yY2VzLCBzZWN1cmUgcmFpbHdheXMgYmV0d2Vl
biBKYXBhbmVzZS1oZWxkIHRlcnJpdG9yeSBhbmQgY2FwdHVyZSBBbGxpZWQgYWlyZmllbGRzLlsx
OTVdIEJ5IEp1bmUsIHRoZSBKYXBhbmVzZSBoYWQgY29ucXVlcmVkIHRoZSBwcm92aW5jZSBvZiBI
ZW5hbiBhbmQgYmVndW4gYSByZW5ld2VkIGF0dGFjayBhZ2FpbnN0IENoYW5nc2hhIGluIHRoZSBI
dW5hbiBwcm92aW5jZS5bMTk2XQpBbGxpZXMgY2xvc2UgaW4KCgpBbGxpZWQgSW52YXNpb24gb2Yg
Tm9ybWFuZHksIDYgSnVuZSAxOTQ0Ck9uIDYgSnVuZSAxOTQ0IChrbm93biBhcyBELURheSksIGFm
dGVyIHRocmVlIHllYXJzIG9mIFNvdmlldCBwcmVzc3VyZSxbMTk3XSB0aGUgV2VzdGVybiBBbGxp
ZXMgaW52YWRlZCBub3J0aGVybiBGcmFuY2UuIEFmdGVyIHJlYXNzaWduaW5nIHNldmVyYWwgQWxs
aWVkIGRpdmlzaW9ucyBmcm9tIEl0YWx5LCB0aGV5IGFsc28gYXR0YWNrZWQgc291dGhlcm4gRnJh
bmNlLlsxOThdIFRoZXNlIGxhbmRpbmdzIHdlcmUgc3VjY2Vzc2Z1bCwgYW5kIGxlZCB0byB0aGUg
ZGVmZWF0IG9mIHRoZSBHZXJtYW4gQXJteSB1bml0cyBpbiBGcmFuY2UuIFBhcmlzIHdhcyBsaWJl
cmF0ZWQgYnkgdGhlIGxvY2FsIHJlc2lzdGFuY2UgYXNzaXN0ZWQgYnkgdGhlIEZyZWUgRnJlbmNo
IEZvcmNlcyBvbiAyNSBBdWd1c3RbMTk5XSBhbmQgdGhlIFdlc3Rlcm4gQWxsaWVzIGNvbnRpbnVl
ZCB0byBwdXNoIGJhY2sgR2VybWFuIGZvcmNlcyBpbiBXZXN0ZXJuIEV1cm9wZSBkdXJpbmcgdGhl
IGxhdHRlciBwYXJ0IG9mIHRoZSB5ZWFyLiBBbiBhdHRlbXB0IHRvIGFkdmFuY2UgaW50byBub3J0
aGVybiBHZXJtYW55IHNwZWFyLWhlYWRlZCBieSBhIG1ham9yIGFpcmJvcm5lIG9wZXJhdGlvbiBp
biB0aGUgTmV0aGVybGFuZHMgZW5kZWQgd2l0aCBhIGZhaWx1cmUuWzIwMF0gVGhlIEFsbGllcyBh
bHNvIGNvbnRpbnVlZCB0aGVpciBhZHZhbmNlIGluIEl0YWx5IHVudGlsIHRoZXkgcmFuIGludG8g
dGhlIGxhc3QgbWFqb3IgR2VybWFuIGRlZmVuc2l2ZSBsaW5lLgpPbiAyMiBKdW5lLCB0aGUgU292
aWV0cyBsYXVuY2hlZCBhIHN0cmF0ZWdpYyBvZmZlbnNpdmUgaW4gQmVsYXJ1cyAoa25vd24gYXMg
Ik9wZXJhdGlvbiBCYWdyYXRpb24iKSB0aGF0IHJlc3VsdGVkIGluIHRoZSBhbG1vc3QgY29tcGxl
dGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIEdlcm1hbiBBcm15IEdyb3VwIENlbnRyZS5bMjAxXSBTb29u
IGFmdGVyIHRoYXQsIGFub3RoZXIgU292aWV0IHN0cmF0ZWdpYyBvZmZlbnNpdmUgZm9yY2VkIEdl
cm1hbiB0cm9vcHMgZnJvbSBXZXN0ZXJuIFVrcmFpbmUgYW5kIEVhc3Rlcm4gUG9sYW5kLiBUaGUg
c3VjY2Vzc2Z1bCBhZHZhbmNlIG9mIFNvdmlldCB0cm9vcHMgcHJvbXB0ZWQgcmVzaXN0YW5jZSBm
b3JjZXMgaW4gUG9sYW5kIHRvIGluaXRpYXRlIHNldmVyYWwgdXByaXNpbmdzLCB0aG91Z2ggdGhl
IGxhcmdlc3Qgb2YgdGhlc2UsIGluIFdhcnNhdywgYXMgd2VsbCBhcyBhIFNsb3ZhayBVcHJpc2lu
ZyBpbiB0aGUgc291dGgsIHdlcmUgbm90IGFzc2lzdGVkIGJ5IHRoZSBTb3ZpZXRzIGFuZCB3ZXJl
IHB1dCBkb3duIGJ5IEdlcm1hbiBmb3JjZXMuWzIwMl0gVGhlIFJlZCBBcm15J3Mgc3RyYXRlZ2lj
IG9mZmVuc2l2ZSBpbiBlYXN0ZXJuIFJvbWFuaWEgY3V0IG9mZiBhbmQgZGVzdHJveWVkIHRoZSBj
b25zaWRlcmFibGUgR2VybWFuIHRyb29wcyB0aGVyZSBhbmQgdHJpZ2dlcmVkIGEgc3VjY2Vzc2Z1
bCBjb3VwIGQnw6l0YXQgaW4gUm9tYW5pYSBhbmQgaW4gQnVsZ2FyaWEsIGZvbGxvd2VkIGJ5IHRo
b3NlIGNvdW50cmllcycgc2hpZnQgdG8gdGhlIEFsbGllZCBzaWRlLlsyMDNdCgoKUG9saXNoIHJl
YmVscyBkdXJpbmcgdGhlIFdhcnNhdyBVcHJpc2luZy4KSW4gU2VwdGVtYmVyIDE5NDQsIFNvdmll
dCBSZWQgQXJteSB0cm9vcHMgYWR2YW5jZWQgaW50byBZdWdvc2xhdmlhIGFuZCBmb3JjZWQgdGhl
IHJhcGlkIHdpdGhkcmF3YWwgb2YgdGhlIEdlcm1hbiBBcm15IEdyb3VwcyBFIGFuZCBGIGluIEdy
ZWVjZSwgQWxiYW5pYSBhbmQgWXVnb3NsYXZpYSB0byByZXNjdWUgdGhlbSBmcm9tIGJlaW5nIGN1
dCBvZmYuWzIwNF0gQnkgdGhpcyBwb2ludCwgdGhlIENvbW11bmlzdC1sZWQgUGFydGlzYW5zIHVu
ZGVyIE1hcnNoYWwgSm9zaXAgQnJveiBUaXRvLCB3aG8gaGFkIGxlZCBhbiBpbmNyZWFzaW5nbHkg
c3VjY2Vzc2Z1bCBndWVycmlsbGEgY2FtcGFpZ24gYWdhaW5zdCB0aGUgb2NjdXBhdGlvbiBzaW5j
ZSAxOTQxLCBjb250cm9sbGVkIG11Y2ggb2YgdGhlIHRlcnJpdG9yeSBvZiBZdWdvc2xhdmlhIGFu
ZCB3ZXJlIGVuZ2FnZWQgaW4gZGVsYXlpbmcgZWZmb3J0cyBhZ2FpbnN0IHRoZSBHZXJtYW4gZm9y
Y2VzIGZ1cnRoZXIgc291dGguIEluIG5vcnRoZXJuIFNlcmJpYSwgdGhlIFJlZCBBcm15LCB3aXRo
IGxpbWl0ZWQgc3VwcG9ydCBmcm9tIEJ1bGdhcmlhbiBmb3JjZXMsIGFzc2lzdGVkIHRoZSBQYXJ0
aXNhbnMgaW4gYSBqb2ludCBsaWJlcmF0aW9uIG9mIHRoZSBjYXBpdGFsIGNpdHkgb2YgQmVsZ3Jh
ZGUgb24gMjAgT2N0b2Jlci4gQSBmZXcgZGF5cyBsYXRlciwgdGhlIFNvdmlldHMgbGF1bmNoZWQg
YSBtYXNzaXZlIGFzc2F1bHQgYWdhaW5zdCBHZXJtYW4tb2NjdXBpZWQgSHVuZ2FyeSB0aGF0IGxh
c3RlZCB1bnRpbCB0aGUgZmFsbCBvZiBCdWRhcGVzdCBpbiBGZWJydWFyeSAxOTQ1LlsyMDVdIElu
IGNvbnRyYXN0IHdpdGggaW1wcmVzc2l2ZSBTb3ZpZXQgdmljdG9yaWVzIGluIHRoZSBCYWxrYW5z
LCB0aGUgYml0dGVyIEZpbm5pc2ggcmVzaXN0YW5jZSB0byB0aGUgU292aWV0IG9mZmVuc2l2ZSBp
biB0aGUgS2FyZWxpYW4gSXN0aG11cyBkZW5pZWQgdGhlIFNvdmlldHMgb2NjdXBhdGlvbiBvZiBG
aW5sYW5kIGFuZCBsZWQgdG8gdGhlIHNpZ25pbmcgb2YgU292aWV0LUZpbm5pc2ggYXJtaXN0aWNl
IG9uIHJlbGF0aXZlbHkgbWlsZCBjb25kaXRpb25zLFsyMDZdWzIwN10gd2l0aCBhIHN1YnNlcXVl
bnQgc2hpZnQgdG8gdGhlIEFsbGllZCBzaWRlIGJ5IEZpbmxhbmQuCkJ5IHRoZSBzdGFydCBvZiBK
dWx5LCBDb21tb253ZWFsdGggZm9yY2VzIGluIFNvdXRoZWFzdCBBc2lhIGhhZCByZXBlbGxlZCB0
aGUgSmFwYW5lc2Ugc2llZ2VzIGluIEFzc2FtLCBwdXNoaW5nIHRoZSBKYXBhbmVzZSBiYWNrIHRv
IHRoZSBDaGluZHdpbiBSaXZlclsyMDhdIHdoaWxlIHRoZSBDaGluZXNlIGNhcHR1cmVkIE15aXRr
eWluYS4gSW4gQ2hpbmEsIHRoZSBKYXBhbmVzZSB3ZXJlIGhhdmluZyBncmVhdGVyIHN1Y2Nlc3Nl
cywgaGF2aW5nIGZpbmFsbHkgY2FwdHVyZWQgQ2hhbmdzaGEgaW4gbWlkLUp1bmUgYW5kIHRoZSBj
aXR5IG9mIEhlbmd5YW5nIGJ5IGVhcmx5IEF1Z3VzdC5bMjA5XSBTb29uIGFmdGVyLCB0aGV5IGZ1
cnRoZXIgaW52YWRlZCB0aGUgcHJvdmluY2Ugb2YgR3Vhbmd4aSwgd2lubmluZyBtYWpvciBlbmdh
Z2VtZW50cyBhZ2FpbnN0IENoaW5lc2UgZm9yY2VzIGF0IEd1aWxpbiBhbmQgTGl1emhvdSBieSB0
aGUgZW5kIG9mIE5vdmVtYmVyWzIxMF0gYW5kIHN1Y2Nlc3NmdWxseSBsaW5raW5nIHVwIHRoZWly
IGZvcmNlcyBpbiBDaGluYSBhbmQgSW5kb2NoaW5hIGJ5IHRoZSBtaWRkbGUgb2YgRGVjZW1iZXIu
WzIxMV0KSW4gdGhlIFBhY2lmaWMsIEFtZXJpY2FuIGZvcmNlcyBjb250aW51ZWQgdG8gcHJlc3Mg
YmFjayB0aGUgSmFwYW5lc2UgcGVyaW1ldGVyLiBJbiBtaWQtSnVuZSAxOTQ0IHRoZXkgYmVnYW4g
dGhlaXIgb2ZmZW5zaXZlIGFnYWluc3QgdGhlIE1hcmlhbmEgYW5kIFBhbGF1IGlzbGFuZHMsIHNj
b3JpbmcgYSBkZWNpc2l2ZSB2aWN0b3J5IGFnYWluc3QgSmFwYW5lc2UgZm9yY2VzIGluIHRoZSBQ
aGlsaXBwaW5lIFNlYSB3aXRoaW4gYSBmZXcgZGF5cy4gVGhlc2UgZGVmZWF0cyBsZWQgdG8gdGhl
IHJlc2lnbmF0aW9uIG9mIEphcGFuZXNlIFByaW1lIE1pbmlzdGVyIFTFjWrFjSBhbmQgcHJvdmlk
ZWQgdGhlIFVuaXRlZCBTdGF0ZXMgd2l0aCBhaXIgYmFzZXMgdG8gbGF1bmNoIGludGVuc2l2ZSBo
ZWF2eSBib21iZXIgYXR0YWNrcyBvbiB0aGUgSmFwYW5lc2UgaG9tZSBpc2xhbmRzLiBJbiBsYXRl
IE9jdG9iZXIsIEFtZXJpY2FuIGZvcmNlcyBpbnZhZGVkIHRoZSBGaWxpcGlubyBpc2xhbmQgb2Yg
TGV5dGU7IHNvb24gYWZ0ZXIsIEFsbGllZCBuYXZhbCBmb3JjZXMgc2NvcmVkIGFub3RoZXIgbGFy
Z2UgdmljdG9yeSBkdXJpbmcgdGhlIEJhdHRsZSBvZiBMZXl0ZSBHdWxmLCBvbmUgb2YgdGhlIGxh
cmdlc3QgbmF2YWwgYmF0dGxlcyBpbiBoaXN0b3J5LlsyMTJdCkF4aXMgY29sbGFwc2UsIEFsbGll
ZCB2aWN0b3J5CgoKQW1lcmljYW4gYW5kIFNvdmlldCB0cm9vcHMgbWVldCBpbiBBcHJpbCAxOTQ1
LCBlYXN0IG9mIHRoZSBFbGJlIFJpdmVyLgpPbiAxNiBEZWNlbWJlciAxOTQ0LCBHZXJtYW55IGF0
dGVtcHRlZCBpdHMgbGFzdCBkZXNwZXJhdGUgbWVhc3VyZSBmb3Igc3VjY2VzcyBvbiB0aGUgV2Vz
dGVybiBGcm9udCBieSBtYXJzaGFsbGluZyBHZXJtYW4gcmVzZXJ2ZXMgdG8gbGF1bmNoIGEgbWFz
c2l2ZSBjb3VudGVyLW9mZmVuc2l2ZSBpbiB0aGUgQXJkZW5uZXMgdG8gYXR0ZW1wdCB0byBzcGxp
dCB0aGUgV2VzdGVybiBBbGxpZXMsIGVuY2lyY2xlIGxhcmdlIHBvcnRpb25zIG9mIFdlc3Rlcm4g
QWxsaWVkIHRyb29wcyBhbmQgY2FwdHVyZSB0aGVpciBwcmltYXJ5IHN1cHBseSBwb3J0IGF0IEFu
dHdlcnAgaW4gb3JkZXIgdG8gcHJvbXB0IGEgcG9saXRpY2FsIHNldHRsZW1lbnQuWzIxM10gQnkg
SmFudWFyeSwgdGhlIG9mZmVuc2l2ZSBoYWQgYmVlbiByZXB1bHNlZCB3aXRoIG5vIHN0cmF0ZWdp
YyBvYmplY3RpdmVzIGZ1bGZpbGxlZC5bMjEzXSBJbiBJdGFseSwgdGhlIFdlc3Rlcm4gQWxsaWVz
IHJlbWFpbmVkIHN0YWxlbWF0ZWQgYXQgdGhlIEdlcm1hbiBkZWZlbnNpdmUgbGluZS4gSW4gbWlk
LUphbnVhcnkgMTk0NSwgdGhlIFNvdmlldHMgYXR0YWNrZWQgaW4gUG9sYW5kLCBwdXNoaW5nIGZy
b20gdGhlIFZpc3R1bGEgdG8gdGhlIE9kZXIgcml2ZXIgaW4gR2VybWFueSwgYW5kIG92ZXJyYW4g
RWFzdCBQcnVzc2lhLlsyMTRdIE9uIDQgRmVicnVhcnksIFUuUy4sIEJyaXRpc2gsIGFuZCBTb3Zp
ZXQgbGVhZGVycyBtZXQgaW4gWWFsdGEuIFRoZXkgYWdyZWVkIG9uIHRoZSBvY2N1cGF0aW9uIG9m
IHBvc3Qtd2FyIEdlcm1hbnksWzIxNV0gYW5kIHdoZW4gdGhlIFNvdmlldCBVbmlvbiB3b3VsZCBq
b2luIHRoZSB3YXIgYWdhaW5zdCBKYXBhbi5bMjE2XQpJbiBGZWJydWFyeSwgdGhlIFNvdmlldHMg
aW52YWRlZCBTaWxlc2lhIGFuZCBQb21lcmFuaWEsIHdoaWxlIFdlc3Rlcm4gQWxsaWVkIGZvcmNl
cyBlbnRlcmVkIFdlc3Rlcm4gR2VybWFueSBhbmQgY2xvc2VkIHRvIHRoZSBSaGluZSByaXZlci4g
SW4gTWFyY2gsIHRoZSBXZXN0ZXJuIEFsbGllcyBjcm9zc2VkIHRoZSBSaGluZSBub3J0aCBhbmQg
c291dGggb2YgdGhlIFJ1aHIsIGVuY2lyY2xpbmcgYSBsYXJnZSBudW1iZXIgb2YgR2VybWFuIHRy
b29wcyxbMjE3XSB3aGlsZSB0aGUgU292aWV0cyBhZHZhbmNlZCB0byBWaWVubmEuIEluIGVhcmx5
IEFwcmlsLCB0aGUgV2VzdGVybiBBbGxpZXMgZmluYWxseSBwdXNoZWQgZm9yd2FyZCBpbiBJdGFs
eSBhbmQgc3dlcHQgYWNyb3NzIFdlc3Rlcm4gR2VybWFueSwgd2hpbGUgU292aWV0IGZvcmNlcyBz
dG9ybWVkIEJlcmxpbiBpbiBsYXRlIEFwcmlsOyB0aGUgdHdvIGZvcmNlcyBsaW5rZWQgdXAgb24g
RWxiZSByaXZlciBvbiAyNSBBcHJpbC4gT24gMzAgQXByaWwgMTk0NSwgdGhlIFJlaWNoc3RhZyB3
YXMgY2FwdHVyZWQsIHNpZ25hbGxpbmcgdGhlIG1pbGl0YXJ5IGRlZmVhdCBvZiBUaGlyZCBSZWlj
aC5bMjE4XQoKCkEgZGV2YXN0YXRlZCBCZXJsaW4gc3RyZWV0IGluIHRoZSBjaXR5IGNlbnRyZSBw
b3N0IEJhdHRsZSBvZiBCZXJsaW4sIHRha2VuIDMgSnVseSAxOTQ1LgpTZXZlcmFsIGNoYW5nZXMg
aW4gbGVhZGVyc2hpcCBvY2N1cnJlZCBkdXJpbmcgdGhpcyBwZXJpb2QuIE9uIDEyIEFwcmlsLCBV
LlMuIFByZXNpZGVudCBSb29zZXZlbHQgZGllZCBhbmQgd2FzIHN1Y2NlZWRlZCBieSBIYXJyeSBU
cnVtYW4uIEJlbml0byBNdXNzb2xpbmkgd2FzIGtpbGxlZCBieSBJdGFsaWFuIHBhcnRpc2FucyBv
biAyOCBBcHJpbC5bMjE5XSBUd28gZGF5cyBsYXRlciwgSGl0bGVyIGNvbW1pdHRlZCBzdWljaWRl
LCBhbmQgd2FzIHN1Y2NlZWRlZCBieSBHcmFuZCBBZG1pcmFsIEthcmwgRMO2bml0ei5bMjIwXQpH
ZXJtYW4gZm9yY2VzIHN1cnJlbmRlcmVkIGluIEl0YWx5IG9uIDI5IEFwcmlsIGFuZCBpbiBXZXN0
ZXJuIEV1cm9wZSBvbiA3IE1heS5bMjIxXSBPbiB0aGUgRWFzdGVybiBGcm9udCwgR2VybWFueSBz
dXJyZW5kZXJlZCB0byB0aGUgU292aWV0cyBvbiA4IE1heS4gQSBHZXJtYW4gQXJteSBHcm91cCBD
ZW50cmUgcmVzaXN0ZWQgaW4gUHJhZ3VlIHVudGlsIDExIE1heS5bMjIyXQpJbiB0aGUgUGFjaWZp
YyB0aGVhdHJlLCBBbWVyaWNhbiBmb3JjZXMgYWNjb21wYW5pZWQgYnkgdGhlIGZvcmNlcyBvZiB0
aGUgUGhpbGlwcGluZSBDb21tb253ZWFsdGggYWR2YW5jZWQgaW4gdGhlIFBoaWxpcHBpbmVzLCBj
bGVhcmluZyBMZXl0ZSBieSB0aGUgZW5kIG9mIEFwcmlsIDE5NDUuIFRoZXkgbGFuZGVkIG9uIEx1
em9uIGluIEphbnVhcnkgMTk0NSBhbmQgc2VpemVkIE1hbmlsYSBpbiBNYXJjaCwgbGVhdmluZyBp
dCBpbiBydWlucy4gRmlnaHRpbmcgY29udGludWVkIG9uIEx1em9uLCBNaW5kYW5hbyBhbmQgb3Ro
ZXIgaXNsYW5kcyBvZiB0aGUgUGhpbGlwcGluZXMgdW50aWwgdGhlIGVuZCBvZiB0aGUgd2FyLlsy
MjNdCgoKQXRvbWljIGV4cGxvc2lvbiBhdCBOYWdhc2FraSwgOSBBdWd1c3QgMTk0NS4KSW4gTWF5
IDE5NDUsIEF1c3RyYWxpYW4gdHJvb3BzIGxhbmRlZCBvbiBCb3JuZW8sIG92ZXJydW5uaW5nIHRo
ZSBvaWxmaWVsZHMgdGhlcmUuIEJyaXRpc2gsIEFtZXJpY2FuIGFuZCBDaGluZXNlIGZvcmNlcyBk
ZWZlYXRlZCB0aGUgSmFwYW5lc2UgaW4gbm9ydGhlcm4gQnVybWEgaW4gTWFyY2gsIGFuZCB0aGUg
QnJpdGlzaCBwdXNoZWQgb24gdG8gcmVhY2ggUmFuZ29vbiBieSAzIE1heS5bMjI0XSBBbWVyaWNh
biBmb3JjZXMgYWxzbyBtb3ZlZCB0b3dhcmRzIEphcGFuLCB0YWtpbmcgSXdvIEppbWEgYnkgTWFy
Y2gsIGFuZCBPa2luYXdhIGJ5IHRoZSBlbmQgb2YgSnVuZS5bMjI1XSBBbWVyaWNhbiBib21iZXJz
IGRlc3Ryb3llZCBKYXBhbmVzZSBjaXRpZXMsIGFuZCBBbWVyaWNhbiBzdWJtYXJpbmVzIGN1dCBv
ZmYgSmFwYW5lc2UgaW1wb3J0cy5bMjI2XQpPbiAxMSBKdWx5LCB0aGUgQWxsaWVkIGxlYWRlcnMg
bWV0IGluIFBvdHNkYW0sIEdlcm1hbnkuIFRoZXkgY29uZmlybWVkIGVhcmxpZXIgYWdyZWVtZW50
cyBhYm91dCBHZXJtYW55LFsyMjddIGFuZCByZWl0ZXJhdGVkIHRoZSBkZW1hbmQgZm9yIHVuY29u
ZGl0aW9uYWwgc3VycmVuZGVyIG9mIGFsbCBKYXBhbmVzZSBmb3JjZXMgYnkgSmFwYW4sIHNwZWNp
ZmljYWxseSBzdGF0aW5nIHRoYXQgInRoZSBhbHRlcm5hdGl2ZSBmb3IgSmFwYW4gaXMgcHJvbXB0
IGFuZCB1dHRlciBkZXN0cnVjdGlvbiIuWzIyOF0gRHVyaW5nIHRoaXMgY29uZmVyZW5jZSB0aGUg
VW5pdGVkIEtpbmdkb20gaGVsZCBpdHMgZ2VuZXJhbCBlbGVjdGlvbiwgYW5kIENsZW1lbnQgQXR0
bGVlIHJlcGxhY2VkIENodXJjaGlsbCBhcyBQcmltZSBNaW5pc3Rlci5bMjI5XSBXaGVuIEphcGFu
IGNvbnRpbnVlZCB0byByZWplY3QgdGhlIFBvdHNkYW0gdGVybXMsIHRoZSBVbml0ZWQgU3RhdGVz
IGRyb3BwZWQgYXRvbWljIGJvbWJzIG9uIHRoZSBKYXBhbmVzZSBjaXRpZXMgb2YgSGlyb3NoaW1h
IGFuZCBOYWdhc2FraSBpbiBlYXJseSBBdWd1c3QuIEJldHdlZW4gdGhlIHR3byBib21icywgdGhl
IFNvdmlldHMsIHB1cnN1YW50IHRvIHRoZSBZYWx0YSBhZ3JlZW1lbnQsIGludmFkZWQgSmFwYW5l
c2UtaGVsZCBNYW5jaHVyaWEsIGFuZCBxdWlja2x5IGRlZmVhdGVkIHRoZSBLd2FudHVuZyBBcm15
LCB3aGljaCB3YXMgdGhlIHByaW1hcnkgSmFwYW5lc2UgZmlnaHRpbmcgZm9yY2UuWzIzMF1bMjMx
XSBUaGUgUmVkIEFybXkgYWxzbyBjYXB0dXJlZCBTYWtoYWxpbiBJc2xhbmQgYW5kIHRoZSBLdXJp
bCBJc2xhbmRzLiBPbiAxNSBBdWd1c3QgMTk0NSBKYXBhbiBzdXJyZW5kZXJlZCwgd2l0aCB0aGUg
c3VycmVuZGVyIGRvY3VtZW50cyBmaW5hbGx5IHNpZ25lZCBhYm9hcmQgdGhlIGRlY2sgb2YgdGhl
IEFtZXJpY2FuIGJhdHRsZXNoaXAgVVNTIE1pc3NvdXJpIG9uIDIgU2VwdGVtYmVyIDE5NDUsIGVu
ZGluZyB0aGUgd2FyLlsyMjFdCkFmdGVybWF0aAoKTWFpbiBhcnRpY2xlOiBBZnRlcm1hdGggb2Yg
V29ybGQgV2FyIElJCgoKVGhlIFN1cHJlbWUgQ29tbWFuZGVycyBvbiA1IEp1bmUgMTk0NSBpbiBC
ZXJsaW46IEJlcm5hcmQgTW9udGdvbWVyeSwgRHdpZ2h0IEQuIEVpc2VuaG93ZXIsIEdlb3JneSBa
aHVrb3YgYW5kIEplYW4gZGUgTGF0dHJlIGRlIFRhc3NpZ255ClRoZSBBbGxpZXMgZXN0YWJsaXNo
ZWQgb2NjdXBhdGlvbiBhZG1pbmlzdHJhdGlvbnMgaW4gQXVzdHJpYSBhbmQgR2VybWFueS4gVGhl
IGZvcm1lciBiZWNhbWUgYSBuZXV0cmFsIHN0YXRlLCBub24tYWxpZ25lZCB3aXRoIGFueSBwb2xp
dGljYWwgYmxvYy4gVGhlIGxhdHRlciB3YXMgZGl2aWRlZCBvbnRvIHdlc3Rlcm4gYW5kIGVhc3Rl
cm4gb2NjdXBhdGlvbiB6b25lcyBjb250cm9sbGVkIGJ5IHRoZSBXZXN0ZXJuIEFsbGllcyBhbmQg
dGhlIFVTU1IsIGFjY29yZGluZ2x5LiBBIGRlbmF6aWZpY2F0aW9uIHByb2dyYW0gaW4gR2VybWFu
eSBsZWQgdG8gdGhlIHByb3NlY3V0aW9uIG9mIE5hemkgd2FyIGNyaW1pbmFscyBhbmQgdGhlIHJl
bW92YWwgb2YgZXgtTmF6aXMgZnJvbSBwb3dlciwgYWx0aG91Z2ggdGhpcyBwb2xpY3kgbW92ZWQg
dG93YXJkcyBhbW5lc3R5IGFuZCByZS1pbnRlZ3JhdGlvbiBvZiBleC1OYXppcyBpbnRvIFdlc3Qg
R2VybWFuIHNvY2lldHkuWzIzMl0gR2VybWFueSBsb3N0IGEgcXVhcnRlciBvZiBpdHMgcHJlLXdh
ciAoMTkzNykgdGVycml0b3J5LCB0aGUgZWFzdGVybiB0ZXJyaXRvcmllczogU2lsZXNpYSwgTmV1
bWFyayBhbmQgbW9zdCBvZiBQb21lcmFuaWEgd2VyZSB0YWtlbiBvdmVyIGJ5IFBvbGFuZDsgRWFz
dCBQcnVzc2lhIHdhcyBkaXZpZGVkIGJldHdlZW4gUG9sYW5kIGFuZCB0aGUgVVNTUiwgZm9sbG93
ZWQgYnkgdGhlIGV4cHVsc2lvbiBvZiB0aGUgOSBtaWxsaW9uIEdlcm1hbnMgZnJvbSB0aGVzZSBw
cm92aW5jZXMsIGFzIHdlbGwgYXMgb2YgMyBtaWxsaW9uIEdlcm1hbnMgZnJvbSB0aGUgU3VkZXRl
bmxhbmQgaW4gQ3plY2hvc2xvdmFraWEsIHRvIEdlcm1hbnkuIEJ5IHRoZSAxOTUwcywgZXZlcnkg
ZmlmdGggV2VzdCBHZXJtYW4gd2FzIGEgcmVmdWdlZSBmcm9tIHRoZSBlYXN0LiBUaGUgVVNTUiBh
bHNvIHRvb2sgb3ZlciB0aGUgUG9saXNoIHByb3ZpbmNlcyBlYXN0IG9mIHRoZSBDdXJ6b24gbGlu
ZSAoZnJvbSB3aGljaCAyIG1pbGxpb24gUG9sZXMgd2VyZSBleHBlbGxlZCksWzIzM10gRWFzdGVy
biBSb21hbmlhLFsyMzRdWzIzNV0gYW5kIHBhcnQgb2YgZWFzdGVybiBGaW5sYW5kWzIzNl0gYW5k
IHRocmVlIEJhbHRpYyBzdGF0ZXMuWzIzN11bMjM4XQoKClByaW1lIE1pbmlzdGVyIFdpbnN0b24g
Q2h1cmNoaWxsIGdpdmVzIHRoZSAiVmljdG9yeSIgc2lnbiB0byBjcm93ZHMgaW4gTG9uZG9uIG9u
IFZpY3RvcnkgaW4gRXVyb3BlIERheS4KSW4gYW4gZWZmb3J0IHRvIG1haW50YWluIHBlYWNlLFsy
MzldIHRoZSBBbGxpZXMgZm9ybWVkIHRoZSBVbml0ZWQgTmF0aW9ucywgd2hpY2ggb2ZmaWNpYWxs
eSBjYW1lIGludG8gZXhpc3RlbmNlIG9uIDI0IE9jdG9iZXIgMTk0NSxbMjQwXSBhbmQgYWRvcHRl
ZCBUaGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBpbiAxOTQ4LCBhcyBh
IGNvbW1vbiBzdGFuZGFyZCBmb3IgYWxsIG1lbWJlciBuYXRpb25zLlsyNDFdIFRoZSBhbGxpYW5j
ZSBiZXR3ZWVuIHRoZSBXZXN0ZXJuIEFsbGllcyBhbmQgdGhlIFNvdmlldCBVbmlvbiBoYWQgYmVn
dW4gdG8gZGV0ZXJpb3JhdGUgZXZlbiBiZWZvcmUgdGhlIHdhciB3YXMgb3ZlcixbMjQyXSBHZXJt
YW55IGhhZCBiZWVuIGRlIGZhY3RvIGRpdmlkZWQsIGFuZCB0d28gaW5kZXBlbmRlbnQgc3RhdGVz
LCBGZWRlcmFsIFJlcHVibGljIG9mIEdlcm1hbnkgYW5kIEdlcm1hbiBEZW1vY3JhdGljIFJlcHVi
bGljWzI0M10gd2VyZSBjcmVhdGVkIHdpdGhpbiB0aGUgYm9yZGVycyBvZiBBbGxpZWQgYW5kIFNv
dmlldCBvY2N1cGF0aW9uIHpvbmVzLCBhY2NvcmRpbmdseS4gVGhlIHJlc3Qgb2YgRXVyb3BlIHdh
cyBhbHNvIGRpdmlkZWQgb250byBXZXN0ZXJuIGFuZCBTb3ZpZXQgc3BoZXJlcyBvZiBpbmZsdWVu
Y2UuWzI0NF0gTW9zdCBlYXN0ZXJuIGFuZCBjZW50cmFsIEV1cm9wZWFuIGNvdW50cmllcyBmZWxs
IGludG8gdGhlIFNvdmlldCBzcGhlcmUsIHdoaWNoIGxlZCB0byBlc3RhYmxpc2htZW50IG9mIENv
bW11bmlzdCBsZWQgcmVnaW1lcywgd2l0aCBmdWxsIG9yIHBhcnRpYWwgc3VwcG9ydCBvZiB0aGUg
U292aWV0IG9jY3VwYXRpb24gYXV0aG9yaXRpZXMuIEFzIGEgcmVzdWx0LCBQb2xhbmQsIEh1bmdh
cnksWzI0NV0gQ3plY2hvc2xvdmFraWEsWzI0Nl0gUm9tYW5pYSwgQWxiYW5pYSxbMjQ3XSBhbmQg
RWFzdCBHZXJtYW55IGJlY2FtZSBTb3ZpZXQgU2F0ZWxsaXRlIHN0YXRlcy4gQ29tbXVuaXN0IFl1
Z29zbGF2aWEgY29uZHVjdGVkIGEgZnVsbHkgaW5kZXBlbmRlbnQgcG9saWN5IGNhdXNpbmcgdGVu
c2lvbiB3aXRoIHRoZSBVU1NSLlsyNDhdClBvc3Qtd2FyIGRpdmlzaW9uIG9mIHRoZSB3b3JsZCB3
YXMgZm9ybWFsaXNlZCBieSB0d28gaW50ZXJuYXRpb25hbCBtaWxpdGFyeSBhbGxpYW5jZXMsIHRo
ZSBVbml0ZWQgU3RhdGVzLWxlZCBOQVRPIGFuZCB0aGUgU292aWV0LWxlZCBXYXJzYXcgUGFjdDtb
MjQ5XSB0aGUgbG9uZyBwZXJpb2Qgb2YgcG9saXRpY2FsIHRlbnNpb25zIGFuZCBtaWxpdGFyeSBj
b21wZXRpdGlvbiBiZXR3ZWVuIHRoZW0sIHRoZSBDb2xkIFdhciwgd291bGQgYmUgYWNjb21wYW5p
ZWQgYnkgdW5wcmVjZWRlbnRlZCBhcm1zIHJhY2UgYW5kIHByb3h5IHdhcnMuWzI1MF0KCgpXb3Js
ZCBtYXAgb2YgY29sb25pemF0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIFNlY29uZCBXb3JsZCBXYXIg
aW4gMTk0NS4gV2l0aCB0aGUgZW5kIG9mIHRoZSB3YXIsIHRoZSBXYXJzIG9mIG5hdGlvbmFsIGxp
YmVyYXRpb24gZW5zdWVkLCBsZWFkaW5nIHRvIHRoZSBjcmVhdGlvbiBvZiBJc3JhZWwsIHRoZSBv
ZnRlbiBibG9vZHkgRGVjb2xvbml6YXRpb24gb2YgQXNpYSBhbmQgKHNvbWV3aGF0IGxhdGVyKSBv
ZiBBZnJpY2EuCkluIEFzaWEsIHRoZSBVbml0ZWQgU3RhdGVzIG9jY3VwaWVkIEphcGFuIGFuZCBh
ZG1pbmlzdHJhdGVkIEphcGFuJ3MgZm9ybWVyIGlzbGFuZHMgaW4gdGhlIFdlc3Rlcm4gUGFjaWZp
Yywgd2hpbGUgdGhlIFNvdmlldHMgYW5uZXhlZCBTYWtoYWxpbiBhbmQgdGhlIEt1cmlsIElzbGFu
ZHMuWzI1MV0gS29yZWEsIGZvcm1lcmx5IHVuZGVyIEphcGFuZXNlIHJ1bGUsIHdhcyBkaXZpZGVk
IGFuZCBvY2N1cGllZCBieSB0aGUgVVMgaW4gdGhlIFNvdXRoIGFuZCB0aGUgU292aWV0IFVuaW9u
IGluIHRoZSBOb3J0aCBiZXR3ZWVuIDE5NDUgYW5kIDE5NDguIFNlcGFyYXRlIHJlcHVibGljcyBl
bWVyZ2VkIG9uIGJvdGggc2lkZXMgb2YgdGhlIDM4dGggcGFyYWxsZWwgaW4gMTk0OCwgZWFjaCBj
bGFpbWluZyB0byBiZSB0aGUgbGVnaXRpbWF0ZSBnb3Zlcm5tZW50IGZvciBhbGwgb2YgS29yZWEs
IHdoaWNoIGxlZCB1bHRpbWF0ZWx5IHRvIHRoZSBLb3JlYW4gV2FyLlsyNTJdIEluIENoaW5hLCBu
YXRpb25hbGlzdCBhbmQgY29tbXVuaXN0IGZvcmNlcyByZXN1bWVkIHRoZSBjaXZpbCB3YXIgaW4g
SnVuZSAxOTQ2LiBDb21tdW5pc3QgZm9yY2VzIHdlcmUgdmljdG9yaW91cyBhbmQgZXN0YWJsaXNo
ZWQgdGhlIFBlb3BsZSdzIFJlcHVibGljIG9mIENoaW5hIG9uIHRoZSBtYWlubGFuZCwgd2hpbGUg
bmF0aW9uYWxpc3QgZm9yY2VzIHJldHJlYXRlZCB0byBUYWl3YW4gaW4gMTk0OS5bMjUzXSBJbiB0
aGUgTWlkZGxlIEVhc3QsIHRoZSBBcmFiIHJlamVjdGlvbiBvZiB0aGUgVW5pdGVkIE5hdGlvbnMg
UGFydGl0aW9uIFBsYW4gZm9yIFBhbGVzdGluZSBhbmQgdGhlIGNyZWF0aW9uIG9mIElzcmFlbCBt
YXJrZWQgdGhlIGVzY2FsYXRpb24gb2YgdGhlIEFyYWItSXNyYWVsaSBjb25mbGljdC4gV2hpbGUg
dGhlIEV1cm9wZWFuIGNvbG9uaWFsIHBvd2VycyBhdHRlbXB0ZWQgdG8gcmV0YWluIHNvbWUgb3Ig
YWxsIG9mIHRoZWlyIGNvbG9uaWFsIGVtcGlyZXMsIHRoZWlyIGxvc3NlcyBvZiBwcmVzdGlnZSBh
bmQgcmVzb3VyY2VzIGR1cmluZyB0aGUgd2FyIHJlbmRlcmVkIHRoaXMgdW5zdWNjZXNzZnVsLCBs
ZWFkaW5nIHRvIGRlY29sb25pc2F0aW9uLlsyNTRdWzI1NV0KVGhlIGdsb2JhbCBlY29ub215IHN1
ZmZlcmVkIGhlYXZpbHkgZnJvbSB0aGUgd2FyLCBhbHRob3VnaCBXV0lJIHBhcnRpY2lwYW50cyB3
ZXJlIGFmZmVjdGVkIGRpZmZlcmVudGx5LiBUaGUgVVMgZW1lcmdlZCBtdWNoIHJpY2hlciB0aGFu
IGFueSBvdGhlciBuYXRpb247IGl0IGhhZCBhIGJhYnkgYm9vbSBhbmQgYnkgMTk1MCBpdHMgZ3Jv
c3MgZG9tZXN0aWMgcHJvZHVjdCBwZXIgcGVyc29uIHdhcyBtdWNoIGhpZ2hlciB0aGFuIHRoYXQg
b2YgYW55IG9mIHRoZSBvdGhlciBwb3dlcnMgYW5kIGl0IGRvbWluYXRlZCB0aGUgd29ybGQgZWNv
bm9teS5bMjU2XVsyNTddIFRoZSBVSyBhbmQgVVMgcHVyc3VlZCBhIHBvbGljeSBvZiBpbmR1c3Ry
aWFsIGRpc2FybWFtZW50IGluIFdlc3Rlcm4gR2VybWFueSBpbiB0aGUgeWVhcnMgMTk0NeKAkzE5
NDguWzI1OF0gRHVlIHRvIGludGVybmF0aW9uYWwgdHJhZGUgaW50ZXJkZXBlbmRlbmNpZXMgdGhp
cyBsZWQgdG8gRXVyb3BlYW4gZWNvbm9taWMgc3RhZ25hdGlvbiBhbmQgZGVsYXllZCBFdXJvcGVh
biByZWNvdmVyeSBmb3Igc2V2ZXJhbCB5ZWFycy5bMjU5XVsyNjBdIFJlY292ZXJ5IGJlZ2FuIHdp
dGggdGhlIG1pZCAxOTQ4IGN1cnJlbmN5IHJlZm9ybSBpbiBXZXN0ZXJuIEdlcm1hbnksIGFuZCB3
YXMgc3BlZCB1cCBieSB0aGUgbGliZXJhbGl6YXRpb24gb2YgRXVyb3BlYW4gZWNvbm9taWMgcG9s
aWN5IHRoYXQgdGhlIE1hcnNoYWxsIHBsYW4gKDE5NDjigJMxOTUxKSBib3RoIGRpcmVjdGx5IGFu
ZCBpbmRpcmVjdGx5IGNhdXNlZC5bMjYxXVsyNjJdIFRoZSBwb3N0IDE5NDggV2VzdCBHZXJtYW4g
cmVjb3ZlcnkgaGFzIGJlZW4gY2FsbGVkIHRoZSBHZXJtYW4gZWNvbm9taWMgbWlyYWNsZS5bMjYz
XSBBbHNvIHRoZSBJdGFsaWFuWzI2NF1bMjY1XSBhbmQgRnJlbmNoIGVjb25vbWllcyByZWJvdW5k
ZWQuWzI2Nl0gQnkgY29udHJhc3QsIHRoZSBVbml0ZWQgS2luZ2RvbSB3YXMgaW4gYSBzdGF0ZSBv
ZiBlY29ub21pYyBydWluLFsyNjddIGFuZCBjb250aW51ZWQgcmVsYXRpdmUgZWNvbm9taWMgZGVj
bGluZSBmb3IgZGVjYWRlcy5bMjY4XSBUaGUgU292aWV0IFVuaW9uLCBkZXNwaXRlIGVub3Jtb3Vz
IGh1bWFuIGFuZCBtYXRlcmlhbCBsb3NzZXMsIGFsc28gZXhwZXJpZW5jZWQgcmFwaWQgaW5jcmVh
c2UgaW4gcHJvZHVjdGlvbiBpbiB0aGUgaW1tZWRpYXRlIHBvc3Qtd2FyIGVyYS5bMjY5XSBKYXBh
biBleHBlcmllbmNlZCBpbmNyZWRpYmx5IHJhcGlkIGVjb25vbWljIGdyb3d0aCwgYmVjb21pbmcg
b25lIG9mIHRoZSBtb3N0IHBvd2VyZnVsIGVjb25vbWllcyBpbiB0aGUgd29ybGQgYnkgdGhlIDE5
ODBzLlsyNzBdIENoaW5hIHJldHVybmVkIHRvIGl0cyBwcmUtd2FyIGluZHVzdHJpYWwgcHJvZHVj
dGlvbiBieSAxOTUyLlsyNzFdCkltcGFjdAoKQ2FzdWFsdGllcyBhbmQgd2FyIGNyaW1lcwpNYWlu
IGFydGljbGVzOiBXb3JsZCBXYXIgSUkgY2FzdWFsdGllcyBhbmQgV2FyIGNyaW1lcyBkdXJpbmcg
V29ybGQgV2FyIElJCgpFc3RpbWF0ZXMgZm9yIHRoZSB0b3RhbCBjYXN1YWx0aWVzIG9mIHRoZSB3
YXIgdmFyeSwgYmVjYXVzZSBtYW55IGRlYXRocyB3ZW50IHVucmVjb3JkZWQuIE1vc3Qgc3VnZ2Vz
dCB0aGF0IHNvbWUgNjAgbWlsbGlvbiBwZW9wbGUgZGllZCBpbiB0aGUgd2FyLCBpbmNsdWRpbmcg
YWJvdXQgMjAgbWlsbGlvbiBzb2xkaWVycyBhbmQgNDAgbWlsbGlvbiBjaXZpbGlhbnMuWzI3Ml1b
MjczXVsyNzRdIE1hbnkgY2l2aWxpYW5zIGRpZWQgYmVjYXVzZSBvZiBkaXNlYXNlLCBzdGFydmF0
aW9uLCBtYXNzYWNyZXMsIGJvbWJpbmcgYW5kIGRlbGliZXJhdGUgZ2Vub2NpZGUuIFRoZSBTb3Zp
ZXQgVW5pb24gbG9zdCBhcm91bmQgMjcgbWlsbGlvbiBwZW9wbGUgZHVyaW5nIHRoZSB3YXIsWzI3
NV0gYWxtb3N0IGhhbGYgb2YgYWxsIFdvcmxkIFdhciBJSSBkZWF0aHMuWzI3Nl0gT25lIG9mIGV2
ZXJ5IGZvdXIgU292aWV0IGNpdGl6ZW5zIHdhcyBraWxsZWQgb3Igd291bmRlZCBpbiB0aGF0IHdh
ci5bMjc3XQpPZiB0aGUgdG90YWwgZGVhdGhzIGluIFdvcmxkIFdhciBJSSBhcHByb3hpbWF0ZWx5
IDg1IHBlcmNlbnTigJRtb3N0bHkgU292aWV0IGFuZCBDaGluZXNl4oCUd2VyZSBvbiB0aGUgQWxs
aWVkIHNpZGUgYW5kIDE1IHBlcmNlbnQgb24gdGhlIEF4aXMgc2lkZS4gTWFueSBvZiB0aGVzZSBk
ZWF0aHMgd2VyZSBjYXVzZWQgYnkgd2FyIGNyaW1lcyBjb21taXR0ZWQgYnkgR2VybWFuIGFuZCBK
YXBhbmVzZSBmb3JjZXMgaW4gb2NjdXBpZWQgdGVycml0b3JpZXMuIEFuIGVzdGltYXRlZCAxMVsy
NzhdIHRvIDE3WzI3OV0gbWlsbGlvbiBjaXZpbGlhbnMgZGllZCBhcyBhIGRpcmVjdCBvciBpbmRp
cmVjdCByZXN1bHQgb2YgTmF6aSBpZGVvbG9naWNhbCBwb2xpY2llcywgaW5jbHVkaW5nIHRoZSBz
eXN0ZW1hdGljIGdlbm9jaWRlIG9mIGFyb3VuZCBzaXggbWlsbGlvbiBKZXdzIGR1cmluZyBUaGUg
SG9sb2NhdXN0IGFsb25nIHdpdGggYSBmdXJ0aGVyIGZpdmUgbWlsbGlvbiBSb21hLCBTbGF2cywg
aG9tb3NleHVhbHMgYW5kIG90aGVyIGV0aG5pYyBhbmQgbWlub3JpdHkgZ3JvdXBzLlsyODBdIFJv
dWdobHkgNy41IG1pbGxpb24gY2l2aWxpYW5zIGRpZWQgaW4gQ2hpbmEgdW5kZXIgSmFwYW5lc2Ug
b2NjdXBhdGlvbixbMjgxXSBhbmQgdGhlIFNlcmJzIHdlcmUgdGFyZ2V0ZWQgYnkgdGhlIEF4aXMt
YWxpZ25lZCBDcm9hdGlhbiBVc3RhxaFlLlsyODJdCgoKQ2hpbmVzZSBjaXZpbGlhbnMgdG8gYmUg
YnVyaWVkIGFsaXZlIGJ5IEphcGFuZXNlIHNvbGRpZXJzLgpUaGUgbW9zdCB3ZWxsLWtub3duIEph
cGFuZXNlIGF0cm9jaXR5IHdhcyB0aGUgTmFua2luZyBNYXNzYWNyZSwgaW4gd2hpY2ggc2V2ZXJh
bCBodW5kcmVkIHRob3VzYW5kIENoaW5lc2UgY2l2aWxpYW5zIHdlcmUgcmFwZWQgYW5kIG11cmRl
cmVkLlsyODNdIEJldHdlZW4gMyBtaWxsaW9uIHRvIG1vcmUgdGhhbiAxMCBtaWxsaW9uIGNpdmls
aWFucywgbW9zdGx5IENoaW5lc2UsIHdlcmUga2lsbGVkIGJ5IHRoZSBKYXBhbmVzZSBvY2N1cGF0
aW9uIGZvcmNlcy5bMjg0XSBNaXRzdXlvc2hpIEhpbWV0YSByZXBvcnRlZCAyLjcgbWlsbGlvbiBj
YXN1YWx0aWVzIG9jY3VycmVkIGR1cmluZyB0aGUgU2Fua8WNIFNha3VzZW4uIEdlbmVyYWwgWWFz
dWppIE9rYW11cmEgaW1wbGVtZW50ZWQgdGhlIHBvbGljeSBpbiBIZWlwZWkgYW5kIFNoYW50dW5n
LlsyODVdClRoZSBBeGlzIGZvcmNlcyBlbXBsb3llZCBsaW1pdGVkIGJpb2xvZ2ljYWwgYW5kIGNo
ZW1pY2FsIHdlYXBvbnMuIFRoZSBJdGFsaWFucyB1c2VkIG11c3RhcmQgZ2FzIGR1cmluZyB0aGVp
ciBjb25xdWVzdCBvZiBBYnlzc2luaWEsWzI4Nl0gd2hpbGUgdGhlIEltcGVyaWFsIEphcGFuZXNl
IEFybXkgdXNlZCBhIHZhcmlldHkgb2Ygc3VjaCB3ZWFwb25zIGR1cmluZyB0aGVpciBpbnZhc2lv
biBhbmQgb2NjdXBhdGlvbiBvZiBDaGluYSAoc2VlIFVuaXQgNzMxKVsyODddWzI4OF0gYW5kIGlu
IGVhcmx5IGNvbmZsaWN0cyBhZ2FpbnN0IHRoZSBTb3ZpZXRzLlsyODldIEJvdGggdGhlIEdlcm1h
bnMgYW5kIEphcGFuZXNlIHRlc3RlZCBzdWNoIHdlYXBvbnMgYWdhaW5zdCBjaXZpbGlhbnNbMjkw
XSBhbmQsIGluIHNvbWUgY2FzZXMsIG9uIHByaXNvbmVycyBvZiB3YXIuWzI5MV0KV2hpbGUgbWFu
eSBvZiB0aGUgQXhpcydzIGFjdHMgd2VyZSBicm91Z2h0IHRvIHRyaWFsIGluIHRoZSB3b3JsZCdz
IGZpcnN0IGludGVybmF0aW9uYWwgdHJpYnVuYWxzLFsyOTJdIGluY2lkZW50cyBjYXVzZWQgYnkg
dGhlIEFsbGllcyB3ZXJlIG5vdC4gRXhhbXBsZXMgb2Ygc3VjaCBBbGxpZWQgYWN0aW9ucyBpbmNs
dWRlIHBvcHVsYXRpb24gdHJhbnNmZXIgaW4gdGhlIFNvdmlldCBVbmlvbiBhbmQgSmFwYW5lc2Ug
QW1lcmljYW4gaW50ZXJubWVudCBpbiB0aGUgVW5pdGVkIFN0YXRlczsgdGhlIE9wZXJhdGlvbiBL
ZWVsaGF1bCxbMjkzXSBleHB1bHNpb24gb2YgR2VybWFucyBhZnRlciBXb3JsZCBXYXIgSUksIG1h
c3MgcmFwZSBvZiBHZXJtYW4gd29tZW4gYnkgU292aWV0IFJlZCBBcm15OyB0aGUgU292aWV0IFVu
aW9uJ3MgS2F0eW4gbWFzc2FjcmUsIGZvciB3aGljaCBHZXJtYW5zIGZhY2VkIGNvdW50ZXItYWNj
dXNhdGlvbnMgb2YgcmVzcG9uc2liaWxpdHkuIExhcmdlIG51bWJlcnMgb2YgZmFtaW5lIGRlYXRo
cyBjYW4gYWxzbyBiZSBwYXJ0aWFsbHkgYXR0cmlidXRlZCB0byB0aGUgd2FyLCBzdWNoIGFzIHRo
ZSBCZW5nYWwgZmFtaW5lIG9mIDE5NDMgYW5kIHRoZSBWaWV0bmFtZXNlIGZhbWluZSBvZiAxOTQ0
4oCTNDUuWzI5NF0KSXQgaGFzIGFsc28gYmVlbiBzdWdnZXN0ZWQgYnkgc29tZSBoaXN0b3JpYW5z
IHRoZSBtYXNzLWJvbWJpbmcgb2YgY2l2aWxpYW4gYXJlYXMgaW4gZW5lbXkgdGVycml0b3J5LCBp
bmNsdWRpbmcgVG9reW8gYW5kIG1vc3Qgbm90YWJseSB0aGUgR2VybWFuIGNpdGllcyBvZiBEcmVz
ZGVuLCBIYW1idXJnLCBhbmQgQ29sb2duZSBieSBXZXN0ZXJuIEFsbGllcyxbMjk1XSB3aGljaCBy
ZXN1bHRlZCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgbW9yZSB0aGFuIDE2MCBjaXRpZXMgYW5kIGtp
bGxpbmcgYSB0b3RhbCBvZiBtb3JlIHRoYW4gNjAwLDAwMCBHZXJtYW4gY2l2aWxpYW5zWzI5Nl0g
YmUgY29uc2lkZXJlZCB3YXIgY3JpbWVzLgpDb25jZW50cmF0aW9uIGNhbXBzIGFuZCBzbGF2ZSB3
b3JrCkZ1cnRoZXIgaW5mb3JtYXRpb246IFRoZSBIb2xvY2F1c3QsIENvbnNlcXVlbmNlcyBvZiBH
ZXJtYW4gTmF6aXNtLCBKYXBhbmVzZSB3YXIgY3JpbWVzLCBhbmQgQWxsaWVkIHdhciBjcmltZXMg
ZHVyaW5nIFdvcmxkIFdhciBJSQpUaGUgTmF6aXMgd2VyZSByZXNwb25zaWJsZSBmb3IgVGhlIEhv
bG9jYXVzdCwgdGhlIGtpbGxpbmcgb2YgYXBwcm94aW1hdGVseSBzaXggbWlsbGlvbiBKZXdzIChv
dmVyd2hlbG1pbmdseSBBc2hrZW5hemltKSwgYXMgd2VsbCBhcyB0d28gbWlsbGlvbiBldGhuaWMg
UG9sZXMgYW5kIGZvdXIgbWlsbGlvbiBvdGhlcnMgd2hvIHdlcmUgZGVlbWVkICJ1bndvcnRoeSBv
ZiBsaWZlIiAoaW5jbHVkaW5nIHRoZSBkaXNhYmxlZCBhbmQgbWVudGFsbHkgaWxsLCBTb3ZpZXQg
UE9XcywgaG9tb3NleHVhbHMsIEZyZWVtYXNvbnMsIEplaG92YWgncyBXaXRuZXNzZXMsIGFuZCBS
b21hbmkpIGFzIHBhcnQgb2YgYSBwcm9ncmFtbWUgb2YgZGVsaWJlcmF0ZSBleHRlcm1pbmF0aW9u
LiBBYm91dCAxMiBtaWxsaW9uLCBtb3N0IG9mIHdob20gd2VyZSBFYXN0ZXJuIEV1cm9wZWFucywg
d2VyZSBlbXBsb3llZCBpbiB0aGUgR2VybWFuIHdhciBlY29ub215IGFzIGZvcmNlZCBsYWJvdXJl
cnMuWzI5N10KCgpEZWFkIGJvZGllcyBpbiB0aGUgTWF1dGhhdXNlbi1HdXNlbiBjb25jZW50cmF0
aW9uIGNhbXAgYWZ0ZXIgbGliZXJhdGlvbiwgcG9zc2libHkgcG9saXRpY2FsIHByaXNvbmVycyBv
ciBTb3ZpZXQgUE9XcwpJbiBhZGRpdGlvbiB0byBOYXppIGNvbmNlbnRyYXRpb24gY2FtcHMsIHRo
ZSBTb3ZpZXQgZ3VsYWdzIChsYWJvdXIgY2FtcHMpIGxlZCB0byB0aGUgZGVhdGggb2YgY2l0aXpl
bnMgb2Ygb2NjdXBpZWQgY291bnRyaWVzIHN1Y2ggYXMgUG9sYW5kLCBMaXRodWFuaWEsIExhdHZp
YSwgYW5kIEVzdG9uaWEsIGFzIHdlbGwgYXMgR2VybWFuIHByaXNvbmVycyBvZiB3YXIgKFBPV3Mp
IGFuZCBldmVuIFNvdmlldCBjaXRpemVucyB3aG8gaGFkIGJlZW4gb3Igd2VyZSB0aG91Z2h0IHRv
IGJlIHN1cHBvcnRlcnMgb2YgdGhlIE5hemlzLlsyOThdIFNpeHR5IHBlcmNlbnQgb2YgU292aWV0
IFBPV3Mgb2YgdGhlIEdlcm1hbnMgZGllZCBkdXJpbmcgdGhlIHdhci5bMjk5XSBSaWNoYXJkIE92
ZXJ5IGdpdmVzIHRoZSBudW1iZXIgb2YgNS43IG1pbGxpb24gU292aWV0IFBPV3MuIE9mIHRob3Nl
LCA1NyBwZXJjZW50IGRpZWQgb3Igd2VyZSBraWxsZWQsIGEgdG90YWwgb2YgMy42IG1pbGxpb24u
WzMwMF0gU292aWV0IGV4LVBPV3MgYW5kIHJlcGF0cmlhdGVkIGNpdmlsaWFucyB3ZXJlIHRyZWF0
ZWQgd2l0aCBncmVhdCBzdXNwZWN0IGFzIHBvdGVudGlhbCBOYXppIGNvbGxhYm9yYXRvcnMsIGFu
ZCBzb21lIG9mIHRoZW0gd2VyZSBzZW50IHRvIEdVTEFHIHVwb24gY2hlY2sgYnkgTktWRC5bMzAx
XQpKYXBhbmVzZSBwcmlzb25lci1vZi13YXIgY2FtcHMsIG1hbnkgb2Ygd2hpY2ggd2VyZSB1c2Vk
IGFzIGxhYm91ciBjYW1wcywgYWxzbyBoYWQgaGlnaCBkZWF0aCByYXRlcy4gVGhlIEludGVybmF0
aW9uYWwgTWlsaXRhcnkgVHJpYnVuYWwgZm9yIHRoZSBGYXIgRWFzdCBmb3VuZCB0aGUgZGVhdGgg
cmF0ZSBvZiBXZXN0ZXJuIHByaXNvbmVycyB3YXMgMjcuMSBwZXJjZW50IChmb3IgQW1lcmljYW4g
UE9XcywgMzcgcGVyY2VudCksWzMwMl0gc2V2ZW4gdGltZXMgdGhhdCBvZiBQT1dzIHVuZGVyIHRo
ZSBHZXJtYW5zIGFuZCBJdGFsaWFucy5bMzAzXSBXaGlsZSAzNyw1ODMgcHJpc29uZXJzIGZyb20g
dGhlIFVLLCAyOCw1MDAgZnJvbSB0aGUgTmV0aGVybGFuZHMsIGFuZCAxNCw0NzMgZnJvbSBVbml0
ZWQgU3RhdGVzIHdlcmUgcmVsZWFzZWQgYWZ0ZXIgdGhlIHN1cnJlbmRlciBvZiBKYXBhbiwgdGhl
IG51bWJlciBmb3IgdGhlIENoaW5lc2Ugd2FzIG9ubHkgNTYuWzMwNF0KQWNjb3JkaW5nIHRvIGhp
c3RvcmlhbiBaaGlmZW4gSnUsIGF0IGxlYXN0IGZpdmUgbWlsbGlvbiBDaGluZXNlIGNpdmlsaWFu
cyBmcm9tIG5vcnRoZXJuIENoaW5hIGFuZCBNYW5jaHVrdW8gd2VyZSBlbnNsYXZlZCBiZXR3ZWVu
IDE5MzUgYW5kIDE5NDEgYnkgdGhlIEVhc3QgQXNpYSBEZXZlbG9wbWVudCBCb2FyZCwgb3IgS8WN
YWluLCBmb3Igd29yayBpbiBtaW5lcyBhbmQgd2FyIGluZHVzdHJpZXMuIEFmdGVyIDE5NDIsIHRo
ZSBudW1iZXIgcmVhY2hlZCAxMCBtaWxsaW9uLlszMDVdIFRoZSBVLlMuIExpYnJhcnkgb2YgQ29u
Z3Jlc3MgZXN0aW1hdGVzIHRoYXQgaW4gSmF2YSwgYmV0d2VlbiA0IGFuZCAxMCBtaWxsaW9uIHJv
bXVzaGEgKEphcGFuZXNlOiAibWFudWFsIGxhYm9yZXJzIiksIHdlcmUgZm9yY2VkIHRvIHdvcmsg
YnkgdGhlIEphcGFuZXNlIG1pbGl0YXJ5LiBBYm91dCAyNzAsMDAwIG9mIHRoZXNlIEphdmFuZXNl
IGxhYm9yZXJzIHdlcmUgc2VudCB0byBvdGhlciBKYXBhbmVzZS1oZWxkIGFyZWFzIGluIFNvdXRo
IEVhc3QgQXNpYSwgYW5kIG9ubHkgNTIsMDAwIHdlcmUgcmVwYXRyaWF0ZWQgdG8gSmF2YS5bMzA2
XQoKCk1pc3RyZWF0ZWQgYW5kIHN0YXJ2ZWQgcHJpc29uZXJzIGluIHRoZSBNYXV0aGF1c2VuIGNh
bXAsIEF1c3RyaWEsIDE5NDUKT24gMTkgRmVicnVhcnkgMTk0MiwgUm9vc2V2ZWx0IHNpZ25lZCBF
eGVjdXRpdmUgT3JkZXIgOTA2NiwgaW50ZXJuaW5nIHRob3VzYW5kcyBvZiBKYXBhbmVzZSwgSXRh
bGlhbnMsIEdlcm1hbiBBbWVyaWNhbnMsIGFuZCBzb21lIGVtaWdyYW50cyBmcm9tIEhhd2FpaSB3
aG8gZmxlZCBhZnRlciB0aGUgYm9tYmluZyBvZiBQZWFybCBIYXJib3IgZm9yIHRoZSBkdXJhdGlv
biBvZiB0aGUgd2FyLiBUaGUgVS5TLiBhbmQgQ2FuYWRpYW4gZ292ZXJubWVudHMgaW50ZXJuZWQg
MTUwLDAwMCBKYXBhbmVzZS1BbWVyaWNhbnMsWzMwN11bMzA4XSBhcyB3ZWxsIGFzIG5lYXJseSAx
MSwwMDAgR2VybWFuIGFuZCBJdGFsaWFuIHJlc2lkZW50cyBvZiB0aGUgVS5TLlszMDddCkluIGFj
Y29yZGFuY2Ugd2l0aCB0aGUgQWxsaWVkIGFncmVlbWVudCBtYWRlIGF0IHRoZSBZYWx0YSBjb25m
ZXJlbmNlIG1pbGxpb25zIG9mIFBPV3MgYW5kIGNpdmlsaWFucyB3ZXJlIHVzZWQgYXMgZm9yY2Vk
IGxhYm9yIGJ5IHRoZSBTb3ZpZXQgVW5pb24uWzMwOV0gTW9yZSB0aGFuIGEgbWlsbGlvbiB3ZXJl
IGFsc28gcHV0IHRvIHdvcmsgaW4gdGhlIFdlc3QuW2NpdGF0aW9uIG5lZWRlZF0gSW4gSHVuZ2Fy
eSdzIGNhc2UsIEh1bmdhcmlhbnMgd2VyZSBmb3JjZWQgdG8gd29yayBmb3IgdGhlIFNvdmlldCBV
bmlvbiB1bnRpbCAxOTU1LlszMTBdCkhvbWUgZnJvbnRzIGFuZCBwcm9kdWN0aW9uCk1haW4gYXJ0
aWNsZXM6IE1pbGl0YXJ5IHByb2R1Y3Rpb24gZHVyaW5nIFdvcmxkIFdhciBJSSBhbmQgSG9tZSBm
cm9udCBkdXJpbmcgV29ybGQgV2FyIElJCgoKQWxsaWVkIHRvIEF4aXMgR0RQIHJhdGlvCkluIEV1
cm9wZSwgYmVmb3JlIHRoZSBvdXRicmVhayBvZiB0aGUgd2FyLCB0aGUgQWxsaWVzIGhhZCBzaWdu
aWZpY2FudCBhZHZhbnRhZ2VzIGluIGJvdGggcG9wdWxhdGlvbiBhbmQgZWNvbm9taWNzLiBJbiAx
OTM4LCB0aGUgV2VzdGVybiBBbGxpZXMgKFVuaXRlZCBLaW5nZG9tLCBGcmFuY2UsIFBvbGFuZCBh
bmQgQnJpdGlzaCBEb21pbmlvbnMpIGhhZCBhIDMwIHBlcmNlbnQgbGFyZ2VyIHBvcHVsYXRpb24g
YW5kIGEgMzAgcGVyY2VudCBoaWdoZXIgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCB0aGFuIHRoZSBF
dXJvcGVhbiBBeGlzIChHZXJtYW55IGFuZCBJdGFseSk7IGlmIGNvbG9uaWVzIGFyZSBpbmNsdWRl
ZCwgaXQgdGhlbiBnaXZlcyB0aGUgQWxsaWVzIG1vcmUgdGhhbiBhIDU6MSBhZHZhbnRhZ2UgaW4g
cG9wdWxhdGlvbiBhbmQgbmVhcmx5IDI6MSBhZHZhbnRhZ2UgaW4gR0RQLlszMTFdIEluIEFzaWEg
YXQgdGhlIHNhbWUgdGltZSwgQ2hpbmEgaGFkIHJvdWdobHkgc2l4IHRpbWVzIHRoZSBwb3B1bGF0
aW9uIG9mIEphcGFuLCBidXQgb25seSBhbiA4OSBwZXJjZW50IGhpZ2hlciBHRFA7IHRoaXMgaXMg
cmVkdWNlZCB0byB0aHJlZSB0aW1lcyB0aGUgcG9wdWxhdGlvbiBhbmQgb25seSBhIDM4IHBlcmNl
bnQgaGlnaGVyIEdEUCBpZiBKYXBhbmVzZSBjb2xvbmllcyBhcmUgaW5jbHVkZWQuWzMxMV0KVGhv
dWdoIHRoZSBBbGxpZXMnIGVjb25vbWljIGFuZCBwb3B1bGF0aW9uIGFkdmFudGFnZXMgd2VyZSBs
YXJnZWx5IG1pdGlnYXRlZCBkdXJpbmcgdGhlIGluaXRpYWwgcmFwaWQgYmxpdHprcmllZyBhdHRh
Y2tzIG9mIEdlcm1hbnkgYW5kIEphcGFuLCB0aGV5IGJlY2FtZSB0aGUgZGVjaXNpdmUgZmFjdG9y
IGJ5IDE5NDIsIGFmdGVyIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBTb3ZpZXQgVW5pb24gam9pbmVk
IHRoZSBBbGxpZXMsIGFzIHRoZSB3YXIgbGFyZ2VseSBzZXR0bGVkIGludG8gb25lIG9mIGF0dHJp
dGlvbi5bMzEyXSBXaGlsZSB0aGUgQWxsaWVzJyBhYmlsaXR5IHRvIG91dC1wcm9kdWNlIHRoZSBB
eGlzIGlzIG9mdGVuIGF0dHJpYnV0ZWQgdG8gdGhlIEFsbGllcyBoYXZpbmcgbW9yZSBhY2Nlc3Mg
dG8gbmF0dXJhbCByZXNvdXJjZXMsIG90aGVyIGZhY3RvcnMsIHN1Y2ggYXMgR2VybWFueSBhbmQg
SmFwYW4ncyByZWx1Y3RhbmNlIHRvIGVtcGxveSB3b21lbiBpbiB0aGUgbGFib3VyIGZvcmNlLFsz
MTNdWzMxNF0gQWxsaWVkIHN0cmF0ZWdpYyBib21iaW5nLFszMTVdWzMxNl0gYW5kIEdlcm1hbnkn
cyBsYXRlIHNoaWZ0IHRvIGEgd2FyIGVjb25vbXlbMzE3XSBjb250cmlidXRlZCBzaWduaWZpY2Fu
dGx5LiBBZGRpdGlvbmFsbHksIG5laXRoZXIgR2VybWFueSBub3IgSmFwYW4gcGxhbm5lZCB0byBm
aWdodCBhIHByb3RyYWN0ZWQgd2FyLCBhbmQgd2VyZSBub3QgZXF1aXBwZWQgdG8gZG8gc28uWzMx
OF1bMzE5XSBUbyBpbXByb3ZlIHRoZWlyIHByb2R1Y3Rpb24sIEdlcm1hbnkgYW5kIEphcGFuIHVz
ZWQgbWlsbGlvbnMgb2Ygc2xhdmUgbGFib3VyZXJzO1szMjBdIEdlcm1hbnkgdXNlZCBhYm91dCAx
MiBtaWxsaW9uIHBlb3BsZSwgbW9zdGx5IGZyb20gRWFzdGVybiBFdXJvcGUsWzI5N10gd2hpbGUg
SmFwYW4gcHJlc3NlZCBtb3JlIHRoYW4gMTggbWlsbGlvbiBwZW9wbGUgaW4gRmFyIEVhc3QgQXNp
YS5bMzA1XVszMDZdCk9jY3VwYXRpb24KTWFpbiBhcnRpY2xlczogQ29sbGFib3JhdGlvbiB3aXRo
IHRoZSBBeGlzIFBvd2VycyBkdXJpbmcgV29ybGQgV2FyIElJLCBSZXNpc3RhbmNlIGR1cmluZyBX
b3JsZCBXYXIgSUksIGFuZCBHZXJtYW4tb2NjdXBpZWQgRXVyb3BlCgoKU292aWV0IHBhcnRpc2Fu
cyBoYW5nZWQgYnkgR2VybWFuIGZvcmNlcyBpbiBKYW51YXJ5IDE5NDMKSW4gRXVyb3BlLCBvY2N1
cGF0aW9uIGNhbWUgdW5kZXIgdHdvIHZlcnkgZGlmZmVyZW50IGZvcm1zLiBJbiBXZXN0ZXJuLCBO
b3J0aGVybiBhbmQgQ2VudHJhbCBFdXJvcGUgKEZyYW5jZSwgTm9yd2F5LCBEZW5tYXJrLCB0aGUg
TG93IENvdW50cmllcywgYW5kIHRoZSBhbm5leGVkIHBvcnRpb25zIG9mIEN6ZWNob3Nsb3Zha2lh
KSBHZXJtYW55IGVzdGFibGlzaGVkIGVjb25vbWljIHBvbGljaWVzIHRocm91Z2ggd2hpY2ggaXQg
Y29sbGVjdGVkIHJvdWdobHkgNjkuNSBiaWxsaW9uIHJlaWNobWFya3MgKDI3LjggYmlsbGlvbiBV
UyBEb2xsYXJzKSBieSB0aGUgZW5kIG9mIHRoZSB3YXI7IHRoaXMgZmlndXJlIGRvZXMgbm90IGlu
Y2x1ZGUgdGhlIHNpemFibGUgcGx1bmRlciBvZiBpbmR1c3RyaWFsIHByb2R1Y3RzLCBtaWxpdGFy
eSBlcXVpcG1lbnQsIHJhdyBtYXRlcmlhbHMgYW5kIG90aGVyIGdvb2RzLlszMjFdIFRodXMsIHRo
ZSBpbmNvbWUgZnJvbSBvY2N1cGllZCBuYXRpb25zIHdhcyBvdmVyIDQwIHBlcmNlbnQgb2YgdGhl
IGluY29tZSBHZXJtYW55IGNvbGxlY3RlZCBmcm9tIHRheGF0aW9uLCBhIGZpZ3VyZSB3aGljaCBp
bmNyZWFzZWQgdG8gbmVhcmx5IDQwIHBlcmNlbnQgb2YgdG90YWwgR2VybWFuIGluY29tZSBhcyB0
aGUgd2FyIHdlbnQgb24uWzMyMl0KSW4gdGhlIEVhc3QsIHRoZSBtdWNoIGhvcGVkIGZvciBib3Vu
dGllcyBvZiBMZWJlbnNyYXVtIHdlcmUgbmV2ZXIgYXR0YWluZWQgYXMgZmx1Y3R1YXRpbmcgZnJv
bnQtbGluZXMgYW5kIFNvdmlldCBzY29yY2hlZCBlYXJ0aCBwb2xpY2llcyBkZW5pZWQgcmVzb3Vy
Y2VzIHRvIHRoZSBHZXJtYW4gaW52YWRlcnMuWzMyM10gVW5saWtlIGluIHRoZSBXZXN0LCB0aGUg
TmF6aSByYWNpYWwgcG9saWN5IGVuY291cmFnZWQgZXhjZXNzaXZlIGJydXRhbGl0eSBhZ2FpbnN0
IHdoYXQgaXQgY29uc2lkZXJlZCB0byBiZSB0aGUgImluZmVyaW9yIHBlb3BsZSIgb2YgU2xhdmlj
IGRlc2NlbnQ7IG1vc3QgR2VybWFuIGFkdmFuY2VzIHdlcmUgdGh1cyBmb2xsb3dlZCBieSBtYXNz
IGV4ZWN1dGlvbnMuWzMyNF0gQWx0aG91Z2ggcmVzaXN0YW5jZSBncm91cHMgZGlkIGZvcm0gaW4g
bW9zdCBvY2N1cGllZCB0ZXJyaXRvcmllcywgdGhleSBkaWQgbm90IHNpZ25pZmljYW50bHkgaGFt
cGVyIEdlcm1hbiBvcGVyYXRpb25zIGluIGVpdGhlciB0aGUgRWFzdFszMjVdIG9yIHRoZSBXZXN0
WzMyNl0gdW50aWwgbGF0ZSAxOTQzLgpJbiBBc2lhLCBKYXBhbiB0ZXJtZWQgbmF0aW9ucyB1bmRl
ciBpdHMgb2NjdXBhdGlvbiBhcyBiZWluZyBwYXJ0IG9mIHRoZSBHcmVhdGVyIEVhc3QgQXNpYSBD
by1wcm9zcGVyaXR5IFNwaGVyZSwgZXNzZW50aWFsbHkgYSBKYXBhbmVzZSBoZWdlbW9ueSB3aGlj
aCBpdCBjbGFpbWVkIHdhcyBmb3IgcHVycG9zZXMgb2YgbGliZXJhdGluZyBjb2xvbmlzZWQgcGVv
cGxlcy5bMzI3XSBBbHRob3VnaCBKYXBhbmVzZSBmb3JjZXMgd2VyZSBvcmlnaW5hbGx5IHdlbGNv
bWVkIGFzIGxpYmVyYXRvcnMgZnJvbSBFdXJvcGVhbiBkb21pbmF0aW9uIGluIG1hbnkgdGVycml0
b3JpZXMsIHRoZWlyIGV4Y2Vzc2l2ZSBicnV0YWxpdHkgdHVybmVkIGxvY2FsIHB1YmxpYyBvcGlu
aW9ucyBhZ2FpbnN0IHRoZW0gd2l0aGluIHdlZWtzLlszMjhdIER1cmluZyBKYXBhbidzIGluaXRp
YWwgY29ucXVlc3QgaXQgY2FwdHVyZWQgNCwwMDAsMDAwIGJhcnJlbHMgKDY0MCwwMDAgbTMpIG9m
IG9pbCAofjUuNcOXMTA1IHRvbm5lcykgbGVmdCBiZWhpbmQgYnkgcmV0cmVhdGluZyBBbGxpZWQg
Zm9yY2VzLCBhbmQgYnkgMTk0MyB3YXMgYWJsZSB0byBnZXQgcHJvZHVjdGlvbiBpbiB0aGUgRHV0
Y2ggRWFzdCBJbmRpZXMgdXAgdG8gNTAgbWlsbGlvbiBiYXJyZWxzICh+Ni44w5cxMDYgdCksIDc2
IHBlcmNlbnQgb2YgaXRzIDE5NDAgb3V0cHV0IHJhdGUuWzMyOF0KQWR2YW5jZXMgaW4gdGVjaG5v
bG9neSBhbmQgd2FyZmFyZQpNYWluIGFydGljbGU6IFRlY2hub2xvZ3kgZHVyaW5nIFdvcmxkIFdh
ciBJSQpBaXJjcmFmdCB3ZXJlIHVzZWQgZm9yIHJlY29ubmFpc3NhbmNlLCBhcyBmaWdodGVycywg
Ym9tYmVycyBhbmQgZ3JvdW5kLXN1cHBvcnQsIGFuZCBlYWNoIHJvbGUgd2FzIGFkdmFuY2VkIGNv
bnNpZGVyYWJseS4gSW5ub3ZhdGlvbiBpbmNsdWRlZCBhaXJsaWZ0ICh0aGUgY2FwYWJpbGl0eSB0
byBxdWlja2x5IG1vdmUgbGltaXRlZCBoaWdoLXByaW9yaXR5IHN1cHBsaWVzLCBlcXVpcG1lbnQg
YW5kIHBlcnNvbm5lbCk7WzMyOV0gYW5kIG9mIHN0cmF0ZWdpYyBib21iaW5nICh0aGUgYm9tYmlu
ZyBvZiBjaXZpbGlhbiBhcmVhcyB0byBkZXN0cm95IGluZHVzdHJ5IGFuZCBtb3JhbGUpLlszMzBd
IEFudGktYWlyY3JhZnQgd2VhcG9ucnkgYWxzbyBhZHZhbmNlZCwgaW5jbHVkaW5nIGRlZmVuY2Vz
IHN1Y2ggYXMgcmFkYXIgYW5kIHN1cmZhY2UtdG8tYWlyIGFydGlsbGVyeSwgc3VjaCBhcyB0aGUg
R2VybWFuIDg4IG1tIGd1bi4gVGhlIHVzZSBvZiB0aGUgamV0IGFpcmNyYWZ0IHdhcyBwaW9uZWVy
ZWQsIGFuZCB0aG91Z2ggbGF0ZSBpbnRyb2R1Y3Rpb24gbWVhbnQgaXQgaGFkIGxpdHRsZSBpbXBh
Y3QsIGl0IGxlZCB0byBqZXRzIGJlY29taW5nIHN0YW5kYXJkIGluIHdvcmxkd2lkZSBhaXIgZm9y
Y2VzLlszMzFdCgoKVS05OTUgVHlwZSBWSUlDIGF0IHRoZSBHZXJtYW4gbmF2eSBtZW1vcmlhbCBh
dCBMYWJvZS4gQmV0d2VlbiAxOTM5IGFuZCAxOTQ1LCAzLDUwMCBBbGxpZWQgbWVyY2hhbnQgc2hp
cHMgKGdyb3NzIHRvbm5hZ2UgMTQuNSBtaWxsaW9uKSB3ZXJlIHN1bmsgYXQgYSBjb3N0IG9mIDc4
MyBHZXJtYW4gVS1ib2F0cy4KQWR2YW5jZXMgd2VyZSBtYWRlIGluIG5lYXJseSBldmVyeSBhc3Bl
Y3Qgb2YgbmF2YWwgd2FyZmFyZSwgbW9zdCBub3RhYmx5IHdpdGggYWlyY3JhZnQgY2FycmllcnMg
YW5kIHN1Ym1hcmluZXMuIEFsdGhvdWdoIGF0IHRoZSBzdGFydCBvZiB0aGUgd2FyIGFlcm9uYXV0
aWNhbCB3YXJmYXJlIGhhZCByZWxhdGl2ZWx5IGxpdHRsZSBzdWNjZXNzLCBhY3Rpb25zIGF0IFRh
cmFudG8sIFBlYXJsIEhhcmJvciwgdGhlIFNvdXRoIENoaW5hIFNlYSBhbmQgdGhlIENvcmFsIFNl
YSBlc3RhYmxpc2hlZCB0aGUgY2FycmllciBhcyB0aGUgZG9taW5hbnQgY2FwaXRhbCBzaGlwIGlu
IHBsYWNlIG9mIHRoZSBiYXR0bGVzaGlwLlszMzJdWzMzM11bMzM0XSBJbiB0aGUgQXRsYW50aWMs
IGVzY29ydCBjYXJyaWVycyBwcm92ZWQgdG8gYmUgYSB2aXRhbCBwYXJ0IG9mIEFsbGllZCBjb252
b3lzLCBpbmNyZWFzaW5nIHRoZSBlZmZlY3RpdmUgcHJvdGVjdGlvbiByYWRpdXMgYW5kIGhlbHBp
bmcgdG8gY2xvc2UgdGhlIE1pZC1BdGxhbnRpYyBnYXAuWzMzNV0gQ2FycmllcnMgd2VyZSBhbHNv
IG1vcmUgZWNvbm9taWNhbCB0aGFuIGJhdHRsZXNoaXBzIGR1ZSB0byB0aGUgcmVsYXRpdmVseSBs
b3cgY29zdCBvZiBhaXJjcmFmdFszMzZdIGFuZCB0aGVpciBub3QgcmVxdWlyaW5nIHRvIGJlIGFz
IGhlYXZpbHkgYXJtb3VyZWQuWzMzN10gU3VibWFyaW5lcywgd2hpY2ggaGFkIHByb3ZlZCB0byBi
ZSBhbiBlZmZlY3RpdmUgd2VhcG9uIGR1cmluZyB0aGUgRmlyc3QgV29ybGQgV2FyWzMzOF0gd2Vy
ZSBhbnRpY2lwYXRlZCBieSBhbGwgc2lkZXMgdG8gYmUgaW1wb3J0YW50IGluIHRoZSBzZWNvbmQu
IFRoZSBCcml0aXNoIGZvY3VzZWQgZGV2ZWxvcG1lbnQgb24gYW50aS1zdWJtYXJpbmUgd2VhcG9u
cnkgYW5kIHRhY3RpY3MsIHN1Y2ggYXMgc29uYXIgYW5kIGNvbnZveXMsIHdoaWxlIEdlcm1hbnkg
Zm9jdXNlZCBvbiBpbXByb3ZpbmcgaXRzIG9mZmVuc2l2ZSBjYXBhYmlsaXR5LCB3aXRoIGRlc2ln
bnMgc3VjaCBhcyB0aGUgVHlwZSBWSUkgc3VibWFyaW5lIGFuZCBXb2xmIHBhY2sgdGFjdGljcy5b
MzM5XSBHcmFkdWFsbHksIGltcHJvdmluZyBBbGxpZWQgdGVjaG5vbG9naWVzIHN1Y2ggYXMgdGhl
IExlaWdoIGxpZ2h0LCBoZWRnZWhvZywgc3F1aWQsIGFuZCBob21pbmcgdG9ycGVkb2VzIHByb3Zl
ZCB2aWN0b3Jpb3VzLgpMYW5kIHdhcmZhcmUgY2hhbmdlZCBmcm9tIHRoZSBzdGF0aWMgZnJvbnQg
bGluZXMgb2YgV29ybGQgV2FyIEkgdG8gaW5jcmVhc2VkIG1vYmlsaXR5IGFuZCBjb21iaW5lZCBh
cm1zIHdhcmZhcmUsIHdoZXJlaW4gdGlnaHQgY29vcmRpbmF0aW9uIHdhcyBzb3VnaHQgYmV0d2Vl
biB0aGUgdmFyaW91cyBlbGVtZW50cyBvZiBtaWxpdGFyeSBmb3JjZXMuIFRoZSB0YW5rLCB3aGlj
aCBoYWQgYmVlbiB1c2VkIHByZWRvbWluYW50bHkgZm9yIGluZmFudHJ5IHN1cHBvcnQgaW4gdGhl
IEZpcnN0IFdvcmxkIFdhciwgaGFkIGV2b2x2ZWQgaW50byB0aGUgcHJpbWFyeSB3ZWFwb24gb2Yg
dGhlc2UgZm9yY2VzIGR1cmluZyB0aGUgU2Vjb25kLlszNDBdIEluIHRoZSBsYXRlIDE5MzBzLCB0
YW5rIGRlc2lnbiB3YXMgY29uc2lkZXJhYmx5IG1vcmUgYWR2YW5jZWQgaW4gYWxsIGFyZWFzIHRo
YW4gaXQgaGFkIGJlZW4gZHVyaW5nIFdvcmxkIFdhciBJLFszNDFdIGFuZCBhZHZhbmNlcyBjb250
aW51ZWQgdGhyb3VnaG91dCB0aGUgd2FyIGluIGluY3JlYXNpbmcgc3BlZWQsIGFybW91ciBhbmQg
ZmlyZXBvd2VyLgpBdCB0aGUgc3RhcnQgb2YgdGhlIHdhciwgbW9zdCBjb21tYW5kZXJzIHNhdyB0
aGF0IHRoZSB0aHJlYXQgb2YgZW5lbXkgdGFua3Mgc2hvdWxkIGJlIG1ldCBieSB0YW5rcyB3aXRo
IHN1cGVyaW9yIHNwZWNpZmljYXRpb25zLlszNDJdIFRoaXMgbGluZSBvZiB0aGlua2luZyB3YXMg
Y2hhbGxlbmdlZCBieSB0aGUgcG9vciBwZXJmb3JtYW5jZSBvZiB0aGUgcmVsYXRpdmVseSBsaWdo
dCBlYXJseSB0YW5rIGd1bnMgYWdhaW5zdCBhcm1vdXIsIGFuZCBHZXJtYW4gZG9jdHJpbmUgb2Yg
YXZvaWRpbmcgdGFuay12ZXJzdXMtdGFuayBjb21iYXQ7IHRoZSBsYXR0ZXIgZmFjdG9yLCBhbG9u
ZyB3aXRoIEdlcm1hbnkncyB1c2Ugb2YgY29tYmluZWQgYXJtcywgd2VyZSBhbW9uZyB0aGUga2V5
IGVsZW1lbnRzIG9mIHRoZWlyIGhpZ2hseSBzdWNjZXNzZnVsIGJsaXR6a3JpZWcgdGFjdGljcyBh
Y3Jvc3MgUG9sYW5kIGFuZCBGcmFuY2UuWzM0MF0gTWFueSBtZWFucyBvZiBkZXN0cm95aW5nIHRh
bmtzLCBpbmNsdWRpbmcgaW5kaXJlY3QgYXJ0aWxsZXJ5LCBhbnRpLXRhbmsgZ3VucyAoYm90aCB0
b3dlZCBhbmQgc2VsZi1wcm9wZWxsZWQpLCBtaW5lcywgc2hvcnQtcmFuZ2VkIGluZmFudHJ5IGFu
dGl0YW5rIHdlYXBvbnMsIGFuZCBvdGhlciB0YW5rcyB3ZXJlIHV0aWxpc2VkLlszNDJdIEV2ZW4g
d2l0aCBsYXJnZS1zY2FsZSBtZWNoYW5pc2F0aW9uIG9mIHRoZSB2YXJpb3VzIGFybWllcywgdGhl
IGluZmFudHJ5IHJlbWFpbmVkIHRoZSBiYWNrYm9uZSBvZiBhbGwgZm9yY2VzLFszNDNdIGFuZCB0
aHJvdWdob3V0IHRoZSB3YXIsIG1vc3QgaW5mYW50cnkgZXF1aXBtZW50IHdhcyBzaW1pbGFyIHRv
IHRoYXQgdXRpbGlzZWQgaW4gV29ybGQgV2FyIEkuWzM0NF0KQW5vdGhlciBhZHZhbmNlIHdhcyB0
aGUgc3ByZWFkIG9mIHRoZSBwb3J0YWJsZSBtYWNoaW5lIGd1biwgYSBub3RhYmxlIGV4YW1wbGUg
YmVpbmcgdGhlIEdlcm1hbiBNRzQyLCBhbmQgdmFyaW91cyBzdWJtYWNoaW5lIGd1bnMgd2hpY2gg
d2VyZSB3ZWxsIHN1aXRlZCB0byBjbG9zZS1xdWFydGVycyBjb21iYXQgaW4gdXJiYW4gYW5kIGp1
bmdsZSBzZXR0aW5ncy5bMzQ0XSBUaGUgYXNzYXVsdCByaWZsZSwgYSBsYXRlIHdhciBkZXZlbG9w
bWVudCB3aGljaCBpbmNvcnBvcmF0ZWQgbWFueSBvZiB0aGUgYmVzdCBmZWF0dXJlcyBvZiB0aGUg
cmlmbGUgYW5kIHN1Ym1hY2hpbmUgZ3VuLCBiZWNhbWUgdGhlIHN0YW5kYXJkIHBvc3R3YXIgaW5m
YW50cnkgd2VhcG9uIGZvciBuZWFybHkgYWxsIGFybWVkIGZvcmNlcy5bMzQ1XVszNDZdCk1vc3Qg
bWFqb3IgYmVsbGlnZXJlbnRzIGF0dGVtcHRlZCB0byBzb2x2ZSB0aGUgcHJvYmxlbXMgb2YgY29t
cGxleGl0eSBhbmQgc2VjdXJpdHkgcHJlc2VudGVkIGJ5IHVzaW5nIGxhcmdlIGNvZGVib29rcyBm
b3IgY3J5cHRvZ3JhcGh5IHdpdGggdGhlIHVzZSBvZiBjaXBoZXJpbmcgbWFjaGluZXMsIHRoZSBt
b3N0IHdlbGwga25vd24gYmVpbmcgdGhlIEdlcm1hbiBFbmlnbWEgbWFjaGluZS5bMzQ3XSBTSUdJ
TlQgKHNpZ25hbHMgaW50ZWxsaWdlbmNlKSB3YXMgdGhlIGNvdW50ZXJpbmcgcHJvY2VzcyBvZiBk
ZWNyeXB0aW9uLCB3aXRoIHRoZSBub3RhYmxlIGV4YW1wbGVzIGJlaW5nIHRoZSBCcml0aXNoIFVM
VFJBIGFuZCB0aGUgQWxsaWVkIGJyZWFraW5nIG9mIEphcGFuZXNlIG5hdmFsIGNvZGVzLlszNDhd
IEFub3RoZXIgaW1wb3J0YW50IGFzcGVjdCBvZiBtaWxpdGFyeSBpbnRlbGxpZ2VuY2Ugd2FzIHRo
ZSB1c2Ugb2YgZGVjZXB0aW9uIG9wZXJhdGlvbnMsIHdoaWNoIHRoZSBBbGxpZXMgdXNlZCBvbiBz
ZXZlcmFsIG9jY2FzaW9ucyB0byBncmVhdCBlZmZlY3QsIHN1Y2ggYXMgb3BlcmF0aW9ucyBNaW5j
ZW1lYXQgYW5kIEJvZHlndWFyZC5bMzQ4XVszNDldIE90aGVyIHRlY2hub2xvZ2ljYWwgYW5kIGVu
Z2luZWVyaW5nIGZlYXRzIGFjaGlldmVkIGR1cmluZywgb3IgYXMgYSByZXN1bHQgb2YsIHRoZSB3
YXIgaW5jbHVkZSB0aGUgd29ybGQncyBmaXJzdCBwcm9ncmFtbWFibGUgY29tcHV0ZXJzIChaMywg
Q29sb3NzdXMsIGFuZCBFTklBQyksIGd1aWRlZCBtaXNzaWxlcyBhbmQgbW9kZXJuIHJvY2tldHMs
IHRoZSBNYW5oYXR0YW4gUHJvamVjdCdzIGRldmVsb3BtZW50IG9mIG51Y2xlYXIgd2VhcG9ucywg
dGhlIGRldmVsb3BtZW50IG9mIGFydGlmaWNpYWwgaGFyYm91cnMgYW5kIG9pbCBwaXBlbGluZXMg
dW5kZXIgdGhlIEVuZ2xpc2ggQ2hhbm5lbC5bMzUwXQpTZWUgYWxzbwoKCVdvcmxkIFdhciBJSSBw
b3J0YWwKCVdhciBwb3J0YWwKCUJvb2s6V29ybGQgV2FyIElJCkJvb2tzIGFyZSBjb2xsZWN0aW9u
cyBvZiBhcnRpY2xlcyB0aGF0IGNhbiBiZSBkb3dubG9hZGVkIG9yIG9yZGVyZWQgaW4gcHJpbnQu
Ck1haW4gYXJ0aWNsZTogT3V0bGluZSBvZiBXb3JsZCBXYXIgSUkKQWlyIHdhcmZhcmUgb2YgV29y
bGQgV2FyIElJCkF0bGFzIG9mIHRoZSBXb3JsZCBCYXR0bGUgRnJvbnRzCkJhdHRsZXMgKGxpc3Qp
CkVmZmVjdHMgb2YgV29ybGQgV2FyIElJCkxpc3Qgb2YgV29ybGQgV2FyIElJIG1pbGl0YXJ5IG9w
ZXJhdGlvbnMKRGVjbGFyYXRpb24gb2Ygd2FyIGJ5IHRoZSBVbml0ZWQgS2luZ2RvbQpEZWNsYXJh
dGlvbiBvZiB3YXIgYnkgdGhlIFVuaXRlZCBTdGF0ZXMKV29ybGQgV2FyIElJIGluIGNvbnRlbXBv
cmFyeSBjdWx0dXJlCkRvY3VtZW50YXJpZXMKVGhlIFdvcmxkIGF0IFdhciAoMTk3NCksIGEgMjYt
cGFydCBUaGFtZXMgVGVsZXZpc2lvbiBzZXJpZXMgdGhhdCBjb3ZlcnMgbW9zdCBhc3BlY3RzIG9m
IFdvcmxkIFdhciBJSSBmcm9tIG1hbnkgcG9pbnRzIG9mIHZpZXcuIEl0IGluY2x1ZGVzIGludGVy
dmlld3Mgd2l0aCBtYW55IGtleSBmaWd1cmVzIGluY2x1ZGluZyBLYXJsIETDtm5pdHosIEFsYmVy
dCBTcGVlciwgYW5kIEFudGhvbnkgRWRlbi4KQmF0dGxlZmllbGQgKGRvY3VtZW50YXJ5IHNlcmll
cyksIGEgdGVsZXZpc2lvbiBkb2N1bWVudGFyeSBzZXJpZXMgaW5pdGlhbGx5IGlzc3VlZCBpbiAx
OTk04oCTMTk5NSB0aGF0IGV4cGxvcmVzIG1hbnkgb2YgdGhlIG1vc3QgaW1wb3J0YW50IGJhdHRs
ZXMgZm91Z2h0IGR1cmluZyB0aGUgU2Vjb25kIFdvcmxkIFdhci4KTm90ZXMKCl4gIlNlY29uZCBX
b3JsZCBXYXIiIGlzIHByZWZlcnJlZCBieSBCcml0aXNoIGF1dGhvcnMsICJXb3JsZCBXYXIgSUki
IGJ5IEFtZXJpY2FuIGF1dGhvcnM7IGJvdGggdmVyc2lvbnMgYXJlIGNvcnJlY3QuCl4gU29tbWVy
dmlsbGUsIERvbmFsZCAoMjAwOCkuIFRoZSBDb21wbGV0ZSBJbGx1c3RyYXRlZCBIaXN0b3J5IG9m
IFdvcmxkIFdhciBUd286IEFuIEF1dGhvcml0YXRpdmUgQWNjb3VudCBvZiB0aGUgRGVhZGxpZXN0
IENvbmZsaWN0IGluIEh1bWFuIEhpc3Rvcnkgd2l0aCBBbmFseXNpcyBvZiBEZWNpc2l2ZSBFbmNv
dW50ZXJzIGFuZCBMYW5kbWFyayBFbmdhZ2VtZW50cy4gTG9yZW56IEJvb2tzLiBwLiA1LiBJU0JO
IDA3NTQ4MTg5ODUuCl4gQmFycmV0dCwgRGF2aWQgUDsgU2h5dSwgTGF3cmVuY2UgTiAoMjAwMSku
IENoaW5hIGluIHRoZSBhbnRpLUphcGFuZXNlIFdhciwgMTkzN+KAkzE5NDU6IHBvbGl0aWNzLCBj
dWx0dXJlIGFuZCBzb2NpZXR5LiBWb2x1bWUgMSBvZiBTdHVkaWVzIGluIG1vZGVybiBDaGluZXNl
IGhpc3RvcnkuIE5ldyBZb3JrOiBQZXRlciBMYW5nLiBwLiA2LiBJU0JOIDAtODIwNC00NTU2LTgu
Cl4gQnJhZGxleSwgSmFtZXM7IFBvd2VycywgUm9uICgyMDAwKS4gRmxhZ3Mgb2YgT3VyIEZhdGhl
cnMuIEJhbnRhbS4gcC4gNTguIElTQk4gMDU1MzExMTMzNy4KXiBDaGlja2VyaW5nLCBSb2dlciAo
MjAwNikgKEdvb2dsZSBib29rcykuIEEgV29ybGQgYXQgVG90YWwgV2FyOiBHbG9iYWwgQ29uZmxp
Y3QgYW5kIHRoZSBQb2xpdGljcyBvZiBEZXN0cnVjdGlvbiwgMTkzN+KAkzE5NDUuIENhbWJyaWRn
ZSBVbml2ZXJzaXR5IFByZXNzLiBwLiA2NC4gSVNCTiAwMjc1OTg3MTA4LiBSZXRyaWV2ZWQgMTUg
Tm92ZW1iZXIgMjAwOS4KXiBGaXNjdXMsIEphbWVzIFcgKDIwMDcpIChHb29nbGUgYm9va3MpLiBD
cml0aWNhbCBQZXJzcGVjdGl2ZXMgb24gV29ybGQgV2FyIElJLiBSb3NlbiBQdWJsaXNoaW5nIEdy
b3VwLiBwLiA0NC4gSVNCTiAxNDA0MjAwNjU3LiBSZXRyaWV2ZWQgMTUgTm92ZW1iZXIgMjAwOS4K
XiBBbW9uZyBvdGhlciBzdGFydGluZyBkYXRlcyBzb21ldGltZXMgdXNlZCBmb3IgV29ybGQgV2Fy
IElJIGFyZSB0aGUgMTkzNSBJdGFsaWFuIGludmFzaW9uIG9mIEFieXNzaW5pYTsgKEJlbi1Ib3Jp
biwgRWxpYWh1ICgxOTQzKS4gVGhlIE1pZGRsZSBFYXN0OiBDcm9zc3JvYWRzIG9mIEhpc3Rvcnku
IFcuIFcuIE5vcnRvbiAmIENvLiBwLiAxNjk7IFRheWxvciwgQS4gSi4gUCAoMTk3OSkuIEhvdyBX
YXJzIEJlZ2luLiBIYW1pbHRvbi4gcC4gMTI0LiBJU0JOIDAyNDExMDAxNzg7IFlpc3JlZWxpdCwg
SGV2cmFoIE1penJhaGl0ICgxOTY1KS4gQXNpYW4gYW5kIEFmcmljYW4gU3R1ZGllcywgcC4gMTkx
KS4gRm9yIDE5NDEgc2VlIChUYXlsb3IsIEEuIEouIFAgKDE5NjEpLiBUaGUgT3JpZ2lucyBvZiB0
aGUgU2Vjb25kIFdvcmxkIFdhci4gSGFtaWx0b24uIHAuIHZpaTsgS2VsbG9nZywgV2lsbGlhbSBP
ICgyMDAzKS4gQW1lcmljYW4gSGlzdG9yeSB0aGUgRWFzeSBXYXkuIEJhcnJvbidzIEVkdWNhdGlv
bmFsIFNlcmllcy4gcC4gMjM2IElTQk4gMDc2NDExOTczNykuIFRoZXJlIGFsc28gZXhpc3RzIHRo
ZSB2aWV3cG9pbnQgdGhhdCBib3RoIFdvcmxkIFdhciBJIGFuZCBXb3JsZCBXYXIgSUkgYXJlIHBh
cnQgb2YgdGhlIHNhbWUgIkV1cm9wZWFuIENpdmlsIFdhciIgb3IgIlNlY29uZCBUaGlydHkgWWVh
cnMgV2FyIi4gKENhbmZvcmEsIEx1Y2lhbm87IEpvbmVzLCBTaW1vbiAoMjAwNikuIERlbW9jcmFj
eSBpbiBFdXJvcGU6IEEgSGlzdG9yeSBvZiBhbiBJZGVvbG9neS4gV2lsZXktQmxhY2t3ZWxsLiBw
LiAxNTUuIElTQk4gMTQwNTExMTMxMzsgUHJpbiwgR3d5biAoMjAwMikuIFRoZSBIZWFydCBvZiBX
YXI6IE9uIFBvd2VyLCBDb25mbGljdCBhbmQgT2JsaWdhdGlvbiBpbiB0aGUgVHdlbnR5LUZpcnN0
IENlbnR1cnkuIFJvdXRsZWRnZS4gcC4gMTEuIElTQk4gMDQxNTM2OTYwNikuCl4gTWFzYXlhLCBT
aGlyYWlzaGkgKDE5OTApLiBKYXBhbmVzZSByZWxhdGlvbnMgd2l0aCBWaWV0bmFtLCAxOTUx4oCT
MTk4Ny4gU0VBUCBQdWJsaWNhdGlvbnMuIHAuIDQuIElTQk4gMDg3NzI3MTIyNC4KXiBLYW50b3dp
Y3ogMTk5OSwgcC4gMTQ5Cl4gRGF2aWVzIDIwMDgsIHBwLiAxMzTigJMxNDAKXiBTaGF3IDIwMDAs
IHAuIDM1Cl4gQnVsbG9jayAxOTYyLCBwLiAyNjUKXiBQcmVzdG9uIDE5OTgsIHAuIDEwNApeIE15
ZXJzIDE5ODcsIHAuIDQ1OApeIFNtaXRoIDIwMDQsIHAuIDI4Cl4gQ29vZ2FuLCBBbnRob255IChK
dWx5IDE5OTMpLiAiVGhlIFZvbHVudGVlciBBcm1pZXMgb2YgTm9ydGhlYXN0IENoaW5hIi4gSGlz
dG9yeSBUb2RheSA0My4gUmV0cmlldmVkIDE0IE5vdmVtYmVyIDIwMDkuICJBbHRob3VnaCBzb21l
IENoaW5lc2UgdHJvb3BzIGluIHRoZSBOb3J0aGVhc3QgbWFuYWdlZCB0byByZXRyZWF0IHNvdXRo
LCBvdGhlcnMgd2VyZSB0cmFwcGVkIGJ5IHRoZSBhZHZhbmNpbmcgSmFwYW5lc2UgQXJteSBhbmQg
d2VyZSBmYWNlZCB3aXRoIHRoZSBjaG9pY2Ugb2YgcmVzaXN0YW5jZSBpbiBkZWZpYW5jZSBvZiBv
cmRlcnMsIG9yIHN1cnJlbmRlci4gQSBmZXcgY29tbWFuZGVycyBzdWJtaXR0ZWQsIHJlY2Vpdmlu
ZyBoaWdoIG9mZmljZSBpbiB0aGUgcHVwcGV0IGdvdmVybm1lbnQsIGJ1dCBvdGhlcnMgdG9vayB1
cCBhcm1zIGFnYWluc3QgdGhlIGludmFkZXIuIFRoZSBmb3JjZXMgdGhleSBjb21tYW5kZWQgd2Vy
ZSB0aGUgZmlyc3Qgb2YgdGhlIHZvbHVudGVlciBhcm1pZXMiLgpeIEJyb2R5IDE5OTksIHAuIDQK
XiBaYWxhbXBhcyAxOTg5LCBwLiA2MgpeIFJlY29yZCAyMDA1LCBwLiA1MApeIE1hbmRlbGJhdW0g
MTk4OCwgcC4gOTYKXiBTY2htaXR6LCBEYXZpZCBGICgyMDAxKS4gVGhlIEZpcnN0IFdpc2UgTWFu
LiBSb3dtYW4gJiBMaXR0bGVmaWVsZC4gcC4gMTI0LiBJU0JOIDA4NDIwMjYzMjAuCl4gS2l0c29u
IDIwMDEsIHAuIDIzMQpeIEFkYW10aHdhaXRlIDE5OTIsIHAuIDUyCl4gR3JhaGFtIDIwMDUsIHAu
IDExMApeIEJ1c2t5IDIwMDIsIHAuIDEwCl4gQmFya2VyLCBBLiBKICgxOTcxKS4gVGhlIFJhcGUg
b2YgRXRoaW9waWEgMTkzNi4gQmFsbGFudGluZSBCb29rcy4gcHAuIDEzMeKAkzIuIElTQk4gMDM0
NTAyNDYyMS4KXiBhIGIgQ29ydW0sIEphbWVzIFMuLiAiSW5mbGF0ZWQgYnkgQWlyIENvbW1vbiBQ
ZXJjZXB0aW9ucyBvZiBDaXZpbGlhbiBDYXN1YWx0aWVzIGZyb20gQm9tYmluZyIuIFRoZXNpcy4g
TWF4d2VsbCBBaXIgRm9yY2UgQmFzZSwgQWxhYmFtYTogQWlyIFdhciBDb2xsZWdlLiBBaXIgVW5p
dmVyc2l0eS4gcC4gMTAuIFJldHJpZXZlZCAyOSBEZWNlbWJlciAyMDEwLgpeIEJlZXZvciwgQW50
b255ICgyMDA2KS4gVGhlIEJhdHRsZSBmb3IgU3BhaW46IFRoZSBTcGFuaXNoIENpdmlsIFdhciAx
OTM2LTE5MzkuIExvbmRvbjogUGhvZW5peC4gcC4gMjU4LiBJU0JOIDA3NTM4MjE2NTYuCl4gRmFp
cmJhbmssIEpvaG4gS2luZzsgRmV1ZXJ3ZXJrZXIsIEFsYmVydDsgVHdpdGNoZXR0LCBEZW5pcyBD
cmlzcGluICgxOTg2KS4gVGhlIENhbWJyaWRnZSBoaXN0b3J5IG9mIENoaW5hLiBDYW1icmlkZ2Ug
VW5pdmVyc2l0eSBQcmVzcy4gcHAuIDU0N+KAkzU1MS4gSVNCTiAwNTIxMjQzMzg2LgpeIEZhaXJi
YW5rLCBKb2huIEtpbmc7IEZldWVyd2Vya2VyLCBBbGJlcnQ7IFR3aXRjaGV0dCwgRGVuaXMgQ3Jp
c3BpbiAoMTk4NikuIFRoZSBDYW1icmlkZ2UgaGlzdG9yeSBvZiBDaGluYS4gQ2FtYnJpZGdlIFVu
aXZlcnNpdHkgUHJlc3MuIHAuIDU2Ni4gSVNCTiAwNTIxMjQzMzg2LgpeIFRheWxvciwgSmF5ICgy
MDA5KS4gVGhlIEdlbmVyYWxpc3NpbW86IENoaWFuZyBLYWktc2hlayBhbmQgdGhlIHN0cnVnZ2xl
IGZvciBtb2Rlcm4gQ2hpbmEuIEhhcnZhcmQgVW5pdmVyc2l0eSBQcmVzcy4gcHAuIDE1MOKAkzE1
Mi4gSVNCTiA5NzgwNjc0MDMzMzgyLgpeIENvb3gsIEFsdmluIEQuICgxOTkwKS4gTm9tb25oYW46
IEphcGFuIEFnYWluc3QgUnVzc2lhLCAxOTM5LiBTdGFuZm9yZCBVbml2ZXJzaXR5IFByZXNzLiBw
LiAxODkuIElTQk4gMDgwNDcxODM1MC4KXiBTZWxsYSwgQW1ub24gKE9jdG9iZXIgMTk4MykuICJL
aGFsa2hpbi1Hb2w6IFRoZSBGb3Jnb3R0ZW4gV2FyIi4gSm91cm5hbCBvZiBDb250ZW1wb3Jhcnkg
SGlzdG9yeSAxOCAoNCk6IDY1MeKAkzg3LgpeIENoYW5leSwgT3R0byBQcmVzdG9uICgxOTk2KS4g
Wmh1a292LiBVbml2ZXJzaXR5IG9mIE9rbGFob21hIFByZXNzLiBwLiA3Ni4gSVNCTiAwODA2MTI4
MDcwLgpeIENvbGxpZXIsIE1hcnRpbjsgUGVkbGV5LCBQaGlsaXAgKDIwMDApLiBHZXJtYW55IDE5
MTnigJM0NS4gSGVpbmVtYW5uLiBwLiAxNDQuIElTQk4gMDQzNTMyNzIxNi4KXiBLZXJzaGF3IDIw
MDEsIHBwLiAxMjHigJMyCl4gS2Vyc2hhdyAyMDAxLCBwLiAxNTcKXiBEYXZpZXMgMjAwOCwgcHAu
IDE0M+KAkzQKXiBMb3dlLCBDZWRyaWMgSmFtZXM7IE1hcnphcmksIEYgKDIwMDIpLiBJdGFsaWFu
IEZvcmVpZ24gUG9saWN5IDE4NzDigJMxOTQwLiBUYXlsb3IgJiBGcmFuY2lzLiBwLiAzMzAuIElT
Qk4gMDQxNTI3MzcyMi4KXiBEZWFyLCBJLiBDLiBCLjsgRm9vdCwgTS4gUi4gRCwgZWRzICgyMDAy
KS4gIlBhY3Qgb2YgU3RlZWwiLiBPeGZvcmQgQ29tcGFuaW9uIHRvIFdvcmxkIFdhciBJSS4gT3hm
b3JkIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDY3NC4gSVNCTiAwMTk4NjA0NDY3LgpeIFNob3JlLCBa
YWNoYXJ5ICgyMDAzKS4gV2hhdCBIaXRsZXIgS25ldzogVGhlIEJhdHRsZSBmb3IgSW5mb3JtYXRp
b24gaW4gTmF6aSBGb3JlaWduIFBvbGljeS4gT3hmb3JkIFVuaXZlcnNpdHkgUHJlc3MgVVMuIHAu
IDEwOC4gSVNCTiAwMTk1MTU0NTkyLgpeIERlYXIsIEkuIEMuIEIuOyBGb290LCBNLiBSLiBELCBl
ZHMgKDIwMDIpLiAiTmF6aS1Tb3ZpZXQgUGFjdCIuIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLiBw
LiA2MDguIElTQk4gMDE5ODYwNDQ2Ny4KXiBNYXksIEVybmVzdCBSICgyMDAwKSAoR29vZ2xlIGJv
b2tzKS4gU3RyYW5nZSBWaWN0b3J5OiBIaXRsZXIncyBDb25xdWVzdCBvZiBGcmFuY2UuIEkuQi5U
YXVyaXMuIHAuIDkzLiBJU0JOIDE4NTA0MzMyOTEuIFJldHJpZXZlZCAxNSBOb3ZlbWJlciAyMDA5
LgpeIFphbG9nYSwgU3RldmVuIEouOyBHZXJyYXJkLCBIb3dhcmQgKDIwMDIpIChHb29nbGUgYm9v
a3MpLiBQb2xhbmQgMTkzOTogVGhlIEJpcnRoIG9mIEJsaXR6a3JpZWcuIE9zcHJleSBQdWJsaXNo
aW5nLiBwLiA4My4gSVNCTiAxODQxNzY0MDg2LiBSZXRyaWV2ZWQgMTUgTm92ZW1iZXIgMjAwOS4K
XiBIZW1wZWwsIEFuZHJldyAoMjAwMykgKEdvb2dsZSBib29rcykuIFBvbGFuZCBpbiBXb3JsZCBX
YXIgSUk6IEFuIElsbHVzdHJhdGVkIE1pbGl0YXJ5IEhpc3RvcnkuIEhpcHBvY3JlbmUgQm9va3Mu
IHAuIDI0LiBJU0JOIDA3ODE4MTAwNDMuIFJldHJpZXZlZCAxNSBOb3ZlbWJlciAyMDA5LgpeIEpv
d2V0dCAmIEFuZHJldyAyMDAyLCBwLiAxNApeIFNtaXRoLCBEYXZpZCBKLiAoMjAwMikgKEdvb2ds
ZSBib29rcykuIFRoZSBCYWx0aWMgU3RhdGVzOiBFc3RvbmlhLCBMYXR2aWEgYW5kIExpdGh1YW5p
YS4gUm91dGxlZGdlLiAxc3QgZWRpdGlvbi4gcC4gMjQuIElTQk4gMDQxNTI4NTgwMS4gUmV0cmll
dmVkIDE1IE5vdmVtYmVyIDIwMDkuCl4gYSBiIEJpbGluc2t5LCBZYXJvc2xhdiAoMTk5OSkgKEdv
b2dsZSBib29rcykuIEVuZGdhbWUgaW4gTkFUTydzIEVubGFyZ2VtZW50OiBUaGUgQmFsdGljIFN0
YXRlcyBhbmQgVWtyYWluZS4gR3JlZW53b29kIFB1Ymxpc2hpbmcgR3JvdXAuIHAuIDkuIElTQk4g
MDI3NTk2MzYzMi4gUmV0cmlldmVkIDE1IE5vdmVtYmVyIDIwMDkuCl4gYSBiIE11cnJheSAmIE1p
bGxldHQgMjAwMSwgcHAuIDU14oCTNTYKXiBTcHJpbmcsIEQuIFcgKEFwcmlsIDE5ODYpLiAiVGhl
IFNvdmlldCBEZWNpc2lvbiBmb3IgV2FyIGFnYWluc3QgRmlubGFuZCwgMzAgTm92ZW1iZXIgMTkz
OSIuIEV1cm9wZS1Bc2lhIFN0dWRpZXMgKFRheWxvciAmIEZyYW5jaXMsIEx0ZC4pIDM4ICgyKTog
MjA34oCTMjI2LiBkb2k6MTAuMTA4MC8wOTY2ODEzODYwODQxMTYzNi4gUmV0cmlldmVkIDE1IE5v
dmVtYmVyIDIwMDkuCl4gSGFuaGltw6RraSwgSnVzc2kgTSAoMTk5NykgKEdvb2dsZSBib29rcyku
IENvbnRhaW5pbmcgQ29leGlzdGVuY2U6IEFtZXJpY2EsIFJ1c3NpYSwgYW5kIHRoZSAiRmlubmlz
aCBTb2x1dGlvbi4gS2VudCBTdGF0ZSBVbml2ZXJzaXR5IFByZXNzLiBwLiAxMi4gSVNCTiAwODcz
Mzg1NTg2LiBSZXRyaWV2ZWQgMTUgTm92ZW1iZXIgMjAwOS4KXiBXZWluYmVyZyAxOTk1LCBwLiA5
NSAmIDEyMQpeIFNoaXJlciwgV2lsbGlhbSBMICgxOTkwKS4gVGhlIFJpc2UgYW5kIEZhbGwgb2Yg
dGhlIFRoaXJkIFJlaWNoOiBBIEhpc3Rvcnkgb2YgTmF6aSBHZXJtYW55LiBTaW1vbiBhbmQgU2No
dXN0ZXIuIHBwLiA2NjjigJM5LiBJU0JOIDA2NzE3Mjg2ODcuCl4gTXVycmF5ICYgTWlsbGV0dCAy
MDAxLCBwcC4gNTfigJM2MwpeIENvbW1hZ2VyLCBIZW5yeSBTdGVlbGUgKDIwMDQpIChHb29nbGUg
Ym9va3MpLiBUaGUgU3Rvcnkgb2YgdGhlIFNlY29uZCBXb3JsZCBXYXIuIEJyYXNzZXkncy4gcC4g
OS4gSVNCTiAxNTc0ODg3NDE2LiBSZXRyaWV2ZWQgMTUgTm92ZW1iZXIgMjAwOS4KXiBEZWFyLCBJ
LiBDLiBCLjsgRm9vdCwgTS4gUi4gRCwgZWRzICgyMDAyKS4gIkljZWxhbmQiLiBPeGZvcmQgQ29t
cGFuaW9uIHRvIFdvcmxkIFdhciBJSS4gT3hmb3JkIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDQzNi4g
SVNCTiAwMTk4NjA0NDY3LgpeIFJleW5vbGRzLCBEYXZpZCAoMjcgQXByaWwgMjAwNikgKEdvb2ds
ZSBib29rcykuIEZyb20gV29ybGQgV2FyIHRvIENvbGQgV2FyOiBDaHVyY2hpbGwsIFJvb3NldmVs
dCwgYW5kIHRoZSBJbnRlcm5hdGlvbmFsIEhpc3Rvcnkgb2YgdGhlIDE5NDBzLiBPeGZvcmQgVW5p
dmVyc2l0eSBQcmVzcywgVVNBLiBwLiA3Ni4gSVNCTiAwMTk5Mjg0MTEzLiBSZXRyaWV2ZWQgMTUg
Tm92ZW1iZXIgMjAwOS4KXiBhIGIgQ3Jhd2ZvcmQsIEtlaXRoOyBGb3N0ZXIsIFN0dWFydCBKICgy
MDA3KSAoR29vZ2xlIGJvb2tzKS4gV2FyLCBuYXRpb24sIG1lbW9yeTogaW50ZXJuYXRpb25hbCBw
ZXJzcGVjdGl2ZXMgb24gV29ybGQgV2FyIElJIGluIHNjaG9vbCBoaXN0b3J5IHRleHRib29rcy4g
SW5mb3JtYXRpb24gQWdlIFB1Ymxpc2hpbmcuIHAuIDY4LiBJU0JOIDE1OTMxMTg1MlguIFJldHJp
ZXZlZCAxNSBOb3ZlbWJlciAyMDA5LgpeIFNoaXJlciwgV2lsbGlhbSBMICgxOTkwKS4gVGhlIFJp
c2UgYW5kIEZhbGwgb2YgdGhlIFRoaXJkIFJlaWNoOiBBIEhpc3Rvcnkgb2YgTmF6aSBHZXJtYW55
LiBTaW1vbiBhbmQgU2NodXN0ZXIuIHBwLiA3MjHigJMzLiBJU0JOIDA2NzE3Mjg2ODcuCl4gUmVn
YW4sIEdlb2ZmcmV5ICgyMDAwKS4gVGhlIEJyYXNzZXkncyBib29rIG9mIG1pbGl0YXJ5IGJsdW5k
ZXJzLiBCcmFzc2V5J3MuIHAuIDE1Mi4gSVNCTiAxNTc0ODgyNTJYLgpeIEtlbm5lZHksIERhdmlk
IE0gKDE5OTkpIChRdWVzdGlhIGJvb2tzKS4gRnJlZWRvbSBmcm9tIEZlYXI6IFRoZSBBbWVyaWNh
biBQZW9wbGUgaW4gRGVwcmVzc2lvbiBhbmQgV2FyLCAxOTI54oCTMTk0NS4gT3hmb3JkIFVuaXZl
cnNpdHkgUHJlc3MuIHAuIDQzOS4gSVNCTiAwMTk1MDM4MzQ3LiBSZXRyaWV2ZWQgMTUgTm92ZW1i
ZXIgMjAwOS4KXiBLbGF1cywgQXV0YmVydCAoMjAwMSkuIEdlcm1hbnkgYW5kIHRoZSBTZWNvbmQg
V29ybGQgV2FyIFZvbHVtZSAyOiBHZXJtYW55J3MgSW5pdGlhbCBDb25xdWVzdHMgaW4gRXVyb3Bl
LiBPeGZvcmQgVW5pdmVyc2l0eSBQcmVzcy4gcC4gMzExLiBJU0JOIDAxOTgyMjg4ODAuIFJldHJp
ZXZlZCAxNSBOb3ZlbWJlciAyMDA5LgpeIEJyb3duLCBEYXZpZCAoMjAwNCkuIFRoZSBSb2FkIHRv
IE9yYW46IEFuZ2xvLUZyZW5jaCBOYXZhbCBSZWxhdGlvbnMsIFNlcHRlbWJlciAxOTM5IOKAkyBK
dWx5IDE5NDAuIFRheWxvciAmIEZyYW5jaXMuIHAuIHh4eC4gSVNCTiAwNzE0NjU0NjEyLgpeIEZl
cmd1c29uLCBOaWFsbCAoMjAwNikuIFRoZSBXYXIgb2YgdGhlIFdvcmxkIFBlbmd1aW4sIHBwLjM2
NywgMzc2LCAzNzksIDQxNwpeIFNueWRlciwgVGltb3RoeSAoMjAxMCkuIEJsb29kbGFuZHMsIFJh
bmRvbSBIb3VzZSwgZnJvbSBwLiAxMTggb253YXJkcwpeIFJvYmVydHMsIEdlb2ZmcmV5ICgyMDA2
KS4gU3RhbGluJ3MgV2FyczogRnJvbSBXb3JsZCBXYXIgdG8gQ29sZCBXYXIsIDE5MznigJMxOTUz
LiBZYWxlIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDU2LiBJU0JOIDAzMDAxMTIwNDEuCl4gUm9iZXJ0
cywgR2VvZmZyZXkgKDIwMDYpLiBTdGFsaW4ncyBXYXJzOiBGcm9tIFdvcmxkIFdhciB0byBDb2xk
IFdhciwgMTkzOeKAkzE5NTMuIFlhbGUgVW5pdmVyc2l0eSBQcmVzcy4gcC4gNTkuIElTQk4gMDMw
MDExMjA0MS4KXiBLZWxseSwgTmlnZWw7IFJlZXMsIFJvc2VtYXJ5OyBTaHV0ZXIsIEphbmUgKDE5
OTgpLiBUd2VudGlldGggQ2VudHVyeSBXb3JsZC4gSGVpbmVtYW5uLiBwLiAzOC4gSVNCTiAwNDM1
MzA5ODM4LgpeIEdvbGRzdGVpbiwgTWFyZ2FyZXQgSiAoMjAwNCkuIFdvcmxkIFdhciBJSS4gVHdl
bnR5LUZpcnN0IENlbnR1cnkgQm9va3MuIHAuIDM1LiBJU0JOIDA4MjI1MDEzOTIuCl4gTWVyY2Fk
bywgU3RlcGhlbiBDICgyMDAzKS4gVGhlIFNoYWRvdyBXYXJyaW9ycyBvZiBOYWthbm86IEEgSGlz
dG9yeSBvZiB0aGUgSW1wZXJpYWwgSmFwYW5lc2UgQXJteSdzIEVsaXRlIEludGVsbGlnZW5jZSBT
Y2hvb2wuIEJyYXNzZXkncy4gcC4gMTA5LiBJU0JOIDE1NzQ4ODUzODMuCl4gQnJvd24sIFJvYmVy
dCBKLiAoMjAwNCkuIE1hbmlwdWxhdGluZyB0aGUgRXRoZXI6IFRoZSBQb3dlciBvZiBCcm9hZGNh
c3QgUmFkaW8gaW4gVGhpcnRpZXMgQW1lcmljYS4gTWNGYXJsYW5kLiBwLiA5MS4gSVNCTiAwNzg2
NDIwNjY5LgpeIE1vcmlzb24sIFNhbXVlbCBFbGlvdCAoMjAwMikuIEhpc3Rvcnkgb2YgVW5pdGVk
IFN0YXRlcyBOYXZhbCBPcGVyYXRpb25zIGluIFdvcmxkIFdhciBJSS4gVW5pdmVyc2l0eSBvZiBJ
bGxpbm9pcyBQcmVzcy4gcC4gNjAuIElTQk4gMDI1MjA3MDY1OC4KXiBNYWluZ290LCBBbnRob255
IFAuICgxOTk0KS4gVGhlIFVuaXRlZCBTdGF0ZXMgYW5kIHRoZSBDYXJpYmJlYW46IENoYWxsZW5n
ZXMgb2YgYW4gQXN5bW1ldHJpY2FsIFJlbGF0aW9uc2hpcC4gV2VzdHZpZXcgUHJlc3MuIHAuIDUy
LiBJU0JOIDA4MTMzMjI0MTMuCl4gQ2FudHJpbCwgSGFkbGV5IChTZXB0ZW1iZXIgMTk0MCkuICJB
bWVyaWNhIEZhY2VzIHRoZSBXYXI6IEEgU3R1ZHkgaW4gUHVibGljIE9waW5pb24iLiBUaGUgUHVi
bGljIE9waW5pb24gUXVhcnRlcmx5IDQgKDMpOiAzOTAuCl4gV2VpbmJlcmcgMTk5NSwgcC4gMTgy
Cl4gQmlsaGFydHosIFRlcnJ5IEQuOyBFbGxpb3R0LCBBbGFuIEMuICgyMDA3KS4gQ3VycmVudHMg
aW4gQW1lcmljYW4gSGlzdG9yeTogQSBCcmllZiBIaXN0b3J5IG9mIHRoZSBVbml0ZWQgU3RhdGVz
LiBNLkUuIFNoYXJwZS4gcC4gMTc5LiBJU0JOIDk3ODA3NjU2MTgyMTQuCl4gTXVycmF5ICYgTWls
bGV0dCAyMDAxLCBwLiAxNjUKXiBLbmVsbCwgSGVybWFubiAoMjAwMykuIFRvIERlc3Ryb3kgYSBD
aXR5OiBTdHJhdGVnaWMgQm9tYmluZyBhbmQgSXRzIEh1bWFuIENvbnNlcXVlbmNlcyBpbiBXb3Js
ZCBXYXIgSUkuIERhIENhcG8uIHAuIDIwNS4gSVNCTiAwMzA2ODExNjkzLgpeIE11cnJheSAmIE1p
bGxldHQgMjAwMSwgcHAuIDIzM+KAkzI0NQpeIFNjaG9lbmhlcnIsIFN0ZXZlbiAoMSBPY3RvYmVy
IDIwMDUpLiAiVW5kZWNsYXJlZCBOYXZhbCBXYXIgaW4gdGhlIEF0bGFudGljIDE5NDEiLiBIaXN0
b3J5IERlcGFydG1lbnQgYXQgdGhlIFVuaXZlcnNpdHkgb2YgU2FuIERpZWdvLiBSZXRyaWV2ZWQg
MTUgRmVicnVhcnkgMjAxMC5bZGVhZCBsaW5rXQpeIERlYXIsIEkuIEMuIEIuOyBGb290LCBNLiBS
LiBELCBlZHMgKDIwMDIpLiAiVHJpcGFydGl0ZSBQYWN0Ii4gT3hmb3JkIENvbXBhbmlvbiB0byBX
b3JsZCBXYXIgSUkuIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLiBwLiA4NzcuIElTQk4gMDE5ODYw
NDQ2Ny4KXiBEZWxldGFudCwgRGVubmlzICgyMDAyKS4gIlJvbWFuaWEiLiBJbiBEZWFyLCBJLiBD
LiBCLjsgRm9vdCwgTS4gUi4gRC4gT3hmb3JkIENvbXBhbmlvbiB0byBXb3JsZCBXYXIgSUkuIHBw
LiA3NDXigJM0Ni4gSVNCTiAwMTk4NjA0NDY3LgpeIENsb2dnLCBSaWNoYXJkICgxOTkyKS4gQSBD
b25jaXNlIEhpc3Rvcnkgb2YgR3JlZWNlLiBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcy4gcC4g
MTE4LiBJU0JOIDA1MjE4MDg3MjMuCl4gQW5kcmV3LCBTdGVwaGVuICgyMDAxKS4gVGhlIEl0YWxp
YW4gQXJteSAxOTQw4oCTNDUgKDIpOiBBZnJpY2EgMTk0MOKAkzQzLiBPc3ByZXkgUHVibGlzaGlu
Zy4gcHAuIDnigJMxMC4gSVNCTiAxODU1MzI4NjU4LgpeIEJyb3duLCBEYXZpZCAoMjAwMikuIFRo
ZSBSb3lhbCBOYXZ5IGFuZCB0aGUgTWVkaXRlcnJhbmVhbi4gUm91dGxlZGdlLiBwcC4gNjTigJM2
NS4gSVNCTiAwNzE0NjUyMDU5LgpeIEphY2tzb24sIEFzaGxleSAoMjAwNikuIFRoZSBCcml0aXNo
IEVtcGlyZSBhbmQgdGhlIFNlY29uZCBXb3JsZCBXYXIuIENvbnRpbnV1bSBJbnRlcm5hdGlvbmFs
IFB1Ymxpc2hpbmcgR3JvdXAuIHAuIDEwNi4gSVNCTiAxODUyODU0MTcwLgpeIExhdXJpZXIsIEpp
bSAoMjAwMSkuIFRvYnJ1ayAxOTQxOiBSb21tZWwncyBvcGVuaW5nIG1vdmUuIE9zcHJleSBQdWJs
aXNoaW5nLiBwcC4gN+KAkzguIElTQk4gMTg0MTc2MDkyNy4KXiBNdXJyYXkgJiBNaWxsZXR0IDIw
MDEsIHBwLiAyNjPigJM2NwpeIE1hY2tzZXksIEtlbm5ldGggKDE5OTcpLiBSb21tZWw6IGJhdHRs
ZXMgYW5kIGNhbXBhaWducy4gRGEgQ2FwbyBQcmVzcy4gcHAuIDYx4oCTNjMuIElTQk4gMDMwNjgw
Nzg2Ni4KXiBXZWluYmVyZyAxOTk1LCBwLiAyMjkKXiBXYXRzb24sIFdpbGxpYW0gRSAoMjAwMyku
IFRyaWNvbG9yIGFuZCBDcmVzY2VudDogRnJhbmNlIGFuZCB0aGUgSXNsYW1pYyBXb3JsZC4gR3Jl
ZW53b29kIFB1Ymxpc2hpbmcgR3JvdXAuIHAuIDgwLiBJU0JOIDAyNzU5NzQ3MDcuCl4gSmFja3Nv
biwgQXNobGV5ICgyMDA2KS4gVGhlIEJyaXRpc2ggRW1waXJlIGFuZCB0aGUgU2Vjb25kIFdvcmxk
IFdhci4gQ29udGludXVtIEludGVybmF0aW9uYWwgUHVibGlzaGluZyBHcm91cC4gcC4gMTU0LiBJ
U0JOIDE4NTI4NTQxNzAuCl4gU3Rld2FydCwgVmFuY2UgKDIwMDIpLiBUaHJlZSBBZ2FpbnN0IE9u
ZTogQ2h1cmNoaWxsLCBSb29zZXZlbHQsIFN0YWxpbiBWcyBBZG9scGggSGl0bGVyLiBTdW5zdG9u
ZSBQcmVzcy4gcC4gMTU5LiBJU0JOIDA4NjUzNDM3NzIuCl4gRGVhciwgSS5DLkIgYW5kIEZvb3Qs
IE0uUi5ELiAoZWRpdG9ycykgKDIwMDUpLiAiQmxpdHoiLiBUaGUgT3hmb3JkIENvbXBhbmlvbiB0
byBXb3JsZCBXYXIgSUkuIE94Zm9yZDogT3hmb3JkIFVuaXZlcnNpdHkgUHJlc3MuIHBwLiAxMDji
gJMxMDkuIElTQk4gOTc4MDE5MjgwNjcwMy4KXiBVbml0ZWQgU3RhdGVzLiBBaXIgRm9yY2UgTG9n
aXN0aWNzIE1hbmFnZW1lbnQgQWdlbmN5ICgyMDA0KS4gQUZMTUEgWWVhciBpbiBSZXZpZXcuIERJ
QU5FIFB1Ymxpc2hpbmcuIHAuIDMzLiBJU0JOIDE0Mjg5OTM4ODYuCl4gSm9lcywgQW50aG9ueSBK
YW1lcyAoMjAwNCkuIFJlc2lzdGluZyBSZWJlbGxpb246IFRoZSBIaXN0b3J5IEFuZCBQb2xpdGlj
cyBvZiBDb3VudGVyaW5zdXJnZW5jeS4gVW5pdmVyc2l0eSBQcmVzcyBvZiBLZW50dWNreS4gcC4g
MjI0LiBJU0JOIDA4MTMxMjMzOTkuCl4gRmFpcmJhbmssIEpvaG4gS2luZzsgR29sZG1hbiwgTWVy
bGUgKDE5OTQpLiBDaGluYTogQSBOZXcgSGlzdG9yeS4gSGFydmFyZCBVbml2ZXJzaXR5IFByZXNz
LiBwLiAzMjAuIElTQk4gMDY3NDExNjczOS4KXiBHYXJ2ZXIsIEpvaG4gVyAoMTk4OCkuIENoaW5l
c2UtU292aWV0IFJlbGF0aW9ucywgMTkzN+KAkzE5NDU6IFRoZSBEaXBsb21hY3kgb2YgQ2hpbmVz
ZSBOYXRpb25hbGlzbS4gT3hmb3JkIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDExNC4gSVNCTiAwMTk1
MDU0MzI2LgpeIFdlaW5iZXJnIDE5OTUsIHAuIDE5NQpeIFNlbGxhLCBBbW5vbiAoSnVseSAxOTc4
KS4gIiJCYXJiYXJvc3NhIjogU3VycHJpc2UgQXR0YWNrIGFuZCBDb21tdW5pY2F0aW9uIi4gSm91
cm5hbCBvZiBDb250ZW1wb3JhcnkgSGlzdG9yeSAxMyAoMyk6IDU1NeKAkzgzLiBkb2k6MTAuMTE3
Ny8wMDIyMDA5NDc4MDEzMDAzMDguCl4gS2Vyc2hhdywgSWFuICgyMDA3KS4gRmF0ZWZ1bCBDaG9p
Y2VzLiBBbGxlbiBMYW5lLiBwcC4gNjbigJM2OS4gSVNCTiAwNzEzOTk3MTI1LgpeIFN0ZWluYmVy
ZywgSm9uYXRoYW4gKEp1bmUgMTk5NSkuICJUaGUgVGhpcmQgUmVpY2ggUmVmbGVjdGVkOiBHZXJt
YW4gQ2l2aWwgQWRtaW5pc3RyYXRpb24gaW4gdGhlIE9jY3VwaWVkIFNvdmlldCBVbmlvbiwgMTk0
MeKAkzQiLiBUaGUgRW5nbGlzaCBIaXN0b3JpY2FsIFJldmlldyAxMTAgKDQzNyk6IDYyMOKAkzUx
LgpeIEhhdW5lciwgTWlsYW4gKEphbnVhcnkgMTk3OCkuICJEaWQgSGl0bGVyIFdhbnQgYSBXb3Js
ZCBEb21pbmlvbj8iLiBKb3VybmFsIG9mIENvbnRlbXBvcmFyeSBIaXN0b3J5IDEzICgxKTogMTXi
gJMzMi4gZG9pOjEwLjExNzcvMDAyMjAwOTQ3ODAxMzAwMTAyLgpeIFJvYmVydHMsIEN5bnRoaWEg
QSAoRGVjZW1iZXIgMTk5NSkuICJQbGFubmluZyBmb3IgV2FyOiBUaGUgUmVkIEFybXkgYW5kIHRo
ZSBDYXRhc3Ryb3BoZSBvZiAxOTQxIi4gRXVyb3BlLUFzaWEgU3R1ZGllcyA0NyAoOCk6IDEyOTPi
gJMyNi4gZG9pOjEwLjEwODAvMDk2NjgxMzk1MDg0MTIzMjIuCl4gV2lsdCwgQWxhbiBGLiAoRGVj
ZW1iZXIgMTk4MSkuICJIaXRsZXIncyBMYXRlIFN1bW1lciBQYXVzZSBpbiAxOTQxIi4gTWlsaXRh
cnkgQWZmYWlycyA0NSAoNCk6IDE4N+KAkzkxLiBkb2k6MTAuMjMwNy8xOTg3NDY0LgpeIEVyaWNr
c29uLCBKb2huICgyMDAzKS4gVGhlIFJvYWQgdG8gU3RhbGluZ3JhZC4gQ2Fzc2VsbCBNaWxpdGFy
eS4gcHAuIDExNOKAkzEzNy4gSVNCTiAwMzA0MzY1NDE2LgpeIEdsYW50eiAyMDAxLCBwLiA5Cl4g
IkhpdGxlciBDYW4gQmUgQmVhdGVuIi4gTmV3IFlvcmsgVGltZXMuIDUgQXVndXN0IDE5NDEuIHBw
LiBDMTguIFJldHJpZXZlZCAxNyBGZWJydWFyeSAyMDEwLgpeIEZhcnJlbGwsIEJyaWFuIFAgKE9j
dG9iZXIgMTk5MykuICJZZXMsIFByaW1lIE1pbmlzdGVyOiBCYXJiYXJvc3NhLCBXaGlwY29yZCwg
YW5kIHRoZSBCYXNpcyBvZiBCcml0aXNoIEdyYW5kIFN0cmF0ZWd5LCBBdXR1bW4gMTk0MSIuIFRo
ZSBKb3VybmFsIG9mIE1pbGl0YXJ5IEhpc3RvcnkgNTcgKDQpOiA1OTnigJM2MjUuIGRvaToxMC4y
MzA3LzI5NDQwOTYuCl4gUHJhdmRhLCBBbGV4OyBEdW5jYW4sIFBldGVyIEouIFMgKDE5OTApLiBT
b3ZpZXQtQnJpdGlzaCBSZWxhdGlvbnMgU2luY2UgdGhlIDE5NzBzLiBDYW1icmlkZ2UgVW5pdmVy
c2l0eSBQcmVzcy4gcC4gMjkuIElTQk4gMDUyMTM3NDk0NC4KXiBCdWVubyBkZSBNZXNxdWl0YSwg
QnJ1Y2U7IFNtaXRoLCBBbGFzdGFpcjsgU2l2ZXJzb24sIFJhbmRvbHBoIE0uOyBNb3Jyb3csIEph
bWVzIEQgKDIwMDUpLiBUaGUgTG9naWMgb2YgUG9saXRpY2FsIFN1cnZpdmFsLiBNSVQgUHJlc3Mu
IHAuIDQyNS4gSVNCTiAwMjYyNTI0NDA2LgpeIGEgYiBMb3VpcywgV2lsbGlhbSBSb2dlciAoMTk5
OCkuIE1vcmUgQWR2ZW50dXJlcyB3aXRoIEJyaXRhbm5pYTogUGVyc29uYWxpdGllcywgUG9saXRp
Y3MgYW5kIEN1bHR1cmUgaW4gQnJpdGFpbi4gVW5pdmVyc2l0eSBvZiBUZXhhcyBQcmVzcy4gcC4g
MjIzLiBJU0JOIDAyOTI3NDcwOFguCl4gS2xlaW5mZWxkLCBHZXJhbGQgUiAoT2N0b2JlciAxOTgz
KS4gIkhpdGxlcidzIFN0cmlrZSBmb3IgVGlraHZpbiIuIE1pbGl0YXJ5IEFmZmFpcnMgNDcgKDMp
OiAxMjLigJMxMjguIGRvaToxMC4yMzA3LzE5ODgwODIuCl4gU2h1a21hbiwgSGFyb2xkICgyMDAx
KS4gU3RhbGluJ3MgR2VuZXJhbHMuIFBob2VuaXggUHJlc3MuIHAuIDExMy4gSVNCTiAxODQyMTI1
MTMzLgpeIEdsYW50eiAyMDAxLCBwLiAyNiwgIkJ5IDEgTm92ZW1iZXIgW3RoZSBXZWhybWFjaHRd
IGhhZCBsb3N0IGZ1bGx5IDIwJSBvZiBpdHMgY29tbWl0dGVkIHN0cmVuZ3RoICg2ODYsMDAwIG1l
biksIHVwIHRvIDIvMyBvZiBpdHMgwr0tbWlsbGlvbiBtb3RvciB2ZWhpY2xlcywgYW5kIDY1IHBl
cmNlbnQgb2YgaXRzIHRhbmtzLiBUaGUgR2VybWFuIEFybXkgSGlnaCBDb21tYW5kIChPS0gpIHJh
dGVkIGl0cyAxMzYgZGl2aXNpb25zIGFzIGVxdWl2YWxlbnQgdG8gODMgZnVsbC1zdHJlbmd0aCBk
aXZpc2lvbnMuIgpeIFJlaW5oYXJkdCwgS2xhdXM7IEtlZW5hbiwgS2FybCBCICgxOTkyKS4gTW9z
Y293LVRoZSBUdXJuaW5nIFBvaW50OiBUaGUgRmFpbHVyZSBvZiBIaXRsZXIncyBTdHJhdGVneSBp
biB0aGUgV2ludGVyIG9mIDE5NDHigJM0Mi4gQmVyZy4gcC4gMjI3LiBJU0JOIDA4NTQ5NjY5NTEu
Cl4gTWlsd2FyZCwgQS5TLiAoMTk2NCkuICJUaGUgRW5kIG9mIHRoZSBCbGl0emtyaWVnIi4gVGhl
IEVjb25vbWljIEhpc3RvcnkgUmV2aWV3IDE2ICgzKTogNDk54oCTNTE4LiBkb2k6MTAuMTExMS9q
LjE0NjgtMDI4OS4xOTY0LnRiMDE3NDQueC4KXiBSb3R1bmRvLCBMb3VpcyAoSmFudWFyeSAxOTg2
KS4gIlRoZSBDcmVhdGlvbiBvZiBTb3ZpZXQgUmVzZXJ2ZXMgYW5kIHRoZSAxOTQxIENhbXBhaWdu
Ii4gTWlsaXRhcnkgQWZmYWlycyA1MCAoMSk6IDIx4oCTOC4gZG9pOjEwLjIzMDcvMTk4ODUzMC4K
XiBHbGFudHogMjAwMSwgcC4gMjYKXiBHYXJ0aG9mZiwgUmF5bW9uZCBMIChPY3RvYmVyIDE5Njkp
LiAiVGhlIFNvdmlldCBNYW5jaHVyaWFuIENhbXBhaWduLCBBdWd1c3QgMTk0NSIuIE1pbGl0YXJ5
IEFmZmFpcnMgMzMgKDIpOiAzMTIuCl4gV2VsY2gsIERhdmlkICgxOTk5KS4gTW9kZXJuIEV1cm9w
ZWFuIEhpc3RvcnksIDE4NzHigJMyMDAwOiBBIERvY3VtZW50YXJ5IFJlYWRlci4gUm91dGxlZGdl
LiBwLiAxMDIuIElTQk4gMDQxNTIxNTgyWC4KXiBXZWluYmVyZywgR2VyaGFyZCBMICgyMDA1KS4g
QSBXb3JsZCBBdCBBcm1zLiBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcy4gcC4gMjQ4LiBJU0JO
IDA1MjE2MTgyNjYuCl4gQW5kZXJzb24sIElydmluZSBILiwgSnIuIChNYXkgMTk3NSkuICJEZSBG
YWN0byBFbWJhcmdvIG9uIE9pbCB0byBKYXBhbjogQSBCdXJlYXVjcmF0aWMgUmVmbGV4Ii4gVGhl
IFBhY2lmaWMgSGlzdG9yaWNhbCBSZXZpZXcgNDQgKDIpOiAyMDEuCl4gUGVhdHRpZSwgTWFyayBS
LjsgRXZhbnMsIERhdmlkIEMuICgxOTk3KS4gS2FpZ3VuOiBTdHJhdGVneSwgVGFjdGljcywgYW5k
IFRlY2hub2xvZ3kgaW4gdGhlIEltcGVyaWFsIEphcGFuZXNlIE5hdnkuIE5hdmFsIEluc3RpdHV0
ZSBQcmVzcy4gcC4gNDU2LiBJU0JOIDA4NzAyMTE5MjcuCl4gTGlnaHRib2R5LCBCcmFkbGV5ICgy
MDA0KS4gVGhlIFNlY29uZCBXb3JsZCBXYXI6IEFtYml0aW9ucyB0byBOZW1lc2lzLiBSb3V0bGVk
Z2UuIHAuIDEyNS4gSVNCTiAwNDE1MjI0MDQ3LgpeIFdlaW5iZXJnLCBHZXJoYXJkIEwgKDIwMDUp
LiBBIFdvcmxkIEF0IEFybXMuIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLiBwLiAzMTAuIElT
Qk4gMDUyMTYxODI2Ni4KXiBNb3JnYW4sIFBhdHJpY2sgTSAoMTk4MykuIFN0cmF0ZWdpYyBNaWxp
dGFyeSBTdXJwcmlzZTogSW5jZW50aXZlcyBhbmQgT3Bwb3J0dW5pdGllcy4gVHJhbnNhY3Rpb24g
UHVibGlzaGVycy4gcC4gNTEuIElTQk4gMDg3ODU1OTEyNC4KXiBhIGIgV29obHN0ZXR0ZXIsIFJv
YmVydGEgKDE5NjIpLiBQZWFybCBIYXJib3I6IFdhcm5pbmcgYW5kIERlY2lzaW9uLiBTdGFuZm9y
ZCBVbml2ZXJzaXR5IFByZXNzLiBwcC4gMzQx4oCTNDMuIElTQk4gMDgwNDcwNTk4NC4KXiBNaW5n
c3QsIEthcmVuIEEuOyBLYXJucywgTWFyZ2FyZXQgUCAoMjAwNykuIFVuaXRlZCBOYXRpb25zIGlu
IHRoZSBUd2VudHktRmlyc3QgQ2VudHVyeS4gV2VzdHZpZXcgUHJlc3MuIHAuIDIyLiBJU0JOIDA4
MTMzNDM0NjEuCl4gRHVubiwgRGVubmlzIEogKDE5OTgpLiBDYXVnaHQgQmV0d2VlbiBSb29zZXZl
bHQgJiBTdGFsaW46IEFtZXJpY2EncyBBbWJhc3NhZG9ycyB0byBNb3Njb3cuIFRoZSBVbml2ZXJz
aXR5IFByZXNzIG9mIEtlbnR1Y2t5LiBwLiAxNTcuIElTQk4gMDgxMzEyMDIzMy4KXiBBY2NvcmRp
bmcgdG8gRXJuZXN0IE1heSAoTWF5LCBFcm5lc3QgKDE5NTUpLiAiVGhlIFVuaXRlZCBTdGF0ZXMs
IHRoZSBTb3ZpZXQgVW5pb24gYW5kIHRoZSBGYXIgRWFzdGVybiBXYXIiLiBUaGUgUGFjaWZpYyBI
aXN0b3JpY2FsIFJldmlldyAyNCAoMik6IDE1Ni4pIENodXJjaGlsbCBzdGF0ZWQ6ICJSdXNzaWFu
IGRlY2xhcmF0aW9uIG9mIHdhciBvbiBKYXBhbiB3b3VsZCBiZSBncmVhdGx5IHRvIG91ciBhZHZh
bnRhZ2UsIHByb3ZpZGVkLCBidXQgb25seSBwcm92aWRlZCwgdGhhdCBSdXNzaWFucyBhcmUgY29u
ZmlkZW50IHRoYXQgd2lsbCBub3QgaW1wYWlyIHRoZWlyIFdlc3Rlcm4gRnJvbnQiLgpeIFJlZXMs
IExhdXJlbmNlICgyMDA5KS4gV29ybGQgV2FyIFR3byBCZWhpbmQgQ2xvc2VkIERvb3JzLCBCQkMg
Qm9va3MsIHAuIDk5LgpeIFJlZXMsIExhdXJlbmNlICgyMDA5KS4gV29ybGQgV2FyIFR3byBCZWhp
bmQgQ2xvc2VkIERvb3JzLCBCQkMgQm9va3MsIHAuIDQwNi03LgpeIEtsYW0sIEp1bGllICgyMDAy
KS4gVGhlIFJpc2Ugb2YgSmFwYW4gYW5kIFBlYXJsIEhhcmJvci4gQmxhY2sgUmFiYml0IEJvb2tz
LiBwLiAyNy4gSVNCTiAxNTgzNDAxODgxLgpeIExld2lzLCBNb3J0b24uICJYWElYLiBKYXBhbmVz
ZSBQbGFucyBhbmQgQW1lcmljYW4gRGVmZW5zZXMiLiBJbiBHcmVlbmZpZWxkLCBLZW50IFJvYmVy
dHMuIFRoZSBGYWxsIG9mIHRoZSBQaGlsaXBwaW5lcy4gVS5TLiBHb3Zlcm5tZW50IFByaW50aW5n
IE9mZmljZS4gcC4gNTI5LiBMaWJyYXJ5IG9mIENvbmdyZXNzIENhdGFsb2d1ZSBDYXJkIE51bWJl
cjogNTMtNjM2NzguIChUYWJsZSAxMSkuCl4gSGlsbCwgSi4gUi47IFJhbmZ0LCBCcnlhbiAoMjAw
MikuIFRoZSBPeGZvcmQgSWxsdXN0cmF0ZWQgSGlzdG9yeSBvZiB0aGUgUm95YWwgTmF2eS4gT3hm
b3JkIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDM2Mi4gSVNCTiAwMTk4NjA1Mjc3LgpeIEhzaXVuZyAx
OTkyLCBwLiAxNTgKXiBQZXJleiwgTG91aXMgRy4gKDEgSnVuZSAxOTk4KSAoR29vZ2xlIEJvb2tz
KS4gVGhlIGhpc3Rvcnkgb2YgSmFwYW4uIEdyZWVud29vZCBQdWJsaXNoaW5nIEdyb3VwLiBwLiAx
NDUuIElTQk4gMDMxMzMwMjk2MC4gUmV0cmlldmVkIDEyIE5vdmVtYmVyIDIwMDkuCl4gR29vY2gs
IEpvaG4gKDE5OTApLiBEZWNpc2l2ZSBDYW1wYWlnbnMgb2YgdGhlIFNlY29uZCBXb3JsZCBXYXIu
IFJvdXRsZWRnZS4gcC4gNTIuIElTQk4gMDcxNDYzMzY5MC4KXiBHbGFudHogMjAwMSwgcC4gMzEK
XiBNb2xpbmFyaSwgQW5kcmVhICgyMDA3KS4gRGVzZXJ0IFJhaWRlcnM6IEF4aXMgYW5kIEFsbGll
ZCBTcGVjaWFsIEZvcmNlcyAxOTQw4oCTNDMuIE9zcHJleSBQdWJsaXNoaW5nLiBwLiA5MS4gSVNC
TiAxODQ2MDMwMDY0LgpeIE1pdGNoYW0sIFNhbXVlbCBXLjsgTWl0Y2hhbSwgU2FtdWVsIFcuIEpy
ICgxOTgyKS4gUm9tbWVsJ3MgRGVzZXJ0IFdhcjogVGhlIExpZmUgYW5kIERlYXRoIG9mIHRoZSBB
ZnJpa2EgS29ycHMuIFN0ZWluICYgRGF5LiBwLiAzMS4gSVNCTiA5NzgwODExNzM0MTM0LgpeIE1h
ZGRveCwgUm9iZXJ0IEphbWVzICgxOTkyKS4gVGhlIFVuaXRlZCBTdGF0ZXMgYW5kIFdvcmxkIFdh
ciBJSS4gV2VzdHZpZXcgUHJlc3MuIHBwLiAxMTHigJMxMi4gSVNCTiAwODEzMzA0MzY5LgpeIFNh
bGVja2VyLCBHZW5lIEVyaWMgKDIwMDEpLiBGb3J0cmVzcyBBZ2FpbnN0IHRoZSBTdW46IFRoZSBC
LTE3IEZseWluZyBGb3J0cmVzcyBpbiB0aGUgUGFjaWZpYy4gRGEgQ2FwbyBQcmVzcy4gcC4gMTg2
LiBJU0JOIDE1ODA5NzA0OTQuCl4gUm9wcCwgVGhlb2RvcmUgKDE5NjIpLiBXYXIgaW4gdGhlIE1v
ZGVybiBXb3JsZC4gTWFjbWlsbGFuIFB1Ymxpc2hpbmcgQ29tcGFueS4gcC4gMzY4LiBJU0JOIDA4
MDE4NjQ0NTMuCl4gV2VpbmJlcmcgMTk5NSwgcC4gMzM5Cl4gR2lsYmVydCwgQWRyaWFuICgyMDAz
KS4gVGhlIEVuY3ljbG9wZWRpYSBvZiBXYXJmYXJlOiBGcm9tIEVhcmxpZXN0IFRpbWVzIHRvIHRo
ZSBQcmVzZW50IERheS4gR2xvYmUgUGVxdW90LiBwLiAyNTkuIElTQk4gMTU5MjI4MDI3Ny4KXiBT
d2FpbiwgQnJ1Y2UgKDIwMDEpLiBBIENocm9ub2xvZ3kgb2YgQXVzdHJhbGlhbiBBcm1lZCBGb3Jj
ZXMgYXQgV2FyIDE5MznigJM0NS4gQWxsZW4gJiBVbndpbi4gcC4gMTk3LiBJU0JOIDE4NjUwODM1
MjYuCl4gSGFuZSwgTWlraXNvICgyMDAxKS4gTW9kZXJuIEphcGFuOiBBIEhpc3RvcmljYWwgU3Vy
dmV5LiBXZXN0dmlldyBQcmVzcy4gcC4gMzQwLiBJU0JOIDA4MTMzMzc1NjkuCl4gTWFyc3Rvbiwg
RGFuaWVsICgyMDA1KS4gVGhlIFBhY2lmaWMgV2FyIENvbXBhbmlvbjogRnJvbSBQZWFybCBIYXJi
b3IgdG8gSGlyb3NoaW1hLiBPc3ByZXkgUHVibGlzaGluZy4gcC4gMTExLiBJU0JOIDE4NDE3Njg4
MjAuCl4gQnJheWxleSwgTWFydGluIEogKDIwMDIpLiBUaGUgQnJpdGlzaCBBcm15LCAxOTM54oCT
NDU6IFRoZSBGYXIgRWFzdC4gT3NwcmV5IFB1Ymxpc2hpbmcuIHAuIDkuIElTQk4gMTg0MTc2MjM4
NS4KXiBSZWFkLCBBbnRob255ICgyMDA0KS4gVGhlIERldmlsJ3MgRGlzY2lwbGVzOiBIaXRsZXIn
cyBJbm5lciBDaXJjbGUuIFcuIFcuIE5vcnRvbiAmIENvbXBhbnkuIHAuIDc2NC4gSVNCTiAwMzkz
MDQ4MDA0LgpeIERhdmllcywgTm9ybWFuICgyMDA2KS4gRXVyb3BlIGF0IFdhciAxOTM54oCTMTk0
NTogTm8gU2ltcGxlIFZpY3RvcnkuIE1hY21pbGxhbi4gcC4gMTAwLiBJU0JOIDAzMzM2OTI4NTMu
Cl4gQmFkc2V5LCBTdGVwaGVuICgyMDAwKS4gVGhlIEh1dGNoaW5zb24gQXRsYXMgb2YgV29ybGQg
V2FyIElJIEJhdHRsZSBQbGFuczogQmVmb3JlIGFuZCBBZnRlci4gVGF5bG9yICYgRnJhbmNpcy4g
cHAuIDIzNeKAkzM2LiBJU0JOIDE1Nzk1ODI2NTYuCl4gQmxhY2ssIEplcmVteSAoMjAwMykuIFdv
cmxkIFdhciBUd286IEEgTWlsaXRhcnkgSGlzdG9yeS4gUm91dGxlZGdlLiBwLiAxMTkuIElTQk4g
MDQxNTMwNTM0OS4KXiBHaWxiZXJ0LCBTaXIgTWFydGluICgyMDA0KS4gVGhlIFNlY29uZCBXb3Js
ZCBXYXI6IEEgQ29tcGxldGUgSGlzdG9yeS4gTWFjbWlsbGFuLiBwcC4gMzk34oCTNDAwLiBJU0JO
IDA4MDUwNzYyMzkuCl4gU2h1a21hbiwgSGFyb2xkICgyMDAxKS4gU3RhbGluJ3MgR2VuZXJhbHMu
IFBob2VuaXggUHJlc3MuIHAuIDE0Mi4gSVNCTiAxODQyMTI1MTMzLgpeIEdhbm5vbiwgSmFtZXMg
KDIwMDIpLiBTdGVhbGluZyBTZWNyZXRzLCBUZWxsaW5nIExpZXM6IEhvdyBTcGllcyBhbmQgQ29k
ZWJyZWFrZXJzIEhlbHBlZCBTaGFwZSB0aGUgVHdlbnRpZXRoIENlbnR1cnkuIEJyYXNzZXkncy4g
cC4gNzYuIElTQk4gMTU3NDg4NDczNS4KXiBQYXh0b24sIFJvYmVydCBPICgxOTcyKS4gVmljaHkg
RnJhbmNlOiBPbGQgR3VhcmQgYW5kIE5ldyBPcmRlciwgMTk0MOKAkzE5NDQuIEtub3BmLiBwLiAz
MTMuIElTQk4gMDM5NDQ3MzYwNC4KXiBSaWNoLCBOb3JtYW4gKDE5OTIpLiBIaXRsZXIncyBXYXIg
QWltczogSWRlb2xvZ3ksIHRoZSBOYXppIFN0YXRlLCBhbmQgdGhlIENvdXJzZSBvZiBFeHBhbnNp
b24uIE5vcnRvbi4gcC4gMTc4LiBJU0JOIDAzOTMwMDgwMjkuCl4gUGVucm9zZSwgSmFuZSAoMjAw
NCkuIFRoZSBELURheSBDb21wYW5pb24uIE9zcHJleSBQdWJsaXNoaW5nLiBwLiAxMjkuIElTQk4g
MTg0MTc2Nzc5NC4KXiBOZWlsbGFuZHMsIFJvYmluICgyMDA1KS4gVGhlIERpZXBwZSBSYWlkOiBU
aGUgU3Rvcnkgb2YgdGhlIERpc2FzdHJvdXMgMTk0MiBFeHBlZGl0aW9uLiBJbmRpYW5hIFVuaXZl
cnNpdHkgUHJlc3MuIElTQk4gMDI1MzM0NzgxNS4KXiBUaG9tYXMsIERhdmlkIEFydGh1ciAoMTk4
OCkuIEEgQ29tcGFuaW9uIHRvIHRoZSBSb3lhbCBOYXZ5LiBIYXJyYXAuIHAuIDI2NS4gSVNCTiAw
MjQ1NTQ1NzI3LgpeIFRob21hcywgTmlnZWw7IEFuZHJldywgU3RlcGhlbiAoMTk5OCkuIEdlcm1h
biBBcm15IDE5MznigJMxOTQ1ICgyKTogTm9ydGggQWZyaWNhICYgQmFsa2Fucy4gT3NwcmV5IFB1
Ymxpc2hpbmcuIHAuIDguIElTQk4gMTg1NTMyNjQwWC4KXiBhIGIgUm9zcywgU3RldmVuIFQgKDE5
OTcpLiBBbWVyaWNhbiBXYXIgUGxhbnMsIDE5NDHigJMxOTQ1OiBUaGUgVGVzdCBvZiBCYXR0bGUu
IEZyYW5rIENhc3MgJiBDby4gcC4gMzguIElTQk4gMDcxNDY0NjM0Mi4KXiBCb25uZXIsIEtpdDsg
Qm9ubmVyLCBDYXJvbHluICgyMDAxKS4gV2Fyc2hpcCBCb25leWFyZHMuIE1CSSBQdWJsaXNoaW5n
IENvbXBhbnkuIHAuIDI0LiBJU0JOIDA3NjAzMDg3MDUuCl4gQ29sbGllciwgUGF1bCAoMjAwMyku
IFRoZSBTZWNvbmQgV29ybGQgV2FyICg0KTogVGhlIE1lZGl0ZXJyYW5lYW4gMTk0MOKAkzE5NDUu
IE9zcHJleSBQdWJsaXNoaW5nLiBwLiAxMS4gSVNCTiAxODQxNzY1MzkyLgpeIFRob21wc29uLCBK
b2huIEhlcmQ7IFJhbmRhbGwsIFN0ZXBoZW4gSiAoMTk5NCkuIENhbmFkYSBhbmQgdGhlIFVuaXRl
ZCBTdGF0ZXM6IEFtYml2YWxlbnQgQWxsaWVzLiBVbml2ZXJzaXR5IG9mIEdlb3JnaWEgUHJlc3Mu
IHAuIDE2NC4gSVNCTiAwODIwMzI0MDM1LgpeIEtlbm5lZHksIERhdmlkIE0gKDE5OTkpLiBGcmVl
ZG9tIGZyb20gRmVhcjogVGhlIEFtZXJpY2FuIFBlb3BsZSBpbiBEZXByZXNzaW9uIGFuZCBXYXIs
IDE5MjnigJMxOTQ1LiBPeGZvcmQgVW5pdmVyc2l0eSBQcmVzcy4gcC4gNjEwLiBJU0JOIDAxOTUw
MzgzNDcuCl4gUm90dG1hbiwgR29yZG9uIEwgKDIwMDIpLiBXb3JsZCBXYXIgSUkgUGFjaWZpYyBJ
c2xhbmQgR3VpZGU6IEEgR2VvLU1pbGl0YXJ5IFN0dWR5LiBHcmVlbndvb2QgUHVibGlzaGluZyBH
cm91cC4gcC4gMjI4LiBJU0JOIDAzMTMzMTM5NTQuCl4gR2xhbnR6LCBEYXZpZCBNLiAoU2VwdGVt
YmVyIDE5ODYpLiAiU292aWV0IERlZmVuc2l2ZSBUYWN0aWNzIGF0IEt1cnNrLCBKdWx5IDE5NDMi
LiBDU0kgUmVwb3J0IE5vLiAxMS4gKENvbWJpbmVkIEFybXMgUmVzZWFyY2ggTGlicmFyeSkuIE9D
TEMgMjc4MDI5MjU2LiBBcmNoaXZlZCBmcm9tIHRoZSBvcmlnaW5hbCBvbiA2IE1hcmNoIDIwMDgu
IFJldHJpZXZlZCAxNyBGZWJydWFyeSAyMDEwLgpeIEdsYW50eiwgRGF2aWQgTSAoMTk4OSkuIFNv
dmlldCBtaWxpdGFyeSBkZWNlcHRpb24gaW4gdGhlIFNlY29uZCBXb3JsZCBXYXIuIFJvdXRsZWRn
ZS4gcHAuIDE0OeKAkzU5LiBJU0JOIDk3ODA3MTQ2MzM0NzMuCl4gS2Vyc2hhdywgSWFuICgyMDAx
KS4gSGl0bGVyLCAxOTM24oCTMTk0NTogTmVtZXNpcy4gVy4gVy4gTm9ydG9uICYgQ29tcGFueS4g
cC4gNTkyLiBJU0JOIDAzOTMzMjI1MjEuCl4gTydSZWlsbHksIENoYXJsZXMgVCAoMjAwMSkuIEZv
cmdvdHRlbiBCYXR0bGVzOiBJdGFseSdzIFdhciBvZiBMaWJlcmF0aW9uLCAxOTQz4oCTMTk0NS4g
TGV4aW5ndG9uIEJvb2tzLiBwLiAzMi4gSVNCTiAwNzM5MTAxOTUxLgpeIEJlbGxhbXksIENocmlz
IFQgKDIwMDcpLiBBYnNvbHV0ZSB3YXI6IFNvdmlldCBSdXNzaWEgaW4gdGhlIFNlY29uZCBXb3Js
ZCBXYXIuIEJBbGZyZWQgQS4gS25vcGYuIHAuIDU5NS4gSVNCTiAwMzc1NDEwODY0LgpeIE8nUmVp
bGx5LCBDaGFybGVzIFQgKDIwMDEpLiBGb3Jnb3R0ZW4gQmF0dGxlczogSXRhbHkncyBXYXIgb2Yg
TGliZXJhdGlvbiwgMTk0M+KAkzE5NDUuIExleGluZ3RvbiBCb29rcy4gcC4gMzUuIElTQk4gMDcz
OTEwMTk1MS4KXiBIZWFseSwgTWFyayAoMTk5MikuIEt1cnNrIDE5NDM6IFRoZSB0aWRlIHR1cm5z
IGluIHRoZSBFYXN0LiBPc3ByZXkgUHVibGlzaGluZy4gcC4gOTAuIElTQk4gMTg1NTMyMjExMC4K
XiBHbGFudHogMjAwMSwgcHAuIDUw4oCTNTUKXiBNY0dvd2VuLCBUb20gKDIwMDIpLiBBc3NhdWx0
IEZyb20gVGhlIFNlYTogQW1waGliaW91cyBJbnZhc2lvbnMgaW4gdGhlIFR3ZW50aWV0aCBDZW50
dXJ5LiBUd2VudHktRmlyc3QgQ2VudHVyeSBCb29rcy4gcHAuIDQz4oCTNDQuIElTQk4gMDc2MTMx
ODExOS4KXiBMYW1iLCBSaWNoYXJkICgxOTk2KS4gV2FyIGluIEl0YWx5LCAxOTQz4oCTMTk0NTog
QSBCcnV0YWwgU3RvcnkuIERhIENhcG8gUHJlc3MuIHBwLiAxNTTigJM1NS4gSVNCTiAwMzA2ODA2
ODg2LgpeIEhhcnQsIFN0ZXBoZW47IEhhcnQsIFJ1c3NlbGw7IEh1Z2hlcywgTWF0dGhldyAoMjAw
MCkuIFRoZSBHZXJtYW4gU29sZGllciBpbiBXb3JsZCBXYXIgSUkuIE1CSSBQdWJsaXNoaW5nIENv
bXBhbnkuIHAuIDE1MS4gSVNCTiAwNzYwMzA4NDYyLgpeIEJsaW5raG9ybiwgTWFydGluICgxOTg0
KS4gTXVzc29saW5pIGFuZCBGYXNjaXN0IEl0YWx5LiBNZXRodWVuICYgQ28uIHAuIDUyLiBJU0JO
IDA0MTUxMDIzMTYuCl4gUmVhZCwgQW50aG9ueTsgRmlzaGVyLCBEYXZpZCAoMTk5MikuIFRoZSBG
YWxsIG9mIEJlcmxpbi4gSHV0Y2hpbnNvbi4gcC4gMTI5LiBJU0JOIDAwOTE3NTMzNzYuCl4gUmVh
ZCwgQW50aG9ueSAoMjAwNCkuIFRoZSBEZXZpbCdzIERpc2NpcGxlczogSGl0bGVyJ3MgSW5uZXIg
Q2lyY2xlLiBXLiBXLiBOb3J0b24gJiBDb21wYW55LiBwLiA4MDQuIElTQk4gMDM5MzA0ODAwNC4K
XiBhIGIgSXJpeWUsIEFraXJhICgxOTgxKS4gUG93ZXIgYW5kIGN1bHR1cmU6IHRoZSBKYXBhbmVz
ZS1BbWVyaWNhbiB3YXIsIDE5NDHigJMxOTQ1LiBIYXJ2YXJkIFVuaXZlcnNpdHkgUHJlc3MuIHAu
IDE1NC4gSVNCTiAwNjc0Njk1ODI4LgpeIGEgYiBQb2xsZXksIE1hcnRpbiAoMjAwMCkuIEEtWiBv
ZiBtb2Rlcm4gRXVyb3BlIHNpbmNlIDE3ODkuIFRheWxvciAmIEZyYW5jaXMuIHAuIDE0OC4gSVNC
TiAwNDE1MTg1OThYLgpeIFdlaW5iZXJnIDE5OTUsIHBwLiA2NjDigJM2NjEKXiBHbGFudHosIERh
dmlkIE0gKDIwMDEpLiBUaGUgc2llZ2Ugb2YgTGVuaW5ncmFkLCAxOTQx4oCTMTk0NDogOTAwIGRh
eXMgb2YgdGVycm9yLiBaZW5pdGggSW1wcmludC4gcHAuIDE2NuKAkzY5LiBJU0JOIDA3NjAzMDk0
MTguCl4gR2xhbnR6LCBEYXZpZCBNICgyMDAyKS4gVGhlIEJhdHRsZSBmb3IgTGVuaW5ncmFkOiAx
OTQx4oCTMTk0NC4gTGF3cmVuY2U6IFVuaXZlcnNpdHkgUHJlc3Mgb2YgS2Fuc2FzLiBJU0JOIDA3
MDA2MTIwODQuCl4gQ2h1YmFyb3YsIEFsZXhhbmRlciAoMjAwMSkuIFJ1c3NpYSdzIEJpdHRlciBQ
YXRoIHRvIE1vZGVybml0eTogQSBIaXN0b3J5IG9mIHRoZSBTb3ZpZXQgYW5kIFBvc3QtU292aWV0
IEVyYXMuIENvbnRpbnV1bSBJbnRlcm5hdGlvbmFsIFB1Ymxpc2hpbmcgR3JvdXAuIHAuIDEyMi4g
SVNCTiAwODI2NDEzNTAxLgpeIEhhdmlnaHVyc3QsIEFsZnJlZCBGICgxOTYyKS4gQnJpdGFpbiBp
biBUcmFuc2l0aW9uOiBUaGUgVHdlbnRpZXRoIENlbnR1cnkuIFRoZSBVbml2ZXJzaXR5IG9mIENo
aWNhZ28gUHJlc3MuIHAuIDM0NC4gSVNCTiAwMjI2MzE5NzE3LgpeIExpZ2h0Ym9keSwgQnJhZGxl
eSAoMjAwNCkuIFRoZSBTZWNvbmQgV29ybGQgV2FyOiBBbWJpdGlvbnMgdG8gTmVtZXNpcy4gUm91
dGxlZGdlLiBwLiAyMjQuIElTQk4gMDQxNTIyNDA0Ny4KXiBhIGIgWmVpbGVyLCBUaG9tYXMgVyAo
MjAwNCkuIFVuY29uZGl0aW9uYWwgRGVmZWF0OiBKYXBhbiwgQW1lcmljYSwgYW5kIHRoZSBFbmQg
b2YgV29ybGQgV2FyIElJLiBTY2hvbGFybHkgUmVzb3VyY2VzLiBwLiA2MC4gSVNCTiAwODQyMDI5
OTE1LgpeIENyYXZlbiwgV2VzbGV5IEZyYW5rOyBDYXRlLCBKYW1lcyBMZWEgKDE5NTMpLiBUaGUg
QXJteSBBaXIgRm9yY2VzIGluIFdvcmxkIFdhciBJSSwgVm9sdW1lIEZpdmXigJRUaGUgUGFjaWZp
YywgTWF0dGVyaG9ybiB0byBOYWdhc2FraS4gQ2hpY2FnbyBVbml2ZXJzaXR5IFByZXNzLiBwLiAy
MDcuCl4gSHNpdW5nLCBKYW1lcyBDaGllaDsgTGV2aW5lLCBTdGV2ZW4gSSAoMTk5MikuIENoaW5h
J3MgQml0dGVyIFZpY3Rvcnk6IFRoZSBXYXIgd2l0aCBKYXBhbiwgMTkzN+KAkzE5NDUuIE0uRS4g
U2hhcnBlLiBwLiAxNjMuIElTQk4gMTU2MzI0MjQ2WC4KXiBDb2JsZSwgUGFya3MgTSAoMjAwMyku
IENoaW5lc2UgQ2FwaXRhbGlzdHMgaW4gSmFwYW4ncyBOZXcgT3JkZXI6IFRoZSBPY2N1cGllZCBM
b3dlciBZYW5nemksIDE5MzfigJMxOTQ1LiBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3Mu
IHAuIDg1LiBJU0JOIDA1MjAyMzI2ODIuCl4gUmVlcywgTGF1cmVuY2UgKDIwMDkpLiBXb3JsZCBX
YXIgVHdvIEJlaGluZCBDbG9zZWQgRG9vcnMsIEJCQyBCb29rcywgcC4gNDA2LTcuICJTdGFsaW4g
YWx3YXlzIGJlbGlldmVkIHRoYXQgQnJpdGFpbiBhbmQgQW1lcmljYSB3ZXJlIGRlbGF5aW5nIHRo
ZSBzZWNvbmQgZnJvbnQgc28gdGhhdCB0aGUgU292aWV0IFVuaW9uIHdvdWxkIGJlYXIgdGhlIGJy
dW50IG9mIHRoZSB3YXIiCl4gV2VpbmJlcmcgMTk5NSwgcC4gNjk1Cl4gQmFkc2V5LCBTdGVwaGVu
ICgxOTkwKS4gTm9ybWFuZHkgMTk0NDogQWxsaWVkIExhbmRpbmdzIGFuZCBCcmVha291dC4gT3Nw
cmV5IFB1Ymxpc2hpbmcuIHAuIDkxLiBJU0JOIDA4NTA0NTkyMTQuCl4gRGVhciwgSS4gQy4gQi47
IEZvb3QsIE0uIFIuIEQsIGVkcyAoMjAwMikuICJNYXJrZXQtR2FyZGVuIi4gT3hmb3JkIENvbXBh
bmlvbiB0byBXb3JsZCBXYXIgSUkuIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLiBwLiA4NzcuIElT
Qk4gMDE5ODYwNDQ2Ny4KXiBUaGUgb3BlcmF0aW9uICJ3YXMgdGhlIG1vc3QgY2FsYW1pdG91cyBk
ZWZlYXQgb2YgYWxsIHRoZSBHZXJtYW4gYXJtZWQgZm9yY2VzIGluIFdvcmxkIFdhciBJSSIgKFph
bG9nYSwgU3RldmVuIEogKDE5OTYpLiBCYWdyYXRpb24gMTk0NDogVGhlIGRlc3RydWN0aW9uIG9m
IEFybXkgR3JvdXAgQ2VudHJlLiBPc3ByZXkgUHVibGlzaGluZy4gcC4gNy4gSVNCTiAxODU1MzI0
Nzg0LikKXiBCZXJlbmQsIEl2YW4gVC4gKDE5OTkpLiBDZW50cmFsIGFuZCBFYXN0ZXJuIEV1cm9w
ZSwgMTk0NOKAkzE5OTM6IERldG91ciBmcm9tIHRoZSBQZXJpcGhlcnkgdG8gdGhlIFBlcmlwaGVy
eS4gQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDguIElTQk4gMDUyMTU1MDY2MS4KXiAi
QXJtaXN0aWNlIE5lZ290aWF0aW9ucyBhbmQgU292aWV0IE9jY3VwYXRpb24iLiBVUyBMaWJyYXJ5
IG9mIENvbmdyZXNzLiBSZXRyaWV2ZWQgMTQgTm92ZW1iZXIgMjAwOS4gIlRoZSBjb3VwIHNwZWVk
ZWQgdGhlIFJlZCBBcm15J3MgYWR2YW5jZSwgYW5kIHRoZSBTb3ZpZXQgVW5pb24gbGF0ZXIgYXdh
cmRlZCBNaWNoYWVsIHRoZSBPcmRlciBvZiBWaWN0b3J5IGZvciBoaXMgcGVyc29uYWwgY291cmFn
ZSBpbiBvdmVydGhyb3dpbmcgQW50b25lc2N1IGFuZCBwdXR0aW5nIGFuIGVuZCB0byBSb21hbmlh
J3Mgd2FyIGFnYWluc3QgdGhlIEFsbGllcy4gV2VzdGVybiBoaXN0b3JpYW5zIHVuaWZvcm1seSBw
b2ludCBvdXQgdGhhdCB0aGUgQ29tbXVuaXN0cyBwbGF5ZWQgb25seSBhIHN1cHBvcnRpbmcgcm9s
ZSBpbiB0aGUgY291cDsgcG9zdHdhciBSb21hbmlhbiBoaXN0b3JpYW5zLCBob3dldmVyLCBhc2Ny
aWJlIHRvIHRoZSBDb21tdW5pc3RzIHRoZSBkZWNpc2l2ZSByb2xlIGluIEFudG9uZXNjdSdzIG92
ZXJ0aHJvdyIKXiBIYXN0aW5ncywgTWF4OyBQYXVsIEhlbnJ5LCBDb2xsaWVyICgyMDA0KS4gVGhl
IFNlY29uZCBXb3JsZCBXYXI6IGEgd29ybGQgaW4gZmxhbWVzLiBPc3ByZXkgUHVibGlzaGluZy4g
cHAuIDIyM+KAkzQuIElTQk4gMTg0MTc2ODMwOC4KXiBXaWVzdCwgQW5kcmV3IEE7IEJhcmJpZXIs
IE0uIEsgKDIwMDIpLiBTdHJhdGVneSBhbmQgVGFjdGljcyBJbmZhbnRyeSBXYXJmYXJlLiBaZW5p
dGggSW1wcmludC4gcHAuIDY14oCTNi4gSVNCTiAwNzYwMzE0MDEyLgpeIFdpa3RvciwgQ2hyaXN0
aWFuIEwgKDE5OTgpLiBNdWx0aWxhdGVyYWwgVHJlYXR5IENhbGVuZGFyIOKAkyAxNjQ44oCTMTk5
NS4gS2x1d2VyIExhdyBJbnRlcm5hdGlvbmFsLiBwLiA0MjYuIElTQk4gOTA0MTEwNTg0MC4KXiBO
ZXd0b24sIFN0ZXZlbiBIICgxOTk1KS4gUmV0cmVhdCBmcm9tIExlbmluZ3JhZCA6IEFybXkgR3Jv
dXAgTm9ydGgsIDE5NDQvMTk0NS4gQXRnbGVuLCBQaGlsYWRlbHBoaWE6IFNjaGlmZmVyIEJvb2tz
LiBJU0JOIDA4ODc0MDgwNjAuCl4gTWFyc3RvbiwgRGFuaWVsICgyMDA1KS4gVGhlIFBhY2lmaWMg
V2FyIENvbXBhbmlvbjogRnJvbSBQZWFybCBIYXJib3IgdG8gSGlyb3NoaW1hLiBPc3ByZXkgUHVi
bGlzaGluZy4gcC4gMTIwLiBJU0JOIDE4NDE3Njg4MjAuCl4gSm93ZXR0ICYgQW5kcmV3IDIwMDIs
IHAuIDgKXiBIb3dhcmQsIEpvc2h1YSBIICgyMDA0KS4gV29ya2VycyBhdCBXYXI6IExhYm9yIGlu
IENoaW5hJ3MgQXJzZW5hbHMsIDE5MzfigJMxOTUzLiBTdGFuZm9yZCBVbml2ZXJzaXR5IFByZXNz
LiBwLiAxNDAuIElTQk4gMDgwNDc0ODk2OS4KXiBEcmVhLCBFZHdhcmQgSiAoMjAwMykuIEluIHRo
ZSBTZXJ2aWNlIG9mIHRoZSBFbXBlcm9yOiBFc3NheXMgb24gdGhlIEltcGVyaWFsIEphcGFuZXNl
IEFybXkuIFVuaXZlcnNpdHkgb2YgTmVicmFza2EgUHJlc3MuIHAuIDU0LiBJU0JOIDA4MDMyNjYz
ODMuCl4gQ29vaywgQ2hyaXM7IEJld2VzLCBEaWNjb24gKDE5OTcpLiBXaGF0IEhhcHBlbmVkIFdo
ZXJlOiBBIEd1aWRlIHRvIFBsYWNlcyBhbmQgRXZlbnRzIGluIFR3ZW50aWV0aC1DZW50dXJ5IEhp
c3RvcnkuIFVDTCBQcmVzcy4gcC4gMzA1LiBJU0JOIDE4NTcyODUzMjguCl4gYSBiIFBhcmtlciwg
RGFubnkgUyAoMjAwNCkuIEJhdHRsZSBvZiB0aGUgQnVsZ2U6IEhpdGxlcidzIEFyZGVubmVzIE9m
ZmVuc2l2ZSwgMTk0NOKAkzE5NDUuIERhIENhcG8gUHJlc3MuIHBwLiB4aWlp4oCTeGl2LCA24oCT
OCwgNjjigJM3MCAmIDMyOeKAkzMzMC4gSVNCTiAwMzA2ODEzOTEyLgpeIEdsYW50eiAyMDAxLCBw
LiA4NQpeIFNvbHN0ZW4sIEVyaWMgKDE5OTkpLiBHZXJtYW55OiBBIENvdW50cnkgU3R1ZHkuIERJ
QU5FIFB1Ymxpc2hpbmcuIHBwLiA3NuKAkzcuIElTQk4gMDc4ODE4MTc5My4KXiBVbml0ZWQgU3Rh
dGVzIERlcHQuIG9mIFN0YXRlICgxOTY3KS4gVGhlIENoaW5hIFdoaXRlIFBhcGVyLCBBdWd1c3Qg
MTk0OS4gU3RhbmZvcmQgVW5pdmVyc2l0eSBQcmVzcy4gcC4gMTEzLiBJU0JOIDA4MDQ3MDYwODUu
Cl4gQnVjaGFuYW4sIFRvbSAoMjAwNikuIEV1cm9wZSdzIHRyb3VibGVkIHBlYWNlLCAxOTQ14oCT
MjAwMC4gV2lsZXktQmxhY2t3ZWxsLiBwLiAyMS4gSVNCTiAwNjMxMjIxNjM4LgpeIFNoZXBhcmRz
b24sIERvbmFsZCBFIChKYW51YXJ5IDE5OTgpLiAiVGhlIEZhbGwgb2YgQmVybGluIGFuZCB0aGUg
UmlzZSBvZiBhIE15dGgiLiBUaGUgSm91cm5hbCBvZiBNaWxpdGFyeSBIaXN0b3J5IDYyICgxKTog
MTM14oCTMTU0LiBkb2k6MTAuMjMwNy8xMjAzOTguCl4gTydSZWlsbHksIENoYXJsZXMgVCAoMjAw
MSkuIEZvcmdvdHRlbiBCYXR0bGVzOiBJdGFseSdzIFdhciBvZiBMaWJlcmF0aW9uLCAxOTQz4oCT
MTk0NS4gTGV4aW5ndG9uIEJvb2tzLiBwLiAyNDQuIElTQk4gMDczOTEwMTk1MS4KXiBLZXJzaGF3
IDIwMDEsIHAuIDgyMwpeIGEgYiBEb25uZWxseSwgTWFyayAoMTk5OSkuIEJyaXRhaW4gaW4gdGhl
IFNlY29uZCBXb3JsZCBXYXIuIFJvdXRsZWRnZS4gcC4geGl2LiBJU0JOIDA0MTUxNzQyNTIuCl4g
R2xhbnR6LCBEYXZpZCBNLiAoMTk5NSkuIFdoZW4gVGl0YW5zIENsYXNoZWQ6IEhvdyB0aGUgUmVk
IEFybXkgU3RvcHBlZCBIaXRsZXIuIExhd3JlbmNlLCBLYW5zYXM6IFVuaXZlcnNpdHkgUHJlc3Mg
b2YgS2Fuc2FzLiBwLiAzNC4gSVNCTiAwNzAwNjA4OTkwLgpeIENoYW50LCBDaHJpc3RvcGhlciAo
MTk4NikuIFRoZSBFbmN5Y2xvcGVkaWEgb2YgQ29kZW5hbWVzIG9mIFdvcmxkIFdhciBJSS4gUm91
dGxlZGdlICYgS2VnYW4gUGF1bC4gcC4gMTE4LiBJU0JOIDA3MTAyMDcxODIuCl4gRHJlYSwgRWR3
YXJkIEogKDIwMDMpLiBJbiB0aGUgU2VydmljZSBvZiB0aGUgRW1wZXJvcjogRXNzYXlzIG9uIHRo
ZSBJbXBlcmlhbCBKYXBhbmVzZSBBcm15LiBVbml2ZXJzaXR5IG9mIE5lYnJhc2thIFByZXNzLiBw
LiA1Ny4gSVNCTiAwODAzMjY2MzgzLgpeIEpvd2V0dCAmIEFuZHJldyAyMDAyLCBwLiA2Cl4gUG9p
cmllciwgTWljaGVsIFRob21hcyAoMjAgT2N0b2JlciAxOTk5KS4gIlJlc3VsdHMgb2YgdGhlIEdl
cm1hbiBhbmQgQW1lcmljYW4gU3VibWFyaW5lIENhbXBhaWducyBvZiBXb3JsZCBXYXIgSUkiLiBV
LlMuIE5hdnkuIFJldHJpZXZlZCAxMyBBcHJpbCAyMDA4LgpeIFdpbGxpYW1zLCBBbmRyZXcgSiAo
MjAwNikuIExpYmVyYWxpc20gYW5kIFdhcjogVGhlIFZpY3RvcnMgYW5kIHRoZSBWYW5xdWlzaGVk
LiBSb3V0bGVkZ2UuIHAuIDkwLiBJU0JOIDA0MTUzNTk4MDUuCl4gTWlzY2FtYmxlLCBXaWxzb24g
RCAoMjAwNykuIEZyb20gUm9vc2V2ZWx0IHRvIFRydW1hbjogUG90c2RhbSwgSGlyb3NoaW1hLCBh
bmQgdGhlIENvbGQgV2FyLiBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcy4gcC4gMjAxLiBJU0JO
IDA1MjE4NjI0NDIuCl4gTWlzY2FtYmxlLCBXaWxzb24gRCAoMjAwNykuIEZyb20gUm9vc2V2ZWx0
IHRvIFRydW1hbjogUG90c2RhbSwgSGlyb3NoaW1hLCBhbmQgdGhlIENvbGQgV2FyLiBDYW1icmlk
Z2UgVW5pdmVyc2l0eSBQcmVzcy4gcHAuIDIwM+KAkzQuIElTQk4gMDUyMTg2MjQ0Mi4KXiBHbGFu
dHosIERhdmlkIE0gKDIwMDUpLiAiQXVndXN0IFN0b3JtOiBUaGUgU292aWV0IFN0cmF0ZWdpYyBP
ZmZlbnNpdmUgaW4gTWFuY2h1cmlhIi4gTGVhdmVud29ydGggUGFwZXJzIChDb21iaW5lZCBBcm1z
IFJlc2VhcmNoIExpYnJhcnkpLiBPQ0xDIDc4OTE4OTA3LiBBcmNoaXZlZCBmcm9tIHRoZSBvcmln
aW5hbCBvbiAyIE1hcmNoIDIwMDguIFJldHJpZXZlZCAyNSBKYW51YXJ5IDIwMTAKXiBQYXBlLCBS
b2JlcnQgQSAoQXV0dW1uIDE5OTMpLiAiV2h5IEphcGFuIFN1cnJlbmRlcmVkIi4gSW50ZXJuYXRp
b25hbCBTZWN1cml0eSAxOCAoMik6IDE1NOKAkzIwMS4gZG9pOjEwLjIzMDcvMjUzOTEwMC4KXiBO
b3JiZXJ0IEZyZWkuIEFkZW5hdWVyJ3MgR2VybWFueSBhbmQgdGhlIE5hemkgUGFzdDogVGhlIFBv
bGl0aWNzIG9mIEFtbmVzdHkgYW5kIEludGVncmF0aW9uLiBUcmFuc2xhdGVkIGJ5IEpvZWwgR29s
Yi4gTmV3IFlvcms6IENvbHVtYmlhIFVuaXZlcnNpdHkgUHJlc3MuIDIwMDIuIElTQk4gMDIzMTEx
ODgyMSwgcCwgNDHigJM2Ni4KXiBSb2JlcnRzLCBHZW9mZnJleSAoMjAwNikuIFN0YWxpbidzIFdh
cnM6IEZyb20gV29ybGQgV2FyIHRvIENvbGQgV2FyLCAxOTM54oCTMTk1My4gWWFsZSBVbml2ZXJz
aXR5IFByZXNzLiBwLiA0My4gSVNCTiAwMzAwMTEyMDQxLgpeIFJvYmVydHMsIEdlb2ZmcmV5ICgy
MDA2KS4gU3RhbGluJ3MgV2FyczogRnJvbSBXb3JsZCBXYXIgdG8gQ29sZCBXYXIsIDE5MznigJMx
OTUzLiBZYWxlIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDU1LiBJU0JOIDAzMDAxMTIwNDEuCl4gU2hp
cmVyLCBXaWxsaWFtIEwuICgxOTkwKS4gVGhlIFJpc2UgYW5kIEZhbGwgb2YgdGhlIFRoaXJkIFJl
aWNoOiBBIEhpc3Rvcnkgb2YgTmF6aSBHZXJtYW55LiBTaW1vbiBhbmQgU2NodXN0ZXIuIHAuIDc5
NC4gSVNCTiAwNjcxNzI4Njg3Cl4gS2VubmVkeS1QaXBlLCBDYXJvbGluZSAoMTk5NSkuIFN0YWxp
bidzIENvbGQgV2FyLiBNYW5jaGVzdGVyIFVuaXZlcnNpdHkgUHJlc3MuIElTQk4gMDcxOTA0MjAx
MS4KXiBXZXR0aWcsIEdlcmhhcmQgKDIwMDgpLiBTdGFsaW4gYW5kIHRoZSBDb2xkIFdhciBpbiBF
dXJvcGUuIFJvd21hbiAmIExpdHRsZWZpZWxkLiBwcC4gMjDigJMyMS4gSVNCTiAwNzQyNTU1NDI5
LgpeIFNlbm4sIEFsZnJlZCBFcmljaCAoMjAwNykuIExpdGh1YW5pYSAxOTQwOiByZXZvbHV0aW9u
IGZyb20gYWJvdmUuIFJvZG9waS4gSVNCTiA5Nzg5MDQyMDIyMjU2LgpeIFlvZGVyLCBBbW9zICgx
OTk3KS4gVGhlIEV2b2x1dGlvbiBvZiB0aGUgVW5pdGVkIE5hdGlvbnMgU3lzdGVtLiBUYXlsb3Ig
JiBGcmFuY2lzLiBwLiAzOS4gSVNCTiAxNTYwMzI1NDYxLgpeICJIaXN0b3J5IG9mIHRoZSBVTiIu
IFVuaXRlZCBOYXRpb25zLiBSZXRyaWV2ZWQgMjAxMC0wMS0yNS4KXiAiVGhlIFVuaXZlcnNhbCBE
ZWNsYXJhdGlvbiBvZiBIdW1hbiBSaWdodHMsIEFydGljbGUgMiIuIFVuaXRlZCBOYXRpb25zLiBS
ZXRyaWV2ZWQgMjAwOS0xMS0xNC4gIiogRXZlcnlvbmUgaXMgZW50aXRsZWQgdG8gYWxsIHRoZSBy
aWdodHMgYW5kIGZyZWVkb21zIHNldCBmb3J0aCBpbiB0aGlzIERlY2xhcmF0aW9uLCB3aXRob3V0
IGRpc3RpbmN0aW9uIG9mIGFueSBraW5kLCBzdWNoIGFzIHJhY2UsIGNvbG91ciwgc2V4LCBsYW5n
dWFnZSwgcmVsaWdpb24sIHBvbGl0aWNhbCBvciBvdGhlciBvcGluaW9uLCBuYXRpb25hbCBvciBz
b2NpYWwgb3JpZ2luLCBwcm9wZXJ0eSwgYmlydGggb3Igb3RoZXIgc3RhdHVzLiBGdXJ0aGVybW9y
ZSwgbm8gZGlzdGluY3Rpb24gc2hhbGwgYmUgbWFkZSBvbiB0aGUgYmFzaXMgb2YgdGhlIHBvbGl0
aWNhbCwganVyaXNkaWN0aW9uYWwgb3IgaW50ZXJuYXRpb25hbCBzdGF0dXMgb2YgdGhlIGNvdW50
cnkgb3IgdGVycml0b3J5IHRvIHdoaWNoIGEgcGVyc29uIGJlbG9uZ3MsIHdoZXRoZXIgaXQgYmUg
aW5kZXBlbmRlbnQsIHRydXN0LCBub24tc2VsZi1nb3Zlcm5pbmcgb3IgdW5kZXIgYW55IG90aGVy
IGxpbWl0YXRpb24gb2Ygc292ZXJlaWdudHkiCl4gS2FudG93aWN6LCBFZHdhcmQgUiAoMjAwMCku
IENvbWluZyBBcGFydCwgQ29taW5nIFRvZ2V0aGVyLiBXbS4gQi4gRWVyZG1hbnMgUHVibGlzaGlu
Zy4gcC4gNi4gSVNCTiAwODAyODQ0NTYxLgpeIFdldHRpZywgR2VyaGFyZCAoMjAwOCkuIFN0YWxp
biBhbmQgdGhlIENvbGQgV2FyIGluIEV1cm9wZS4gUm93bWFuICYgTGl0dGxlZmllbGQuIHBwLiA5
NuKAkzEwMC4gSVNCTiAwNzQyNTU1NDI5LgpeIFRyYWNodGVuYmVyZywgTWFyYyAoMTk5OSkuIEEg
Q29uc3RydWN0ZWQgUGVhY2U6IFRoZSBNYWtpbmcgb2YgdGhlIEV1cm9wZWFuIFNldHRsZW1lbnQs
IDE5NDXigJMxOTYzLiBQcmluY2V0b24gVW5pdmVyc2l0eSBQcmVzcy4gcC4gMzMuIElTQk4gMDY5
MTAwMjczOC4KXiBHcmFudmlsbGUsIEpvaGFubmEgKDIwMDQpLiBUaGUgRmlyc3QgRG9taW5vOiBJ
bnRlcm5hdGlvbmFsIERlY2lzaW9uIE1ha2luZyBkdXJpbmcgdGhlIEh1bmdhcmlhbiBDcmlzaXMg
b2YgMTk1Ni4gVGV4YXMgQSZNIFVuaXZlcnNpdHkgUHJlc3MuIElTQk4gMTU4NTQ0Mjk4NC4KXiBH
cmVudmlsbGUsIEpvaG4gQXNobGV5IFNvYW1lcyAoMjAwNSkuIEEgSGlzdG9yeSBvZiB0aGUgV29y
bGQgZnJvbSB0aGUgMjB0aCB0byB0aGUgMjFzdCBDZW50dXJ5LiBSb3V0bGVkZ2UuIHBwLiAzNzDi
gJM3MS4gSVNCTiAwNDE1Mjg5NTQ4LgpeIENvb2ssIEJlcm5hcmQgQSAoMjAwMSkuIEV1cm9wZSBT
aW5jZSAxOTQ1OiBBbiBFbmN5Y2xvcGVkaWEuIFRheWxvciAmIEZyYW5jaXMuIHAuIDE3LiBJU0JO
IDA4MTUzNDA1NzUuCl4gR2VvZmZyZXkgU3dhaW4uIFRoZSBDb21pbmZvcm06IFRpdG8ncyBJbnRl
cm5hdGlvbmFsPyBUaGUgSGlzdG9yaWNhbCBKb3VybmFsLCBWb2wuIDM1LCBOby4gMyAoU2VwLiwg
MTk5MiksIHBwLiA2NDHigJM2NjMKXiBMZWZmbGVyLCBNZWx2eW4gUC47IFBhaW50ZXIsIERhdmlk
IFMgKDE5OTQpLiBPcmlnaW5zIG9mIHRoZSBDb2xkIFdhcjogQW4gSW50ZXJuYXRpb25hbCBIaXN0
b3J5LiBSb3V0bGVkZ2UuIHAuIDMxOC4gSVNCTiAwNDE1MzQxMDk0LgpeIEJlbGxhbXksIENocmlz
dG9waGVyICgyMDAxKS4gIkNvbGQgV2FyIi4gSW4gSG9sbWVzLCBSaWNoYXJkLiBUaGUgT3hmb3Jk
IENvbXBhbmlvbiB0byBNaWxpdGFyeSBIaXN0b3J5IChPeGZvcmQgUmVmZXJlbmNlIE9ubGluZSBl
ZC4pLiBPeGZvcmQ6IE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLiBJU0JOIDAxOTg2MDY5NjYuCl4g
V2VpbmJlcmcsIEdlcmhhcmQgTC4gKDIwMDUpLiBBIFdvcmxkIEF0IEFybXMuIENhbWJyaWRnZSBV
bml2ZXJzaXR5IFByZXNzLiBwLiA5MTEKXiBDb25ub3IsIE1hcnkgRS4gKDIwMDkpLiAiSGlzdG9y
eSIuIEluIENvbm5vciwgTWFyeSBFLi4gVGhlIEtvcmVhcy4gQXNpYSBpbiBGb2N1cy4gU2FudGEg
QmFyYmFyYTogQUJDLUNMSU8uIHBwLiA0M+KAkzQ1LiBJU0JOIDE1OTg4NDE2MDIuCl4gTHluY2gs
IE1pY2hhZWwgKDIwMTApLiBUaGUgQ2hpbmVzZSBDaXZpbCBXYXIgMTk0NeKAkzQ5LiBCb3RsZXk6
IE9zcHJleSBQdWJsaXNoaW5nLiBwcC4gMTLigJMxMy4gSVNCTiA5NzgxODQxNzY2NzEzLgpeIFJv
YmVydHMsIEouTS4gKDE5OTYpLiBUaGUgUGVuZ3VpbiBIaXN0b3J5IG9mIEV1cm9wZS4gTG9uZG9u
OiBQZW5ndWluIEJvb2tzLiBwLiA1ODkuIElTQk4gMDE0MDI2NTYxOS4KXiBEYXJ3aW4sIEpvaG4g
KDIwMDcpLiBBZnRlciBUYW1lcmxhbmU6IFRoZSBSaXNlICYgRmFsbCBvZiBHbG9iYWwgRW1waXJl
cyAxNDAw4oCTMjAwMC4gTG9uZG9uOiBQZW5ndWluIEJvb2tzLiBwcC4gNDQx4oCTNDQzLCA0NjTi
gJM0NjguIElTQk4gOTc4MDE0MTAxMDIyOS4KXiBIYXJyaXNvbiwgTWFyayAoMTk5OCkuICJUaGUg
ZWNvbm9taWNzIG9mIFdvcmxkIFdhcklJOiBhbiBvdmVydmlldyIuIEluIEhhcnJpc29uLCBNYXJr
LiBUaGUgRWNvbm9taWNzIG9mIFdvcmxkIFdhciBJSTogU2l4IGdyZWF0IHBvd2VycyBpbiBpbnRl
cm5hdGlvbmFsIGNvbXBhcmlzb24uIENhbWJyaWRnZTogQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJl
c3MuIHBwLiAzNOKAkzM1LiBJU0JOIDA1MjE2MjA0NjUuCl4gRGVhciwgSS5DLkIgYW5kIEZvb3Qs
IE0uUi5ELiAoZWRpdG9ycykgKDIwMDUpLiAiV29ybGQgdHJhZGUgYW5kIHdvcmxkIGVjb25vbXki
LiBUaGUgT3hmb3JkIENvbXBhbmlvbiB0byBXb3JsZCBXYXIgSUkuIE94Zm9yZDogT3hmb3JkIFVu
aXZlcnNpdHkgUHJlc3MuIHAuIDEwMDYuIElTQk4gOTc4MDE5MjgwNjcwMy4KXiBOaWNob2xhcyBC
YWxhYmtpbnMsICJHZXJtYW55IFVuZGVyIERpcmVjdCBDb250cm9sczogRWNvbm9taWMgQXNwZWN0
cyBvZiBJbmR1c3RyaWFsIERpc2FybWFtZW50IDE5NDUgLSAxOTQ4IiwgUnV0Z2VycyBVbml2ZXJz
aXR5IFByZXNzLCAxOTY0IHAuIDIwNwpeIFZsYWRpbWlyIFBldHJvdiwgTW9uZXkgYW5kIGNvbnF1
ZXN0OyBhbGxpZWQgb2NjdXBhdGlvbiBjdXJyZW5jaWVzIGluIFdvcmxkIFdhciBJSS4gQmFsdGlt
b3JlLCBKb2hucyBIb3BraW5zIFByZXNzICgxOTY3KSBwLiAyNjMKXiBOaWNob2xhcyBCYWxhYmtp
bnMsICJHZXJtYW55IFVuZGVyIERpcmVjdCBDb250cm9sczogRWNvbm9taWMgQXNwZWN0cyBvZiBJ
bmR1c3RyaWFsIERpc2FybWFtZW50IDE5NDUgLSAxOTQ4IiwgUnV0Z2VycyBVbml2ZXJzaXR5IFBy
ZXNzLCAxOTY0IHAuIDIwOCwgMjA5Cl4gRG9ybmJ1c2NoLCBSw7xkaWdlcjsgTsO2bGxpbmcsIFdp
bGhlbG07IExheWFyZCwgUC4gUmljaGFyZCBHICgxOTkzKS4gUG9zdHdhciBFY29ub21pYyBSZWNv
bnN0cnVjdGlvbiBhbmQgTGVzc29ucyBmb3IgdGhlIEVhc3QgVG9kYXkuIE1hc3NhY2h1c2V0dHMg
SW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kgUHJlc3MuIFAuMTkwLCAxOTEsIElTQk4gMDI2MjA0MTM2
Ny4KXiBOaWNob2xhcyBCYWxhYmtpbnMsICJHZXJtYW55IFVuZGVyIERpcmVjdCBDb250cm9sczog
RWNvbm9taWMgQXNwZWN0cyBvZiBJbmR1c3RyaWFsIERpc2FybWFtZW50IDE5NDUgLSAxOTQ4Iiwg
UnV0Z2VycyBVbml2ZXJzaXR5IFByZXNzLCAxOTY0IHAuIDIxMgpeIERvcm5idXNjaCwgUsO8ZGln
ZXI7IE7DtmxsaW5nLCBXaWxoZWxtOyBMYXlhcmQsIFAuIFJpY2hhcmQgRyAoMTk5MykuIFBvc3R3
YXIgRWNvbm9taWMgUmVjb25zdHJ1Y3Rpb24gYW5kIExlc3NvbnMgZm9yIHRoZSBFYXN0IFRvZGF5
LiBNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5IFByZXNzLiBwMjkgLXAzMCwg
MzIsIElTQk4gMDI2MjA0MTM2Ny4KXiBCdWxsLCBNYXJ0aW4gSi47IE5ld2VsbCwgSmFtZXMgKDIw
MDUpLiBJdGFsaWFuIFBvbGl0aWNzOiBBZGp1c3RtZW50IFVuZGVyIER1cmVzcy4gUG9saXR5LiBw
LiAyMC4gSVNCTiAwNzQ1NjEyOTk3LgpeIEJ1bGwsIE1hcnRpbiBKLjsgTmV3ZWxsLCBKYW1lcyAo
MjAwNSkuIEl0YWxpYW4gUG9saXRpY3M6IEFkanVzdG1lbnQgVW5kZXIgRHVyZXNzLiBQb2xpdHku
IHAuIDIxLiBJU0JOIDA3NDU2MTI5OTcuCl4gSGFycm9wLCBNYXJ0aW4gKDE5OTIpLiBQb3dlciBh
bmQgUG9saWN5IGluIExpYmVyYWwgRGVtb2NyYWNpZXMuIENhbWJyaWRnZSBVbml2ZXJzaXR5IFBy
ZXNzLiBwLiAyMy4gSVNCTiAwNTIxMzQ1NzkwLgpeIERvcm5idXNjaCwgUsO8ZGlnZXI7IE7Dtmxs
aW5nLCBXaWxoZWxtOyBMYXlhcmQsIFAuIFJpY2hhcmQgRyAoMTk5MykuIFBvc3R3YXIgRWNvbm9t
aWMgUmVjb25zdHJ1Y3Rpb24gYW5kIExlc3NvbnMgZm9yIHRoZSBFYXN0IFRvZGF5LiBNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5IFByZXNzLiBwLiAxMTcuIElTQk4gMDI2MjA0
MTM2Ny4KXiBFbWFkaS1Db2ZmaW4sIEJhcmJhcmEgKDIwMDIpLiBSZXRoaW5raW5nIEludGVybmF0
aW9uYWwgT3JnYW5pemF0aW9uOiBEZXJlZ3VsYXRpb24gYW5kIEdsb2JhbCBHb3Zlcm5hbmNlLiBS
b3V0bGVkZ2UuIHAuIDY0LiBJU0JOIDA0MTUxOTU0MDMuCl4gU21pdGgsIEFsYW4gKDE5OTMpLiBS
dXNzaWEgQW5kIHRoZSBXb3JsZCBFY29ub215OiBQcm9ibGVtcyBvZiBJbnRlZ3JhdGlvbi4gUm91
dGxlZGdlLiBwLiAzMi4gSVNCTiAwNDE1MDg5MjQ3LgpeIEhhcnJvcCwgTWFydGluICgxOTkyKS4g
UG93ZXIgYW5kIFBvbGljeSBpbiBMaWJlcmFsIERlbW9jcmFjaWVzLiBDYW1icmlkZ2UgVW5pdmVy
c2l0eSBQcmVzcy4gcC4gNDkuIElTQk4gMDUyMTM0NTc5MC4KXiBHZW56YmVyZ2VyLCBDaHJpc3Rp
bmUgKDE5OTQpLiBDaGluYSBCdXNpbmVzczogVGhlIFBvcnRhYmxlIEVuY3ljbG9wZWRpYSBmb3Ig
RG9pbmcgQnVzaW5lc3Mgd2l0aCBDaGluYS4gUGV0YWx1bWEsIENhbGlmb3JuaWE6IFdvcmxkIFRy
YWRlIFByZXNzLiBwLiA0LiBJU0JOIDA5NjMxODY0MzQuCl4gTydCcmllbiwgUHJvZi4gSm9zZXBo
IFYuICJXb3JsZCBXYXIgSUk6IENvbWJhdGFudHMgYW5kIENhc3VhbHRpZXMgKDE5MzfigJMxOTQ1
KSIuIE9iZWUncyBIaXN0b3J5IFBhZ2UuIEpvaG4gSmF5IENvbGxlZ2Ugb2YgQ3JpbWluYWwgSnVz
dGljZS4gUmV0cmlldmVkIDIwIEFwcmlsIDIwMDcuCl4gV2hpdGUsIE1hdHRoZXcuICJTb3VyY2Ug
TGlzdCBhbmQgRGV0YWlsZWQgRGVhdGggVG9sbHMgZm9yIHRoZSBUd2VudGlldGggQ2VudHVyeSBI
ZW1vY2x5c20iLiBIaXN0b3JpY2FsIEF0bGFzIG9mIHRoZSBUd2VudGlldGggQ2VudHVyeS4gTWF0
dGhldyBXaGl0ZSdzIEhvbWVwYWdlLiBSZXRyaWV2ZWQgMjAgQXByaWwgMjAwNy4KXiAiV29ybGQg
V2FyIElJIEZhdGFsaXRpZXMiLiBzZWNvbmR3b3JsZHdhci5jby51ay4gUmV0cmlldmVkIDIwIEFw
cmlsIDIwMDcuCl4gIlJ1bGVycyBhbmQgdmljdGltczogdGhlIFJ1c3NpYW5zIGluIHRoZSBTb3Zp
ZXQgVW5pb24iLiBHZW9mZnJleSBBLiBIb3NraW5nICgyMDA2KS4gSGFydmFyZCBVbml2ZXJzaXR5
IFByZXNzLiBwLjI0Mi4gSVNCTiAwLTY3NC0wMjE3OC05Cl4gIkxlYWRlcnMgbW91cm4gU292aWV0
IHdhcnRpbWUgZGVhZCIuIEJCQyBOZXdzLiA5IE1heSAyMDA1LiBSZXRyaWV2ZWQgNyBEZWNlbWJl
ciAyMDA5LgpeICJUaGUgV29ybGQncyBXYXN0ZWQgV2VhbHRoIDI6IFNhdmUgT3VyIFdlYWx0aCwg
U2F2ZSBPdXIgRW52aXJvbm1lbnQiLiBKLiBXLiBTbWl0aCAoMTk5NCkuIHAuMjA0LiBJU0JOIDAt
OTYyNDQyMy0yLTEKXiBGbG9yaWRhIENlbnRlciBmb3IgSW5zdHJ1Y3Rpb25hbCBUZWNobm9sb2d5
ICgyMDA1KS4gIlZpY3RpbXMiLiBBIFRlYWNoZXIncyBHdWlkZSB0byB0aGUgSG9sb2NhdXN0LiBV
bml2ZXJzaXR5IG9mIFNvdXRoIEZsb3JpZGEuIFJldHJpZXZlZCAyIEZlYnJ1YXJ5IDIwMDguCl4g
Tmlld3lrLCBEb25hbGQgTC4gYW5kIE5pY29zaWEsIEZyYW5jaXMgUi4gVGhlIENvbHVtYmlhIEd1
aWRlIHRvIHRoZSBIb2xvY2F1c3QsIENvbHVtYmlhIFVuaXZlcnNpdHkgUHJlc3MsIDIwMDAsIHBw
LiA0NS01Mi4KXiBUb2RkLCBBbGxhbiAoMjAwMSkuIFRoZSBNb2Rlcm4gV29ybGQuIE94Zm9yZCBV
bml2ZXJzaXR5IFByZXNzLiBwLiAxMjEuIElTQk4gMDE5OTEzNDI1MS4KXiBXaW50ZXIsIEouIE0g
KDIwMDIpLiAiRGVtb2dyYXBoeSBvZiB0aGUgV2FyIi4gSW4gRGVhciwgSS4gQy4gQi47IEZvb3Qs
IE0uIFIuIEQuIE94Zm9yZCBDb21wYW5pb24gdG8gV29ybGQgV2FyIElJLiBPeGZvcmQgVW5pdmVy
c2l0eSBQcmVzcy4gcC4gMjkwLiBJU0JOIDAxOTg2MDQ0NjcuCl4gIkphc2Vub3ZhYyIuIGpld2lz
aHZpcnR1YWxsaWJyYXJ5Lm9yZy4gQW1lcmljYW4tSXNyYWVsaSBDb29wZXJhdGl2ZSBFbnRlcnBy
aXNlLiBSZXRyaWV2ZWQgMjUgSmFudWFyeSAyMDEwLgpeIENoYW5nLCBJcmlzICgxOTk3KS4gVGhl
IFJhcGUgb2YgTmFua2luZzogVGhlIEZvcmdvdHRlbiBIb2xvY2F1c3Qgb2YgV29ybGQgV2FyIElJ
LiBCYXNpY0Jvb2tzLiBwLiAxMDIuIElTQk4gMDQ2NTA2ODM1OS4KXiBSdW1tZWxsLCBSLiBKLiAi
U3RhdGlzdGljcyIuIEZyZWVkb20sIERlbW9jaWRlLCBXYXIuIFRoZSBVbml2ZXJzaXR5IG9mIEhh
d2FpaSBTeXN0ZW0uIFJldHJpZXZlZCAyNSBKYW51YXJ5IDIwMTAuCl4gSGltZXRhLCBNaXRzdXlv
c2hpICjlp6vnlLDlhYnnvqkpICjml6XmnKzou43jgavjgojjgovjgI7kuInlhYnmlL/nrZbjg7vk
uInlhYnkvZzmiKbjgpLjgoHjgZDjgaPjgabjgI8pIChDb25jZXJuaW5nIHRoZSBUaHJlZSBBbGxz
IFN0cmF0ZWd5L1RocmVlIEFsbHMgUG9saWN5IEJ5IHRoZSBKYXBhbmVzZSBGb3JjZXMpLCBJd2Fu
YW1pIEJ1a2t1cmV0dG8sIDE5OTYsIEJpeCwgSGlyb2hpdG8gYW5kIHRoZSBNYWtpbmcgb2YgTW9k
ZXJuIEphcGFuLCAyMDAwCl4gVHVja2VyLCBTcGVuY2VyIEMuOyBSb2JlcnRzLCBQcmlzY2lsbGEg
TWFyeSBSb2JlcnRzICgyMDA0KS4gRW5jeWNsb3BlZGlhIG9mIFdvcmxkIFdhciBJSTogQSBQb2xp
dGljYWwsIFNvY2lhbCwgYW5kIE1pbGl0YXJ5IEhpc3RvcnkuIEFCQy1DTElPLiBwLiAzMTkuIElT
Qk4gMTU3NjA3OTk5Ni4KXiBHb2xkLCBIYWwgKDE5OTYpLiBVbml0IDczMSB0ZXN0aW1vbnkuIFR1
dHRsZS4gcHAuIDc14oCTNy4gSVNCTiAwODA0ODM1NjU5LgpeIFR1Y2tlciwgU3BlbmNlciBDLjsg
Um9iZXJ0cywgUHJpc2NpbGxhIE1hcnkgUm9iZXJ0cyAoMjAwNCkuIEVuY3ljbG9wZWRpYSBvZiBX
b3JsZCBXYXIgSUk6IEEgUG9saXRpY2FsLCBTb2NpYWwsIGFuZCBNaWxpdGFyeSBIaXN0b3J5LiBB
QkMtQ0xJTy4gcC4gMzIwLiBJU0JOIDE1NzYwNzk5OTYuCl4gSGFycmlzICgyMDAyKS4gRmFjdG9y
aWVzIG9mIERlYXRoOiBKYXBhbmVzZSBCaW9sb2dpY2FsIFdhcmZhcmUsIDE5MzLigJMxOTQ1LCBh
bmQgdGhlIEFtZXJpY2FuIENvdmVyLXVwLiBSb3V0bGVkZ2UuIHAuIDc0LiBJU0JOIDA0MTU5MzIx
NDkuCl4gU2FiZWxsYSwgUm9iZXJ0OyBMaSwgRmVpIEZlaTsgTGl1LCBEYXZpZCAoMjAwMikuIE5h
bmtpbmcgMTkzNzogTWVtb3J5IGFuZCBIZWFsaW5nLiBNLkUuIFNoYXJwZS4gcC4gNjkuIElTQk4g
MDc2NTYwODE2Mi4KXiAiSmFwYW4gdGVzdGVkIGNoZW1pY2FsIHdlYXBvbnMgb24gQXVzc2llIFBP
VzogbmV3IGV2aWRlbmNlIi4gVGhlIEphcGFuIFRpbWVzIE9ubGluZS4gMjcgSnVseSAyMDA0LiBS
ZXRyaWV2ZWQgMjUgSmFudWFyeSAyMDEwLgpeIEFrc2FyLCBZdXN1ZiAoMjAwNCkuIEltcGxlbWVu
dGluZyBJbnRlcm5hdGlvbmFsIEh1bWFuaXRhcmlhbiBMYXc6IEZyb20gdGhlIEFkIEhvYyBUcmli
dW5hbHMgdG8gYSBQZXJtYW5lbnQgSW50ZXJuYXRpb25hbCBDcmltaW5hbCBDb3VydC4gUm91dGxl
ZGdlLiBwLiA0NS4gSVNCTiAwNzE0Njg0NzA4LgpeIEhvcm5iZXJnZXIsIEphY29iIChBcHJpbCAx
OTk1KS4gIlJlcGF0cmlhdGlvbuKAlFRoZSBEYXJrIFNpZGUgb2YgV29ybGQgV2FyIElJIi4gVGhl
IEZ1dHVyZSBvZiBGcmVlZG9tIEZvdW5kYXRpb24uIFJldHJpZXZlZCAyNSBKYW51YXJ5IDIwMTAu
Cl4gS29oLCBEYXZpZCAoMjEgQXVndXN0IDIwMDgpLiAiVmlldG5hbSBuZWVkcyB0byByZW1lbWJl
ciBmYW1pbmUgb2YgMTk0NSIuIFRoZSBTdHJhaXRzIFRpbWVzIChTaW5nYXBvcmUpLiBSZXRyaWV2
ZWQgMjUgSmFudWFyeSAyMDEwLgpeIEhhcmRpbmcsIEx1a2UgKDIyIE9jdG9iZXIgMjAwMykuICJH
ZXJtYW55J3MgZm9yZ290dGVuIHZpY3RpbXMiLiBndWFyZGlhbi5jby51ay4gR3VhcmRpYW4gTmV3
cyBhbmQgTWVkaWEuIFJldHJpZXZlZCAyMSBKYW51YXJ5IDIwMTAuCl4gIkdlcm1hbnkncyBmb3Jn
b3R0ZW4gdmljdGltcyIuIEd1YXJkaWFuLmNvLnVrLiBPY3RvYmVyIDIyLCAyMDAzLgpeIGEgYiBN
YXJlaywgTWljaGFlbCAoMjcgT2N0b2JlciAyMDA1KS4gIkZpbmFsIENvbXBlbnNhdGlvbiBQZW5k
aW5nIGZvciBGb3JtZXIgTmF6aSBGb3JjZWQgTGFib3JlcnMiLiBkdy13b3JsZC5kZS4gRGV1dHNj
aGUgV2VsbGUuIEFyY2hpdmVkIGZyb20gdGhlIG9yaWdpbmFsIG9uIDE5IEphbnVhcnkgMjAxMC4g
UmV0cmlldmVkIDE5IEphbnVhcnkgMjAxMC4KXiBBcHBsZWJhdW0sIEFubmUgKDE2IE9jdG9iZXIg
MjAwMykuICJHdWxhZzogVW5kZXJzdGFuZGluZyB0aGUgTWFnbml0dWRlIG9mIFdoYXQgSGFwcGVu
ZWQiLiBIZXJpdGFnZSBGb3VuZGF0aW9uLiBSZXRyaWV2ZWQgMTkgSmFudWFyeSAyMDEwLgpeIE5v
cnRoLCBKb25hdGhhbiAoSmFudWFyeSAyMDA2KS4gIlNvdmlldCBQcmlzb25lcnMgb2YgV2FyOiBG
b3Jnb3R0ZW4gTmF6aSBWaWN0aW1zIG9mIFdvcmxkIFdhciBJSSIuIEhpc3RvcnlOZXQuY29tLiBX
ZWlkZXIgSGlzdG9yeSBHcm91cC4gQXJjaGl2ZWQgZnJvbSB0aGUgb3JpZ2luYWwgb24gMTkgSmFu
dWFyeSAyMDEwLiBSZXRyaWV2ZWQgMTkgSmFudWFyeSAyMDEwLgpeIE92ZXJ5LCBSaWNoYXJkICgy
MDA0KS4gVGhlIERpY3RhdG9yczogSGl0bGVyJ3MgR2VybWFueSwgU3RhbGluJ3MgUnVzc2lhLiBX
LiBXLiBOb3J0b24gJiBDb21wYW55LiBwcC4gNTY44oCTNjkuIElTQk4gMDM5MzAyMDMwNC4KXiBa
ZW1za292IFYuTi4gT24gcmVwYXRyaWF0aW9uIG9mIFNvdmlldCBjaXRpemVucy4gSXN0b3JpeWEg
U1NTUi4sIDE5OTAsIE5vLjQsIChpbiBSdXNzaWFuKS4gU2VlIGFsc28gWzFdIChvbmxpbmUgdmVy
c2lvbiksIGFuZCBFZHdpbiBCYWNvbi4gR2xhc25vc3QnIGFuZCB0aGUgR3VsYWc6IE5ldyBJbmZv
cm1hdGlvbiBvbiBTb3ZpZXQgRm9yY2VkIExhYm91ciBhcm91bmQgV29ybGQgV2FyIElJLiBTb3Zp
ZXQgU3R1ZGllcywgVm9sLiA0NCwgTm8uIDYgKDE5OTIpLCBwcC4gMTA2OS0xMDg2OyBNaWNoYWVs
IEVsbG1hbi4gU292aWV0IFJlcHJlc3Npb24gU3RhdGlzdGljczogU29tZSBDb21tZW50cy4gRXVy
b3BlLUFzaWEgU3R1ZGllcywgVm9sLiA1NCwgTm8uIDcgKE5vdi4sIDIwMDIpLCBwcC4gMTE1MS0x
MTcyLgpeICJKYXBhbmVzZSBBdHJvY2l0aWVzIGluIHRoZSBQaGlsaXBwaW5lcyIuIEFtZXJpY2Fu
IEV4cGVyaWVuY2U6IHRoZSBCYXRhYW4gUmVzY3VlLiBQQlMgT25saW5lLiBBcmNoaXZlZCBmcm9t
IHRoZSBvcmlnaW5hbCBvbiAxOSBKYW51YXJ5IDIwMTAuIFJldHJpZXZlZCAxOCBKYW51YXJ5IDIw
MTAuCl4gVGFuYWthLCBZdWtpICgxOTk2KS4gSGlkZGVuIEhvcnJvcnM6IEphcGFuZXNlIFdhciBD
cmltZXMgaW4gV29ybGQgV2FyIElJLiBXZXN0dmlldyBQcmVzcy4gcHAuIDLigJMzLiBJU0JOIDA4
MTMzMjcxODAuCl4gQml4LCBIZXJiZXJ0ICgyMDAxKS4gSGlyb2hpdG8gYW5kIHRoZSBNYWtpbmcg
b2YgTW9kZXJuIEphcGFuLiBIYXJwZXJDb2xsaW5zLiBwLiAzNjAuIElTQk4gMDA2MDkzMTMwMi4K
XiBhIGIgSnUsIFpoaWZlbiAoSnVuZSAyMDAyKS4gIkphcGFuJ3MgYXRyb2NpdGllcyBvZiBjb25z
Y3JpcHRpbmcgYW5kIGFidXNpbmcgbm9ydGggQ2hpbmEgZHJhdWdodGVlcyBhZnRlciB0aGUgb3V0
YnJlYWsgb2YgdGhlIFBhY2lmaWMgd2FyIi4gSm9pbnQgU3R1ZHkgb2YgdGhlIFNpbm8tSmFwYW5l
c2UgV2FyOk1pbnV0ZXMgb2YgdGhlIEp1bmUgMjAwMiBDb25mZXJlbmNlLiBIYXJ2YXJkIFVuaXZl
cnNpdHkgRmFjdWx0eSBvZiBBcnRzIGFuZCBTY2llbmNlcy4gUmV0cmlldmVkIDE4IEZlYnJ1YXJ5
IDIwMTAuCl4gYSBiICJJbmRvbmVzaWE6IFdvcmxkIFdhciBJSSBhbmQgdGhlIFN0cnVnZ2xlIEZv
ciBJbmRlcGVuZGVuY2UsIDE5NDLigJM1MDsgVGhlIEphcGFuZXNlIE9jY3VwYXRpb24sIDE5NDLi
gJM0NSIuIExpYnJhcnkgb2YgQ29uZ3Jlc3MuIDE5OTIuIFJldHJpZXZlZCA5IEZlYnJ1YXJ5IDIw
MDcuCl4gYSBiICJDb25jZW50cmF0aW9uIGNhbXBzIGFuZCBzbGF2ZSB3b3JrIi4gVmV0cyBIb21l
LiBBcmNoaXZlZCBmcm9tIHRoZSBvcmlnaW5hbCBvbiAxOSBKYW51YXJ5IDIwMTAuIFJldHJpZXZl
ZCAxMiBOb3ZlbWJlciAyMDA5LgpeIERlcGFydG1lbnQgb2YgTGFib3VyIG9mIENhbmFkYS4gKDI0
IEphbnVhcnkgMTk0NykuIFJlcG9ydCBvbiB0aGUgUmUtZXN0YWJsaXNobWVudCBvZiBKYXBhbmVz
ZSBpbiBDYW5hZGEsIDE5NDTigJMxOTQ2LiBPZmZpY2Ugb2YgdGhlIFByaW1lIE1pbmlzdGVyLiBw
LiAyMy4gSVNCTiAwNDA1MTEyNjYxLgpeIEV1Z2VuZSBEYXZpZHNvbiAiVGhlIGRlYXRoIGFuZCBs
aWZlIG9mIEdlcm1hbnk6IGFuIGFjY291bnQgb2YgdGhlIEFtZXJpY2FuIG9jY3VwYXRpb24iLiBw
LjEyMQpeIFN0YXJrLCBUYW3DoXMuICLigJxNYWxlbmtpIFJvYm904oCdIOKAkyBIdW5nYXJpYW4g
Rm9yY2VkIExhYm91cmVycyBpbiB0aGUgU292aWV0IFVuaW9uICgxOTQ04oCTMTk1NSkiIChQREYp
LiBNaW5vcml0aWVzIFJlc2VhcmNoLiBSZXRyaWV2ZWQgMjIgSmFudWFyeSAyMDEwLgpeIGEgYiBI
YXJyaXNvbiwgTWFyayAoMjAwMCkuIFRoZSBFY29ub21pY3Mgb2YgV29ybGQgV2FyIElJOiBTaXgg
R3JlYXQgUG93ZXJzIGluIEludGVybmF0aW9uYWwgQ29tcGFyaXNvbi4gQ2FtYnJpZGdlIFVuaXZl
cnNpdHkgUHJlc3MuIHAuIDMuIElTQk4gMDUyMTc4NTAzMC4KXiBIYXJyaXNvbiwgTWFyayAoMjAw
MCkuIFRoZSBFY29ub21pY3Mgb2YgV29ybGQgV2FyIElJOiBTaXggR3JlYXQgUG93ZXJzIGluIElu
dGVybmF0aW9uYWwgQ29tcGFyaXNvbi4gQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDIu
IElTQk4gMDUyMTc4NTAzMC4KXiBIdWdoZXMsIE1hdHRoZXc7IE1hbm4sIENocmlzICgyMDAwKS4g
SW5zaWRlIEhpdGxlcidzIEdlcm1hbnk6IExpZmUgVW5kZXIgdGhlIFRoaXJkIFJlaWNoLiBQb3Rv
bWFjIEJvb2tzIEluYy4gcC4gMTQ4LiBJU0JOIDE1NzQ4ODI4MTMuCl4gQmVybnN0ZWluLCBHYWls
IExlZSAoMTk5MSkuIFJlY3JlYXRpbmcgSmFwYW5lc2UgV29tZW4sIDE2MDDigJMxOTQ1LiBVbml2
ZXJzaXR5IG9mIENhbGlmb3JuaWEgUHJlc3MuIHAuIDI2Ny4gSVNCTiA5NzgwNTIwMDcwMTcyLgpe
IEh1Z2hlcywgTWF0dGhldzsgTWFubiwgQ2hyaXMgKDIwMDApLiBJbnNpZGUgSGl0bGVyJ3MgR2Vy
bWFueTogTGlmZSBVbmRlciB0aGUgVGhpcmQgUmVpY2guIFBvdG9tYWMgQm9va3MgSW5jLiBwLiAx
NTEuIElTQk4gMTU3NDg4MjgxMy4KXiBHcmlmZml0aCwgQ2hhcmxlcyAoMTk5OSkuIFRoZSBRdWVz
dDogSGF5d29vZCBIYW5zZWxsIGFuZCBBbWVyaWNhbiBTdHJhdGVnaWMgQm9tYmluZyBpbiBXb3Js
ZCBXYXIgSUkuIERJQU5FIFB1Ymxpc2hpbmcuIHAuIDIwMy4gSVNCTiAxNTg1NjYwNjk4LgpeIE92
ZXJ5LCBSLkogKDE5OTUpLiBXYXIgYW5kIEVjb25vbXkgaW4gdGhlIFRoaXJkIFJlaWNoLiBPeGZv
cmQgVW5pdmVyc2l0eSBQcmVzcywgVVNBLiBwLiAyNi4gSVNCTiAwMTk4MjA1OTk2LgpeIExpbmRi
ZXJnLCBNaWNoYWVsOyBEYW5pZWwsIFRvZGQgKDIwMDEpLiBCcm93bi0sIEdyZWVuLSBhbmQgQmx1
ZS1XYXRlciBGbGVldHM6IHRoZSBJbmZsdWVuY2Ugb2YgR2VvZ3JhcGh5IG9uIE5hdmFsIFdhcmZh
cmUsIDE4NjEgdG8gdGhlIFByZXNlbnQuIFByYWVnZXIuIHAuIDEyNi4gSVNCTiAwMjc1OTY0ODY4
LgpeIENveCwgU2ViYXN0aWFuICgxOTk4KS4gVGhlIFN0cmF0ZWdpYyBBaXIgV2FyIEFnYWluc3Qg
R2VybWFueSwgMTkzOeKAkzE5NDUuIEZyYW5rIENhc3MgUHVibGlzaGVycy4gcC4gODQuIElTQk4g
MDcxNDY0NzIyNS4KXiBVbmlkYXMsIE5hY2lvbmVzICgyMDA1KS4gV29ybGQgRWNvbm9taWMgQW5k
IFNvY2lhbCBTdXJ2ZXkgMjAwNDogSW50ZXJuYXRpb25hbCBNaWdyYXRpb24uIFVuaXRlZCBOYXRp
b25zIFB1Ym5zLiBwLiAyMy4gSVNCTiA5MjExMDkxNDcwLgpeIExpYmVybWFuLCBQZXRlciAoMTk5
OCkuIERvZXMgQ29ucXVlc3QgUGF5PzogVGhlIEV4cGxvaXRhdGlvbiBvZiBPY2N1cGllZCBJbmR1
c3RyaWFsIFNvY2lldGllcy4gUHJpbmNldG9uIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDQyLiBJU0JO
IDA2OTEwMDI0MjguCl4gTWlsd2FyZCwgQWxhbiBTICgxOTc5KS4gV2FyLCBFY29ub215LCBhbmQg
U29jaWV0eSwgMTkzOeKAkzE5NDUuIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBQcmVzcy4gcC4g
MTM4LiBJU0JOIDA1MjAwMzk0MjQuCl4gTWlsd2FyZCwgQWxhbiBTICgxOTc5KS4gV2FyLCBFY29u
b215LCBhbmQgU29jaWV0eSwgMTkzOeKAkzE5NDUuIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBQ
cmVzcy4gcC4gMTQ4LiBJU0JOIDA1MjAwMzk0MjQuCl4gUGVycmllLCBNYXVyZWVuOyBMaWV2ZW4s
IEQuIEMuIEI7IFN1bnksIFJvbmFsZCBHcmlnb3IgKDIwMDcpLiBUaGUgQ2FtYnJpZGdlIEhpc3Rv
cnkgb2YgUnVzc2lhLiBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcy4gcC4gMjMyLiBJU0JOIDA1
MjE4NjE5NDIuCl4gSGlsbCwgQWxleGFuZGVyICgyMDA1KS4gVGhlIFdhciBCZWhpbmQgVGhlIEVh
c3Rlcm4gRnJvbnQ6IFRoZSBTb3ZpZXQgUGFydGlzYW4gTW92ZW1lbnQgSW4gTm9ydGgtV2VzdCBS
dXNzaWEgMTk0MeKAkzE5NDQuIFJvdXRsZWRnZS4gcC4gNS4gSVNCTiAwNzE0NjU3MTE1LgpeIENo
cmlzdG9mZmVyc29uLCBUaG9tYXMgUjsgQ2hyaXN0b2ZmZXJzb24sIE1pY2hhZWwgUyAoMjAwNiku
IEZyYW5jZSBEdXJpbmcgV29ybGQgV2FyIElJOiBGcm9tIERlZmVhdCB0byBMaWJlcmF0aW9uLiBG
b3JkaGFtIFVuaXZlcnNpdHkgUHJlc3MuIHAuIDE1Ni4gSVNCTiA5NzgwODIzMjI1NjM3LgpeIElr
ZW8sIEFpa28gKDE5OTcpLiBFY29ub21pYyBEZXZlbG9wbWVudCBpbiBUd2VudGlldGggQ2VudHVy
eSBFYXN0IEFzaWE6IFRoZSBJbnRlcm5hdGlvbmFsIENvbnRleHQuIFJvdXRsZWRnZS4gcC4gMTA3
LiBJU0JOIDA0MTUxNDkwMDIuCl4gYSBiIEJvb2csIEhvcnN0OyBSYWhuLCBXZXJuZXI7IFN0dW1w
ZiwgUmVpbmhhcmQ7IFdlZ25lciwgQmVybmQgKDIwMDEpLiBNaWxpdMOkcmdlc2NoaWNodGxpY2hl
cyBGb3JzY2h1bmdzYW10IEdlcm1hbnkgYW5kIHRoZSBTZWNvbmQgV29ybGQgV2Fy4oCUVm9sdW1l
IFZJOiBUaGUgR2xvYmFsIFdhci4gT3hmb3JkOiBDbGFyZW5kb24gUHJlc3MuIHAuIDI2Ni4gSVNC
TiAwMTk4MjI4ODgwLgpeIFR1Y2tlciwgU3BlbmNlciBDLjsgUm9iZXJ0cywgUHJpc2NpbGxhIE1h
cnkgUm9iZXJ0cyAoMjAwNCkuIEVuY3ljbG9wZWRpYSBvZiBXb3JsZCBXYXIgSUk6IEEgUG9saXRp
Y2FsLCBTb2NpYWwsIGFuZCBNaWxpdGFyeSBIaXN0b3J5LiBBQkMtQ0xJTy4gcC4gNzYuIElTQk4g
MTU3NjA3OTk5Ni4KXiBMZXZpbmUsIEFsYW4gSi4gKDE5OTIpLiBUaGUgU3RyYXRlZ2ljIEJvbWJp
bmcgb2YgR2VybWFueSwgMTk0MOKAkzE5NDUuIEdyZWVud29vZCBQcmVzcy4gcC4gMjE3LiBJU0JO
IDAyNzU5NDMxOTQuCl4gU2F1dmFpbiwgUGhpbGlwICgyMDA1KS4gS2V5IFRoZW1lcyBvZiB0aGUg
VHdlbnRpZXRoIENlbnR1cnk6IFRlYWNoZXIncyBHdWlkZS4gV2lsZXktQmxhY2t3ZWxsLiBwLiAx
MjguIElTQk4gMTQwNTEzMjE4My4KXiBUdWNrZXIsIFNwZW5jZXIgQy47IFJvYmVydHMsIFByaXNj
aWxsYSBNYXJ5IFJvYmVydHMgKDIwMDQpLiBFbmN5Y2xvcGVkaWEgb2YgV29ybGQgV2FyIElJOiBB
IFBvbGl0aWNhbCwgU29jaWFsLCBhbmQgTWlsaXRhcnkgSGlzdG9yeS4gQUJDLUNMSU8uIHAuIDE2
My4gSVNCTiAxNTc2MDc5OTk2LgpeIEJpc2hvcCwgQ2hyaXM7IENoYW50LCBDaHJpcyAoMjAwNCku
IEFpcmNyYWZ0IENhcnJpZXJzOiBUaGUgV29ybGQncyBHcmVhdGVzdCBOYXZhbCBWZXNzZWxzIGFu
ZCBUaGVpciBBaXJjcmFmdC4gU2lsdmVyZGFsZSBCb29rcy4gcC4gNy4gSVNCTiAxODQ1MDkwNzk5
LgpeIENoZW5vd2V0aCwgSC4gQXZlcnk7IE5paGFydCwgQnJvb2tlICgyMDA1KS4gU2VtcGVyIEZp
OiBUaGUgRGVmaW5pdGl2ZSBJbGx1c3RyYXRlZCBIaXN0b3J5IG9mIHRoZSBVLlMuIE1hcmluZXMu
IE1haW4gU3RyZWV0LiBwLiAxODAuIElTQk4gMTQwMjczMDk5My4KXiBTdW1uZXIsIElhbjsgQmFr
ZXIsIEFsaXggKDIwMDEpLiBUaGUgUm95YWwgTmF2eSAxOTM54oCTNDUuIE9zcHJleSBQdWJsaXNo
aW5nLiBwLiAyNS4gSVNCTiAxODQxNzYxOTU4LgpeIEhlYXJuLCBDaGVzdGVyIEcuICgyMDA3KS4g
Q2FycmllcnMgaW4gQ29tYmF0OiBUaGUgQWlyIFdhciBhdCBTZWEuIFN0YWNrcG9sZSBCb29rcy4g
cC4gMTQuIElTQk4gMDgxMTczMzk4WC4KXiBHYXJkaW5lciwgUm9iZXJ0OyBCcm93biwgRGF2aWQg
SyAoMjAwNCkuIFRoZSBFY2xpcHNlIG9mIHRoZSBCaWcgR3VuOiBUaGUgV2Fyc2hpcCAxOTA24oCT
MTk0NS4gQ29ud2F5LiBwLiA1Mi4gSVNCTiAwODUxNzc5NTMwLgpeIFJ5ZGlsbCwgTG91aXMgKDE5
OTUpLiBDb25jZXB0cyBpbiBTdWJtYXJpbmUgRGVzaWduLiBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQ
cmVzcy4gcC4gMTUuIElTQk4gMDUyMTU1OTI2WC4KXiBSeWRpbGwsIExvdWlzICgxOTk1KS4gQ29u
Y2VwdHMgaW4gU3VibWFyaW5lIERlc2lnbi4gQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MuIHAu
IDE2LiBJU0JOIDA1MjE1NTkyNlguCl4gYSBiIFR1Y2tlciwgU3BlbmNlciBDLjsgUm9iZXJ0cywg
UHJpc2NpbGxhIE1hcnkgUm9iZXJ0cyAoMjAwNCkuIEVuY3ljbG9wZWRpYSBvZiBXb3JsZCBXYXIg
SUk6IEEgUG9saXRpY2FsLCBTb2NpYWwsIGFuZCBNaWxpdGFyeSBIaXN0b3J5LiBBQkMtQ0xJTy4g
cC4gMTI1LiBJU0JOIDE1NzYwNzk5OTYuCl4gRHVwdXksIFRyZXZvciBOZXZpdHQgKDE5ODIpLiBU
aGUgRXZvbHV0aW9uIG9mIFdlYXBvbnMgYW5kIFdhcmZhcmUuIEphbmUncyBJbmZvcm1hdGlvbiBH
cm91cC4gcC4gMjMxLiBJU0JOIDA3MTA2MDEyMzkuCl4gYSBiIFR1Y2tlciwgU3BlbmNlciBDLjsg
Um9iZXJ0cywgUHJpc2NpbGxhIE1hcnkgUm9iZXJ0cyAoMjAwNCkuIEVuY3ljbG9wZWRpYSBvZiBX
b3JsZCBXYXIgSUk6IEEgUG9saXRpY2FsLCBTb2NpYWwsIGFuZCBNaWxpdGFyeSBIaXN0b3J5LiBB
QkMtQ0xJTy4gcC4gMTA4LiBJU0JOIDE1NzYwNzk5OTYuCl4gVHVja2VyLCBTcGVuY2VyIEMuOyBS
b2JlcnRzLCBQcmlzY2lsbGEgTWFyeSBSb2JlcnRzICgyMDA0KS4gRW5jeWNsb3BlZGlhIG9mIFdv
cmxkIFdhciBJSTogQSBQb2xpdGljYWwsIFNvY2lhbCwgYW5kIE1pbGl0YXJ5IEhpc3RvcnkuIEFC
Qy1DTElPLiBwLiA3MzQuIElTQk4gMTU3NjA3OTk5Ni4KXiBhIGIgQ293bGV5LCBSb2JlcnQ7IFBh
cmtlciwgR2VvZmZyZXkgKDIwMDEpLiBUaGUgUmVhZGVyJ3MgQ29tcGFuaW9uIHRvIE1pbGl0YXJ5
IEhpc3RvcnkuIEhvdWdodG9uIE1pZmZsaW4gSGFyY291cnQuIHAuIDIyMS4gSVNCTiAwNjE4MTI3
NDI5LgpeICJJbmZhbnRyeSBXZWFwb25zIE9mIFdvcmxkIFdhciAyIi4gR3JleSBGYWxjb24gKEJs
YWNrIFN1bikuIFJldHJpZXZlZCAxNCBOb3ZlbWJlciAyMDA5LiAiVGhlc2UgYWxsLXB1cnBvc2Ug
Z3VucyB3ZXJlIGRldmVsb3BlZCBhbmQgdXNlZCBieSB0aGUgR2VybWFuIGFybXkgaW4gdGhlIDJu
ZCBoYWxmIG9mIFdvcmxkIFdhciAyIGFzIGEgcmVzdWx0IG9mIHN0dWRpZXMgd2hpY2ggc2hvd2Vk
IHRoYXQgdGhlIG9yZGluYXJ5IHJpZmxlJ3MgbG9uZyByYW5nZSBpcyBtdWNoIGxvbmdlciB0aGFu
IG5lZWRlZCwgc2luY2UgdGhlIHNvbGRpZXJzIGFsbW9zdCBhbHdheXMgZmlyZWQgYXQgZW5lbWll
cyBjbG9zZXIgdGhhbiBoYWxmIG9mIGl0cyBlZmZlY3RpdmUgcmFuZ2UuIFRoZSBhc3NhdWx0IHJp
ZmxlIGlzIGEgYmFsYW5jZWQgY29tcHJvbWlzZSBiZXR3ZWVuIHRoZSByaWZsZSBhbmQgdGhlIHN1
Yi1tYWNoaW5lIGd1biwgaGF2aW5nIHN1ZmZpY2llbnQgcmFuZ2UgYW5kIGFjY3VyYWN5IHRvIGJl
IHVzZWQgYXMgYSByaWZsZSwgY29tYmluZWQgd2l0aCB0aGUgcmFwaWQtcmF0ZSBhdXRvbWF0aWMg
ZmlyZXBvd2VyIG9mIHRoZSBzdWIgbWFjaGluZSBndW4uIFRoYW5rcyB0byB0aGVzZSBjb21iaW5l
ZCBhZHZhbnRhZ2VzLCBhc3NhdWx0IHJpZmxlcyBzdWNoIGFzIHRoZSBBbWVyaWNhbiBNLTE2IGFu
ZCB0aGUgUnVzc2lhbiBBSy00NyBhcmUgdGhlIGJhc2ljIHdlYXBvbiBvZiB0aGUgbW9kZXJuIHNv
bGRpZXIiCl4gU3ByYWd1ZSwgT2xpdmVyOyBHcmlmZml0aHMsIEh1Z2ggKDIwMDYpLiAiVGhlIEFL
LTQ3OiB0aGUgd29ybGRzIGZhdm91cml0ZSBraWxsaW5nIG1hY2hpbmUiIChQREYpLiBjb250cm9s
YXJtcy5vcmcuIHAuIDEuIFJldHJpZXZlZCAxNCBOb3ZlbWJlciAyMDA5LgpeIFJhdGNsaWZmLCBS
ZWJlY2NhIEFubiAoMjAwNikuIERlbHVzaW9ucyBvZiBJbnRlbGxpZ2VuY2U6IEVuaWdtYSwgVWx0
cmEgYW5kIHRoZSBFbmQgb2YgU2VjdXJlIENpcGhlcnMuIENhbWJyaWRnZSBVbml2ZXJzaXR5IFBy
ZXNzLiBwLiAxMS4gSVNCTiAwNTIxODU1MjI1LgpeIGEgYiBTY2hvZW5oZXJyLCBTdGV2ZW4gKDIw
MDcpLiAiQ29kZSBCcmVha2luZyBpbiBXb3JsZCBXYXIgSUkiLiBIaXN0b3J5IERlcGFydG1lbnQg
YXQgdGhlIFVuaXZlcnNpdHkgb2YgU2FuIERpZWdvLiBSZXRyaWV2ZWQgMTUgTm92ZW1iZXIgMjAw
OS5bZGVhZCBsaW5rXQpeIFJvd2UsIE5laWwgQy47IFJvdGhzdGVpbiwgSHkuICJEZWNlcHRpb24g
Zm9yIERlZmVuc2Ugb2YgSW5mb3JtYXRpb24gU3lzdGVtczogQW5hbG9naWVzIGZyb20gQ29udmVu
dGlvbmFsIFdhcmZhcmUiLiBEZXBhcnRtZW50cyBvZiBDb21wdXRlciBTY2llbmNlIGFuZCBEZWZl
bnNlIEFuYWx5c2lzIFUuUy4gTmF2YWwgUG9zdGdyYWR1YXRlIFNjaG9vbC4gQWlyIFVuaXZlcnNp
dHkuIFJldHJpZXZlZCAxNSBOb3ZlbWJlciAyMDA5LgpeICJLb25yYWQgWnVzZSAoMTkxMOKAkzE5
OTUpIi4gSXN0aXR1dG8gRGFsbGUgTW9sbGUgZGkgU3R1ZGkgc3VsbCdJbnRlbGxpZ2VuemEgQXJ0
aWZpY2lhbGUuIFJldHJpZXZlZCAxNCBOb3ZlbWJlciAyMDA5LiAiS29ucmFkIFp1c2UgYnVpbGRz
IFoxLCB3b3JsZCdzIGZpcnN0IHByb2dyYW1tZS1jb250cm9sbGVkIGNvbXB1dGVyLiBEZXNwaXRl
IGNlcnRhaW4gbWVjaGFuaWNhbCBlbmdpbmVlcmluZyBwcm9ibGVtcyBpdCBoYWQgYWxsIHRoZSBi
YXNpYyBpbmdyZWRpZW50cyBvZiBtb2Rlcm4gbWFjaGluZXMsIHVzaW5nIHRoZSBiaW5hcnkgc3lz
dGVtIGFuZCB0b2RheSdzIHN0YW5kYXJkIHNlcGFyYXRpb24gb2Ygc3RvcmFnZSBhbmQgY29udHJv
bC4gWnVzZSdzIDE5MzYgcGF0ZW50IGFwcGxpY2F0aW9uIChaMjMxMzkvR01EIE5yLiAwMDUvMDIx
KSBhbHNvIHN1Z2dlc3RzIGEgdm9uIE5ldW1hbm4gYXJjaGl0ZWN0dXJlIChyZS1pbnZlbnRlZCBp
biAxOTQ1KSB3aXRoIHByb2dyYW1tZSBhbmQgZGF0YSBtb2RpZmlhYmxlIGluIHN0b3JhZ2UiClJl
ZmVyZW5jZXMKCkFkYW10aHdhaXRlLCBBbnRob255IFAgKDE5OTIpLiBUaGUgTWFraW5nIG9mIHRo
ZSBTZWNvbmQgV29ybGQgV2FyLiBOZXcgWW9yazogUm91dGxlZGdlLiBJU0JOIDA0MTU5MDcxNjAu
CkJyb2R5LCBKIEtlbm5ldGggKDE5OTkpLiBUaGUgQXZvaWRhYmxlIFdhcjogUGllcnJlIExhdmFs
IGFuZCB0aGUgUG9saXRpY3Mgb2YgUmVhbGl0eSwgMTkzNeKAkzE5MzYuIFRyYW5zYWN0aW9uIFB1
Ymxpc2hlcnMuIHAuIDQuIElTQk4gMDc2NTgwNjIyMy4KQnVsbG9jaywgQS4gKDE5NjIpLiBIaXRs
ZXI6IEEgU3R1ZHkgaW4gVHlyYW5ueS4gUGVuZ3VpbiBCb29rcy4gSVNCTiAwMTQwMTM1NjQyCkJ1
c2t5LCBEb25hbGQgRiAoMjAwMikuIENvbW11bmlzbSBpbiBIaXN0b3J5IGFuZCBUaGVvcnk6IEFz
aWEsIEFmcmljYSwgYW5kIHRoZSBBbWVyaWNhcy4gUHJhZWdlciBQdWJsaXNoZXJzLiBJU0JOIDAy
NzU5NzczMzEuCkRhdmllcywgTm9ybWFuICgyMDA4KS4gTm8gU2ltcGxlIFZpY3Rvcnk6IFdvcmxk
IFdhciBJSSBpbiBFdXJvcGUsIDE5MznigJMxOTQ1LiBQZW5ndWluIEdyb3VwLiBJU0JOIDAxNDMx
MTQwOTMKR2xhbnR6LCBEYXZpZCBNLiAoMjAwMSkuICJUaGUgU292aWV04oCQR2VybWFuIFdhciAx
OTQx4oCTNDUgTXl0aHMgYW5kIFJlYWxpdGllczogQSBTdXJ2ZXkgRXNzYXkiCkdyYWhhbSwgSGVs
ZW4gKDIwMDUpLiBUaGUgU3BhbmlzaCBDaXZpbCBXYXI6IEEgVmVyeSBTaG9ydCBJbnRyb2R1Y3Rp
b24uIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLCBVU0EuIElTQk4gMDE5MjgwMzc3OC4KSHNpdW5n
LCBKYW1lcyBDaGllaCAoMTk5MikuIENoaW5hJ3MgQml0dGVyIFZpY3Rvcnk6IFRoZSBXYXIgd2l0
aCBKYXBhbiwgMTkzN+KAkzE5NDUuIE0uRS4gU2hhcnBlLiBJU0JOIDE1NjMyNDI0NlgKSm93ZXR0
LCBQaGlsaXAgUy47IEFuZHJldywgU3RlcGhlbiAoMjAwMikuIFRoZSBKYXBhbmVzZSBBcm15LCAx
OTMx4oCTNDUuIE9zcHJleSBQdWJsaXNoaW5nLiBJU0JOIDE4NDE3NjM1MzUKS2FudG93aWN6LCBF
ZHdhcmQgUiAoMTk5OSkuIFRoZSByYWdlIG9mIG5hdGlvbnMuIFdtLiBCLiBFZXJkbWFucyBQdWJs
aXNoaW5nLiBJU0JOIDA4MDI4NDQ1NTMuCktlcnNoYXcsIElhbiAoMjAwMSkuIEhpdGxlciwgMTkz
NuKAkzE5NDU6IE5lbWVzaXMuIFcuIFcuIE5vcnRvbiAmIENvbXBhbnkuIElTQk4gMDM5MzMyMjUy
MQpLaXRzb24sIEFsaXNvbiAoMjAwMSkuIEdlcm1hbnkgMTg1OOKAkzE5OTA6IEhvcGUsIFRlcnJv
ciwgYW5kIFJldml2YWwuIE94Zm9yZDogT3hmb3JkIFVuaXZlcnNpdHkgUHJlc3MuIElTQk4gOTc4
MDE5OTEzNDE3NS4KTWFuZGVsYmF1bSwgTWljaGFlbCAoMTk4OCkuIFRoZSBGYXRlIG9mIE5hdGlv
bnM6IFRoZSBTZWFyY2ggZm9yIE5hdGlvbmFsIFNlY3VyaXR5IGluIHRoZSBOaW5ldGVlbnRoIGFu
ZCBUd2VudGlldGggQ2VudHVyaWVzLiBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcy4gcC4gOTYu
IElTQk4gMDUyMTM1NzkwWC4KTXVycmF5LCBXaWxsaWFtc29uOyBNaWxsZXR0LCBBbGxhbiBSZWVk
ICgyMDAxKS4gQSBXYXIgdG8gQmUgV29uOiBGaWdodGluZyB0aGUgU2Vjb25kIFdvcmxkIFdhci4g
SGFydmFyZCBVbml2ZXJzaXR5IFByZXNzLiBJU0JOIDA2NzQwMDY4MDEKTXllcnMsIFJhbW9uOyBQ
ZWF0dGllLCBNYXJrICgxOTg3KS4gVGhlIEphcGFuZXNlIENvbG9uaWFsIEVtcGlyZSwgMTg5NeKA
kzE5NDUuIFByaW5jZXRvbiBVbml2ZXJzaXR5IFByZXNzLiBJU0JOIDA2OTExMDIyMjguClByZXN0
b24sIFBldGVyICgxOTk4KS4gJ1BhY2lmaWMgQXNpYSBpbiB0aGUgZ2xvYmFsIHN5c3RlbTogYW4g
aW50cm9kdWN0aW9uLCBXaWxleS1CbGFja3dlbGwuIE94Zm9yZDogQmxhY2t3ZWxsLiBwLiAxMDQu
IElTQk4gMDYzMTIwMjM4Mi4KUmVjb3JkLCBKZWZmZXJ5ICgyMDA1KSAoUERGKS4gQXBwZWFzZW1l
bnQgUmVjb25zaWRlcmVkOiBJbnZlc3RpZ2F0aW5nIHRoZSBNeXRob2xvZ3kgb2YgdGhlIDE5MzBz
LiBESUFORSBQdWJsaXNoaW5nLiBwLiA1MC4gSVNCTiAxNTg0ODcyMTYwLiBSZXRyaWV2ZWQgMTUg
Tm92ZW1iZXIgMjAwOS4KU2hhdywgQW50aG9ueSAoMjAwMCkuIFdvcmxkIFdhciBJSSBEYXkgYnkg
RGF5LiBNQkkgUHVibGlzaGluZyBDb21wYW55LiBJU0JOIDA3NjAzMDkzOTYuClNtaXRoLCBXaW5z
dG9uOyBTdGVhZG1hbiwgUmFscGggKDIwMDQpLiBBbGwgUmlvdCBvbiB0aGUgV2VzdGVybiBGcm9u
dCwgVm9sdW1lIDMuIExhc3QgR2FzcC4gSVNCTiAwODY3MTk2MTY1LgpXZWluYmVyZywgR2VyaGFy
ZCBMLiAoMTk5NSkuIEEgV29ybGQgYXQgQXJtczogQSBHbG9iYWwgSGlzdG9yeSBvZiBXb3JsZCBX
YXIgSUkuIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLiBJU0JOIDA1MjE1NTg3OTQKWmFsYW1w
YXMsIE1pY2hhZWwgKDE5ODkpLiBBZG9sZiBIaXRsZXIgYW5kIHRoZSBUaGlyZCBSZWljaCBpbiBB
bWVyaWNhbiBtYWdhemluZXMsIDE5MjPigJMxOTM5LiBCb3dsaW5nIEdyZWVuIFVuaXZlcnNpdHkg
UG9wdWxhciBQcmVzcy4gSVNCTiAwODc5NzI0NjI1Lgo8L2Rpdj4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82802</attachid>
            <date>2011-02-17 07:43:38 -0800</date>
            <delta_ts>2011-02-17 07:56:18 -0800</delta_ts>
            <desc>proposed approach to safe recycling without doing a deep copy of the string</desc>
            <filename>iter_cache.diff</filename>
            <type>text/plain</type>
            <size>10239</size>
            <attacher name="chris reiss">christopher.reiss</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NzI3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDItMTYgIGNocmlzIHJl
aXNzICA8Y2hyaXN0b3BoZXIucmVpc3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW52YWxpZCBwb2ludGVyIGFjY2VzcyAm
IGluY29tcGxldGUgbWVtY21wIGluIHNldFVwSXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Njk1CisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpsaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGluZUJy
ZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0
b3JRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QnJlYWtJdGVyYXRvcjo6VGV4dEJyZWFr
SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VXBJdGVyYXRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpsaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmluZE5l
eHRMaW5lQnJlYWspOgorICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpuZXh0QnJlYWthYmxlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9icmVha19saW5lcy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNCcmVha2FibGUpOgorCiAyMDEx
LTAyLTE2ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCShyZXZpc2lvbiA3ODcx
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDggKzIxLDEwIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKIAorI2luY2x1ZGUgPFBhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDxRdENvcmUvcXRleHRib3VuZGFyeWZpbmRlci5oPgogI2luY2x1ZGUg
PHFkZWJ1Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogLy8gI2RlZmlu
ZSBERUJVR19URVhUX0lURVJBVE9SUwogI2lmZGVmIERFQlVHX1RFWFRfSVRFUkFUT1JTCkBAIC00
MywxMCArNDUsMTIgQEAKIAogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFU
ZXh0Qm91bmRhcnlGaW5kZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgVGV4dEJyZWFrSXRlcmF0
b3IoUVRleHRCb3VuZGFyeUZpbmRlcjo6Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBz
dHJpbmcsIGludCBsZW5ndGgpCisgICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKFFUZXh0Qm91bmRh
cnlGaW5kZXI6OkJvdW5kYXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVu
Z3RoLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdUZXh0ID0gMCkKICAgICAgICAgICAgIDog
UVRleHRCb3VuZGFyeUZpbmRlcih0eXBlLCAoY29uc3QgUUNoYXIqKXN0cmluZywgbGVuZ3RoLCBi
dWZmZXIsIHNpemVvZihidWZmZXIpKQogICAgICAgICAgICAgLCBsZW5ndGgobGVuZ3RoKQotICAg
ICAgICAgICAgLCBzdHJpbmcoc3RyaW5nKSB7fQorICAgICAgICAgICAgLCBzdHJpbmcoc3RyaW5n
KQorICAgICAgICAgICAgLCBtX29yaWdpbmFsU3RyaW5nKG9yaWdUZXh0KQorICAgICAgICAgICAg
e30KICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoKQogICAgICAgICAgICAgOiBRVGV4dEJvdW5k
YXJ5RmluZGVyKCkKICAgICAgICAgICAgICwgbGVuZ3RoKDApCkBAIC01NCwyMCArNTgsMjEgQEAK
IAogICAgICAgICBpbnQgbGVuZ3RoOwogICAgICAgICBjb25zdCBVQ2hhciogc3RyaW5nOworICAg
ICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9vcmlnaW5hbFN0cmluZzsKICAgICB9OwogCi0gICAg
VGV4dEJyZWFrSXRlcmF0b3IqIHNldFVwSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3ImIGl0ZXJh
dG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpCb3VuZGFyeVR5cGUgdHlwZSwgY29uc3QgVUNoYXIq
IHN0cmluZywgaW50IGxlbmd0aCkKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRv
cihUZXh0QnJlYWtJdGVyYXRvciYgaXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkJvdW5k
YXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IG9yaWdUZXh0ID0gMCkKICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nIHx8
ICFsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBpZiAoaXRlcmF0b3Iu
aXNWYWxpZCgpICYmIHR5cGUgPT0gaXRlcmF0b3IudHlwZSgpICYmIGxlbmd0aCA9PSBpdGVyYXRv
ci5sZW5ndGgKLSAgICAgICAgICAgICYmIG1lbWNtcChzdHJpbmcsIGl0ZXJhdG9yLnN0cmluZywg
bGVuZ3RoKSA9PSAwKSB7CisgICAgICAgICAgICAmJiAoc3RyaW5nID09IGl0ZXJhdG9yLnN0cmlu
ZykgJiYgb3JpZ1RleHQgJiYgKGl0ZXJhdG9yLm1fb3JpZ2luYWxTdHJpbmcgPT0gb3JpZ1RleHQp
KSB7CiAgICAgICAgICAgICBpdGVyYXRvci50b1N0YXJ0KCk7CiAgICAgICAgICAgICByZXR1cm4g
Jml0ZXJhdG9yOwogICAgICAgICB9CiAKLSAgICAgICAgaXRlcmF0b3IgPSBUZXh0QnJlYWtJdGVy
YXRvcih0eXBlLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIGl0ZXJhdG9yID0gVGV4dEJyZWFr
SXRlcmF0b3IodHlwZSwgc3RyaW5nLCBsZW5ndGgsIG9yaWdUZXh0KTsKIAogICAgICAgICByZXR1
cm4gJml0ZXJhdG9yOwogICAgIH0KQEAgLTg5LDEwICs5NCwxMCBAQAogICAgICAgICByZXR1cm4g
Y2hhcmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgVGV4
dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGlu
dCBsZW5ndGgpCisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0
IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1Rl
eHQpCiAgICAgewogICAgICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3Igc3RhdGljTGluZUJy
ZWFrSXRlcmF0b3I7Ci0gICAgICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKHN0YXRpY0xpbmVCcmVh
a0l0ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBzdHJpbmcsIGxlbmd0aCk7Cisg
ICAgICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBRVGV4
dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBzdHJpbmcsIGxlbmd0aCwgb3JpZ1RleHQpOwogICAgIH0K
IAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZywgaW50IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCShyZXZpc2lvbiA3ODcxNCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBACiAgICAgICAgIHN0YXRpY1dvcmRCcmVh
a0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFrSXRl
cmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgp
CitUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmlu
ZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnVGV4dCA9IDAgLyp1c2Vk
IGZvciBtZW1vcnktc2FmZSByZWN5Y2xpbmcgb2YgaXRlcmF0b3IqLykKIHsKICAgICBzdGF0aWMg
Ym9vbCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKICAgICBzdGF0aWMgVGV4dEJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRCcmVha0l0ZXJhdG9yR3Rr
LmNwcAkocmV2aXNpb24gNzg3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0
ay9UZXh0QnJlYWtJdGVyYXRvckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDEx
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5o
IgotCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogI2luY2x1ZGUgIkdPd25QdHIu
aCIKKyNpbmNsdWRlIDxQYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8cGFuZ28vcGFuZ28uaD4KKwog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogI2RlZmluZSBVVEY4X0lTX1NVUlJPR0FURShjaGFyYWN0
ZXIpIChjaGFyYWN0ZXIgPj0gMHgxMDAwMCAmJiBjaGFyYWN0ZXIgPD0gMHgxMEZGRkYpCkBAIC0y
MzksNyArMjQxLDcgQEAKICAgICByZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkV29yZEJyZWFr
SXRlcmF0b3IsIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmluZywgbGVu
Z3RoKTsKIH0KIAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVD
aGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCitUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRl
cmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiBvcmlnVGV4dCA9IDAgLyogdXNlZCBmb3IgbWVtb3J5LXNhZmUgcmVjeWNsaW5nIG9mIEl0
ZXJhdG9yICovKQogewogICAgIHN0YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciA9
IGZhbHNlOwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljTGluZUJyZWFrSXRl
cmF0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJl
YWtJdGVyYXRvci5oCShyZXZpc2lvbiA3ODcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsOCBA
QAogI2lmbmRlZiBUZXh0QnJlYWtJdGVyYXRvcl9oCiAjZGVmaW5lIFRleHRCcmVha0l0ZXJhdG9y
X2gKIAorI2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJ
bXBsLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00Myw3ICs0NSw3IEBACiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1v
dmVtZW50SXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVh
a0l0ZXJhdG9yKiB3b3JkQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwot
ICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGlu
dCBsZW5ndGgpOworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25z
dCBVQ2hhciosIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1RleHQgPSAw
IC8qIHVzZWQgZm9yIG1lbW9yeS1zYWZlIHJlY3ljbGluZyBvZiBpdGVyYXRvciAqLyk7CiAgICAg
VGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGlu
dCBsZW5ndGgpOwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJldmlzaW9u
IDc4NzE0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU0LDcgKzE1NCw3IEBACiB9CiAjZW5kaWYKIAotaW50IG5leHRCcmVh
a2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIHRy
ZWF0Tm9CcmVha1NwYWNlQXNCcmVhaykKK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3Qg
VUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJl
YWssICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+ICBvcmlnVHh0KQogewogI2lmICFQTEFURk9STShN
QUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQogICAgIFRleHRCcmVha0l0ZXJhdG9y
KiBicmVha0l0ZXJhdG9yID0gMDsKQEAgLTE3Miw3ICsxNzIsNyBAQAogICAgICAgICAgICAgaWYg
KG5leHRCcmVhayA8IGkgJiYgaSkgewogI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJV
SUxESU5HX09OX1RJR0VSKQogICAgICAgICAgICAgICAgIGlmICghYnJlYWtJdGVyYXRvcikKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yKHN0ciwg
bGVuKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJh
dG9yKHN0ciwgbGVuLCBvcmlnVHh0KTsKICAgICAgICAgICAgICAgICBpZiAoYnJlYWtJdGVyYXRv
cikKICAgICAgICAgICAgICAgICAgICAgbmV4dEJyZWFrID0gdGV4dEJyZWFrRm9sbG93aW5nKGJy
ZWFrSXRlcmF0b3IsIGkgLSAxKTsKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvYnJlYWtfbGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
YnJlYWtfbGluZXMuaAkocmV2aXNpb24gNzg3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvYnJlYWtfbGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTggKzIxLDIyIEBACiAjaWZu
ZGVmIGJyZWFrX2xpbmVzX2gKICNkZWZpbmUgYnJlYWtfbGluZXNfaAogCi0jaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgorI2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdJbXBsLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPiAK
IAordHlwZWRlZiBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IEJsZXJrOyAKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0gICAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciosIGlu
dCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOworaW50IG5leHRCcmVha2Fi
bGVQb3NpdGlvbihjb25zdCBVQ2hhciosIGludCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQ
ID0gZmFsc2UsIEJsZXJrIG9yaWdUeHQgPSAwKTsKIAotICAgIGlubGluZSBib29sIGlzQnJlYWth
YmxlKGNvbnN0IFVDaGFyKiBzdHIsIGludCBwb3MsIGludCBsZW4sIGludCYgbmV4dEJyZWFrYWJs
ZSwgYm9vbCBicmVha05CU1AgPSBmYWxzZSkKLSAgICB7CitpbmxpbmUgYm9vbCBpc0JyZWFrYWJs
ZShjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUs
IGJvb2wgYnJlYWtOQlNQID0gZmFsc2UsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1R4dCA9
IDApCit7CiAgICAgICAgIGlmIChwb3MgPiBuZXh0QnJlYWthYmxlKQotICAgICAgICAgICAgbmV4
dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihzdHIsIHBvcywgbGVuLCBicmVha05C
U1ApOworICAgICAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihz
dHIsIHBvcywgbGVuLCBicmVha05CU1AsIG9yaWdUeHQpOwogICAgICAgICByZXR1cm4gcG9zID09
IG5leHRCcmVha2FibGU7Ci0gICAgfQorfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCShyZXZpc2lvbiA3ODcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjU0LDYgKzE2NTQsNyBA
QAogICAgICAgICAgICAgaW50IHN0cmxlbiA9IHQtPnRleHRMZW5ndGgoKTsKICAgICAgICAgICAg
IGludCBsZW4gPSBzdHJsZW4gLSBwb3M7CiAgICAgICAgICAgICBjb25zdCBVQ2hhciogc3RyID0g
dC0+Y2hhcmFjdGVycygpOworICAgICAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdUeHQg
PSB0LT5vcmlnaW5hbFRleHQoKTsKIAogICAgICAgICAgICAgY29uc3QgRm9udCYgZiA9IHN0eWxl
LT5mb250KCk7CiAgICAgICAgICAgICBib29sIGlzRml4ZWRQaXRjaCA9IGYuaXNGaXhlZFBpdGNo
KCk7CkBAIC0xNzIzLDcgKzE3MjQsNyBAQAogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJl
YWsgPSB3ICsgd3JhcFcgKyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldT
ICE9IFBSRSAmJiAhYXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0
QnJlYWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25l
IHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAgICAg
ICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJXUyAhPSBQUkUgJiYgIWF0
U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBwb3MsIHN0cmxlbiwgbmV4dEJyZWFrYWJsZSwgYnJl
YWtOQlNQLCBvcmlnVHh0KSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAo
cG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOwogCiAgICAgICAgICAgICAgICAg
aWYgKGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82806</attachid>
            <date>2011-02-17 07:56:18 -0800</date>
            <delta_ts>2011-02-18 08:16:30 -0800</delta_ts>
            <desc>(fix to chromium build break)</desc>
            <filename>iter_cache.diff</filename>
            <type>text/plain</type>
            <size>10179</size>
            <attacher name="chris reiss">christopher.reiss</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NzI3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDItMTYgIGNocmlzIHJl
aXNzICA8Y2hyaXN0b3BoZXIucmVpc3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW52YWxpZCBwb2ludGVyIGFjY2VzcyAm
IGluY29tcGxldGUgbWVtY21wIGluIHNldFVwSXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Njk1CisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpsaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGluZUJy
ZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0
b3JRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QnJlYWtJdGVyYXRvcjo6VGV4dEJyZWFr
SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VXBJdGVyYXRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpsaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmluZE5l
eHRMaW5lQnJlYWspOgorICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpuZXh0QnJlYWthYmxlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9icmVha19saW5lcy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNCcmVha2FibGUpOgorCiAyMDEx
LTAyLTE2ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCShyZXZpc2lvbiA3ODcx
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDggKzIxLDEwIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKIAorI2luY2x1ZGUgPFBhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDxRdENvcmUvcXRleHRib3VuZGFyeWZpbmRlci5oPgogI2luY2x1ZGUg
PHFkZWJ1Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogLy8gI2RlZmlu
ZSBERUJVR19URVhUX0lURVJBVE9SUwogI2lmZGVmIERFQlVHX1RFWFRfSVRFUkFUT1JTCkBAIC00
MywxMCArNDUsMTIgQEAKIAogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFU
ZXh0Qm91bmRhcnlGaW5kZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgVGV4dEJyZWFrSXRlcmF0
b3IoUVRleHRCb3VuZGFyeUZpbmRlcjo6Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBz
dHJpbmcsIGludCBsZW5ndGgpCisgICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKFFUZXh0Qm91bmRh
cnlGaW5kZXI6OkJvdW5kYXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVu
Z3RoLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdUZXh0ID0gMCkKICAgICAgICAgICAgIDog
UVRleHRCb3VuZGFyeUZpbmRlcih0eXBlLCAoY29uc3QgUUNoYXIqKXN0cmluZywgbGVuZ3RoLCBi
dWZmZXIsIHNpemVvZihidWZmZXIpKQogICAgICAgICAgICAgLCBsZW5ndGgobGVuZ3RoKQotICAg
ICAgICAgICAgLCBzdHJpbmcoc3RyaW5nKSB7fQorICAgICAgICAgICAgLCBzdHJpbmcoc3RyaW5n
KQorICAgICAgICAgICAgLCBtX29yaWdpbmFsU3RyaW5nKG9yaWdUZXh0KQorICAgICAgICAgICAg
e30KICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoKQogICAgICAgICAgICAgOiBRVGV4dEJvdW5k
YXJ5RmluZGVyKCkKICAgICAgICAgICAgICwgbGVuZ3RoKDApCkBAIC01NCwyMCArNTgsMjEgQEAK
IAogICAgICAgICBpbnQgbGVuZ3RoOwogICAgICAgICBjb25zdCBVQ2hhciogc3RyaW5nOworICAg
ICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9vcmlnaW5hbFN0cmluZzsKICAgICB9OwogCi0gICAg
VGV4dEJyZWFrSXRlcmF0b3IqIHNldFVwSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3ImIGl0ZXJh
dG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpCb3VuZGFyeVR5cGUgdHlwZSwgY29uc3QgVUNoYXIq
IHN0cmluZywgaW50IGxlbmd0aCkKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRv
cihUZXh0QnJlYWtJdGVyYXRvciYgaXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkJvdW5k
YXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IG9yaWdUZXh0ID0gMCkKICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nIHx8
ICFsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBpZiAoaXRlcmF0b3Iu
aXNWYWxpZCgpICYmIHR5cGUgPT0gaXRlcmF0b3IudHlwZSgpICYmIGxlbmd0aCA9PSBpdGVyYXRv
ci5sZW5ndGgKLSAgICAgICAgICAgICYmIG1lbWNtcChzdHJpbmcsIGl0ZXJhdG9yLnN0cmluZywg
bGVuZ3RoKSA9PSAwKSB7CisgICAgICAgICAgICAmJiAoc3RyaW5nID09IGl0ZXJhdG9yLnN0cmlu
ZykgJiYgb3JpZ1RleHQgJiYgKGl0ZXJhdG9yLm1fb3JpZ2luYWxTdHJpbmcgPT0gb3JpZ1RleHQp
KSB7CiAgICAgICAgICAgICBpdGVyYXRvci50b1N0YXJ0KCk7CiAgICAgICAgICAgICByZXR1cm4g
Jml0ZXJhdG9yOwogICAgICAgICB9CiAKLSAgICAgICAgaXRlcmF0b3IgPSBUZXh0QnJlYWtJdGVy
YXRvcih0eXBlLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIGl0ZXJhdG9yID0gVGV4dEJyZWFr
SXRlcmF0b3IodHlwZSwgc3RyaW5nLCBsZW5ndGgsIG9yaWdUZXh0KTsKIAogICAgICAgICByZXR1
cm4gJml0ZXJhdG9yOwogICAgIH0KQEAgLTg5LDEwICs5NCwxMCBAQAogICAgICAgICByZXR1cm4g
Y2hhcmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgVGV4
dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGlu
dCBsZW5ndGgpCisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0
IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1Rl
eHQpCiAgICAgewogICAgICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3Igc3RhdGljTGluZUJy
ZWFrSXRlcmF0b3I7Ci0gICAgICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKHN0YXRpY0xpbmVCcmVh
a0l0ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBzdHJpbmcsIGxlbmd0aCk7Cisg
ICAgICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBRVGV4
dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBzdHJpbmcsIGxlbmd0aCwgb3JpZ1RleHQpOwogICAgIH0K
IAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZywgaW50IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCShyZXZpc2lvbiA3ODcxNCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBACiAgICAgICAgIHN0YXRpY1dvcmRCcmVh
a0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFrSXRl
cmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgp
CitUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmlu
ZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikKIHsKICAgICBzdGF0aWMgYm9v
bCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKICAgICBzdGF0aWMgVGV4dEJyZWFr
SXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRCcmVha0l0ZXJhdG9yR3RrLmNw
cAkocmV2aXNpb24gNzg3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9U
ZXh0QnJlYWtJdGVyYXRvckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDExIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgot
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogI2luY2x1ZGUgIkdPd25QdHIuaCIK
KyNpbmNsdWRlIDxQYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8cGFuZ28vcGFuZ28uaD4KKwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAogI2RlZmluZSBVVEY4X0lTX1NVUlJPR0FURShjaGFyYWN0ZXIp
IChjaGFyYWN0ZXIgPj0gMHgxMDAwMCAmJiBjaGFyYWN0ZXIgPD0gMHgxMEZGRkYpCkBAIC0yMzks
NyArMjQxLDcgQEAKICAgICByZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkV29yZEJyZWFrSXRl
cmF0b3IsIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmluZywgbGVuZ3Ro
KTsKIH0KIAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFy
KiBzdHJpbmcsIGludCBsZW5ndGgpCitUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0
b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJbXBs
PiBvcmlnVGV4dCA9IDAgLyogdXNlZCBmb3IgbWVtb3J5LXNhZmUgcmVjeWNsaW5nIG9mIEl0ZXJh
dG9yICovKQogewogICAgIHN0YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciA9IGZh
bHNlOwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0
b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5oCShyZXZpc2lvbiA3ODcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsOCBAQAog
I2lmbmRlZiBUZXh0QnJlYWtJdGVyYXRvcl9oCiAjZGVmaW5lIFRleHRCcmVha0l0ZXJhdG9yX2gK
IAorI2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBs
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Myw3ICs0NSw3IEBACiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVt
ZW50SXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVha0l0
ZXJhdG9yKiB3b3JkQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwotICAg
IFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgpOworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBV
Q2hhciosIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1RleHQgPSAwIC8q
IHVzZWQgZm9yIG1lbW9yeS1zYWZlIHJlY3ljbGluZyBvZiBpdGVyYXRvciAqLyk7CiAgICAgVGV4
dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgpOwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJldmlzaW9uIDc4
NzE0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU0LDcgKzE1NCw3IEBACiB9CiAjZW5kaWYKIAotaW50IG5leHRCcmVha2Fi
bGVQb3NpdGlvbihjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIHRyZWF0
Tm9CcmVha1NwYWNlQXNCcmVhaykKK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNo
YXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWss
ICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+ICBvcmlnVHh0KQogewogI2lmICFQTEFURk9STShNQUMp
IHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBi
cmVha0l0ZXJhdG9yID0gMDsKQEAgLTE3Miw3ICsxNzIsNyBAQAogICAgICAgICAgICAgaWYgKG5l
eHRCcmVhayA8IGkgJiYgaSkgewogI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxE
SU5HX09OX1RJR0VSKQogICAgICAgICAgICAgICAgIGlmICghYnJlYWtJdGVyYXRvcikKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yKHN0ciwgbGVu
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9y
KHN0ciwgbGVuLCBvcmlnVHh0KTsKICAgICAgICAgICAgICAgICBpZiAoYnJlYWtJdGVyYXRvcikK
ICAgICAgICAgICAgICAgICAgICAgbmV4dEJyZWFrID0gdGV4dEJyZWFrRm9sbG93aW5nKGJyZWFr
SXRlcmF0b3IsIGkgLSAxKTsKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
YnJlYWtfbGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJl
YWtfbGluZXMuaAkocmV2aXNpb24gNzg3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
YnJlYWtfbGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTggKzIxLDIyIEBACiAjaWZuZGVm
IGJyZWFrX2xpbmVzX2gKICNkZWZpbmUgYnJlYWtfbGluZXNfaAogCi0jaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvVW5pY29kZS5oPgorI2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdJbXBsLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPiAKIAor
dHlwZWRlZiBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IEJsZXJrOyAKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0gICAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciosIGludCBw
b3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOworaW50IG5leHRCcmVha2FibGVQ
b3NpdGlvbihjb25zdCBVQ2hhciosIGludCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0g
ZmFsc2UsIEJsZXJrIG9yaWdUeHQgPSAwKTsKIAotICAgIGlubGluZSBib29sIGlzQnJlYWthYmxl
KGNvbnN0IFVDaGFyKiBzdHIsIGludCBwb3MsIGludCBsZW4sIGludCYgbmV4dEJyZWFrYWJsZSwg
Ym9vbCBicmVha05CU1AgPSBmYWxzZSkKLSAgICB7CitpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShj
b25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJv
b2wgYnJlYWtOQlNQID0gZmFsc2UsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ1R4dCA9IDAp
Cit7CiAgICAgICAgIGlmIChwb3MgPiBuZXh0QnJlYWthYmxlKQotICAgICAgICAgICAgbmV4dEJy
ZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihzdHIsIHBvcywgbGVuLCBicmVha05CU1Ap
OworICAgICAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihzdHIs
IHBvcywgbGVuLCBicmVha05CU1AsIG9yaWdUeHQpOwogICAgICAgICByZXR1cm4gcG9zID09IG5l
eHRCcmVha2FibGU7Ci0gICAgfQorfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCShyZXZpc2lvbiA3ODcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjU0LDYgKzE2NTQsNyBAQAog
ICAgICAgICAgICAgaW50IHN0cmxlbiA9IHQtPnRleHRMZW5ndGgoKTsKICAgICAgICAgICAgIGlu
dCBsZW4gPSBzdHJsZW4gLSBwb3M7CiAgICAgICAgICAgICBjb25zdCBVQ2hhciogc3RyID0gdC0+
Y2hhcmFjdGVycygpOworICAgICAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdUeHQgPSB0
LT5vcmlnaW5hbFRleHQoKTsKIAogICAgICAgICAgICAgY29uc3QgRm9udCYgZiA9IHN0eWxlLT5m
b250KCk7CiAgICAgICAgICAgICBib29sIGlzRml4ZWRQaXRjaCA9IGYuaXNGaXhlZFBpdGNoKCk7
CkBAIC0xNzIzLDcgKzE3MjQsNyBAQAogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJlYWsg
PSB3ICsgd3JhcFcgKyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9
IFBSRSAmJiAhYXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0QnJl
YWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25lIHx8
IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAgICAgICAg
Ym9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJXUyAhPSBQUkUgJiYgIWF0U3Rh
cnQgJiYgaXNCcmVha2FibGUoc3RyLCBwb3MsIHN0cmxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtO
QlNQLCBvcmlnVHh0KSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAocG9z
ICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOwogCiAgICAgICAgICAgICAgICAgaWYg
KGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgYm9v
bCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBmYWxzZTsK
</data>
<flag name="review"
          id="74504"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82961</attachid>
            <date>2011-02-18 08:16:30 -0800</date>
            <delta_ts>2011-02-21 10:25:17 -0800</delta_ts>
            <desc>style fixes </desc>
            <filename>iter_cache9.diff</filename>
            <type>text/plain</type>
            <size>10706</size>
            <attacher name="chris reiss">christopher.reiss</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MDAwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDItMTggIGNocmlzIHJl
aXNzICA8Y2hyaXN0b3BoZXIucmVpc3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW52YWxpZCBwb2ludGVyIGFjY2VzcyAm
IGluY29tcGxldGUgbWVtY21wIGluIHNldFVwSXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Njk1CisKKyAgICAgICAgRW5hYmxlIHRoZSBz
YWZlIHJlY3ljbGluZyBvZiBUZXh0QnJlYWtJdGVyYXRvcnMgYnkgcGFzc2luZyBhIHJlZmVyZW5j
ZSAKKyAgICAgICAgdG8gdGhlIHN0cmluZyB0aGV5IG9wZXJhdGUgb24uICAgSW4gdGhpcyBwYXRj
aCwgdGhlIHJlZmVyZW5jZSBpcyBvbmx5IHVzZWQgdG8KKyAgICAgICAgcmVjeWNsZSBsaW5lQnJl
YWtJdGVyYXRvciBpbiB0aGUgUXQgcG9ydCAtIHdoZXJlIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFu
Y2UgaGl0IAorICAgICAgICB3YXMgYmVpbmcgaW5jdXJyZWQuICAgSXQgY291bGQgYmUgdXNlZCBl
bHNld2hlcmUgaW4gdGhlIGZ1dHVyZSBieSBwYXNzaW5nIHRoaXMgcmVmZXJlbmNlCisgICAgICAg
IGluIG1vcmUgcGxhY2VzLgorCisgICAgICAgIFRoZXJlIGFyZSBubyBuZXcgdGVzdHMgLSB0aGlz
IGlzIGEgZml4IHRvIGEgcHJldmlvdXMgYXR0ZW1wdCBhdCByZWN5Y2xpbmcgCisgICAgICAgIHdo
aWNoIHdhcyBtYW5pZmVzdGx5IHVuc2FmZSBieSBsb29raW5nIGF0IHRoZSBjb2RlOyB0aGVyZSB3
YXMgcG90ZW50aWFsIGZvciBhIGRhbmdsaW5nCisgICAgICAgIHBvaW50ZXIgcmVmZXJlbmNlLgor
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bGluZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvZ3RrL1RleHRC
cmVha0l0ZXJhdG9yR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxpbmVCcmVha0l0ZXJhdG9y
KToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEJyZWFrSXRlcmF0b3I6OlRleHRCcmVha0l0ZXJhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6bGlu
ZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFr
KToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bmV4dEJyZWFrYWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGlu
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQnJlYWthYmxlKToKKwogMjAxMS0wMi0xOCAgQW5k
cmV5IEFkYWlraW4gIDxhYW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
UGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4
dEJyZWFrSXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gNzg5OTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw4ICsyMSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCiAKKyNpbmNsdWRlIDxQYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8UXRDb3JlL3F0ZXh0Ym91bmRhcnlmaW5kZXIuaD4KICNpbmNsdWRlIDxxZGVidWcu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKIC8vICNkZWZpbmUgREVCVUdf
VEVYVF9JVEVSQVRPUlMKICNpZmRlZiBERUJVR19URVhUX0lURVJBVE9SUwpAQCAtNDMsMTAgKzQ1
LDEyIEBACiAKICAgICBjbGFzcyBUZXh0QnJlYWtJdGVyYXRvciA6IHB1YmxpYyBRVGV4dEJvdW5k
YXJ5RmluZGVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKFFUZXh0
Qm91bmRhcnlGaW5kZXI6OkJvdW5kYXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBp
bnQgbGVuZ3RoKQorICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcihRVGV4dEJvdW5kYXJ5RmluZGVy
OjpCb3VuZGFyeVR5cGUgdHlwZSwgY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgUGFz
c1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5hbFRleHQgPSAwKQogICAgICAgICAgICAgOiBRVGV4
dEJvdW5kYXJ5RmluZGVyKHR5cGUsIChjb25zdCBRQ2hhciopc3RyaW5nLCBsZW5ndGgsIGJ1ZmZl
ciwgc2l6ZW9mKGJ1ZmZlcikpCiAgICAgICAgICAgICAsIGxlbmd0aChsZW5ndGgpCi0gICAgICAg
ICAgICAsIHN0cmluZyhzdHJpbmcpIHt9CisgICAgICAgICAgICAsIHN0cmluZyhzdHJpbmcpCisg
ICAgICAgICAgICAsIG1fb3JpZ2luYWxTdHJpbmcob3JpZ2luYWxUZXh0KQorICAgICAgICAgICAg
e30KICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoKQogICAgICAgICAgICAgOiBRVGV4dEJvdW5k
YXJ5RmluZGVyKCkKICAgICAgICAgICAgICwgbGVuZ3RoKDApCkBAIC01NCwyMCArNTgsMjEgQEAK
IAogICAgICAgICBpbnQgbGVuZ3RoOwogICAgICAgICBjb25zdCBVQ2hhciogc3RyaW5nOworICAg
ICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9vcmlnaW5hbFN0cmluZzsKICAgICB9OwogCi0gICAg
VGV4dEJyZWFrSXRlcmF0b3IqIHNldFVwSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3ImIGl0ZXJh
dG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpCb3VuZGFyeVR5cGUgdHlwZSwgY29uc3QgVUNoYXIq
IHN0cmluZywgaW50IGxlbmd0aCkKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRv
cihUZXh0QnJlYWtJdGVyYXRvciYgaXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkJvdW5k
YXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCA9IDApCiAgICAgewogICAgICAgICBpZiAoIXN0cmlu
ZyB8fCAhbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgaWYgKGl0ZXJh
dG9yLmlzVmFsaWQoKSAmJiB0eXBlID09IGl0ZXJhdG9yLnR5cGUoKSAmJiBsZW5ndGggPT0gaXRl
cmF0b3IubGVuZ3RoCi0gICAgICAgICAgICAmJiBtZW1jbXAoc3RyaW5nLCBpdGVyYXRvci5zdHJp
bmcsIGxlbmd0aCkgPT0gMCkgeworICAgICAgICAgICAgJiYgKHN0cmluZyA9PSBpdGVyYXRvci5z
dHJpbmcpICYmIG9yaWdpbmFsVGV4dCAmJiAoaXRlcmF0b3IubV9vcmlnaW5hbFN0cmluZyA9PSBv
cmlnaW5hbFRleHQpKSB7CiAgICAgICAgICAgICBpdGVyYXRvci50b1N0YXJ0KCk7CiAgICAgICAg
ICAgICByZXR1cm4gJml0ZXJhdG9yOwogICAgICAgICB9CiAKLSAgICAgICAgaXRlcmF0b3IgPSBU
ZXh0QnJlYWtJdGVyYXRvcih0eXBlLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIGl0ZXJhdG9y
ID0gVGV4dEJyZWFrSXRlcmF0b3IodHlwZSwgc3RyaW5nLCBsZW5ndGgsIG9yaWdpbmFsVGV4dCk7
CiAKICAgICAgICAgcmV0dXJuICZpdGVyYXRvcjsKICAgICB9CkBAIC04OSwxMCArOTQsMTAgQEAK
ICAgICAgICAgcmV0dXJuIGNoYXJhY3RlckJyZWFrSXRlcmF0b3Ioc3RyaW5nLCBsZW5ndGgpOwog
ICAgIH0KIAotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBV
Q2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFN0
cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCkKICAgICB7CiAgICAgICAgIHN0YXRpYyBUZXh0QnJlYWtJ
dGVyYXRvciBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICAgICAgcmV0dXJuIHNldFVwSXRl
cmF0b3Ioc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUs
IHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHNldFVwSXRlcmF0b3Ioc3RhdGljTGlu
ZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUsIHN0cmluZywgbGVuZ3Ro
LCBvcmlnaW5hbFRleHQpOwogICAgIH0KIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5j
ZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRCcmVha0l0ZXJhdG9yR3RrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0QnJlYWtJ
dGVyYXRvckd0ay5jcHAJKHJldmlzaW9uIDc4OTk5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw5ICsyNSwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGV4dEJyZWFr
SXRlcmF0b3IuaCIKLQorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KICNpbmNsdWRl
ICJHT3duUHRyLmgiCisjaW5jbHVkZSA8UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHBhbmdvL3Bh
bmdvLmg+CisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKICNkZWZpbmUgVVRGOF9JU19TVVJST0dB
VEUoY2hhcmFjdGVyKSAoY2hhcmFjdGVyID49IDB4MTAwMDAgJiYgY2hhcmFjdGVyIDw9IDB4MTBG
RkZGKQpAQCAtMjM5LDcgKzI0MSw3IEBACiAgICAgcmV0dXJuIHNldFVwSXRlcmF0b3IoY3JlYXRl
ZFdvcmRCcmVha0l0ZXJhdG9yLCBzdGF0aWNXb3JkQnJlYWtJdGVyYXRvciwgVUJSS19XT1JELCBz
dHJpbmcsIGxlbmd0aCk7CiB9CiAKLVRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRv
cihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorVGV4dEJyZWFrSXRlcmF0b3IqIGxp
bmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgsIFBhc3NSZWZQ
dHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0ID0gMCkKIHsKICAgICBzdGF0aWMgYm9vbCBjcmVh
dGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0
b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJKHJldmlzaW9uIDc4
OTk5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklD
VS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAKICAgICAgICAgc3RhdGljV29y
ZEJyZWFrSXRlcmF0b3IsIFVCUktfV09SRCwgc3RyaW5nLCBsZW5ndGgpOwogfQogCi1UZXh0QnJl
YWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxl
bmd0aCkKK1RleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciog
c3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCkK
IHsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKICAg
ICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aAkocmV2aXNpb24gNzg5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRC
cmVha0l0ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDggQEAKICNpZm5kZWYg
VGV4dEJyZWFrSXRlcmF0b3JfaAogI2RlZmluZSBUZXh0QnJlYWtJdGVyYXRvcl9oCiAKKyNpbmNs
dWRlIDxQYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogI2lu
Y2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDMsNyArNDUsNyBAQAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CiAKICAgICBUZXh0QnJlYWtJdGVyYXRvciog
d29yZEJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKLSAgICBUZXh0QnJl
YWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsK
KyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCA9IDApOwogICAg
IFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoKTsKIAogICAgIGludCB0ZXh0QnJlYWtGaXJzdChUZXh0QnJlYWtJdGVyYXRvciop
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCShyZXZpc2lv
biA3ODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1NCw3ICsxNTQsNyBAQAogfQogI2VuZGlmCiAKLWludCBuZXh0QnJl
YWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0
cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWspCitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0
IFVDaGFyKiBzdHIsIGludCBwb3MsIGludCBsZW4sIGJvb2wgdHJlYXROb0JyZWFrU3BhY2VBc0Jy
ZWFrLCAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5hbFRleHQpCiB7CiAjaWYgIVBMQVRG
T1JNKE1BQykgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpCiAgICAgVGV4dEJyZWFrSXRl
cmF0b3IqIGJyZWFrSXRlcmF0b3IgPSAwOwpAQCAtMTcyLDcgKzE3Miw3IEBACiAgICAgICAgICAg
ICBpZiAobmV4dEJyZWFrIDwgaSAmJiBpKSB7CiAjaWYgIVBMQVRGT1JNKE1BQykgfHwgIWRlZmlu
ZWQoQlVJTERJTkdfT05fVElHRVIpCiAgICAgICAgICAgICAgICAgaWYgKCFicmVha0l0ZXJhdG9y
KQotICAgICAgICAgICAgICAgICAgICBicmVha0l0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3Io
c3RyLCBsZW4pOworICAgICAgICAgICAgICAgICAgICBicmVha0l0ZXJhdG9yID0gbGluZUJyZWFr
SXRlcmF0b3Ioc3RyLCBsZW4sIG9yaWdpbmFsVGV4dCk7CiAgICAgICAgICAgICAgICAgaWYgKGJy
ZWFrSXRlcmF0b3IpCiAgICAgICAgICAgICAgICAgICAgIG5leHRCcmVhayA9IHRleHRCcmVha0Zv
bGxvd2luZyhicmVha0l0ZXJhdG9yLCBpIC0gMSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHJldmlzaW9uIDc4OTk5KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDE4ICsyMSwy
MCBAQAogI2lmbmRlZiBicmVha19saW5lc19oCiAjZGVmaW5lIGJyZWFrX2xpbmVzX2gKIAotI2lu
Y2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KKyNpbmNsdWRlIDxQYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL1Vu
aWNvZGUuaD4gCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGludCBuZXh0QnJlYWthYmxl
UG9zaXRpb24oY29uc3QgVUNoYXIqLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIGJyZWFrTkJTUCA9
IGZhbHNlKTsKK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqLCBpbnQgcG9z
LCBpbnQgbGVuLCBib29sIGJyZWFrTkJTUCA9IGZhbHNlLCAgUGFzc1JlZlB0cjxTdHJpbmdJbXBs
PiBvcmlnaW5hbFRleHQgPSAwKTsKIAotICAgIGlubGluZSBib29sIGlzQnJlYWthYmxlKGNvbnN0
IFVDaGFyKiBzdHIsIGludCBwb3MsIGludCBsZW4sIGludCYgbmV4dEJyZWFrYWJsZSwgYm9vbCBi
cmVha05CU1AgPSBmYWxzZSkKLSAgICB7CitpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShjb25zdCBV
Q2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJl
YWtOQlNQID0gZmFsc2UsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0ID0gMCkK
K3sKICAgICAgICAgaWYgKHBvcyA+IG5leHRCcmVha2FibGUpCi0gICAgICAgICAgICBuZXh0QnJl
YWthYmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uKHN0ciwgcG9zLCBsZW4sIGJyZWFrTkJTUCk7
CisgICAgICAgICAgICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uKHN0ciwg
cG9zLCBsZW4sIGJyZWFrTkJTUCwgb3JpZ2luYWxUZXh0KTsKICAgICAgICAgcmV0dXJuIHBvcyA9
PSBuZXh0QnJlYWthYmxlOwotICAgIH0KK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcAkocmV2aXNpb24gNzg5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY1NCw2ICsxNjU0LDcg
QEAKICAgICAgICAgICAgIGludCBzdHJsZW4gPSB0LT50ZXh0TGVuZ3RoKCk7CiAgICAgICAgICAg
ICBpbnQgbGVuID0gc3RybGVuIC0gcG9zOwogICAgICAgICAgICAgY29uc3QgVUNoYXIqIHN0ciA9
IHQtPmNoYXJhY3RlcnMoKTsKKyAgICAgICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5h
bFRleHQgPSB0LT5vcmlnaW5hbFRleHQoKTsKIAogICAgICAgICAgICAgY29uc3QgRm9udCYgZiA9
IHN0eWxlLT5mb250KCk7CiAgICAgICAgICAgICBib29sIGlzRml4ZWRQaXRjaCA9IGYuaXNGaXhl
ZFBpdGNoKCk7CkBAIC0xNzIzLDcgKzE3MjQsNyBAQAogICAgICAgICAgICAgICAgICAgICBtaWRX
b3JkQnJlYWsgPSB3ICsgd3JhcFcgKyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAo
Y3VycldTICE9IFBSRSAmJiAhYXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVu
LCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhl
bnNOb25lIHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAg
ICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJXUyAhPSBQUkUg
JiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBwb3MsIHN0cmxlbiwgbmV4dEJyZWFrYWJs
ZSwgYnJlYWtOQlNQLCBvcmlnaW5hbFRleHQpICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhl
bnNOb25lIHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CiAKICAgICAg
ICAgICAgICAgICBpZiAoYmV0d2VlbldvcmRzIHx8IG1pZFdvcmRCcmVhaykgewogICAgICAgICAg
ICAgICAgICAgICBib29sIHN0b3BwZWRJZ25vcmluZ1NwYWNlcyA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83180</attachid>
            <date>2011-02-21 10:25:17 -0800</date>
            <delta_ts>2011-02-21 10:36:14 -0800</delta_ts>
            <desc>Using RefPtr&apos;s to safely reuse textiterators</desc>
            <filename>iter_cache10.diff</filename>
            <type>text/plain</type>
            <size>10704</size>
            <attacher name="chris reiss">christopher.reiss</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MDAwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDItMTggIGNocmlzIHJl
aXNzICA8Y2hyaXN0b3BoZXIucmVpc3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW52YWxpZCBwb2ludGVyIGFjY2VzcyAm
IGluY29tcGxldGUgbWVtY21wIGluIHNldFVwSXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Njk1CisKKyAgICAgICAgRW5hYmxlIHRoZSBz
YWZlIHJlY3ljbGluZyBvZiBUZXh0QnJlYWtJdGVyYXRvcnMgYnkgcGFzc2luZyBhIHJlZmVyZW5j
ZSAKKyAgICAgICAgdG8gdGhlIHN0cmluZyB0aGV5IG9wZXJhdGUgb24uICBJbiB0aGlzIHBhdGNo
LCB0aGUgcmVmZXJlbmNlIGlzIG9ubHkgdXNlZCB0bworICAgICAgICByZWN5Y2xlIGxpbmVCcmVh
a0l0ZXJhdG9yIGluIHRoZSBRdCBwb3J0IC0gd2hlcmUgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5j
ZSBoaXQgCisgICAgICAgIHdhcyBiZWluZyBpbmN1cnJlZC4gIEl0IGNvdWxkIGJlIHVzZWQgZWxz
ZXdoZXJlIGluIHRoZSBmdXR1cmUgYnkgcGFzc2luZyB0aGlzIHJlZmVyZW5jZQorICAgICAgICBp
biBtb3JlIHBsYWNlcy4KKworICAgICAgICBUaGVyZSBhcmUgbm8gbmV3IHRlc3RzIC0gdGhpcyBp
cyBhIGZpeCB0byBhIHByZXZpb3VzIGF0dGVtcHQgYXQgcmVjeWNsaW5nIAorICAgICAgICB3aGlj
aCB3YXMgbWFuaWZlc3RseSB1bnNhZmUgYnkgbG9va2luZyBhdCB0aGUgY29kZTsgdGhlcmUgd2Fz
IHBvdGVudGlhbCBmb3IgYSBkYW5nbGluZworICAgICAgICBwb2ludGVyIHJlZmVyZW5jZS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2d0ay9UZXh0QnJl
YWtJdGVyYXRvckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaW5lQnJlYWtJdGVyYXRvcik6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRCcmVha0l0ZXJhdG9yOjpUZXh0QnJlYWtJdGVyYXRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRVcEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmxpbmVC
cmVha0l0ZXJhdG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayk6
CisgICAgICAgICogcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om5leHRCcmVha2FibGVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL2JyZWFrX2xpbmVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0JyZWFrYWJsZSk6CisKIDIwMTEtMDItMTggIEFuZHJl
eSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBh
dmVsIEZlbGRtYW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRC
cmVha0l0ZXJhdG9yUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHJldmlzaW9uIDc4OTk5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjEsOCArMjEsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgogCisjaW5jbHVkZSA8UGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPFF0Q29yZS9xdGV4dGJvdW5kYXJ5ZmluZGVyLmg+CiAjaW5jbHVkZSA8cWRlYnVnLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCiAvLyAjZGVmaW5lIERFQlVHX1RF
WFRfSVRFUkFUT1JTCiAjaWZkZWYgREVCVUdfVEVYVF9JVEVSQVRPUlMKQEAgLTQzLDEwICs0NSwx
MiBAQAogCiAgICAgY2xhc3MgVGV4dEJyZWFrSXRlcmF0b3IgOiBwdWJsaWMgUVRleHRCb3VuZGFy
eUZpbmRlciB7CiAgICAgcHVibGljOgotICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcihRVGV4dEJv
dW5kYXJ5RmluZGVyOjpCb3VuZGFyeVR5cGUgdHlwZSwgY29uc3QgVUNoYXIqIHN0cmluZywgaW50
IGxlbmd0aCkKKyAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRCb3VuZGFyeUZpbmRlcjo6
Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgsIFBhc3NS
ZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0ID0gMCkKICAgICAgICAgICAgIDogUVRleHRC
b3VuZGFyeUZpbmRlcih0eXBlLCAoY29uc3QgUUNoYXIqKXN0cmluZywgbGVuZ3RoLCBidWZmZXIs
IHNpemVvZihidWZmZXIpKQogICAgICAgICAgICAgLCBsZW5ndGgobGVuZ3RoKQotICAgICAgICAg
ICAgLCBzdHJpbmcoc3RyaW5nKSB7fQorICAgICAgICAgICAgLCBzdHJpbmcoc3RyaW5nKQorICAg
ICAgICAgICAgLCBtX29yaWdpbmFsU3RyaW5nKG9yaWdpbmFsVGV4dCkKKyAgICAgICAgICAgIHt9
CiAgICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKCkKICAgICAgICAgICAgIDogUVRleHRCb3VuZGFy
eUZpbmRlcigpCiAgICAgICAgICAgICAsIGxlbmd0aCgwKQpAQCAtNTQsMjAgKzU4LDIxIEBACiAK
ICAgICAgICAgaW50IGxlbmd0aDsKICAgICAgICAgY29uc3QgVUNoYXIqIHN0cmluZzsKKyAgICAg
ICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fb3JpZ2luYWxTdHJpbmc7CiAgICAgfTsKIAotICAgIFRl
eHRCcmVha0l0ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yJiBpdGVyYXRv
ciwgUVRleHRCb3VuZGFyeUZpbmRlcjo6Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBz
dHJpbmcsIGludCBsZW5ndGgpCisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHNldFVwSXRlcmF0b3Io
VGV4dEJyZWFrSXRlcmF0b3ImIGl0ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpCb3VuZGFy
eVR5cGUgdHlwZSwgY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBvcmlnaW5hbFRleHQgPSAwKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcg
fHwgIWxlbmd0aCkKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIGlmIChpdGVyYXRv
ci5pc1ZhbGlkKCkgJiYgdHlwZSA9PSBpdGVyYXRvci50eXBlKCkgJiYgbGVuZ3RoID09IGl0ZXJh
dG9yLmxlbmd0aAotICAgICAgICAgICAgJiYgbWVtY21wKHN0cmluZywgaXRlcmF0b3Iuc3RyaW5n
LCBsZW5ndGgpID09IDApIHsKKyAgICAgICAgICAgICYmIChzdHJpbmcgPT0gaXRlcmF0b3Iuc3Ry
aW5nKSAmJiBvcmlnaW5hbFRleHQgJiYgKGl0ZXJhdG9yLm1fb3JpZ2luYWxTdHJpbmcgPT0gb3Jp
Z2luYWxUZXh0KSkgewogICAgICAgICAgICAgaXRlcmF0b3IudG9TdGFydCgpOwogICAgICAgICAg
ICAgcmV0dXJuICZpdGVyYXRvcjsKICAgICAgICAgfQogCi0gICAgICAgIGl0ZXJhdG9yID0gVGV4
dEJyZWFrSXRlcmF0b3IodHlwZSwgc3RyaW5nLCBsZW5ndGgpOworICAgICAgICBpdGVyYXRvciA9
IFRleHRCcmVha0l0ZXJhdG9yKHR5cGUsIHN0cmluZywgbGVuZ3RoLCBvcmlnaW5hbFRleHQpOwog
CiAgICAgICAgIHJldHVybiAmaXRlcmF0b3I7CiAgICAgfQpAQCAtODksMTAgKzk0LDEwIEBACiAg
ICAgICAgIHJldHVybiBjaGFyYWN0ZXJCcmVha0l0ZXJhdG9yKHN0cmluZywgbGVuZ3RoKTsKICAg
ICB9CiAKLSAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZywgaW50IGxlbmd0aCkKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFr
SXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJp
bmdJbXBsPiBvcmlnaW5hbFRleHQpCiAgICAgewogICAgICAgICBzdGF0aWMgVGV4dEJyZWFrSXRl
cmF0b3Igc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7Ci0gICAgICAgIHJldHVybiBzZXRVcEl0ZXJh
dG9yKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBz
dHJpbmcsIGxlbmd0aCk7CisgICAgICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKHN0YXRpY0xpbmVC
cmVha0l0ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBzdHJpbmcsIGxlbmd0aCwg
b3JpZ2luYWxUZXh0KTsKICAgICB9CiAKICAgICBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VC
cmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0QnJlYWtJdGVyYXRvckd0ay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRl
cmF0b3JHdGsuY3BwCShyZXZpc2lvbiA3ODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvZ3RrL1RleHRCcmVha0l0ZXJhdG9yR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUs
OSArMjUsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIlRleHRCcmVha0l0
ZXJhdG9yLmgiCi0KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAjaW5jbHVkZSAi
R093blB0ci5oIgorI2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDxwYW5nby9wYW5n
by5oPgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiAjZGVmaW5lIFVURjhfSVNfU1VSUk9HQVRF
KGNoYXJhY3RlcikgKGNoYXJhY3RlciA+PSAweDEwMDAwICYmIGNoYXJhY3RlciA8PSAweDEwRkZG
RikKQEAgLTIzOSw3ICsyNDEsNyBAQAogICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRX
b3JkQnJlYWtJdGVyYXRvciwgc3RhdGljV29yZEJyZWFrSXRlcmF0b3IsIFVCUktfV09SRCwgc3Ry
aW5nLCBsZW5ndGgpOwogfQogCi1UZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK1RleHRCcmVha0l0ZXJhdG9yKiBsaW5l
QnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCA9IDApCiB7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRl
ZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7CiAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9y
KiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCShyZXZpc2lvbiA3ODk5
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBACiAgICAgICAgIHN0YXRpY1dvcmRC
cmVha0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFr
SXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5n
dGgpCitUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0
cmluZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5hbFRleHQpCiB7
CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7CiAgICAg
c3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgJ
KHJldmlzaW9uIDc4OTk5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJl
YWtJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw4IEBACiAjaWZuZGVmIFRl
eHRCcmVha0l0ZXJhdG9yX2gKICNkZWZpbmUgVGV4dEJyZWFrSXRlcmF0b3JfaAogCisjaW5jbHVk
ZSA8UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KICNpbmNs
dWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQz
LDcgKzQ1LDcgQEAKICAgICBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRv
cihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwogCiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHdv
cmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7Ci0gICAgVGV4dEJyZWFr
SXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7Cisg
ICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50
IGxlbmd0aCwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5hbFRleHQgPSAwKTsKICAgICBU
ZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50
IGxlbmd0aCk7CiAKICAgICBpbnQgdGV4dEJyZWFrRmlyc3QoVGV4dEJyZWFrSXRlcmF0b3IqKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkocmV2aXNpb24g
Nzg5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDcgQEAKIH0KICNlbmRpZgogCi1pbnQgbmV4dEJyZWFr
YWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiBzdHIsIGludCBwb3MsIGludCBsZW4sIGJvb2wgdHJl
YXROb0JyZWFrU3BhY2VBc0JyZWFrKQoraW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBV
Q2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVh
aywgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0KQogewogI2lmICFQTEFURk9S
TShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQogICAgIFRleHRCcmVha0l0ZXJh
dG9yKiBicmVha0l0ZXJhdG9yID0gMDsKQEAgLTE3Miw3ICsxNzIsNyBAQAogICAgICAgICAgICAg
aWYgKG5leHRCcmVhayA8IGkgJiYgaSkgewogI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKQogICAgICAgICAgICAgICAgIGlmICghYnJlYWtJdGVyYXRvcikK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yKHN0
ciwgbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0
ZXJhdG9yKHN0ciwgbGVuLCBvcmlnaW5hbFRleHQpOwogICAgICAgICAgICAgICAgIGlmIChicmVh
a0l0ZXJhdG9yKQogICAgICAgICAgICAgICAgICAgICBuZXh0QnJlYWsgPSB0ZXh0QnJlYWtGb2xs
b3dpbmcoYnJlYWtJdGVyYXRvciwgaSAtIDEpOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9icmVha19saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9icmVha19saW5lcy5oCShyZXZpc2lvbiA3ODk5OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9icmVha19saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxOCArMjEsMjAg
QEAKICNpZm5kZWYgYnJlYWtfbGluZXNfaAogI2RlZmluZSBicmVha19saW5lc19oCiAKLSNpbmNs
dWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CisjaW5jbHVkZSA8UGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmlj
b2RlLmg+IAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBpbnQgbmV4dEJyZWFrYWJsZVBv
c2l0aW9uKGNvbnN0IFVDaGFyKiwgaW50IHBvcywgaW50IGxlbiwgYm9vbCBicmVha05CU1AgPSBm
YWxzZSk7CitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiwgaW50IHBvcywg
aW50IGxlbiwgYm9vbCBicmVha05CU1AgPSBmYWxzZSwgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4g
b3JpZ2luYWxUZXh0ID0gMCk7CiAKLSAgICBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShjb25zdCBV
Q2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJl
YWtOQlNQID0gZmFsc2UpCi0gICAgeworaW5saW5lIGJvb2wgaXNCcmVha2FibGUoY29uc3QgVUNo
YXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgaW50JiBuZXh0QnJlYWthYmxlLCBib29sIGJyZWFr
TkJTUCA9IGZhbHNlLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCA9IDApCit7
CiAgICAgICAgIGlmIChwb3MgPiBuZXh0QnJlYWthYmxlKQotICAgICAgICAgICAgbmV4dEJyZWFr
YWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihzdHIsIHBvcywgbGVuLCBicmVha05CU1ApOwor
ICAgICAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihzdHIsIHBv
cywgbGVuLCBicmVha05CU1AsIG9yaWdpbmFsVGV4dCk7CiAgICAgICAgIHJldHVybiBwb3MgPT0g
bmV4dEJyZWFrYWJsZTsKLSAgICB9Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAJKHJldmlzaW9uIDc4OTk5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NTQsNiArMTY1NCw3IEBA
CiAgICAgICAgICAgICBpbnQgc3RybGVuID0gdC0+dGV4dExlbmd0aCgpOwogICAgICAgICAgICAg
aW50IGxlbiA9IHN0cmxlbiAtIHBvczsKICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBzdHIgPSB0
LT5jaGFyYWN0ZXJzKCk7CisgICAgICAgICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxU
ZXh0ID0gdC0+b3JpZ2luYWxUZXh0KCk7CiAKICAgICAgICAgICAgIGNvbnN0IEZvbnQmIGYgPSBz
dHlsZS0+Zm9udCgpOwogICAgICAgICAgICAgYm9vbCBpc0ZpeGVkUGl0Y2ggPSBmLmlzRml4ZWRQ
aXRjaCgpOwpAQCAtMTcyMyw3ICsxNzI0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgbWlkV29y
ZEJyZWFrID0gdyArIHdyYXBXICsgY2hhcldpZHRoID4gd2lkdGg7CiAgICAgICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1
cnJXUyAhPSBQUkUgJiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBwb3MsIHN0cmxlbiwg
bmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5z
Tm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOworICAgICAgICAg
ICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChjdXJyV1MgIT0gUFJFICYm
ICFhdFN0YXJ0ICYmIGlzQnJlYWthYmxlKHN0ciwgcG9zLCBzdHJsZW4sIG5leHRCcmVha2FibGUs
IGJyZWFrTkJTUCwgb3JpZ2luYWxUZXh0KSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5z
Tm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOwogCiAgICAgICAg
ICAgICAgICAgaWYgKGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83185</attachid>
            <date>2011-02-21 10:40:38 -0800</date>
            <delta_ts>2011-03-18 09:13:55 -0700</delta_ts>
            <desc>Using RefPtr&apos;s to safely reuse textiterators</desc>
            <filename>iter_cache11.diff</filename>
            <type>text/plain</type>
            <size>10702</size>
            <attacher name="chris reiss">christopher.reiss</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MDAwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDItMTggIGNocmlzIHJl
aXNzICA8Y2hyaXN0b3BoZXIucmVpc3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW52YWxpZCBwb2ludGVyIGFjY2VzcyAm
IGluY29tcGxldGUgbWVtY21wIGluIHNldFVwSXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Njk1CisKKyAgICAgICAgRW5hYmxlIHRoZSBz
YWZlIHJlY3ljbGluZyBvZiBUZXh0QnJlYWtJdGVyYXRvcnMgYnkgcGFzc2luZyBhIHJlZmVyZW5j
ZSAKKyAgICAgICAgdG8gdGhlIHN0cmluZyB0aGV5IG9wZXJhdGUgb24uIEluIHRoaXMgcGF0Y2gs
IHRoZSByZWZlcmVuY2UgaXMgb25seSB1c2VkIHRvCisgICAgICAgIHJlY3ljbGUgbGluZUJyZWFr
SXRlcmF0b3IgaW4gdGhlIFF0IHBvcnQgLSB3aGVyZSBhIHNpZ25pZmljYW50IHBlcmZvcm1hbmNl
IGhpdCAKKyAgICAgICAgd2FzIGJlaW5nIGluY3VycmVkLiBJdCBjb3VsZCBiZSB1c2VkIGVsc2V3
aGVyZSBpbiB0aGUgZnV0dXJlIGJ5IHBhc3NpbmcgdGhpcyByZWZlcmVuY2UKKyAgICAgICAgaW4g
bW9yZSBwbGFjZXMuCisKKyAgICAgICAgVGhlcmUgYXJlIG5vIG5ldyB0ZXN0cyAtIHRoaXMgaXMg
YSBmaXggdG8gYSBwcmV2aW91cyBhdHRlbXB0IGF0IHJlY3ljbGluZyAKKyAgICAgICAgd2hpY2gg
d2FzIG1hbmlmZXN0bHkgdW5zYWZlIGJ5IGxvb2tpbmcgYXQgdGhlIGNvZGU7IHRoZXJlIHdhcyBw
b3RlbnRpYWwgZm9yIGEgZGFuZ2xpbmcKKyAgICAgICAgcG9pbnRlciByZWZlcmVuY2UuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjps
aW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFr
SXRlcmF0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGluZUJyZWFrSXRlcmF0b3IpOgor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0QnJlYWtJdGVyYXRvcjo6VGV4dEJyZWFrSXRlcmF0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0VXBJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpsaW5lQnJl
YWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWspOgor
ICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpu
ZXh0QnJlYWthYmxlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5o
OgorICAgICAgICAoV2ViQ29yZTo6aXNCcmVha2FibGUpOgorCiAyMDExLTAyLTE4ICBBbmRyZXkg
QWRhaWtpbiAgPGFhbmRyZXlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZl
bCBGZWxkbWFuLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJl
YWtJdGVyYXRvclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCShyZXZpc2lvbiA3ODk5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDggKzIxLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKIAorI2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDxRdENvcmUvcXRleHRib3VuZGFyeWZpbmRlci5oPgogI2luY2x1ZGUgPHFkZWJ1Zy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogLy8gI2RlZmluZSBERUJVR19URVhU
X0lURVJBVE9SUwogI2lmZGVmIERFQlVHX1RFWFRfSVRFUkFUT1JTCkBAIC00MywxMCArNDUsMTIg
QEAKIAogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFUZXh0Qm91bmRhcnlG
aW5kZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRCb3Vu
ZGFyeUZpbmRlcjo6Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCisgICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKFFUZXh0Qm91bmRhcnlGaW5kZXI6OkJv
dW5kYXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCA9IDApCiAgICAgICAgICAgICA6IFFUZXh0Qm91
bmRhcnlGaW5kZXIodHlwZSwgKGNvbnN0IFFDaGFyKilzdHJpbmcsIGxlbmd0aCwgYnVmZmVyLCBz
aXplb2YoYnVmZmVyKSkKICAgICAgICAgICAgICwgbGVuZ3RoKGxlbmd0aCkKLSAgICAgICAgICAg
ICwgc3RyaW5nKHN0cmluZykge30KKyAgICAgICAgICAgICwgc3RyaW5nKHN0cmluZykKKyAgICAg
ICAgICAgICwgbV9vcmlnaW5hbFN0cmluZyhvcmlnaW5hbFRleHQpCisgICAgICAgICAgICB7fQog
ICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcigpCiAgICAgICAgICAgICA6IFFUZXh0Qm91bmRhcnlG
aW5kZXIoKQogICAgICAgICAgICAgLCBsZW5ndGgoMCkKQEAgLTU0LDIwICs1OCwyMSBAQAogCiAg
ICAgICAgIGludCBsZW5ndGg7CiAgICAgICAgIGNvbnN0IFVDaGFyKiBzdHJpbmc7CisgICAgICAg
IFJlZlB0cjxTdHJpbmdJbXBsPiBtX29yaWdpbmFsU3RyaW5nOwogICAgIH07CiAKLSAgICBUZXh0
QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciYgaXRlcmF0b3Is
IFFUZXh0Qm91bmRhcnlGaW5kZXI6OkJvdW5kYXJ5VHlwZSB0eXBlLCBjb25zdCBVQ2hhciogc3Ry
aW5nLCBpbnQgbGVuZ3RoKQorICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKFRl
eHRCcmVha0l0ZXJhdG9yJiBpdGVyYXRvciwgUVRleHRCb3VuZGFyeUZpbmRlcjo6Qm91bmRhcnlU
eXBlIHR5cGUsIGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gb3JpZ2luYWxUZXh0ID0gMCkKICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nIHx8
ICFsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBpZiAoaXRlcmF0b3Iu
aXNWYWxpZCgpICYmIHR5cGUgPT0gaXRlcmF0b3IudHlwZSgpICYmIGxlbmd0aCA9PSBpdGVyYXRv
ci5sZW5ndGgKLSAgICAgICAgICAgICYmIG1lbWNtcChzdHJpbmcsIGl0ZXJhdG9yLnN0cmluZywg
bGVuZ3RoKSA9PSAwKSB7CisgICAgICAgICAgICAmJiAoc3RyaW5nID09IGl0ZXJhdG9yLnN0cmlu
ZykgJiYgb3JpZ2luYWxUZXh0ICYmIChpdGVyYXRvci5tX29yaWdpbmFsU3RyaW5nID09IG9yaWdp
bmFsVGV4dCkpIHsKICAgICAgICAgICAgIGl0ZXJhdG9yLnRvU3RhcnQoKTsKICAgICAgICAgICAg
IHJldHVybiAmaXRlcmF0b3I7CiAgICAgICAgIH0KIAotICAgICAgICBpdGVyYXRvciA9IFRleHRC
cmVha0l0ZXJhdG9yKHR5cGUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgaXRlcmF0b3IgPSBU
ZXh0QnJlYWtJdGVyYXRvcih0eXBlLCBzdHJpbmcsIGxlbmd0aCwgb3JpZ2luYWxUZXh0KTsKIAog
ICAgICAgICByZXR1cm4gJml0ZXJhdG9yOwogICAgIH0KQEAgLTg5LDEwICs5NCwxMCBAQAogICAg
ICAgICByZXR1cm4gY2hhcmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxlbmd0aCk7CiAgICAg
fQogCi0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFy
KiBzdHJpbmcsIGludCBsZW5ndGgpCisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0
ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5n
SW1wbD4gb3JpZ2luYWxUZXh0KQogICAgIHsKICAgICAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJh
dG9yIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwotICAgICAgICByZXR1cm4gc2V0VXBJdGVyYXRv
cihzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgUVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3Ry
aW5nLCBsZW5ndGgpOworICAgICAgICByZXR1cm4gc2V0VXBJdGVyYXRvcihzdGF0aWNMaW5lQnJl
YWtJdGVyYXRvciwgUVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgsIG9y
aWdpbmFsVGV4dCk7CiAgICAgfQogCiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRCcmVha0l0ZXJh
dG9yR3RrLmNwcAkocmV2aXNpb24gNzg5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2d0ay9UZXh0QnJlYWtJdGVyYXRvckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkg
KzI1LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVy
YXRvci5oIgotCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogI2luY2x1ZGUgIkdP
d25QdHIuaCIKKyNpbmNsdWRlIDxQYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8cGFuZ28vcGFuZ28u
aD4KKwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogI2RlZmluZSBVVEY4X0lTX1NVUlJPR0FURShj
aGFyYWN0ZXIpIChjaGFyYWN0ZXIgPj0gMHgxMDAwMCAmJiBjaGFyYWN0ZXIgPD0gMHgxMEZGRkYp
CkBAIC0yMzksNyArMjQxLDcgQEAKICAgICByZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkV29y
ZEJyZWFrSXRlcmF0b3IsIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmlu
ZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCitUZXh0QnJlYWtJdGVyYXRvciogbGluZUJy
ZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBvcmlnaW5hbFRleHQgPSAwKQogewogICAgIHN0YXRpYyBib29sIGNyZWF0ZWRM
aW5lQnJlYWtJdGVyYXRvciA9IGZhbHNlOwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciog
c3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2aXNpb24gNzg5OTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQAogICAgICAgICBzdGF0aWNXb3JkQnJl
YWtJdGVyYXRvciwgVUJSS19XT1JELCBzdHJpbmcsIGxlbmd0aCk7CiB9CiAKLVRleHRCcmVha0l0
ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3Ro
KQorVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJp
bmcsIGludCBsZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0KQogewog
ICAgIHN0YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciA9IGZhbHNlOwogICAgIHN0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCShy
ZXZpc2lvbiA3ODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsOCBAQAogI2lmbmRlZiBUZXh0
QnJlYWtJdGVyYXRvcl9oCiAjZGVmaW5lIFRleHRCcmVha0l0ZXJhdG9yX2gKIAorI2luY2x1ZGUg
PFBhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAjaW5jbHVk
ZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3
ICs0NSw3IEBACiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3Io
Y29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiB3b3Jk
QnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwotICAgIFRleHRCcmVha0l0
ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAg
IFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0ID0gMCk7CiAgICAgVGV4
dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgpOwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJldmlzaW9uIDc4
OTk5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU0LDcgKzE1NCw3IEBACiB9CiAjZW5kaWYKIAotaW50IG5leHRCcmVha2Fi
bGVQb3NpdGlvbihjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIHRyZWF0
Tm9CcmVha1NwYWNlQXNCcmVhaykKK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNo
YXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWss
ICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCkKIHsKICNpZiAhUExBVEZPUk0o
TUFDKSB8fCAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikKICAgICBUZXh0QnJlYWtJdGVyYXRv
ciogYnJlYWtJdGVyYXRvciA9IDA7CkBAIC0xNzIsNyArMTcyLDcgQEAKICAgICAgICAgICAgIGlm
IChuZXh0QnJlYWsgPCBpICYmIGkpIHsKICNpZiAhUExBVEZPUk0oTUFDKSB8fCAhZGVmaW5lZChC
VUlMRElOR19PTl9USUdFUikKICAgICAgICAgICAgICAgICBpZiAoIWJyZWFrSXRlcmF0b3IpCi0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrSXRlcmF0b3IgPSBsaW5lQnJlYWtJdGVyYXRvcihzdHIs
IGxlbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrSXRlcmF0b3IgPSBsaW5lQnJlYWtJdGVy
YXRvcihzdHIsIGxlbiwgb3JpZ2luYWxUZXh0KTsKICAgICAgICAgICAgICAgICBpZiAoYnJlYWtJ
dGVyYXRvcikKICAgICAgICAgICAgICAgICAgICAgbmV4dEJyZWFrID0gdGV4dEJyZWFrRm9sbG93
aW5nKGJyZWFrSXRlcmF0b3IsIGkgLSAxKTsKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvYnJlYWtfbGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvYnJlYWtfbGluZXMuaAkocmV2aXNpb24gNzg5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvYnJlYWtfbGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTggKzIxLDIwIEBA
CiAjaWZuZGVmIGJyZWFrX2xpbmVzX2gKICNkZWZpbmUgYnJlYWtfbGluZXNfaAogCi0jaW5jbHVk
ZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgorI2luY2x1ZGUgPFBhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29k
ZS5oPiAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgaW50IG5leHRCcmVha2FibGVQb3Np
dGlvbihjb25zdCBVQ2hhciosIGludCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0gZmFs
c2UpOworaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciosIGludCBwb3MsIGlu
dCBsZW4sIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UsICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9y
aWdpbmFsVGV4dCA9IDApOwogCi0gICAgaW5saW5lIGJvb2wgaXNCcmVha2FibGUoY29uc3QgVUNo
YXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgaW50JiBuZXh0QnJlYWthYmxlLCBib29sIGJyZWFr
TkJTUCA9IGZhbHNlKQotICAgIHsKK2lubGluZSBib29sIGlzQnJlYWthYmxlKGNvbnN0IFVDaGFy
KiBzdHIsIGludCBwb3MsIGludCBsZW4sIGludCYgbmV4dEJyZWFrYWJsZSwgYm9vbCBicmVha05C
U1AgPSBmYWxzZSwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5hbFRleHQgPSAwKQorewog
ICAgICAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKLSAgICAgICAgICAgIG5leHRCcmVha2Fi
bGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24oc3RyLCBwb3MsIGxlbiwgYnJlYWtOQlNQKTsKKyAg
ICAgICAgICAgIG5leHRCcmVha2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24oc3RyLCBwb3Ms
IGxlbiwgYnJlYWtOQlNQLCBvcmlnaW5hbFRleHQpOwogICAgICAgICByZXR1cm4gcG9zID09IG5l
eHRCcmVha2FibGU7Ci0gICAgfQorfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCShyZXZpc2lvbiA3ODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjU0LDYgKzE2NTQsNyBAQAog
ICAgICAgICAgICAgaW50IHN0cmxlbiA9IHQtPnRleHRMZW5ndGgoKTsKICAgICAgICAgICAgIGlu
dCBsZW4gPSBzdHJsZW4gLSBwb3M7CiAgICAgICAgICAgICBjb25zdCBVQ2hhciogc3RyID0gdC0+
Y2hhcmFjdGVycygpOworICAgICAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4
dCA9IHQtPm9yaWdpbmFsVGV4dCgpOwogCiAgICAgICAgICAgICBjb25zdCBGb250JiBmID0gc3R5
bGUtPmZvbnQoKTsKICAgICAgICAgICAgIGJvb2wgaXNGaXhlZFBpdGNoID0gZi5pc0ZpeGVkUGl0
Y2goKTsKQEAgLTE3MjMsNyArMTcyNCw3IEBACiAgICAgICAgICAgICAgICAgICAgIG1pZFdvcmRC
cmVhayA9IHcgKyB3cmFwVyArIGNoYXJXaWR0aCA+IHdpZHRoOwogICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChjdXJy
V1MgIT0gUFJFICYmICFhdFN0YXJ0ICYmIGlzQnJlYWthYmxlKHN0ciwgcG9zLCBzdHJsZW4sIG5l
eHRCcmVha2FibGUsIGJyZWFrTkJTUCkgJiYgKHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05v
bmUgfHwgKHBvcyAmJiBzdHJbcG9zIC0gMV0gIT0gc29mdEh5cGhlbikpKTsKKyAgICAgICAgICAg
ICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9IFBSRSAmJiAh
YXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0QnJlYWthYmxlLCBi
cmVha05CU1AsIG9yaWdpbmFsVGV4dCkgJiYgKHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05v
bmUgfHwgKHBvcyAmJiBzdHJbcG9zIC0gMV0gIT0gc29mdEh5cGhlbikpKTsKIAogICAgICAgICAg
ICAgICAgIGlmIChiZXR3ZWVuV29yZHMgfHwgbWlkV29yZEJyZWFrKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgc3RvcHBlZElnbm9yaW5nU3BhY2VzID0gZmFsc2U7Cg==
</data>
<flag name="review"
          id="74947"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>