Re: Sieve Clarifications

Chris Newman <Chris.Newman@innosoft.com> Wed, 30 April 1997 21:31 UTC

Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id OAA25595 for ietf-mta-filters-bks; Wed, 30 Apr 1997 14:31:31 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id OAA25591 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 14:31:27 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIBIXNUK8S99GM7G@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 14:32:28 PDT
Date: Wed, 30 Apr 1997 14:33:55 -0700
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Clarifications
In-reply-to: <Pine.SOL.3.95L.970430153712.750I-100000@nil.andrew.cmu.edu>
To: Tim Showalter <tjs@andrew.cmu.edu>
Cc: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970430142523.16628W-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset="US-ASCII"
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Wed, 30 Apr 1997, Tim Showalter wrote:
> On Wed, 30 Apr 1997, Chris Newman wrote:
> 
> > Section 2.5.2.
> > 
> > Also a useful section.  Need to add comments about how to RFC 822 quoting
> > of addresses is dealt with.  Remember that junk like:
> >    <"foo"  .  "bar"@baz.biff>
> > is a legal RFC 822 address, but for comparison one probably wants to treat
> > it as <foo.bar@baz.biff>
> 
> I'm not sure about this.  While a comparison in addresses should make them
> the same, a comparision of From headers might treat them differently.  In
> the document as it stands, there are no direct comparisons of addresses.  At
> least, I didn't intend any.

Sorry, I was looking at notes on my document that I wrote as I
read it.  Comparison isn't so big a deal actually. More important is the 
addresses allowed in commands like "forward".  The problem is that 822
syntax is different from 821 syntax.  It also includes a lot of 
syntactical junk that's completely unnecessary.  If we want to make this
easy for implementors, I think we should require addresses in some
canonical form.

Choice 1:

Addresses must meet both 821 and 822 quoting rules.  Specifically, it's
either <local-part@domain> or <"local-part"@domain>.  Quotes around
name-components, whitespace and embedded comments should be disallowed.

Choice 2:

Address must be in unquoted form.  This means you have just
<local-part@domain>.  To convert to quoted form, one looks for the
rightmost "@" sign and has to quote the local-part if it contains any
specials other than "." (e.g. "@" is particularly nasty in local part).




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id OAA25595 for ietf-mta-filters-bks; Wed, 30 Apr 1997 14:31:31 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id OAA25591 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 14:31:27 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIBIXNUK8S99GM7G@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 14:32:28 PDT
Date: Wed, 30 Apr 1997 14:33:55 -0700 (PDT)
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Clarifications
In-reply-to: <Pine.SOL.3.95L.970430153712.750I-100000@nil.andrew.cmu.edu>
To: Tim Showalter <tjs@andrew.cmu.edu>
Cc: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970430142523.16628W-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Wed, 30 Apr 1997, Tim Showalter wrote:
> On Wed, 30 Apr 1997, Chris Newman wrote:
> 
> > Section 2.5.2.
> > 
> > Also a useful section.  Need to add comments about how to RFC 822 quoting
> > of addresses is dealt with.  Remember that junk like:
> >    <"foo"  .  "bar"@baz.biff>
> > is a legal RFC 822 address, but for comparison one probably wants to treat
> > it as <foo.bar@baz.biff>
> 
> I'm not sure about this.  While a comparison in addresses should make them
> the same, a comparision of From headers might treat them differently.  In
> the document as it stands, there are no direct comparisons of addresses.  At
> least, I didn't intend any.

Sorry, I was looking at notes on my document that I wrote as I
read it.  Comparison isn't so big a deal actually. More important is the 
addresses allowed in commands like "forward".  The problem is that 822
syntax is different from 821 syntax.  It also includes a lot of 
syntactical junk that's completely unnecessary.  If we want to make this
easy for implementors, I think we should require addresses in some
canonical form.

Choice 1:

Addresses must meet both 821 and 822 quoting rules.  Specifically, it's
either <local-part@domain> or <"local-part"@domain>.  Quotes around
name-components, whitespace and embedded comments should be disallowed.

Choice 2:

Address must be in unquoted form.  This means you have just
<local-part@domain>.  To convert to quoted form, one looks for the
rightmost "@" sign and has to quote the local-part if it contains any
specials other than "." (e.g. "@" is particularly nasty in local part).




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id NAA24499 for ietf-mta-filters-bks; Wed, 30 Apr 1997 13:16:47 -0700 (PDT)
Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id NAA24495 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 13:16:44 -0700 (PDT)
Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id QAA23126; Wed, 30 Apr 1997 16:18:10 -0400
Date: Wed, 30 Apr 1997 16:18:09 -0400 (EDT)
From: Tim Showalter <tjs@andrew.cmu.edu>
To: Chris Newman <Chris.Newman@innosoft.com>
cc: MTA Filters <ietf-mta-filters@imc.org>
Subject: Re: Sieve Clarifications
In-Reply-To: <Pine.SOL.3.95.970430095600.16628G-100000@eleanor.innosoft.com>
Message-ID: <Pine.SOL.3.95L.970430153712.750I-100000@nil.andrew.cmu.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Wed, 30 Apr 1997, Chris Newman wrote:

> Section 2.5.2.
> 
> Also a useful section.  Need to add comments about how to RFC 822 quoting
> of addresses is dealt with.  Remember that junk like:
>    <"foo"  .  "bar"@baz.biff>
> is a legal RFC 822 address, but for comparison one probably wants to treat
> it as <foo.bar@baz.biff>

I'm not sure about this.  While a comparison in addresses should make them
the same, a comparision of From headers might treat them differently.  In
the document as it stands, there are no direct comparisons of addresses.  At
least, I didn't intend any.

> Section 2.7.
> 
> Change the last SHOULD to a MUST.  A future extension could add a
> test with a side effect, and it'd be good to have it's behavior
> deterministic.

Ok.

> Section 4.1.
> 
> Need to precisely document the format of a bounce message.  How about a
> MIME multipart with the first part containing the Sieve text and the
> second part being the original message/rfc822.

That's probably the right thing to do.  If anyone wants to suggest precise
language, I'll add it; otherwise, I'll go chasing references before the next
draft goes out.

> Section 4.2.
[...]
> I'd rather not have "fileinto" moved to a separate document.  Sieve is
> mostly useless for IMAP without it.

It's probably most useful in POP3 cases.  I'd like to just have an extension
name.

> Section 4.3.
> 
> Need to make it clear that this is an MTA-style forward (e.g. .forward
> file) rather than an MUA-style forward (e.g. "forword" button on MUA).

Ok.

> Section 4.5.
> 
> I definitely think vacation support is a good idea.  It's incredibly
> useful functionality which many people get wrong, so it'd be really nice
> to have a standard way to do it right.  Of course this requires adding a
> security model for dealing with the reply-history-database.

Should this be an extension, or is it enough to fold it into the document?
The reply database is a fairly large problem.

> Section 4.7.
> 
> Need to discuss security impact of "toss".  ...

Ok.

> Section 6.
> 
> Last sentence contradicts the existance of "toss".

Fixed.

> Section 7.

I'll probably remove the suggestion that extensions contain version numbers.

-- 
                                           Tim Showalter tjs@andrew.cmu.edu



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id LAA22706 for ietf-mta-filters-bks; Wed, 30 Apr 1997 11:08:51 -0700 (PDT)
Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id LAA22702 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 11:08:47 -0700 (PDT)
Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id OAA00730 for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 14:10:18 -0400 (EDT)
Received: via switchmail; Wed, 30 Apr 1997 14:10:17 -0400 (EDT)
Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.0nNsed200WC700ZXM0>; Wed, 30 Apr 1997 14:08:42 -0400 (EDT)
Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr17/rob/.Outgoing/QF.0nNseZ200WC71ICn40>; Wed, 30 Apr 1997 14:08:38 -0400 (EDT)
Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.loiosh.andrew.cmu.edu.HP9000.715 via MS.5.6.loiosh.andrew.cmu.edu.hp700; Wed, 30 Apr 1997 14:08:27 -0400 (EDT)
Message-ID: <0nNseP200WC71ICms0@andrew.cmu.edu>
Date: Wed, 30 Apr 1997 14:08:27 -0400 (EDT)
From: Rob Earhart <earhart+@cmu.edu>
To: ietf-mta-filters@imc.org
Subject: Re: Sieve Readability Suggestions
In-Reply-To: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com>
References: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com>
X-Face: ,IWr.&S`]#R'C+7U:UE~"}g?Zq|OE%6.\}jCwGUO)]|?34%u!8RT_@0"_qA\@g8N:'pK!bM tSE)?S,#@MK1$o(69wQT2L'j)8tP5QfHdYlh`k}:tA"%dG?9z~>
Beak: Is Not
Organization: cmu
X-URL: http://www.contrib.andrew.cmu.edu/~rob
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

Chris Newman <Chris.Newman@innosoft.com> writes:
> Yes.  There should be a single canonical format for scripts so they can be
> communicated from client to server without ambiguity.

  It's an interesting idea.

  Currently, CR and LF are treated as "whitespace" - if they're
present, they're only there *solely* for readability and comment
termination.  Your viewer could rewrap the lines and comments and come
up with something you could edit on any given platform.

  Why not go further?

  For instance, should people use tabs or spaces for indentation?  Or
a combination?  Should indentation be meaningful (if you don't think
so, look at the Python addicts in the CS community - I think they're
wrong, but they have some good points)?

  Maybe we should have one true indentation style - one tab per level,
no spaces.  Let the editor set tab stops where it wants...

  How about line length limits?  If we really want scripts to be
editable by all sorts of non-specialized editors, maybe we should
suggest (or impose) an 80-column limit on lines...

  Just some ideas - I'm far from wedded to any of these, but I think
they make about as much sense as requiring that lines end with CRLFs.

  (I'd argue that if we *really* want a single canonical format, we
should think about what a abstract syntax tree for a program in this
language should look like, write up the canonical way of encoding
those trees as text, and require that all programs be in that form
when returned from the server (since we're worried about
interchangeability, servers should be strict in what they send and
forgiving in what they accept, right?  Or should it be strict on both
ends?).  Permitting things like "one or more spaces" inbetween tokens
hardly leads to a single canonical form... (interestingly enough, the
grammar currently says that WSP is exactly one whitespace; I suspect
this will be changed :-) )

  )Rob


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA22506 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:56:10 -0700 (PDT)
Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA22502 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:56:03 -0700 (PDT)
Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id NAA16925; Wed, 30 Apr 1997 13:57:31 -0400
Date: Wed, 30 Apr 1997 13:57:30 -0400 (EDT)
From: Tim Showalter <tjs@andrew.cmu.edu>
To: Chris Newman <Chris.Newman@innosoft.com>
cc: Rob Earhart <earhart+@cmu.edu>, ietf-mta-filters@imc.org
Subject: Re: Sieve Readability Suggestions
In-Reply-To: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com>
Message-ID: <Pine.SOL.3.95L.970430135640.750H-100000@nil.andrew.cmu.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Wed, 30 Apr 1997, Chris Newman wrote:

> On Wed, 30 Apr 1997, Rob Earhart wrote:
> > Chris Newman <Chris.Newman@innosoft.com> writes:
> > > The grammar seems to require a trailing ";" after every command
> > > (including an endif).  I'm starting to think it would be better to simply
> > > have CRLF terminate a command as many of your examples do (and use "\"
> > > CRLF to fold a line).
> > 
> >   Do we really want to impose any particular line terminator on
> > scripts?
> 
> Yes.  There should be a single canonical format for scripts so they can be
> communicated from client to server without ambiguity.

Hey, Rob, did you mean the CR/LF/CRLF thing, or are you worried about how
the script is encoded?

-- 
                                           Tim Showalter tjs@andrew.cmu.edu



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA22177 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:31:27 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA22173 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:31:24 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIBAIJX6YW99G2GF@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 10:31:13 PDT
Date: Wed, 30 Apr 1997 10:32:40 -0700 (PDT)
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Readability Suggestions
In-reply-to: <0nNrwk200WC71ICm40@andrew.cmu.edu>
To: Rob Earhart <earhart+@cmu.edu>
Cc: ietf-mta-filters@imc.org
Message-id: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Wed, 30 Apr 1997, Rob Earhart wrote:
> Chris Newman <Chris.Newman@innosoft.com> writes:
> > The grammar seems to require a trailing ";" after every command
> > (including an endif).  I'm starting to think it would be better to simply
> > have CRLF terminate a command as many of your examples do (and use "\"
> > CRLF to fold a line).
> 
>   Do we really want to impose any particular line terminator on
> scripts?

Yes.  There should be a single canonical format for scripts so they can be
communicated from client to server without ambiguity.



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA21997 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:20:11 -0700 (PDT)
Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA21993 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:20:08 -0700 (PDT)
Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id NAA00683 for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 13:21:39 -0400 (EDT)
Received: via switchmail; Wed, 30 Apr 1997 13:21:38 -0400 (EDT)
Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.0nNrwo200WC700ZXI0>; Wed, 30 Apr 1997 13:19:48 -0400 (EDT)
Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr17/rob/.Outgoing/QF.0nNrwl200WC71ICmE0>; Wed, 30 Apr 1997 13:19:45 -0400 (EDT)
Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.loiosh.andrew.cmu.edu.HP9000.715 via MS.5.6.loiosh.andrew.cmu.edu.hp700; Wed, 30 Apr 1997 13:19:44 -0400 (EDT)
Message-ID: <0nNrwk200WC71ICm40@andrew.cmu.edu>
Date: Wed, 30 Apr 1997 13:19:44 -0400 (EDT)
From: Rob Earhart <earhart+@cmu.edu>
To: ietf-mta-filters@imc.org
Subject: Re: Sieve Readability Suggestions
In-Reply-To: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com>
References: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com>
X-Face: ,IWr.&S`]#R'C+7U:UE~"}g?Zq|OE%6.\}jCwGUO)]|?34%u!8RT_@0"_qA\@g8N:'pK!bM tSE)?S,#@MK1$o(69wQT2L'j)8tP5QfHdYlh`k}:tA"%dG?9z~>
Beak: Is Not
Organization: cmu
X-URL: http://www.contrib.andrew.cmu.edu/~rob
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

Chris Newman <Chris.Newman@innosoft.com> writes:
> (4) Trailing ";"
> 
> The grammar seems to require a trailing ";" after every command
> (including an endif).  I'm starting to think it would be better to simply
> have CRLF terminate a command as many of your examples do (and use "\"
> CRLF to fold a line).

  Do we really want to impose any particular line terminator on
scripts?

  )Rob


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA21967 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:18:14 -0700 (PDT)
Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA21963 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:18:06 -0700 (PDT)
Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id NAA00679 for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 13:19:35 -0400 (EDT)
Received: via switchmail; Wed, 30 Apr 1997 13:19:35 -0400 (EDT)
Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.0nNrvS200WC700ZXE0>; Wed, 30 Apr 1997 13:18:23 -0400 (EDT)
Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr17/rob/.Outgoing/QF.0nNrvM200WC71IClg0>; Wed, 30 Apr 1997 13:18:16 -0400 (EDT)
Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.loiosh.andrew.cmu.edu.HP9000.715 via MS.5.6.loiosh.andrew.cmu.edu.hp700; Wed, 30 Apr 1997 13:18:06 -0400 (EDT)
Message-ID: <0nNrvC200WC71IClU0@andrew.cmu.edu>
Date: Wed, 30 Apr 1997 13:18:06 -0400 (EDT)
From: Rob Earhart <earhart+@cmu.edu>
To: ietf-mta-filters@imc.org
Subject: Re: Sieve Readability Suggestions
In-Reply-To: <01IIAFCM4ICA99FPS5@INNOSOFT.COM>
References: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com> <01IIAFCM4ICA99FPS5@INNOSOFT.COM>
X-Face: ,IWr.&S`]#R'C+7U:UE~"}g?Zq|OE%6.\}jCwGUO)]|?34%u!8RT_@0"_qA\@g8N:'pK!bM tSE)?S,#@MK1$o(69wQT2L'j)8tP5QfHdYlh`k}:tA"%dG?9z~>
Beak: Is
Organization: cmu
X-URL: http://www.contrib.andrew.cmu.edu/~rob
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

Ned Freed <Ned.Freed@innosoft.com> writes:
> I finally figured out why I dislike the use of SMTP-style message text: It is
> because it makes the grammar context-sensitive: "message" (or "text:") has to
> kick the lexer into a special state. I think this is fairly problematic
> behavior at best. What happens when we want to extend the language by adding
> some other construct that requires message text as an argument.

  The grammar's still regular - when the lexer sees a "message" or
"text:" token, it switches states until it sees the end of the
SMTP-style message text; this is well within the capabilities of a
DFA.

  (By the same argument, you're against "'s, yes?  Because when a
lexer sees a " mark, it must enter a special state in which characters
are processed until a closing unescaped "... this is really no
different.)

> I think we really need to bite the bullet here and go back to some sort of
> consistent quoting scheme. I'd recommend using C style string constants,
> possibly with the extension of alloing a string to cross line boundaries.

  The problem with multiline strings is that either you wind up with
lots of backslashes at the ends of lines (which're a pain to keep
consistant when one reworks one's linebreaks), or you create a
situation in which there really isn't anything to keep a dropped
end-of-string character from causing your string to chew up far more
data than it really should, causing syntax errors far removed from the
source of the problem.

  I don't think we want lots of backslashes, and I think that a . on a
line by itself stands out much better than a " marks; much as I hate
special casing lexers, I think it's better to have two ways to quote
strings.

  (OTOH, with any non-backslash mechanism, you run the risk that it'll
still parse, potentially mailing pieces of your script and automated
responses to people who really shouldn't see it...)

  )Rob


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA21875 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:12:06 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA21871 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:12:03 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIB9VD6EW299F9KB@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 10:13:18 PDT
Date: Wed, 30 Apr 1997 10:14:46 -0700 (PDT)
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Sieve Clarifications
To: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970430095600.16628G-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

Here's some things which I think need clarifying in the document:

Section 2.5.1.

This is a useful section.

Section 2.5.2.

Also a useful section.  Need to add comments about how to RFC 822 quoting
of addresses is dealt with.  Remember that junk like:
   <"foo"  .  "bar"@baz.biff>
is a legal RFC 822 address, but for comparison one probably wants to treat
it as <foo.bar@baz.biff>

Section 2.7.

Change the last SHOULD to a MUST.  A future extension could add a
test with a side effect, and it'd be good to have it's behavior
deterministic.

Section 4.1.

Need to precisely document the format of a bounce message.  How about a
MIME multipart with the first part containing the Sieve text and the
second part being the original message/rfc822.

Section 4.2.

Text needs to be added describing the security model for "fileinto".  The
two choices for dealing with POP3 issue are:

(1) Allow the "fileinto" security model to potentially forbid filing into
any folder.

(2) Make "fileinto" optional with an extension name.

I'd rather not have "fileinto" moved to a separate document.  Sieve is
mostly useless for IMAP without it.

Section 4.3.

Need to make it clear that this is an MTA-style forward (e.g. .forward
file) rather than an MUA-style forward (e.g. "forword" button on MUA).

Section 4.5.

I definitely think vacation support is a good idea.  It's incredibly
useful functionality which many people get wrong, so it'd be really nice
to have a standard way to do it right.  Of course this requires adding a
security model for dealing with the reply-history-database.

Section 4.7.

Need to discuss security impact of "toss".  It permits users to actually
lose mail.  This means if a user leaves themselves logged in at a lab
environment a malicious user could change their script to "toss".  Might
want to discuss a security model which forbids the trivial script "toss"
and it's equivalents, and suggest that servers may wish to save tossed
messages for a few days in case it was a script error.

Section 6.

Last sentence contradicts the existance of "toss".

Section 7.

I dislike the suggestion to use version numbers in extension names.
Simply say that if the extension's functionality changes, it MUST use a
different name.




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id JAA21604 for ietf-mta-filters-bks; Wed, 30 Apr 1997 09:52:22 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id JAA21600 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 09:52:20 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIB95S6DJ499G2GF@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 09:52:40 PDT
Date: Wed, 30 Apr 1997 09:54:08 -0700 (PDT)
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Sieve Internationalization
To: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970430092103.16628F-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

You're going to hate me for this, but IETF standards have to deal with
this issue.

Suggestions:

(1) Sieve scripts use UTF-8 [RFC-2044].  This may require some text for
message bodies (either all Sieve messages are US-ASCII/UTF-8 or
non-UTF-8 Sieve messages have to be quoted-printable or base64 encoded).

(2) Use the concept of "comparators" (formerly ordering functions) from
ACAP (can even use ACAP's registry).

Define match-keyword as:

match-keyword = ("contains" / "matches" / "is") ["-" comparator]

I'd be tempted to make the default comparator be "en-nocase" for reasons
I've previously stated, although I'd live with "octet" as the default.

Note that ACAP's registry will require comparator registrations to state
if they're suitable for substring matching (some comparators would only
work with "is").

Finally, comparators would have extension names of "comparator-<name>".

(3) Require Sieve implementations to map MIME header encodings to utf-8.
This is probably the only way to reasonably do international searching.
Tim, you should be able to use code from the Cyrus IMAP server for this.

(4) Language tagging probably isn't necessary in Sieve itself since it
doesn't display strings.  Probably need a way to include a
"Content-Language" header in reply messages, however.



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id JAA21100 for ietf-mta-filters-bks; Wed, 30 Apr 1997 09:18:17 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id JAA21096 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 09:18:14 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIB80CISLY99EXJN@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 09:19:16 PDT
Date: Wed, 30 Apr 1997 09:20:44 -0700 (PDT)
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Readability Suggestions
In-reply-to: <01IIAFCM4ICA99FPS5@INNOSOFT.COM>
To: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970430091827.16628E-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Tue, 29 Apr 1997, Ned Freed wrote:
> "--" becomes problematic the minute you add arithmetic operators to the
> language. Let's not make Ada's mistake here, OK?

Given this point, I withdraw the suggestion.



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id IAA20588 for ietf-mta-filters-bks; Wed, 30 Apr 1997 08:48:36 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id IAA20584 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 08:48:31 -0700 (PDT)
Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II8RYTGB2899FPS5@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 08:48:59 PDT
Date: Wed, 30 Apr 1997 08:42:14 -0700 (PDT)
From: Ned Freed <Ned.Freed@innosoft.com>
Subject: Re: Sieve Readability Suggestions
In-reply-to: "Your message dated Tue, 29 Apr 1997 22:52:55 -0400 (EDT)" <Pine.SOL.3.95L.970429224114.750B-100000@nil.andrew.cmu.edu>
To: Tim Showalter <tjs@andrew.cmu.edu>
Cc: Ned Freed <Ned.Freed@innosoft.com>, MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com>
Message-id: <01IIB6XSE5AQ99FPS5@INNOSOFT.COM>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
References: <01IIAFCM4ICA99FPS5@INNOSOFT.COM>
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

> I agree with this; it'll make indentation prettier, but I can see it as
> being a problem.  I opted for SMTP strings in part because mail and some
> similar programs cope with them; while this is an awkward solution, it makes
> the parser easier.  But if the theory is that novices won't write many
> scripts, I can cope with C-style strings.  (The "reply" feature is one
> that probably should be kind of difficult to use.)  If we don't use
> backslashes above, we can use backslashes here, although I'm partial to
> ANSI C-style string composition ("this is one" " long string").

The ANSI C way seems reasonable enough to me...

However, there is an alternative if you want to keep the SMTP style stuff.
Specifically, instead of making the message send operator special, you add
a lexcical component to the language that is equivalent to a string. For
example:

blah blah blah message text The text of the message starts
after the text token and continues until an SMTP-style end of string is
seen. The entire text object is lexically equivalent to having the same
thing in quotes; it does not imply any sort of operation. Here text is being
used as an argument to the message operator.
..
blah blah blah

I would also recommend that you make the following legal:

blah blah blah message "this is a one liner" blah blah blah

This way we could add, say, a mime_message operator later on:

blah blah blah mime_message text "Content-type: image/gif
Content-transfer-encoding: base64

--base64 encoded stuff here--
..
blah blah blah

				Ned




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA09963 for ietf-mta-filters-bks; Tue, 29 Apr 1997 19:51:32 -0700 (PDT)
Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA09958 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 19:51:29 -0700 (PDT)
Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id WAA23912; Tue, 29 Apr 1997 22:52:57 -0400
Date: Tue, 29 Apr 1997 22:52:55 -0400 (EDT)
From: Tim Showalter <tjs@andrew.cmu.edu>
To: Ned Freed <Ned.Freed@innosoft.com>
cc: MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Readability Suggestions
In-Reply-To: <01IIAFCM4ICA99FPS5@INNOSOFT.COM>
Message-ID: <Pine.SOL.3.95L.970429224114.750B-100000@nil.andrew.cmu.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

I'm going to agree with Ned again because, uh, well, I like what's in the
draft.  I'll go with whatever consensus is, of course.

On Tue, 29 Apr 1997, Ned Freed wrote:

> > > (1) Comments
> 
> "--" becomes problematic the minute you add arithmetic operators to the
> language. Let's not make Ada's mistake here, OK?
> 
> I'm not wild about "#" but the only alternative I see is "!", which might
> interfere with future operator extensions. So "#" really seems like the best
> choice for now.

I like this argument.  of course, I never used AppleScript and spend time
writing shell scripts.

> > > The grammar seems to require a trailing ";" after every command
> > > (including an endif).  I'm starting to think it would be better to simply
> > > have CRLF terminate a command as many of your examples do (and use "\"
> > > CRLF to fold a line).
> 
> I don't like this change either -- we're making the mistake Praxis (and others)
> made here. 

I'm not familiar with Praxis.

The more I think about this change, the less I like it.

> I finally figured out why I dislike the use of SMTP-style message text: It is
> because it makes the grammar context-sensitive: "message" (or "text:") has to
> kick the lexer into a special state. I think this is fairly problematic
> behavior at best. What happens when we want to extend the language by adding
> some other construct that requires message text as an argument.
> 
> I think we really need to bite the bullet here and go back to some sort of
> consistent quoting scheme. I'd recommend using C style string constants,
> possibly with the extension of alloing a string to cross line boundaries.

I agree with this; it'll make indentation prettier, but I can see it as
being a problem.  I opted for SMTP strings in part because mail and some
similar programs cope with them; while this is an awkward solution, it makes
the parser easier.  But if the theory is that novices won't write many
scripts, I can cope with C-style strings.  (The "reply" feature is one
that probably should be kind of difficult to use.)  If we don't use
backslashes above, we can use backslashes here, although I'm partial to
ANSI C-style string composition ("this is one" " long string").

-- 
                                           Tim Showalter tjs@andrew.cmu.edu



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA09865 for ietf-mta-filters-bks; Tue, 29 Apr 1997 19:38:36 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA09861 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 19:38:33 -0700 (PDT)
Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II8RYTGB2899FPS5@INNOSOFT.COM> for ietf-mta-filters@imc.org; Tue, 29 Apr 1997 19:39:11 PDT
Date: Tue, 29 Apr 1997 19:18:38 -0700 (PDT)
From: Ned Freed <Ned.Freed@innosoft.com>
Subject: Re: Sieve Readability Suggestions
In-reply-to: "Your message dated Fri, 25 Apr 1997 15:42:25 -0400 (EDT)" <Pine.SOL.3.95L.970425153338.501B-100000@nil.andrew.cmu.edu>
To: Tim Showalter <tjs@andrew.cmu.edu>
Cc: MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com>
Message-id: <01IIAFCM4ICA99FPS5@INNOSOFT.COM>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
References: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com>
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

> > (1) Comments

> > I suggest using "--" instead of "#" as the comment introducer.  "--" is
> > what Applescript uses, and is more likely to make sense to the average
> > human (rather than a programmer) IMHO.

> I can see this, but I'd like a second opinion.  It seems a little strange to
> me.

"--" becomes problematic the minute you add arithmetic operators to the
language. Let's not make Ada's mistake here, OK?

I'm not wild about "#" but the only alternative I see is "!", which might
interfere with future operator extensions. So "#" really seems like the best
choice for now.

> > The grammar seems to require a trailing ";" after every command
> > (including an endif).  I'm starting to think it would be better to simply
> > have CRLF terminate a command as many of your examples do (and use "\"
> > CRLF to fold a line).

> I'll fix the examples to reflect what's in the draft.  I'm not sure I like
> this change, but it might clean things up.  I'd like a second opinion.

I don't like this change either -- we're making the mistake Praxis (and others)
made here. 

> > You currently use "message" to introduce a block of text.  I'll point out
> > that this isn't really a message, as it's lacking headers.  I suggest
> > using "text:" instead of "message".

> Ok, this is an improvement.

I finally figured out why I dislike the use of SMTP-style message text: It is
because it makes the grammar context-sensitive: "message" (or "text:") has to
kick the lexer into a special state. I think this is fairly problematic
behavior at best. What happens when we want to extend the language by adding
some other construct that requires message text as an argument.

I think we really need to bite the bullet here and go back to some sort of
consistent quoting scheme. I'd recommend using C style string constants,
possibly with the extension of alloing a string to cross line boundaries.

				Ned


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA09495 for ietf-mta-filters-bks; Tue, 29 Apr 1997 19:04:19 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA09491 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 19:04:16 -0700 (PDT)
Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II8RYTGB2899FPS5@INNOSOFT.COM> for ietf-mta-filters@imc.org; Tue, 29 Apr 1997 19:04:43 PDT
Date: Tue, 29 Apr 1997 18:58:50 -0700 (PDT)
From: Ned Freed <Ned.Freed@innosoft.com>
Subject: Re: onerror (was Re: some input on sieve-00)
In-reply-to: "Your message dated Tue, 29 Apr 1997 14:54:10 -0700 (PDT)" <Pine.SOL.3.95.970429145145.15379G-100000@eleanor.innosoft.com>
To: Chris Newman <Chris.Newman@innosoft.com>
Cc: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <01IIAE5UP2EE99FPS5@INNOSOFT.COM>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
References: <SIMEON.9704281737.D@benhur.esys.ca>
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

> On Mon, 28 Apr 1997, Steve Hole wrote:
> > On Sat, 26 Apr 1997 13:20:36 -0400 Jack De Winter <jack@wildbear.on.ca>
> > wrote:
> > > Personally, I would like to see an 'onerror' command that would allow you
> > > to try and trap an error.  This was actually a nice feature on one of
> > > the basics I used in grade school many years ago, as there were some cases
> > > where it came in useful.
> >
> > Sounds like a good idea.

> I'm opposed to an "onerror" command in the base spec.  It's very complex
> and adds very little functionality.

I agree. If "onerror" is to be added there has to be a class of errors
which are:

(1) Aren't purely syntax-related. (You cannot tell what an onerror command is
    supposed to do in the presence of syntax errors.)

(2) Are the result of some anomalous runtime condition. (Anything else should
    have been caught sooner, preferably at the time the rules were submitted.)

(3) Are something something you actually want users to be able to handle.
    (Something like a "cannot submit message because no disk space is
    available" isn't something I want users to be able to catch -- I want to
    deal with it myself.)

I believe that the class of errors that meet all three of these criteria is
empty in the language defined thus far. If anyone has a counterexample I'd
like to hear what it is.

				Ned


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id OAA06543 for ietf-mta-filters-bks; Tue, 29 Apr 1997 14:52:18 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id OAA06539 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 14:52:16 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIA5CG4C3Q99GEUH@INNOSOFT.COM> for ietf-mta-filters@imc.org; Tue, 29 Apr 1997 14:52:43 PDT
Date: Tue, 29 Apr 1997 14:54:10 -0700 (PDT)
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: onerror (was Re: some input on sieve-00)
In-reply-to: <SIMEON.9704281737.D@benhur.esys.ca>
To: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970429145145.15379G-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Mon, 28 Apr 1997, Steve Hole wrote:
> On Sat, 26 Apr 1997 13:20:36 -0400 Jack De Winter <jack@wildbear.on.ca> 
> wrote:
> > Personally, I would like to see an 'onerror' command that would allow you
> > to try and trap an error.  This was actually a nice feature on one of
> > the basics I used in grade school many years ago, as there were some cases
> > where it came in useful.  
> 
> Sounds like a good idea.

