Re: How to Use Nifi Remote Debugger?

2016-09-22 Thread Tseytlin, Keren
Hey All,

Thanks so much for the help! The remote debugger ended up working. Because
my Nifi was on AWS, I needed to do some port tunneling in order to open up
the communication. So I had run a line similar to this:

ssh -i <> -N -L 5500:<>:5500 ec2-user@<>


I documented everything here if anyone is interested:
http://kerent.me/blog/2016/09/22/Remote-Debugging-Nifi-From-EC2.html.

Thanks! 

Keren

On 9/21/16, 5:06 PM, "Joe Witt"  wrote:

>Try
>  telnet  5500
>
>If that cannot connect then it is almost certainly a firewall issue.
>
>On Wed, Sep 21, 2016 at 4:28 PM, Tseytlin, Keren
> wrote:
>> Thanks for the answers Russell and Manish.
>>
>> It appears that it was an issue with the port 8000, when I moved it to
>> something random then Nifi would start up.
>>
>> I¹m connecting to an EC2 that I¹ve set up because I need to test some
>>AWS
>> communication. Now that I have Nifi running, I¹m trying to connect with
>> the debugger and getting the following error:
>>
>> Error running AWS Nifi: Unable to open debugger port
>> (xx.xxx.xxx.xxx:5500): java.net.ConnectionException ³Operation timed
>>out²
>>
>> Does this seem like a networking error? Pretty sure my security groups
>> have opened up all port communication if coming from my IP.
>>
>> Keren
>>
>>
>> On 9/21/16, 4:03 PM, "Russell Bateman"
>>  wrote:
>>
>>>Here's how I've been doing it for the last 6 months. I use IntelliJ, but
>>>I'm also an Eclipse guy.
>>>
>>>http://www.javahotchocolate.com/notes/nifi.html#20160323
>>>
>>>Hope this helps.
>>>
>>>Russ
>>>
>>>On 09/21/2016 01:39 PM, Tseytlin, Keren wrote:
>>>> Hi All,
>>>>
>>>> I want to set up the remote debugger with Nifi so that I can step
>>>>through the code with IntelliJ. I noticed that last year someone else
>>>>asked about how to set up remote debugging here ->
>>>>https://mail-archives.apache.org/mod_mbox/nifi-dev/201508.mbox/%3C76415
>>>>19
>>>>c73cd4ad3832b80461b8ce...@mbx080-w2-co-2.exch080.serverpod.net%3E
>>>>
>>>> I followed these steps, and uncommented the line:
>>>>java.arg.debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,ad
>>>>dr
>>>>ess=8000. However, when I do that I can't get Nifi to start up properly
>>>>anymore. It will say that Nifi is running, but it will attempt to
>>>>display an error page (which is some text with html formatting that
>>>>doesn't get formatted properly).
>>>>
>>>> Has remote debugging changed in the past year or so since that thread
>>>>was posted? Are there any other configs in Nifi that need to be
>>>>changed?
>>>>Would really appreciate additional detail for remote debugging with
>>>>Nifi.
>>>>
>>>> Thanks,
>>>> Keren
>>>> 
>>>>
>>>> The information contained in this e-mail is confidential and/or
>>>>proprietary to Capital One and/or its affiliates and may only be used
>>>>solely in performance of work or services for Capital One. The
>>>>information transmitted herewith is intended only for use by the
>>>>individual or entity to which it is addressed. If the reader of this
>>>>message is not the intended recipient, you are hereby notified that any
>>>>review, retransmission, dissemination, distribution, copying or other
>>>>use of, or taking of any action in reliance upon this information is
>>>>strictly prohibited. If you have received this communication in error,
>>>>please contact the sender and delete the material from your computer.
>>>>
>>>
>>
>> 
>>
>> The information contained in this e-mail is confidential and/or
>>proprietary to Capital One and/or its affiliates and may only be used
>>solely in performance of work or services for Capital One. The
>>information transmitted herewith is intended only for use by the
>>individual or entity to which it is addressed. If the reader of this
>>message is not the intended recipient, you are hereby notified that any
>>review, retransmission, dissemination, distribution, copying or other
>>use of, or taking of any action in reliance upon this information is
>>strictly prohibited. If you have received this communication in error,
>>please contact the sender and delete the material from your computer.
>>



The information contained in this e-mail is confidential and/or proprietary to 
Capital One and/or its affiliates and may only be used solely in performance of 
work or services for Capital One. The information transmitted herewith is 
intended only for use by the individual or entity to which it is addressed. If 
the reader of this message is not the intended recipient, you are hereby 
notified that any review, retransmission, dissemination, distribution, copying 
or other use of, or taking of any action in reliance upon this information is 
strictly prohibited. If you have received this communication in error, please 
contact the sender and delete the material from your computer.


Re: How to Use Nifi Remote Debugger?

2016-09-21 Thread Tseytlin, Keren
Thanks for the answers Russell and Manish.

It appears that it was an issue with the port 8000, when I moved it to
something random then Nifi would start up.

I¹m connecting to an EC2 that I¹ve set up because I need to test some AWS
communication. Now that I have Nifi running, I¹m trying to connect with
the debugger and getting the following error:

Error running AWS Nifi: Unable to open debugger port
(xx.xxx.xxx.xxx:5500): java.net.ConnectionException ³Operation timed out²

Does this seem like a networking error? Pretty sure my security groups
have opened up all port communication if coming from my IP.

Keren


On 9/21/16, 4:03 PM, "Russell Bateman"
 wrote:

>Here's how I've been doing it for the last 6 months. I use IntelliJ, but
>I'm also an Eclipse guy.
>
>http://www.javahotchocolate.com/notes/nifi.html#20160323
>
>Hope this helps.
>
>Russ
>
>On 09/21/2016 01:39 PM, Tseytlin, Keren wrote:
>> Hi All,
>>
>> I want to set up the remote debugger with Nifi so that I can step
>>through the code with IntelliJ. I noticed that last year someone else
>>asked about how to set up remote debugging here ->
>>https://mail-archives.apache.org/mod_mbox/nifi-dev/201508.mbox/%3C7641519
>>c73cd4ad3832b80461b8ce...@mbx080-w2-co-2.exch080.serverpod.net%3E
>>
>> I followed these steps, and uncommented the line:
>>java.arg.debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,addr
>>ess=8000. However, when I do that I can't get Nifi to start up properly
>>anymore. It will say that Nifi is running, but it will attempt to
>>display an error page (which is some text with html formatting that
>>doesn't get formatted properly).
>>
>> Has remote debugging changed in the past year or so since that thread
>>was posted? Are there any other configs in Nifi that need to be changed?
>>Would really appreciate additional detail for remote debugging with Nifi.
>>
>> Thanks,
>> Keren
>> 
>>
>> The information contained in this e-mail is confidential and/or
>>proprietary to Capital One and/or its affiliates and may only be used
>>solely in performance of work or services for Capital One. The
>>information transmitted herewith is intended only for use by the
>>individual or entity to which it is addressed. If the reader of this
>>message is not the intended recipient, you are hereby notified that any
>>review, retransmission, dissemination, distribution, copying or other
>>use of, or taking of any action in reliance upon this information is
>>strictly prohibited. If you have received this communication in error,
>>please contact the sender and delete the material from your computer.
>>
>



The information contained in this e-mail is confidential and/or proprietary to 
Capital One and/or its affiliates and may only be used solely in performance of 
work or services for Capital One. The information transmitted herewith is 
intended only for use by the individual or entity to which it is addressed. If 
the reader of this message is not the intended recipient, you are hereby 
notified that any review, retransmission, dissemination, distribution, copying 
or other use of, or taking of any action in reliance upon this information is 
strictly prohibited. If you have received this communication in error, please 
contact the sender and delete the material from your computer.



How to Use Nifi Remote Debugger?

2016-09-21 Thread Tseytlin, Keren
Hi All,

I want to set up the remote debugger with Nifi so that I can step through the 
code with IntelliJ. I noticed that last year someone else asked about how to 
set up remote debugging here -> 
https://mail-archives.apache.org/mod_mbox/nifi-dev/201508.mbox/%3c7641519c73cd4ad3832b80461b8ce...@mbx080-w2-co-2.exch080.serverpod.net%3E

I followed these steps, and uncommented the line: 
java.arg.debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000.
 However, when I do that I can't get Nifi to start up properly anymore. It will 
say that Nifi is running, but it will attempt to display an error page (which 
is some text with html formatting that doesn't get formatted properly).

Has remote debugging changed in the past year or so since that thread was 
posted? Are there any other configs in Nifi that need to be changed? Would 
really appreciate additional detail for remote debugging with Nifi.

Thanks,
Keren


The information contained in this e-mail is confidential and/or proprietary to 
Capital One and/or its affiliates and may only be used solely in performance of 
work or services for Capital One. The information transmitted herewith is 
intended only for use by the individual or entity to which it is addressed. If 
the reader of this message is not the intended recipient, you are hereby 
notified that any review, retransmission, dissemination, distribution, copying 
or other use of, or taking of any action in reliance upon this information is 
strictly prohibited. If you have received this communication in error, please 
contact the sender and delete the material from your computer.


Re: Nifi Cross Account Download With A Profile Flag

2016-09-01 Thread Tseytlin, Keren
Hey James,

No problem. I’ve tried running a bunch of different ways to do it manually
to try and avoid the CLI profile flag. But it seems like that is the only
it works locally (without Nifi). My cross account role doesn’t require an
External ID, and that feature doesn’t exist in 0.6.0 either.

An small portion of the logs are below. The logs show that it starts to
attempt to get the S3 object, it times out on assuming the
role/credentials, and then fails.

at 
com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.startSession(STS
AssumeRoleSessionCredentialsProvider.java:272)
[aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.getCredentials(S
TSAssumeRoleSessionCredentialsProvider.java:247)
[aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.getCredentials(S
TSAssumeRoleSessionCredentialsProvider.java:34)
[aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.invoke(A
WSSecurityTokenServiceClient.java:1098) [aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRo
le(AWSSecurityTokenServiceClient.java:1000)
[aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.startSession(STS
AssumeRoleSessionCredentialsProvider.java:272)
[aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.getCredentials(S
TSAssumeRoleSessionCredentialsProvider.java:247)
[aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.getCredentials(S
TSAssumeRoleSessionCredentialsProvider.java:34)
[aws-java-sdk-sts-1.10.32.jar:na]
at 
com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3589)
[aws-java-sdk-s3-1.10.32.jar:na]
at 
com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1116
) [aws-java-sdk-s3-1.10.32.jar:na]
at 
org.apache.nifi.processors.aws.s3.FetchS3Object.onTrigger(FetchS3Object.jav
a:105) [nifi-aws-processors-0.6.0.1.2.0.0-91.jar:0.6.0.1.2.0.0-91]
at 
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.jav
a:27) [nifi-api-0.6.0.1.2.0.0-91.jar:0.6.0.1.2.0.0-91]


If you (or anyone scanning the thread) can think of a way to do this
without upgrading that’d be awesome. Otherwise, I’ll start motivating the
masses. 

Best,
Keren

On 9/1/16, 12:17 PM, "James Wing"  wrote:

>Keren,
>
>I'm sorry if my advice is a bit confusing, there have been some changes to
>AWS credentials over the last few versions.  NiFi 0.6.0 does not have the
>option to use a CLI profile in AWSCredentialsProviderControllerService, I
>think that was introduced in 0.7.0.
>
>Would it be possible to share some of the log entries?  Was there a stack
>trace associated with the timeout?
>
>Also, does your cross-account Role require an External ID?  I do not
>believe that is supported in 0.6.0, but can be required to assume some
>roles.
>
>
>Thanks,
>
>James
>
>On Thu, Sep 1, 2016 at 7:57 AM, Tseytlin, Keren <
>keren.tseyt...@capitalone.com> wrote:
>
>> Thanks for your responses!
>>
>> @James - we are on version 0.6.0. Using Hortonworks Data Flow 1.2.0.0.
>>
>> I¹ve set up debugging, and it shows me that it¹s trying to connect, but
>>it
>> times out on connecting. It would be awesome if it would also return the
>> account ID of the credentials it is trying to use.
>>
>> Is there any way to see the exact keys/tokens that Nifi is trying to use
>> to get the S3 object? I¹m not seeing it in the logs.
>>
>> I tried to set the Profile in Nifi, but it complains that it¹s not a
>>valid
>> property.
>>
>> Best,
>> Keren
>>
>> On 8/31/16, 6:24 PM, "Andrew Grande"  wrote:
>>
>> >Debug logging can be set in a processor itself in the UI, too.
>> >
>> >On Wed, Aug 31, 2016, 5:34 PM James Wing  wrote:
>> >
>> >> Keren,
>> >>
>> >> Which version of NiFi are you using?
>> >>
>> >> One thing I noticed in your configuration of FetchS3Object is you are
>> >> setting both the Access Key and Secret Key properties with the AWS
>> >> Credentials Provider.  When you are using the AWS Credentials
>>Provider
>> >> Service, you should not specify keys.
>> >>
>> >> A more certainly helpful thing to do is enable debug logging for the
>>AWS
>> >> processor package by adding a line like the following to
>> >>conf/logback.xml:
>> >>
>> >> 
>> >>
>> >> With the 

Re: Nifi Cross Account Download With A Profile Flag

2016-09-01 Thread Tseytlin, Keren
Thanks for your responses!

@James - we are on version 0.6.0. Using Hortonworks Data Flow 1.2.0.0.

I¹ve set up debugging, and it shows me that it¹s trying to connect, but it
times out on connecting. It would be awesome if it would also return the
account ID of the credentials it is trying to use.

Is there any way to see the exact keys/tokens that Nifi is trying to use
to get the S3 object? I¹m not seeing it in the logs.

I tried to set the Profile in Nifi, but it complains that it¹s not a valid
property.

Best,
Keren

On 8/31/16, 6:24 PM, "Andrew Grande"  wrote:

>Debug logging can be set in a processor itself in the UI, too.
>
>On Wed, Aug 31, 2016, 5:34 PM James Wing  wrote:
>
>> Keren,
>>
>> Which version of NiFi are you using?
>>
>> One thing I noticed in your configuration of FetchS3Object is you are
>> setting both the Access Key and Secret Key properties with the AWS
>> Credentials Provider.  When you are using the AWS Credentials Provider
>> Service, you should not specify keys.
>>
>> A more certainly helpful thing to do is enable debug logging for the AWS
>> processor package by adding a line like the following to
>>conf/logback.xml:
>>
>> 
>>
>> With the debug logging enabled, there are messages indicating which
>> credential type is being attempted.  Your settings for the AWS
>>Credentials
>> Provider look appropriate.  The controller service is indeed designed to
>> refresh the STS token automagically using the AWS SDK classes for
>>temporary
>> credentials.
>>
>> Last, you might experiment with configuring
>> AWSCredentialsProviderControllerService to use your named CLI profile
>> "crossaccountrole", which should also work.
>>
>> Thanks,
>>
>> James
>>
>> On Wed, Aug 31, 2016 at 1:44 PM, Tseytlin, Keren <
>> keren.tseyt...@capitalone.com> wrote:
>>
>> > Hi All!
>> >
>> > Looking for some help on enabling Cross Account communication within
>> Nifi!
>> >
>> > My goal: There are files stored from CloudTrail in an S3 bucket in
>>VPC B.
>> > My Nifi machines are in VPC A. I want Nifi to be able to get those
>>files
>> > from VPC B. VPC A and VPC B need to be communicating in the
>>FetchS3Object
>> > component.
>> >
>> > See this link for some additional info: http://docs.aws.amazon.com/
>> > 
>>awscloudtrail/latest/userguide/cloudtrail-sharing-logs-assume-role.html
>> >
>> > I have communication working manually on the Nifi machines in VPC A
>>when
>> I
>> > use the AWS CLI. The process is as follows:
>> >
>> > 1. Run sts -assume-role on my Nifi machine (VPC A) to assume a
>>role
>> > I've created in VPC B that is configured to have access to the S3
>>bucket
>> in
>> > VPC B.
>> >
>> > 2. This will generate temporary keys that need to be refreshed
>>every
>> > hour. There is no way to have assume role create permanent keys.
>>Export
>> the
>> > keys as environment variables.
>> >
>> > 3. Set up ~/.aws/config to have a profile "crossaccountrole" that
>> > connects to the arn of the role created in VPC B.
>> >
>> > 4. Run the following command à "aws s3 cp s3://
>>> > name locally> --profile crossaccountrole"
>> >
>> > Most importantly, if I ever try to run this without the --profile
>>flag,
>> > then it will not allow me to download the file.  It seems like
>>perhaps to
>> > get it to work with Nifi I need a place to pass in the profile that
>>needs
>> > to be used in order for the communication to work.
>> >
>> > I've been trying to implement this in Nifi. Within the FetchS3Object,
>>I
>> > have created an AWSCredentialsProviderService which has the following
>> > properties:
>> >
>> > ·  Access Key: VPC A access key
>> >
>> > ·  Secret Key: VPC A secret key
>> >
>> > ·  Assume Role ARN: VPC B role
>> >
>> > ·  Assume Role Session Name: crossaccountrole
>> >
>> > ·  Session Time: 3600
>> > The general properties in the FetchS3Object are as follows:
>> >
>> > ·  Bucket: VPC B bucket name
>> >
>> > ·  Object: Filename of VPC B bucket object
>> >
>> > ·  Access Key: VPC A access key
>> >
>> > ·  Secret Key: VPC A secret key
>> >
>> > ·  AWS Credentials P

Re: Nifi Cross Account Download With A Profile Flag

2016-08-31 Thread Tseytlin, Keren
Oops, I sent this out to the developer list serve, will send it out to the
Users list serve now.

My bad for flooding your inbox (but if you have suggestions please send
them my way)!

Best,
Keren

On 8/31/16, 4:44 PM, "Tseytlin, Keren" 
wrote:

>Hi All!
>
>Looking for some help on enabling Cross Account communication within Nifi!
>
>My goal: There are files stored from CloudTrail in an S3 bucket in VPC B.
>My Nifi machines are in VPC A. I want Nifi to be able to get those files
>from VPC B. VPC A and VPC B need to be communicating in the FetchS3Object
>component.
>
>See this link for some additional info:
>http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-shari
>ng-logs-assume-role.html
>
>I have communication working manually on the Nifi machines in VPC A when
>I use the AWS CLI. The process is as follows:
>
>1. Run sts -assume-role on my Nifi machine (VPC A) to assume a role
>I've created in VPC B that is configured to have access to the S3 bucket
>in VPC B.
>
>2. This will generate temporary keys that need to be refreshed every
>hour. There is no way to have assume role create permanent keys. Export
>the keys as environment variables.
>
>3. Set up ~/.aws/config to have a profile "crossaccountrole" that
>connects to the arn of the role created in VPC B.
>
>4. Run the following command à "aws s3 cp s3:// name locally> --profile crossaccountrole"
>
>Most importantly, if I ever try to run this without the --profile flag,
>then it will not allow me to download the file.  It seems like perhaps to
>get it to work with Nifi I need a place to pass in the profile that needs
>to be used in order for the communication to work.
>
>I've been trying to implement this in Nifi. Within the FetchS3Object, I
>have created an AWSCredentialsProviderService which has the following
>properties:
>
>·  Access Key: VPC A access key
>
>·  Secret Key: VPC A secret key
>
>·  Assume Role ARN: VPC B role
>
>·  Assume Role Session Name: crossaccountrole
>
>·  Session Time: 3600
>The general properties in the FetchS3Object are as follows:
>
>·  Bucket: VPC B bucket name
>
>·  Object: Filename of VPC B bucket object
>
>·  Access Key: VPC A access key
>
>·  Secret Key: VPC A secret key
>
>·  AWS Credentials Provider Service: 
>
>However, when this tries to run I get Access Denied. I've been going
>through the source code for Nifi and I'm not sure if short-lived tokens
>get passed through. Can anyone please provide me some guidance or
>suggestions on how to get this to work? J
>
>Best,
>Keren
>
>
>The information contained in this e-mail is confidential and/or
>proprietary to Capital One and/or its affiliates and may only be used
>solely in performance of work or services for Capital One. The
>information transmitted herewith is intended only for use by the
>individual or entity to which it is addressed. If the reader of this
>message is not the intended recipient, you are hereby notified that any
>review, retransmission, dissemination, distribution, copying or other use
>of, or taking of any action in reliance upon this information is strictly
>prohibited. If you have received this communication in error, please
>contact the sender and delete the material from your computer.



The information contained in this e-mail is confidential and/or proprietary to 
Capital One and/or its affiliates and may only be used solely in performance of 
work or services for Capital One. The information transmitted herewith is 
intended only for use by the individual or entity to which it is addressed. If 
the reader of this message is not the intended recipient, you are hereby 
notified that any review, retransmission, dissemination, distribution, copying 
or other use of, or taking of any action in reliance upon this information is 
strictly prohibited. If you have received this communication in error, please 
contact the sender and delete the material from your computer.



Nifi Cross Account Download With A Profile Flag

2016-08-31 Thread Tseytlin, Keren
Hi All!

Looking for some help on enabling Cross Account communication within Nifi!

My goal: There are files stored from CloudTrail in an S3 bucket in VPC B. My 
Nifi machines are in VPC A. I want Nifi to be able to get those files from VPC 
B. VPC A and VPC B need to be communicating in the FetchS3Object component.

See this link for some additional info: 
http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-sharing-logs-assume-role.html

I have communication working manually on the Nifi machines in VPC A when I use 
the AWS CLI. The process is as follows:

1. Run sts -assume-role on my Nifi machine (VPC A) to assume a role I've 
created in VPC B that is configured to have access to the S3 bucket in VPC B.

2. This will generate temporary keys that need to be refreshed every hour. 
There is no way to have assume role create permanent keys. Export the keys as 
environment variables.

3. Set up ~/.aws/config to have a profile "crossaccountrole" that connects 
to the arn of the role created in VPC B.

4. Run the following command à "aws s3 cp s3://  --profile crossaccountrole"

Most importantly, if I ever try to run this without the --profile flag, then it 
will not allow me to download the file.  It seems like perhaps to get it to 
work with Nifi I need a place to pass in the profile that needs to be used in 
order for the communication to work.

I've been trying to implement this in Nifi. Within the FetchS3Object, I have 
created an AWSCredentialsProviderService which has the following properties:

·  Access Key: VPC A access key

·  Secret Key: VPC A secret key

·  Assume Role ARN: VPC B role

·  Assume Role Session Name: crossaccountrole

·  Session Time: 3600
The general properties in the FetchS3Object are as follows:

·  Bucket: VPC B bucket name

·  Object: Filename of VPC B bucket object

·  Access Key: VPC A access key

·  Secret Key: VPC A secret key

·  AWS Credentials Provider Service: 

However, when this tries to run I get Access Denied. I've been going through 
the source code for Nifi and I'm not sure if short-lived tokens get passed 
through. Can anyone please provide me some guidance or suggestions on how to 
get this to work? J

Best,
Keren


The information contained in this e-mail is confidential and/or proprietary to 
Capital One and/or its affiliates and may only be used solely in performance of 
work or services for Capital One. The information transmitted herewith is 
intended only for use by the individual or entity to which it is addressed. If 
the reader of this message is not the intended recipient, you are hereby 
notified that any review, retransmission, dissemination, distribution, copying 
or other use of, or taking of any action in reliance upon this information is 
strictly prohibited. If you have received this communication in error, please 
contact the sender and delete the material from your computer.