<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Peter,<br>
<br>
<div class="moz-cite-prefix">On 19/04/2017 15:58, Der PCFreak wrote:<br>
</div>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">Hi Jules,</p>
<p style="margin: 0px 0px 1.2em ! important;">I tried the new
version today on a blank CentOS 7 system. First of all, great
work. Setup was nearly perfect. Here some notes.<br>
I had the following error during setup multiple times:</p>
<pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;">hostname: Temporary failure in name resolution
</code></pre>
</div>
</blockquote>
Looks more like you haven't got any DNS entry for the server or
something like that.<br>
<br>
I didn't modify anything during my test blank CentOS 7 installation.
Mine picks up the hostname and so on via DHCP.<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">and I think this
happened because the hostname was not set in <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">/etc/hosts</code>
or because the hostname that the <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">hostname</code>
command shows is not an FQDN.<br>
</p>
</div>
</blockquote>
The hostname command should only produce the FQDN with "hostname
--long" or "hostname --fqdn".<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;"> I will verify
that as soon as I can.<br>
Because of the name resolution error the entry for <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">ServerName</code>
in <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">/etc/httpd/conf.d/zendto.conf</code>
and <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">/etc/httpd/conf.d/zendto-ssl.conf</code>
was empty and<br>
I had to add it myself. - Not a big problem but maybe the
installer could be optimized to catch that problem of an unset
hostname in the future?</p>
</div>
</blockquote>
On your system, as it stands at the moment, what is the output from
each of these commands?<br>
1. hostname<br>
2. hostname --short<br>
3. hostname --fqdn<br>
4. hostname --domain<br>
<br>
<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">I found a typo in
<code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">preferences.php</code>
:</p>
<pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;">WRONG // If Windows web browsers have problems with the upload progrss bar
CORRECT // If Windows web browsers have problems with the upload progress bar
</code></pre>
</div>
</blockquote>
That's easy for me to fix! :-)<br>
And while I was there, I noticed I forgot to remove the note about
the "real" progress bar not working on Ubuntu 16 or PHP 7. It now
works fine on that, so I've removed that note.<br>
<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">I also think the <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">validEmailRegexp</code>
could be optimized. I tested the regex at <a
moz-do-not-send="true" href="https://regex101.com/">regex101.com</a>
(btw. a very cool site) and<br>
it also matches when there is one or multiple dots <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">.</code>
at the end of the email address.<br>
Maybe it would be better to make it look like this:</p>
<pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;">'validEmailRegexp' => '/^([a-zA-Z0-9][a-zA-Z0-9\.\_\-\+\&\']*)\@([a-zA-Z0-9][a-zA-Z0-9\_\-\.]+)([a-zA-Z0-9].)$/i',
</code></pre>
</div>
</blockquote>
You actually can't do it perfectly with a regexp, so don't bother
trying to do it perfectly.<br>
<a class="moz-txt-link-freetext" href="https://davidcel.is/posts/stop-validating-email-addresses-with-regex/">https://davidcel.is/posts/stop-validating-email-addresses-with-regex/</a><br>
<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">or use PHP <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">filter_var()</code>
function with <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">filter_var($email, FILTER_VALIDATE_EMAIL)</code><br>
(found via <a moz-do-not-send="true"
href="http://stackoverflow.com/questions/5855811/how-to-validate-an-email-in-php">Stackoverflow</a>)</p>
</div>
</blockquote>
Yes, I could do that, but then people wouldn't be able to tweak it.
But then again, they probably shouldn't be trying to, so I think
I'll swap the regexp check to that instead.<br>
Thanks for the suggestion!<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">Not big stuff but
I think only reporting all pieces of problems could make this
software better (and it is really good already).</p>
</div>
</blockquote>
Thank you! All appreciated.<br>
<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">A question:<br>
On fully updated latest CentOS 7 the installer recompiles PHP
5.x for ZendTo. Wasn’t big file support already in there in
never versions?<br>
</p>
</div>
</blockquote>
No. Not properly implemented until PHP 7.<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;"> And if not would
the installer detect if I would enable the <a
moz-do-not-send="true" href="https://ius.io/GettingStarted/">IUS
repository</a> which provides <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">php71u</code>
and<br>
would this make the recompiling of PHP unnecessary?<br>
I am asking this because I am thinking about upgrading the
system in the future without the need of recompiling PHP all
the time.<br>
Maybe I get something wrong here, but please correct me, if
so.</p>
</div>
</blockquote>
A lot of corporates and big organisations wouldn't encourage the use
of 3rd party repos any more than *absolutely* necessary.<br>
If you pay for RedHat support they certainly aren't going to be keen
on you replacing PHP with a totally different version (which is not
100% backward compatible with PHP 5), as you are likely to break
things as a result.<br>
<br>
So while replacing PHP 5 with PHP 7 might work well enough for you,
it's certainly not an upgrade I would attempt on a production
service without an *awful* lot of testing first. And by doing it, I
know that I would almost certainly invalidate/damage any support
contract I had with anyone.<br>
<br>
If you really want to use the IUS version, you could add the repo
before starting the installer, then run just stage 1, then install
your favourite PHP including the required modules, then run the
install.sh again and tell it not to do the "rebuild PHP" stage. You
can run the separate stages of the installation on their own if you
want to. Take a peek in install.ZendTo/CentOS-RedHat/ and you'll see
what I mean. Provided your current directory is either in
"install.ZendTo" or in "install.ZendTo/CentOS-Redhat" (or
"install.ZendTo/Ubuntu") then you can directly run individual stages
just fine.<br>
<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">Hint:<br>
A colleague of mine does ZendTo as its project for his
master’s project and we will run the installer many many times
the next weeks.<br>
</p>
</div>
</blockquote>
What sort of project? What is he actually doing for his Master's
project (what is the topic of the project)?<br>
And out of interest, what sort of Master's and where?<br>
<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;"> I will constantly
update you on anything more we find.</p>
<p style="margin: 0px 0px 1.2em ! important;">Thank you again
for your good work.</p>
</div>
</blockquote>
Thanks!<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">Kind regards</p>
<p style="margin: 0px 0px 1.2em ! important;">Peter</p>
<p style="margin: 0px 0px 1.2em ! important;">PS:<br>
If ths email does not render correctly give me feedback. I
used the Toggle Markdown Extension for Thunderbird to create
it.</p>
</div>
</blockquote>
It's fine, don't worry.<br>
<br>
Cheers,<br>
Jules.<br>
<br>
<blockquote
cite="mid:2c14ccb0-fd73-6125-5518-c5816d4fb3f6@pcfreak.de"
type="cite">
<div class="markdown-here-wrapper" data-md-url="Thunderbird"
style="">
<p style="margin: 0px 0px 1.2em ! important;">On 17.04.2017
17:42, Jules wrote:</p>
<div class="markdown-here-exclude">
<blockquote type="cite"
cite="mid:09d0868b-4241-9b63-d234-7aac46b18008@Zend.To">
<pre wrap="">Hi folks!
I hope you have all had a good Easter/weekend.
Enough of the betas, I've finally decided to make a full "production"
release of ZendTo.
So this is version 4.27-1.
There are lots of improvements, changes and fixes since the last
production release (4.20). The full Change Log since then is at the end
of this email, but the highlights are:-
* Full support for HTML email, along with TLS encryption, SMTP auth and
much simpler email configuration. Postfix or sendmail are no longer
required.
* Improved "New Dropoff" forms, with a new progress bar that works on
Ubuntu 16, PHP 7 and future versions as it is entirely implemented in
the browser.
* Reminder emails are much improved (for drop-offs that are about to
expire but no one has picked up). These can also be disabled.
* You can stop users outside your organisation sending files to users
inside, unless the external users have explicitly been sent a Drop-off
Request.
* 'upgrade_zendto_conf' tool added in addition to
'upgrade_preferences_php' tool to make upgrading a whole lot easier.
Just run either of them without any command-line arguments and they will
show you how to use them.
* The installer now sets up a complete https version of the website for
you, with a self-signed certificate to get you started. It even sets up
the http->https site redirection.
* The installer now sets up your internaldomains.conf file.
I strongly advise you to install it on a basically-blank Ubuntu, CentOS
or RedHat Enterprise system by using the installer available from the
downloads page:
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://zend.to/downloads.php">http://zend.to/downloads.php</a>
If you are upgrading from a previous version, you can just update using
apt/yum and then use the upgrade_preferences_php and upgrade_zendto_conf
tools in /opt/zendto/bin.
If you are upgrading from a previous version and want to rebuild the
latest PHP as well, *first* upgrade ZendTo itself with apt/yum, then use
the installer to just run the first 2 stages (web server & development
tools, then rebuild PHP). If you do this the other way around, it will
probably try to remove your existing ZendTo installation!
So please head over to the downloads page at
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://zend.to/downloads.php">http://zend.to/downloads.php</a>
Please do let me know how you get on. All constructive criticism,
suggestions and requests are most welcome!
Cheers,
Jules.
P.S. As promised, here is the Change Log since the last full release. I
have broken it down by topic to make it easier to digest.
User Interface
- Added support for HTML email, TLS encryption and SMTP auth.
NOTE: its use is entirely optional, and disabled by default
(so the old email code will be used instead).
Note: the HTML email templates (/opt/zendto/templates/*_email_html.tpl)
are optional. If they don't exist, it will continue to send only plain-
text emails.
Read the docs in preferences.php just above the 'SMTPserver' setting
for more information and tips.
- Wrote HTML versions of all the email templates for you to start from.
For simplest deployment, copy www/images/email-logo.png and replace it
with your organization's logo of the same height. For more details,
see the templates. They all have "email" and "html" in their name.
- Reminder emails for about-to-expire drop-offs are now noticeably
different. (There is a slight template change to dropoff_email.tpl)
- Improved "New Dropoff" form so it's much clearer for users.
Note: addition to CSS style file swish.css.
- Instead of pausing at 100% while virus-scanning uploads, the progress
bar now displays a 'scanning for viruses...' message. This is just a
change to new_dropoff.tpl template file.
- Inbox now looks and behaves like Outbox, with sort and search provided.
- Switched over "Request a Drop-off" and "Pickup..." buttons in main
menu for logged-in users.
Internals
- Progress bar now works better on 64-bit browsers. Does not require
APC or APCu modules. Works fine on Ubuntu 16 and PHP 7.
Many thanks to Milan Babel for showing me how to do this!
- Changed default for 'showRecipsOnPickup' from TRUE to FALSE, and added
a short description of what it does. I strongly advise you to change this
to FALSE, otherwise it may/will leak information to external users.
- Reminder warnings can be disabled by setting 'warnDaysBeforeDeletion'
to 0.
- New setting 'allowExternalUploads' allows you to stop external users
(who cannot login) being able to send files to people inside your
organisation unless they had been explicitly sent a request for the
file(s).
- Logging to /var/zendto/zendto.log is now much more readable.
- ClamAV output now logged whenever virus check fails.
- Changed preferences.conf clamdscan command to enable logging.
- Moved a few words used in the UI out of the code and into zendto.conf
so you can translate them more easily. Thanks to Thomas Texier.
- Upgraded to very latest version of Smarty template engine 3.1.
Bugs
- Bug fixed where logout didn't, on combination of Ubuntu 16 and Chrome.
- Fixed bug in cron job that sent out reminders containing broken links.
NOTE: There is a new setting in preferences.php called 'serverRoot'.
This is the root URL of your ZendTo website, and must end with a '/'.
- Bug where empty email messages were sent (when 'SMTPserver' was
undefined) should now be fixed.
- Bug fixed where pickup notification email could refer to invalid
email address in very rare circumstances.
- Broken links on "security" page fixed.
- Fixed RPM spec file error. The error was actually harmless, but looked
bad.
Installation, Upgrading and Tools
- Added 'upgrade_zendto_conf' to help you upgrade your zendto.conf file,
in addition to existing 'upgrage_preferences_php' tool. Just run them
no command-line options and they will show you how to use them.
- upgrade_preferences_php and upgrade_zendto_conf now tell you about
newly added and removed settings, so you know what to check.
- Installer now also creates a complete SSL https version of the website,
using a self-signed certificate. It will even offer to redirect all
http connections to the https site automatically. All you need to do
for production use is get yourself a proper SSL certificate and drop
the files in the right places.
- Installer now sets up your internaldomains.conf file, based on the
domain name (excluding sub-domains) of your server. Thanks to the DMARC
- Installer updated to configure PHPMailer instead of sendmail/postfix.
- Installer updated to not build APC/APCu module.
- Installer now copes with EPEL repo pre-installed but disabled.
- adduser.php now corrects SQLite database file ownership back to that
of the web server, in case you ran it before rendering the home page
to get the web server to create it with the right permissions.
- CentOS 5 and RedHat 5 can no longer be built as the packages have all
been removed as they are end of life.
- CentOS have mucked up their SRPM repository for CentOS 6, so only
sources for version 6.8 currently exist, despite 6.9 being the current
version. I've improved the installer so it looks from the current version
all the way down to 6.1 then 6, trying to find a working source repo.
It then uses the latest version it can find.
folks for the elegant code to calculate this.
Jules
</pre>
</blockquote>
</div>
<div
title="MDH:PHA+PHR0PkhpIEp1bGVzLDwvdHQ+PC9wPjxwPjx0dD5JIHRyaWVkIHRoZSBuZXcgdmVyc2lvbiB0b2RheSBvbiBhIGJsYW5rIENlbnRPUyA3IHN5c3RlbS4gRmlyc3Qgb2YgYWxsLCBncmVhdCB3b3JrLiBTZXR1cCB3YXMgbmVhcmx5IHBlcmZlY3QuIEhlcmUgc29tZSBub3Rlcy48YnI+SSBoYWQgdGhl
IGZvbGxvd2luZyBlcnJvciBkdXJpbmcgc2V0dXAgbXVsdGlwbGUgdGltZXM6PC90dD48L3A+PHA+
PHR0Pn5+fjxicj5ob3N0bmFtZTogVGVtcG9yYXJ5IGZhaWx1cmUgaW4gbmFtZSByZXNvbHV0aW9u
PGJyPn5+fjxicj48L3R0PjwvcD48cD48dHQ+YW5kIEkgdGhpbmsgdGhpcyBoYXBwZW5lZCBiZWNh
dXNlIHRoZSBob3N0bmFtZSB3YXMgbm90IHNldCBpbiBgL2V0Yy9ob3N0c2Agb3IgYmVjYXVzZSB0
aGUgaG9zdG5hbWUgdGhhdCB0aGUgYGhvc3RuYW1lYCBjb21tYW5kIHNob3dzIGlzIG5vdCBhbiBG
UUROLjxicj5JIHdpbGwgdmVyaWZ5IHRoYXQgYXMgc29vbiBhcyBJIGNhbi48YnI+QmVjYXVzZSBv
ZiB0aGUgbmFtZSByZXNvbHV0aW9uIGVycm9yIHRoZSBlbnRyeSBmb3IgYFNlcnZlck5hbWVgIGlu
IGAvZXRjL2h0dHBkL2NvbmYuZC96ZW5kdG8uY29uZmAgYW5kIGAvZXRjL2h0dHBkL2NvbmYuZC96
ZW5kdG8tc3NsLmNvbmZgIHdhcyBlbXB0eSBhbmQ8YnI+SSBoYWQgdG8gYWRkIGl0IG15c2VsZi4g
LSBOb3QgYSBiaWcgcHJvYmxlbSBidXQgbWF5YmUgdGhlIGluc3RhbGxlciBjb3VsZCBiZSBvcHRp
bWl6ZWQgdG8gY2F0Y2ggdGhhdCBwcm9ibGVtIG9mIGFuIHVuc2V0IGhvc3RuYW1lIGluIHRoZSBm
dXR1cmU/PC90dD48L3A+PHA+PHR0PkkgZm91bmQgYSB0eXBvIGluIGBwcmVmZXJlbmNlcy5waHBg
IDo8YnI+PGJyPn5+fjxicj5XUk9ORyZuYnNwOyZuYnNwOyZuYnNwOyAvLyBJZiBXaW5kb3dzIHdl
YiBicm93c2VycyBoYXZlIHByb2JsZW1zIHdpdGggdGhlIHVwbG9hZCBwcm9ncnNzIGJhcjxicj5D
T1JSRUNUJm5ic3A7IC8vIElmIFdpbmRvd3Mgd2ViIGJyb3dzZXJzIGhhdmUgcHJvYmxlbXMgd2l0
aCB0aGUgdXBsb2FkIHByb2dyZXNzIGJhcjxicj5+fn48YnI+PC90dD48L3A+PHA+PHR0PkkgYWxz
byB0aGluayB0aGUgYHZhbGlkRW1haWxSZWdleHBgIGNvdWxkIGJlIG9wdGltaXplZC4gSSB0ZXN0
ZWQgdGhlIHJlZ2V4IGF0IFtyZWdleDEwMS5jb21dKGh0dHBzOi8vcmVnZXgxMDEuY29tLykgKGJ0
dy4gYSB2ZXJ5IGNvb2wgc2l0ZSkgYW5kPGJyPml0IGFsc28gbWF0Y2hlcyB3aGVuIHRoZXJlIGlz
IG9uZSBvciBtdWx0aXBsZSBkb3RzIGAuYCBhdCB0aGUgZW5kIG9mIHRoZSBlbWFpbCBhZGRyZXNz
Ljxicj5NYXliZSBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbWFrZSBpdCBsb29rIGxpa2UgdGhpczo8
L3R0PjwvcD48cD48dHQ+fn5+PGJyPid2YWxpZEVtYWlsUmVnZXhwJyA9Jmd0OyAnL14oW2EtekEt
WjAtOV1bYS16QS1aMC05XC5cX1wtXCtcJmFtcDtcJ10qKVxAKFthLXpBLVowLTldW2EtekEtWjAt
OVxfXC1cLl0rKShbYS16QS1aMC05XS4pJC9pJyw8YnI+fn5+PGJyPjwvdHQ+PC9wPjxwPjx0dD5v
ciB1c2UgUEhQIGBmaWx0ZXJfdmFyKClgIGZ1bmN0aW9uIHdpdGggYGZpbHRlcl92YXIoJGVtYWls
LCBGSUxURVJfVkFMSURBVEVfRU1BSUwpYDxicj4oZm91bmQgdmlhIFtTdGFja292ZXJmbG93XSho
dHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU4NTU4MTEvaG93LXRvLXZhbGlkYXRl
LWFuLWVtYWlsLWluLXBocCkpPC90dD48L3A+PHA+PHR0Pk5vdCBiaWcgc3R1ZmYgYnV0IEkgdGhp
bmsgb25seSByZXBvcnRpbmcgYWxsIHBpZWNlcyBvZiBwcm9ibGVtcyBjb3VsZCBtYWtlIHRoaXMg
c29mdHdhcmUgYmV0dGVyIChhbmQgaXQgaXMgcmVhbGx5IGdvb2QgYWxyZWFkeSkuPC90dD48L3A+
PHA+PHR0PkEgcXVlc3Rpb246PGJyPk9uIGZ1bGx5IHVwZGF0ZWQgbGF0ZXN0IENlbnRPUyA3IHRo
ZSBpbnN0YWxsZXIgcmVjb21waWxlcyBQSFAgNS54IGZvciBaZW5kVG8uIFdhc24ndCBiaWcgZmls
ZSBzdXBwb3J0IGFscmVhZHkgaW4gdGhlcmUgaW4gbmV2ZXIgdmVyc2lvbnM/PGJyPkFuZCBpZiBu
b3Qgd291bGQgdGhlIGluc3RhbGxlciBkZXRlY3QgaWYgSSB3b3VsZCBlbmFibGUgdGhlIFtJVVMg
cmVwb3NpdG9yeV0oaHR0cHM6Ly9pdXMuaW8vR2V0dGluZ1N0YXJ0ZWQvKSB3aGljaCBwcm92aWRl
cyBgcGhwNzF1YCBhbmQ8YnI+d291bGQgdGhpcyBtYWtlIHRoZSByZWNvbXBpbGluZyBvZiBQSFAg
dW5uZWNlc3Nhcnk/PGJyPkkgYW0gYXNraW5nIHRoaXMgYmVjYXVzZSBJIGFtIHRoaW5raW5nIGFi
b3V0IHVwZ3JhZGluZyB0aGUgc3lzdGVtIGluIHRoZSBmdXR1cmUgd2l0aG91dCB0aGUgbmVlZCBv
ZiByZWNvbXBpbGluZyBQSFAgYWxsIHRoZSB0aW1lLjxicj5NYXliZSBJIGdldCBzb21ldGhpbmcg
d3JvbmcgaGVyZSwgYnV0IHBsZWFzZSBjb3JyZWN0IG1lLCBpZiBzby48L3R0PjwvcD48cD48dHQ+
SGludDo8YnI+QSBjb2xsZWFndWUgb2YgbWluZSBkb2VzIFplbmRUbyBhcyBpdHMgcHJvamVjdCBm
b3IgaGlzIG1hc3RlcidzIHByb2plY3QgYW5kIHdlIHdpbGwgcnVuIHRoZSBpbnN0YWxsZXIgbWFu
eSBtYW55IHRpbWVzIHRoZSBuZXh0IHdlZWtzLjxicj5JIHdpbGwgY29uc3RhbnRseSB1cGRhdGUg
eW91IG9uIGFueXRoaW5nIG1vcmUgd2UgZmluZC48YnI+PC90dD48L3A+PHA+PHR0PlRoYW5rIHlv
dSBhZ2FpbiBmb3IgeW91ciBnb29kIHdvcmsuPC90dD48L3A+PHA+PHR0Pjxicj48L3R0PjwvcD48
cD48dHQ+S2luZCByZWdhcmRzPGJyPjxicj5QZXRlcjxicj48YnI+UFM6PGJyPklmIHRocyBlbWFp
bCBkb2VzIG5vdCByZW5kZXIgY29ycmVjdGx5IGdpdmUgbWUgZmVlZGJhY2suIEkgdXNlZCB0aGUg
VG9nZ2xlIE1hcmtkb3duIEV4dGVuc2lvbiBmb3IgVGh1bmRlcmJpcmQgdG8gY3JlYXRlIGl0Ljxi
cj48L3R0PjwvcD48YnI+PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAxNy4wNC4yMDE3
IDE3OjQyLCBKdWxlcyB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0
ZT0ibWlkOjA5ZDA4NjhiLTQyNDEtOWI2My1kMjM0LTdhYWM0NmIxODAwOEBaZW5kLlRvIj48cHJl
IHdyYXA9IiI+SGkgZm9sa3MhCgpJIGhvcGUgeW91IGhhdmUgYWxsIGhhZCBhIGdvb2QgRWFzdGVy
L3dlZWtlbmQuCgpFbm91Z2ggb2YgdGhlIGJldGFzLCBJJ3ZlIGZpbmFsbHkgZGVjaWRlZCB0byBt
YWtlIGEgZnVsbCAicHJvZHVjdGlvbiIgCnJlbGVhc2Ugb2YgWmVuZFRvLgpTbyB0aGlzIGlzIHZl
cnNpb24gNC4yNy0xLgoKVGhlcmUgYXJlIGxvdHMgb2YgaW1wcm92ZW1lbnRzLCBjaGFuZ2VzIGFu
ZCBmaXhlcyBzaW5jZSB0aGUgbGFzdCAKcHJvZHVjdGlvbiByZWxlYXNlICg0LjIwKS4gVGhlIGZ1
bGwgQ2hhbmdlIExvZyBzaW5jZSB0aGVuIGlzIGF0IHRoZSBlbmQgCm9mIHRoaXMgZW1haWwsIGJ1
dCB0aGUgaGlnaGxpZ2h0cyBhcmU6LQoKKiBGdWxsIHN1cHBvcnQgZm9yIEhUTUwgZW1haWwsIGFs
b25nIHdpdGggVExTIGVuY3J5cHRpb24sIFNNVFAgYXV0aCBhbmQgCm11Y2ggc2ltcGxlciBlbWFp
bCBjb25maWd1cmF0aW9uLiBQb3N0Zml4IG9yIHNlbmRtYWlsIGFyZSBubyBsb25nZXIgCnJlcXVp
cmVkLgoqIEltcHJvdmVkICJOZXcgRHJvcG9mZiIgZm9ybXMsIHdpdGggYSBuZXcgcHJvZ3Jlc3Mg
YmFyIHRoYXQgd29ya3Mgb24gClVidW50dSAxNiwgUEhQIDcgYW5kIGZ1dHVyZSB2ZXJzaW9ucyBh
cyBpdCBpcyBlbnRpcmVseSBpbXBsZW1lbnRlZCBpbiAKdGhlIGJyb3dzZXIuCiogUmVtaW5kZXIg
ZW1haWxzIGFyZSBtdWNoIGltcHJvdmVkIChmb3IgZHJvcC1vZmZzIHRoYXQgYXJlIGFib3V0IHRv
IApleHBpcmUgYnV0IG5vIG9uZSBoYXMgcGlja2VkIHVwKS4gVGhlc2UgY2FuIGFsc28gYmUgZGlz
YWJsZWQuCiogWW91IGNhbiBzdG9wIHVzZXJzIG91dHNpZGUgeW91ciBvcmdhbmlzYXRpb24gc2Vu
ZGluZyBmaWxlcyB0byB1c2VycyAKaW5zaWRlLCB1bmxlc3MgdGhlIGV4dGVybmFsIHVzZXJzIGhh
dmUgZXhwbGljaXRseSBiZWVuIHNlbnQgYSBEcm9wLW9mZiAKUmVxdWVzdC4KKiAndXBncmFkZV96
ZW5kdG9fY29uZicgdG9vbCBhZGRlZCBpbiBhZGRpdGlvbiB0byAKJ3VwZ3JhZGVfcHJlZmVyZW5j
ZXNfcGhwJyB0b29sIHRvIG1ha2UgdXBncmFkaW5nIGEgd2hvbGUgbG90IGVhc2llci4gCkp1c3Qg
cnVuIGVpdGhlciBvZiB0aGVtIHdpdGhvdXQgYW55IGNvbW1hbmQtbGluZSBhcmd1bWVudHMgYW5k
IHRoZXkgd2lsbCAKc2hvdyB5b3UgaG93IHRvIHVzZSB0aGVtLgoqIFRoZSBpbnN0YWxsZXIgbm93
IHNldHMgdXAgYSBjb21wbGV0ZSBodHRwcyB2ZXJzaW9uIG9mIHRoZSB3ZWJzaXRlIGZvciAKeW91
LCB3aXRoIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgdG8gZ2V0IHlvdSBzdGFydGVkLiBJdCBl
dmVuIHNldHMgdXAgCnRoZSBodHRwLSZndDtodHRwcyBzaXRlIHJlZGlyZWN0aW9uLgoqIFRoZSBp
bnN0YWxsZXIgbm93IHNldHMgdXAgeW91ciBpbnRlcm5hbGRvbWFpbnMuY29uZiBmaWxlLgoKSSBz
dHJvbmdseSBhZHZpc2UgeW91IHRvIGluc3RhbGwgaXQgb24gYSBiYXNpY2FsbHktYmxhbmsgVWJ1
bnR1LCBDZW50T1MgCm9yIFJlZEhhdCBFbnRlcnByaXNlIHN5c3RlbSBieSB1c2luZyB0aGUgaW5z
dGFsbGVyIGF2YWlsYWJsZSBmcm9tIHRoZSAKZG93bmxvYWRzIHBhZ2U6CiAgICAgaHR0cDovL3pl
bmQudG8vZG93bmxvYWRzLnBocAoKSWYgeW91IGFyZSB1cGdyYWRpbmcgZnJvbSBhIHByZXZpb3Vz
IHZlcnNpb24sIHlvdSBjYW4ganVzdCB1cGRhdGUgdXNpbmcgCmFwdC95dW0gYW5kIHRoZW4gdXNl
IHRoZSB1cGdyYWRlX3ByZWZlcmVuY2VzX3BocCBhbmQgdXBncmFkZV96ZW5kdG9fY29uZiAKdG9v
bHMgaW4gL29wdC96ZW5kdG8vYmluLgoKSWYgeW91IGFyZSB1cGdyYWRpbmcgZnJvbSBhIHByZXZp
b3VzIHZlcnNpb24gYW5kIHdhbnQgdG8gcmVidWlsZCB0aGUgCmxhdGVzdCBQSFAgYXMgd2VsbCwg
KmZpcnN0KiB1cGdyYWRlIFplbmRUbyBpdHNlbGYgd2l0aCBhcHQveXVtLCB0aGVuIHVzZSAKdGhl
IGluc3RhbGxlciB0byBqdXN0IHJ1biB0aGUgZmlyc3QgMiBzdGFnZXMgKHdlYiBzZXJ2ZXIgJmFt
cDsgZGV2ZWxvcG1lbnQgCnRvb2xzLCB0aGVuIHJlYnVpbGQgUEhQKS4gSWYgeW91IGRvIHRoaXMg
dGhlIG90aGVyIHdheSBhcm91bmQsIGl0IHdpbGwgCnByb2JhYmx5IHRyeSB0byByZW1vdmUgeW91
ciBleGlzdGluZyBaZW5kVG8gaW5zdGFsbGF0aW9uIQoKU28gcGxlYXNlIGhlYWQgb3ZlciB0byB0
aGUgZG93bmxvYWRzIHBhZ2UgYXQKICAgICBodHRwOi8vemVuZC50by9kb3dubG9hZHMucGhwCgpQ
bGVhc2UgZG8gbGV0IG1lIGtub3cgaG93IHlvdSBnZXQgb24uIEFsbCBjb25zdHJ1Y3RpdmUgY3Jp
dGljaXNtLCAKc3VnZ2VzdGlvbnMgYW5kIHJlcXVlc3RzIGFyZSBtb3N0IHdlbGNvbWUhCgpDaGVl
cnMsCkp1bGVzLgoKUC5TLiBBcyBwcm9taXNlZCwgaGVyZSBpcyB0aGUgQ2hhbmdlIExvZyBzaW5j
ZSB0aGUgbGFzdCBmdWxsIHJlbGVhc2UuIEkgCmhhdmUgYnJva2VuIGl0IGRvd24gYnkgdG9waWMg
dG8gbWFrZSBpdCBlYXNpZXIgdG8gZGlnZXN0LgoKVXNlciBJbnRlcmZhY2UKLSBBZGRlZCBzdXBw
b3J0IGZvciBIVE1MIGVtYWlsLCBUTFMgZW5jcnlwdGlvbiBhbmQgU01UUCBhdXRoLgogICBOT1RF
OiBpdHMgdXNlIGlzIGVudGlyZWx5IG9wdGlvbmFsLCBhbmQgZGlzYWJsZWQgYnkgZGVmYXVsdAog
ICAoc28gdGhlIG9sZCBlbWFpbCBjb2RlIHdpbGwgYmUgdXNlZCBpbnN0ZWFkKS4KICAgTm90ZTog
dGhlIEhUTUwgZW1haWwgdGVtcGxhdGVzICgvb3B0L3plbmR0by90ZW1wbGF0ZXMvKl9lbWFpbF9o
dG1sLnRwbCkKICAgYXJlIG9wdGlvbmFsLiBJZiB0aGV5IGRvbid0IGV4aXN0LCBpdCB3aWxsIGNv
bnRpbnVlIHRvIHNlbmQgb25seSBwbGFpbi0KICAgdGV4dCBlbWFpbHMuCiAgIFJlYWQgdGhlIGRv
Y3MgaW4gcHJlZmVyZW5jZXMucGhwIGp1c3QgYWJvdmUgdGhlICdTTVRQc2VydmVyJyBzZXR0aW5n
CiAgIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0aXBzLgotIFdyb3RlIEhUTUwgdmVyc2lvbnMg
b2YgYWxsIHRoZSBlbWFpbCB0ZW1wbGF0ZXMgZm9yIHlvdSB0byBzdGFydCBmcm9tLgogICBGb3Ig
c2ltcGxlc3QgZGVwbG95bWVudCwgY29weSB3d3cvaW1hZ2VzL2VtYWlsLWxvZ28ucG5nIGFuZCBy
ZXBsYWNlIGl0CiAgIHdpdGggeW91ciBvcmdhbml6YXRpb24ncyBsb2dvIG9mIHRoZSBzYW1lIGhl
aWdodC4gRm9yIG1vcmUgZGV0YWlscywKICAgc2VlIHRoZSB0ZW1wbGF0ZXMuIFRoZXkgYWxsIGhh
dmUgImVtYWlsIiBhbmQgImh0bWwiIGluIHRoZWlyIG5hbWUuCi0gUmVtaW5kZXIgZW1haWxzIGZv
ciBhYm91dC10by1leHBpcmUgZHJvcC1vZmZzIGFyZSBub3cgbm90aWNlYWJseQogICBkaWZmZXJl
bnQuIChUaGVyZSBpcyBhIHNsaWdodCB0ZW1wbGF0ZSBjaGFuZ2UgdG8gZHJvcG9mZl9lbWFpbC50
cGwpCi0gSW1wcm92ZWQgIk5ldyBEcm9wb2ZmIiBmb3JtIHNvIGl0J3MgbXVjaCBjbGVhcmVyIGZv
ciB1c2Vycy4KICAgTm90ZTogYWRkaXRpb24gdG8gQ1NTIHN0eWxlIGZpbGUgc3dpc2guY3NzLgot
IEluc3RlYWQgb2YgcGF1c2luZyBhdCAxMDAlIHdoaWxlIHZpcnVzLXNjYW5uaW5nIHVwbG9hZHMs
IHRoZSBwcm9ncmVzcwogICBiYXIgbm93IGRpc3BsYXlzIGEgJ3NjYW5uaW5nIGZvciB2aXJ1c2Vz
Li4uJyBtZXNzYWdlLiBUaGlzIGlzIGp1c3QgYQogICBjaGFuZ2UgdG8gbmV3X2Ryb3BvZmYudHBs
IHRlbXBsYXRlIGZpbGUuCi0gSW5ib3ggbm93IGxvb2tzIGFuZCBiZWhhdmVzIGxpa2UgT3V0Ym94
LCB3aXRoIHNvcnQgYW5kIHNlYXJjaCBwcm92aWRlZC4KLSBTd2l0Y2hlZCBvdmVyICJSZXF1ZXN0
IGEgRHJvcC1vZmYiIGFuZCAiUGlja3VwLi4uIiBidXR0b25zIGluIG1haW4KICAgbWVudSBmb3Ig
bG9nZ2VkLWluIHVzZXJzLgoKSW50ZXJuYWxzCi0gUHJvZ3Jlc3MgYmFyIG5vdyB3b3JrcyBiZXR0
ZXIgb24gNjQtYml0IGJyb3dzZXJzLiBEb2VzIG5vdCByZXF1aXJlCiAgIEFQQyBvciBBUEN1IG1v
ZHVsZXMuIFdvcmtzIGZpbmUgb24gVWJ1bnR1IDE2IGFuZCBQSFAgNy4KICAgTWFueSB0aGFua3Mg
dG8gTWlsYW4gQmFiZWwgZm9yIHNob3dpbmcgbWUgaG93IHRvIGRvIHRoaXMhCi0gQ2hhbmdlZCBk
ZWZhdWx0IGZvciAnc2hvd1JlY2lwc09uUGlja3VwJyBmcm9tIFRSVUUgdG8gRkFMU0UsIGFuZCBh
ZGRlZAogICBhIHNob3J0IGRlc2NyaXB0aW9uIG9mIHdoYXQgaXQgZG9lcy4gSSBzdHJvbmdseSBh
ZHZpc2UgeW91IHRvIGNoYW5nZSB0aGlzCiAgIHRvIEZBTFNFLCBvdGhlcndpc2UgaXQgbWF5L3dp
bGwgbGVhayBpbmZvcm1hdGlvbiB0byBleHRlcm5hbCB1c2Vycy4KLSBSZW1pbmRlciB3YXJuaW5n
cyBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyAnd2FybkRheXNCZWZvcmVEZWxldGlvbicgCnRv
IDAuCi0gTmV3IHNldHRpbmcgJ2FsbG93RXh0ZXJuYWxVcGxvYWRzJyBhbGxvd3MgeW91IHRvIHN0
b3AgZXh0ZXJuYWwgdXNlcnMKICAgKHdobyBjYW5ub3QgbG9naW4pIGJlaW5nIGFibGUgdG8gc2Vu
ZCBmaWxlcyB0byBwZW9wbGUgaW5zaWRlIHlvdXIKICAgb3JnYW5pc2F0aW9uIHVubGVzcyB0aGV5
IGhhZCBiZWVuIGV4cGxpY2l0bHkgc2VudCBhIHJlcXVlc3QgZm9yIHRoZSAKZmlsZShzKS4KLSBM
b2dnaW5nIHRvIC92YXIvemVuZHRvL3plbmR0by5sb2cgaXMgbm93IG11Y2ggbW9yZSByZWFkYWJs
ZS4KLSBDbGFtQVYgb3V0cHV0IG5vdyBsb2dnZWQgd2hlbmV2ZXIgdmlydXMgY2hlY2sgZmFpbHMu
Ci0gQ2hhbmdlZCBwcmVmZXJlbmNlcy5jb25mIGNsYW1kc2NhbiBjb21tYW5kIHRvIGVuYWJsZSBs
b2dnaW5nLgotIE1vdmVkIGEgZmV3IHdvcmRzIHVzZWQgaW4gdGhlIFVJIG91dCBvZiB0aGUgY29k
ZSBhbmQgaW50byB6ZW5kdG8uY29uZgogICBzbyB5b3UgY2FuIHRyYW5zbGF0ZSB0aGVtIG1vcmUg
ZWFzaWx5LiBUaGFua3MgdG8gVGhvbWFzIFRleGllci4KLSBVcGdyYWRlZCB0byB2ZXJ5IGxhdGVz
dCB2ZXJzaW9uIG9mIFNtYXJ0eSB0ZW1wbGF0ZSBlbmdpbmUgMy4xLgoKQnVncwotIEJ1ZyBmaXhl
ZCB3aGVyZSBsb2dvdXQgZGlkbid0LCBvbiBjb21iaW5hdGlvbiBvZiBVYnVudHUgMTYgYW5kIENo
cm9tZS4KLSBGaXhlZCBidWcgaW4gY3JvbiBqb2IgdGhhdCBzZW50IG91dCByZW1pbmRlcnMgY29u
dGFpbmluZyBicm9rZW4gbGlua3MuCiAgIE5PVEU6IFRoZXJlIGlzIGEgbmV3IHNldHRpbmcgaW4g
cHJlZmVyZW5jZXMucGhwIGNhbGxlZCAnc2VydmVyUm9vdCcuCiAgIFRoaXMgaXMgdGhlIHJvb3Qg
VVJMIG9mIHlvdXIgWmVuZFRvIHdlYnNpdGUsIGFuZCBtdXN0IGVuZCB3aXRoIGEgJy8nLgotIEJ1
ZyB3aGVyZSBlbXB0eSBlbWFpbCBtZXNzYWdlcyB3ZXJlIHNlbnQgKHdoZW4gJ1NNVFBzZXJ2ZXIn
IHdhcwogICB1bmRlZmluZWQpIHNob3VsZCBub3cgYmUgZml4ZWQuCi0gQnVnIGZpeGVkIHdoZXJl
IHBpY2t1cCBub3RpZmljYXRpb24gZW1haWwgY291bGQgcmVmZXIgdG8gaW52YWxpZAogICBlbWFp
bCBhZGRyZXNzIGluIHZlcnkgcmFyZSBjaXJjdW1zdGFuY2VzLgotIEJyb2tlbiBsaW5rcyBvbiAi
c2VjdXJpdHkiIHBhZ2UgZml4ZWQuCi0gRml4ZWQgUlBNIHNwZWMgZmlsZSBlcnJvci4gVGhlIGVy
cm9yIHdhcyBhY3R1YWxseSBoYXJtbGVzcywgYnV0IGxvb2tlZCAKYmFkLgoKSW5zdGFsbGF0aW9u
LCBVcGdyYWRpbmcgYW5kIFRvb2xzCi0gQWRkZWQgJ3VwZ3JhZGVfemVuZHRvX2NvbmYnIHRvIGhl
bHAgeW91IHVwZ3JhZGUgeW91ciB6ZW5kdG8uY29uZiBmaWxlLAogICBpbiBhZGRpdGlvbiB0byBl
eGlzdGluZyAndXBncmFnZV9wcmVmZXJlbmNlc19waHAnIHRvb2wuIEp1c3QgcnVuIHRoZW0KICAg
bm8gY29tbWFuZC1saW5lIG9wdGlvbnMgYW5kIHRoZXkgd2lsbCBzaG93IHlvdSBob3cgdG8gdXNl
IHRoZW0uCi0gdXBncmFkZV9wcmVmZXJlbmNlc19waHAgYW5kIHVwZ3JhZGVfemVuZHRvX2NvbmYg
bm93IHRlbGwgeW91IGFib3V0CiAgIG5ld2x5IGFkZGVkIGFuZCByZW1vdmVkIHNldHRpbmdzLCBz
byB5b3Uga25vdyB3aGF0IHRvIGNoZWNrLgotIEluc3RhbGxlciBub3cgYWxzbyBjcmVhdGVzIGEg
Y29tcGxldGUgU1NMIGh0dHBzIHZlcnNpb24gb2YgdGhlIHdlYnNpdGUsCiAgIHVzaW5nIGEgc2Vs
Zi1zaWduZWQgY2VydGlmaWNhdGUuIEl0IHdpbGwgZXZlbiBvZmZlciB0byByZWRpcmVjdCBhbGwK
ICAgaHR0cCBjb25uZWN0aW9ucyB0byB0aGUgaHR0cHMgc2l0ZSBhdXRvbWF0aWNhbGx5LiBBbGwg
eW91IG5lZWQgdG8gZG8KICAgZm9yIHByb2R1Y3Rpb24gdXNlIGlzIGdldCB5b3Vyc2VsZiBhIHBy
b3BlciBTU0wgY2VydGlmaWNhdGUgYW5kIGRyb3AKICAgdGhlIGZpbGVzIGluIHRoZSByaWdodCBw
bGFjZXMuCi0gSW5zdGFsbGVyIG5vdyBzZXRzIHVwIHlvdXIgaW50ZXJuYWxkb21haW5zLmNvbmYg
ZmlsZSwgYmFzZWQgb24gdGhlCiAgIGRvbWFpbiBuYW1lIChleGNsdWRpbmcgc3ViLWRvbWFpbnMp
IG9mIHlvdXIgc2VydmVyLiBUaGFua3MgdG8gdGhlIERNQVJDCi0gSW5zdGFsbGVyIHVwZGF0ZWQg
dG8gY29uZmlndXJlIFBIUE1haWxlciBpbnN0ZWFkIG9mIHNlbmRtYWlsL3Bvc3RmaXguCi0gSW5z
dGFsbGVyIHVwZGF0ZWQgdG8gbm90IGJ1aWxkIEFQQy9BUEN1IG1vZHVsZS4KLSBJbnN0YWxsZXIg
bm93IGNvcGVzIHdpdGggRVBFTCByZXBvIHByZS1pbnN0YWxsZWQgYnV0IGRpc2FibGVkLgotIGFk
ZHVzZXIucGhwIG5vdyBjb3JyZWN0cyBTUUxpdGUgZGF0YWJhc2UgZmlsZSBvd25lcnNoaXAgYmFj
ayB0byB0aGF0CiAgIG9mIHRoZSB3ZWIgc2VydmVyLCBpbiBjYXNlIHlvdSByYW4gaXQgYmVmb3Jl
IHJlbmRlcmluZyB0aGUgaG9tZSBwYWdlCiAgIHRvIGdldCB0aGUgd2ViIHNlcnZlciB0byBjcmVh
dGUgaXQgd2l0aCB0aGUgcmlnaHQgcGVybWlzc2lvbnMuCi0gQ2VudE9TIDUgYW5kIFJlZEhhdCA1
IGNhbiBubyBsb25nZXIgYmUgYnVpbHQgYXMgdGhlIHBhY2thZ2VzIGhhdmUgYWxsCiAgIGJlZW4g
cmVtb3ZlZCBhcyB0aGV5IGFyZSBlbmQgb2YgbGlmZS4KLSBDZW50T1MgaGF2ZSBtdWNrZWQgdXAg
dGhlaXIgU1JQTSByZXBvc2l0b3J5IGZvciBDZW50T1MgNiwgc28gb25seQogICBzb3VyY2VzIGZv
ciB2ZXJzaW9uIDYuOCBjdXJyZW50bHkgZXhpc3QsIGRlc3BpdGUgNi45IGJlaW5nIHRoZSBjdXJy
ZW50CiAgIHZlcnNpb24uIEkndmUgaW1wcm92ZWQgdGhlIGluc3RhbGxlciBzbyBpdCBsb29rcyBm
cm9tIHRoZSBjdXJyZW50IHZlcnNpb24KICAgYWxsIHRoZSB3YXkgZG93biB0byA2LjEgdGhlbiA2
LCB0cnlpbmcgdG8gZmluZCBhIHdvcmtpbmcgc291cmNlIHJlcG8uCiAgIEl0IHRoZW4gdXNlcyB0
aGUgbGF0ZXN0IHZlcnNpb24gaXQgY2FuIGZpbmQuCiAgIGZvbGtzIGZvciB0aGUgZWxlZ2FudCBj
b2RlIHRvIGNhbGN1bGF0ZSB0aGlzLgoKSnVsZXMKCjwvcHJlPgoKPC9ibG9ja3F1b3RlPjxicj4="
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;"></div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
ZendTo mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ZendTo@zend.to">ZendTo@zend.to</a>
<a class="moz-txt-link-freetext" href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/zendto">http://mailman.ecs.soton.ac.uk/mailman/listinfo/zendto</a></pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">Jules
--
Julian Field MEng CEng CITP MBCS MIEEE MACM
'I never saw a wild thing
Sorry for itself.' - D.H. Lawrence
<a class="moz-txt-link-abbreviated" href="http://www.Zend.To">www.Zend.To</a>
Twitter: @JulesFM
PGP footprint: EE81 D763 3DB0 0BFD E1DC 7222 11F6 5947 1415 B654
</pre>
</body>
</html>