I'm opposed to an "onerror" command in the base spec.  It's very complex
and adds very little functionality.





Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA20027 for ietf-mta-filters-bks; Mon, 28 Apr 1997 17:02:30 -0700 (PDT)
Received: from service.esys.ca (root@service.esys.ca [141.118.1.124]) by mail.proper.com (8.8.5/8.7.3) with SMTP id RAA20021 for <ietf-mta-filters@imc.org>; Mon, 28 Apr 1997 17:02:25 -0700 (PDT)
Received: from monet.esys.ca by service.esys.ca with smtp (Smail3.1.28.1 #1) id m0wM0RN-000UlrC; Mon, 28 Apr 97 18:06 MDT
Received: from benhur.esys.ca by monet.esys.ca with smtp (Smail3.1.28.1 #6) id m0wM0OS-000RWrC; Mon, 28 Apr 97 18:03 MDT
From: Steve Hole <steve@esys.ca>
Reply-To: Steve Hole <steve@esys.ca>
To: Ned Freed <Ned.Freed@innosoft.com>
cc: kjj@primenet.com, ietf-mta-filters@imc.org
Subject: Re: some input on sieve-00
Message-ID: <SIMEON.9704281741.E@benhur.esys.ca>
Date: Mon, 28 Apr 1997 17:43:41 -0600 (MDT)
X-Mailer: Simeon for Win32 Version 4.1.1b3 Build (8)
X-Authentication: none
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Sun, 27 Apr 1997 20:59:36 -0700 (PDT) Ned Freed 
<Ned.Freed@innosoft.com> wrote:

> > 6. Errors in Processing a Script
> 
> > The stipulation that implementations SHOULD NOT try to recover from a
> > script with errors is a problem for me.  Aborting within an 'if' clause
> > makes sense to me, but to totally stop filtering if any error is encountered
> > is the wrong thing to do.  I would venture a guess that most users would
> > consider this a very bad characteristic of the mechanism.
> 
> The problem with tring to recover is that you cannot be sure of what the user
> meant and you may end up doing the wrong thing. And in this case the wrong
> thing may mean losing mail.
> 
> However, as a purely practical matter I think this is largely a moot point,
> since I expect most implementations to perform syntax checking at the point 
> where rules are added. I know my implementation will do this.

Exactly.   Remember that in the worst case scenario, mail gets delivered 
to the user's inbox.

Cheers.
---  
Steve Hole			VP,  Research and Development  
The Esys Corporation		EMail: steve@esys.ca
900 10040 - 104 St.		Phone: 403-424-4922  
Edmonton, AB, Canada		Fax:   403-424-4925  
T5J 0Z6  




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA20026 for ietf-mta-filters-bks; Mon, 28 Apr 1997 17:02:29 -0700 (PDT)
Received: from service.esys.ca (root@service.esys.ca [141.118.1.124]) by mail.proper.com (8.8.5/8.7.3) with SMTP id RAA20016 for <ietf-mta-filters@imc.org>; Mon, 28 Apr 1997 17:02:23 -0700 (PDT)
Received: from monet.esys.ca by service.esys.ca with smtp (Smail3.1.28.1 #1) id m0wM0RJ-000UoBC; Mon, 28 Apr 97 18:06 MDT
Received: from benhur.esys.ca by monet.esys.ca with smtp (Smail3.1.28.1 #6) id m0wM0OO-000RWrC; Mon, 28 Apr 97 18:03 MDT
From: Steve Hole <steve@esys.ca>
Reply-To: Steve Hole <steve@esys.ca>
To: Jack De Winter <jack@wildbear.on.ca>
cc: kjj@primenet.com, ietf-mta-filters@imc.org
Subject: Re: some input on sieve-00
Message-ID: <SIMEON.9704281737.D@benhur.esys.ca>
Date: Mon, 28 Apr 1997 17:43:37 -0600 (MDT)
X-Mailer: Simeon for Win32 Version 4.1.1b3 Build (8)
X-Authentication: none
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Sat, 26 Apr 1997 13:20:36 -0400 Jack De Winter <jack@wildbear.on.ca> 
wrote:

> >6. Errors in Processing a Script
> >
> >The stipulation that implementations SHOULD NOT try to recover from a
> >script with errors is a problem for me.  Aborting within an 'if' clause
> >makes sense to me, but to totally stop filtering if any error is encountered
> >is the wrong thing to do.  I would venture a guess that most users would
> >consider this a very bad characteristic of the mechanism.
> 
> Personally, I would like to see an 'onerror' command that would allow you
> to try and trap an error.  This was actually a nice feature on one of
> the basics I used in grade school many years ago, as there were some cases
> where it came in useful.  

Sounds like a good idea.

> >I would like to see an optimization made to the grammar.  In the elements
> >of an if-clause condition that use a list as an argument, I would like to
> >see the ability to not necessarily have the parens for single-item lists.
> >It might also be nice for users to not have to use quotes around words that
> >don't need them.
> 
> I agree on the single item lists, but not on the quotes.  The UA can
> put them in, and it makes parsing a lot simpler.

Exactly.

Wow - Jack and I agree on TWO things at once.   A truly auspicious day.  
Makes me nervous like when I write 500 lines of code and get no syntax 
errors on the first compile :-).

Cheers.

---  
Steve Hole			VP,  Research and Development  
The Esys Corporation		EMail: steve@esys.ca
900 10040 - 104 St.		Phone: 403-424-4922  
Edmonton, AB, Canada		Fax:   403-424-4925  
T5J 0Z6  




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA20025 for ietf-mta-filters-bks; Mon, 28 Apr 1997 17:02:27 -0700 (PDT)
Received: from service.esys.ca (root@service.esys.ca [141.118.1.124]) by mail.proper.com (8.8.5/8.7.3) with SMTP id RAA20011 for <ietf-mta-filters@imc.org>; Mon, 28 Apr 1997 17:02:22 -0700 (PDT)
Received: from monet.esys.ca by service.esys.ca with smtp (Smail3.1.28.1 #1) id m0wM0RF-000Uo7C; Mon, 28 Apr 97 18:06 MDT
Received: from benhur.esys.ca by monet.esys.ca with smtp (Smail3.1.28.1 #6) id m0wM0OL-000RWrC; Mon, 28 Apr 97 18:03 MDT
From: Steve Hole <steve@esys.ca>
Reply-To: Steve Hole <steve@esys.ca>
To: kjj@primenet.com
cc: ietf-mta-filters@imc.org
Subject: Re: some input on sieve-00
Message-ID: <SIMEON.9704281734.C@benhur.esys.ca>
Date: Mon, 28 Apr 1997 17:43:34 -0600 (MDT)
X-Mailer: Simeon for Win32 Version 4.1.1b3 Build (8)
X-Authentication: none
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On 26 Apr 1997 16:34:17 -0000 kjj@primenet.com wrote:

> On the readability front,
> 
> I would like to see an optimization made to the grammar.  In the elements
> of an if-clause condition that use a list as an argument, I would like to
> see the ability to not necessarily have the parens for single-item lists.
> It might also be nice for users to not have to use quotes around words that
> don't need them.

We don't want to get too crazy on the readability front.   In practise, a 
GUI rule builder will be the interface for novice users wanting simple 
things and advanced users will just directly edit the language.

We want to keep this thing parseable.   The parens stripping I can live 
with because that is all semantic analysis anyway, but stripping the 
quotes means two different token types and doubling of the parser trees.  
Let's not do that.

Cheers.
---  
Steve Hole			VP,  Research and Development  
The Esys Corporation		EMail: steve@esys.ca
900 10040 - 104 St.		Phone: 403-424-4922  
Edmonton, AB, Canada		Fax:   403-424-4925  
T5J 0Z6  




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id WAA03812 for ietf-mta-filters-bks; Sun, 27 Apr 1997 22:52:05 -0700 (PDT)
Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id WAA03808 for <ietf-mta-filters@imc.org>; Sun, 27 Apr 1997 22:52:02 -0700 (PDT)
Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id BAA04429; Mon, 28 Apr 1997 01:53:15 -0400
Date: Mon, 28 Apr 1997 01:53:15 -0400 (EDT)
From: Tim Showalter <tjs@andrew.cmu.edu>
Reply-To: Tim Showalter <tjs@andrew.cmu.edu>
To: kjj@primenet.com, Jack De Winter <jack@wildbear.on.ca>, MTA Filters <ietf-mta-filters@imc.org>
Subject: Re: some input on sieve-00
In-Reply-To: <xmf.19970326163417.767.6@localhost.primenet.com>
Message-ID: <Pine.SOL.3.95L.970428013049.2732E-100000@nil.andrew.cmu.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

I agree with Ned completely, but want to add some things.

On 26 Apr 1997 kjj@primenet.com wrote:

> 1. Introduction
> 
> The word 'sort' in 4th paragraph is maybe a bit ambiguous when talking
> about sorting mailboxes.  Maybe something like 'autofile' or something.
> Not a big point, just a comment.

I won't change the word "sort" to "autofile" as I find that to be worse, but
I think the section might be a little vague.  Can someone give me a wrong
interpretation of the section?  Or is it better to change "sort" to
"filter"?

> 2.7 Evaluation
> 
> The second paragraph mentions the possibility that implementations may
> impose restrictions on the number of actions per message.
> 
> I think this is a bad thing. [...]

Implementations are free to disallow the limits, but I want those limits.
We have too many creative users.

> With a restriction like this, the sieve becomes significantly less useful
> for many of the users that are most likely to use it the first place -
> users adept at email.

Can you give an example?  Mailing lists and bizarre autoresponders are best
handled on private machines or by administrators.  If sites need things like
this, and can trust their users, they should turn the limits off.  However,
in order for this to be useful here, or for an ISP, there must be some way
to keep users from writing instant automated mailbombs.

> 6. Errors in Processing a Script
> 
> The stipulation that implementations SHOULD NOT try to recover from a
> script with errors is a problem for me.  Aborting within an 'if' clause
> makes sense to me, but to totally stop filtering if any error is encountered
> is the wrong thing to do.  I would venture a guess that most users would
> consider this a very bad characteristic of the mechanism.

Can you offer a counterproposal?  I can't see another good way to do it; the
syntax errors falling through cause too many problems.  Furthermore, the
design of the language allows one if clause to stop processing; aborting out
of that if clause to allow the rest of the script to run would make it
very difficult to predict control flow during a syntax error.

> I would like to see an optimization made to the grammar.  In the elements
> of an if-clause condition that use a list as an argument, I would like to
> see the ability to not necessarily have the parens for single-item lists.

Sure, this has come up before, but I haven't updated the draft.

> It might also be nice for users to not have to use quotes around words that
> don't need them.

This could cause serious ambiguity problems.  I don't think it's worth it,
especially since novice users probably won't edit scripts by hand.

As far as the errorsto-like trap, I'm against it.  For transitory failures
(which should be addressed in the draft) it's hard to imagine one that can't
be dealt with in some reasonable way (user over quota, hold the message;
some host is down that we need to talk to, hold the reply; etc.)  Everything
else is syntax errors, and as I've said before, I think it's really
dangerous to try and do something smart in case of an error.  it'll only
cause problems when the program goes and does something stupid anyway.

-- 
                                           Tim Showalter tjs@andrew.cmu.edu



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id VAA03314 for ietf-mta-filters-bks; Sun, 27 Apr 1997 21:39:17 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id VAA03309 for <ietf-mta-filters@imc.org>; Sun, 27 Apr 1997 21:39:14 -0700 (PDT)
Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II7NSGJ2M899FOLY@INNOSOFT.COM> for ietf-mta-filters@imc.org; Sun, 27 Apr 1997 21:39:35 PDT
Date: Sun, 27 Apr 1997 20:59:36 -0700 (PDT)
From: Ned Freed <Ned.Freed@innosoft.com>
Subject: Re: some input on sieve-00
In-reply-to: "Your message dated Sat, 26 Apr 1997 16:34:17 +0000" <xmf.19970326163417.767.6@localhost.primenet.com>
To: kjj@primenet.com
Cc: ietf-mta-filters@imc.org
Message-id: <01II7QZ6M5AA99FOLY@INNOSOFT.COM>
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

> 0.2 - Open Issues.

> I'm curious why "fileinto" is being considered for moving into a separate
> document.  Maybe I missed an earlier thread on this.

"fileinto" needs to be a separate, optional facility becase many
implementations will not be able to support it. It also isn't something that's
going to be at all easy to write a security analysis of (something the IETF has
gotten a lot pickier about lately).

> 2.7 Evaluation

> The second paragraph mentions the possibility that implementations may
> impose restrictions on the number of actions per message.

> I think this is a bad thing.  While I understand that one of the design
> goals is to reduce the possibility of using the mechanism for mail-bombing,
> I want to point out that there is sufficient existing practice to allow
> such actions as auto-filing in conjunction with auto-forwarding.

Like it or not, this is going to have to be allowed. ISPs are not going to be
willing to deploy something that cannot impose such limits.

> With a restriction like this, the sieve becomes significantly less useful
> for many of the users that are most likely to use it the first place -
> users adept at email.

The entire point of this exercise isn't to develop something for users adept at
email. There are dozens if not hundreds of languages already available for this
purpose -- I wrote one and released it into the public domain back in 1984, and
my work was based on on the documentation of similar systems that had been
around for years.

The point here is to develop something that every MTA and message store will
want to implement and that can easily be used by various automatic rule
generation utilities. This means that the language cannot require the presence
of constructs that are difficult or impossible for everyone to implement, nor
can it require that limits obviously needed to combat spam cannot exist.

> 6. Errors in Processing a Script

> The stipulation that implementations SHOULD NOT try to recover from a
> script with errors is a problem for me.  Aborting within an 'if' clause
> makes sense to me, but to totally stop filtering if any error is encountered
> is the wrong thing to do.  I would venture a guess that most users would
> consider this a very bad characteristic of the mechanism.

The problem with tring to recover is that you cannot be sure of what the user
meant and you may end up doing the wrong thing. And in this case the wrong
thing may mean losing mail.

However, as a purely practical matter I think this is largely a moot point,
since I expect most implementations to perform syntax checking at the point 
where rules are added. I know my implementation will do this.

> On the readability front,

> I would like to see an optimization made to the grammar.  In the elements
> of an if-clause condition that use a list as an argument, I would like to
> see the ability to not necessarily have the parens for single-item lists.

I don't have a problem with this.

> It might also be nice for users to not have to use quotes around words that
> don't need them.

This is highly problematic, for the simple reason that it may have a very
adverse effect on future extensibility. The ability to distinguish between a
string argument and, say, a function that returns a string, is crucial if we
want to keep the parser implementable with single-token lookahead and the
language backwards-compatible.

> Here's an abbreviated version of the example in 2.5 to illustrate:
>   if any-of (header ("from")
>                     contains ("bart" "homer" "smithers" "burns" "lisa"),
>              header ("subject") contains ("URGENT")) then
>      fileinto "INBOX"
>   endif
> Elimitating spurious parens:
>   if any-of (header "from"
>                     contains ("bart" "homer" "smithers" "burns" "lisa"),
>              header "subject" contains "URGENT") then
>      fileinto "INBOX"
>   endif
> Eliminating sprurious quotes:
>   if any-of (header from contains (bart, homer, smithers, burns, lisa),
>              header subject contains URGENT) then
>      fileinto INBOX
>   endif

And what happens if I want to add a function bart to the language?

> The rule for whether or not quotes were needed would be based on avoidance
> of conflicts in the grammer (eg: whitespace and commas).

> I think this behaviour is more novice-friendly.

I disagree that this is more novice-friendly. What this does is introduce
an inconsistency into the language, and inconsistencies are the single
worst enemy of anyone unfamliar with the language.

It is instructive to look at past language designs in this regard. In the
Praxis language (and to a lesser extent Pascal), for example, the use of
semicolons to delimit statements was deemed to be unfriendly to novices. But
they couldn't be eliminated entirely. The resulting rules for when they were
needed and when they weren't were so complex that nobody could figure them out,
and were found to be a serious hindrance to learning and using the language.
Eventually the optionality of semicolons was effectively abandoned by
language users.

But again this is largely moot. This language design from the outset is focused
on ease of use by generating utilities, not on ease of use by novices. If
it were engineered primarily for direct use by novices it would need to
change in some fairly substantial ways from what we have now.

				Ned


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA13022 for ietf-mta-filters-bks; Sat, 26 Apr 1997 10:19:25 -0700 (PDT)
Received: from lacroix.wildbear.on.ca (lacroix.wildbear.on.ca [199.246.132.198]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA13018 for <ietf-mta-filters@imc.org>; Sat, 26 Apr 1997 10:19:19 -0700 (PDT)
Received: by lacroix.wildbear.on.ca from localhost (router,SLmailNT V3.0 (alpha 10)); Sat, 26 Apr 1997 13:19:25 -0400
Received: by lacroix.wildbear.on.ca from wildside.wildbear.on.ca (199.246.132.193::mail daemon,SLmailNT V3.0 (alpha 10)); Sat, 26 Apr 1997 13:19:24 -0400
Message-Id: <3.0.1.32.19970426132036.00ba70f4@lacroix.wildbear.on.ca>
X-Sender: "Jack De Winter" <jack@wildbear.on.ca>
X-Mailer: Windows Eudora Pro Version 3.0.1 (32)
Date: Sat, 26 Apr 1997 13:20:36 -0400
To: kjj@primenet.com, ietf-mta-filters@imc.org
From: "Jack De Winter" <jack@wildbear.on.ca>
Subject: Re: some input on sieve-00
In-Reply-To: <xmf.19970326163417.767.6@localhost.primenet.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

>6. Errors in Processing a Script
>
>The stipulation that implementations SHOULD NOT try to recover from a
>script with errors is a problem for me.  Aborting within an 'if' clause
>makes sense to me, but to totally stop filtering if any error is encountered
>is the wrong thing to do.  I would venture a guess that most users would
>consider this a very bad characteristic of the mechanism.

Personally, I would like to see an 'onerror' command that would allow you
to try and trap an error.  This was actually a nice feature on one of
the basics I used in grade school many years ago, as there were some cases
where it came in useful.  

>I would like to see an optimization made to the grammar.  In the elements
>of an if-clause condition that use a list as an argument, I would like to
>see the ability to not necessarily have the parens for single-item lists.
>It might also be nice for users to not have to use quotes around words that
>don't need them.

I agree on the single item lists, but not on the quotes.  The UA can
put them in, and it makes parsing a lot simpler.

>Here's an abbreviated version of the example in 2.5 to illustrate:
>  if any-of (header ("from")
>                    contains ("bart" "homer" "smithers" "burns" "lisa"),
>             header ("subject") contains ("URGENT")) then
>     fileinto "INBOX"
>  endif
>Elimitating spurious parens:
>  if any-of (header "from"
>                    contains ("bart" "homer" "smithers" "burns" "lisa"),
>             header "subject" contains "URGENT") then
>     fileinto "INBOX"
>  endif

This makes some sense to me, as the lexical meaning is still unambiguous.

>Eliminating sprurious quotes:
>  if any-of (header from contains (bart, homer, smithers, burns, lisa),
>             header subject contains URGENT) then
>     fileinto INBOX
>  endif
>The rule for whether or not quotes were needed would be based on avoidance
>of conflicts in the grammer (eg: whitespace and commas).
>
>I think this behaviour is more novice-friendly.

While it is novice friendly, the parsing becomes more complicated.
While it might be argued that the implementor can afford to get
complicated, I would rather see the quotes around the strings stay
there, as when I read the script without quotes, it is not immediately
obvious what the strings are and what the verbs are.

regards,
Jack
-------------------------------------------------
Jack De Winter - Wildbear Consulting, Inc.
(519) 884-4498		http://www.wildbear.on.ca/

Author of SLMail for 95 & NT (http://www.seattlelab.com/)


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id JAA12713 for ietf-mta-filters-bks; Sat, 26 Apr 1997 09:32:33 -0700 (PDT)
Received: from localhost.primenet.com (qmailr@ip-20-088.phx.primenet.com [206.165.20.88]) by mail.proper.com (8.8.5/8.7.3) with SMTP id JAA12708 for <ietf-mta-filters@imc.org>; Sat, 26 Apr 1997 09:32:29 -0700 (PDT)
From: kjj@primenet.com
Received: (qmail 845 invoked by uid 501); 26 Apr 1997 16:34:17 -0000
Date: 26 Apr 1997 16:34:17 -0000
To: ietf-mta-filters@imc.org
Subject: some input on sieve-00
X-Mailer: X-MailFolder v0.01
Message-Id: <xmf.19970326163417.767.6@localhost.primenet.com>
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

0.2 - Open Issues.

I'm curious why "fileinto" is being considered for moving into a separate
document.  Maybe I missed an earlier thread on this.

1. Introduction

The word 'sort' in 4th paragraph is maybe a bit ambiguous when talking
about sorting mailboxes.  Maybe something like 'autofile' or something.
Not a big point, just a comment.

2.5.1 Headers
2.5.2 Addresses

There are notes that asks whether these sections is necessary or useful.
I think they are.

2.7 Evaluation

The second paragraph mentions the possibility that implementations may
impose restrictions on the number of actions per message.

I think this is a bad thing.  While I understand that one of the design
goals is to reduce the possibility of using the mechanism for mail-bombing,
I want to point out that there is sufficient existing practice to allow
such actions as auto-filing in conjunction with auto-forwarding.

With a restriction like this, the sieve becomes significantly less useful
for many of the users that are most likely to use it the first place -
users adept at email.

6. Errors in Processing a Script

The stipulation that implementations SHOULD NOT try to recover from a
script with errors is a problem for me.  Aborting within an 'if' clause
makes sense to me, but to totally stop filtering if any error is encountered
is the wrong thing to do.  I would venture a guess that most users would
consider this a very bad characteristic of the mechanism.

On the readability front,

I would like to see an optimization made to the grammar.  In the elements
of an if-clause condition that use a list as an argument, I would like to
see the ability to not necessarily have the parens for single-item lists.
It might also be nice for users to not have to use quotes around words that
don't need them.

Here's an abbreviated version of the example in 2.5 to illustrate:
  if any-of (header ("from")
                    contains ("bart" "homer" "smithers" "burns" "lisa"),
             header ("subject") contains ("URGENT")) then
     fileinto "INBOX"
  endif
Elimitating spurious parens:
  if any-of (header "from"
                    contains ("bart" "homer" "smithers" "burns" "lisa"),
             header "subject" contains "URGENT") then
     fileinto "INBOX"
  endif
Eliminating sprurious quotes:
  if any-of (header from contains (bart, homer, smithers, burns, lisa),
             header subject contains URGENT) then
     fileinto INBOX
  endif
The rule for whether or not quotes were needed would be based on avoidance
of conflicts in the grammer (eg: whitespace and commas).

I think this behaviour is more novice-friendly.
-- 
thx,
kjj


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id IAA12392 for ietf-mta-filters-bks; Sat, 26 Apr 1997 08:53:06 -0700 (PDT)
Received: from localhost.primenet.com (qmailr@ip-20-088.phx.primenet.com [206.165.20.88]) by mail.proper.com (8.8.5/8.7.3) with SMTP id IAA12388 for <ietf-mta-filters@imc.org>; Sat, 26 Apr 1997 08:53:03 -0700 (PDT)
From: kjj@primenet.com
Received: (qmail 820 invoked by uid 501); 26 Apr 1997 15:54:55 -0000
Date: 26 Apr 1997 15:54:55 -0000
Subject: Re: Sieve Readability Suggestions
To: ietf-mta-filters@imc.org
References: <Pine.WNT.4.00.970425161419.-125899C-100000@piney_cac>
In-Reply-To: <Pine.WNT.4.00.970425161419.-125899C-100000@piney_cac> from David L Miller on Fri, 25 Apr 1997 16:23:15 -0700 (PDT)
X-Mailer: X-MailFolder v0.01
Message-Id: <xmf.19970326155454.767.3@localhost.primenet.com>
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

David L Miller <dlm@cac.washington.edu> writes:
>On Fri, 25 Apr 1997, Tim Showalter wrote:
>> On Fri, 25 Apr 1997, Chris Newman wrote:
>> 
>> > (1) Comments
>> > 
>> > I suggest using "--" instead of "#" as the comment introducer.  "--" is
>> > what Applescript uses, and is more likely to make sense to the average
>> > human (rather than a programmer) IMHO.

Only to those familier with applescript.

>> I can see this, but I'd like a second opinion.  It seems a little strange
>> to me.

>Both are used in other languages, so there is a precedent for either
>one.  I can see the argument for matching AppleScript, since there are
>some otherwise novice potential users already familiar with it.  Do
>any other languages targeted to novices use "#"?

I'm not sure worrying about the familiarity of '#' to novices is a big
deal.  It's short and to the point and it's in wide use on at least one
platform (:-).  For users that are 'pathologically-novice' a GUI interface
is more in order anyway.
-- 
thx,
kjj


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id QAA05149 for ietf-mta-filters-bks; Fri, 25 Apr 1997 16:22:03 -0700 (PDT)
Received: from mailhost1.cac.washington.edu (mailhost1.cac.washington.edu [140.142.32.2]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id QAA05145 for <ietf-mta-filters@imc.org>; Fri, 25 Apr 1997 16:22:00 -0700 (PDT)
Received: from piney_cac (D-128-95-135-222.dhcp.washington.edu [128.95.135.222]) by mailhost1.cac.washington.edu (8.8.4+UW96.12/8.8.4+UW97.03) with SMTP id QAA05004; Fri, 25 Apr 1997 16:23:10 -0700
Date: Fri, 25 Apr 1997 16:23:15 -0700 (PDT)
From: "David L. Miller" <dlm@cac.washington.edu>
To: Tim Showalter <tjs@andrew.cmu.edu>
cc: MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Readability Suggestions
In-Reply-To: <Pine.SOL.3.95L.970425153338.501B-100000@nil.andrew.cmu.edu>
Message-ID: <Pine.WNT.4.00.970425161419.-125899C-100000@piney_cac>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Fri, 25 Apr 1997, Tim Showalter wrote:

> On Fri, 25 Apr 1997, Chris Newman wrote:
> 
> > (1) Comments
> > 
> > I suggest using "--" instead of "#" as the comment introducer.  "--" is
> > what Applescript uses, and is more likely to make sense to the average
> > human (rather than a programmer) IMHO.
> 
> I can see this, but I'd like a second opinion.  It seems a little strange to
> me.

Both are used in other languages, so there is a precedent for either
one.  I can see the argument for matching AppleScript, since there are
some otherwise novice potential users already familiar with it.  Do
any other languages targeted to novices use "#"?

> > (4) Trailing ";"
> > 
> > The grammar seems to require a trailing ";" after every command
> > (including an endif).  I'm starting to think it would be better to simply
> > have CRLF terminate a command as many of your examples do (and use "\"
> > CRLF to fold a line).
> 
> I'll fix the examples to reflect what's in the draft.  I'm not sure I like
> this change, but it might clean things up.  I'd like a second opinion.
> 
> I would drop ; from the grammar entirely if this is the case, i.e., no more
> than one command on a line.

Single command/line is fine with me.  I don't think multiple
commands/line serve any particularly useful purpose in sieve... 

--DLM



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id MAA02367 for ietf-mta-filters-bks; Fri, 25 Apr 1997 12:41:22 -0700 (PDT)
Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id MAA02363 for <ietf-mta-filters@imc.org>; Fri, 25 Apr 1997 12:41:16 -0700 (PDT)
Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id PAA12586; Fri, 25 Apr 1997 15:42:25 -0400
Date: Fri, 25 Apr 1997 15:42:25 -0400 (EDT)
From: Tim Showalter <tjs@andrew.cmu.edu>
To: MTA Filters <ietf-mta-filters@imc.org>
cc: Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Readability Suggestions
In-Reply-To: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com>
Message-ID: <Pine.SOL.3.95L.970425153338.501B-100000@nil.andrew.cmu.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

On Fri, 25 Apr 1997, Chris Newman wrote:

> (1) Comments
> 
> I suggest using "--" instead of "#" as the comment introducer.  "--" is
> what Applescript uses, and is more likely to make sense to the average
> human (rather than a programmer) IMHO.

I can see this, but I'd like a second opinion.  It seems a little strange to
me.

> (2) The "header" test
> 
> I'd like it if the <header-name-list> and the <key-list> items could be
> either a list or a single quoted string.  Thus you would get:
> 
> if header "Subject" contains "$$" then
>     toss
> endif

This is probably a good idea.

> (3) The "header" -nocase arguments
> 
> I think nocase should be the default with -case as the modifier.  So you'd
> get "contains", "is", "matches", "contains-case", "is-case",
> "matches-case".  This makes it more readable, IMHO, and makes the
> more common case easier to type.

Ok, this makes sense.
 
> (4) Trailing ";"
> 
> The grammar seems to require a trailing ";" after every command
> (including an endif).  I'm starting to think it would be better to simply
> have CRLF terminate a command as many of your examples do (and use "\"
> CRLF to fold a line).

I'll fix the examples to reflect what's in the draft.  I'm not sure I like
this change, but it might clean things up.  I'd like a second opinion.

I would drop ; from the grammar entirely if this is the case, i.e., no more
than one command on a line.

> (5) Optional ","
> 
> I'm uncomfortable with "," being optional in any-of and all-of lists.  I
> think it should either be required or unnecessary.

It should be required; I'll make sure the next draft reflects this.

> (6) Normal action
> 
> How about calling this "keep"?

Fine with me.

> (7) Message introducer
> 
> You currently use "message" to introduce a block of text.  I'll point out
> that this isn't really a message, as it's lacking headers.  I suggest
> using "text:" instead of "message".

Ok, this is an improvement.

-- 
                                           Tim Showalter tjs@andrew.cmu.edu



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id LAA00989 for ietf-mta-filters-bks; Fri, 25 Apr 1997 11:14:46 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id LAA00985 for <ietf-mta-filters@imc.org>; Fri, 25 Apr 1997 11:14:44 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01II4CL7RLJK99FTK2@INNOSOFT.COM> for ietf-mta-filters@imc.org; Fri, 25 Apr 1997 11:15:05 PDT
Date: Fri, 25 Apr 1997 11:16:32 -0700 (PDT)
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Sieve Readability Suggestions
To: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

I finally made time to read the sieve document carefully.  In general, I
think the language is in good shape.  I've got a few suggestions which I
think may improve sieve's human readability without changing the
complexity of parsing much. It's not bad as it is, but these might make it
slightly better.


(1) Comments

I suggest using "--" instead of "#" as the comment introducer.  "--" is
what Applescript uses, and is more likely to make sense to the average
human (rather than a programmer) IMHO.


(2) The "header" test

I'd like it if the <header-name-list> and the <key-list> items could be
either a list or a single quoted string.  Thus you would get:

if header "Subject" contains "$$" then
    toss
endif

or

if header ("Subject" "From") contains "B1FF" then
    toss
endif


(3) The "header" -nocase arguments

I think nocase should be the default with -case as the modifier.  So you'd
get "contains", "is", "matches", "contains-case", "is-case",
"matches-case".  This makes it more readable, IMHO, and makes the
more common case easier to type.


(4) Trailing ";"

The grammar seems to require a trailing ";" after every command
(including an endif).  I'm starting to think it would be better to simply
have CRLF terminate a command as many of your examples do (and use "\"
CRLF to fold a line).


(5) Optional ","

I'm uncomfortable with "," being optional in any-of and all-of lists.  I
think it should either be required or unnecessary.


(6) Normal action

How about calling this "keep"?

if size under 1M then
    keep
else
    toss
endif


(7) Message introducer

You currently use "message" to introduce a block of text.  I'll point out
that this isn't really a message, as it's lacking headers.  I suggest
using "text:" instead of "message".

               reply text:
               You are not one of the people I regularly correspond with.
               I have deleted your message due to the large volume of
               email I regularly receive.  If you feel that you need to
               speak with me directly, and cannot find your answer in my
               web pages, please send mail with the word "URGENT" in the
               subject line.  Thank you for your time.
               .
               endif



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id NAA28476 for ietf-mta-filters-bks; Tue, 22 Apr 1997 13:17:20 -0700 (PDT)
Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id NAA28472 for <ietf-mta-filters@imc.org>; Tue, 22 Apr 1997 13:17:16 -0700 (PDT)
Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id QAA00934 for ietf-mta-filters@imc.org; Tue, 22 Apr 1997 16:18:18 -0400 (EDT)
Received: via switchmail; Tue, 22 Apr 1997 16:18:18 -0400 (EDT)
Received: from nil.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.cnLFncm00iVT01TE40>; Tue, 22 Apr 1997 16:17:45 -0400 (EDT)
Received: from nil.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr13/tjs/.Outgoing/QF.snLFmca00iVT03Cxw0>; Tue, 22 Apr 1997 16:16:40 -0400 (EDT)
Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.nil.andrew.cmu.edu.sun4x.55 via MS.5.6.nil.andrew.cmu.edu.sun4_51; Tue, 22 Apr 1997 16:16:38 -0400 (EDT)
Message-ID: <onLFmaW00iVT03Cxk0@andrew.cmu.edu>
Date: Tue, 22 Apr 1997 16:16:38 -0400 (EDT)
From: Timothy J Showalter <tjs+@andrew.cmu.edu>
To: ietf-mta-filters@imc.org
Subject: Fwd: I-D ACTION:draft-showalter-sieve-00.txt
References: <9704210942.aa04502@ietf.org>
X-URL: http://www.club.cc.cmu.edu/~tjs/
Organization: Komitet Gosudarstvennoi Bezopaznosti
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

The sieve draft I posted (except for some really trivial changes) has gone
out as an Internet-Draft.

-- 
                                           Tim Showalter tjs@andrew.cmu.edu

---------- Forwarded message begins here ----------

Mime-Version: 1.0
Content-Type: Multipart/Mixed; Boundary="NextPart"
To: IETF-Announce@ietf.org
Sender: ietf-announce-request@ietf.org
From: Internet-Drafts@ietf.org
Reply-to: Internet-Drafts@ietf.org
Subject: I-D ACTION:draft-showalter-sieve-00.txt
Date: Mon, 21 Apr 1997 09:42:37 -0400
X-Orig-Sender: cclark@ietf.org
Message-ID:  <9704210942.aa04502@ietf.org>

--NextPart

 A New Internet-Draft is available from the on-line Internet-Drafts 
 directories.                                                              

       Title     : SIEVE: A Mail Filtering Language                        
       Author(s) : T. Showalter
       Filename  : draft-showalter-sieve-00.txt
       Pages     : 19
       Date      : 04/18/1997

This document describes a mail filtering language for filtering messages at
time of final delivery.  It is designed to be independent of protocol, and 
implementable on either a mail client or mail server which uses multiple 
folders.  It is meant to be extensible, simple, and independent of access 
protocol, mail architecture, and operating systems used to implement it.   

Mail filtering systems are widely used for a variety of reasons, including 
organization of messages (filtering out mailing list messages for separate 
reading).  They are becoming increasingly useful in avoiding unsolicited 
mail.  Existing languages are not consistant across client, server, or 
operating system, and are frequently difficult for users to use.  This 
language is not tied to any particular system or mail architecture and is 
suitable for running on a mail server where users may not be allowed to 
execute arbitrary programs, such as on black box IMAP servers.             

Internet-Drafts are available by anonymous FTP.  Login with the username
"anonymous" and a password of your e-mail address.  After logging in,
type "cd internet-drafts" and then
     "get draft-showalter-sieve-00.txt".
A URL for the Internet-Draft is:
ftp://ds.internic.net/internet-drafts/draft-showalter-sieve-00.txt
 
Internet-Drafts directories are located at:	
	                                                
     o  Africa:  ftp.is.co.za                    
	                                                
     o  Europe:  ftp.nordu.net            	
                 ftp.nis.garr.it                 
	                                                
     o  Pacific Rim: munnari.oz.au               
	                                                
     o  US East Coast: ds.internic.net           
	                                                
     o  US West Coast: ftp.isi.edu               
	                                                
Internet-Drafts are also available by mail.	
	                                                
Send a message to:  mailserv@ds.internic.net. In the body type: 
     "FILE /internet-drafts/draft-showalter-sieve-00.txt".
							
NOTE: The mail server at ds.internic.net can return the document in
      MIME-encoded form by using the "mpack" utility.  To use this
      feature, insert the command "ENCODING mime" before the "FILE"
      command.  To decode the response(s), you will need "munpack" or
      a MIME-compliant mail reader.  Different MIME-compliant mail readers
      exhibit different behavior, especially when dealing with
      "multipart" MIME messages (i.e., documents which have been split
      up into multiple messages), so check your local documentation on
      how to manipulate these messages.
							
							

Below is the data which will enable a MIME compliant mail reader 
implementation to automatically retrieve the ASCII version
of the Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type:  Message/External-body;
        access-type="mail-server";
        server="mailserv@ds.internic.net"

Content-Type: text/plain
Content-ID: <19970418100553.I-D@ietf.org>

ENCODING mime
FILE /internet-drafts/draft-showalter-sieve-00.txt

--OtherAccess
Content-Type:   Message/External-body;
        name="draft-showalter-sieve-00.txt";
        site="ds.internic.net";
        access-type="anon-ftp";
        directory="internet-drafts"

Content-Type: text/plain
Content-ID: <19970418100553.I-D@ietf.org>

--OtherAccess--

--NextPart--



Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA22773 for ietf-mta-filters-bks; Thu, 17 Apr 1997 17:25:04 -0700 (PDT)
Received: from illyana.qualcomm.com (illyana.qualcomm.com [129.46.50.82]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id RAA22765 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 17:25:01 -0700 (PDT)
Received: from [129.46.137.140] (randy-mac.qualcomm.com [129.46.137.140]) by illyana.qualcomm.com (8.8.5/1.4/8.7.2/1.13) with ESMTP id RAA27581 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 17:25:15 -0700 (PDT)
Message-Id: <v03102703af7c6806d7f8@[129.46.137.140]>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Thu, 17 Apr 1997 16:52:21 -0700
To: ietf-mta-filters@imc.org
From: Randall Gellens <Randy@Qualcomm.Com>
Subject: Note: Filtering BOF was *Unofficial*
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

Sorry, I forgot to clarify that the "Filtering BOF" was unofficial.




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id LAA18766 for ietf-mta-filters-bks; Thu, 17 Apr 1997 11:55:29 -0700 (PDT)
Received: from frobozz.qualcomm.com (frobozz.qualcomm.com [129.46.50.79]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id LAA18762 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 11:55:25 -0700 (PDT)
Received: from [129.46.137.140] (randy-mac.qualcomm.com [129.46.137.140]) by frobozz.qualcomm.com (8.8.5/1.4/8.7.2/1.13) with ESMTP id LAA23685 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 11:55:39 -0700 (PDT)
Message-Id: <v03102730af7c1d6638d4@[129.46.137.140]>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Thu, 17 Apr 1997 11:34:33 -0700
To: ietf-mta-filters@imc.org
From: Randall Gellens <Randy@Qualcomm.Com>
Subject: Summary of Filtering BOF
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

Here is my recollection of what happened at the Filtering portion of the
Submit & Filtering BOF at IETF Memphis.  This is reconstructed from memory.


FILTERING:

Discussion of Tim's draft (posted to list and copies passed around).
Consensus: good start, make minor fixups and submit as I-D.  Discussion of
extension mechanism.  Consensus: define capability string, which each
extension adds to.  How client gets string not defined in this spec.  Could
be ACAP, could be shared file, could be magic.  Question: how to write
script such that it can work on different servers, with or without
extensions.  Consensus: need dynamic test for extension supported, either
REQUIRES or IF-EXTENSION or both.  Discussion on how script gets from
client to server.  Consensus: leave for a different draft.  Could be ACAP,
could be file (.filters), could be anything.

Discussion of where filtering occurs.  Consensus: during "final delivery",
which will differ depending on implementation, but is before message goes
into mailbox.

Discussion on specific elements of draft:  IF/ENDIF vs. "{" and "}".  No
resolution; arbitrary choice.  Discussion of blocks: needed or not?  No
consensus for them.  Discussion of BOUNCE action: do we need it?  Does it
generate DSN or MSN or neither?  Does it need parameter for text to be
returned?  Call for dropping BOUNCE since we have REPLY and TRASH.
Discussion on how to specify text of REPLY.  Series of lines with
continuation character?  Length-prefixed series of bytes?  Series of lines
ending in dot by itself (standard SMTP etc.)?  Discussion of line-endings.
CR vs. LF vs. CRLF.  Consensus: add ABNF to allow any of three.  Message
text is series of lines, ending in dot on line by itself.  Question:
doesn't this make it hard for cross-platform clients, or client on one
platform reading filter rules written by client on another platform?
Answer: they have to deal with it now.

Discussion on gearing language for machine-readability or human-readability
(continuation of list thread).  Consensus: current language is pretty good
balance.

Question on complexity of script vs. ability to be handled by GUI in
client.  Answer: if more complex elements (perhaps ELSE) are not used, GUI
can read & display existing ruleset.  If GUI encounters constructs it can't
display, it can punt and open a text window.  This should be added to
document as suggestion to client implementors.

Questions on filtering on envelope contents, syntax to do INCLUDE, filing
into folders other than INBOX, and regular expressions.  Consensus:
filtering on envelope contents to be an extension.  Syntax for INCLUDE to
be in URI notation, but as an extension, not in base spec.  Filing into
folders other than INBOX, and regular expressions to be extensions.

Question on STOP.  Answer: it ends all rules.  Any actions already
specified (for example, filing, replying) get done, but no additional rules
or actions are processed.

Question on what if no actions specified/no rules matched.  Answer: default
action (file into inbox).




Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id SAA01870 for ietf-mta-filters-bks; Mon, 14 Apr 1997 18:04:48 -0700 (PDT)
Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id SAA01866 for <ietf-mta-filters@imc.org>; Mon, 14 Apr 1997 18:04:43 -0700 (PDT)
Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id VAA12524 for <ietf-mta-filters@imc.org>; Mon, 14 Apr 1997 21:05:13 -0400
Date: Mon, 14 Apr 1997 21:05:10 -0400 (EDT)
From: Tim Showalter <tjs@andrew.cmu.edu>
To: MTA Filters <ietf-mta-filters@imc.org>
Subject: sieve draft
Message-ID: <Pine.SOL.3.95L.970414210021.7488B-200000@nil.andrew.cmu.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1804928587-861066310=:7488"
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1804928587-861066310=:7488
Content-Type: TEXT/PLAIN; charset=US-ASCII

This is the latest draft of the SIEVE filtering language.  I've also dropped
a copy at http://www.club.cc.cmu.edu/~tjs/draft-showalter-sieve-00.txt.  I'm
in the process of submitting a copy as an internet-draft.

I plan to do some heavy editoral changes, but I think it's close to complete
in terms of content and features.  Rob has been bugging me to make a good
clean distinction between keywords and commands, and that should happen
before this becomes an RFC.

Any comments would be appreciated!

-- 
                                           Tim Showalter tjs@andrew.cmu.edu

---559023410-1804928587-861066310=:7488
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="draft-showalter-sieve-00.txt"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.3.95L.970414210510.7488C@nil.andrew.cmu.edu>
Content-Description: 

DQoNCg0KDQoNCg0KTmV0d29yayBXb3JraW5nIEdyb3VwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVC4gU2hvd2FsdGVyDQpJbnRl
cm5ldCBEcmFmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDYXJuZWdpZSBNZWxsb24NCkRvY3VtZW50OiBkcmFmdC1zaG93
YWx0ZXItc2lldmUtMDAudHh0ICAgICAgICAgICAgICAgICAgICAgICAgQXBy
aWwgMTk5Nw0KRXhwaXJlIHNvbWV0aW1lIGFmdGVyIGl0J3MgcmVsZWFzZWQN
Cg0KICAgICAgICAgICAgICAgICAgICBTSUVWRTogQSBNYWlsIEZpbHRlcmlu
ZyBMYW5ndWFnZQ0KDQpTdGF0dXMgb2YgdGhpcyBNZW1vDQoNCiAgIFRoaXMg
ZHJhZnQgaGFzIG5vIHN0YW5kaW5nIGFuZCBpcyBmb3IgbGltaXRlZCBkaXN0
cmlidXRpb24uICBQbGVhc2UNCiAgIGRvIG5vdCBpbXBsZW1lbnQgYW55dGhp
bmcgd2l0aGluIHdpdGhvdXQgY29udGFjdGluZyB0aGUgYXV0aG9yLCBhbmQN
CiAgIGV2ZW4gdGhlbiwgdXNlIGV4dHJlbWUgY2F1dGlvbjsgZXZlcnl0aGlu
ZyBpbiB0aGlzIGRyYWZ0IGlzIGNhcnZlZCBpbg0KICAgd2FybSBidXR0ZXIu
ICBQbGVhc2UgdXNlIGRpc2NyZXRpb24gaW4gZGlzdHJpYnV0aW9uLg0KDQog
ICBUaGUgZm9sbG93aW5nIGlzIGhlcmUgZm9yIHdoZW4gd2UgYWN0dWFsbHkg
cHVibGlzaCB0aGlzOg0KDQogICBUaGlzIGRvY3VtZW50IGlzIGFuIEludGVy
bmV0LURyYWZ0LiAgSW50ZXJuZXQtRHJhZnRzIGFyZSB3b3JraW5nDQogICBk
b2N1bWVudHMgb2YgdGhlIEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9y
Y2UgKElFVEYpLCBpdHMgYXJlYXMsDQogICBhbmQgaXRzIHdvcmtpbmcgZ3Jv
dXBzLiAgTm90ZSB0aGF0IG90aGVyIGdyb3VwcyBtYXkgYWxzbyBkaXN0cmli
dXRlDQogICB3b3JraW5nIGRvY3VtZW50cyBhcyBJbnRlcm5ldC1EcmFmdHMu
DQoNCiAgIEludGVybmV0LURyYWZ0cyBhcmUgZHJhZnQgZG9jdW1lbnRzIHZh
bGlkIGZvciBhIG1heGltdW0gb2Ygc2l4IG1vbnRocw0KICAgYW5kIG1heSBi
ZSB1cGRhdGVkLCByZXBsYWNlZCwgb3Igb2Jzb2xldGVkIGJ5IG90aGVyIGRv
Y3VtZW50cyBhdCBhbnkNCiAgIHRpbWUuICBJdCBpcyBpbmFwcHJvcHJpYXRl
IHRvIHVzZSBJbnRlcm5ldC1EcmFmdHMgYXMgcmVmZXJlbmNlDQogICBtYXRl
cmlhbCBvciB0byBjaXRlIHRoZW0gb3RoZXIgdGhhbiBhcyBgYHdvcmsgaW4g
cHJvZ3Jlc3MuJycNCg0KICAgVG8gbGVhcm4gdGhlIGN1cnJlbnQgc3RhdHVz
IG9mIGFueSBJbnRlcm5ldC1EcmFmdCwgcGxlYXNlIGNoZWNrIHRoZQ0KICAg
YGAxaWQtYWJzdHJhY3RzLnR4dCcnIGxpc3RpbmcgY29udGFpbmVkIGluIHRo
ZSBJbnRlcm5ldC0gRHJhZnRzDQogICBTaGFkb3cgRGlyZWN0b3JpZXMgb24g
ZnRwLmlzLmNvLnphIChBZnJpY2EpLCBmdHAubm9yZHUubmV0IChFdXJvcGUp
LA0KICAgbXVubmFyaS5vei5hdSAoUGFjaWZpYyBSaW0pLCBkcy5pbnRlcm5p
Yy5uZXQgKFVTIEVhc3QgQ29hc3QpLCBvcg0KICAgZnRwLmlzaS5lZHUgKFVT
IFdlc3QgQ29hc3QpLg0KDQogICBUaGUgcHJvdG9jb2wgZGlzY3Vzc2VkIGlu
IHRoaXMgZG9jdW1lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBzdWJqZWN0DQog
ICB0byBjaGFuZ2UuICBQZXJzb25zIHBsYW5uaW5nIG9uIGVpdGhlciBpbXBs
ZW1lbnRpbmcgb3IgdXNpbmcgdGhpcw0KICAgcHJvdG9jb2wgYXJlIFNUUk9O
R0xZIFVSR0VEIHRvIGdldCBpbiB0b3VjaCB3aXRoIHRoZSBhdXRob3IgYmVm
b3JlDQogICBlbWJhcmtpbmcgb24gc3VjaCBhIHByb2plY3QuDQoNCkFic3Ry
YWN0DQoNCiAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGEgbWFpbCBmaWx0
ZXJpbmcgbGFuZ3VhZ2UgZm9yIGZpbHRlcmluZw0KICAgbWVzc2FnZXMgYXQg
dGltZSBvZiBmaW5hbCBkZWxpdmVyeS4gIEl0IGlzIGRlc2lnbmVkIHRvIGJl
IGluZGVwZW5kZW50DQogICBvZiBwcm90b2NvbCwgYW5kIGltcGxlbWVudGFi
bGUgb24gZWl0aGVyIGEgbWFpbCBjbGllbnQgb3IgbWFpbCBzZXJ2ZXINCiAg
IHdoaWNoIHVzZXMgbXVsdGlwbGUgZm9sZGVycy4gIEl0IGlzIG1lYW50IHRv
IGJlIGV4dGVuc2libGUsIHNpbXBsZSwNCiAgIGFuZCBpbmRlcGVuZGVudCBv
ZiBhY2Nlc3MgcHJvdG9jb2wsIG1haWwgYXJjaGl0ZWN0dXJlLCBhbmQgb3Bl
cmF0aW5nDQogICBzeXN0ZW1zIHVzZWQgdG8gaW1wbGVtZW50IGl0Lg0KDQog
ICBNYWlsIGZpbHRlcmluZyBzeXN0ZW1zIGFyZSB3aWRlbHkgdXNlZCBmb3Ig
YSB2YXJpZXR5IG9mIHJlYXNvbnMsDQogICBpbmNsdWRpbmcgb3JnYW5pemF0
aW9uIG9mIG1lc3NhZ2VzIChmaWx0ZXJpbmcgb3V0IG1haWxpbmcgbGlzdA0K
DQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDFdDQoMDQpkcmFmdC1z
aG93YWx0ZXItc2lldmUtUFJFLnR4dCAgICBTSUVWRSAgICAgICAgICAgICAg
ICAgICAgICAgIDggQXByIDE5OTcNCg0KDQogICBtZXNzYWdlcyBmb3Igc2Vw
YXJhdGUgcmVhZGluZykuICBUaGV5IGFyZSBiZWNvbWluZyBpbmNyZWFzaW5n
bHkNCiAgIHVzZWZ1bCBpbiBhdm9pZGluZyB1bnNvbGljaXRlZCBtYWlsLiAg
RXhpc3RpbmcgbGFuZ3VhZ2VzIGFyZSBub3QNCiAgIGNvbnNpc3RhbnQgYWNy
b3NzIGNsaWVudCwgc2VydmVyLCBvciBvcGVyYXRpbmcgc3lzdGVtLCBhbmQg
YXJlDQogICBmcmVxdWVudGx5IGRpZmZpY3VsdCBmb3IgdXNlcnMgdG8gdXNl
LiAgVGhpcyBsYW5ndWFnZSBpcyBub3QgdGllZCB0bw0KICAgYW55IHBhcnRp
Y3VsYXIgc3lzdGVtIG9yIG1haWwgYXJjaGl0ZWN0dXJlIGFuZCBpcyBzdWl0
YWJsZSBmb3INCiAgIHJ1bm5pbmcgb24gYSBtYWlsIHNlcnZlciB3aGVyZSB1
c2VycyBtYXkgbm90IGJlIGFsbG93ZWQgdG8gZXhlY3V0ZQ0KICAgYXJiaXRy
YXJ5IHByb2dyYW1zLCBzdWNoIGFzIG9uIGJsYWNrIGJveCBJTUFQIHNlcnZl
cnMuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K
DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN
Cg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDJdDQoMDQpkcmFmdC1zaG93
YWx0ZXItc2lldmUtUFJFLnR4dCAgICBTSUVWRSAgICAgICAgICAgICAgICAg
ICAgICAgIDggQXByIDE5OTcNCg0KDQogICBUYWJsZSBvZiBDb250ZW50cw0K
DQogICBUaGlzIGRvY3VtZW50IGlzIGNvbnRlbnQtZnJlZS4NCg0KDQoNCg0K
DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN
Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNClNo
b3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbUGFnZSAzXQ0KDA0KZHJhZnQtc2hvd2FsdGVy
LXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAg
ICA4IEFwciAxOTk3DQoNCg0KMC4gICBVbmZpbmlzaGVkDQoNCiAgIDAuMS4g
S25vd24gV2Vha25lc3Nlcw0KDQogICBUaGUgZm9sbG93aW5nIHN1Z2dlc3Rp
b25zIGhhdmUgYmVlbiBtYWRlLCBhbmQgd2lsbCBwcm9iYWJseSBiZQ0KICAg
YWRkcmVzc2VkIGJ5IGV4dGVuc2lvbnMuDQoNCiAgIEFuIGV4dGVuc2lvbiBm
b3IgcmVndWxhciBleHByZXNzaW9ucyB3aWxsIGJlIHdyaXR0ZW4uICBXaGls
ZSByZWd1bGFyDQogICBleHByZXNzaW9ucyBhcmUgb2YgcXVlc3Rpb25hYmxl
IHVzZWZ1bG5lc3MgZm9yIHVzZXJzLCB0aGUgcHJvZ3JhbW1lcnMNCiAgIHdy
aXRpbmcgaW1wbGVtZW50YXRpb25zIGRlc3BlcmF0ZWx5IHdhbnQgcmVndWxh
ciBleHByZXNzaW9ucy4NCg0KICAgRW52ZWxvcGUtbWF0Y2hpbmcgY29tbWFu
ZHMgYXJlIG5vdCByZWFkaWx5IHN1cHBvcnRlZCBieSBhbGwgbWFpbA0KICAg
c3lzdGVtcywgYW5kIHB1dHRpbmcgdGhlbSBpbiB0aGUgZHJhZnQgd2lsbCBy
ZXN1bHQgaW4gYSBzeXN0ZW0gdGhhdA0KICAgY2Fubm90IGJlIGltcGxlbWVu
dGVkIGJ5IGEgbWFpbCBhcmNoaXRlY3R1cmUgdGhhdCBkb2VzIG5vdCBhZGVx
dWF0ZWx5DQogICBzdG9yZSBlbnZlbG9wZXMuDQoNCiAgICJEZXRhaWxlZCIg
YWRkcmVzc2luZyBvciAic3ViYWRkcmVzc2luZyIgKGkuZS4sIHRoZSAiZm1o
IiBpbiBhbg0KICAgYWRkcmVzcyAidGpzK2ZtaEBhbmRyZXcuY211LmVkdSIp
IGlzIG5vdCBoYW5kbGVkLCBhbmQgd2lsbCBiZSBtb3ZlZA0KICAgdG8gYW4g
ZXh0ZW5zaW9uIGZvciB0aG9zZSBzeXN0ZW1zIHRoYXQgb2ZmZXIgaXQuDQoN
CiAgIFRoZSBuZXdsaW5lIHByb2JsZW0gaXMgcmVsYXRpdmVseSwgYnV0IG5v
dCBjb21wbGV0ZWx5LCBzb2x2ZWQuICBXZSdsbA0KICAgYmUgYXJndWluZyB0
aGlzIHVudGlsIHRoZSBlbmQgb2YgdGltZS4NCg0KICAgQSBwcmV2aW91cyB2
ZXJzaW9uIGluY2x1ZGVkIGEgInZhbGlkIiB0ZXN0LiAgSSBoYXZlIHRlbnRh
dGl2ZWx5DQogICByZW1vdmVkIGl0IGJlY2F1c2UgUmFuZHkgaGFkIG5vdGVk
IGl0IHdhcyB0b28gZnV6enkgdG8gaW1wbGVtZW50LCBhbmQNCiAgIHRoYXQn
cyBwcm9iYWJseSB0cnVlLg0KDQogICBUaGUgZm9ybWFsIGdyYW1tYXIgaXMg
bm90IGNvbXBsZXRlLCBhbmQgbmVlZHMgdG8gYmUgcmV2aXNlZCB0byBtYWtl
DQogICB0aGUgYmVzdCB1c2Ugb2YgQUJORiwgd2hhdGV2ZXIgaXRzIGZpbmFs
IHN0YXRlIGlzLg0KDQogICBNeSBrbm93bGVkZ2Ugb2YgZW1haWwgaXMgbm90
IGNvbXByZWhlbnNpdmUsIGFuZCBhcyBhIHJlc3VsdCwgdGhlcmUNCiAgIG1p
Z2h0IGJlIGEgYmV0dGVyIHdheSB0byBleHByZXNzIHNvbWUgb2YgdGhlIGNv
bmNlcHRzIGluIGhlcmUuDQoNCiAgIEFuICJpbmNsdWRlIiBjb21tYW5kIGlz
IG5vdCBpbmNsdWRlZCwgYnV0IGhhcyBiZWVuIHN1Z2dlc3RlZCBmb3IgYW4N
CiAgIGV4dGVuc2lvbi4NCg0KICAgSSBuZWVkIHRvIHJ1biBhIHNwZWxsaW5n
IGNoZWNrZXIgb24gdGhpcyBkb2N1bWVudC4NCg0KICAgSSBoYXRlIG5yb2Zm
Lg0KDQogICAwLjIuIE9wZW4gSXNzdWVzDQoNCiAgIERvICJmaWxlaW50byIg
Y29tbWFuZHMgbmVlZCB0byBiZSBtb3ZlZCB0byBhIHNlcGFyYXRlIGRvY3Vt
ZW50Pw0KDQoxLiAgIEludHJvZHVjdGlvbg0KDQogICBUaGVyZSBhcmUgYSBu
dW1iZXIgb2YgcmVhc29ucyB0byB1c2UgYSBmaWx0ZXJpbmcgc3lzdGVtLiAg
TWFpbA0KICAgdHJhZmZpYyBmb3IgbW9zdCB1c2VycyBoYXMgYmVlbiBpbmNy
ZWFzaW5nIGR1ZSBib3RoIHRvIGluY3JlYXNlZA0KDQoNCg0KU2hvd2FsdGVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtQYWdlIDRdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUt
UFJFLnR4dCAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgIDggQXBy
IDE5OTcNCg0KDQogICB1c2FnZSBvZiBlLW1haWwsIHRoZSBlbWVyZ2VuY2Ug
b2YgdW5zb2xpY2l0ZWQgZW1haWwgYXMgYSBmb3JtIG9mDQogICBhZHZlcnRp
c2luZywgYW5kIGluY3JlYXNlZCB1c2FnZSBvZiBtYWlsaW5nIGxpc3RzLg0K
DQogICBUaGlzIGxhbmd1YWdlIGlzIG9mZmVyZWQgaW4gb3JkZXIgdG8gdHJ5
IGFuZCBwcm92aWRlIGEgc3RhbmRhcmQNCiAgIGxhbmd1YWdlIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gY3JlYXRlIGZpbHRlcnMgZm9yIGUtbWFpbC4gIEl0IGlz
IG5vdA0KICAgdGllZCB0byBhbnkgcGFydGljdWxhciBvcGVyYXRpbmcgc3lz
dGVtIG9yIG1haWwgYXJjaGl0ZWN0dXJlLiAgSXQNCiAgIHJlcXVpcmVzIHRo
ZSB1c2Ugb2YgW0lNQUlMXS1jb21wbGlhbnQgbWVzc2FnZXMgYW5kIHN1cHBv
cnQgb2YNCiAgIG11bHRpcGxlIGZvbGRlcnMsIGJ1dCBzaG91bGQgd29yayB3
aXRoIGEgd2lkZSB2YXJpZXR5IG9mIHN5c3RlbXMgdGhhdA0KICAgc3VwcG9y
dCB0aGVzZSBjcml0ZXJpYS4NCg0KICAgVGhlIGxhbmd1YWdlIGlzIHBvd2Vy
ZnVsIGVub3VnaCB0byBiZSB1c2VmdWwsIGJ1dCBsaW1pdGVkIGluIHBvd2Vy
IGluDQogICBvcmRlciB0byBhbGxvdyBmb3IgYSByZWFzb25hYmx5IGJ1bGxl
dHByb29mIHNlcnZlci1zaWRlIGZpbHRlcmluZw0KICAgc3lzdGVtLiAgVGhl
IGxhbmd1YWdlIGlzIG5vdCBUdXJpbmctY29tcGxldGUsIGFuZCBwcm92aWRl
cyBubyB3YXkgdG8NCiAgIHdyaXRlIGEgbG9vcCBvciBhIGZ1bmN0aW9uLCBu
b3IgYXJlIHZhcmlhYmxlcyBhcmUgcHJvdmlkZWQuICBUaGUNCiAgIGludGVu
dGlvbiBpcyB0byBtYWtlIGl0IGltcG9zc2libGUgZm9yIHVzZXJzIHRvIGRv
IGFueXRoaW5nIG1vcmUNCiAgIGNvbXBsZXggdGhhbiB3cml0ZSBzaW1wbGUg
bWFpbCBmaWx0ZXJzLg0KDQogICBJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGxh
bmd1YWdlIGFyZSBleHBlY3RlZCB0byB0YWtlIHBsYWNlIGF0IHRpbWUgb2YN
CiAgIGZpbmFsIGRlbGl2ZXJ5LiAgSW4gc3lzdGVtcyB3aGVyZSB0aGUgTVRB
IGRvZXMgZmluYWwgZGVsaXZlcnkgLS0NCiAgIElNQVA0IGFuZCB0cmFkaXRp
b25hbCBVTklYIG1haWwsIGZvciBpbnN0YW5jZSwgaXQgaXMgcmVhc29uYWJs
ZSB0bw0KICAgc29ydCB3aGVuIHRoZSBNVEEgZGVwb3NpdHMgbWFpbCBpbnRv
IHRoZSB1c2VyJ3MgbWFpbGJveC4gIElmIHRoZSBNVEENCiAgIGRvZXMgbm90
IGRvIGZpbmFsIGRlbGl2ZXJ5LCBvciBsYWNrcyB0aGUgcG93ZXIgdG8gc29y
dCBpbnRvIHNlcGFyYXRlDQogICBtYWlsYm94ZXMgKGFzIGlzIHRoZSBjYXNl
IHVuZGVyIFBPUDMpLCB0aGUgTVVBIG11c3QgZG8gZmlsdGVyaW5nIGludG8N
CiAgIGxvY2FsIGZpbHRlcnMuDQoNCiAgIEV4cGVyaWVuY2UgYXQgQ2FybmVn
aWUgTWVsbG9uIGhhcyBzaG93biB0aGF0IGlmIGEgZmlsdGVyaW5nIHN5c3Rl
bSBpcw0KICAgbWFkZSBhdmFpbGFibGUgdG8gdXNlcnMsIG1hbnkgd2lsbCBt
YWtlIHVzZSBvZiBpdCBpbiBvcmRlciB0byBmaWxlDQogICBtZXNzYWdlcyBm
cm9tIHNwZWNpZmljIHVzZXJzIG9yIG1haWxpbmcgbGlzdHMuICBIb3dldmVy
LCBtYW55IHVzZXJzDQogICBkaWQgbm90IG1ha2UgdXNlIG9mIHRoZSBBbmRy
ZXcgc3lzdGVtJ3MgRkxBTUVTIGZpbHRlcmluZyBsYW5ndWFnZSBkdWUNCiAg
IHRvIGRpZmZpY3VsdHkgaW4gcHJvZ3JhbW1pbmcgaXQuICBEdWUgdG8gdGhp
cyBleHBlY3RhdGlvbiwgdGhpcw0KICAgbGFuZ3VhZ2UgaGFzIGJlZW4gbWFk
ZSBzaW1wbGUgZW5vdWdoIHRvIGFsbG93IG1hbnkgdXNlcnMgdG8gbWFrZSB1
c2UNCiAgIG9mIGl0Lg0KDQoxLjEuIENvbnZlbnRpb25zIHVzZWQgaW4gdGhp
cyBkb2N1bWVudA0KDQogICBMaW5lIGJyZWFrcyBoYXZlIGJlZW4gaW5zZXJ0
ZWQgZm9yIHJlYWRhYmlsaXR5Lg0KDQogICBJbiB0aGUgc2VjdGlvbnMgb2Yg
dGhpcyBkb2N1bWVudCB0aGF0IGRpc2N1c3MgdGhlIHJlcXVpcmVtZW50cyBv
Zg0KICAgdmFyaW91cyBrZXl3b3JkcyBhbmQgb3BlcmF0b3JzLCB0aGUgZm9s
bG93aW5nIGNvbnZlbnRpb25zIGhhdmUgYmVlbg0KICAgYWRvcHRlZC4NCg0K
ICAgRWFjaCBzZWN0aW9uIG9uIGFuIHRlc3QsIGFjdGlvbiwgb3IgY29uZGl0
aW9uYWwgaGFzIGEgbGluZSBsYWJlbGVkDQogICAiU3ludGF4OiIuICBUaGlz
IGxpbmUgZGVzY3JpYmVzIHRoZSBhcmd1bWVudHMgZWFjaCBjb21tYW5kIHJl
cXVpcmVzLg0KICAgUmVxdWlyZWQgYXJndW1lbnRzIGFyZSBsaXN0ZWQgaW5z
aWRlIGFuZ2xlIGJyYWNrZXRzICgiPCIgYW5kICI+IikuDQogICBPcHRpb25h
bCBhcmd1bWVudHMgYXJlIGxpc3RlZCBpbnNpZGUgc3F1YXJlIGJyYWNrZXRz
ICgiWyIgYW5kICJdIikuDQogICBUaGUgZm9ybWFsIGdyYW1tYXIgZm9yIHRo
ZXNlIGNvbW1hbmRzIGlzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDEwIGFuZA0K
ICAgaXMgdGhlIGF1dGhvcml0YXRpdmUgcmVmZXJlbmNlIG9uIGhvdyB0byBj
b25zdHJ1Y3QgdGhlc2UgY29tbWFuZHMuDQoNCg0KDQoNClNob3dhbHRlciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbUGFnZSA1XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBS
RS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFwciAx
OTk3DQoNCg0KICAgVGhlIGtleSB3b3JkcyAiTVVTVCIsICJNVVNUIE5PVCIs
ICJTSE9VTEQiLCAiU0hPVUxEIE5PVCIsICJDQU4iLCBhbmQNCiAgICJNQVki
IGluIHRoaXMgZG9jdW1lbnQgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGRl
ZmluZWQgaW4NCiAgIFtLRVlXT1JEU10uDQoNCjEuMi4gRXhhbXBsZSBtYWls
IG1lc3NhZ2VzDQoNCiAgIFRoZSBmb2xsb3dpbmcgbWFpbCBtZXNzYWdlcyB3
aWxsIGJlIHVzZWQgdGhyb3VnaG91dCB0aGlzIGRvY3VtZW50IGluDQogICBl
eGFtcGxlcy4NCg0KICAgTWVzc2FnZSBBDQogICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
ICAgRGF0ZTogVHVlLCAxIEFwciAxOTk3IDA5OjA2OjMxIC0wODAwIChQU1Qp
DQogICBGcm9tOiBjb3lvdGVAYW52aWwuZGVtZW50aWEub3JnDQogICBUbzog
cm9hZHJ1bm5lckBiaXJkc2VlZC50aGVrZWVwLm9yZw0KICAgU3ViamVjdDog
SSBoYXZlIGEgcHJlc2VudCBmb3IgeW91DQoNCiAgIExvb2ssIEknbSBzb3Jy
eSBhYm91dCB0aGUgd2hvbGUgYW52aWwgdGhpbmcsIGJ1dCBJIGNhbiBtYWtl
DQogICBpdCB1cCB0byB5b3UuICBJJ3ZlIGdvdCBzb21lIGdyZWF0IGJpcmRz
ZWVkIG92ZXIgaGVyZSBhdA0KICAgbXkgcGxhY2UgLS0gdG9wIG9mIHRoZSBs
aW5lIHN0dWZmIC0tIGFuZCBpZiB5b3UgY29tZSBieSwNCiAgIEknbGwgaGF2
ZSBpdCBhbGwgd3JhcHBlZCB1cCBmb3IgeW91LiAgSSdtIHJlYWxseSBzb3Jy
eSBmb3INCiAgIGFsbCB0aGUgcHJvYmxlbXMgSSd2ZSBjYXVzZWQgZm9yIHlv
dSBvdmVyIHRoZSB5ZWFycywgYW5kDQogICBJIGtub3cgd2UgY2FuIHdvcmsg
dGhpcyBvdXQuDQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICBNZXNzYWdlIEIN
CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQogICBGcm9tOiB5b3Vjb3VsZGJlcmljaCFA
cmVwbHktYnktcG9zdGFsLW1haWwNCiAgIFNlbmRlcjogYjFmZkB6bmljLm5l
dA0KICAgVG86IHJ1YmVAem5pYy5uZXQNCiAgIERhdGU6ICBNb24sIDMxIE1h
ciAxOTk3IDE4OjI2OjEwIC0wODAwIChQU1QpDQogICBTdWJqZWN0OiAkJCQg
WU9VLCBUT08sIENBTiBCRSBBIE1JTExJT05BSVJFISAkJCQNCg0KICAgWU9V
IE1BWSBIQVZFIEFMUkVBRFkgV09OIFRFTiBNSUxMSU9OIERPTExBUlMsIEJV
VCBJIERPVUJUDQogICBJVCEgIFNPIEpVU1QgUE9TVCBUSElTIFRPIFNJWCBI
VU5EUkVEIE5FV1NHUk9VUFMhICBJVCBXSUxMDQogICBHVUFSQU5URUUgVEhB
VCBZT1UgR0VUIEFUIExFQVNUIEZJVkUgUkVTUE9OU0VTIFdJVEggTU9ORVkh
DQogICBNT05FWSEgTU9ORVkhIENPTEQgSEFSRCBDQVNIISAgWU9VIFdJTEwg
UkVDRUlWRSBPVkVSDQogICAkMjAsMDAwIElOIExFU1MgVEhBTiBUV08gTU9O
VEhTISAgQU5EIElUJ1MgTEVHQUwhISEhISEhISENCiAgICEhISEhISEhISEh
ISEhISEhITExMTExMTExMSEhISEhISExMTExMTExMTExMSEhMSAgSlVTVA0K
ICAgU0VORCAkNSBJTiBTTUFMTCwgVU5NQVJLRUQgQklMTFMgVE8gVEhFIEFE
RFJFU1NFUyBCRUxPVyENCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCjIuICAgRGVz
aWduDQoNCjIuMS4gRm9ybSBvZiB0aGUgbGFuZ3VhZ2UNCg0KICAgVGhpcyBs
YW5ndWFnZSBpcyBtYWRlIHVwIGFzIGEgc2V0IG9mIGNvbW1hbmRzLiAgRWFj
aCBjb21tYW5kIGlzDQogICBlaXRoZXIgYW4gYWN0aW9uIG9yIGEgY29uZGl0
aW9uYWwuICBFYWNoIGNvbmRpdGlvbmFsIGNvbnRhaW5zIGEgdGVzdDsNCiAg
IGRlcGVuZGluZyBvbiB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdCwgb25lIHNl
dCBvZiBjb21tYW5kcyBpbiBhDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W1BhZ2UgNl0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1QUkUudHh0ICAg
IFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAgOCBBcHIgMTk5Nw0KDQoN
CiAgIGNvbnRyb2wgc3RydWN0dXJlIGlzIHRha2VuLg0KDQoyLjIuIFdoaXRl
c3BhY2UNCg0KICAgV2hpdGVzcGFjZSBpcyB1c2VkIHRvIHNlcGFyYXRlIGNv
bW1hbmRzLiAgV2hpdGVzcGFjZSBpcyBtYWRlIHVwIG9mDQogICB0YWJzLCBu
ZXdsaW5lcyAod2hpY2ggY2FuIGJlIENSLCBMRiwgb3IgYm90aCksIGFuZCB0
aGUgc3BhY2UNCiAgIGNoYXJhY3Rlci4gIFRoZSBhbW91bnQgb2Ygd2hpdGVz
cGFjZSB1c2VkIGlzIG5vdCBzaWduaWZpY2FudC4NCg0KMi4zLiBDb21tZW50
cw0KDQogICBDb21tZW50cyBiZWdpbiB3aXRoIGEgIiMiIGNoYXJhY3RlciB0
aGF0IGlzIG5vdCBjb250YWluZWQgd2l0aGluIGENCiAgIHN0cmluZyBhbmQg
Y29udGludWUgdW50aWwgdGhlIG5leHQgbmV3bGluZS4NCg0KDQogICBFeGFt
cGxlOiAgICBpZiBzaXplIG92ZXIgMTAwSyB0aGVuICMgdGhpcyBpcyBhIGNv
bW1lbnQNCiAgICAgICAgICAgICAgICAgICAgdG9zcw0KICAgICAgICAgICAg
ICAgZW5kaWYNCg0KMi40LiBOdW1iZXJzDQoNCiAgICAgICAgICAgICAgIE51
bWJlcnMgYXJlIG5vcm1hbGx5IGdpdmVuIGFzIG9yZGluYXJ5IGRlY2ltYWwg
bnVtYmVycy4NCiAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRob3NlIG51bWJl
cnMgdGhhdCBoYXZlIGEgdGVuZGVuY3kgdG8gYmUgZmFpcmx5DQogICAgICAg
ICAgICAgICBsYXJnZSwgc3VjaCBhcyBtZXNzYWdlIHNpemVzLCBzdWNoIGFz
IG1lc3NhZ2Ugc2l6ZXMsIG1heQ0KICAgICAgICAgICAgICAgaGF2ZSBhICJL
IiwgIk0iLCBvciAiRyIgYXBwZW5kZWQgdG8gaW5kaWNhdGUgYSBtdWx0aXBs
ZQ0KICAgICAgICAgICAgICAgb2YgYSBiYXNlLXR3byBudW1iZXIuICBUbyBi
ZSBjb21wYXJhYmxlIHdpdGggdGhlIHBvd2VyLQ0KICAgICAgICAgICAgICAg
b2YtdHdvLWJhc2VkIHZlcnNpb25zIG9mIFNJIHVuaXRzIHRoYXQgY29tcHV0
ZXJzIGZyZS0NCiAgICAgICAgICAgICAgIHF1ZW50bHkgdXNlLCBLIHNwZWNp
ZmllcyBraWxvLCBvciAxLDAyNCAoMl4xMCkgdGltZXMgdGhlDQogICAgICAg
ICAgICAgICB2YWx1ZSBvZiB0aGUgbnVtYmVyOyBNIHNwZWNpZmllcyBtZWdh
LCBvciAxLDA0OCw1NzYNCiAgICAgICAgICAgICAgICgyXjIwKSB0aW1lcyB0
aGUgdmFsdWUgb2YgdGhlIG51bWJlcjsgYW5kIEcgc3BlY2lmaWVzDQogICAg
ICAgICAgICAgICBnaWdhLCBvciAxLDA3Myw3NDEsODI0ICgyXjMwKSB0aW1l
cyB0aGUgdmFsdWUgb2YgdGhlDQogICAgICAgICAgICAgICBudW1iZXIuDQoN
CiAgICAgICAgICAgICAgIE51bWJlcnMgYXJlIGxpbWl0ZWQgdG8gMzIgYml0
cyBieSB0aGlzIHNwZWNpZmljYXRpb24uDQoNCiAgICAgICAgICAgICAgIFtP
UEVOOiBJZiBudW1iZXJzIGFyZSBsaW1pdGVkIHRvIDMyIGJpdHMsIGdpZ2Fi
aXQtc2l6ZWQNCiAgICAgICAgICAgICAgIG51bWJlcnMgcHJvYmFibHkgYXJl
bid0IHZlcnkgdXNlZnVsLiAgU2hvdWxkIEkgcmVtb3ZlDQogICAgICAgICAg
ICAgICB0aGVtP10NCg0KMi41LiBTdHJpbmdzDQoNCiAgICAgICAgICAgICAg
IFNjcmlwdHMgaW52b2x2ZSBsYXJnZSBudW1iZXJzIG9mIHN0cmluZ3MuICBU
eXBpY2FsbHksDQogICAgICAgICAgICAgICBzaG9ydCBxdW90ZWQgc3RyaW5n
cyBzdWZmaWNlIGZvciBtb3N0IHVzZXMsIGJ1dCBhIG1vcmUNCiAgICAgICAg
ICAgICAgIGNvbnZlbmllbnQgZm9ybSBpcyBwcm92aWRlZCBmb3IgbG9uZ2Vy
IHN0cmluZ3MuDQoNCiAgICAgICAgICAgICAgIEEgcXVvdGVkIHN0cmluZyBz
dGFydHMgYW5kIGVuZHMgd2l0aCBhIHNpbmdsZSBkb3VibGUNCiAgICAgICAg
ICAgICAgIHF1b3RlICh0aGUgIiBjaGFyYWN0ZXIpLiAgQSBiYWNrc2xhc2gg
KCJcIikgaW5zaWRlIG9mIGENCiAgICAgICAgICAgICAgIHF1b3RlZCBzdHJp
bmcgaXMgZm9sbG93ZWQgYnkgZWl0aGVyIGFub3RoZXIgYmFja3NsYXNoIG9y
DQogICAgICAgICAgICAgICBhIGRvdWJsZSBxdW90ZS4gIFRoaXMgdHdvLWNo
YXJhY3RlciBzZXF1ZW5jZSByZXByZXNlbnRzIGENCg0KDQoNClNob3dhbHRl
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbUGFnZSA3XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZl
LVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFw
ciAxOTk3DQoNCg0KICAgICAgICAgICAgICAgc2luZ2xlIGJhY2tzbGFzaCBv
ciBkb3VibGUtcXVvdGUgd2l0aGluIHRoZSBzdHJpbmcuICBbSWYNCiAgICAg
ICAgICAgICAgIHRoZXJlIGFyZSBtaXNzaW5nIHdvcmRzIGluIHRoZSBwYXJh
Z3JhcGgsIEkgaGFkIHByb2JsZW1zDQogICAgICAgICAgICAgICB3aXRoIG5y
b2ZmOyBwbGVhc2UgcG9pbnQgaXQgb3V0IHRvIG1lLl0NCg0KICAgICAgICAg
ICAgICAgRm9yIGVudGVyaW5nIGxhcmdlciBhbW91bnRzIG9mIHRleHQsIHN1
Y2ggYXMgYW4gZW1haWwNCiAgICAgICAgICAgICAgIG1lc3NhZ2UsIGEgbG9u
Z2VyIGZvcm0gaXMgYWxsb3dlZCwga25vd24gYXMgYSAidXNlci0NCiAgICAg
ICAgICAgICAgIG1lc3NhZ2UiLiAgSXQgc3RhcnRzIHdpdGggdGhlIGtleXdv
cmQgIm1lc3NhZ2UiIGFuZCBlbmRzDQogICAgICAgICAgICAgICB3aXRoIHRo
ZSBzZXF1ZW5jZSBvZiBhIG5ld2xpbmUsIGEgc2luZ2xlIHBlcmlvZCwgYW5k
DQogICAgICAgICAgICAgICBhbm90aGVyIG5ld2xpbmUuICBBbnkgbGluZSB0
aGF0IGJlZ2lucyB3aXRoICIuLiIgaXMgY29uLQ0KICAgICAgICAgICAgICAg
c2lkZXJlZCB0byBiZWdpbiB3aXRoICIuIi4NCg0KICAgICAgICAgICAgICAg
WFhYIHRoaXMgZXhhbXBsZSBuZWVkcyBmb3JtYXR0aW5nIHdvcmsNCg0KDQog
ICBFeGFtcGxlOiAgICBpZiBhbnktb2YgKGhlYWRlciAoImZyb20iKSBjb250
YWlucw0KICAgICAgICAgICAgICAgICAgICAgICAgICgiYmFydCIgImhvbWVy
IiAic21pdGhlcnMiICJidXJucyIgImxpc2EiKSB0aGVuDQogICAgICAgICAg
ICAgICAgICAgIGhlYWRlciAoInN1YmplY3QiKSBjb250YWlucyAoIlVSR0VO
VCIpKSB0aGVuDQogICAgICAgICAgICAgICAgICAgIGZpbGVpbnRvICJJTkJP
WCINCiAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAg
cmVwbHkgbWVzc2FnZQ0KICAgICAgICAgICAgICAgICAgICBZb3UgYXJlIG5v
dCBvbmUgb2YgdGhlIHBlb3BsZSBJIHJlZ3VsYXJseSBjb3JyZXNwb25kIHdp
dGguDQogICAgICAgICAgICAgICAgICAgIEkgaGF2ZSBkZWxldGVkIHlvdXIg
bWVzc2FnZSBkdWUgdG8gdGhlIGxhcmdlIHZvbHVtZSBvZg0KICAgICAgICAg
ICAgICAgICAgICBlbWFpbCBJIHJlZ3VsYXJseSByZWNlaXZlLiAgSWYgeW91
IGZlZWwgdGhhdCB5b3UgbmVlZCB0bw0KICAgICAgICAgICAgICAgICAgICBz
cGVhayB3aXRoIG1lIGRpcmVjdGx5LCBhbmQgY2Fubm90IGZpbmQgeW91ciBh
bnN3ZXIgaW4gbXkNCiAgICAgICAgICAgICAgICAgICAgd2ViIHBhZ2VzLCBw
bGVhc2Ugc2VuZCBtYWlsIHdpdGggdGhlIHdvcmQgIlVSR0VOVCIgaW4gdGhl
DQogICAgICAgICAgICAgICAgICAgIHN1YmplY3QgbGluZS4gIFRoYW5rIHlv
dSBmb3IgeW91ciB0aW1lLg0KICAgICAgICAgICAgICAgICAgICBbT05FIFNJ
TkdMRSBET1QsIHdoaWNoIEkgY2FuJ3QgZ2V0IG5yb2ZmIHRvIHByb2R1Y2UN
CiAgICAgICAgICAgICAgICAgICAgLi4uXQ0KICAgZW5kaWYNCg0KDQoyLjUu
MS4gSGVhZGVycw0KDQpbT1BFTiBJU1NVRTogSXMgdGhpcyBzZWN0aW9uIG5l
Y2Vzc2FyeSBvciB1c2VmdWw/XQ0KDQpIZWFkZXJzIGFyZSBhIHN1YnNldCBv
ZiBzdHJpbmdzLiAgSW4gdGhlIEludGVybmV0IE1lc3NhZ2UgU3BlY2lmaWNh
dGlvbg0KW0lNQUlMXSwgZWFjaCBoZWFkZXIgbGluZSBpcyBhbGxvd2VkIHRv
IGhhdmUgd2hpdGVzcGFjZSBuZWFybHkgYW55d2hlcmUNCmluIHRoZSBsaW5l
LCBpbmNsdWRpbmcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgYW5kIGJlZm9yZSB0
aGUgc3Vic2VxdWVudA0KY29sb24uICBUaHVzLCB0aGUgbGluZXMgIkZyb206
IGFjbUBhbmRyZXcuY211LmVkdSIgaXMgZXF1aXZhbGVudCB0bw0KIkZyb20g
ICAgOiAgICBhY21AYW5kcmV3LmNtdS5lZHUiLiAgV2l0aGluIGEgU0lFVkUg
c2NyaXB0LCBoZWFkZXIgbmFtZXMNCmFyZSBuZXZlciBjb25zaWRlcmVkIHRv
IGhhdmUgc3BhY2VzLiAgT25seSB0aGUgIkZyb20iIGluIHRoZSBhYm92ZQ0K
aGVhZGVycyBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZXJlLiAgV2hpbGUgYSBo
ZWFkZXIgY2FuIGJlIGxpc3RlZCBhcw0KIkZyb20gICAiIHdpdGhpbiBhIGhl
YWRlciBsaXN0IChzYXksIGZvciB0aGUgImhlYWRlciIgY29tbWFuZCkgc3Vj
aA0KdXNhZ2UgaXMgYWJzdXJkLiAgVGhlIGZvbGxvd2luZyBjb2xvbiBpcyBu
ZXZlciBzcGVjaWZpZWQ7IGEgaGVhZGVyDQoiRnJvbToiLCBhcyB3ZWxsIGFz
IGEgaGVhZGVyICI6RnJvbSIsIGlzIGd1YXJhbnRlZWQgbmV2ZXIgdG8gaGFw
cGVuDQp3aXRoaW4gYSB2YWxpZCBoZWFkZXIuDQoNCjIuNS4yLiBBZGRyZXNz
ZXMNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSA4XQ0KDA0KZHJh
ZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAgICAg
ICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KW09QRU4gSVNTVUU6IElz
IHRoaXMgc2VjdGlvbiBuZWNlc3Nhcnkgb3IgdXNlZnVsP10NCg0KQSBudW1i
ZXIgb2YgY29tbWFuZHMgY2FsbCBmb3IgZW1haWwgYWRkcmVzc2VzLCB3aGlj
aCBhcmUgYWxzbyBhIHN1YnNldA0Kb2Ygc3RyaW5ncy4gIFRoZXNlIGFkZHJl
c3NlcyBtdXN0IGJlIGNvbXBsaWFudCB3aXRoIFtJTUFJTF0uICBJbXBsZW1l
bi0NCnRhdGlvbnMgTVVTVCBpbnN1cmUgdGhlIGFkZHJlc3NlcyBhcmUgc3lu
dGFjdGljYWxseSB2YWxpZCwgYW5kIG5lZWQgbm90DQppbnN1cmUgdGhhdCB0
aGV5IGFyZSBhY3R1YWxseSBkZWxpdmVyYWJsZS4NCg0KMi43LiBFdmFsdWF0
aW9uDQoNCklmIGV2YWx1YXRpb24gb2YgdGhlIHNjcmlwdCBmYWlscyB0byBm
aWxlIHRoZSBtZXNzYWdlIGludG8gYW55IG1haWxib3gsDQphcyBpbiB0aGUg
Zm9sbG93aW5nIHNjcmlwdCwgdGhlIG1lc3NhZ2UgaXMgZmlsZWQgaW50byBJ
TkJPWC4gIFdpdGggYW55DQpvZiB0aGUgc2hvcnQgbWVzc2FnZXMgb2ZmZXJl
ZCBhYm92ZSwgdGhlIGZvbGxvd2luZyBzY3JpcHQgcHJvZHVjZXMgbm8NCmFj
dGlvbnMuDQoNCkV4YW1wbGU6ICAgIGlmIHNpemUgb3ZlciA1MDBLIHRoZW4g
dG9zcyBlbmRpZg0KDQp0aGVuIHRoZSAibm9ybWFsIiBhY3Rpb24gaXMgdGFr
ZW4uICBUaGUgIm5vcm1hbCIgYWN0aW9uIGlzIGRlZmluZWQgdG8gYmUNCnRo
ZSBhY3Rpb24gdGhhdCBpcyB0YWtlbiBub3JtYWxseSwgc3VjaCBhcyBpbiBh
IHNpdHVhdGlvbiB3aGVyZSB0aGUgdXNlcg0KZG9lcyBubyBmaWx0ZXJpbmcu
ICBVbmRlciBtb3N0IHNpdHVhdGlvbnMsIHRoZSBub3JtYWwgYWN0aW9uIGlz
IHRvIGZpbGUNCmludG8gdGhlIHVzZXIncyBtYWluIG1haWxib3ggKHN1Y2gg
YXMgIklOQk9YIiB1bmRlciBJTUFQKS4NCg0KSW1wbGVtZW50YXRpb25zIGRl
ZmluZSB0aGUgc3BlY2lmaWMgbWVhbmluZ3Mgb2YgYWN0aW9ucy4gIEltcGxl
bWVudGEtDQp0aW9ucyBtYXkgaW1wb3NlIHJlc3RyaWN0aW9ucyBvbiB0aGUg
YWN0aW9ucyB0YWtlbiwgc3VjaCBhcyBvbmx5IGhvbm9yLQ0KaW5nIG9uZSAi
cmVwbHkiLCAiYm91bmNlIiwgb3IgImZvcndhcmQiIHBlciBtZXNzYWdlLg0K
DQpQcmVjZWRlbmNlIGlzIG5vdCBpbXBvcnRhbnQgaW4gYW55IG9mIHRoZSBj
b21tYW5kcyBpbiB0aGlzIGJhc2Ugc3BlY2lmaS0NCmNhdGlvbi4gIEhvd2V2
ZXIsIGFzIGFuIGV4dGVuc2lvbiBtaWdodCBtYWtlIGl0IG1vcmUgaW1wb3J0
YW50LCBhbGwNCnJ1bGVzIE1VU1QgYmUgZXZhbHVhdGVkIGluIGxlZnQtdG8t
cmlnaHQgb3JkZXIuICBUaG9zZSBvcGVyYXRpb25zIHRoYXQNCm1heSBpbXBs
ZW1lbnQgc2hvcnQtY2lyY3VpdCBldmFsdWF0aW9uIChzdWNoIGFzIHRoZSAi
YWxsLW9mIiBhbmQgImFueS0NCm9mIiBvcGVyYXRvcnMsIHdoaWNoIHByZWZv
cm0gbG9naWNhbCAiYW5kIiBhbmQgIm9yIiBvcGVyYXRpb25zLCByZXNwZWMt
DQp0aXZlbHkpIFNIT1VMRCBkbyBzby4NCg0KMy4gICBDb25kaXRpb25hbHMg
YW5kIENvbnRyb2wgU3RydWN0dXJlcw0KDQpJbiBvcmRlciBmb3IgYSBzY3Jp
cHQgdG8gZG8gbW9yZSB0aGFuIG9uZSBzZXQgb2YgYWN0aW9ucywgY29udHJv
bCBzdHJ1Yy0NCnR1cmVzIGFyZSBuZWVkZWQuDQoNCjMuMS4gSWYNCg0KU3lu
dGF4OiAgICAgaWYgPHRlc3Q+IHRoZW4gPGNvbW1hbmRzPg0KICAgICAgICAg
ICAgW2Vsc2lmIDxlbHNpZi10ZXN0PiB0aGVuIDxlbHNpZi1jb21tYW5kcz4g
W2Vsc2lmIC4uLl1dDQogICAgICAgICAgICBbZWxzZSA8ZWxzZS1jb21tYW5k
cz5dDQogICAgICAgICAgICBlbmRpZg0KDQpUaGUgImlmIiBjb250cm9sIHN0
cnVjdHVyZSBpcyBib3Jyb3dlZCBmcm9tIGFueSBudW1iZXIgb2YgcHJvZ3Jh
bW1pbmcNCmxhbmd1YWdlcy4gIEl0IGlzIGV2YWx1YXRlZCBpbiB0aGUgdXN1
YWwgd2F5LCBhcyBmb2xsb3dzOiBpZiA8dGVzdD4gaXMNCnRydWUsIHRoZW4g
PGNvbW1hbmRzPiBhcmUgZXZhbHVhdGVkLiAgSWYgYW4gZWxzaWYga2V5d29y
ZCBleGlzdHMsIGFuZA0KPG5leHQtdGVzdD4gaXMgdHJ1ZSwgdGhlbiA8ZWxz
aWYtY29tbWFuZHM+IGFyZSBldmFsdWF0ZWQuICBBbnkgbnVtYmVyIG9mDQoN
Cg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgOV0NCgwNCmRyYWZ0LXNo
b3dhbHRlci1zaWV2ZS1QUkUudHh0ICAgIFNJRVZFICAgICAgICAgICAgICAg
ICAgICAgICAgOCBBcHIgMTk5Nw0KDQoNCmVsc2lmIGNhc2VzIG1heSBiZSBp
bmNsdWRlZCwgYW5kIGFyZSBldmFsdWF0ZWQgc2VyaWFsbHkuICBJZiA8dGVz
dD4gaXMNCmZhbHNlIGFuZCB0aGUgPGVsc2lmLXRlc3Q+cyBhcmUgZmFsc2Ug
YXMgd2VsbCwgdGhlbiB0aGUgPGVsc2UtY29tbWFuZHM+DQphcmUgZXZhbHVh
dGVkLiAgVGhlICJpZiIgYmxvY2sgaXMgdGVybWluYXRlZCB3aXRoIGFuICJl
bmRpZiIga2V5d29yZCwNCndoaWNoIGlzIHJlcXVpcmVkLg0KDQpJbiB0aGUg
Zm9sbG93aW5nIGV4YW1wbGUsIGJvdGggTWVzc2FnZSBBIGFuZCBCIGFyZSBk
cm9wcGVkLg0KDQpFeGFtcGxlOiAgICBpZiBoZWFkZXIgKCJmcm9tIikgY29u
dGFpbnMgKCJjb3lvdGUiKSB0aGVuDQogICAgICAgICAgICB0b3NzDQogICAg
ICAgICAgICBlbHNpZiBoZWFkZXIgKCJzdWJqZWN0IikgY29udGFpbnMgKCIk
JCQiKQ0KICAgICAgICAgICAgdGhlbiB0b3NzDQogICAgICAgICAgICBlbHNl
IGZpbGVpbnRvICJJTkJPWCINCiAgICAgICAgICAgIGVuZGlmDQoNCk9ubHkg
b25lIHNldCBvZiBjb21tYW5kcyAgaW4gYW4gaWYgLi4uIGVsc2lmIC4uLiBl
bHNpZiAuLi4gZWxzZSAuLi4NCmVuZGlmIGJsb2NrIGlzIGV4ZWN1dGVkLg0K
DQpJbiB0aGUgc2NyaXB0IGJlbG93LCB3aGVuIHJ1biBvdmVyIG1lc3NhZ2Ug
QSwgZm9yd2FyZHMgdGhlIG1lc3NhZ2UgdG8NCmFjbUBhbmRyZXcuY211LmVk
dTsgbWVzc2FnZSBCLCB0byBzZXJ2aWNlQGFuZHJldy5jbXUuZWR1OyBhbnkg
b3RoZXIgbWVzLQ0Kc2FnZSBpcyBmb3J3YXJkZWQgdG8gcG9zdG1hbkBhbmRy
ZXcuY211LmVkdS4NCg0KRXhhbXBsZTogICAgaWYgaGVhZGVyICgiIikgY29u
dGFpbnMgKCIiKSB0aGVuDQogICAgICAgICAgICAgICAgIGZvcndhcmQgImFj
bUBhbmRyZXcuY211LmVkdSI7DQogICAgICAgICAgICBlbHNpZiBoZWFkZXIg
KCJTdWJqZWN0IikgY29udGFpbnMgKCIkJCQiKSB0aGVuDQogICAgICAgICAg
ICAgICAgIGZvcndhcmQgInNlcnZpY2VAYW5kcmV3LmNtdS5lZHUiOw0KICAg
ICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICBmb3J3YXJkICJwb3N0
bWFuQGFuZHJldy5jbXUuZWR1IjsNCiAgICAgICAgICAgIGVuZGlmDQoNCg0K
My4yLiBSZXF1aXJlDQoNClN5bnRheDogICAgIHJlcXVpcmUgPGV4dGVuc2lv
bi1uYW1lPg0KDQpSZXF1aXJlIFNIT1VMRCBiZSBkZWNsYXJlZCBpbiBhIHVz
ZXIgc2NyaXB0IGJlZm9yZSBhbiBleHRlbnNpb24gaXMgdXNlZC4NCkl0IGlu
c3RydWN0cyB0aGUgZXZhbHVhdG9yIHRoYXQgdGhlIGV4dGVuc2lvbiBuYW1l
ZCBleHRlbnNpb24tbmFtZSwgc3VwLQ0KcGxpZWQgYXMgYSBzdHJpbmcsIE1V
U1QgYmUgcHJlc2VudCBpbiBvcmRlciB0byBhbGxvdyBmdXJ0aGVyIHByb2Nl
c3NpbmcuDQpJZiB0aGUgc3RyaW5nIHNwZWNpZmllcyBhbiBleHRlbnNpb24g
dGhhdCB0aGUgZXZhbHVhdGluZyBtZWNoYW5pc20gc3VwLQ0KcG9ydHMsIHRo
ZW4gcHJvY2Vzc2luZyBjb250aW51ZXMuICBPdGhlcndpc2UsIGFuIGVycm9y
IGhhcyBiZWVuIGVuY291bi0NCnRlcmVkLCBhbmQgdGhlIHNjcmlwdCBzaG91
bGQgbm90IGJlIGV2YWx1YXRlZC4NCg0KUmVxdWlyZSBpcyBpbnRlbmRlZCB0
byBkZW1hbmQgdGhlIHVzZSBvZiBhbiBleHRlbnNpb24gbm90IHByZXNlbnQg
aW4NCnRoaXMgZG9jdW1lbnQuDQoNClRoZSBmb2xsb3dpbmcgZXhhbXBsZSB3
aWxsIGZhaWwgb24gYW55IHNlcnZlciB0aGF0IGRvZXMgbm90IGltcGxlbWVu
dA0KdGhlIGV4dGVuc2lvbiBrbm93biBhcyBEV0lNLg0KDQoNCg0KDQoNClNo
b3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtQYWdlIDEwXQ0KDA0KZHJhZnQtc2hvd2FsdGVy
LXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAg
ICA4IEFwciAxOTk3DQoNCg0KRXhhbXBsZTogICAgcmVxdWlyZSAiZHdpbSI7
IGlmIGhlYWRlciAoInN1YmplY3QiKSBjb250YWlucy1ub2Nhc2UgKCJ0aGUN
CiAgICAgICAgICAgIHNlY3JldCBtZXNzYWdlIikgdGhlbg0KICAgICAgICAg
ICAgICAgICBkd2ltIGJsdXJkeWJsb29wIGJvZHk7DQogICAgICAgICAgICBl
bmRpZiBzdG9wDQoNCg0KNC4gICBBY3Rpb25zIFRoaXMgZG9jdW1lbnQgc3Vw
cGxpZXMgc2l4IGFjdGlvbnMgdGhhdCBtYXkgYmUgdGFrZW4gb24gYQ0KbWVz
c2FnZTogbm9ybWFsLCBmaWxlaW50bywgZm9yd2FyZCwgYm91bmNlLCB0b3Nz
LCBhbmQgc3RvcC4NCg0KNC4xLiBBY3Rpb24gYm91bmNlDQoNClN5bnRheDog
ICAgIGJvdW5jZQ0KDQpUaGUgImJvdW5jZSIgYWN0aW9uIHJlc2VuZHMgdGhl
IG1lc3NhZ2UgdG8gdGhlIHNlbmRlciwgd3JhcHBpbmcgaXQgaW4gYQ0KImJv
dW5jZSIgZm9ybSwgbm90aW5nIHRoYXQgaXQgd2FzIHJlamVjdGVkIGJ5IHRo
ZSByZWNpcGllbnQuICBJbiB0aGUNCmZvbGxvd2luZyBzY3JpcHQsIG1lc3Nh
Z2UgQSBpcyBib3VuY2VkIHRvIHRoZSBzZW5kZXIuDQoNCkV4YW1wbGU6ICAg
IGlmIGhlYWRlciAoImZyb20iKSBjb250YWlucyAoImNveW90ZUBhbnZpbC5k
ZW1lbnRpYS5vcmciKQ0KICAgICAgICAgICAgdGhlbg0KICAgICAgICAgICAg
ICAgIGJvdW5jZSAiSSBhbSBub3QgdGFraW5nIG1haWwgZnJvbSB5b3UsIHlv
dSBraWxsZXIhIg0KICAgICAgICAgICAgZW5kaWYNCg0KNC4yLiAgIEFjdGlv
biBmaWxlaW50bw0KDQpTeW50YXg6ICAgICBmaWxlaW50byA8Zm9sZGVyPg0K
DQpbT1BFTiBJU1NVRTogSSBjb3VsZCBiZSB0YWxrZWQgaW50byBtYWtpbmcg
ZmlsZWludG8gb3B0aW9uYWwgZm9yIFBPUDMNCnNlcnZlciBhZ2VudHMgdGhh
dCB3YW50ZWQgdG8gc2ltcGx5IHRocm93IG1haWwgb3V0IGFuZCB0aGVuIGRv
IHVzZXINCmZpbHRlcmluZyBvbiB0aGUgY2xpZW50Ll0NCg0KVGhlICJmaWxl
aW50byIgYWN0aW9uIGRyb3BzIHRoZSBtZXNzYWdlIGludG8gYSBuYW1lZCBm
b2xkZXIuICBJbiB0aGUNCmZvbGxvd2luZyBzY3JpcHQsIG1lc3NhZ2UgQSBp
cyBmaWxlZCBpbnRvIGZvbGRlciAiSU5CT1guaGFyYXNzbWVudCIuDQoNCkV4
YW1wbGU6ICAgIGlmIGhlYWRlciAoInRvIikgY29udGFpbnMNCg0KNC4zLiBB
Y3Rpb24gZm9yd2FyZA0KDQpTeW50YXg6ICAgICBmb3J3YXJkIDxhZGRyZXNz
Pg0KDQpUaGUgImZvcndhcmQiIGFjdGlvbiBpcyB1c2VkIHRvIGZvcndhcmQg
dGhlIG1lc3NhZ2UgdG8gYW5vdGhlciB1c2VyIGF0DQp0aGUgc3VwcGxpZWQg
YWRkcmVzcywgYXMgYSBtYWlsIGZvcndhcmRpbmcgZmVhdHVyZSBkb2VzLiAg
VGhlICJmb3J3YXJkIg0KYWN0aW9uIG1ha2VzIG5vIGNoYW5nZXMgdG8gdGhl
IG1lc3NhZ2UgYm9keSBvciBoZWFkZXJzLCBhbmQgb25seSBtb2RpLQ0KZmll
cyB0aGUgZW52ZWxvcGUuDQoNCkEgc2ltcGxlIHNjcmlwdCBjYW4gYmUgdXNl
ZCBmb3IgZm9yd2FyZGluZzoNCg0KRXhhbXBsZTogICAgZm9yd2FyZCAidGpz
QGFuZHJldy5jbXUuZWR1Ig0KDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
UGFnZSAxMV0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1QUkUudHh0ICAg
IFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAgOCBBcHIgMTk5Nw0KDQoN
CjQuNC4gQWN0aW9uIG5vcm1hbA0KDQpTeW50YXg6ICAgICBub3JtYWwNCg0K
VGhlICJub3JtYWwiIGFjdGlvbiBpcyB3aGF0ZXZlciBhY3Rpb24gaXMgdGFr
ZW4gaW4gbGlldSBvZiBhbGwgb3RoZXINCmFjdGlvbnM7IGdlbmVyYWxseSwg
dGhpcyBzaW1wbHkgbWVhbnMgdG8gZHJvcCB0aGUgbWVzc2FnZSBpbnRvIHRo
ZQ0KdXNlcidzIG5vcm1hbCBtYWlsYm94LiAgVGhpcyBjb21tYW5kIHByb3Zp
ZGVzIGEgd2F5IHRvIGV4ZWN1dGUgdGhpcw0KYWN0aW9uIHdpdGhvdXQgbmFt
aW5nIGl0IGV4cGxpY2l0bHksIHByb3ZpZGluZyBhIHdheSB0byB1c2UgaXQg
aW5kZXBlbi0NCmRlbnQgb2Ygc3lzdGVtLg0KDQpTeW50YXg6ICAgICBpZiBz
aXplIHVuZGVyIDFNIHRoZW4gbm9ybWFsIGVsc2UgdG9zcw0KDQo0LjUuIEFj
dGlvbiByZXBseQ0KDQpTeW50YXg6ICAgICByZXBseSA8bWVzc2FnZT4NCg0K
VGhlICJyZXBseSIgYWN0aW9uIGlzIHVzZWQgdG8gZ2VuZXJhdGUgYSBmb3Jt
IGxldHRlciByZXBseSB0byB0aGUgb3JpZ2ktDQpuYWwgc2VuZGVyLiAgTWVz
c2FnZSBpcyBhIHN0cmluZyB0byBiZSBzZW50IGFzIGEgcmVwbHkgbWVzc2Fn
ZS4gIFRoZQ0KbXVsdGktbGluZSA8dXNlci1tZXNzYWdlPiBwcm9kdWN0aW9u
IGRlc2NyaWJlZCBpbiB0aGUgRm9ybWFsIEdyYW1tYXINCnNlY3Rpb24gaXMg
aW50ZW5kZWQgZm9yIHRoaXMgcHVycG9zZS4gIEluIHRoZSBmb2xsb3dpbmcg
ZXhhbXBsZSwgYW55DQptZXNzYWdlIG92ZXIgNTAwSyAob3IgNTEyLDAwMCBv
Y3RldHMpIHdvdWxkIGJlIHRocm93biBvdXQ7IG90aGVyd2lzZSwNCnRoZSBt
ZXNzYWdlIHdvdWxkIGJlIGZpbGVkIGludG8gSU5CT1guDQoNCkV4YW1wbGU6
ICAgIGlmIHNpemUgb3ZlciA1MDBLIHJlcGx5IG1lc3NhZ2UNCiAgICAgICAg
ICAgIFlvdXIgbWVzc2FnZSB3YXMgdW5uZWNlc3NhcmlseSBsYXJnZS4NCiAg
ICAgICAgICAgIEkgcmVqZWN0IGFsbCBsYXJnZSBtZXNzYWdlczsgeW91IHdp
bGwgbmVlZCB0byBjb250YWN0IG1lDQogICAgICAgICAgICBkaXJlY3RseS4N
CiAgICAgICAgICAgIHRvc3MNCiAgICAgICAgICAgIGVuZGlmDQoNCk9QRU46
IFNwZWNpZnkgaGVhZGVycyB0cmFuc21pdHRlZD8NCg0KT1BFTjogU3BlY2lm
eSB3YXkgdG8gZG8gdmFjYXRpb24/ICBBIHByZXZpb3VzIHZlcnNpb24gb2Yg
dGhpcyBoYWQgYQ0KLWRheXMgc3dpdGNoIHRvIHNwZWNpZnkgbnVtYmVyIG9m
IGRheXMgdG8gZG8gYSBuZXcgcmVwbHkuDQoNCjQuNi4gQWN0aW9uIHN0b3Ag
VGhlICJzdG9wIiBhY3Rpb24gZW5kcyBhbGwgcHJvY2Vzc2luZy4gIElmIG5v
IGFjdGlvbnMNCmhhdmUgYmVlbiBleGVjdXRlZCwgdGhlbiB0aGUgbm9ybWFs
IGFjdGlvbiBpcyB0YWtlbi4NCg0KSW4gdGhlIGZvbGxvd2luZyBzY3JpcHQs
IGlmIHRoZSBtYWlsIGlzIGZyb20gdGhlIGFkZHJlc3MNCiJ3YWxsQGFuZHJl
dy5jbXUuZWR1IiBpdCBpcyBmb3J3YXJkZWQgdG8gInRqc0B4YW5hZHUud3Yu
dXMiOyBvdGhlcndpc2UNCnRoZSBtYWlsIHJlY2VpdmVzIGEgcmVwbHksIGFu
ZCBpcyB0aHJvd24gb3V0Lg0KDQpFeGFtcGxlOiAgICBpZiAoaGVhZGVyICgi
ZnJvbSIpIG1hdGNoZXMgKCJ3YWxsQGFuZHJldy5jbXUuZWR1IikpDQogICAg
ICAgICAgICAgICAgIHRoZW4gZm9yd2FyZCAidGpzQHhhbmFkdS53di51cyI7
IHN0b3ANCiAgICAgICAgICAgIGVuZGlmIHJlcGx5ICJJJ20gb24gdmFjYXRp
b24gYW5kIG5vdCB0YWtpbmcgYW55IG1lc3NhZ2VzOw0KICAgICAgICAgICAg
dHJ5IGFmdGVyIFN1bmRheS4gIEkgaGF2ZSB0aHJvd24geW91ciBtZXNzYWdl
IG91dC4gIFBsZWFzZQ0KICAgICAgICAgICAgcmVzZW5kIGl0IGxhdGVyLiIg
OyB0b3NzDQoNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDEyXQ0K
DA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAg
ICAgICAgICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KNC43LiBBY3Rp
b24gdG9zcyBUb3NzIGRyb3BzIHRoZSBtZXNzYWdlLiAgSW4gdGhlIGZvbGxv
d2luZyBzY3JpcHQsIGFueQ0KbWFpbCBmcm9tICJ3YWxsQGFuZHJldy5jbXUu
ZWR1IiBpcyB0aHJvd24gb3V0Lg0KDQpFeGFtcGxlOiAgICBpZiBoZWFkZXIg
KCJmcm9tIikgY29udGFpbnMgKCJ3YWxsQGFuZHJldy5jbXUuZWR1IikgdGhl
bg0KICAgICAgICAgICAgdG9zcyBlbmRpZg0KDQo1LiAgIFRlc3RzDQoNClRl
c3RzIGFyZSB1c2VkIGluIGNvbmRpdGlvbmFscyB0byBkZWNpZGUgd2hpY2gg
cGFydChzKSBvZiB0aGUgY29uZGktDQp0aW9uYWwgdG8gZXhlY3V0ZS4NCg0K
NS4xLiBhbGwtb2YNCg0KU3ludGF4OiAgICAgYWxsLW9mICggPHRlc3Q+IFss
XSA8dGVzdD4gWyxdIC4uLiA8dGVzdD4gKQ0KDQpUaGUgYWxsLW9mIHRlc3Qg
cHJlZm9ybXMgYSBsb2dpY2FsIEFORCBvbiB0aGUgdGVzdHMgc3VwcGxpZWQg
dG8gaXQuDQoNClRoZSBjb21tYSBpbiBiZXR3ZWVuIHRlc3RzIGlzIG9wdGlv
bmFsLg0KDQoNCkV4YW1wbGU6ICAgIGFsbC1vZiAoZmFsc2UgZmFsc2UpICA9
PiAgIGZhbHNlDQogICAgICAgICAgICBhbGwtb2YgKGZhbHNlIHRydWUpICAg
PT4gICBmYWxzZQ0KICAgICAgICAgICAgYWxsLW9mICh0cnVlLCB0cnVlKSAg
ID0+ICAgdHJ1ZQ0KDQoNCjUuMi4gYW55LW9mDQoNClN5bnRheDogICAgIGFs
bC1vZiAoIDx0ZXN0PiBbLF0gPHRlc3Q+IFssXSAuLi4gPHRlc3Q+ICkNCg0K
VGhlIGFueS1vZiB0ZXN0IHByZWZvcm1zIGEgbG9naWNhbCBPUiBvbiB0aGUg
dGVzdHMgc3VwcGxpZWQgdG8gaXQuDQoNClRoZSBjb21tYSBpbiBiZXR3ZWVu
IHRlc3RzIGlzIG9wdGlvbmFsLg0KDQoNCkV4YW1wbGU6ICAgIGFsbC1vZiAo
ZmFsc2UgZmFsc2UpICA9PiAgIGZhbHNlDQogICAgICAgICAgICBhbGwtb2Yg
KGZhbHNlIHRydWUpICAgPT4gICB0cnVlDQogICAgICAgICAgICBhbGwtb2Yg
KHRydWUsIHRydWUpICAgPT4gICB0cnVlDQoNCg0KNS4zLiBleGlzdHMNCg0K
U3ludGF4OiAgICAgZXhpc3RzIDxoZWFkZXItbmFtZS1saXN0Pg0KDQoNClRo
ZSAiZXhpc3RzIiB0ZXN0IGlzIHRydWUgaWYgdGhlIGhlYWRlcnMgbGlzdGVk
IGluIHRoZSA8aGVhZGVyLW5hbWUtDQpsaXN0PiBhcmd1bWVudCBleGlzdCB3
aXRoaW4gdGhlIG1lc3NhZ2UuICBBbGwgb2YgdGhlIGhlYWRlcnMgbXVzdCBl
eGlzdA0Kb3IgdGhlIHRlc3QgaXMgZmFsc2UuDQoNCg0KDQoNClNob3dhbHRl
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtQYWdlIDEzXQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZl
LVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFw
ciAxOTk3DQoNCg0KRXhhbXBsZTogICAgaWYgbm90IGV4aXN0cyAoIkZyb20i
ICJEYXRlIiAiU3ViamVjdCIgIlRvIiAiTWVzc2FnZS1JRCIpDQogICAgICAg
ICAgICB0aGVuDQogICAgICAgICAgICAgICAgIHRvc3MNCiAgICAgICAgICAg
IGVuZGlmDQoNCg0KNS40LiBmYWxzZQ0KDQpTeW50YXg6ICAgICBmYWxzZQ0K
DQoNClRoZSAiZmFsc2UiIHRlc3QgYWx3YXlzIGV2YWx1YXRlcyB0byBmYWxz
ZS4NCg0KNS41LiBoZWFkZXINCg0KU3ludGF4OiAgICAgaGVhZGVyIDxoZWFk
ZXItbmFtZS1saXN0Pg0KICAgICAgICAgICAgPCJjb250YWlucyIvImlzIi8i
bWF0Y2hlcyIvImNvbnRhaW5zLW5vY2FzZSIgLyAiaXMtDQogICAgICAgICAg
ICBub2Nhc2UiLyJtYXRjaGVzLW5vY2FzZSI+IDxrZXktbGlzdD4NCg0KVGhl
ICJoZWFkZXIiIHRlc3QgZXZhbHVhdGVzIHRvIHRydWUgaWYgdGhlIGhlYWRl
ciBuYW1lIG1hdGNoZXMga2V5LiAgSG93DQp0aGUgbWF0Y2ggaXMgZG9uZSBp
cyBkZXNjcmliZWQgYnkgdGhlIHNlY29uZCBhcmd1bWVudC4gIFRoZSBiYXNp
YyBtYXRjaC0NCmluZyBmb3JtcyBhcmUgY2FzZSBzZW5zaXRpdmUuICBFYWNo
IG1hdGNoaW5nIGZvcm0gaGFzIGEgY29ycmVzcG9uZGluZw0KZm9ybSBlbmRp
bmcgaW4gIi1ub2Nhc2UiOyB0aGVzZSBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZl
Lg0KDQpBbGwgbWF0Y2hpbmdzIG9uIGhlYWRlciBmaWVsZCBuYW1lcyBNVVNU
IGJlIGRvbmUgaW4gYSBjYXNlIGluc2Vuc2l0aXZlDQptYW5uZXIuDQoNClRo
ZSAiaXMiIGFyZ3VtZW50IGRlbWFuZHMgdGhhdCBvbmUgb2YgdGhlIGZpZWxk
cyBvZiB0aGUgaGVhZGVycyBsaXN0ZWQNCmluIGhlYWRlci1uYW1lLWxpc3Qg
Y2FuIGJlIGZvdW5kIGluIHRoZSBrZXktbGlzdC4gIEl0IHJlcXVpcmVzIGFu
IGFic28tDQpsdXRlIG1hdGNoLiAgSXQgaXMgdHJ1ZSBpZiB0aGVyZSBhcmUg
cmVwZWF0ZWQgYXJndW1lbnRzIGluIHRoZSBoZWFkZXItDQpuYW1lLWxpc3Qg
b3IgdGhlIGtleS1saXN0Lg0KDQpUaGUgImNvbnRhaW5zIiBhcmd1bWVudCBk
ZW1hbmRzIHRoYXQgb25lIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIGhlYWRlcnMN
Cm5hbWVkIGluIGhlYWRlci1uYW1lLWxpc3QgcGFydGlhbGx5IG1hdGNoZXMg
b25lIG9mIHRoZSB2YWx1ZXMgaW4ga2V5LQ0KbGlzdC4gIEl0IGlzIHRydWUg
aWYgdGhlcmUgYXJlIHJlcGVhdGVkIGFyZ3VtZW50cyBpbiB0aGUgaGVhZGVy
LW5hbWUtDQpsaXN0IG9yIHRoZSBrZXktbGlzdC4gIFRoZSBzdHJpbmcgIiIg
aXMgY29udGFpbmVkIGluIGFueSBoZWFkZXIgdGhhdA0KZXhpc3RzLg0KDQpU
aGUgIm1hdGNoZXMiIGFyZ3VtZW50IGRlbWFuZHMgdGhhdCBvbmUgb2YgdGhl
IGZpZWxkcyBvZiB0aGUgaGVhZGVycw0KbGlzdGVkIGluIGhlYWRlci1uYW1l
LWxpc3QgbWF0Y2hlcyBhICJnbG9iIiBwYXR0ZXJuIGRlc2NyaWJlZCBieSBv
bmUgb2YNCnRoZSBtZW1iZXJzIG9mIGtleS1saXN0LiAgQSBnbG9iIHBhdHRl
cm4gaXMgYSBVTklYLXN0eWxlIGZpbGVuYW1lIGdsb2IsDQp3aGljaCBoYXMg
dGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnM6DQoNCiAgICAgICAg
KiAgICAgTWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMNCiAgICAgICAg
PyAgICAgTWF0Y2ggYW55IHNpbmdsZSBjaGFyYWN0ZXINCiAgICAgICAgICAg
ICBFc2NhcGUgbmV4dCBjaGFyYWN0ZXINCg0KVGhlIHN0cmluZyAiIiBtYXRj
aGVzIGFsbCBzdHJpbmdzIHRoYXQgZXhpc3QuICBUaGF0IGlzLCBpZiBhIG1l
c3NhZ2UNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDE0XQ0KDA0K
ZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAg
ICAgICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KY29udGFpbnMgdGhl
IGxpbmUgW1hYWCBmb3JtYXR0ZWQgaW1wcm9wZXJseV0NCg0KICAgICAgICBY
LUJsdXJkeWJsb29wOiBkZWF0aCB0byB0aGUgaGVhdGhlbnMNCg0KdGhlIHRl
c3RzIG9uIHRoYXQgaGVhZGVyIGV2YWx1YXRlIGFzIGZvbGxvd3M6DQoNCiAg
ICAgICAgaGVhZGVyICgiWC1CbHVyZHlibG9wIikgaXMgKCIiKSAgICAgICAg
ID0+IGZhbHNlDQogICAgICAgIGhlYWRlciAoIlgtQmx1cmR5YmxvcCIpIG1h
dGNoZXMgKCIiKSAgICA9PiB0cnVlDQogICAgICAgIGhlYWRlciAoIlgtQmx1
cmR5YmxvcCIpIGNvbnRhaW5zICgiIikgICA9PiB0cnVlDQoNCjUuNi4gbm90
DQoNClN5bnRheDoNCiAgICAgbm90IDx0ZXN0Pg0KDQpUaGUgIm5vdCIgdGVz
dCB0YWtlcyBzb21lIG90aGVyIHRlc3QsIGFuZCByZXR1cm5zIHRoZSBvcHBv
c2l0ZSByZXN1bHQuDQoNCjUuNy4gc2l6ZQ0KDQpTeW50YXg6DQogICAgIHNp
emUgPCJvdmVyIiAvICJ1bmRlciI+IDxsaW1pdCBbcXVhbnRpZmllcl0+DQoN
ClRoZSAic2l6ZSIgdGVzdCBkZWFscyB3aXRoIHRoZSBzaXplIG9mIGEgbWVz
c2FnZS4gIFRoZSB0ZXN0IGlzIHRydWUgb25seQ0KaWYgdGhlIHNlY29uZCBh
cmd1bWVudCBpcyAib3ZlciIgYW5kIHRoZSBzaXplIG9mIHRoZSBtZXNzYWdl
IGlzIHN0cmljdGx5DQpncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiBvY3Rl
dHMgc3BlY2lmaWVkIGFzIGxpbWl0LiAgSWYgdGhlIHNlY29uZA0KYXJndW1l
bnQgaXMgInVuZGVyIiwgdGhlbiB0aGUgdGVzdCBpcyB0cnVlIG9ubHkgaWYg
dGhlIG1lc3NhZ2Ugc2l6ZSBpcw0Kc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBu
dW1iZXIgb2Ygb2N0ZXRzIHNwZWNpZmllZCBhcyBsaW1pdC4gIEluIGVpdGhl
cg0KY2FzZSwgaWYgdGhlIG1lc3NhZ2Ugc2l6ZSBpcyBleGFjdGx5IHRoZSBs
aW1pdCwgdGhlIHRlc3QgaXMgZmFsc2UuDQoNClRoZSBzaXplIG9mIGEgbWVz
c2FnZSBpcyBkZWZpbmVkIHRvIGJlIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGZy
b20gdGhlDQppbml0aWFsIGhlYWRlciB1bnRpbCB0aGUgbGFzdCBjaGFyYWN0
ZXIgaW4gdGhlIG1lc3NhZ2UgYm9keS4NCg0KNS44LiBzdXBwb3J0DQoNClN5
bnRheDoNCiAgICAgc3VwcG9ydCA8ZXh0ZW5zaW9uLW5hbWU+DQoNCg0KVGhl
ICJzdXBwb3J0IiB0ZXN0IGV2YWx1YXRlcyB0byB0cnVlIGlmIHRoZSBleHRl
bnNpb24gbmFtZWQgYnkNCjxleHRlbnNpb24tbmFtZT4gaXMgc3VwcG9ydGVk
LiAgSW4gdGhlIGZvbGxvd2luZyBzY3JpcHQsIGFsbCBtYWlsIGlzDQpmaWxl
ZCBpbnRvIElOQk9YIHVubGVzcyB0aGUgImJsYWNrLW1hZ2ljIiBleHRlbnNp
b24gaXMgc3VwcG9ydGVkLiAgT3RoLQ0KZXJ3aXNlLCBiZWhhdmlvciBpcyBk
ZWZpbmVkIGJ5IHRoZSBibGFjay1tYWdpYyBleHRlbnNpb24uDQoNCg0KU3lu
dGF4Og0KICAgICBpZiBzdXBwb3J0ICJibGFjay1tYWdpYyIgdGhlbg0KICAg
ICAgICAgIGJsYWNrLW1hZ2ljICgia2diQGFuZHJldy5jbXUuZWR1IikNCiAg
ICAgZW5kaWYNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDE1XQ0K
DA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAg
ICAgICAgICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KNS45LiB0cnVl
DQoNClN5bnRheDoNCiAgICAgdHJ1ZQ0KDQpUaGUgInRydWUiIHRlc3QgaXMg
YWx3YXlzIHRydWUuDQoNCjYuICAgRXJyb3JzIGluIFByb2Nlc3NpbmcgYSBT
Y3JpcHQNCg0KSW4gYW55IHNvcnQgb2YgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Us
IGV2ZW4gYSB2ZXJ5IHNpbXBsZSBvbmUsIGVycm9ycyBhcmUNCmluZXZpdGFi
bGUuICBJbiB0aGlzIGNhc2UsIHVzZXJzIGFyZSBleHBlY3RlZCB0byBtYWtl
IGVycm9ycyAtLSBldmVuIGlmDQp0aGUgYWN0dWFsIHNjcmlwdCBpcyBtYWNo
aW5lLWdlbmVyYXRlZCwgbWFpbGJveCByaWdodHMgbWlnaHQgY2hhbmdlIHRv
DQpkaXNhbGxvdyB1c2VycyBmcm9tIHdyaXRpbmcgdG8gYSBtYWlsYm94LCBh
IG1haWxib3ggbWF5IG5vIGxvbmdlciBleGlzdCwNCm9yIGEgdmFyaWV0eSBv
ZiBvdGhlciBwcm9ibGVtcy4gIEl0IGlzIGltcGVyYXRpdmUgdGhhdCBtYWls
IGJlIGFsbG93ZWQNCnRvIGdldCB0aHJvdWdoIGluIGFueSBjYXNlLg0KDQpJ
ZiBhbiBlcnJvciBpcyBmb3VuZCBpbiBhIHNjcmlwdCwgYW4gaW1wbGVtZW50
YXRpb24gTVVTVCBtYWtlIGFuIGF0dGVtcHQNCnRvIHJlc29sdmUgdGhlIGNv
bmRpdGlvbi4gSW1wbGVtZW50YXRpb25zIFNIT1VMRCBjaGVjayBhIHNjcmlw
dCBiZWZvcmUNCml0IGlzIHJ1biBpbiBvcmRlciB0byBpbnN1cmUgdGhhdCBp
dCBpcyB2YWxpZC4gIEltcGxlbWVudGF0aW9ucyBTSE9VTEQNCk5PVCB0cnkg
YW5kIHJlY292ZXIgZnJvbSBhIHNjcmlwdCB3aXRoIGVycm9ycywgYW5kIHNo
b3VsZCBmaWxlIG1haWwgaW50bw0KdGhlIHVzZXIncyBwcmltYXJ5IG1haWxi
b3guDQoNClVzZXJzIE1VU1QgYmUgbm90aWZpZWQgb2YgZXJyb3JzIGluIHBy
b2Nlc3NpbmcgYSBzY3JpcHQuICBUaGUgbWV0aG9kIGJ5DQp3aGljaCB1c2Vy
cyBhcmUgbm90aWZpZWQgaXMgaW1wbGVtZW50YXRpb24gZGVmaW5lZCwgYnV0
IGEgbWFpbCBtZXNzYWdlDQpkZXNjcmliaW5nIHRoZSBlcnJvciBpcyBzdWdn
ZXN0ZWQgaWYgYSBwcmVmZXJhYmxlIGFsdGVybmF0aXZlIGNhbm5vdCBiZQ0K
Zm91bmQNCg0KSW1wbGVtZW50YXRpb25zIHRoYXQgYWxsb3cgZm9yIHRoZSBz
Y3JpcHQgdG8gYmUgY2hlY2tlZCBmb3Igc3ludGF4DQplcnJvcnMgaW4gYWR2
YW5jZSBvZiBtYWlsIHJlY2VpcHQgKGkuZS4sIGNsaWVudC1iYXNlZCBmaWx0
ZXJpbmcsIG9yDQpzZXJ2ZXItYmFzZWQgZmlsdGVyaW5nIHdpdGggYSBzdWJt
aXNzaW9uIHByb3RvY29sIGF3YXJlIG9mIHRoaXMNCmxhbmd1YWdlKSBTSE9V
TEQgbm90aWZ5IHRoZSB1c2VyIG9mIHRoZSBlcnJvciBhbmQgcmVmdXNlIHRv
IGFjY2VwdCBhDQpzeW50YWN0aWNhbGx5IGludmFsaWQgc2NyaXB0LCBvciBv
bmUgdGhhdCBtYWtlcyB1c2Ugb2YgZXh0ZW5zaW9ucyB0aGF0DQp0aGUgc2Vy
dmVyIGRvZXMgbm90IHJlcG9ydC4NCg0KSW1wbGVtZW50YXRpb25zIHRoYXQg
YWxsb3cgc2VydmVyLWJhc2VkIGZpbHRlcmluZyAoaS5lLiwgYXMgcGFydCBv
ZiBhbg0KSU1BUCBzZXJ2ZXIpIE1VU1QgYWxsb3cgbWFpbCB0byBiZSBmaWxl
ZCBub3JtYWxseSAoaS5lLiwgZm9yIElNQVAsIGludG8NCnRoZSB1c2VyJ3Mg
SU5CT1gpIGluIGNhc2Ugb2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHNjcmlw
dCwgYW5kIE1VU1QNCm5vdGlmeSB0aGUgdXNlciBvZiBhbiBlcnJvciBpbiBz
b21lIGZvcm0gKHN1Y2ggYXMgc2VuZGluZyB0aGUgdXNlciBhDQptYWlsIG1l
c3NhZ2Ugbm90aWZ5aW5nIHRoZW0gb2YgdGhlIGVycm9yKS4gIEltcGxlbWVu
dGF0aW9ucyBTSE9VTEQgYXZvaWQNCm92ZXItc2VuZGluZyBlcnJvciBtZXNz
YWdlcyB0byB0aGUgdXNlcidzIG1haWxib3guDQoNCkltcGxlbWVudGF0aW9u
cyBhcmUgUkVRVUlSRUQgdG8gbm90aWZ5IHVzZXJzIG9mIGVycm9ycyBpbiBm
aWx0ZXJpbmcNCnNjcmlwdHMuICBJZiB0aGVyZSBhcmUgZXJyb3JzIGluIHRo
ZSBzY3JpcHQgYmVpbmcgdXNlZCwgbWFpbCBTSE9VTEQgYmUNCmZpbGVkIGlu
dG8gSU5CT1guICBJbXBsZW1lbnRhdGlvbnMgTVVTVCBOT1QgZGlzY2FyZCBt
YWlsLg0KDQo3LiAgIEV4dGVuc2liaWxpdHkNCg0KTmV3IGNvbnRyb2wgc3Ry
dWN0dXJlcywgYWN0aW9ucywgYW5kIHRlc3RzIGNhbiBiZSBhZGRlZCB0byB0
aGUgbGFuZ3VhZ2UuDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSAx
Nl0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1QUkUudHh0ICAgIFNJRVZF
ICAgICAgICAgICAgICAgICAgICAgICAgOCBBcHIgMTk5Nw0KDQoNClNpdGVz
IG11c3QgbWFrZSB0aGVzZSBmZWF0dXJlcyBrbm93biB0byB0aGVpciB1c2Vy
czsgYW4gZXh0ZW5zaW9uIG5lZ28tDQp0aWF0aW9uIG1lY2hhbmlzbSBpcyBu
b3QgZGVmaW5lZCBieSB0aGlzIGRvY3VtZW50Lg0KDQpGb3IgdGhlIGZvcm1h
bCBncmFtbWFyLCBhbiBleHRlbnNpb24gU0hPVUxEIGRlZmluZSBvbmUgb2Yg
dGhlIHN5bWJvbHMNCmJlZ2lubmluZyB3aXRoICJleHRlbnNpb24tIi4NCg0K
QW55IGV4dGVuc2lvbnMgdG8gdGhpcyBsYW5ndWFnZSBNVVNUIGRlZmluZSBh
IHVuaXF1ZSBzdHJpbmcgdGhhdA0KZGVzY3JpYmVzIHRoYXQgZXh0ZW5zaW9u
LiAgU3VjaCBzdHJpbmdzIFNIT1VMRCBpbmNsdWRlIGEgdmVyc2lvbiBudW1i
ZXIuDQpUaGUgcHVycG9zZSBvZiBzdWNoIGEgc3RyaW5nIGlzIGZvciB0aGUg
InJlcXVpcmUiIGFuZCAic3VwcG9ydCIgY29uZGktDQp0aW9uYWxzLCB3aGlj
aCBtYW5kYXRlcyB0aGF0IHNjcmlwdCByZXF1aXJlcyB0aGUgdXNlIG9mIHRo
YXQgZXh0ZW5zaW9uLg0KQWRkaXRpb25hbGx5LCBpbiBhIHNpdHVhdGlvbiB3
aGVyZSB0aGVyZSBpcyBhIHN1Ym1pc3Npb24gcHJvdG9jb2wgYW5kIGFuDQpl
eHRlbnNpb24gYWR2ZXJ0aXNlbWVudCBtZWNoYW5pc20sIHNvIHRoYXQgc2Ny
aXB0cyBzdWJtaXR0ZWQgY2FuIGJlDQpjaGVja2VkIGFnYWluc3QgdGhlIG1h
aWwgc2VydmVyIGZvciB2YWxpZCBleHRlbnNpb25zLg0KDQo3LjEuIENhcGFi
aWxpdHkgTWVjaGFuaXNtDQoNCltBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRo
ZSBjYXBhYmlsaXR5IHN0cmluZyB3aWxsIGJlIGluY2x1ZGVkIGhlcmUuXQ0K
DQo3LjIuIFJlZ2lzdHJ5DQoNCltBIHJlZ2lzdHJhdGlvbiBtZWNoYW5pc20g
d2lsbCBiZSBpbmNsdWRlZCBoZXJlLl0NCg0KNy4zLiBDYXBhYmlsaXR5IFRy
YW5zcG9ydA0KDQpbQSBicmllZiBkZXNjcmlwdGlvbiBvZiB3aGF0IGlzIHJl
cXVpcmVkIGZvciBhIGNhcGFiaWxpdHkgdHJhbnNwb3J0IHdpbGwNCmJlIGRl
ZmluZWQgaGVyZS4gIFRyYW5zcG9ydHMgd2lsbCBiZSBkZWZpbmVkIGluIHNl
cGFyYXRlIGRvY3VtZW50cy5dDQoNCjguICAgVHJhbnNtaXNzaW9uDQoNClRo
aXMgZG9jdW1lbnQgZG9lcyBub3QgZGVmaW5lIGEgbWV0aG9kIGZvciBhY2Nl
c3Npbmcgc3RvcmVkIHNjcmlwdHMgYXQNCnJ1bi10aW1lIG9yIGFzIHRoZXkg
YXJlIHdyaXR0ZW4sIG5vciBkb2VzIGl0IGRlZmluZSBhIGNoYXJhY3RlciBz
ZXQNCmVuY29kaW5nIGZvciBzY3JpcHRzLg0KDQpJZiB0aGUgbWV0aG9kIG9m
IGhhbmRpbmcgYSBzY3JpcHQgb2ZmIHRvIHRoZSBzZXJ2ZXIgYWxsb3dzIGZv
ciBNSU1FLQ0KdHlwaW5nIG9mIGRhdGEgYXMgZGVzY3JpYmVkIGluIFtNSU1F
XSBhbmQgdGhlIGRhdGEgaXMgZW5jb2RlZCBpbiBVVEYtOA0KYXMgZGVzY3Jp
YmVkIGluIFtVVEYtOF0sIHRoZSBNSU1FIHR5cGUgZm9yIGEgU0lFVkUgc2Ny
aXB0IGlzIFhYWC9YWFguDQoNCkltcGxlbWVudGF0aW9ucyBTSE9VTEQgY2hl
Y2sgYSBzY3JpcHQgYmVmb3JlIGl0IGlzIHJ1biBpbiBvcmRlciB0bw0KaW5z
dXJlIHRoYXQgaXQgaXMgdmFsaWQuICBJbXBsZW1lbnRhdGlvbnMgU0hPVUxE
IE5PVCB0cnkgYW5kIHJlY292ZXINCmZyb20gYSBzY3JpcHQgd2l0aCBlcnJv
cnMsIGFuZCBzaG91bGQgZmlsZSBtYWlsIGludG8gdGhlIHVzZXIncyBwcmlt
YXJ5DQptYWlsYm94Lg0KDQo5LiAgIEFja25vd2xlZGdtZW50cw0KDQoxMC4g
IEZvcm1hbCBHcmFtbWFyDQoNClRoZSBncmFtbWFyIHVzZWQgaW4gdGhpcyBz
ZWN0aW9uIGlzIHRoZSBzYW1lIGFzIHRoZSBBQk5GIGRlc2NyaWJlZCBpbg0K
W0FCTkZdIHdpdGggb25lIGV4Y2VwdGlvbjogdGhlIGRlbGltaXRlciB1c2Vk
IHdpdGggIiMiIGlzIGFueSBhbW91bnQgb2YNCg0KDQoNClNob3dhbHRlciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtQYWdlIDE3XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBS
RS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFwciAx
OTk3DQoNCg0Kd2hpdGVzcGFjZSAodGhhdCBpcywgQ1IsIExGLCBzcGFjZXMs
IGFuZCB0YWJzKSwgYXMgZGVzY3JpYmVkIGJ5IHRoZQ0KIldTUCIgdGVybWlu
YWwsIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIGNvbW1hLCBhbmQgYWRkaXRpb25h
bCB3aGl0ZXNwYWNlLg0KVHdvIGNvbW1hcyB3aXRob3V0IHNvbWV0aGluZyBp
biBiZXR3ZWVuIHRoZW0gaXMgYSBwcm90b2NvbCBlcnJvciwgYW5kIGlzDQpw
cm9oaWJpdGVkLg0KDQpJbiB0aGUgY2FzZSBvZiBhbHRlcm5hdGl2ZSBvciBv
cHRpb25hbCBydWxlcyBpbiB3aGljaCBhIGxhdGVyIHJ1bGUgb3Zlci0NCmxh
cHMgYW4gZWFybGllciBydWxlLCB0aGUgcnVsZSB3aGljaCBpcyBsaXN0ZWQg
ZWFybGllciBNVVNUIHRha2UgcHJpb3ItDQppdHkuDQoNCmFjdGlvbiA9IHRv
c3MgLyBmaWxlaW50byAvIGZvcndhcmQgLyBib3VuY2UgLyByZXBseSAvIHN0
b3AgLw0KICAgIGV4dGVuc2lvbi1hY3Rpb24NCg0KYWRkcmVzcyA9IHN0cmlu
Zw0KICAgICAgICA7OyBhbnkgbGVnYWwgSU1BSUwgYWRkcmVzcw0KDQphbnkt
b2YgPSAiYW55LW9mIiBXU1AgIigiIFtXU1BdICMoY29uZGl0aW9uKSBbV1NQ
XSAiKSINCg0KYWxsLW9mID0gImFsbC1vZiIgV1NQICIoIiBbV1NQXSAjKGNv
bmRpdGlvbikgW1dTUF0gIikiDQoNCmJpZy1udW1iZXIgPSBudW1iZXIgWyBV
TklUIF0NCg0KYm91bmNlID0gImJvdW5jZSIgV1NQIHN0cmluZw0KICAgICAg
ICA7OyBzdHJpbmcgaXMgYSB0ZXh0IG1lc3NhZ2UgdG8gYmUgc2VudCB3aXRo
IHRoZSBib3VuY2UgYXMgdGhlDQogICAgICAgIDs7IHJlYXNvbg0KDQpjb250
cm9sLXN0cnVjdHVyZSA9IGlmIC8gZXh0ZW5zaW9uLWNvbnRyb2wtc3RydWN0
dXJlDQoNCmNvbW1hbmQgPSBhY3Rpb24gW1dTUF0gIjsiIFtXU1BdIC8gY29u
dHJvbC1zdHJ1Y3R1cmUNCg0KY29tbWFuZHMgPSAjKGNvbW1hbmQpDQoNCmNv
bW1lbnQgPSAiIyIgKkNIQVIgbmV3bGluZQ0KDQpmaWxlaW50byA9ICJmaWxl
aW50byIgV1NQIHN0cmluZw0KDQpmb3J3YXJkID0gImZvcndhcmQiIFdTUCBh
ZGRyZXNzDQoNCmlmID0gImlmIiBXU1AgdGVzdCBXU1AgInRoZW4iIFdTUCBj
b21tYW5kcyBXU1AgIygiZWxzaWYiIFdTUA0KICAgIHRlc3QgV1NQICJ0aGVu
IiBXU1AgY29tbWFuZHMpIFsgImVsc2UiIFdTUCBjb21tYW5kcyBXU1AgXQ0K
ICAgICJlbmRpZiINCiAgICAgICAgOzsgaWYgPGNvbmQ+IHRoZW4gPGNvbW1h
bmRzPg0KICAgICAgICA7OyBbZWxzaWYgPGNvbmQ+IHRoZW4gPGNvbW1hbmRz
PiBbZWxzaWYgLi4uXV0NCiAgICAgICAgOzsgW2Vsc2UgPGNvbW1hbmRzPl0g
ZW5kaWYNCg0KaGVhZGVyID0gImhlYWRlciIgV1NQIHN0cmluZy1saXN0IFdT
UCBtYXRjaC1rZXl3b3JkIFdTUCBzdHJpbmctbGlzdA0KDQptYXRjaC1rZXl3
b3JkID0gImNvbnRhaW5zIiAvICJtYXRjaGVzIiAvICJpcyIgLyAiY29udGFp
bnMtbm9jYXNlIiAvDQogICAgImNvbnRhaW5zLW5vY2FzZSIgLyAiaXMtbm9j
YXNlIg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgMThdDQoMDQpk
cmFmdC1zaG93YWx0ZXItc2lldmUtUFJFLnR4dCAgICBTSUVWRSAgICAgICAg
ICAgICAgICAgICAgICAgIDggQXByIDE5OTcNCg0KDQpuZXdsaW5lID0gQ1JM
RiAvIENSIC8gTEYNCiAgICAgICAgOzsgQSBDUkxGIGlzIEFMV0FZUyBvbmUg
bmV3bGluZS4NCg0KbnVtYmVyID0gMSpESUdJVA0KDQpvciA9IGNvbmRpdGlv
biBXU1AgIm9yIiBXU1AgY29uZGl0aW9uDQoNCnF1b3RlZC1zdHJpbmcgPSAi
DQogICAgICAgIDs7DQogICAgICAgIDs7IFwgaW5zaWRlIGEgc3RyaW5nIG1h
cHMgdG8gICAgOzsgTm90ZSB0aGF0IG5ld2xpbmVzIGFuZCBvdGhlciB3ZWly
ZCBjaGFyYWN0ZXJzDQogICAgICAgIDs7IGFyZSBhbGwgc3RyaW5ncy4NCg0K
c2l6ZSA9ICJzaXplIiBXU1AgKCAib3ZlciIgLyAidW5kZXIiICkgV1NQIGJp
Zy1udW1iZXINCg0Kc3RvcCA9ICJzdG9wIg0KDQpzdHJpbmcgPSBxdW90ZWQt
c3RyaW5nIC8gdXNlci1tZXNzYWdlDQoNCnN0cmluZy1saXN0ID0gIigiIFtX
U1BdICMoc3RyaW5nKSBbV1NQXSAiKSINCg0KdGVzdCA9IFtXU1BdIGFueS1v
ZiAvIGFsbC1vZiAvIGV4aXN0cyAvIGZhbHNlIC8gaGVhZGVyIC8NCiAgICBu
b3QgLyBzaXplIC8gZXh0ZW5zaW9uLXRlc3QgW1dTUF0NCg0KVU5JVCA9ICJL
IiAvICJNIiAvICJHIg0KICAgICAgICA7OyBraWxvYnl0ZXMsIG1lZ2FieXRl
cywgb3IgZ2lnYWJ5dGVzDQoNCnVzZXItbWVzc2FnZSA9ICJtZXNzYWdlIiBb
V1NQXSBuZXdsaW5lICIuIiBuZXdsaW5lDQogICAgICAgIDs7IG5vdGUgd2hl
biB1c2VkLA0KICAgICAgICA7OyBhIENSIHRoYXQgaXMgbm90IGZvbGxvd2Vk
IGJ5IGFuIExGIGJlY29tZXMgYSBDUkxGOw0KICAgICAgICA7OyBhbiBMRiB0
aGF0IGlzIG5vdCBmb2xsb3dlZCBieSBhIENSIGJlY29tZXMgYSBDUkxGLg0K
ICAgICAgICA7OyBhIGxlYWRpbmcgLi4gb24gYSBsaW5lIGlzIG1hcHBlZCB0
byAuDQoNCldTUCA9ICIgIiAvIENSIC8gTEYgLyB0YWINCiAgICAgICAgOzsg
anVzdCB3aGl0ZXNwYWNlDQoNCg0KMTAuICBTZWN1cml0eSBDb25zaWRlcmF0
aW9ucyBVc2VycyBtdXN0IGdldCB0aGVpciBtYWlsLiAgSXQgaXMgaW1wZXJh
LQ0KdGl2ZSB0aGF0IHdoYXRldmVyIG1ldGhvZCBpbXBsZW1lbnRhdGlvbnMg
dXNlIHRvIHN0b3JlIHRoZSB1c2VyLWRlZmluZWQNCmZpbHRlcmluZyBzY3Jp
cHRzIGJlIHJlYXNvbmFibHkgc2VjdXJlLg0KDQpJdCBpcyBlcXVhbGx5IGlt
cG9ydGFudCB0aGF0IGltcGxlbWVudGF0aW9ucyBzYW5pdHktY2hlY2sgdGhl
IHVzZXIncw0Kc2NyaXB0cywgYW5kIG5vdCBhbGxvdyB1c2VycyB0byBjcmVh
dGUgb24tZGVtYW5kIG1haWxib21icy4gIEZvcg0KaW5zdGFuY2UsIGFuIGlt
cGxlbWVudGF0aW9uIHRoYXQgYWxsb3dzIGEgdXNlciB0byBib3VuY2UsIGZv
cndhcmQsIG9yDQpyZXBseSBtdWx0aXBsZSB0aW1lcyB0byBhIHNpbmdsZSBt
ZXNzYWdlIG1pZ2h0IGFsc28gYWxsb3cgYSB1c2VyIHRvDQpjcmVhdGUgYSBt
YWlsYm9tYiB0cmlnZ2VyZWQgYnkgbWFpbCBmcm9tIGEgc3BlY2lmaWMgdXNl
ci4NCg0KMTEuICBBdXRob3IncyBBZGRyZXNzDQoNCg0KDQoNClNob3dhbHRl
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtQYWdlIDE5XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZl
LVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFw
ciAxOTk3DQoNCg0KVGltIFNob3dhbHRlcg0KQ2FybmVnaWUgTWVsbG9uIFVu
aXZlcnNpdHkNCjUwMDAgRm9yYmVzIEF2ZW51ZQ0KUGl0dHNidXJnaCwgUEEg
MTUyMTMNCg0KRS1NYWlsOiB0anNAYW5kcmV3LmNtdS5lZHUNCg0KQXBwZW5k
aXggQS4gICBSZWZlcmVuY2VzDQoNCltBQk5GXSBDcm9ja2VyLCBELiwgICJB
dWdtZW50ZWQgQk5GIGZvciBTeW50YXggU3BlY2lmaWNhdGlvbnM6IEFCTkYi
LA0KSW50ZXJuZXQgTWFpbCBDb25zb3J0aXVtLCBXb3JrIGluIFByb2dyZXNz
Lg0KDQpbS0VZV09SRFNdIEJyYWRuZXIsIFMuLCAiS2V5IHdvcmRzIGZvciB1
c2UgaW4gUkZDcyB0byBJbmRpY2F0ZSBSZXF1aXJlLQ0KbWVudCBMZXZlbHMi
LCBSRkMgMjExOSwgSGFydmFyZCBVbml2ZXJzaXR5LCBNYXJjaCAxOTk3Lg0K
DQpbSU1BUF0gQ3Jpc3BpbiwgTS4sICJJbnRlcm5ldCBNYWlsIEFjY2VzcyBQ
cm90b2NvbCAtIHZlcnNpb24gNHJldjEiLCBSRkMNCjIwNjAsIFVuaXZlcnNp
dHkgb2YgV2FzaGluZ3RvbiwgRGVjZW1iZXIgMTk5Ni4NCg0KW0lNQUlMXSBD
cm9ja2VyLCBELiwgIlN0YW5kYXJkIGZvciB0aGUgRm9ybWF0IG9mIEFSUEEg
SW50ZXJuZXQgVGV4dCBNZXMtDQpzYWdlcyIsIFNURCAxMSwgUkZDIDgyMiwg
VW5pdmVyc2l0eSBvZiBEZWxhd2FyZSwgQXVndXN0IDE5ODIuDQoNCltTTVRQ
XSBQb3N0ZWwsIEouLCAiU2ltcGxlIE1haWwgVHJhbnNmZXIgUHJvdG9jb2wi
LCBTVEQgMTAsIFJGQyA4MjEsDQpVU0MvSW5mb3JtYXRpb24gU2NpZW5jZXMg
SW5zdGl0dXRlLCBBdWd1c3QgMTk4Mi4NCg0KW1VURi04XSBZZXJnZWF1LCBG
LiAiVVRGLTgsIGEgdHJhbnNmb3JtYXRpb24gZm9ybWF0IG9mIFVuaWNvZGUg
YW5kIElTTw0KMTA2NDYiLCBSRkMgMjA0NCwgQWxpcyBUZWNobm9sb2dpZXMs
IE9jdG9iZXIgMTk5Ni4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN
Cg0KDQoNCg0KDQoNCg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2Ug
MjBdDQoM
---559023410-1804928587-861066310=:7488--


Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA23557 for ietf-mta-filters-bks; Tue, 1 Apr 1997 19:46:07 -0800 (PST)
Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA23553 for <ietf-mta-filters@imc.org>; Tue, 1 Apr 1997 19:46:04 -0800 (PST)
Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id WAA16887 for <ietf-mta-filters@imc.org>; Tue, 1 Apr 1997 22:50:44 -0500
Date: Tue, 1 Apr 1997 22:50:43 -0500 (EST)
From: Tim Showalter <tjs@andrew.cmu.edu>
Reply-To: Tim Showalter <tjs@andrew.cmu.edu>
To: MTA Filters <ietf-mta-filters@imc.org>
Subject: pre-draft for language
Message-ID: <Pine.SOL.3.95L.970401224604.1026N-200000@nil.andrew.cmu.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-342241519-859953043=:1026"
Content-ID: <Pine.SOL.3.95L.970401224802.1026P@nil.andrew.cmu.edu>
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-342241519-859953043=:1026
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.SOL.3.95L.970401224802.1026Q@nil.andrew.cmu.edu>

This is a draft for the filtering language.  I managed to fill in a few
examples, but there are still a lot of consistancy errors that arose from
making a lot of changes in the grammar.  I'm posting it anyway because I
believe it'll be better to actually let people see it.

If you find obvious errors, let me know.  I'm SURE there are places that are
not internally consistant.  I'll work on it more tomorrow.

Thanks ...

-- 
                                           Tim Showalter tjs@andrew.cmu.edu

---559023410-342241519-859953043=:1026
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="draft-showalter-sieve-00.txt"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.3.95L.970401225043.1026R@nil.andrew.cmu.edu>
Content-Description: draft-showaltersieve-XX.txt

DQoNCg0KDQoNCg0KTmV0d29yayBXb3JraW5nIEdyb3VwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVC4gU2hvd2FsdGVyDQpJbnRl
cm5ldCBEcmFmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDYXJuZWdpZSBNZWxsb24NCkRvY3VtZW50OiBkcmFmdC1zaG93
YWx0ZXItc2lldmUtWFgudHh0ICAgICAgICAgICAgICAgICAgICAgICAgTWFy
Y2ggMTk5Nw0KRXhwaXJlIHNvbWV0aW1lIGFmdGVyIGl0J3MgcmVsZWFzZWQN
Cg0KICAgICAgICAgICAgICAgICAgICBTSUVWRTogQSBNYWlsIEZpbHRlcmlu
ZyBMYW5ndWFnZQ0KDQpTdGF0dXMgb2YgdGhpcyBNZW1vDQoNCiAgIFRoaXMg
ZHJhZnQgaGFzIG5vIHN0YW5kaW5nIGFuZCBpcyBmb3IgbGltaXRlZCBkaXN0
cmlidXRpb24uICBQbGVhc2UNCiAgIGRvIG5vdCBpbXBsZW1lbnQgYW55dGhp
bmcgd2l0aGluIHdpdGhvdXQgY29udGFjdGluZyB0aGUgYXV0aG9yLCBhbmQN
CiAgIGV2ZW4gdGhlbiwgdXNlIGV4dHJlbWUgY2F1dGlvbjsgZXZlcnl0aGlu
ZyBpbiB0aGlzIGRyYWZ0IGlzIGNhcnZlZCBpbg0KICAgd2FybSBidXR0ZXIu
DQoNCiAgIFRoZSBmb2xsb3dpbmcgaXMgaGVyZSBmb3Igd2hlbiB3ZSBhY3R1
YWxseSBwdWJsaXNoIHRoaXM6DQoNCiAgIFRoaXMgZG9jdW1lbnQgaXMgYW4g
SW50ZXJuZXQtRHJhZnQuICBJbnRlcm5ldC1EcmFmdHMgYXJlIHdvcmtpbmcN
CiAgIGRvY3VtZW50cyBvZiB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFz
ayBGb3JjZSAoSUVURiksIGl0cyBhcmVhcywNCiAgIGFuZCBpdHMgd29ya2lu
ZyBncm91cHMuICBOb3RlIHRoYXQgb3RoZXIgZ3JvdXBzIG1heSBhbHNvIGRp
c3RyaWJ1dGUNCiAgIHdvcmtpbmcgZG9jdW1lbnRzIGFzIEludGVybmV0LURy
YWZ0cy4NCg0KICAgSW50ZXJuZXQtRHJhZnRzIGFyZSBkcmFmdCBkb2N1bWVu
dHMgdmFsaWQgZm9yIGEgbWF4aW11bSBvZiBzaXggbW9udGhzDQogICBhbmQg
bWF5IGJlIHVwZGF0ZWQsIHJlcGxhY2VkLCBvciBvYnNvbGV0ZWQgYnkgb3Ro
ZXIgZG9jdW1lbnRzIGF0IGFueQ0KICAgdGltZS4gIEl0IGlzIGluYXBwcm9w
cmlhdGUgdG8gdXNlIEludGVybmV0LURyYWZ0cyBhcyByZWZlcmVuY2UNCiAg
IG1hdGVyaWFsIG9yIHRvIGNpdGUgdGhlbSBvdGhlciB0aGFuIGFzIGBgd29y
ayBpbiBwcm9ncmVzcy4nJw0KDQogICBUbyBsZWFybiB0aGUgY3VycmVudCBz
dGF0dXMgb2YgYW55IEludGVybmV0LURyYWZ0LCBwbGVhc2UgY2hlY2sgdGhl
DQogICBgYDFpZC1hYnN0cmFjdHMudHh0JycgbGlzdGluZyBjb250YWluZWQg
aW4gdGhlIEludGVybmV0LSBEcmFmdHMNCiAgIFNoYWRvdyBEaXJlY3Rvcmll
cyBvbiBmdHAuaXMuY28uemEgKEFmcmljYSksIGZ0cC5ub3JkdS5uZXQgKEV1
cm9wZSksDQogICBtdW5uYXJpLm96LmF1IChQYWNpZmljIFJpbSksIGRzLmlu
dGVybmljLm5ldCAoVVMgRWFzdCBDb2FzdCksIG9yDQogICBmdHAuaXNpLmVk
dSAoVVMgV2VzdCBDb2FzdCkuDQoNCiAgIFRoZSBwcm90b2NvbCBkaXNjdXNz
ZWQgaW4gdGhpcyBkb2N1bWVudCBpcyBleHBlcmltZW50YWwgYW5kIHN1Ympl
Y3QNCiAgIHRvIGNoYW5nZS4gIFBlcnNvbnMgcGxhbm5pbmcgb24gZWl0aGVy
IGltcGxlbWVudGluZyBvciB1c2luZyB0aGlzDQogICBwcm90b2NvbCBhcmUg
U1RST05HTFkgVVJHRUQgdG8gZ2V0IGluIHRvdWNoIHdpdGggdGhlIGF1dGhv
ciBiZWZvcmUNCiAgIGVtYmFya2luZyBvbiBzdWNoIGEgcHJvamVjdC4NCg0K
QWJzdHJhY3QNCg0KICAgVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgYSBtYWls
IGZpbHRlcmluZyBsYW5ndWFnZSBmb3IgZmlsdGVyaW5nDQogICBtZXNzYWdl
cyBhdCB0aW1lIG9mIGZpbmFsIGRlbGl2ZXIuICBJdCBpcyBkZXNpZ25lZCB0
byBiZSBpbmRlcGVuZGVudA0KICAgb2YgcHJvdG9jb2wsIGFuZCBpbXBsZW1l
bnRhYmxlIG9uIGVpdGhlciBhIG1haWwgY2xpZW50IG9yIG1haWwgc2VydmVy
DQogICB3aGljaCB1c2VzIG11bHRpcGxlIGZvbGRlcnMuICBJdCBpcyBtZWFu
dCB0byBiZSBleHRlbnNpYmxlLCBzaW1wbGUsDQogICBhbmQgaW5kZXBlbmRl
bnQgb2YgYWNjZXNzIHByb3RvY29sLCBtYWlsIGFyY2hpdGVjaHR1cmUsIGFu
ZCBvcGVyYXRpbmcNCiAgIHN5c3RlbXMgdXNlZCB0byBpbXBsZW1lbnQgaXQu
DQoNCiAgIE1haWwgZmlsdGVyaW5nIHN5c3RlbXMgYXJlIHdpZGVseSB1c2Vk
IGZvciBhIHZhcmlldHkgb2YgcmVhc29ucywNCiAgIGluY2x1ZGluZyBvcmdh
bml6YXRpb24gb2YgbWVzc2FnZXMgKGZpbHRlcmluZyBvdXQgbWFpbGluZyBs
aXN0cyksIGFuZA0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDFd
DQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAg
ICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICBhcmUg
YmVjb21pbmcgaW5jcmVhc2luZ2x5IHVzZWZ1bCBpbiBhdm9pZGluZyB1bnNv
bGljaXRlZCBtYWlsLg0KICAgRXhpc3RpbmcgbGFuZ3VhZ2VzIGFyZSBub3Qg
Y29uc2lzdGFudCBhY3Jvc3MgY2xpZW50LCBzZXJ2ZXIsIG9yDQogICBvcGVy
YXRpbmcgc3lzdGVtLCBhbmQgYXJlIGZyZXF1ZW50bHkgZGlmZmljdWx0IGZv
ciB1c2VycyB0byB1c2UuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K
DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN
Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1Bh
Z2UgMl0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQgICAgIFNJ
RVZFICAgICAgICAgICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0KDQoNCiAg
IFRhYmxlIG9mIENvbnRlbnRzDQoNCiAgIFRoaXMgZG9jdW1lbnQgaXMgY29u
dGVudC1mcmVlLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN
Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K
DQoNCg0KDQoNCg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDNd
DQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAg
ICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQowLiAgIEtu
b3duIFdlYWtuZXNzZXMNCg0KICAgVGhlIGZvbGxvd2luZyB3ZWFrbmVzc2Vz
IHdpbGwgYmUgYWRkcmVzc2VkLCBwcm9iYWJseSBieSBleHRlbnNpb25zIHRv
DQogICBiZSBpc3N1ZWQgd2l0aCB0aGlzIGRyYWZ0Lg0KDQogICBTZXZlcmFs
IHBlb3BsZSB3YW50IHJlZ3VsYXIgZXhwcmVzc2lvbnMuICBJdCBpcyBteSBm
ZWVsaW5nIHRoYXQNCiAgIG1vc3RseSBvbmx5IGFkdmFuY2VkIHVzZXJzICht
b3N0bHkgVU5JWCB0eXBlcykgd2FudCByZWd1bGFyDQogICBleHByZXNzaW9u
IHN1cHBvcnQgaW5zdGVhZCBvZiBnbG9icy4gIEkgcmVhbGx5IHdhbnQgdGhp
cyBpbiBteQ0KICAgZmlsdGVyaW5nIGxhbmd1YWdlLCBhbmQgd2lsbCBjb2Rl
IGl0LiAgSG93ZXZlciwgcmVnZXhwIHN1cHBvcnQgaXMNCiAgIGdyb3NzIGFu
ZCBmcmVxdWVudGx5IGNyZWF0aXZlbHkgaW5jb21wYXRpYmxlLCBzbyBJIGhh
dmUgcmVtb3ZlZCBpdA0KICAgZnJvbSB0aGlzIGRyYWZ0LiAgSSB3aWxsIHdy
aXRlIHVwIGFuIGV4dGVuc2lvbiBpZiBJIGNhbiBmaW5kIGENCiAgIHJlYXNv
bmFibGUgd2F5IG9mIGRvY3VtZW50aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbnMg
KHdpbGwgcHJvYmFibHkNCiAgIGJvcnJvdyBzb21ldGhpbmcgZnJvbSBQT1NJ
WCkuDQoNCiAgIEVudmVsb3BlLW1hdGNoaW5nIGNvbW1hbmRzIGFyZSBub3Qg
cmVhZGlseSBzdXBwb3J0ZWQgYnkgYWxsIG1haWwNCiAgIHN5c3RlbXMsIGFu
ZCBwdXR0aW5nIHRoZW0gaW4gdGhlIGRyYWZ0IHdpbGwgcmVzdWx0IGluIGEg
c3lzdGVtIHRoYXQNCiAgIGNhbm5vdCBiZSBpbXBsZW1lbnRlZCBieSBhIG1h
aWwgYXJjaGl0ZWNodHVyZSB0aGF0IGR1bXBzIGVudmVsb3BlcywNCiAgIG9y
IHN0b3JlcyB0aGVtIGluIHdlaXJkIHdheXMuDQoNCiAgICJEZXRhaWxlZCIg
YWRkcmVzc2luZyBpcyBub3QgaGFuZGxlZCwgYW5kIHdpbGwgbGlrZWx5IGJl
IG1vdmVkIHRvIGFuDQogICBleHRlbnNpb24gYXMgaXQgaXMgbm90IHN1cHBv
cnRlZCBieSBhbGwgc3lzdGVtcy4gIERldGFpbGVkIGFkZHJlc3NpbmcNCiAg
IGlzIHdoZXJlLCBpbiBhZGRyZXNzIGxpa2UgdGpzK2ZtaEBhbmRyZXcuY211
LmVkdSwgdGhlIGRlbGl2ZXJ5IHN5c3RlbQ0KICAgaWdub3JlcyB0aGUgIitm
bWgiIGluIHRoZSBhZGRyZXNzLCBidXQgbGVhdmVzIGl0IHRvIHRoZSBmaWx0
ZXJpbmcNCiAgIHN5c3RlbSB0byBpbnRlcnByZXQuICBBICJkZXRhaWwiIGNv
bW1hbmQgd2lsbCBiZSBhZGRlZCB0byBtYXRjaCB0aGlzOw0KICAgaXQgY2Fu
IGJlIGhhbmRsZWQgaW4gdGhlIGRyYWZ0IGFzLWlzIHdpdGggc3VpdGFibGUg
cGF0dGVybiBtYXRjaGluZw0KICAgb24gdGhlIHRvL2NjIGZpZWxkLCBidXQg
aXQgcmVxdWlyZXMgZW52LXRvIG1hdGNoaW5nIHRvIGdldCBpdCByZWFsbHkN
CiAgIHJpZ2h0LiAgVGhpcyBpcyBhIGNvbW1vbiBwcmFjdGljZSBvbiBDTVUn
cyBtYWlsIHN5c3RlbSwgYW5kIHRoZSBDeXJ1cw0KICAgSU1BUEQgb2ZmZXJz
IHNvbWUgc3VwcG9ydCBvZiBpdCBhcyBpdCBpcywgYW5kIGl0J3MgYSBtdXN0
IGZvciB1cy4NCg0KICAgSSBoYWQgYSBzZWN0aW9uIG9uIGEgInN1cHBvcnQi
IHRlc3QsIGJ1dCByZW1vdmVkIGl0LiAgVGhlIGlkZWEgb2YNCiAgIHN1cHBv
cnQgaXMgdGhhdCBpZiBhIGdpdmVuIGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQs
IHRoZSB0ZXN0IGlzIHRydWUsDQogICBhbmQgeW91IGNhbiBjYWxsIG9uIHRo
ZSBleHRlbnNpb24uICBJdCBpcyBhIG5lYXQgaWRlYSwgYnV0IGludHJvZHVj
ZXMNCiAgIG15c3RlcnkgZ3JhbW1hdGljYWwgY29uc3RydWN0cyB0aGF0IGNh
bm5vdCBiZSByZWFzb25hYmx5IHJlc29sdmVkLiAgQQ0KICAgInJlcXVpcmUi
IGtleXdvcmQgaXMgc3RpbGwgdXNlZnVsLCBhbmQgaGFzIGJlZW4gYWRkZWQu
DQoNCiAgIFdoaXRlc3BhY2UgaXMgZm9yIHJlYWRhYmlsaXR5LCBhbmQgYXMg
c3VjaCwgc2hvdWxkIGJlIHJlYXNvbmFibHkgZWFzeQ0KICAgdG8gZWRpdC4g
IChXaGl0ZXNwYWNlIGluIGNvbXB1dGVyLWdlbmVyYXRlZCBzY3JpcHRzIHdp
bGwgcHJvYmFibHkgYmUNCiAgIHNpbmdsZSBzcGFjZXMgYW5kIG9jY2FzaW9u
YWwgbmV3bGluZXMuKSAgQnV0IHRoYW5rcyB0byBjcmVhdGl2ZQ0KICAgb2Jz
Y3VmYXRpb24gZnJvbSBtb2Rlcm4gb3BlcmF0aW5nIHN5c3RlbXMgaW4gdGhl
aXIgZGVmaW5pdGlvbnMgb2YNCiAgIEFTQ0lJLCB0aGVyZSBpcyBubyBwbGF0
Zm9ybS1pbmRlcGVuZGFudCBuZXdsaW5lIGluIGEgdGV4dCBlZGl0b3IsDQog
ICB3aGljaCB3aWxsIGJlIHVzZWZ1bCBmb3IgdXNlcnMgZWRpdGluZyBzb3Vy
Y2UuICBQcm9wb3NlZCBzb2x1dGlvbjoNCiAgIHNpbmNlIHdlIGdlbmVyYWxs
eSBkb24ndCBjYXJlIHdoYXQgdGhlIG5ld2xpbmUgY2hhcmFjdGVyIGlzIGFu
eXdheSwNCiAgIGFsbG93IGFueSBuZXdsaW5lIGNoYXJhY3RlciAob3IsIGlu
IHRoZSBjYXNlIG9mIHJlYWwgQVNDSUksIHRoZSBDUkxGDQogICBzZXF1ZW5j
ZSkgdG8gYmUgd2hpdGVzcGFjZS4gIFRoaXMgaGFzIGJlZW4gdGhlIGRlY2lz
aW9uIHVzZWQgaW4gdGhpcw0KICAgZG9jdW1lbnQgcmVnYXJkaW5nIHdoaXRl
c3BhY2UuDQoNCiAgIENvbW1hbmRzIGNhbiBvcHRpb25hbGx5IGVuZCB3aXRo
IGEgIjsiLCBhbmQgdGVzdHMgY2FuIG9wdGlvbmFsbHkgZW5kDQogICB3aXRo
IGEgIiwiLiAgVGhpcyBpcyBhIGZlYXR1cmUgaW50ZW5kZWQgdG8gYWxsb3cg
Zm9yIGh1bWFucyB0byBtYXJrDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W1BhZ2UgNF0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQgICAg
IFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0KDQoN
CiAgIGVuZHMgb2YgY29tbWFuZHMsIGFzIEkgZXhwZWN0IG1pc3NpbmcgYXJn
dW1lbnRzIGZvciBzb21lIGNvbW1hbmRzDQogICB3aWxsIGJlIGEgZnJlcXVl
bnQgc291cmNlIG9mIGVycm9yLiAgVGhleSBhcmUgdW5uZWNlc3NhcnkgYW5k
IHdvdWxkDQogICBiZSBlYXNpbHkgcmVtb3ZlZCwgYnV0IEknbSBwYXJ0aWFs
IHRvIHRoZW0uICBDb21tZW50cyB3b3VsZCBiZQ0KICAgYXBwcmVjaWF0ZWQu
DQoNCiAgIEknbSBub3Qgc3VyZSBpZiBJIGhhdmUgbW9zdCBvZiB0aGUgdGVj
aG5pY2hhbCB0ZXJtcyByaWdodC4gIEkgc3VzcGVjdA0KICAgdGhleSdyZSBJ
TUFQLWJpYXNlZCwgYW5kIG5lZWQgdG8gcmVmbGVjdCBtYWlsIG1vcmUgZ2Vu
ZXJhbGx5LiAgQW55DQogICBjb21tZW50cyB3b3VsZCBiZSBhcHByZWNpYXRl
ZC4NCg0KMS4gICBJbnRyb2R1Y3Rpb24NCg0KICAgVGhlcmUgYXJlIGEgbnVt
YmVyIG9mIHJlYXNvbnMgdG8gdXNlIGEgZmlsdGVyaW5nIHN5c3RlbTogTWFp
bCB0cmFmZmljDQogICBmb3IgbW9zdCB1c2VycyBoYXMgYmVlbiBpbmNyZWFz
aW5nIGR1ZSBib3RoIHRvIGluY3JlYXNlZCB1c2FnZSBvZiBlLQ0KICAgbWFp
bCwgdGhlIGVtZXJnZW5jZSBvZiB1bnNvbGljaXRlZCBlbWFpbCBhcyBhIGZv
cm0gb2YgYWR2ZXJ0aXNpbmcsDQogICBhbmQgaW5jcmVhc2VkIHVzYWdlIG9m
IG1haWxpbmcgbGlzdHMuDQoNCiAgIFRoaXMgbGFuZ3VhZ2UgaXMgb2ZmZXJl
ZCBpbiBvcmRlciB0byB0cnkgYW5kIHByb3ZpZGUgYSBzdGFuZGFyZA0KICAg
bGFuZ3VhZ2UgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgZmlsdGVycyBm
b3IgZS1tYWlsLiAgSXQgaXMgbm90DQogICB0aWVkIHRvIGFueSBwYXJ0aWN1
bGFyIG9wZXJhdGluZyBzeXN0ZW0gb3IgbWFpbCBhcmNoaXRlY2h0dXJlLiAg
SXQNCiAgIHJlcXVpcmVzIHRoZSB1c2Ugb2YgW1JGQzgyMl0tY29tcGxhbnQg
bWVzc2FnZXMgYW5kIHN1cHBvcnQgb2YNCiAgIG11bHRpcGxlIGZvbGRlcnMs
IGJ1dCBzaG91bGQgd29yayB3aXRoIGEgd2lkZSB2YXJpZXR5IG9mIHN5c3Rl
bXMuDQoNCiAgIFRoZSBsYW5ndWFnZSBpcyBwb3dlcmZ1bCBlbm91Z2ggdG8g
YmUgdXNlZnVsLCBidXQgZGVsaWJyYXRlbHkgdmVyeQ0KICAgbGltaXRlZCBp
biBvcmRlciB0byBhbGxvdyBmb3IgYSByZWFzb25hYmx5IHNlY3VyZSBzZXJ2
ZXItc2lkZQ0KICAgZmlsdGVyaW5nIHN5c3RlbS4gIFRoZSBsYW5ndWFnZSBp
cyBub3QgVHVyaW5nLWNvbXBsZXRlLCBhbmQgcHJvdmlkZXMNCiAgIG5vIHdh
eSB0byB3cml0ZSBhIGxvb3Agb3IgYSBmdW5jdGlvbi4gIFRoZSBpbnRlbnRp
b24gaXMgdG8gbWFrZSBpdA0KICAgaW1wb3NzaWJsZSBmb3IgdXNlcnMgdG8g
ZG8gYW55dGhpbmcgbW9yZSBjb21wbGV4IHRoYW4gd3JpdGUgc2ltcGxlDQog
ICBtYWlsIGZpbHRlcnMuDQoNCiAgIEltcGxlbWVudGF0aW9ucyBvZiB0aGUg
bGFuZ3VhZ2UgYXJlIGV4cGVjdGVkIHRvIHRha2UgcGxhY2UgYXQgdGltZSBv
Zg0KICAgZmluYWwgZGVsaXZlcnkuICBJbiBzeXN0ZW1zIHdoZXJlIHRoZSBN
VEEgZG9lcyBmaW5hbCBkZWxpdmVyeSAtLQ0KICAgSU1BUDQgYW5kIHRyYWRp
dGlvbmFsIFVOSVggbWFpbCwgZm9yIGluc3RhbmNlLCBpdCBpcyByZWFzb25h
YmxlIHRvDQogICBzb3J0IHdoZW4gdGhlIE1UQSBkZXBvc2l0cyBtYWlsIGlu
dG8gdGhlIHVzZXIncyBtYWlsYm94LiAgSWYgdGhlIE1UQQ0KICAgZG9lcyBu
b3QgZG8gZmluYWwgZGVsaXZlcnksIG9yIGxhY2tzIHRoZSBwb3dlciB0byBz
b3J0IGludG8gc2VwZXJhdGUNCiAgIG1haWxib3hlcyAoYXMgaXMgdGhlIGNh
c2UgdW5kZXIgUE9QMyksIHRoZSBNVUEgbXVzdCBkbyBmaWx0ZXJpbmcgaW50
bw0KICAgbG9jYWwgZmlsdGVycy4NCg0KICAgRXhwZXJpZW5jZSBhdCBDYXJu
ZWdpZSBNZWxsb24gaGFzIHNob3duIHRoYXQgaWYgYSBmaWx0ZXJpbmcgc3lz
dGVtIGlzDQogICBtYWRlIGF2YWlsaWJsZSB0byB1c2VycywgbWFueSB3aWxs
IG1ha2UgdXNlIG9mIGl0IGluIG9yZGVyIHRvIGZpbGUNCiAgIG1lc3NhZ2Vz
IGZyb20gc3BlY2lmaWMgdXNlcnMgb3IgbWFpbGluZyBsaXN0cy4gIEhvd2V2
ZXIsIG1hbnkgdXNlcnMNCiAgIGRpZCBub3QgbWFrZSB1c2Ugb2YgdGhlIEFu
ZHJldyBzeXN0ZW0ncyBGTEFNRVMgZmlsdGVyaW5nIGxhbmd1YWdlIGR1ZQ0K
ICAgdG8gZGlmZmljdWx0eSBpbiBwcm9ncmFtbWluZyBpdC4gIER1ZSB0byB0
aGlzIGV4cGVjdGF0aW9uLCB0aGlzDQogICBsYW5ndWFnZSBoYXMgYmVlbiBt
YWRlIHNpbXBsZSBlbm91Z2ggdG8gYWxsb3cgbWFueSB1c2VycyB0byBtYWtl
IHVzZQ0KICAgb2YgaXQuDQoNCjEuMS4gQ29udmVudGlvbnMgdXNlZCBpbiB0
aGlzIGRvY3VtZW50DQoNCiAgIExpbmUgYnJlYWtzIGhhdmUgYmVlbiBpbnNl
cnRlZCBmb3IgcmVhZGFiaWxpdHkuDQoNCg0KDQpTaG93YWx0ZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW1BhZ2UgNV0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQg
ICAgIFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0K
DQoNCiAgIEluIHRoZSBzZWN0aW9ucyBvZiB0aGlzIGRvY3VtZW50IHRoYXQg
ZGlzY3VzcyB0aGUgcmVxdWlyZW1lbnRzIG9mDQogICB2YXJpb3VzIGtleXdv
cmRzIGFuZCBvcGVyYXRvcnMsIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbnMg
aGF2ZSBiZWVuDQogICBhZG9wdGVkLg0KDQogICBFYWNoIHNlY3Rpb24gb24g
YW4gdGVzdCwgYWN0aW9uLCBvciBjb25kaXRpb25hbCBoYXMgYSBsaW5lIGxh
YmVsZWQNCiAgICJTeW50YXg6Ii4gIFRoaXMgbGluZSBkZXNjcmliZXMgdGhl
IGFyZ3VtZW50cyBlYWNoIGNvbW1hbmQgcmVxdWlyZXMuDQogICBSZXF1aXJl
ZCBhcmd1bWVudHMgYXJlIGxpc3RlZCBpbnNpZGUgYW5nbGUgYnJhY2tldHMg
KCI8IiBhbmQgIj4iKS4NCiAgIE9wdGlvbmFsIGFyZ3VtZW50cyBhcmUgbGlz
dGVkIGluc2lkZSBzcXVhcmUgYnJhY2tldHMgKCJbIiBhbmQgIl0iKS4NCiAg
IFRoZSBmb3JtYWwgZ3JhbW1hciBmb3IgdGhlc2UgY29tbWFuZHMgaXMgZGVz
Y3JpYmVkIGluIHNlY3Rpb24gMTAuDQoNCiAgIFRoZSBrZXkgd29yZHMgIk1V
U1QiLCAiTVVTVCBOT1QiLCAiU0hPVUxEIiwgIlNIT1VMRCBOT1QiLCAiQ0FO
IiwgYW5kDQogICAiTUFZIiBpbiB0aGlzIGRvY3VtZW50IGFyZSB0byBiZSBp
bnRlcnByZXRlZCBhcyBkZWZpbmVkIGluIFtYWFhdLg0KDQoxLjIuIEV4YW1w
bGUgbWFpbCBtZXNzYWdlcw0KDQogICBUaGUgZm9sbG93aW5nIG1haWwgbWVz
c2FnZXMgd2lsbCBiZSB1c2VkIHRocm91Z2hvdXQgdGhpcyBkb2N1bWVudCBp
bg0KICAgZXhhbXBsZXMuDQoNCiAgIE1lc3NhZ2UgQQ0KICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCiAgIERhdGU6IFR1ZSwgMSBBcHIgMTk5NyAwOTowNjozMSAtMDgw
MCAoUFNUKQ0KICAgRnJvbTogY295b3RlQGFudmlsLmRlbWVudGlhLm9yZw0K
ICAgVG86IHJvYWRydW5uZXJAYmlyZHNlZWQudGhla2VlcC5vcmcNCiAgIFN1
YmplY3Q6IEkgaGF2ZSBhIHByZXNlbnQgZm9yIHlvdQ0KDQogICBMb29rLCBJ
J20gc29ycnkgYWJvdXQgdGhlIHdob2xlIGFudmlsIHRoaW5nLCBidXQgSSBj
YW4gbWFrZQ0KICAgaXQgdXAgdG8geW91LiAgSSd2ZSBnb3Qgc29tZSBncmVh
dCBiaXJkc2VlZCBvdmVyIGhlcmUgYXQNCiAgIG15IHBsYWNlIC0tIHRvcCBv
ZiB0aGUgbGluZSBzdHVmZiAtLSBhbmQgaWYgeW91IGNvbWUgYnksDQogICBJ
J2xsIGhhdmUgaXQgYWxsIHdyYXBwZWQgdXAgZm9yIHlvdS4gIEknbSByZWFs
bHkgc29ycnkgZm9yDQogICBhbGwgdGhlIHByb2JsZW1zIEkndmUgY2F1c2Vk
IGZvciB5b3Ugb3ZlciB0aGUgeWVhcnMsIGFuZA0KICAgSSBrbm93IHdlIGNh
biB3b3JrIHRoaXMgb3V0Lg0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgTWVz
c2FnZSBCDQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgRnJvbTogeW91Y291bGRi
ZXJpY2ghQHJlcGx5LWJ5LXBvc3RhbC1tYWlsDQogICBTZW5kZXI6IGIxZmZA
em5pYy5uZXQNCiAgIFRvOiBydWJlQHpuaWMubmV0DQogICBEYXRlOiAgTW9u
LCAzMSBNYXIgMTk5NyAxODoyNjoxMCAtMDgwMCAoUFNUKQ0KICAgU3ViamVj
dDogJCQkIFlPVSwgVE9PLCBDQU4gQkUgQSBNSUxMSU9OQUlSRSEgJCQkDQoN
CiAgIFlPVSBNQVkgSEFWRSBBTFJFQURZIFdPTiBURU4gTUlMTElPTiBET0xM
QVJTLCBCVVQgSSBET1VCVA0KICAgSVQhICBTTyBKVVNUIFBPU1QgVEhJUyBU
TyBTSVggSFVORFJFRCBORVdTR1JPVVBTISAgSVQgV0lMTA0KICAgR1VBUkFO
VEVFIFRIQVQgWU9VIEdFVCBBVCBMRUFTVCBGSVZFIFJFU1BPTlNFUyBXSVRI
IE1PTkVZIQ0KICAgTU9ORVkhIE1PTkVZISBDT0xEIEhBUkQgQ0FTSCEgIFlP
VSBXSUxMIFJFQ0VJVkUgT1ZFUg0KICAgJDIwLDAwMCBJTiBMRVNTIFRIQU4g
VFdPIE1PTlRIUyEgIEFORCBJVCdTIExFR0FMISEhIEpVU1QNCiAgIFNFTkQg
JDUgSU4gU01BTEwsIFVOTUFSS0VEIEJJTExTIFRPIFRIRSBBRERSRVNTRVMg
QkVMT1chDQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KU2hvd2FsdGVyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtQYWdlIDZdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgu
dHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5
OTcNCg0KDQoyLiAgIERlc2lnbg0KDQoyLjEuIEZvcm0gb2YgdGhlIGxhbmd1
YWdlDQoNCiAgIFRoaXMgbGFuZ3VhZ2UgaXMgbWFkZSB1cCBhcyBhIHNldCBv
ZiBjb21tYW5kcy4gIEVhY2ggY29tbWFuZCBpcw0KICAgZWl0aGVyIGFuIGFj
dGlvbiBvciBhIGNvbmRpdGlvbmFsLiAgRWFjaCBjb25kaXRpb25hbCBjb250
YWlucyBhIHRlc3Q7DQogICBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2Yg
dGhlIHRlc3QsIG9uZSBzZXQgb2YgY29tbWFuZHMgaW4gYQ0KICAgY29udHJv
bCBzdHJ1Y3R1cmUgaXMgdGFrZW4uDQoNCjIuMi4gV2hpdGVzcGFjZQ0KDQog
ICBXaGl0ZXNwYWNlIHNlcGVyYXRlcyBjb21tYW5kcy4gIFRoZSBhbW91bnQg
b2Ygd2hpdGVzcGFjZSB1c2VkIGluDQogICBzZXBlcmF0aW5nIGNvbW1hbmRz
IGlzIG5vdCBpbXBvcnRhbnQuICBXaGl0ZXNwYWNlIGluY2x1ZGVzIHRhYnMs
DQogICBuZXdsaW5lcywgYW5kIHRoZSBzcGFjZSBjaGFyYWN0ZXIuDQoNCjIu
My4gQ29tbWVudHMNCg0KICAgQ29tbWVudHMgYmVnaW4gd2l0aCBhICIjIiBj
aGFyYWN0ZXIgdGhhdCBpcyBub3QgY29udGFpbnRlZCB3aXRoaW4gYQ0KICAg
c3RyaW5nIGFuZCBjb250aW51ZSB1bnRpbCB0aGUgbmV4dCBuZXdsaW5lLg0K
DQoyLjQuIE51bWJlcnMNCg0KICAgTnVtYmVycyBhcmUgbm9ybWFsbHkgZ2l2
ZW4gaW4gdGhlIGZvcm0gb2YgZGVjaW1hbCBudW1iZXJzLiAgSG93ZXZlciwN
CiAgIHRob3NlIG51bWJlcnMgdGhhdCBoYXZlIGEgdGVuZGFuY3kgdG8gYmUg
ZmFpcmx5IGxhcmdlLCBzdWNoIGFzDQogICBtZXNzYWdlIHNpemVzLCBzdWNo
IGFzIG1lc3NhZ2Ugc2l6ZXMsIG1heSBoYXZlIGEgIksiLCAiTSIsIG9yICJH
Ig0KICAgYXBwZW5kZWQgdG8gaW5kaWNhdGUgYSBtdWx0aXBsZSBvZiBhIGJh
c2UtdHdvIG51bWJlci4gIFRvIGJlDQogICBjb21wYXJhYmxlIHdpdGggdGhl
IGJhc2UtdHdvLWJhc2VkIHZlcnNpb25zIG9mIFNJIHVuaXRzIHRoYXQNCiAg
IGNvbXB1dGVycyBmcmVxdWVudGx5IHVzZSwgSyBzcGVjaWZpZXMga2lsbywg
b3IgMSwwMjQgdGltZXMgdGhlIHZhbHVlDQogICBvZiB0aGUgbnVtYmVyOyBN
IHNwZWNpZmllcyBtZWdhLCBvciAxLDA0OCw1NzYgdGltZXMgdGhlIHZhbHVl
IG9mIHRoZQ0KICAgbnVtYmVyOyBhbmQgRyBzcGVjaWZpZXMgZ2lnYSwgb3Ix
LDA3Myw3NDEsODI0IHRpbWVzIHRoZSB2YWx1ZSBvZiB0aGUNCiAgIG51bWJl
ci4NCg0KMi41LiBTdHJpbmdzDQoNCiAgIFNjcmlwdHMgaW52b2x2ZSBsYXJn
ZSBudW1iZXJzIG9mIHN0cmluZ3MuICBUeXBpY2FsbHksIHNob3J0IHF1b3Rl
ZA0KICAgc3RyaW5ncyBzdWZmaWNlIGZvciBtb3N0IHVzZXMsIGJ1dCBhIG1v
cmUgY29udmVpbmVudCBmb3JtIGlzIHByb3ZpZGVkDQogICBmb3IgbG9uZ2Vy
IHN0cmluZ3MuDQoNCiAgIEEgcXVvdGVkIHN0cmluZyBzdGFydHMgYW5kIGVu
ZHMgd2l0aCBhIHNpbmdsZSBkb3VibGUgcXVvdGUgKHRoZSAiKS4NCiAgIEEg
YmFja3NsYXNoICgiIGJhY2tzbGFzaCBvciBhIGRvdWJsZSBxdW90ZS4gIFRo
aXMgdHdvLWNoYXJhY3Rlcg0KICAgc2VxdWVuY2UgcmVwcmVzZW50cyBhIHNp
bmdsZSBiYWNrc2xhc2ggb3IgZG91YmxlLXF1b3RlIHdpdGhpbiB0aGUNCiAg
IHN0cmluZy4NCg0KICAgRm9yIGVudGVyaW5nIGxhcmdlciBhbW91bnRzIG9m
IHRleHQsIHN1Y2ggYXMgYW4gZW1haWwgbWVzc2FnZSwgYQ0KICAgbG9uZ2Vy
IGZvcm0gaXMgYWxsb3dlZCwga25vd24gYXMgYSAidXNlci1tZXNzYWdlIi4g
IEl0IHN0YXJ0cyB3aXRoDQogICB0aGUga2V5d29yZCAibWVzc2FnZSIgYW5k
IGVuZHMgd2l0aCB0aGUgc2VxdWVuY2Ugb2YgYSBuZXdsaW5lLCBhDQogICBz
aW5nbGUgcGVyaW9kLCBhbmQgYW5vdGhlciBuZXdsaW5lLiAgQW55IGxpbmUg
dGhhdCBiZWdpbnMgd2l0aCAiLi4iDQogICBpcyBjb25zaWRlcmVkIHRvIGJl
Z2luIHdpdGggIi4iLg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdl
IDddDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVW
RSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICBF
eGFtcGxlOiAgICBpZiBhbnktb2YgKGhlYWRlciAoImZyb20iKSBjb250YWlu
cw0KICAgICAgICAgICAgICAgICAgKCJiYXJ0IiAiaG9tZXIiICJzbWl0aGVy
cyIgImJ1cm5zIiAibGlzYSIpDQogICAgICAgICAgICAgICBoZWFkZXIgKCJz
dWJqZWN0IikgY29udGFpbnMgKCJVUkdFTlQiKSkgdGhlbiBmaWxlaW50bw0K
ICAgICAgICAgICAgICAgIklOQk9YIiBlbHNlIHJlcGx5IG1lc3NhZ2UgWW91
IGFyZSBub3Qgb25lIG9mIHRoZSBwZW9wbGUNCiAgICAgICAgICAgICAgIEkg
cmVndWxhcmx5IGNvcnJlc3BvbmQgd2l0aC4gIEkgaGF2ZSBkZWxldGVkIHlv
dXIgbWVzc2FnZQ0KICAgICAgICAgICAgICAgZHVlIHRvIHRoZSBsYXJnZSB2
b2x1bWUgb2YgZW1haWwgSSByZWd1bGFybHkgcmVjZWl2ZS4gIElmDQogICAg
ICAgICAgICAgICB5b3UgZmVlbCB0aGF0IHlvdSBuZWVkIHRvIHNwZWFrIHdp
dGggbWUgZGlyZWN0bHksIGFuZA0KICAgICAgICAgICAgICAgY2Fubm90IGZp
bmQgeW91ciBhbnN3ZXIgaW4gbXkgd2ViIHBhZ2VzLCBwbGVhc2Ugc2VuZCBt
YWlsDQogICAgICAgICAgICAgICB3aXRoIHRoZSB3b3JkICJVUkdFTlQiIGlu
IHRoZSBzdWJqZWN0IGxpbmUuICBUaGFuayB5b3UNCiAgICAgICAgICAgICAg
IGZvciB5b3VyIHRpbWUuDQogICAgICAgICAgICAgICBbIE9ORSBTSU5HTEUg
RE9ULCB3aGljaCBJIGNhbid0IGdldCBucm9mZiB0byBwcm9kdWNlIC4uLg0K
ICAgICAgICAgICAgICAgXQ0KICAgICAgICAgICAgICAgZW5kaWYNCg0KDQoy
LjYuIEFkZHJlc3Nlcw0KDQogICBBIG51bWJlciBvZiBjb21tYW5kcyBjYWxs
IGZvciBlbWFpbCBhZGRyZXNzZXMuICBUaGVzZSBhZGRyZXNzZXMgbXVzdA0K
ICAgYmUgY29tcGxpYW50IHdpdGggW1JGQzgyMl0uICBJbXBsZW1lbnRhdGlv
bnMgTVVTVCBpbnN1cmUgdGhlDQogICBhZGRyZXNzZXMgYXJlIHN5bnRhY3Rp
Y2FsbHkgdmFsaWQsIGFuZCBuZWVkIG5vdCBpbnN1cmUgdGhhdCB0aGV5IGFy
ZQ0KICAgYWN0dWFsbHkgZGVsaXZlcmFibGUuDQoNCjIuNy4gRXZhbHVhdGlv
bg0KDQogICBJZiBldmFsdWF0aW9uIG9mIHRoZSBzY3JpcHQgZmFpbHMgdG8g
cHJvZHVjZSBhbnkgYWN0aW9ucywgYXMgaW4gdGhlDQogICBmb2xsb3dpbmcg
c2NyaXB0IHdpdGggbWVzc2FnZSBBIGFib3ZlOg0KDQogICBFeGFtcGxlOiAg
ICBpZiBzaXplIG92ZXIgNTAwSyB0aGVuIHRvc3MgZW5kaWYNCg0KICAgdGhl
biB0aGUgIm5vcm1hbCIgYWN0aW9uIGlzIHRha2VuLiAgVGhlICJub3JtYWwi
IGFjdGlvbiBpcyBkZWZpbmVkIHRvDQogICBiZSB0aGUgYWN0aW9uIHRoYXQg
aXMgdGFrZW4gbm9ybWFsbHksIHN1Y2ggYXMgaW4gYSBzaXR1YXRpb24gd2hl
cmUNCiAgIHRoZSB1c2VyIGRvZXMgbm8gZmlsdGVyaW5nLiAgVW5kZXIgbW9z
dCBzaXR1YXRpb25zLCB0aGUgbm9ybWFsIGFjdGlvbg0KICAgaXMgdG8gZmls
ZSBpbnRvIHRoZSB1c2VyJ3MgbWFpbiBtYWlsYm94IChzdWNoIGFzICJJTkJP
WCIgb24gbWFueQ0KICAgaW1wbGVtZW50YXRpb25zKS4NCg0KICAgSW1wbGVt
ZW50YXRpb25zIGRlZmluZSB0aGUgc3BlY2lmaWMgbWVhbmluZ3Mgb2YgYWN0
aW9ucy4gIEltcGxlbWVudGEtDQogICB0aW9ucyBtYXkgaW1wb3NlIHJlc3Ry
aWN0aW9ucyBvbiB0aGUgYWN0aW9ucyB0YWtlbiwgc3VjaCBhcyBvbmx5DQog
ICBob25vcmluZyBvbmUgInJlcGx5IiwgImJvdW5jZSIsIG9yICJmb3J3YXJk
IiBwZXIgbWVzc2FnZS4NCg0KICAgUHJlY2VkZW5jZSBpcyBub3QgaW1wb3J0
YW50IGluIGFueSBvZiB0aGUgY29tbWFuZHMgaW4gdGhpcyBiYXNlDQogICBz
cGVjaWZpY2F0aW9uLiAgSG93ZXZlciwgYXMgYW4gZXh0ZW5zaW9uIG1pZ2h0
IG1ha2UgaXQgbW9yZSBpbXBvci0NCiAgIHRhbnQsIGFsbCBydWxlcyBtdXN0
IGJlIGV2YWx1YXRlZCBpbiBsZWZ0LXRvLXJpZ2h0IG9yZGVyLiAgVGhvc2UN
CiAgIG9wZXJhdGlvbnMgdGhhdCBtYXkgaW1wbGVtZW50IHNob3J0LWNpcmN1
aXQgZXZhbHVhdGlvbiAoc3VjaCBhcyB0aGUNCiAgICJhbGwtb2YiIGFuZCAi
YW55LW9mIiBvcGVyYXRvcnMsIHdoaWNoIHByZWZvcm0gbG9naWNhbCAiYW5k
IiBhbmQgIm9yIg0KICAgb3BlcmF0aW9ucywgcmVzcGVjdGl2ZWx5KSBNQVkg
ZG8gc28uDQoNCjMuICAgQ29uZGl0aW9uYWxzIGFuZCBDb250cm9sIFN0cnVj
dHVyZXMNCg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDhdDQoM
DQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAgICAg
ICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICBJbiBvcmRl
ciBmb3IgYSBzY3JpcHQgdG8gZG8gbW9yZSB0aGFuIG9uZSBzZXQgb2YgYWN0
aW9ucywgY29udHJvbA0KICAgc3RydWN0dXJlcyBhcmUgbmVlZGVkLg0KDQoz
LjEuIElmDQoNCiAgIFN5bnRheDogICAgIGlmIDx0ZXN0PiB0aGVuIDxjb21t
YW5kcz4NCiAgICAgICAgICAgICAgIFtlbHNpZiA8ZWxzaWYtdGVzdD4gdGhl
biA8ZWxzaWYtY29tbWFuZHM+IFtlbHNpZiAuLi5dXQ0KICAgICAgICAgICAg
ICAgW2Vsc2UgPGVsc2UtY29tbWFuZHM+XQ0KICAgICAgICAgICAgICAgZW5k
aWYNCg0KICAgVGhlICJpZiIgY29udHJvbCBzdHJ1Y3R1cmUgaXMgYm9ycm93
ZWQgZnJvbSBhbnkgbnVtYmVyIG9mIHByb2dyYW1taW5nDQogICBsYW5ndWFn
ZXMuICBJdCBpcyBldmFsdWF0ZWQgaW4gdGhlIHVzdWFsIHdheSwgYXMgZm9s
bG93czogaWYgPHRlc3Q+DQogICBpcyB0cnVlLCB0aGVuIDxjb21tYW5kcz4g
YXJlIGV2YWx1YXRlZC4gIElmIGFuIGVsc2lmIGtleXdvcmQgZXhpc3RzLA0K
ICAgYW5kIDxuZXh0LXRlc3Q+IGlzIHRydWUsIHRoZW4gPGVsc2lmLWNvbW1h
bmRzPiBhcmUgZXZhbHVhdGVkLiAgQW55DQogICBudW1iZXIgb2YgZWxzaWYg
Y2FzZXMgbWF5IGJlIGluY2x1ZGVkLCBhbmQgYXJlIGV2YWx1YXRlZCBzZXJp
YWxseS4NCiAgIElmIDx0ZXN0PiBpcyBmYWxzZSBhbmQgdGhlIDxlbHNpZi10
ZXN0PnMgYXJlIGZhbHNlIGFzIHdlbGwsIHRoZW4gdGhlDQogICA8ZWxzZS1j
b21tYW5kcz4gYXJlIGV2YWx1YXRlZC4gIFRoZSAiaWYiIGJsb2NrIGlzIHRl
cm1pbmF0ZWQgd2l0aCBhbg0KICAgImVuZGlmIiBrZXl3b3JkLCB3aGljaCBp
cyByZXF1aXJlZC4NCg0KICAgSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBi
b3RoIE1lc3NhZ2UgQSBhbmQgQiBhcmUgZHJvcHBlZC4NCg0KICAgRXhhbXBs
ZTogICAgaWYgaGVhZGVyICgiZnJvbSIpIGNvbnRhaW5zICgiY295b3RlIikg
dGhlbg0KICAgICAgICAgICAgICAgdG9zcw0KICAgICAgICAgICAgICAgZWxz
aWYgaGVhZGVyICgic3ViamVjdCIpIGNvbnRhaW5zICgiJCQkIikNCiAgICAg
ICAgICAgICAgIHRoZW4gdG9zcw0KICAgICAgICAgICAgICAgZWxzZSBmaWxl
aW50byAiSU5CT1giDQogICAgICAgICAgICAgICBlbmRpZg0KDQogICBPbmx5
IG9uZSBzZXQgb2YgY29tbWFuZHMgIGluIGFuIGlmIC4uLiBlbHNpZiAuLi4g
ZWxzaWYgLi4uIGVsc2UgLi4uDQogICBlbmRpZiBibG9jayBpcyBleGVjdXRl
ZC4NCg0KICAgSW4gdGhlIHNjcmlwdCBiZWxvdywgd2hlbiBydW4gb3ZlciBt
ZXNzYWdlIEEsIHNlbmRzIG1haWwgdG8NCiAgIGFjbUBhbmRyZXcuY211LmVk
dTsgbWVzc2FnZSBCLCB0byBzZXJ2aWNlQGFuZHJldy5jbXUuZWR1OyBhbmQg
bWVzc2FnZQ0KICAgQywgdG8gcG9zdG1hbkBhbmRyZXcuY211LmVkdS4NCg0K
ICAgRXhhbXBsZTogICAgWFhYDQogICAgICAgICAgICAgICBYWFgNCg0KMy4y
LiBSZXF1aXJlDQoNCiAgIFN5bnRheDogICAgIHJlcXVpcmUgPGV4dGVuc2lv
bi1uYW1lPg0KDQogICBSZXF1aXJlIFNIT1VMRCBiZSBkZWNsYXJlZCBpbiBh
IHVzZXIgc2NyaXB0IGJlZm9yZSBhbiBleHRlbnNpb24gaXMNCiAgIHVzZWQu
ICBJdCBpbnN0cnVjdHMgdGhlIGV2YWx1YXRvciB0aGF0IHRoZSBleHRlbnNp
b24gbmFtZWQNCiAgIGV4dGVuc2lvbi1uYW1lLCBzdXBwbGllZCBhcyBhIHN0
cmluZywgTVVTVCBiZSBwcmVzZW50IGluIG9yZGVyIHRvDQogICBhbGxvdyBm
dXJ0aGVyIHByb2Nlc3NpbmcuICBJZiB0aGUgc3RyaW5nIHNwZWNpZmllcyBh
biBleHRlbnNpb24gdGhhdA0KICAgdGhlIGV2YWx1YXRpbmcgbWVjaGFuaXNt
IHN1cHBvcnRzLCB0aGVuIHByb2Nlc3NpbmcgY29udGludWVzLiAgT3RoZXIt
DQogICB3aXNlLCBhbiBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZXJlZCwgYW5k
IHRoZSBzY3JpcHQgc2hvdWxkIG5vdCBiZQ0KDQoNCg0KU2hvd2FsdGVyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtQYWdlIDldDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgu
dHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5
OTcNCg0KDQogICBldmFsdWF0ZWQuDQoNCiAgIFJlcXVpcmUgaXMgaW50ZW5k
ZWQgdG8gZGVtYW5kIHRoZSB1c2Ugb2YgYW4gZXh0ZW5zaW9uIG5vdCBwcmVz
ZW50IGluDQogICB0aGlzIGRvY3VtZW50Lg0KDQogICBUaGUgZm9sbG93aW5n
IGV4YW1wbGUgd2lsbCBmYWlsIG9uIGFueSBzZXJ2ZXIgdGhhdCBkb2VzIG5v
dCBpbXBsZW1lbnQNCiAgIHRoZSBleHRlbnNpb24ga25vd24gYXMgRFdJTS4N
Cg0KDQogICBFeGFtcGxlOiAgICByZXF1aXJlICJkd2ltIjsgaWYgaGVhZGVy
ICgic3ViamVjdCIpIGNvbnRhaW5zLW5vY2FzZQ0KICAgICAgICAgICAgICAg
KCJ0aGUgc2VjcmV0IG1lc3NhZ2UiKSB0aGVuIGR3aW0gYmx1cmR5Ymxvb3Ag
Ym9keTsgZW5kaWYNCiAgICAgICAgICAgICAgIHN0b3ANCg0KDQo0LiAgIEFj
dGlvbnMgVGhpcyBkb2N1bWVudCBzdXBwbGllcyBzaXggYWN0aW9ucyB0aGF0
IG1heSBiZSB0YWtlbiBvbiBhDQogICBtZXNzYWdlOiBub3JtYWwsIGZpbGVp
bnRvLCBmb3J3YXJkLCByZXNlbmQsIGJvdW5jZSwgdG9zcywgYW5kIHN0b3Au
DQoNCjQuMS4gQWN0aW9uIGJvdW5jZQ0KDQogICBTeW50YXg6ICAgICBib3Vu
Y2UNCg0KICAgVGhlICJib3VuY2UiIGFjdGlvbiByZXNlbmRzIHRoZSBtZXNz
YWdlIHRvIHRoZSBzZW5kZXIsIHdyYXBwaW5nIGl0IGluDQogICBhICJib3Vu
Y2UiIGZvcm0sIG5vdGluZyB0aGF0IGl0IHdhcyByZWplY3RlZCBieSB0aGUg
cmVjaXBpZW50LiAgSW4NCiAgIHRoZSBmb2xsb3dpbmcgc2NyaXB0LCBtZXNz
YWdlIEEgaXMgYm91bmNlZCB0byB0aGUgc2VuZGVyLg0KDQogICBFeGFtcGxl
OiAgICBpZiBoZWFkZXIgKCJmcm9tIikgY29udGFpbnMgKCJjb3lvdGVAYW52
aWwuZGVtZW50aWEub3JnIikNCiAgICAgICAgICAgICAgIHRoZW4gYm91bmNl
IGVuZGlmDQoNCiAgIDQuMi4gICBBY3Rpb24gZmlsZWludG8NCg0KICAgU3lu
dGF4OiAgICAgZmlsZWludG8gPGZvbGRlcj4NCg0KICAgVGhlICJmaWxlaW50
byIgYWN0aW9uIGRyb3BzIHRoZSBtZXNzYWdlIGludG8gYSBuYW1lZCBmb2xk
ZXIuICBJbiB0aGUNCiAgIGZvbGxvd2luZyBzY3JpcHQsIG1lc3NhZ2UgQSBp
cyBmaWxlZCBpbnRvIGZvbGRlciAiSU5CT1guaGFyYXNzbWVudCIuDQoNCiAg
IEV4YW1wbGU6ICAgIGlmIGhlYWRlciAoInRvIikgY29udGFpbnMNCg0KNC4z
LiBBY3Rpb24gZm9yd2FyZA0KDQogICBTeW50YXg6ICAgICBmb3J3YXJkIDxh
ZGRyZXNzPg0KDQogICBUaGUgImZvcndhcmQiIGFjdGlvbiBpcyB1c2VkIHRv
IGZvcndhcmQgdGhlIG1lc3NhZ2UgdG8gYW5vdGhlciB1c2VyDQogICBhdCB0
aGUgc3VwcGxpZWQgYWRkcmVzcywgYXMgYSBtYWlsIGZvcndhcmRpbmcgZmVh
dHVyZSBkb2VzLiAgVGhlDQogICAiZm9yd2FyZCIgYWN0aW9uIG1ha2VzIG5v
IGNoYW5nZXMgdG8gdGhlIG1lc3NhZ2UgYm9keSBvciBoZWFkZXJzLCBhbmQN
CiAgIG9ubHkgbW9kaWZpZXMgdGhlIGVudmVsb3BlLg0KDQogICBBIHNpbXBs
ZSBzY3JpcHQgY2FuIGJlIHVzZWQgZm9yIGZvcndhcmRpbmc6DQoNCg0KDQoN
ClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtQYWdlIDEwXQ0KDA0KZHJhZnQtc2hvd2Fs
dGVyLXNpZXZlLVhYLnR4dCAgICAgU0lFVkUgICAgICAgICAgICAgICAgICAg
ICAgIDIwIE1hciAxOTk3DQoNCg0KICAgRXhhbXBsZTogICAgZm9yd2FyZCAi
dGpzQGFuZHJldy5jbXUuZWR1Ig0KDQo0LjQuIEFjdGlvbiBub3JtYWwNCg0K
ICAgU3ludGF4OiAgICAgbm9ybWFsDQoNCiAgIFRoZSAibm9ybWFsIiBhY3Rp
b24gaXMgd2hhdGV2ZXIgYWN0aW9uIGlzIHRha2VuIGluIGxlaXUgb2YgYWxs
IG90aGVyDQogICBhY3Rpb25zOyBnZW5lcmFsbHksIHRoaXMgc2ltcGx5IG1l
YW5zIHRvIGRyb3AgdGhlIG1lc3NhZ2UgaW50byB0aGUNCiAgIHVzZXIncyBu
b3JtYWwgbWFpbGJveC4gIFRoaXMgY29tbWFuZCBwcm92aWRlcyBhIHdheSB0
byBleGVjdXRlIHRoaXMNCiAgIGFjdGlvbiB3aXRob3V0IG5hbWluZyBpdCBl
eHBsaWNpdGFsbHksIHByb3ZpZGluZyBhIHdheSB0byB1c2UgaXQNCiAgIGlu
ZGVwZW5kYW50IG9mIHN5c3RlbS4NCg0KICAgU3ludGF4OiAgICAgaWYgc2l6
ZSB1bmRlciAxTUIgdGhlbiBub3JtYWwgZWxzZSB0b3NzDQoNCjQuNS4gQWN0
aW9uIHJlcGx5DQoNCiAgIFN5bnRheDogICAgIHJlcGx5IDxtZXNzYWdlPg0K
DQogICBUaGUgInJlcGx5IiBhY3Rpb24gaXMgdXNlZCB0byBnZW5lcmF0ZSBh
IGZvcm0gbGV0dGVyIHJlcGx5IHRvIHRoZQ0KICAgb3JpZ2luYWwgc2VuZGVy
LiAgTWVzc2FnZSBpcyBYWFhYWFhYWFgNCg0KICAgRXhhbXBsZTogICAgaWYg
c2l6ZSBvdmVyIDUwMEsgcmVwbHkgbWVzc2FnZQ0KICAgICAgICAgICAgICAg
WW91ciBtZXNzYWdlIHdhcyB1bm5lY2Vzc2FyaWx5IGxhcmdlLg0KICAgICAg
ICAgICAgICAgSSByZWplY3QgYWxsIGxhcmdlIG1lc3NhZ2VzOyB5b3Ugd2ls
bCBuZWVkIHRvIGNvbnRhY3QgbWUNCiAgICAgICAgICAgICAgIGRpcmVjdGx5
Lg0KICAgICAgICAgICAgICAgZWxzZSBub3JtYWwgZW5kaWYNCg0KICAgT1BF
TjogU3BlY2lmeSBoZWFkZXJzIHRyYW5zbWl0dGVkPyAgU3BlY2lmeSBudW1i
ZXIgb2YgZGF5cyBiZWZvcmUNCiAgIGNvbnNpZGVyZWQgdmFsaWQvaW52YWxp
ZD8NCjQuNi4gQWN0aW9uIHJlc2VuZA0KDQogICBTeW50YXg6ICAgICByZXNl
bmQgPGFkZHJlc3M+DQoNCiAgIFRoZSAicmVzZW5kIiBhY3Rpb24gcmVzZW5k
cyBhIG1lc3NhZ2UgdG8gdGhlIHN1cHBsaWVkIGFkZHJlc3MsIGFkZGluZw0K
ICAgdGhlIGFwcHJvcHJpYXRlIFJlc2VudC1Gcm9tOiBhbmQgUmVzZW50LVRv
OiBoZWFkZXJzLiAgT3RoZXIgdGhhbiBhDQogICBmZXcgYWRkZWQgaGVhZGVy
cywgdGhlICJyZXNlbmQiIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIG1ha2Ug
bm8NCiAgIGNoYW5nZXMgdG8gdGhlIG1lc3NhZ2UgYm9keSBvciBoZWFkZXJz
LCBsZWF2aW5nIHRoZSBtZXNzYWdlIG1vc3RseQ0KICAgdW50b3VjaGVkLg0K
DQogICBFeGFtcGxlDQogICAgICAgIGlmIHN1YmplY3QgImN5cnVzIiB0aGVu
IHJlc2VuZCAiY3lydXMtYnVnc0BhbmRyZXcuY211LmVkdSIgZW5kaWYNCg0K
NC43LiBBY3Rpb24gc3RvcCBUaGUgInN0b3AiIGFjdGlvbiBlbmRzIGFsbCBw
cm9jZXNzaW5nLiAgSWYgbm8gYWN0aW9ucw0KICAgaGF2ZSBiZWVuIGV4ZWN1
dGVkLCB0aGVuIHRoZSBub3JtYWwgYWN0aW9uIGlzIHRha2VuLg0KDQogICBF
eGFtcGxlOiAgICBpZiAoaGVhZGVyICJmcm9tIiBtYXRjaGVzICJ3YWxsKkBh
bmRyZXcuY211LmVkdSIpDQogICAgICAgICAgICAgICAgICAgIHRoZW4gZm9y
d2FyZCAidGpzQHhhbmFkdS53di51cyI7IGVuZGlmIHN0b3ANCiAgICAgICAg
ICAgICAgIGVuZGlmIHJlcGx5ICJJJ20gb24gdmFjYXRpb24gYW5kIG5vdCB0
YWtpbmcgYW55IG1lc3NhZ2VzOw0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W1BhZ2UgMTFdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAg
ICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0K
DQogICAgICAgICAgICAgICB0cnkgYWdhaW4gaW4gYSB3ZWVrLiINCg0KNC44
LiBBY3Rpb24gdG9zcyBUb3NzIGRyb3BzIHRoZSBtZXNzYWdlLg0KDQogICBF
eGFtcGxlOiAgICBpZiBoZWFkZXIgImZyb20iIGNvbnRhaW5zICJ3YWxsQGFu
ZHJldy5jbXUuZWR1IiB0aGVuIHRvc3MNCiAgICAgICAgICAgICAgIGVuZGlm
DQoNCjUuICAgVGVzdHMNCg0KICAgVGVzdHMgYXJlIHVzZWQgaW4gY29uZGl0
aW9uYWxzIHRvIGRlY2lkZSB3aGljaCBwYXJ0KHMpIG9mIHRoZSBjb25kaS0N
CiAgIHRpb25hbCB0byBleGVjdXRlLg0KDQo1LlguIGFsbC1vZg0KDQogICBT
eW50YXg6ICAgICBhbGwtb2YgKCA8dGVzdD4gWyxdIDx0ZXN0PiBbLF0gLi4u
IDx0ZXN0PiApDQoNCiAgIFRoZSBhbGwtb2YgdGVzdCBwcmVmb3JtcyBhIGxv
Z2ljYWwgQU5EIG9uIHRoZSB0ZXN0cyBzdXBwbGllZCB0byBpdC4NCg0KICAg
VGhlIGNvbW1hIGluIGJldHdlZW4gdGVzdHMgaXMgb3B0aW9uYWwuDQoNCg0K
ICAgRXhhbXBsZTogICAgYWxsLW9mIChmYWxzZSBmYWxzZSkgID0+ICAgZmFs
c2UNCiAgICAgICAgICAgICAgIGFsbC1vZiAoZmFsc2UgdHJ1ZSkgICA9PiAg
IGZhbHNlDQogICAgICAgICAgICAgICBhbGwtb2YgKHRydWUsIHRydWUpICAg
PT4gICB0cnVlDQoNCg0KICAgNS5YLiBhbnktb2YNCg0KICAgU3ludGF4OiAg
ICAgYWxsLW9mICggPHRlc3Q+IFssXSA8dGVzdD4gWyxdIC4uLiA8dGVzdD4g
KQ0KDQogICBUaGUgYW55LW9mIHRlc3QgcHJlZm9ybXMgYSBsb2dpY2FsIE9S
IG9uIHRoZSB0ZXN0cyBzdXBwbGllZCB0byBpdC4NCg0KICAgVGhlIGNvbW1h
IGluIGJldHdlZW4gdGVzdHMgaXMgb3B0aW9uYWwuDQoNCg0KICAgRXhhbXBs
ZTogICAgYWxsLW9mIChmYWxzZSBmYWxzZSkgID0+ICAgZmFsc2UNCiAgICAg
ICAgICAgICAgIGFsbC1vZiAoZmFsc2UgdHJ1ZSkgICA9PiAgIHRydWUNCiAg
ICAgICAgICAgICAgIGFsbC1vZiAodHJ1ZSwgdHJ1ZSkgICA9PiAgIHRydWUN
Cg0KDQo1LiAuIGZhbHNlDQoNCiAgIFN5bnRheDogICAgIGZhbHNlDQoNCjUu
WC4gaGVhZGVyDQoNCiAgIFN5bnRheDogICAgIGhlYWRlciA8aGVhZGVyLW5h
bWUtbGlzdD4NCiAgICAgICAgICAgICAgIDwiY29udGFpbnMiLyJpcyIvIm1h
dGNoZXMiLyJjb250YWlucy1ub2Nhc2UiIC8gImlzLQ0KDQoNCg0KU2hvd2Fs
dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW1BhZ2UgMTJdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2ll
dmUtWFgudHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAg
TWFyIDE5OTcNCg0KDQogICAgICAgICAgICAgICBub2Nhc2UiLyJtYXRjaGVz
LW5vY2FzZSI+IDxrZXktbGlzdD4NCg0KICAgVGhlICJoZWFkZXIiIHRlc3Qg
ZXZhbHVhdGVzIHRvIHRydWUgaWYgdGhlIGhlYWRlciBuYW1lIG1hdGNoZXMg
a2V5Lg0KICAgSG93IHRoZSBtYXRjaCBpcyBkb25lIGlzIGRlc2NyaWJlZCBi
eSB0aGUgc2Vjb25kIGFyZ3VtZW50LiAgVGhlIGJhc2ljDQogICBtYXRjaGlu
ZyBmb3JtcyBhcmUgY2FzZSBzZW5zaXRpdmUuICBFYWNoIG1hdGNoaW5nIGZv
cm0gaGFzIGENCiAgIGNvcnJlc3BvbmRpbmcgZm9ybSBlbmRpbmcgaW4gIi1u
b2Nhc2UiOyB0aGVzZSBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZlLg0KDQogICBB
bGwgbWF0Y2hpbmdzIG9uIGhlYWRlciBmaWVsZCBuYW1lcyBNVVNUIGJlIGRv
bmUgaW4gYSBjYXNlIGluc2Vuc2ktDQogICB0aXZlIG1hbm5lci4NCg0KICAg
VGhlICJpcyIgYXJndW1lbnQgZGVtYW5kcyB0aGF0IG9uZSBvZiB0aGUgZmll
bGRzIG9mIHRoZSBoZWFkZXJzDQogICBsaXN0ZWQgaW4gaGVhZGVyLW5hbWUt
bGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIGtleS1saXN0LiAgSXQgaXMgdHJ1
ZQ0KICAgaWYgdGhlcmUgYXJlIHJlcGVhdGVkIGFyZ3VtZW50cyBpbiB0aGUg
aGVhZGVyLW5hbWUtbGlzdCBvciB0aGUga2V5LQ0KICAgbGlzdC4NCg0KICAg
VGhlICJjb250YWlucyIgYXJndW1lbnQgZGVtYW5kcyB0aGF0IG9uZSBvZiB0
aGUgdmFsdWVzIG9mIHRoZSBoZWFyZC0NCiAgIGVycyBuYW1lZCBpbiBoZWFk
ZXItbmFtZS1saXN0IHBhcnRpYWxseSBtYXRjaGVzIG9uZSBvZiB0aGUgdmFs
dWVzIGluDQogICBrZXktbGlzdC4gIEl0IGlzIHRydWUgaWYgdGhlcmUgYXJl
IHJlcGVhdGVkIGFyZ3VtZW50cyBpbiB0aGUgaGVhZGVyLQ0KICAgbmFtZS1s
aXN0IG9yIHRoZSBrZXktbGlzdC4gIFRoZSBzdHJpbmcgIiIgaXMgY29udGFp
bmVkIGluIGFueSBoZWFkZXINCiAgIHRoYXQgZXhpc3RzLg0KDQogICBUaGUg
Im1hdGNoZXMiIGFyZ3VtZW50IGRlbWFuZHMgdGhhdCBvbmUgb2YgdGhlIGZp
ZWxkcyBvZiB0aGUgaGVhZGVycw0KICAgbGlzdGVkIGluIGhlYWRlci1uYW1l
LWxpc3QgbWF0Y2hlcyBhICJnbG9iIiBwYXR0ZXJuIGRlc2NyaWJlZCBieSBv
bmUNCiAgIG9mIHRoZSBtZW1iZXJzIG9mIGtleS1saXN0LiAgQSBnbG9iIHBh
dHRlcm4gaXMgYSBVTklYLXN0eWxlIGZpbGVuYW1lDQogICBnbG9iLCB3aGlj
aCBoYXMgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnM6DQoNCiAg
ICAgICAgICAgKiAgICAgTWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMN
CiAgICAgICAgICAgPyAgICAgTWF0Y2ggYW55IHNpbmdsZSBjaGFyYWN0ZXIN
CiAgICAgICAgICAgICAgICBFc2NhcGUgbmV4dCBjaGFyYWN0ZXINCg0KICAg
IiIgbWF0Y2hlcyBhbGwgc3RyaW5ncyB0aGF0IGV4aXN0Lg0KDQo1LkIuIG5v
dA0KDQogICBTeW50YXg6DQogICAgICAgIG5vdCA8dGVzdD4NCg0KICAgVGhl
ICJub3QiIHRlc3QgdGFrZXMgc29tZSBvdGhlciB0ZXN0LCBhbmQgcmV0dXJu
cyB0aGUgb3Bwb3NpdGUNCiAgIHJlc3VsdC4NCg0KNS5RLiBzaXplDQoNCiAg
IFN5bnRheDoNCiAgICAgICAgc2l6ZSA8Im92ZXIiIC8gInVuZGVyIj4gPGxp
bWl0IFtxdWFudGlmaWVyXT4NCg0KICAgVGhlICJzaXplIiB0ZXN0IGRlYWxz
IHdpdGggdGhlIHNpemUgb2YgYSBtZXNzYWdlLiAgVGhlIHRlc3QgaXMgdHJ1
ZQ0KICAgb25seSBpZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzICJvdmVyIiBh
bmQgdGhlIHNpemUgb2YgdGhlIG1lc3NhZ2UgaXMNCiAgIHN0cmljdGx5IGdy
ZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIG9jdGV0cyBzcGVjaWZpZWQgYXMg
bGltaXQuICBJZg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgMTNd
DQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAg
ICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICB0aGUg
c2Vjb25kIGFyZ3VtZW50IGlzICJ1bmRlciIsIHRoZW4gdGhlIHRlc3QgaXMg
dHJ1ZSBvbmx5IGlmIHRoZQ0KICAgbWVzc2FnZSBzaXplIGlzIHN0cmljdGx5
IGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIG9jdGV0cyBzcGVjaWZpZWQgYXMN
CiAgIGxpbWl0LiAgSW4gZWl0aGVyIGNhc2UsIGlmIHRoZSBtZXNzYWdlIHNp
emUgaXMgZXhhY3RseSB0aGUgbGltaXQsIHRoZQ0KICAgdGVzdCBpcyBmYWxz
ZS4NCg0KICAgVGhlIHNpemUgb2YgYSBtZXNzYWdlIGlzIGRlZmluZWQgdG8g
YmUgdGhlIG51bWJlciBvZiBvY3RldHMgZnJvbSB0aGUNCiAgIGluaXRpYWwg
aGVhZGVyIHVudGlsIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbWVzc2Fn
ZSBib2R5Lg0KDQo1LlguIHRydWUNCg0KICAgU3ludGF4Og0KICAgICAgICB0
cnVlDQoNCiAgIFRoZSAidHJ1ZSIgdGVzdCBpcyBhbHdheXMgdHJ1ZS4NCg0K
NS5YLiB2YWxpZA0KDQogICBTeW50YXg6DQogICAgICAgIHZhbGlkDQoNCiAg
IFRoZSAidmFsaWQiIHRlc3QgaXMgdHJ1ZSBpZiB0aGUgbWVzc2FnZSBzYXRp
c2ZpZXMgdGhlIGJhc2ljIGNyaXRlcmlhDQogICBmb3IgYW4gW1JGQzgyMl0g
Y29tcGxpYW50IG1lc3NhZ2UuICBBdCBhIG1pbmltdW0sIHRoZSBtZXNzYWdl
IG11c3QNCiAgIGhhdmUgdmFsaWQgYSB2YWxpZCAiVG8iIGhlYWRlciwgYSB2
YWxpZCAiRnJvbSIgb3IgIlNlbmRlciIgaGVhZGVyLA0KICAgd2hlcmUgdGhl
IGZpZWxkIGluIHRoZSBhZGRyZXNzIGNvbnRhaW5zIGFuIGVtYWlsIGFkZHJl
c3Mgb2YgdGhlIGZvcm0NCiAgICJ1c2VyQGhvc3QiLCBhbmQgaG9zdCBpcyBh
IHZhbGlkIGRvbWFpbiByZWNvcmQuDQoNCiAgIFRoZSBpbnRlbnRpb24gb2Yg
dGhlICJ2YWxpZCIgdGVzdCBpcyB0byBkcm9wIG1lc3NhZ2VzIHRoYXQgZG8g
bm90IGZpdA0KICAgdGhlIGJhc2ljIHJlcXVpcmVtZW50cyBvZiBhbiBbUkZD
ODIyXSBjb21wbGlhbnQgbWVzc2FnZSwgYnV0IG1hZGUgaXQNCiAgIHRvIGZp
bmFsIGRlbGl2ZXJ5IG5vbmUgdGhlIGxlc3MuDQoNCiAgIFtJJ20gbm90IHN1
cmUgZXhhY3RseSB3aGF0IHJlcXVpcmVtZW50cyBzaG91bGQgYmUgaW1wb3Nl
ZCwgYnV0IHRoaXMNCiAgIG9uZSBtaWdodCBiZSB2ZXJ5IHVzZWZ1bCBmb3Ig
d2VlZGluZyBvdXQgam9rZSBtZXNzYWdlcyBmcm9tDQogICBwcmVzaWRlbnRA
d2hpdGVob3VzZS5nb3YgdGhhdCBoYXBwZW4gd2hlbmV2ZXIgdGhlIGZyZXNo
bWFuIGNsYXNzIGZpZy0NCiAgIHVyZXMgb3V0IGhvdyB0byBmb3JnZSBtYWls
LCBvciBzcGFtcyB0aGF0IGRvbid0IGJvdGhlciBoYXZpbmcgdmFsaWQNCiAg
IHJldHVybiBhZGRyZXNzZXMuXQ0KDQo2LiAgIEVycm9ycyBpbiBQcm9jZXNz
aW5nIGEgU2NyaXB0DQoNCiAgIEluIGFueSBzb3J0IG9mIHByb2dyYW1taW5n
IGxhbmd1YWdlLCBldmVuIGEgdmVyeSBzaW1wbGUgb25lLCBlcnJvcnMNCiAg
IGFyZSBpbmV2aXRhYmxlLiAgSW4gdGhpcyBjYXNlLCB1c2VycyBhcmUgZXhw
ZWN0ZWQgdG8gbWFrZSBlcnJvcnMgLS0NCiAgIGV2ZW4gaWYgdGhlIGFjdHVh
bCBzY3JpcHQgaXMgbWFjaGluZS1nZW5lcmF0ZWQsIG1haWxib3ggcmlnaHRz
IG1pZ2h0DQogICBjaGFuZ2UgdG8gZGlzYWxsb3cgdXNlcnMgZnJvbSB3cml0
aW5nIHRvIGEgbWFpbGJveCwgYSBtYWlsYm94IG1heSBubw0KICAgbG9uZ2Vy
IGV4aXN0LCBvciBhIHZhcmlldHkgb2Ygb3RoZXIgcHJvYmxlbXMuICBJdCBp
cyBpbXBlcmF0aXZlIHRoYXQNCiAgIG1haWwgYmUgYWxsb3dlZCB0byBnZXQg
dGhyb3VnaCBpbiBhbnkgY2FzZS4NCg0KICAgSWYgYW4gZXJyb3IgaXMgZm91
bmQgaW4gYSBzY3JpcHQsIGFuIGltcGxlbWVudGF0aW9uIE1VU1QgdHJ5IHRv
IG1ha2UNCiAgIGZvcndhcmQgcHJvY2Vzcy4NCg0KDQoNCg0KU2hvd2FsdGVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW1BhZ2UgMTRdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUt
WFgudHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFy
IDE5OTcNCg0KDQogICBVc2VycyBNVVNUIGJlIG5vdGlmaWVkIG9mIGVycm9y
cyBpbiBwcm9jZXNzaW5nIGEgc2NyaXB0LiAgVGhlIG1ldGhvZA0KICAgYnkg
d2hpY2ggdXNlcnMgYXJlIG5vdGlmaWVkIGlzIGltcGxlbWVudGF0aW9uIGRl
ZmluZWQsIGJ1dCBhIG1haWwNCiAgIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUg
ZXJyb3IgaXMgc3VnZ2VzdGVkIGlmIGEgcHJlZmVycmFibGUgYWx0ZXJuYS0N
CiAgIHRpdmUgY2Fubm90IGJlIGZvdW5kDQoNCiAgIEltcGxlbnRhdGlvbnMg
dGhhdCBhbGxvdyBmb3IgdGhlIHNjcmlwdCB0byBiZSBjaGVja2VkIGZvciBz
eW50YXgNCiAgIGVycm9ycyBpbiBhZHZhbmNlIG9mIG1haWwgcmVjZWlwdCAo
aS5lLiwgY2xpZW50LWJhc2VkIGZpbHRlcmluZywgb3INCiAgIHNlcnZlci1i
YXNlZCBmaWx0ZXJpbmcgd2l0aCBhIHN1Ym1pc3Npb24gcHJvdG9jb2wgYXdh
cmUgb2YgdGhpcw0KICAgbGFuZ3VhZ2UpIFNIT1VMRCBub3RpZnkgdGhlIHVz
ZXIgb2YgdGhlIGVycm9yIGFuZCByZWZ1c2UgdG8gYWNjZXB0IGENCiAgIHN5
bnRhY3RpY2FsbHkgaW52YWxpZCBzY3JpcHQsIG9yIG9uZSB0aGF0IG1ha2Vz
IHVzZSBvZiBleHRlbnNpb25zDQogICB0aGF0IHRoZSBzZXJ2ZXIgZG9lcyBu
b3QgcmVwb3J0Lg0KDQogICBJbXBsZW1lbnRhdGlvbnMgdGhhdCBhbGxvdyBz
ZXJ2ZXItYmFzZWQgZmlsdGVyaW5nIChpLmUuLCBhcyBwYXJ0IG9mDQogICBh
biBJTUFQIHNlcnZlcikgTVVTVCBhbGxvdyBtYWlsIHRvIGJlIGZpbGVkIG5v
cm1hbGx5IChpLmUuLCBmb3IgSU1BUCwNCiAgIGludG8gdGhlIHVzZXIncyBJ
TkJPWCkgaW4gY2FzZSBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUgc2NyaXB0
LCBhbmQNCiAgIE1VU1Qgbm90aWZ5IHRoZSB1c2VyIG9mIGFuIGVycm9yIGlu
IHNvbWUgZm9ybSAoc3VjaCBhcyBzZW5kaW5nIHRoZQ0KICAgdXNlciBhIG1h
aWwgbWVzc2FnZSBub3RpZnlpbmcgdGhlbSBvZiB0aGUgZXJyb3IpLiAgSW1w
bGVtZW50YXRpb25zDQogICBTSE9VTEQgYXZvaWQgb3ZlcnNlbmRpbmcgZXJy
b3IgbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBtYWlsYm94Lg0KDQogICBJbXBs
ZW1lbnRhdGlvbnMgdGhhdCBhbGxvdyBjbGllbnQtYmFzZWQgZmlsdGVyaW5n
IChpLmUuLCB1c2UgdGhpcw0KICAgbGFuZ3VhZ2UgdG8gaW1wbGVtZW50IGZp
bHRlcmluZyBmcm9tIGEgUE9QIHNlcnZlciBpbnRvIGxvY2FsIG1haWwNCiAg
IGZvbGRlcnMpIG11c3Qgbm90aWZ5IHRoZSB1c2VyIG9mIHN5bnRheCBlcnJv
cnMsIGFuZCBzaG91bGQgYWxsb3cgdGhlDQogICB1c2VyIHRvIGZpbGUgbWFp
bCBpbnRvIHRoZWlyIG1haW4gbWFpbGJveCBvbiByZXF1ZXN0LiAgSWYgbWFp
bCBpcw0KICAgcHJvY2Vzc2VkIHdpdGhvdXQgdXNlciBpbnRlcnZlbnRpb24g
KGFzIHBhcnQgb2YgYSBiYWNrZ3JvdW5kIHRlc3QsDQogICB3aXRoIGxvbmcg
cGVyaW9kcyBvZiB0aW1lIGluIGJldHdlZW4gdXNlciBpbnRlcnZlbnRpb24p
IHRoZSBpbXBsZW50YS0NCiAgIHRpb24gTVVTVCBmaWxlIG1haWwgaW50byB0
aGUgbWFpbiBtYWlsYm94Lg0KDQo3LiAgIEV4dGVuc2liaWxpdHkNCg0KICAg
TmV3IGNvbnRyb2wgc3RydWN0dXJlcywgYWN0aW9ucywgYW5kIHRlc3RzIGNh
biBiZSBhZGRlZCB0byB0aGUNCiAgIGxhbmd1YWdlLiAgU2l0ZXMgbXVzdCBt
YWtlIHRoZXNlIGZlYXR1cmVzIGtub3duIHRvIHRoZWlyIHVzZXJzOyBhbg0K
ICAgZXh0ZW5zaW9uIG5lZ290aWF0aW9uIG1lY2hhbmlzbSBpcyBub3QgZGVm
aW5lZCBieSB0aGlzIGRvY3VtZW50Lg0KDQogICBGb3IgdGhlIGZvcm1hbCBn
cmFtbWFyLCBhbiBleHRlbnNpb24gU0hPVUxEIGRlZmluZSBvbmUgb2YgdGhl
IHN5bWJvbHMNCiAgIGJlZ2lubmluZyB3aXRoICJleHRlbnNpb24tIi4NCg0K
ICAgQW55IGV4dGVuc2lvbnMgdG8gdGhpcyBsYW5ndWFnZSBNVVNUIGRlZmlu
ZSBhIHVuaXF1ZSBzdHJpbmcgdGhhdA0KICAgZGVzY3JpYmVzIHRoYXQgZXh0
ZW5zaW9uLiAgU3VjaCBzdHJpbmdzIFNIT1VMRCBpbmNsdWRlIGEgdmVyc2lv
bg0KICAgbnVtYmVyLiAgVGhlIHB1cnBvc2Ugb2Ygc3VjaCBhIHN0cmluZyBp
cyBmb3IgdGhlICJyZXF1aXJlIiBjb25kaS0NCiAgIHRpb25hbCwgd2hpY2gg
bWFuZGF0ZXMgdGhhdCBzY3JpcHQgcmVxdWlyZXMgdGhlIHVzZSBvZiB0aGF0
IGV4dGVuLQ0KICAgc2lvbi4gIEFkZGl0aW9uYWxseSwgaW4gYSBzaXR1YXRp
b24gd2hlcmUgdGhlcmUgaXMgYSBzdWJtaXNzaW9uIHByby0NCiAgIHRvY29s
IGFuZCBhbiBleHRzZW5zaW9uIGFkdmVydGlzZW1lbnQgbWVjaGFuaXNtLCBz
byB0aGF0IHNjcmlwdHMgc3ViLQ0KICAgbWl0dGVkIGNhbiBiZSBjaGVja2Vk
IGFnYWluc3QgdGhlIG1haWwgc2VydmVyIGZvciB2YWxpZCBleHRlbnNpb25z
Lg0KDQo4LiAgIFRyYW5zbWlzc2lvbg0KDQogICBUaGlzIGRvY3VtZW50IGRv
ZXMgbm90IGRlZmluZSBhIG1ldGhvZCBmb3IgYWNjZXNzaW5nIHN0b3JlZCBz
Y3JpcHRzDQogICBhdCBydW4tdGltZSBvciBhcyB0aGV5IGFyZSB3cml0dGVu
LCBub3IgZG9lcyBpdCBkZWZpbmUgYSBjaGFyYWN0ZXINCg0KDQoNClNob3dh
bHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtQYWdlIDE1XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNp
ZXZlLVhYLnR4dCAgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgIDIw
IE1hciAxOTk3DQoNCg0KICAgc2V0IGVuY29kaW5nIGZvciBzY3JpcHRzLg0K
DQogICBJZiB0aGUgbWV0aG9kIG9mIGhhbmRpbmcgYSBzY3JpcHQgb2ZmIHRv
IHRoZSBzZXJ2ZXIgYWxsb3dzIGZvciBNSU1FLQ0KICAgdHlwaW5nIG9mIGRh
dGEgKGFzIGRlc2NyaWJlZCBpbiBbTUlNRV0gYW5kIHRoZSBkYXRhIGlzIGVu
Y29kZWQgaW4NCiAgIFVURi04LCB0aGUgTUlNRSB0eXBlIGZvciBhIFNJRVZF
IHNjcmlwdCBpcyBYWFgvWFhYLg0KDQogICBJbXBsZW1lbnRhdGlvbnMgU0hP
VUxEIGNoZWNrIGEgc2NyaXB0IGJlZm9yZSBpdCBpcyBydW4gaW4gb3JkZXIg
dG8NCiAgIGluc3VyZSB0aGF0IGl0IGlzIHZhbGlkLiAgSW1wbGVtZW50YXRp
b25zIFNIT1VMRCBOT1QgdHJ5IGFuZCByZWNvdmVyDQogICBmcm9tIGEgc2Ny
aXB0IHdpdGggZXJyb3JzLCBhbmQgc2hvdWxkIGZpbGUgbWFpbCBpbnRvIHRo
ZSB1c2VyJ3MgcHJpLQ0KICAgbWFyeSBtYWlsYm94Lg0KDQo5LiAgIEFja25v
d2xlZGdlbWVudHMNCg0KMTAuICBGb3JtYWwgR3JhbW1hcg0KDQogICBUaGUg
Z3JhbW1hciB1c2VkIGluIHRoaXMgc2VjdGlvbiBpcyB0aGUgc2FtZSBhcyB0
aGUgQUJORiBkZXNjcmliZWQgaW4NCiAgIFtBQk5GXSB3aXRoIG9uZSBleGNl
cHRpb246IHRoZSBkZWxpbWl0ZXIgdXNlZCB3aXRoICIjIiBpcyBhbnkgYW1v
dW50DQogICBvZiB3aGl0ZXNwYWNlICh0aGF0IGlzLCBDUiwgTEYsIHNwYWNl
cywgYW5kIHRhYnMpLCBhcyBkZXNjcmliZWQgYnkNCiAgIHRoZSAiV1NQIiB0
ZXJtaW5hbCwgYW5kIG5vdCBhIHNpbmdsZSBjb21tYS4NCg0KICAgSW4gdGhl
IGNhc2Ugb2YgYWx0ZXJuYXRpdmUgb3Igb3B0aW9uYWwgcnVsZXMgaW4gd2hp
Y2ggYSBsYXRlciBydWxlDQogICBvdmVybGFwcyBhbiBlYXJsaWVyIHJ1bGUs
IHRoZSBydWxlIHdoaWNoIGlzIGxpc3RlZCBlYXJsaWVyIE1VU1QgdGFrZQ0K
ICAgcHJpb3JpdHkuDQoNCiAgIGFjdGlvbiA6Oj0gdG9zcyAvIGZpbGVpbnRv
IC8gZm9yd2FyZCAvIGJvdW5jZSAvIHJlcGx5IC8gcmVzZW5kIC8NCiAgICAg
ICBzdG9wIC8gZXh0ZW5zaW9uLWFjdGlvbg0KDQogICBhZGRyZXNzIDo6PSBz
dHJpbmcNCiAgICAgICAgICAgOzsgYW55IGxlZ2FsIFJGQzgyMiBhZGRyZXNz
DQoNCiAgIGFueS1vZiA6Oj0gImFueS1vZiIgV1NQICIoIiBbV1NQXSBjb25k
aXRpb24gKihbIiwiXSBjb25kaXRpb24pIFtXU1BdICIpIg0KDQogICBhbGwt
b2YgOjo9ICJhbGwtb2YiIFdTUCAiKCIgW1dTUF0gY29uZGl0aW9uICooWyIs
Il0gY29uZGl0aW9uKSBbV1NQXSAiKSINCg0KICAgYmlnLW51bWJlciA6Oj0g
bnVtYmVyIFsgVU5JVCBdDQoNCiAgIGJvdW5jZSA6Oj0gImJvdW5jZSINCg0K
ICAgY29udHJvbC1zdHJ1Y3R1cmUgOjo9IGlmIC8gZXh0ZW5zaW9uLWNvbnRy
b2wtc3RydWN0dXJlDQoNCiAgIGNvbW1hbmQgOjo9IGFjdGlvbiBbV1NQXSBb
IjsiXSAvIGNvbnRyb2wtc3RydWN0dXJlDQoNCiAgIGNvbW1hbmRzIDo6PSAj
KGNvbW1hbmQpDQoNCiAgIGNvbW1lbnQgOjo9ICIjIiAqQ0hBUiBDUkxGDQoN
CiAgIENIQVIgOjo9IDxhbnkgQVNDSUkvVVRGLTggY2hhcmFjdGVyPg0KDQoN
Cg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSAxNl0NCgwNCmRyYWZ0LXNo
b3dhbHRlci1zaWV2ZS1YWC50eHQgICAgIFNJRVZFICAgICAgICAgICAgICAg
ICAgICAgICAyMCBNYXIgMTk5Nw0KDQoNCiAgIENSIDo6PSA8QVNDSUkgQ1Is
IGNhcnJpYWdlIHJldHVybiwgMHgwRD4NCg0KICAgQ1JMRiA6Oj0gQ1IgTEYN
Cg0KICAgRElHSVQgOjo9ICIwIiAvICIxIiAvICIyIiAvICIzIiAvICI0IiAv
ICI1IiAvICI2IiAvICI3IiAvICI4IiAvICI5Ig0KDQogICBmaWxlaW50byA6
Oj0gImZpbGVpbnRvIiBXU1Agc3RyaW5nDQoNCiAgIGZvcndhcmQgOjo9ICJm
b3J3YXJkIiBXU1AgYWRkcmVzcw0KDQogICBpZiA6Oj0gImlmIiBXU1AgdGVz
dCBXU1AgInRoZW4iIFdTUCBjb21tYW5kcyBXU1AgIygiZWxzaWYiIFdTUA0K
ICAgICAgIHRlc3QgV1NQICJ0aGVuIiBXU1AgY29tbWFuZHMpIFsgImVsc2Ui
IFdTUCBjb21tYW5kcyBXU1AgXQ0KICAgICAgICJlbmRpZiINCiAgICAgICAg
ICAgOzsgaWYgPGNvbmQ+IHRoZW4gPGNvbW1hbmRzPg0KICAgICAgICAgICA7
OyBbZWxzaWYgPGNvbmQ+IHRoZW4gPGNvbW1hbmRzPiBbZWxzaWYgLi4uXV0N
CiAgICAgICAgICAgOzsgW2Vsc2UgPGNvbW1hbmRzPl0gZW5kaWYNCg0KICAg
aW5jbHVkZSA6Oj0gImluY2x1ZGUiIFdTUCB1cmwNCg0KICAgaGVhZGVyIDo6
PQ0KDQogICBMRiA6Oj0gPEFTQ0lJIExGLCBsaW5lIGZlZWQsIDB4MEE+DQoN
CiAgIG5ld2xpbmUgOjo9IENSW0xGXSAvIExGDQogICAgICAgICAgIDs7IEEg
Q1JMRiBpcyBBTFdBWVMgb25lIG5ld2xpbmUuDQogICAgICAgICAgIDs7IFhY
WCB0aGVyZSdzIGEgYmV0dGVyIHdheSB0byBzcGVjaWZ5IHRoaXMhDQoNCiAg
IG51bWJlciA6Oj0gMSpESUdJVA0KDQogICBvciA6Oj0gY29uZGl0aW9uIFdT
UCAib3IiIFdTUCBjb25kaXRpb24NCg0KICAgdXNlci1tZXNzYWdlIDo6PSAi
bWVzc2FnZSIgW1dTUF0gbmV3bGluZSAiLiIgbmV3bGluZQ0KICAgICAgICAg
ICA7OyBub3RlIHdoZW4gdXNlZCwNCiAgICAgICAgICAgOzsgYSBDUiB0aGF0
IGlzIG5vdCBmb2xsb3dlZCBieSBhbiBMRiBiZWNvbWVzIGEgQ1JMRjsNCiAg
ICAgICAgICAgOzsgYW4gTEYgdGhhdCBpcyBub3QgZm9sbG93ZWQgYnkgYSBD
UiBiZWNvbWVzIGEgQ1JMRi4NCiAgICAgICAgICAgOzsgYSBsZWFkaW5nIC4u
IG9uIGEgbGluZSBpcyBtYXBwZWQgdG8gLg0KDQogICByZXNlbmQgOjo9ICJy
ZXNlbmQiIFdTUCBzdHJpbmcNCg0KICAgc2l6ZSA6Oj0gInNpemUiIFdTUCAo
ICJvdmVyIiAvICJ1bmRlciIgKSBXU1AgYmlnLW51bWJlcg0KDQogICBzdG9w
IDo6PSAic3RvcCINCg0KICAgc3RyaW5nIDo6PSAoICINCiAgICAgICAgICAg
OzsNCiAgICAgICAgICAgOzsgXCBpbnNpZGUgYSBzdHJpbmcgbWFwcyB0bw0K
ICAgc3RyaW5nLWxpc3QgOjo9ICIoIiBbV1NQXSAqc3RyaW5nIFtXU1BdICIp
Ig0KDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSAxN10NCgwNCmRy
YWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQgICAgIFNJRVZFICAgICAgICAg
ICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0KDQoNCiAgIHRlc3QgOjo9IFtX
U1BdIGFueS1vZiAvIGFsbC1vZiAvIGZhbHNlIC8gaGVhZGVyIC8gbm90IC8N
CiAgICAgICBzaXplIC8gZXh0ZW5zaW9uLXRlc3QgW1dTUF0NCg0KICAgVU5J
VCA6Oj0gIksiIC8gIk0iIC8gIkciDQogICAgICAgICAgIDs7IGtpbG9ieXRl
cywgbWVnYWJ5dGVzLCBvciBnaWdhYnl0ZXM7IHRoZSBCIGlzIG9wdGlvbmFs
DQoNCiAgIHVybCA6Oj0gc3RyaW5nDQoNCiAgIFdTUCA6Oj0gIiAiIC8gQ1Ig
LyBMRiAvIHRhYg0KICAgICAgICAgICA7OyBqdXN0IHdoaXRlc3BhY2UNCg0K
DQoxMC4gIFNlY3VyaXR5IENvbnNpZGVyYXRpb25zIFVzZXJzIG11c3QgZ2V0
IHRoZWlyIG1haWwuICBJdCBpcyBpbXBlcmEtDQogICB0aXZlIHRoYXQgd2hh
dGV2ZXIgbWV0aG9kIGltcGxlbWVudGF0aW9ucyB1c2UgdG8gc3RvcmUgdGhl
IHVzZXItDQogICBkZWZpbmVkIGZpbHRlcmluZyBzY3JpcHRzIGJlIHJlYXNv
bmFibHkgc2VjdXJlLg0KDQogICBJdCBpcyBlcXVhbGx5IGltcG9ydGFudCB0
aGF0IGltcGxlbWVudGF0aW9ucyBzYW5pdHktY2hlY2sgdGhlIHVzZXIncw0K
ICAgc2NyaXB0cywgYW5kIG5vdCBhbGxvdyB1c2VycyB0byBjcmVhdGUgb24t
ZGVtYW5kIG1haWxib21icy4gIEZvcg0KICAgaW5zdGFuY2UsIGFuIGltcGxl
bWVudGF0aW9uIHRoYXQgYWxsb3dzIGEgdXNlciB0byBib3VuY2UsIGZvcndh
cmQsIG9yDQogICByZXBseSBtdWx0aXBsZSB0aW1lcyB0byBhIHNpbmdsZSBt
ZXNzYWdlIG1pZ2h0IGFsc28gYWxsb3cgYSB1c2VyIHRvDQogICBjcmVhdGUg
YSBtYWlsYm9tYiB0cmlnZ2VyZWQgYnkgbWFpbCBmcm9tIGEgc3BlY2lmaWMg
dXNlci4NCg0KMTEuICBBdXRob3IncyBBZGRyZXNzDQoNCiAgIFRpbSBTaG93
YWx0ZXINCiAgIENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5DQogICA1MDAw
IEZvcmJlcyBBdmVudWUNCiAgIFBpdHRzYnVyZ2gsIFBBIDE1MjEzDQoNCiAg
IEUtTWFpbDogdGpzQGFuZHJldy5jbXUuZWR1DQoNCiAgIEFwcGVuZGl4IEEu
ICAgUmVmZXJlbmNlcw0KDQogICBbQUJORl0NCg0KICAgW0FDQVBdDQoNCiAg
IFtJTUFQXQ0KDQogICBbUkZDODIyXQ0KDQogICBbWFhYXQ0KDQoNCg0KDQoN
Cg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgMThdDQoM
---559023410-342241519-859953043=:1026--